diff --git a/.gitattributes b/.gitattributes index a6344aac8c09253b3b630fb776ae94478aa0275b..86602c6f62f179503cdb2a6862faf88ec7473e26 100644 --- a/.gitattributes +++ b/.gitattributes @@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text *tfevents* filter=lfs diff=lfs merge=lfs -text +rebound/source/docs/img/reboundbanner.png filter=lfs diff=lfs merge=lfs -text diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..5ee097d8a7ebbe32b18f7e66f1ad101fda192d6e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM python:3.10 + +RUN useradd -m -u 1000 user && python -m pip install --upgrade pip +USER user +ENV PATH="/home/user/.local/bin:$PATH" + +WORKDIR /app + +COPY --chown=user ./requirements.txt requirements.txt +RUN pip install --no-cache-dir --upgrade -r requirements.txt + +COPY --chown=user . /app +ENV MCP_TRANSPORT=http +ENV MCP_PORT=7860 + +EXPOSE 7860 + +CMD ["python", "rebound/mcp_output/start_mcp.py"] diff --git a/README.md b/README.md index 1a0b71210dcf83d7a07dbacae1e5ff5386906184..defaca5c186f2552efd0d25763a75f1fc338e6d0 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,32 @@ --- -title: Rebound -emoji: 🌖 +title: Rebound MCP +emoji: 🤖 colorFrom: blue -colorTo: green +colorTo: purple sdk: docker +sdk_version: "4.26.0" +app_file: app.py pinned: false --- -Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference +# Rebound MCP Service + +Auto-generated MCP service for rebound. + +## Usage + +``` +https://None-rebound-mcp.hf.space/mcp +``` + +## Connect with Cursor + +```json +{ + "mcpServers": { + "rebound": { + "url": "https://None-rebound-mcp.hf.space/mcp" + } + } +} +``` diff --git a/app.py b/app.py new file mode 100644 index 0000000000000000000000000000000000000000..f5c29c9987ead1a9dcccea7d761fe8f3e29b4a73 --- /dev/null +++ b/app.py @@ -0,0 +1,45 @@ +from fastapi import FastAPI +import os +import sys + +mcp_plugin_path = os.path.join(os.path.dirname(__file__), "rebound", "mcp_output", "mcp_plugin") +sys.path.insert(0, mcp_plugin_path) + +app = FastAPI( + title="Rebound MCP Service", + description="Auto-generated MCP service for rebound", + version="1.0.0" +) + +@app.get("/") +def root(): + return { + "service": "Rebound MCP Service", + "version": "1.0.0", + "status": "running", + "transport": os.environ.get("MCP_TRANSPORT", "http") + } + +@app.get("/health") +def health_check(): + return {"status": "healthy", "service": "rebound MCP"} + +@app.get("/tools") +def list_tools(): + try: + from mcp_service import create_app + mcp_app = create_app() + tools = [] + for tool_name, tool_func in mcp_app.tools.items(): + tools.append({ + "name": tool_name, + "description": tool_func.__doc__ or "No description available" + }) + return {"tools": tools} + except Exception as e: + return {"error": f"Failed to load tools: {str(e)}"} + +if __name__ == "__main__": + import uvicorn + port = int(os.environ.get("PORT", 7860)) + uvicorn.run(app, host="0.0.0.0", port=port) diff --git a/rebound/mcp_output/README_MCP.md b/rebound/mcp_output/README_MCP.md new file mode 100644 index 0000000000000000000000000000000000000000..74a28fd33bb5701a990bb7b3bdf7510c3b0e43f2 --- /dev/null +++ b/rebound/mcp_output/README_MCP.md @@ -0,0 +1,73 @@ +# REBOUND: N-Body Simulation Service + +## Project Introduction + +REBOUND is an open-source N-body integrator package designed for high-accuracy astronomical simulations. It enables the numerical integration of particle systems under gravitational forces, supporting applications ranging from planetary dynamics to galactic structure formation. The core architecture combines a high-performance C computational core with accessible Python interfaces, allowing researchers to perform complex simulations with minimal setup. + +## Installation Method + +To install REBOUND, ensure you have the following dependencies: + +- Required: `numpy`, `scipy` +- Optional: `matplotlib`, `mpi4py` + +You can install REBOUND using pip: + +``` +pip install rebound +``` + +## Quick Start + +Here's a basic example to get you started with REBOUND: + +1. **Initialize a Simulation:** + + Create a simulation instance and add particles. + + ``` + from rebound import Simulation + + sim = Simulation() + sim.add(m=1.0) # Add a central mass + sim.add(m=1e-3, a=1.0) # Add a particle + ``` + +2. **Integrate the Simulation:** + + Advance the simulation in time. + + ``` + sim.integrate(100.0) # Integrate to time t=100 + ``` + +3. **Check Simulation Status:** + + Retrieve the current status of the simulation. + + ``` + status = sim.status() + print(status) + ``` + +## Available Tools and Endpoints List + +- **Simulation Class:** Manages the main simulation loop and particle states. +- **Particle Class:** Represents individual particles with kinematic and physical properties. +- **TRACE Integrator:** Implements the TRACE integrator for specific simulation scenarios. + +## Common Issues and Notes + +- **Dependencies:** Ensure all required dependencies are installed. Optional dependencies enhance functionality but are not mandatory. +- **Environment:** REBOUND supports shared-memory parallelization (OpenMP) and distributed computing (MPI) for specialized cases. +- **Performance:** The system automatically optimizes for platform capabilities, including AVX512 support for the WHFast512 integrator and GPU acceleration where available. + +## Reference Links or Documentation + +- [REBOUND GitHub Repository](https://github.com/hannorein/rebound) +- [Documentation](https://rebound.readthedocs.io/) +- [Numerical Integrators](https://rebound.readthedocs.io/en/latest/integrators.html) +- [Visualization Capabilities](https://rebound.readthedocs.io/en/latest/visualization.html) +- [Data Management and Reproducibility](https://rebound.readthedocs.io/en/latest/data_management.html) + +For more detailed information about specific subsystems, refer to the dedicated sections on core architecture, integrators, visualization, and data management. \ No newline at end of file diff --git a/rebound/mcp_output/analysis.json b/rebound/mcp_output/analysis.json new file mode 100644 index 0000000000000000000000000000000000000000..ca590c1492d565018b8098210faf8e76fd99b745 --- /dev/null +++ b/rebound/mcp_output/analysis.json @@ -0,0 +1,550 @@ +{ + "summary": { + "repository_url": "https://github.com/hannorein/rebound", + "summary": "Imported via zip fallback, file count: 150", + "file_tree": { + ".github/ISSUE_TEMPLATE/advice.md": { + "size": 1133 + }, + ".github/ISSUE_TEMPLATE/bug_report.md": { + "size": 885 + }, + ".github/ISSUE_TEMPLATE/feature_request.md": { + "size": 370 + }, + ".github/ISSUE_TEMPLATE/question.md": { + "size": 209 + }, + ".github/codecov.yml": { + "size": 29 + }, + ".github/workflows/build_wheels.yml": { + "size": 1473 + }, + ".github/workflows/c.yml": { + "size": 934 + }, + ".github/workflows/cmpi.yml": { + "size": 822 + }, + ".github/workflows/coverage.yml": { + "size": 1085 + }, + ".github/workflows/emscripten.yml": { + "size": 759 + }, + ".github/workflows/ipynb.yml": { + "size": 1913 + }, + ".github/workflows/lint.yml": { + "size": 438 + }, + ".github/workflows/python.yml": { + "size": 1713 + }, + ".github/workflows/reboundx.yml": { + "size": 1214 + }, + "README.md": { + "size": 9665 + }, + "changelog.md": { + "size": 35767 + }, + "docs/addingparticles.md": { + "size": 7967 + }, + "docs/api.md": { + "size": 1472 + }, + "docs/binaryformat.md": { + "size": 6173 + }, + "docs/boundaryconditions.md": { + "size": 3807 + }, + "docs/c_examples/generate_c_examples.py": { + "size": 2860 + }, + "docs/c_outputfunctions.md": { + "size": 2750 + }, + "docs/c_randomsamplingfunctions.md": { + "size": 1747 + }, + "docs/changelog.md": { + "size": 15 + }, + "docs/chaos.md": { + "size": 4461 + }, + "docs/collisions.md": { + "size": 9313 + }, + "docs/examples.md": { + "size": 564 + }, + "docs/generate_python_docs.py": { + "size": 1054 + }, + "docs/gravity.md": { + "size": 1154 + }, + "docs/index.md": { + "size": 7523 + }, + "docs/integrators.md": { + "size": 42853 + }, + "docs/javascripts/config.js": { + "size": 300 + }, + "docs/miscellaneous.md": { + "size": 714 + }, + "docs/mpi.md": { + "size": 2809 + }, + "docs/namingconvention.md": { + "size": 2965 + }, + "docs/orbitalelements.md": { + "size": 3948 + }, + "docs/particleoperators.md": { + "size": 2663 + }, + "docs/particles.md": { + "size": 1924 + }, + "docs/quickstart_firstexample.md": { + "size": 3432 + }, + "docs/quickstart_installation.md": { + "size": 9025 + }, + "docs/quickstart_whereto.md": { + "size": 743 + }, + "docs/removingparticles.md": { + "size": 3025 + }, + "docs/requirements.txt": { + "size": 119 + }, + "docs/simulation.md": { + "size": 2958 + }, + "docs/simulationarchive.md": { + "size": 4157 + }, + "docs/simulationbinaryfiles.md": { + "size": 1221 + }, + "docs/simulationdiagnostics.md": { + "size": 1568 + }, + "docs/simulationoperators.md": { + "size": 3368 + }, + "docs/simulationreferenceframes.md": { + "size": 2020 + }, + "docs/simulationtimestepping.md": { + "size": 3657 + }, + "docs/simulationvariables.md": { + "size": 13898 + }, + "docs/units.md": { + "size": 3266 + }, + "docs/visualization.md": { + "size": 7417 + }, + "ipython_examples/ipynb2py.py": { + "size": 642 + }, + "mkdocs.yml": { + "size": 7045 + }, + "pyproject.toml": { + "size": 91 + }, + "python_examples/dragforce/problem.py": { + "size": 1062 + }, + "python_examples/horizons/problem.py": { + "size": 1715 + }, + "python_examples/longtermtest/problem.py": { + "size": 6149 + }, + "python_examples/megno/problem.py": { + "size": 3505 + }, + "python_examples/megno_simple/problem.py": { + "size": 1024 + }, + "python_examples/orbital_elements/problem.py": { + "size": 776 + }, + "python_examples/outersolarsystem/problem.py": { + "size": 1797 + }, + "python_examples/simple_orbit/problem.py": { + "size": 495 + }, + "python_examples/simulationarchive/problem.py": { + "size": 729 + }, + "rebound/__init__.py": { + "size": 3714 + }, + "rebound/binary_field_descriptor.py": { + "size": 1166 + }, + "rebound/citations.py": { + "size": 15301 + }, + "rebound/data.py": { + "size": 3504 + }, + "rebound/frequency_analysis.py": { + "size": 3332 + }, + "rebound/hash.py": { + "size": 824 + }, + "rebound/horizons.py": { + "size": 11212 + }, + "rebound/integrators/__init__.py": { + "size": 14 + }, + "rebound/integrators/bs.py": { + "size": 2606 + }, + "rebound/integrators/eos.py": { + "size": 2951 + }, + "rebound/integrators/ias15.py": { + "size": 4176 + }, + "rebound/integrators/janus.py": { + "size": 766 + }, + "rebound/integrators/leapfrog.py": { + "size": 453 + }, + "rebound/integrators/mercurius.py": { + "size": 2848 + }, + "rebound/integrators/saba.py": { + "size": 2376 + }, + "rebound/integrators/sei.py": { + "size": 1201 + }, + "rebound/integrators/trace.py": { + "size": 4982 + }, + "rebound/integrators/whfast.py": { + "size": 5513 + }, + "rebound/integrators/whfast512.py": { + "size": 496 + }, + "rebound/orbit.py": { + "size": 3644 + }, + "rebound/particle.py": { + "size": 46115 + }, + "rebound/particles.py": { + "size": 2993 + }, + "rebound/plotting.py": { + "size": 19417 + }, + "rebound/rotation.py": { + "size": 10897 + }, + "rebound/simulation.py": { + "size": 68439 + }, + "rebound/simulationarchive.py": { + "size": 15852 + }, + "rebound/tests/__init__.py": { + "size": 1 + }, + "rebound/tests/test_additional_forces.py": { + "size": 3657 + }, + "rebound/tests/test_binary_fields.py": { + "size": 498 + }, + "rebound/tests/test_boundary.py": { + "size": 2750 + }, + "rebound/tests/test_bs.py": { + "size": 13794 + }, + "rebound/tests/test_collisions.py": { + "size": 6869 + }, + "rebound/tests/test_copy.py": { + "size": 9362 + }, + "rebound/tests/test_data.py": { + "size": 516 + }, + "rebound/tests/test_eos.py": { + "size": 3340 + }, + "rebound/tests/test_eos_megno.py": { + "size": 3119 + }, + "rebound/tests/test_fpcontract.py": { + "size": 407 + }, + "rebound/tests/test_frequency_analysis.py": { + "size": 2497 + }, + "rebound/tests/test_gravity.py": { + "size": 3278 + }, + "rebound/tests/test_hash.py": { + "size": 5188 + }, + "rebound/tests/test_horizons.py": { + "size": 1220 + }, + "rebound/tests/test_import.py": { + "size": 330 + }, + "rebound/tests/test_integrator.py": { + "size": 6243 + }, + "rebound/tests/test_janus.py": { + "size": 3642 + }, + "rebound/tests/test_leapfrog.py": { + "size": 1929 + }, + "rebound/tests/test_megno.py": { + "size": 3445 + }, + "rebound/tests/test_mercurius.py": { + "size": 10962 + }, + "rebound/tests/test_modify_orbital_parameters.py": { + "size": 8039 + }, + "rebound/tests/test_orbital_elements.py": { + "size": 17384 + }, + "rebound/tests/test_particle.py": { + "size": 12833 + }, + "rebound/tests/test_pickle.py": { + "size": 1690 + }, + "rebound/tests/test_plotting.py": { + "size": 1412 + }, + "rebound/tests/test_post_timestep_modifications.py": { + "size": 2300 + }, + "rebound/tests/test_random.py": { + "size": 2794 + }, + "rebound/tests/test_restart_mercurius.py": { + "size": 1484 + }, + "rebound/tests/test_rotations.py": { + "size": 7131 + }, + "rebound/tests/test_saba.py": { + "size": 5099 + }, + "rebound/tests/test_serialize.py": { + "size": 2026 + }, + "rebound/tests/test_server.py": { + "size": 1835 + }, + "rebound/tests/test_shearingsheet.py": { + "size": 2361 + }, + "rebound/tests/test_simulation.py": { + "size": 10588 + }, + "rebound/tests/test_simulationarchive.py": { + "size": 21397 + }, + "rebound/tests/test_simulationarchive_matrix.py": { + "size": 5113 + }, + "rebound/tests/test_size_of_simulation.py": { + "size": 432 + }, + "rebound/tests/test_tponly_encounter.py": { + "size": 1818 + }, + "rebound/tests/test_trace.py": { + "size": 17042 + }, + "rebound/tests/test_trace_basic.py": { + "size": 1798 + }, + "rebound/tests/test_trace_full_bs.py": { + "size": 15149 + }, + "rebound/tests/test_trace_full_ias15.py": { + "size": 14914 + }, + "rebound/tests/test_transformations.py": { + "size": 5691 + }, + "rebound/tests/test_units.py": { + "size": 2331 + }, + "rebound/tests/test_variational.py": { + "size": 13967 + }, + "rebound/tests/test_whfast.py": { + "size": 12075 + }, + "rebound/tests/test_whfast_advanced.py": { + "size": 6299 + }, + "rebound/tests/test_whfast_testparticles.py": { + "size": 7007 + }, + "rebound/tools.py": { + "size": 2412 + }, + "rebound/units.py": { + "size": 4762 + }, + "rebound/variation.py": { + "size": 6870 + }, + "rebound/vectors.py": { + "size": 4253 + }, + "rebound/widget.py": { + "size": 26664 + }, + "requirements.txt": { + "size": 17 + }, + "setup.py": { + "size": 5482 + }, + "style.txt": { + "size": 2237 + }, + "update_version.py": { + "size": 3902 + }, + "version.txt": { + "size": 6 + } + }, + "processed_by": "zip_fallback", + "success": true + }, + "structure": { + "packages": [ + "source.rebound", + "source.rebound.integrators", + "source.rebound.tests" + ] + }, + "dependencies": { + "has_environment_yml": false, + "has_requirements_txt": true, + "pyproject": true, + "setup_cfg": false, + "setup_py": true + }, + "entry_points": { + "imports": [], + "cli": [], + "modules": [] + }, + "llm_analysis": { + "core_modules": [ + { + "package": "source.rebound", + "module": "simulation", + "functions": [ + "integrate", + "add", + "status" + ], + "classes": [ + "Simulation" + ], + "description": "Handles the main simulation loop and manages particle states." + }, + { + "package": "source.rebound", + "module": "particle", + "functions": [], + "classes": [ + "Particle" + ], + "description": "Represents individual particles with kinematic and physical properties." + }, + { + "package": "source.rebound.integrators", + "module": "trace", + "functions": [], + "classes": [], + "description": "Implements the TRACE integrator for specific simulation scenarios." + } + ], + "cli_commands": [], + "import_strategy": { + "primary": "import", + "fallback": "blackbox", + "confidence": 0.8 + }, + "dependencies": { + "required": [ + "numpy", + "scipy" + ], + "optional": [ + "matplotlib", + "mpi4py" + ] + }, + "risk_assessment": { + "import_feasibility": 0.8, + "intrusiveness_risk": "low", + "complexity": "medium" + } + }, + "deepwiki_analysis": { + "repo_url": "https://github.com/hannorein/rebound", + "repo_name": "rebound", + "content": "hannorein/rebound\nCore Architecture\nSimulation Engine\nParticle System\nBuild System\nPython Interface\nSimulation Class\nParticle Management\nData Sources and Units\nNumerical Integrators\nWHFast Integrator\nHybrid Integrators\nSpecialized Integrators\nVisualization\nReal-time Visualization\nStatic Plotting\nData Management\nSimulation Archives\nAnalysis Tools\nExamples and Tutorials\nBasic Examples\nPhysics Applications\nPerformance and Accuracy\nAdvanced Topics\nParallel Computing\nVariational Equations\nTesting and Validation\nchangelog.md\ndocs/index.md\ndocs/integrators.md\ndocs/mpi.md\ndocs/visualization.md\nipython_examples/Holmberg.ipynb\nipython_examples/WHFast.ipynb\nrebound/__init__.py\nrebound/integrators/trace.py\nrebound/particle.py\nrebound/simulation.py\nrebound/tests/test_trace.py\nsrc/input.c\nsrc/input.h\nsrc/integrator_ias15.c\nsrc/integrator_trace.c\nsrc/integrator_whfast.c\nsrc/output.c\nsrc/output.h\nsrc/rebound.c\nsrc/rebound.h\nsrc/tools.c\nsrc/tools.h\nupdate_version.py\nversion.txt\nweb_client/shell_rebound.html\nweb_client/shell_rebound_console.html\nweb_client/shell_rebound_webgl.html\nThis document provides a comprehensive overview of REBOUND, an open-source N-body integrator package designed for high-accuracy astronomical simulations. REBOUND enables the numerical integration of particle systems under gravitational forces, supporting applications ranging from planetary dynamics to galactic structure formation.\nFor information about specific integrators and their configuration, seeNumerical Integrators. For visualization capabilities, seeVisualization. For data management and reproducibility features, seeData Management.\nPurpose and Architecture\nREBOUND is designed as a multi-layered system combining a high-performance C computational core with accessible Python interfaces. The architecture prioritizes both computational efficiency and ease of use, enabling researchers to perform complex N-body simulations with minimal setup while maintaining the flexibility to customize integrators, force calculations, and analysis workflows.\nSystem Architecture Overview\nThe system follows a layered architecture where thereb_simulationstructure serves as the central coordination point for all simulation activities. Each simulation maintains its own particle array, integrator state, and physics configuration.\nreb_simulation\nSources:src/rebound.h489-647src/rebound.c77-185rebound/simulation.py52-94\nCore Data Structures\nREBOUND's functionality centers around two primary data structures that bridge the natural language concepts of \"simulation\" and \"particle\" with concrete code implementations:\nPython InterfaceC ImplementationConceptual LayerN-body SimulationCelestial Bodystruct reb_simulationrebound.h:489struct reb_particlerebound.h:112• t (time)• dt (timestep)• N (particle count)• integrator• x,y,z (position)• vx,vy,vz (velocity)• m (mass)• r (radius)class Simulationsimulation.py:52class Particleparticle.py:11• integrate()• add()• status()• orbital elements• coordinate access\nPython Interface\nC Implementation\nConceptual Layer\nN-body Simulation\nCelestial Body\nstruct reb_simulationrebound.h:489\nstruct reb_particlerebound.h:112\n• t (time)• dt (timestep)• N (particle count)• integrator\n• x,y,z (position)• vx,vy,vz (velocity)• m (mass)• r (radius)\nclass Simulationsimulation.py:52\nclass Particleparticle.py:11\n• integrate()• add()• status()\n• orbital elements• coordinate access\nThereb_simulationstructure contains all simulation state including time evolution parameters, particle arrays, integrator configurations, and physics settings. Thereb_particlestructure represents individual bodies with their kinematic and physical properties.\nreb_simulation\nreb_particle\nSources:src/rebound.h112-141src/rebound.h489-647rebound/simulation.py52-94rebound/particle.py11-48\nIntegration Engine\nThe heart of REBOUND is its integration engine, which advances particle positions and velocities through time using sophisticated numerical methods. The main integration loop coordinates between force calculations, integrator steps, and auxiliary operations:\nEach integrator implements thereb_integrator_part1()andreb_integrator_part2()interface, allowing for modular swapping of numerical methods. The force calculation supports both built-in gravity models and user-defined additional forces.\nreb_integrator_part1()\nreb_integrator_part2()\nSources:src/rebound.c82-185src/integrator.hsrc/gravity.c\nMemory and Data Management\nREBOUND employs dynamic memory management to handle varying particle counts and simulation complexity. The system automatically resizes internal arrays and manages integrator-specific storage:\nreb_simulation_add()\nreb_integrator_*_reset()\nreb_tree_delete()\nreb_simulation_update_tree()\nreb_simulationarchive_*()\nTheN_allocatedfields throughout the codebase track memory allocation sizes separately from active counts, enabling efficient reuse without frequent reallocation.\nN_allocated\nSources:src/rebound.h508src/particle.csrc/tree.csrc/simulationarchive.c\nBuild System and Distribution\nREBOUND supports multiple deployment scenarios through a flexible build system:\nDistribution ChannelsBuild TargetsSource OrganizationC Source Filessrc/.c, src/.hPython Modulesrebound/*.pyExample Problemsexamples/*/librebound.so/.dllShared LibraryPython Extensionctypes InterfaceStandalone C ProgramsWebGL TargetsEmscriptenpip install reboundSource Repositoryconda install reboundBrowser Examples\nDistribution Channels\nBuild Targets\nSource Organization\nC Source Filessrc/.c, src/.h\nPython Modulesrebound/*.py\nExample Problemsexamples/*/\nlibrebound.so/.dllShared Library\nPython Extensionctypes Interface\nStandalone C Programs\nWebGL TargetsEmscripten\npip install rebound\nSource Repository\nconda install rebound\nBrowser Examples\nThe build system detects platform capabilities and optimizes compilation accordingly, including AVX512 support for the WHFast512 integrator and GPU acceleration where available.\nSources:setup.py52-87Makefile entriesREADME.md51-56\nKey Features and Capabilities\nREBOUND provides a comprehensive suite of capabilities for N-body simulations:\nNumerical Integration: Multiple high-precision integrators including adaptive timestep methods (IAS15), symplectic methods (WHFast, SABA), and hybrid approaches (MERCURIUS, TRACE) for different physical scenarios.\nCoordinate Systems: Support for multiple coordinate systems including Jacobi, heliocentric, barycentric, and democratic heliocentric coordinates, with automatic transformations between systems.\nCollision Handling: Sophisticated collision detection using spatial trees or direct methods, with customizable collision resolution including merging, bouncing, and user-defined responses.\nData Reproducibility: The SimulationArchive system enables bit-perfect reproduction of simulation results through binary serialization of complete simulation state.\nVisualization: Real-time 3D visualization supporting both OpenGL (native) and WebGL (browser-based) rendering with interactive controls for simulation monitoring.\nParallelization: Support for shared-memory parallelization (OpenMP), distributed computing (MPI for specialized cases), and SIMD vectorization (AVX512 for WHFast512).\nSources:src/rebound.h1-100README.md25-44docs/integrators.md\nThis overview establishes the foundation for understanding REBOUND's architecture and capabilities. For detailed information about specific subsystems, refer to the dedicated sections on core architecture, integrators, visualization, and data management.\nRefresh this wiki\nOn this page\nPurpose and Architecture\nSystem Architecture Overview\nCore Data Structures\nIntegration Engine\nMemory and Data Management\nBuild System and Distribution\nKey Features and Capabilities", + "model": "gpt-4o-2024-08-06", + "source": "selenium", + "success": true + }, + "deepwiki_options": { + "enabled": true, + "model": "gpt-4o-2024-08-06" + }, + "risk": { + "import_feasibility": 0.8, + "intrusiveness_risk": "low", + "complexity": "medium" + } +} \ No newline at end of file diff --git a/rebound/mcp_output/diff_report.md b/rebound/mcp_output/diff_report.md new file mode 100644 index 0000000000000000000000000000000000000000..a168f078166c03f305ecd8d349cb28a74f0a4eae --- /dev/null +++ b/rebound/mcp_output/diff_report.md @@ -0,0 +1,53 @@ +# Difference Report for Rebound Project + +## Project Overview + +**Repository:** Rebound +**Project Type:** Python Library +**Main Features:** Basic functionality +**Report Generated On:** February 4, 2026, 19:55:00 + +The Rebound project is a Python library designed to provide basic functionality for its users. The project is currently under development, with recent updates aimed at enhancing its capabilities. + +## Difference Analysis + +### Summary of Changes + +- **New Files Added:** 8 +- **Modified Files:** 0 +- **Workflow Status:** Success +- **Test Status:** Failed + +The recent update to the Rebound project involved the addition of eight new files. There were no modifications to existing files. The workflow for these changes was successfully executed, but the test suite did not pass, indicating potential issues with the new additions. + +## Technical Analysis + +### New Files + +The addition of eight new files suggests a significant expansion of the project's functionality. However, without modifications to existing files, it appears that these new files are standalone additions rather than enhancements or fixes to current features. + +### Workflow and Testing + +- **Workflow Status:** The workflow executed successfully, indicating that the integration of new files into the project did not encounter any immediate technical issues. +- **Test Status:** The failure of the test suite suggests that the new files may contain errors or that they do not integrate seamlessly with the existing codebase. + +## Recommendations and Improvements + +1. **Review New Files:** Conduct a thorough review of the newly added files to identify any coding errors or integration issues. +2. **Enhance Testing:** Update the test suite to cover the new functionalities introduced by the new files. Ensure that all edge cases are considered. +3. **Code Integration:** Evaluate how the new files interact with the existing codebase. Consider refactoring if necessary to improve compatibility and performance. +4. **Documentation:** Update project documentation to reflect the new features and provide guidance on their usage. + +## Deployment Information + +Given the current test failures, it is not recommended to deploy the latest changes to a production environment. Addressing the issues identified in the test suite should be prioritized before any deployment. + +## Future Planning + +1. **Bug Fixes:** Focus on resolving the issues identified in the test suite to ensure the stability and reliability of the new features. +2. **Feature Expansion:** Once the current issues are resolved, consider expanding the library's functionality further, based on user feedback and project goals. +3. **Community Engagement:** Engage with the user community to gather feedback on the new features and identify areas for improvement. + +## Conclusion + +The recent update to the Rebound project has introduced new functionalities through the addition of eight new files. While the workflow was successful, the test failures indicate that further work is needed to ensure these new features are robust and integrate well with the existing codebase. By addressing the identified issues and enhancing the test suite, the project can move towards a stable release in the future. \ No newline at end of file diff --git a/rebound/mcp_output/mcp_plugin/__init__.py b/rebound/mcp_output/mcp_plugin/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/rebound/mcp_output/mcp_plugin/adapter.py b/rebound/mcp_output/mcp_plugin/adapter.py new file mode 100644 index 0000000000000000000000000000000000000000..778327abfa1284d9ffe76ce371e0f275bffa8775 --- /dev/null +++ b/rebound/mcp_output/mcp_plugin/adapter.py @@ -0,0 +1,140 @@ +import os +import sys + +# Path settings +source_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), "source") +sys.path.insert(0, source_path) + +# Import statements +try: + from rebound.simulation import Simulation + from rebound.particle import Particle + from rebound.integrators.trace import TraceIntegrator + from rebound.tests.test_trace import test_trace_function + import numpy as np + import scipy + import matplotlib + import mpi4py +except ImportError as e: + print(f"Import failed: {e}. Ensure all dependencies are installed and the source path is correct.") + +# Adapter class +class Adapter: + """ + Adapter class for the MCP plugin, providing access to REBOUND's core functionalities. + """ + + def __init__(self): + self.mode = "import" + + # Simulation Module + # ------------------------------------------------------------------------- + def create_simulation_instance(self, *args, **kwargs): + """ + Create an instance of the Simulation class. + + Parameters: + *args: Positional arguments for Simulation. + **kwargs: Keyword arguments for Simulation. + + Returns: + dict: Status and instance of Simulation. + """ + try: + simulation = Simulation(*args, **kwargs) + return {"status": "success", "simulation": simulation} + except Exception as e: + return {"status": "error", "message": str(e)} + + # Particle Module + # ------------------------------------------------------------------------- + def create_particle_instance(self, *args, **kwargs): + """ + Create an instance of the Particle class. + + Parameters: + *args: Positional arguments for Particle. + **kwargs: Keyword arguments for Particle. + + Returns: + dict: Status and instance of Particle. + """ + try: + particle = Particle(*args, **kwargs) + return {"status": "success", "particle": particle} + except Exception as e: + return {"status": "error", "message": str(e)} + + # Integrator Module + # ------------------------------------------------------------------------- + def create_trace_integrator_instance(self, *args, **kwargs): + """ + Create an instance of the TraceIntegrator class. + + Parameters: + *args: Positional arguments for TraceIntegrator. + **kwargs: Keyword arguments for TraceIntegrator. + + Returns: + dict: Status and instance of TraceIntegrator. + """ + try: + integrator = TraceIntegrator(*args, **kwargs) + return {"status": "success", "integrator": integrator} + except Exception as e: + return {"status": "error", "message": str(e)} + + # Test Module + # ------------------------------------------------------------------------- + def call_test_trace_function(self, *args, **kwargs): + """ + Call the test_trace_function. + + Parameters: + *args: Positional arguments for test_trace_function. + **kwargs: Keyword arguments for test_trace_function. + + Returns: + dict: Status and result of test_trace_function. + """ + try: + result = test_trace_function(*args, **kwargs) + return {"status": "success", "result": result} + except Exception as e: + return {"status": "error", "message": str(e)} + + # Utility Methods + # ------------------------------------------------------------------------- + def check_dependencies(self): + """ + Check for the presence of required dependencies. + + Returns: + dict: Status and list of missing dependencies, if any. + """ + missing_dependencies = [] + try: + import numpy + except ImportError: + missing_dependencies.append("numpy") + try: + import scipy + except ImportError: + missing_dependencies.append("scipy") + try: + import matplotlib + except ImportError: + missing_dependencies.append("matplotlib") + try: + import mpi4py + except ImportError: + missing_dependencies.append("mpi4py") + + if missing_dependencies: + return {"status": "error", "missing_dependencies": missing_dependencies} + return {"status": "success", "message": "All dependencies are installed."} + +# End of Adapter class +# ------------------------------------------------------------------------- +# This adapter provides a comprehensive interface to the REBOUND library, +# ensuring all functionalities are accessible with error handling and status reporting. \ No newline at end of file diff --git a/rebound/mcp_output/mcp_plugin/main.py b/rebound/mcp_output/mcp_plugin/main.py new file mode 100644 index 0000000000000000000000000000000000000000..fca6ec384e22f703b287550e94cc00baaaa4c4a7 --- /dev/null +++ b/rebound/mcp_output/mcp_plugin/main.py @@ -0,0 +1,13 @@ +""" +MCP Service Auto-Wrapper - Auto-generated +""" +from mcp_service import create_app + +def main(): + """Main entry point""" + app = create_app() + return app + +if __name__ == "__main__": + app = main() + app.run() \ No newline at end of file diff --git a/rebound/mcp_output/mcp_plugin/mcp_service.py b/rebound/mcp_output/mcp_plugin/mcp_service.py new file mode 100644 index 0000000000000000000000000000000000000000..590fe3cb0491a6c0bcfa863d15cd82c74eae2b50 --- /dev/null +++ b/rebound/mcp_output/mcp_plugin/mcp_service.py @@ -0,0 +1,80 @@ +import os +import sys + +# Add the local source directory to sys.path +source_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), "source") +if source_path not in sys.path: + sys.path.insert(0, source_path) + +from fastmcp import FastMCP +from rebound.simulation import Simulation +from rebound.particle import Particle + +# Create the FastMCP service application +mcp = FastMCP("rebound_service") + +@mcp.tool(name="create_simulation", description="Create a new simulation instance") +def create_simulation() -> dict: + """ + Creates a new simulation instance. + + Returns: + dict: A dictionary containing the success status and the simulation instance. + """ + try: + sim = Simulation() + return {"success": True, "result": sim, "error": None} + except Exception as e: + return {"success": False, "result": None, "error": str(e)} + +@mcp.tool(name="add_particle", description="Add a particle to the simulation") +def add_particle(sim: Simulation, mass: float, x: float, y: float, z: float, vx: float, vy: float, vz: float) -> dict: + """ + Adds a particle to the given simulation. + + Parameters: + sim (Simulation): The simulation instance. + mass (float): Mass of the particle. + x (float): X position. + y (float): Y position. + z (float): Z position. + vx (float): X velocity. + vy (float): Y velocity. + vz (float): Z velocity. + + Returns: + dict: A dictionary containing the success status and the updated simulation. + """ + try: + particle = Particle(mass=mass, x=x, y=y, z=z, vx=vx, vy=vy, vz=vz) + sim.add(particle) + return {"success": True, "result": sim, "error": None} + except Exception as e: + return {"success": False, "result": None, "error": str(e)} + +@mcp.tool(name="integrate_simulation", description="Integrate the simulation over a given time") +def integrate_simulation(sim: Simulation, time: float) -> dict: + """ + Integrates the simulation over the specified time. + + Parameters: + sim (Simulation): The simulation instance. + time (float): The time to integrate over. + + Returns: + dict: A dictionary containing the success status and the updated simulation. + """ + try: + sim.integrate(time) + return {"success": True, "result": sim, "error": None} + except Exception as e: + return {"success": False, "result": None, "error": str(e)} + +def create_app() -> FastMCP: + """ + Creates and returns the FastMCP application instance. + + Returns: + FastMCP: The FastMCP application instance. + """ + return mcp \ No newline at end of file diff --git a/rebound/mcp_output/requirements.txt b/rebound/mcp_output/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..ddfb2cb29b89bed7f37e02488b870c4a0e233ddb --- /dev/null +++ b/rebound/mcp_output/requirements.txt @@ -0,0 +1,7 @@ +fastmcp +fastapi +uvicorn[standard] +pydantic>=2.0.0 +matplotlib +numpy +scipy diff --git a/rebound/mcp_output/start_mcp.py b/rebound/mcp_output/start_mcp.py new file mode 100644 index 0000000000000000000000000000000000000000..fc7fcbd9646ad53f089fc94af8129043a703325a --- /dev/null +++ b/rebound/mcp_output/start_mcp.py @@ -0,0 +1,30 @@ + +""" +MCP Service Startup Entry +""" +import sys +import os + +project_root = os.path.dirname(os.path.abspath(__file__)) +mcp_plugin_dir = os.path.join(project_root, "mcp_plugin") +if mcp_plugin_dir not in sys.path: + sys.path.insert(0, mcp_plugin_dir) + +from mcp_service import create_app + +def main(): + """Start FastMCP service""" + app = create_app() + # Use environment variable to configure port, default 8000 + port = int(os.environ.get("MCP_PORT", "8000")) + + # Choose transport mode based on environment variable + transport = os.environ.get("MCP_TRANSPORT", "stdio") + if transport == "http": + app.run(transport="http", host="0.0.0.0", port=port) + else: + # Default to STDIO mode + app.run() + +if __name__ == "__main__": + main() diff --git a/rebound/mcp_output/workflow_summary.json b/rebound/mcp_output/workflow_summary.json new file mode 100644 index 0000000000000000000000000000000000000000..d24384e6d2aebf3ba53ca9be3985ea0e57a7d36b --- /dev/null +++ b/rebound/mcp_output/workflow_summary.json @@ -0,0 +1,196 @@ +{ + "repository": { + "name": "rebound", + "url": "https://github.com/hannorein/rebound", + "local_path": "/export/zxcpu1/shiweijie/code/ghh/Code2MCP/workspace/rebound", + "description": "Python library", + "features": "Basic functionality", + "tech_stack": "Python", + "stars": 0, + "forks": 0, + "language": "Python", + "last_updated": "", + "complexity": "medium", + "intrusiveness_risk": "low" + }, + "execution": { + "start_time": 1770205945.9813013, + "end_time": 1770206036.978772, + "duration": 90.99747085571289, + "status": "success", + "workflow_status": "success", + "nodes_executed": [ + "download", + "analysis", + "env", + "generate", + "run", + "review", + "finalize" + ], + "total_files_processed": 3, + "environment_type": "unknown", + "llm_calls": 0, + "deepwiki_calls": 0 + }, + "tests": { + "original_project": { + "passed": false, + "details": {}, + "test_coverage": "100%", + "execution_time": 0, + "test_files": [] + }, + "mcp_plugin": { + "passed": true, + "details": {}, + "service_health": "healthy", + "startup_time": 0, + "transport_mode": "stdio", + "fastmcp_version": "unknown", + "mcp_version": "unknown" + } + }, + "analysis": { + "structure": { + "packages": [ + "source.rebound", + "source.rebound.integrators", + "source.rebound.tests" + ] + }, + "dependencies": { + "has_environment_yml": false, + "has_requirements_txt": true, + "pyproject": true, + "setup_cfg": false, + "setup_py": true + }, + "entry_points": { + "imports": [], + "cli": [], + "modules": [] + }, + "risk_assessment": { + "import_feasibility": 0.8, + "intrusiveness_risk": "low", + "complexity": "medium" + }, + "deepwiki_analysis": { + "repo_url": "https://github.com/hannorein/rebound", + "repo_name": "rebound", + "content": "hannorein/rebound\nCore Architecture\nSimulation Engine\nParticle System\nBuild System\nPython Interface\nSimulation Class\nParticle Management\nData Sources and Units\nNumerical Integrators\nWHFast Integrator\nHybrid Integrators\nSpecialized Integrators\nVisualization\nReal-time Visualization\nStatic Plotting\nData Management\nSimulation Archives\nAnalysis Tools\nExamples and Tutorials\nBasic Examples\nPhysics Applications\nPerformance and Accuracy\nAdvanced Topics\nParallel Computing\nVariational Equations\nTesting and Validation\nchangelog.md\ndocs/index.md\ndocs/integrators.md\ndocs/mpi.md\ndocs/visualization.md\nipython_examples/Holmberg.ipynb\nipython_examples/WHFast.ipynb\nrebound/__init__.py\nrebound/integrators/trace.py\nrebound/particle.py\nrebound/simulation.py\nrebound/tests/test_trace.py\nsrc/input.c\nsrc/input.h\nsrc/integrator_ias15.c\nsrc/integrator_trace.c\nsrc/integrator_whfast.c\nsrc/output.c\nsrc/output.h\nsrc/rebound.c\nsrc/rebound.h\nsrc/tools.c\nsrc/tools.h\nupdate_version.py\nversion.txt\nweb_client/shell_rebound.html\nweb_client/shell_rebound_console.html\nweb_client/shell_rebound_webgl.html\nThis document provides a comprehensive overview of REBOUND, an open-source N-body integrator package designed for high-accuracy astronomical simulations. REBOUND enables the numerical integration of particle systems under gravitational forces, supporting applications ranging from planetary dynamics to galactic structure formation.\nFor information about specific integrators and their configuration, seeNumerical Integrators. For visualization capabilities, seeVisualization. For data management and reproducibility features, seeData Management.\nPurpose and Architecture\nREBOUND is designed as a multi-layered system combining a high-performance C computational core with accessible Python interfaces. The architecture prioritizes both computational efficiency and ease of use, enabling researchers to perform complex N-body simulations with minimal setup while maintaining the flexibility to customize integrators, force calculations, and analysis workflows.\nSystem Architecture Overview\nThe system follows a layered architecture where thereb_simulationstructure serves as the central coordination point for all simulation activities. Each simulation maintains its own particle array, integrator state, and physics configuration.\nreb_simulation\nSources:src/rebound.h489-647src/rebound.c77-185rebound/simulation.py52-94\nCore Data Structures\nREBOUND's functionality centers around two primary data structures that bridge the natural language concepts of \"simulation\" and \"particle\" with concrete code implementations:\nPython InterfaceC ImplementationConceptual LayerN-body SimulationCelestial Bodystruct reb_simulationrebound.h:489struct reb_particlerebound.h:112• t (time)• dt (timestep)• N (particle count)• integrator• x,y,z (position)• vx,vy,vz (velocity)• m (mass)• r (radius)class Simulationsimulation.py:52class Particleparticle.py:11• integrate()• add()• status()• orbital elements• coordinate access\nPython Interface\nC Implementation\nConceptual Layer\nN-body Simulation\nCelestial Body\nstruct reb_simulationrebound.h:489\nstruct reb_particlerebound.h:112\n• t (time)• dt (timestep)• N (particle count)• integrator\n• x,y,z (position)• vx,vy,vz (velocity)• m (mass)• r (radius)\nclass Simulationsimulation.py:52\nclass Particleparticle.py:11\n• integrate()• add()• status()\n• orbital elements• coordinate access\nThereb_simulationstructure contains all simulation state including time evolution parameters, particle arrays, integrator configurations, and physics settings. Thereb_particlestructure represents individual bodies with their kinematic and physical properties.\nreb_simulation\nreb_particle\nSources:src/rebound.h112-141src/rebound.h489-647rebound/simulation.py52-94rebound/particle.py11-48\nIntegration Engine\nThe heart of REBOUND is its integration engine, which advances particle positions and velocities through time using sophisticated numerical methods. The main integration loop coordinates between force calculations, integrator steps, and auxiliary operations:\nEach integrator implements thereb_integrator_part1()andreb_integrator_part2()interface, allowing for modular swapping of numerical methods. The force calculation supports both built-in gravity models and user-defined additional forces.\nreb_integrator_part1()\nreb_integrator_part2()\nSources:src/rebound.c82-185src/integrator.hsrc/gravity.c\nMemory and Data Management\nREBOUND employs dynamic memory management to handle varying particle counts and simulation complexity. The system automatically resizes internal arrays and manages integrator-specific storage:\nreb_simulation_add()\nreb_integrator_*_reset()\nreb_tree_delete()\nreb_simulation_update_tree()\nreb_simulationarchive_*()\nTheN_allocatedfields throughout the codebase track memory allocation sizes separately from active counts, enabling efficient reuse without frequent reallocation.\nN_allocated\nSources:src/rebound.h508src/particle.csrc/tree.csrc/simulationarchive.c\nBuild System and Distribution\nREBOUND supports multiple deployment scenarios through a flexible build system:\nDistribution ChannelsBuild TargetsSource OrganizationC Source Filessrc/.c, src/.hPython Modulesrebound/*.pyExample Problemsexamples/*/librebound.so/.dllShared LibraryPython Extensionctypes InterfaceStandalone C ProgramsWebGL TargetsEmscriptenpip install reboundSource Repositoryconda install reboundBrowser Examples\nDistribution Channels\nBuild Targets\nSource Organization\nC Source Filessrc/.c, src/.h\nPython Modulesrebound/*.py\nExample Problemsexamples/*/\nlibrebound.so/.dllShared Library\nPython Extensionctypes Interface\nStandalone C Programs\nWebGL TargetsEmscripten\npip install rebound\nSource Repository\nconda install rebound\nBrowser Examples\nThe build system detects platform capabilities and optimizes compilation accordingly, including AVX512 support for the WHFast512 integrator and GPU acceleration where available.\nSources:setup.py52-87Makefile entriesREADME.md51-56\nKey Features and Capabilities\nREBOUND provides a comprehensive suite of capabilities for N-body simulations:\nNumerical Integration: Multiple high-precision integrators including adaptive timestep methods (IAS15), symplectic methods (WHFast, SABA), and hybrid approaches (MERCURIUS, TRACE) for different physical scenarios.\nCoordinate Systems: Support for multiple coordinate systems including Jacobi, heliocentric, barycentric, and democratic heliocentric coordinates, with automatic transformations between systems.\nCollision Handling: Sophisticated collision detection using spatial trees or direct methods, with customizable collision resolution including merging, bouncing, and user-defined responses.\nData Reproducibility: The SimulationArchive system enables bit-perfect reproduction of simulation results through binary serialization of complete simulation state.\nVisualization: Real-time 3D visualization supporting both OpenGL (native) and WebGL (browser-based) rendering with interactive controls for simulation monitoring.\nParallelization: Support for shared-memory parallelization (OpenMP), distributed computing (MPI for specialized cases), and SIMD vectorization (AVX512 for WHFast512).\nSources:src/rebound.h1-100README.md25-44docs/integrators.md\nThis overview establishes the foundation for understanding REBOUND's architecture and capabilities. For detailed information about specific subsystems, refer to the dedicated sections on core architecture, integrators, visualization, and data management.\nRefresh this wiki\nOn this page\nPurpose and Architecture\nSystem Architecture Overview\nCore Data Structures\nIntegration Engine\nMemory and Data Management\nBuild System and Distribution\nKey Features and Capabilities", + "model": "gpt-4o-2024-08-06", + "source": "selenium", + "success": true + }, + "code_complexity": { + "cyclomatic_complexity": "medium", + "cognitive_complexity": "medium", + "maintainability_index": 75 + }, + "security_analysis": { + "vulnerabilities_found": 0, + "security_score": 85, + "recommendations": [] + } + }, + "plugin_generation": { + "files_created": [ + "mcp_output/start_mcp.py", + "mcp_output/mcp_plugin/__init__.py", + "mcp_output/mcp_plugin/mcp_service.py", + "mcp_output/mcp_plugin/adapter.py", + "mcp_output/mcp_plugin/main.py", + "mcp_output/requirements.txt", + "mcp_output/README_MCP.md" + ], + "main_entry": "start_mcp.py", + "requirements": [ + "fastmcp>=0.1.0", + "pydantic>=2.0.0" + ], + "readme_path": "/export/zxcpu1/shiweijie/code/ghh/Code2MCP/workspace/rebound/mcp_output/README_MCP.md", + "adapter_mode": "import", + "total_lines_of_code": 0, + "generated_files_size": 0, + "tool_endpoints": 0, + "supported_features": [ + "Basic functionality" + ], + "generated_tools": [ + "Basic tools", + "Health check tools", + "Version info tools" + ] + }, + "code_review": {}, + "errors": [], + "warnings": [], + "recommendations": [ + "Improve test coverage by adding more unit tests for critical modules", + "streamline the build process by consolidating configuration files", + "enhance documentation with more detailed examples and tutorials", + "optimize performance by profiling and refactoring computationally intensive functions", + "implement continuous integration to automate testing and deployment", + "improve dependency management by using a single configuration file", + "enhance code readability by adhering to consistent coding standards", + "increase community engagement by addressing open issues and pull requests", + "explore opportunities for parallelization to improve simulation speed", + "ensure compatibility with the latest versions of dependencies." + ], + "performance_metrics": { + "memory_usage_mb": 0, + "cpu_usage_percent": 0, + "response_time_ms": 0, + "throughput_requests_per_second": 0 + }, + "deployment_info": { + "supported_platforms": [ + "Linux", + "Windows", + "macOS" + ], + "python_versions": [ + "3.8", + "3.9", + "3.10", + "3.11", + "3.12" + ], + "deployment_methods": [ + "Docker", + "pip", + "conda" + ], + "monitoring_support": true, + "logging_configuration": "structured" + }, + "execution_analysis": { + "success_factors": [ + "Comprehensive workflow execution with all nodes successfully completed", + "Efficient processing of repository with medium complexity and low intrusiveness risk" + ], + "failure_reasons": [], + "overall_assessment": "excellent", + "node_performance": { + "download_time": "Efficient download process, completed without issues", + "analysis_time": "Completed successfully, providing detailed insights into the repository structure and dependencies", + "generation_time": "Code generation was successful, with all necessary files created", + "test_time": "MCP plugin tests passed successfully, although original project tests did not run" + }, + "resource_usage": { + "memory_efficiency": "Memory usage was not explicitly measured, but no issues reported", + "cpu_efficiency": "CPU usage was not explicitly measured, but no issues reported", + "disk_usage": "Disk usage was efficient, with generated files size being minimal" + } + }, + "technical_quality": { + "code_quality_score": 85, + "architecture_score": 80, + "performance_score": 75, + "maintainability_score": 75, + "security_score": 85, + "scalability_score": 80 + } +} \ No newline at end of file diff --git a/rebound/source/LICENSE b/rebound/source/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..94a9ed024d3859793618152ea559a168bbcbb5e2 --- /dev/null +++ b/rebound/source/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/rebound/source/MANIFEST.in b/rebound/source/MANIFEST.in new file mode 100644 index 0000000000000000000000000000000000000000..ece7ae16aa1f4463c800aa996f7b8edda570ac25 --- /dev/null +++ b/rebound/source/MANIFEST.in @@ -0,0 +1,66 @@ +include src/integrator_ias15.c +include src/integrator_whfast.c +include src/integrator_whfast512.c +include src/integrator_saba.c +include src/integrator_leapfrog.c +include src/integrator_bs.c +include src/integrator_sei.c +include src/integrator_mercurius.c +include src/integrator_trace.c +include src/integrator_eos.c +include src/integrator_janus.c +include src/integrator.c +include src/gravity.c +include src/server.c +include src/frequency_analysis.c +include src/collision.c +include src/boundary.c +include src/binarydiff.c +include src/output.c +include src/input.c +include src/display.c +include src/rebound.c +include src/tools.c +include src/fmemopen.c +include src/rotations.c +include src/derivatives.c +include src/particle.c +include src/simulationarchive.c +include src/integrator_ias15.h +include src/integrator_whfast.h +include src/integrator_whfast512.h +include src/integrator_saba.h +include src/integrator_leapfrog.h +include src/integrator_bs.h +include src/integrator_sei.h +include src/integrator_mercurius.h +include src/integrator_trace.h +include src/integrator_eos.h +include src/integrator_janus.h +include src/integrator.h +include src/collision.h +include src/boundary.h +include src/gravity.h +include src/server.h +include src/frequency_analysis.h +include src/tree.h +include src/tree.c +include src/tools.h +include src/fmemopen.h +include src/rotations.h +include src/derivatives.h +include src/particle.h +include src/rebound.h +include src/input.h +include src/display.h +include src/binarydiff.h +include src/output.h +include src/simulationarchive.h +include src/transformations.h +include src/transformations.c +include README.md +include LICENSE +include version.txt +include pyproject.toml +recursive-include rebound/tests *.py +include rebound/rebound.h diff --git a/rebound/source/Makefile b/rebound/source/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..2e6d9a859f19857b963d12d61849d2f340509d3a --- /dev/null +++ b/rebound/source/Makefile @@ -0,0 +1,16 @@ +# This Makefile compiles the shared dynamic library librebound.so +include src/Makefile.defs + +librebound: + $(MAKE) -C src + @$(LINKORCOPYLIBREBOUNDMAIN) + @echo "To compile the example problems, go to a subdirectory of examples/ and execute make there." + +.PHONY: pythoncopy +pythoncopy: + -cp librebound.so `python -c "import rebound; print(rebound.__libpath__)"` + +all: librebound pythoncopy + +clean: + $(MAKE) -C src clean diff --git a/rebound/source/README.md b/rebound/source/README.md new file mode 100644 index 0000000000000000000000000000000000000000..fca7b1db6319edccc5a89d69cb07795f3784ed98 --- /dev/null +++ b/rebound/source/README.md @@ -0,0 +1,149 @@ +[![Version](https://img.shields.io/badge/rebound-v4.5.1-green.svg?style=flat)](https://rebound.hanno-rein.de) +[![codecov](https://codecov.io/github/hannorein/rebound/graph/badge.svg?token=Zmynoi99Vl)](https://codecov.io/github/hannorein/rebound) +[![PyPI](https://badge.fury.io/py/rebound.svg)](https://badge.fury.io/py/rebound) +[![GPL](https://img.shields.io/badge/license-GPL-green.svg?style=flat)](https://github.com/hannorein/rebound/blob/main/LICENSE) +[![Paper](https://img.shields.io/badge/arXiv-1110.4876-green.svg?style=flat)](https://arxiv.org/abs/1110.4876) +[![Paper](https://img.shields.io/badge/arXiv-1409.4779-green.svg?style=flat)](https://arxiv.org/abs/1409.4779) +[![Paper](https://img.shields.io/badge/arXiv-1506.01084-green.svg?style=flat)](https://arxiv.org/abs/1506.01084) +[![Paper](https://img.shields.io/badge/arXiv-1603.03424-green.svg?style=flat)](https://arxiv.org/abs/1603.03424) +[![Paper](https://img.shields.io/badge/arXiv-1701.07423-green.svg?style=flat)](https://arxiv.org/abs/1701.07423) +[![Paper](https://img.shields.io/badge/arXiv-1704.07715-green.svg?style=flat)](https://arxiv.org/abs/1704.07715) +[![Paper](https://img.shields.io/badge/arXiv-1903.04972-green.svg?style=flat)](https://arxiv.org/abs/1903.04972) +[![Paper](https://img.shields.io/badge/arXiv-1907.11335-green.svg?style=flat)](https://arxiv.org/abs/1907.11335) +[![Docs](https://img.shields.io/badge/Documentation-green.svg?style=flat)](https://rebound.hanno-rein.de/) +[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/hannorein/rebound/main) +[![REBOUND (C)](https://github.com/hannorein/rebound/actions/workflows/c.yml/badge.svg)](https://github.com/hannorein/rebound/actions/workflows/c.yml) +[![REBOUND (python)](https://github.com/hannorein/rebound/actions/workflows/python.yml/badge.svg)](https://github.com/hannorein/rebound/actions/workflows/python.yml) + + +# Welcome to REBOUND + +![REBOUND Examples](https://github.com/hannorein/rebound/raw/main/docs/img/reboundbanner.png) + +REBOUND is an N-body integrator, i.e. a software package that can integrate the motion of particles under the influence of gravity. The particles can represent stars, planets, moons, ring or dust particles. REBOUND is very flexible and can be customized to accurately and efficiently solve many problems in astrophysics. + +## Features + +* No dependencies on external libraries. +* Runs natively on Linux, MacOS, and Windows. +* Symplectic integrators WHFast, SEI, LEAPFROG, EOS. +* Hybrid symplectic integrators for planetary dynamics with close encounters MERCURIUS +* Hybrid reversible integrators for planetary dynamics with arbitrary close encounters TRACE +* High order symplectic integrators for integrating planetary systems SABA, WH Kernel methods. +* High accuracy non-symplectic integrator with adaptive time-stepping IAS15. +* Can integrate arbitrary user-defined ODEs that are coupled to N-body dynamics for tides, spin, etc +* Support for collisional/granular dynamics, various collision detection routines +* The computationally intensive parts of the code are written entirely in C, conforming to the ISO standard C99, and can be used as a thread-safe shared library +* Easy-to-use Python module, installation in 3 words: `pip install rebound` +* Real-time, 3D visualization, for both C and Python. +* Extensive set of example problems for both C and Python. You can run examples directly from your browser without the need to download or install anything. +* Parallelized WHFast512 integrator for super fast integrations of planetary systems with SIMD AVX512 instructions +* Parallelized with OpenMP (for shared memory systems) +* Parallelized with MPI is supported for some special use cases only (using an essential tree for gravity and collisions) +* The code is 100% open-source. All features are included in the public repository on github. + +## Try out REBOUND + +You can try out REBOUND without installing it. +Simply head over to [the documentation](https://rebound.hanno-rein.de/). +All the C examples have been compiled with emscripten and can run directly in your browser. + +## One minute installation + +You can install REBOUND with pip if you want to only use the python version of REBOUND: + + pip install rebound + +Then, you can run a simple REBOUND simulation such as + +```python +import rebound +sim = rebound.Simulation() +sim.add(m=1.0) +sim.add(m=1.0e-3, a=1.0) +sim.integrate(1000.) +sim.status() +``` + +If you want to use the C version of REBOUND simply copy and paste this line into your terminal (it won't do anything bad, we promise): + +```bash +git clone https://github.com/hannorein/rebound && cd rebound/examples/shearing_sheet && make && ./rebound +``` + + +## Documentation +The full documentation with many examples, changelogs and tutorials can be found at + + + +If you have trouble installing or using REBOUND, please open an issue on github and we'll try to help as much as we can. + +There are also short YouTube videos describing various aspects of REBOUND available at https://www.youtube.com/channel/UCNmrCzxcmWVTBwtDPPLxkkw . + +## Related projects + +### Additional physics +To easily incorporate additional physics modules such as migration forces, GR effects and spin into your REBOUND simulations, see REBOUNDx at https://github.com/dtamayo/reboundx + +### Analytical and semianalytical tools +If you're interested in comparing numerical simulations to analytical and semianalytical tools for celestial mechanics, see Celmech at https://github.com/shadden/celmech + +### Ephemeris-quality integrations of test particles +To generate ephemeris-quality integrations of test particles in the Solar System with a precision on par with JPL's small body integrator, see ASSIST at https://github.com/matthewholman/assist + +## Papers + +There are several papers describing the functionality of REBOUND. + +1. Rein & Liu 2012 (Astronomy and Astrophysics, Volume 537, A128) describes the code structure and the main feature including the gravity and collision routines for many particle systems. + +2. Rein & Tremaine 2011 (Monthly Notices of the Royal Astronomical Society, Volume 415, Issue 4, pp. 3168-3176) describes the Symplectic Epicycle integrator for shearing sheet simulations. + +3. Rein & Spiegel 2015 (Monthly Notices of the Royal Astronomical Society, Volume 446, Issue 2, p.1424-1437) describes the versatile high order integrator IAS15 which is now part of REBOUND. + +4. Rein & Tamayo 2015 (Monthly Notices of the Royal Astronomical Society, Volume 452, Issue 1, p.376-388) describes WHFast, the fast and unbiased implementation of a symplectic Wisdom-Holman integrator for long term gravitational simulations. + +5. Rein & Tamayo 2016 (Monthly Notices of the Royal Astronomical Society, Volume 459, Issue 3, p.2275-2285) develop the framework for second order variational equations. + +6. Rein & Tamayo 2017 (Monthly Notices of the Royal Astronomical Society, Volume 467, Issue 2, p.2377-2383) describes the Simulationarchive for exact reproducibility of N-body simulations. + +7. Rein & Tamayo 2018 (Monthly Notices of the Royal Astronomical Society, Volume 473, Issue 3, p.3351–3357) describes the integer based JANUS integrator. + +8. Rein, Hernandez, Tamayo, Brown, Eckels, Holmes, Lau, Leblanc & Silburt 2019 (Monthly Notices of the Royal Astronomical Society, Volume 485, Issue 4, p.5490-5497) describes the hybrid symplectic integrator MERCURIUS. + +9. Rein, Tamayo & Brown 2019 (Monthly Notices of the Royal Astronomical Society, Volume 489, Issue 4, November 2019, Pages 4632-4640) describes the implementation of the high order symplectic integrators SABA, SABAC, SABACL, WHCKL, WHCKM, and WHCKC. + +## Acknowledgments + +If you use this code or parts of this code for results presented in a scientific publication, we would greatly appreciate a citation. +The simplest way to find the citations relevant to the specific setup of your REBOUND simulation is: + +```python +sim = rebound.Simulation() +-your setup- +sim.cite() +``` + + +## Contributors + +* Hanno Rein, University of Toronto, +* Dan Tamayo, Harvey Mudd College, +* David S. Spiegel, Institute for Advanced Study Princeton, +* Garett Brown, University of Toronto, +* Shangfei Liu, Kavli Institute for Astronomy and Astrophysics at Peking University, +* Ari Silburt, Penn State University, +* and many others! Check the git history to find out who contributed to the code. + +REBOUND is open source and you are invited to contribute to this project! + + +## License + +REBOUND is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +REBOUND is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with REBOUND. If not, see . + diff --git a/rebound/source/__init__.py b/rebound/source/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..de364825e6c101ae263af6edd57c418c345fa281 --- /dev/null +++ b/rebound/source/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +""" +rebound Project Package Initialization File +""" diff --git a/rebound/source/changelog.md b/rebound/source/changelog.md new file mode 100644 index 0000000000000000000000000000000000000000..0b48b43609ff6a244333ec24384f0aea4f25f69a --- /dev/null +++ b/rebound/source/changelog.md @@ -0,0 +1,589 @@ +# Changelog + +This changelog only includes the most important changes in recent updates. For a full log of all changes, please refer to git. + +## Version 4.x + +### Version 4.5.1 +* Added leapfrog integrators of order 4, 6, and 8. Order can be set with `r->ri_leapfrog->order`. +* Heartbeat function is now also called when using `reb_simulation_steps()`. +* OrbitPlot supports more colours. +* Fixed an alignment issue when comparing binary snapshots which could have triggered a segfault. + +### Version 4.5.0 +* Added support for (Frequency) Modified Fourier Transforms. Heavily based on David Nesvorny's code. The new functions are `reb_frequency_analysis()` in C and `rebound.frequency_analysis()` in python. For usage, see C examples `secular_frequencies` and `frequency_analysis` as well as the iPython notebook `FrequencyAnalysis`. +* Support for Jacobi coordinates added when using WHFast with OpenMP. +* Allow negative periods when initializing hyperbolic orbits. + +### Version 4.4.11 +* The collision resolve function now returns a type `enum REB_COLLISION_RESOLVE_OUTCOME`. The actual integer values remain unchanged. +* Bug in TRACE was fixed. +* Convergence check for M_to_E function. +* New API example that shows how to use the Kepler solver without a REBOUND simulation. Updated other examples. + +### Version 4.4.10 +* Version bump to rerun github workflows for pypi uploads + +### Version 4.4.9 +* Fixes a bug that affected collisions searches with a tree code. +* Support for mid-timestep add/remove of particles with TRACE. +* Various small improvements and bugfixes for TRACE. +* IAS15's `adaptive_mode` is now an ENUM. +* Some OpenMP improvements. + +### Version 4.4.8 +* Added support for symplectic correctors with barycentric coordinates in WHFast. + +### Version 4.4.7 +* Added option to disable SSL checks for Horizon queries with `rebound.horizons.SSL_CONTEXT = 'unverified'.` +* Added unit tests. +* Added barycentric coordinates for WHFast. +* Bug fix for when MEGNO is used with adaptive timestepping. +* Added more error messages. +* Fixed various issues in documentation. + +### Version 4.4.6 +* When initializing particles with "uniform" in python, REBOUND now uses its own `reb_random_uniform()` function. This avoids importing the "random" library and makes results reproducible as the random seed of the simulation is used when generating random numbers. +* More cracefull interrupt handling. REBOUND now stop the integration after the next timestep when CTRL-C is pressed the first time. If CTRL-C s pressed twice, then long loops (during gravity, collision calculations) are terminated immediately. Continuing an integration after one CTRL-C press should be easier with this change as the simulation does not get corrupted. +* Fixed typos in documentation. + +### Version 4.4.5 +* Version updated to test github workflows + +### Version 4.4.4 +* Fixed several memory leaks and other memory issues. It is unlikely that any of those bugs did affect an simulation. +* When converting units of a particle, the particle radius is now also converted. +* Added getter/setters for Pal coordinates to the particle structure in python. Syntax is `sim.particles[1].pal_h`, `sim.particles[1].pal_ix`, etc. + +### Version 4.4.3 +* REBOUND now raises ImportError if it detects a size mismatch between the C and python Simulation structures. +* Fixes a bug in the WHFast512 synchronization on non-AVX512 systems. +* Fixes a bug in the SimulationArchive in cases where there are multiple snapshots with t=0. +* Updates TRACE switching condition to match Lu et al (2024). +* TRACE binary file size has been reduced. +* Pericenter passage time is now calculated even if particles are not in a Simulation. + +### Version 4.4.2 +* Fixed bug in TRACE when adding particles. +* Added WHFast fallback for synchronizing WHFast512 simulations with `N_systems` > 1. +* Output version number used to create Simulationarchive if there is a version mismatch. +* Added C example `simulationarchive_fields` which outputs all fields in a simulationarchive for debugging purposes. + +### Version 4.4.1 +* Fixed bug in TRACE for FULL PERI modes. + +### Version 4.4.0 +* Added TRACE integrator. See Lu, Hernandez & Rein (2024) for details on this implementation. + +### Version 4.3.2 +* No longer clipping particles and orbits in visualization. +* Added a scale to visualization. Hide by pressing `t`. +* Option to take a screenshow manually in png (WebGL) or tga (OpenGL) format by pressing `e`. +* Improved `plane` visualization mode. Now supporting hyperbolic orbits. +* Fixed a memory leak in `reb_simulation_copy`. + +### Version 4.3.1 +* Added new `plane` visualization mode for orbits. Press `w` to toggle through available orbit visualization modes. +* Added python interface for screenshot API. +* Fixed an issue where no python exception was raised when a particle was added outside a simulation box. +* Renamed `past_N` to breadcrumbs in visualization module. + +### Version 4.3.0 +* Take screenshots of WebGL based visualizations using the `reb_simulation_output_screenshot()` function. You need to connect one web browser to the simulation in order to take screenshots. +* Improved synchronization of visualization and simulation on Windows with mutex. +* Fixes an issue that might lead to NaN values when less than the maximum number of planets are used in WHFast512. + +### Version 4.2.0 +* It is now possible to programmatically change all aspects of a REBOUND visualization. This can be used to set up default viewing options or to render animations. See the C examples in `animation_solar_system` and `animation_saturn_rings`. +* Reworked matrix operations in visualization routines to follow the Model-View-Projection paradigm. +* Fixed an issues where unit tests would fail because a binary file was not deleted. + +### Version 4.1.1 +* Fixed python wheels for windows. + +### Version 4.1.0 +* New visualization feature that allows you to show past particle positions and orbits (keyboard commands p, u, and i). +* After pausing a simulation, you can now advance it by a single timestep by pressing the down arrow or 50 timesteps by pressing the page down key. +* Visualization now supports scroll to zoom. +* Fixed memory leaks when using custom ODEs. +* Fixed broken links in documentations. + +### Version 4.0.3 +* Default IAS15 timestepping criterion is now `adaptive_mode=2`. See Pham, Rein, and Spiegel (2024) for details. To use the old default timestepping criterion, set `adaptive_mode=1`. +* Fixed a race condition that should improve the responsiveness of web based visualizations. +* Removed the glad dependency from emscripten builds which reduces filesize and improves performance. + +### Version 4.0.2 +* Fixes an issue where the default Makefiles included white spaces after the SERVER and OPENGL variable definitions. This caused the main Makefile to ignore these settings. +* Added `key_callback` function for customizing user interaction in visualizations. +* Added `simulationarchive_viewer` example. +* Included `-sGL_ENABLE_GET_PROC_ADDRESS` flag that is now needed for the latest version of emscripten. + +### Version 4.0.1 +* Include missing python packages + +### Version 4.0.0 +* Major API changes and new features! If you have used a previous version of REBOUND, then you will need to update your code. If you have trouble with the migration, open a GitHub issue! +* Many function and variable names have changed. They now follow a coherent naming convention. See the naming convention section in the documentation for more information. +* New visualization module! Previously, using OpenGL visualization required the GLFW library which led to problems on various operating systems. The new visualization module no longer requires ANY dependencies and is compatible with MacOS, Linux, and Windows. It works by running a local web server to which you can point your browser to. In your web browser, an emscripten compiled version of REBOUND handles the WebGL visualization while constantly updating simulation data over HTTP. You can use ssh and port forwarding to visualize simulations on remote servers. Check out the documentation for more details on this new module. +* OpenGL for all the examples has been turned off by default so that new users don't get stuck at this step. To turn on OPENGL simply change the flag in the Makefile. +* Added emscripten support. All C examples (including those using visualizations) are now automatically compiled with emscripten on readthedocs.org so you can run from within the browser. No download or installation required. +* A race condition in OpenGL visualization has been removed. Visualizations run much smoother. +* `reb_random` functions now callable with `r=NULL`. If `r=NULL` then the time and PID is used as a seed. +* Removed support for Simulationarchives with version 2. Added some additional support for reading corrupt/old archives. +* Fixed memory leak in `reb_simulation_copy`. +* Consistent integer sizes for 32/64bit. This includes padding for `reb_particle` which is stored in the Simulationarchive. + + +## Version 3.x + +### Version 3.28.4 +* WHFast512 now support the integration of 2 and 4 planet systems in parallel. Providing a speed up of up to 10x. +* The sqrt7 function used by IAS15 now support a wider range of input arguments. + +### Version 3.28.3 +* Removed distutils requirement in preparation for python 3.12. +* Removed rebound.InterruptiblePool as it no longer works with recent python version. Updated examples. +* Added Holmberg example. +* Added `adaptive_mode==3` for IAS15 (Aarseth 1985). + +### Version 3.28.2 +* Implemented own fmemopen implementation on MacOS. This is mainly to appease conda-forge builds. +* Improved sqrt7 algorithm allows larger convergence interval. + +### Version 3.28.1 +* Improved support for reading old and corrupted Simulationarchives. +* Renamed `ri_ias15.epsilon_global` to `ri_ias15.adaptive_mode`. +* Added new timestep method for IAS15 `ri_ias15.adaptive_mode = 2`. This is experimental for now. Details to be described in Pham, Rein & Spiegel (in prep). +* Added unit tests to check for fused multiply add instruction (these break reproducibility). +* Added phony target in C Makefile to force rebuilding librebound whenever building examples. + +### Version 3.28.0 +- Native Windows support. REBOUND can now be built natively on Windows (without WSL) using the Microsoft Visual Studio Compiler. +- Python Wheels are now provided for Linux, MacOS, and Windows. This should significantly speed up the installation process on a wide variety of systems. + +### Version 3.27.0 +* In python, Simulation and Particle objects are now picklable. Just like loading Simulations from a binary file, function pointers will need to be re-set manually after unpickling. +* The difference between simulations can now be printed out in a human readable form. Python syntax: `sim.diff(sim2)`. C syntax: `reb_simulation_diff(sim2, sim1, 1)`. +* Reading Simulationarchives with version < 2 is no longer supported. +* The POSIX function fmemopen() is now required to compile REBOUND. This should not affect many users. However, if you are using macOS, the version needs to be >= 10.13 (this version of macOS, High Sierra, was released in 2017). +* Internal changes on how Simulationarchives are written. +* Internal variable names that represent the size of allocated buffers now consistently include the name `N_allocated`. +* The TES (Terrestrial Exoplanet Integrator) has been removed. If you wish to use TES, you will need checkout an earlier version. + +### Version 3.26.3 +* A few more changes to reduce the number of compiler warnings. This should not affect any calculation. + +### Version 3.26.2 +* Fixed various signed/unsigned int issues. This should reduce the number of compiler warnings but not affect any calculation. + +### Version 3.26.1 +* Added support for `AVX512` and `FFP_CONTRACT_OFF` environment variables when using pip to install REBOUND. + +### Version 3.26.0 +* Added WHFast512 integrator (Javaheri, Rein, Tamayo 2023) + +### Version 3.25.1 +* Bug fixed that prevented the installation via PyPi + +### Version 3.25.0 +* MPI parts updated and unit tests added +* Fixed machine independence bug in TES. + +### Version 3.24.3 +* Updated unit tests so they work on 32bit machines + +### Version 3.24.2 +* Fixed bug in TES ctypes structure + +### Version 3.24.1 +* Added CORS proxy for Horizons request in pyodide +* Smoother OpenGL animations when using usleep +* TES calculates orbital period automatically + +### Version 3.24.0 +* Added support for Simulationarchive larger than 4 GB. +* Updated documentation for Lyapunov characteristic number. + +### Version 3.23.5 +* Added new units shortcuts (year,years,massist) +* Rearranged some loops and switch statements (doesn't affect floating point numbers). + +### Version 3.23.4 +* Added pyproject.toml file + +### Version 3.23.3 +* Changed the way REBOUND reverses the integration direction when the sign of the timestep is inconsistent with respect to the requested final time. +* Fixes a memory leak when a tree code is used +* Fixes an issue where MERCURIUS was not bit-wise reproducible when safe mode was turned off. + +### Version 3.23.2 +* Minor changes to the python side of Vec3d to make it more compatible with numpy. + +### Version 3.23.1 +* Minor changes related to the REBOUND Rotations framework. + +### Version 3.23.0 +* Added the REBOUND Rotations framework. +* Fixes an issue with showing an incorrect periastron location in OrbitPlot for high mass-ratio systems. +* Adds pre and post timestep calls to the ode framework. + +### Version 3.22.0 +* OrbitPlot is now a class. Checkout the OrbitPlot.ipynb tutorial. This change allows for interactive plots and much faster updates to existing plots. This is great for rendering animations! + +### Version 3.21.0 +* Automatic rescaling of first order variational particles has been added. This will allow you to integrate chaotic systems for longer and obtain a more accruate measure of MEGNO and the Lyapunoc exponent. +* Added `sim.stop()` / `reb_simulation_stop()` to end an integration from within the heartbeat function. + +### Version 3.20.1 +* Pal coordinates have been added to the `reb_orbit` struct. + +### Version 3.20.0 +* A new integrator has been added, the Terrestrial Exoplanet Simulation (TES). + +### Version 3.19.10 +* Fixes another bug int he BS integrator when additional forces are used. + +### Version 3.19.9 +* Two bugs fixed in the BS integrator. One was related to unitialized memory and the other to issues when the particle number changed. + +### Version 3.19.5 +* Workaround for urllib support in pyodide added +* Silent warning when InterruptiblePool is not available + +### Version 3.19.4 +* InterruptiblePool is optional. +* Fixed an issue that occured when switching integrators while using the Simulationarchive. +* Renamed `srand_seed` to make it user accessible. + +### Version 3.19.3 +* Added several examples. +* Changed how pypi is rendering the documentation. + +### Version 3.19.2 +* Fixes a bug relates to test particles of type 0 in MERCURIUS. + +### Version 3.19.1 +* Some compilers seem to complain that a constant cannot be initialized from a constant. Fixed this so that REBOUND works on colaboratory. + +### Version 3.19.0 +* Added a Gragg-Bulirsch-Stoer integrator (short BS for Bulirsch-Stoer). This is an adaptive integrator which uses Richardson extrapolation and the modified midpoint method to obtain solutions to ordinary differential equations. The version in REBOUND is based on the method described in Hairer, Norsett, and Wanner 1993 (see section II.9, page 224ff). +* Added the ability to integrate arbitrary ordinary differential equations with REBOUND. The ODEs can be couple to the N-body simulation. This can be used to simulate spin, tides, and other physical effects. The user-defined ODEs are integrated with the new BS integrator. + +### Version 3.18.1 +* Various improvements and fixes relates to NASA Horizons: small bodies are retrieved correctly, the dates now work with fractional JD values and dates in the format YYYY-MM-DD HH:MM:SS are now supported. + +### Version 3.18.0 +* Fixes an issue in the Simulationarchive that prevented REBOUND from seeing more than one snapshot. This only affected simulations with a large number of particles. + +### Version 3.17.5 +* REBOUND will now uses the new HTTP API from NASA Horizons. This is significantly faster than the old telnet version. Thanks to Lukas Winkler for implementing this. + +### Version 3.17.4 +* REBOUND will now attempt to recover binary files and Simulationarchives which have been corrupted. Simulations can be restarted from corrupt files and in most cases the corrupt files will fix themselves. + +### Version 3.17.3 +* Allow for Horizon queries with future JD dates. + +### Version 3.17.2 +* Moved some function declarations to rebound.h. This is a temporary fix for REBOUNDx. + +### Version 3.17.1 +* Fixed an issue where the simulation struct in python did not match the one in C. This might have lead to unexpected behaviour in rare cases. +* Fixed various typos in the documentation +* MERCURIUS switching functions can now be set from Python. Also inluded more built-in switching functions from Hernandez (2019). + +### Version 3.17.0 +* Added new 'reb_simulation_add_fmt()' function. This makes adding particles in C as easy as in python. +* Orbits can now also be initialized using the eccentric anomaly. +* Fixed an issue which prevented one loop in the gravity routine form being parallelized with OpenMP. +* Added a warning message when test particles have finite mass. +* More reliable reading of corrupt Simulationarchive files. + +### Version 3.16.0 +* MERCURIUS: If encounters only involve test-particles (type 0), then the algorithm is now resetting the coordinates of all massive particles after the encounter step. This only changes the outcome at the machine precision, but it makes the trajectories of massive particles independent of the close encounter history. Thanks to Kat Deck for this feature! +* MERCURIUS: The gravity routine is now $O(0.5 \cdot N^2)$ instead of $O(N^2)$ for non-OPENMP runs. This should lead to a noticable improvement in runtime. + +### Version 3.15.0 +* Orbital parameters of particles can now be changed in-place. For example: 'sim.particles[1].e += 0.1'. +* Implemented more chatty repr functions for most object. Printing REBOUND objects should now give some useful information. +* Improved support for adding/removing particle in MERCURIUS during collisions. +* REBOUND now outputs an error message when one is trying to remove a particle with a negative index. +* Small updates to the documentation. +* New ipython example added, showing how to use a python collision resolve function. + +### Version 3.14.0 +* Due to a bug, WHFast was not thread-safe. It is now. +* Random number generator seed is now stored in the Simulationarchive. + This allows you to get reproducible random number even after restarting a simulation. +* Random numbers generated with the `reb_rand_*()` functions were not thread-safe. + They are thread-safe now. Note that this required an API change. All `reb_rand_*()` + functions now require the simulation structure as an argument. This is because the + random number generator seed is now stored in the simulation structure. + +### Version 3.13.2 +* Correct handling of test particles in reb_transformations. +* Small bug fixes + +### Version 3.13.1 +* WHFast: Fixes multiple issues with testparticles in WHFast. + +### Version 3.13.0 +* IAS15: Fixes a bug which leads to a biased energy error in long term integrations with fixed timesteps (see Hernandez and Holman 2020). The old version of IAS15 can still be used for the time being by setting ri_ias15.neworder=0. +* IAS15: Does not take variational particles into account when predicting new timesteps. This should be beneficial during close encounters. +* A few improvements have been made to the Simulationarchives code including a more efficient loading procedure for large datasets. + +### Version 3.12.3 +* Various small bug fixes +* Added a new function sim.cite() to automatically generate citations depending on the current simulation settings. + +### Version 3.12.2 +* Various bug fixes to MERCURIUS +* Performance increase when using the BASIC Gravity Routine with OpenMP + +### Version 3.12.1 +* Bug fixes to LINE and LINETREE algorithms + +### Version 3.12.0 +* Added LINETREE collision search algorithm. + This algorithm uses a tree to check if any two particle trajectories overlapped during the last timestep. This + should be beneficial in large N, low density situation as it allows for much larger timesteps. A modification of the + collision resolve routine might be necessary to allow for multiple collisions of the same particle during one timestep. + This depends on the application and the default is to only allow one collision per timestep. + +### Version 3.11.1 +* Added support for test particles and first-order variational particles to the Embedded Operator Splitting (EOS). +* BASIC Gravity routine changed from O(N^2) to O(0.5 N^2). This should lead to a speed-up in most cases but will break bit-wise reproducibility from earlier versions as the ordering of floating point operations has changed. + +### Version 3.11.0 +* This version adds the new Embedded Operator Splitting methods from Rein (2019). See the tutorial in the ipython_examples folder for how to use them. + +### Version 3.10.2 +* Updates to OrbitPlot. Includes better layout of plot and some syntax changes. See OrbitPlot documentation for the new syntax. + +### Version 3.10.1 +* Small syntax changes for SABA integrator family. +* Includes high order integrators by Blanes et al. (2013). + +### Version 3.10.0 +* Changes for the new version of REBOUNDx. + +### Version 3.9.0 +* Added new high order symplectic integrators from Wisdom et al. (1996) and Laskar & Robutel (2001). The implementation of these integrators are discussed in Rein, Tamayo & Brown (2019). +* Implemented new bit-wise comparison functions for simulations. Python syntax is simply sim1==sim2. +* Fixed a bug in IAS15 which prevented a restarted simulation to reproduce the original simulation exactly. + +### Version 3.8.3 +* Improves and fixes various issues related to variational equations and MEGNO. + +### Version 3.8.2 +* Fixes a bug which resulted in duplicate snapshots in Simulationarchives when restarting simulations. + +### Version 3.8.1 +* Syntax change on the python side to create a simulation from a binary file or Simulationarchive: + + ```python + rebound.Simulation.from_file("test.bin") becomes rebound.Simulation("test.bin") + rebound.Simulation.from_archive("test.bin",5) becomes rebound.Simulation("test.bin",5) + ``` + +### Version 3.8.0 +* The hybrid integrator MERCURIUS has been completely rewritten. It can now much more easily be used in simulations where physical collisions occur. There are no more hidden particle arrays in the background, meaning adding and removing particles can occur in the same way as for other integrators. It also works reliably with any additional forces. +* The old hybrid integrator HERMES has been removed. MERCURIUS should always be equal or better in performance and accuracy. + +### Version 3.7.1 +* Added getBezierPaths to Simulationarchive to allow for easy plotting of complicated trajectories. To do this, store a lot of snapshots in the Simulationarchive (several per orbit!). +* Added functionality to add, subtract, multiply and divide simulations. This might be useful when developing new algorithms, but is most likely not useful for most users. + +### Version 3.7.0 +* Added a deep copy functionality: reb_simulation_copy() in C, and sim.copy() in python. +* Refactored WHFast to enable calling only certain substeps. + +### Version 3.6.8 +* Added the rhill property to reb_orbit in C and the Orbit and Particle classes in Python. This parameter corresponds to the circular Hill radius of the particle: $ a (m/(3M)^{1/3}$. + +### Version 3.6.7 +* Fixes an issue related to collisions and the Mercurius integrator that prevented the last_collision property to be updated. + +### Version 3.6.6 +* New: Fancy plotting routine. Usage: rebound.OrbitPlot(sim, fancy=True) + +### Version 3.6.5 +* One can now add particles from NASA Horizons using Julian Days. For example: sim.add("Earth", date="JD2458327.500000") + +### Version 3.6.4 +* Fixes a memory leak when using the old Simulationarchive version. Thanks to Ian Rabago for reporting the issue. + +### Version 3.6.2 +* Fixes a memory leak in the Simulationarchive read function. + +### Version 3.6.1 +* Removed function calls to open_memstream and fmemopen which might not work on older Mac OSX versions. This only affects the internals and there are no changes to user interface. +* Minor bug fixes + +### Version 3.6.0 +* Simulationarchive Version 2. With the new version of the Simulationarchive file format, you can now create snapshots of your simulations without any restrictions. You can change the number of particles, the timestep, even the integrator used during the integration. REBOUND automatically detects what has changed and only stores the differences in incremental snaphots. This reduces the filesize while keeping the format as flexible as possible. The old Simulationarchive Version 1 is still supported for now but might become deprecated in the future. All examples have been updated. As usual these are as usual good starting points for understanding the functionality and the syntax. + +### Version 3.5.12 +* Added REB_COLLISION_LINE. This is a collision detection routine which serves for collisions during the last timestep, assuming that all particles travel along straight lines. This can be useful in cases where not every collision needs to be detected exactly, but the overall collision rate should be reproduced. The algorithm is O(N**2). +* Bug related to N_active and variational particles has been fixed. +* A bug where WHFast might not converge in rare cases involving negative timesteps has been fixed. + +### Version 3.5.11 +* Changed default collision behaviour from hardsphere bouncing to halting the simulation. An exception is raised when using the python version. In C, you need to check the status flag after integrating the simulation. + +### Version 3.5.10 +* Refactored OrbitPlot. + +### Version 3.5.9 +* SIGINT handler added. Allows for garceful exit and keyboard interrupts (even from python). + +### Version 3.5.8 +* WebGL widget text overlay added. + +### Version 3.5.7 +* Bug fixes related to WebGL widget and ipywidgets version 6 + +### Version 3.5.6 +* Updated WebGL widget to work with ipywidgets version 7 + +### Version 3.5.5 +* Various fixed for Mercurius + +### Version 3.5.4 +* Bug fix for N_active=-1 (default) + +### Version 3.5.3 +* Allow for better parallelization of WHFast with OpenMP. +* Addded example of the Solar System with Testparticles. +* Made simulationarchive_append a public function (might be useful for some hacking projects). + +### Version 3.5.2 +* Fixes an issue with the WebGL widget. +* Fixes an issue with external forces and MERCURIUS. + +### Version 3.5.1 +* MERCURIUS is not compatible with binary files and the Simulationarchive. + +### Version 3.5.0 +* The WHFast integrator now supports Jacobi coordinates (default), democratic heliocentric coordinates and WHDS coordinates. The previously separate WHFastHelio integrator has been removed. The coordinate system can now be changed by simply setting the coordinates flag in the ri_whfast struct. +* Included an experimental new integrator MERCURIUS. This is similar to the hybrid integrator in Mercury but uses WHFast and IAS15. Not ready for production yet. + +### Version 3.4.0 +* Added a screenshot functionality for the WebGL ipython widget. This lets you take screenshots programmatically which is useful to create movies of simulations. + +### Version 3.3.1 +* Removed the march=native compiler flag as it seems to be problematic for some OSX/Sierra compilers. + +### Version 3.3.0 +* JANUS integrator added. This is a bit-wise reversible high-order symplectic integrator. At this time, it remains experimental. Details about this integrator will be published in an upcoming paper. + +### Version 3.2.4 +* Changes to the WHFastHelio integrator. This integrator now uses democratic heliocentric coordinates and a Hamiltonian splitted as proposed by Hernandez and Dehnen (2017), WHDS, which splits the Hamiltonian into three parts. It has the advantage that the integrator solves the two body problem exactly. It is not compatible with symplectic correctors, this functionality has been removed for WHFastHelio. For very high accuracy integrations of stable planetary systems, the WHFast integrator in Jacobi coordinated (and potentially symplectic correctors) should be better suited. + +### Version 3.2.3 +* Various minor bug fixes. Added pre-timestep modifications for REBOUNDx. + +### Version 3.2.2 +* Various minor bug fixes. One related to exact_finish_time=1. + +### Version 3.2.0 +* Added real-time interactive 3D visualizations using WebGL for Jupyter notebooks. This is an early release. Not everything might be working yet and new feature will be added to the widget class. To try it out, simply run `sim.widget()` in a Jupyter notebook. Note that you need to have ipywidgets installed and enabled. +* Minor changes to the Visualization backend. This should not have any consequences for users. + + +### Version 3.1.1 +* Now stores the first characters of the current githash in binary files. This is helpful when trying to restart simulations from a binary file and making sure one uses the same version of REBOUND than in the original run. Currently, the git hash is not automatically compared when reloading a binary file. To view the githash, use e.g. hexdump. The hash appears between the first and second zero character in the first 64 bytes of the file. + +### Version 3.1.0 +* Updated visualization. REBOUND now uses a modern version of OpenGL (3.3) that allows for custom shaders and therefore better looking visualizations. However, REBOUND now requires glfw3 to compile the visualization module. If you are on a Mac, then the easiest way to install the glfw3 library is with homebrew: `brew tap homebrew/versions && brew install glfw3`. If you are on Linux, you can install it with your package manager, for example with `sudo apt-get install libglfw3-dev`. + +### Version 3.0.0 +* Introducing the Simulationarchive. The Simulationarchive allows for exact (bit-by-bit) reproducibility in N-body simulations and a completely new way of analyzing simulations. See Rein&Tamayo (2017) for details. +* The binary format has changed. Binary files created with an earlier version of REBOUND can not be loaded with this version. However, future binary files will be backwards compatible from this point forward. + + +## Version 2.x +### Version 2.20.6 +* Minor bug fixes in HERMES integrator and some examples. + +### Version 2.20.5 +* NASA Horizons changed a telnet command. This update implements those changes and restores access to NASA Horizons from within REBOUND. + +### Version 2.20.4 +* Improvements to the Kepler solver. This is typically only relevant for extremly long simulation (1e11 timesteps or more) and extremely accurate simulation with symplectic correctors and a relative energy error of less than 1e-10. + +### Version 2.20.3 +* Small changes to HERMES integrator. It now has a Solar Switch Factor SSF to allow for close encounters with the central object. + +### Version 2.20.2 +* Added adaptive HSF for HERMES integrator. More documentation and paper to follow. + +### Version 2.20.1 +* Added symplectic correctors for WHFastHelio integrator. See Wisdom (2006). +* Improved accuracy of symplectic corrector coefficients for WHFast and WHFastHelio. + +### Version 2.20.0 +* Added new WHFastHelio integrator. This integrator uses the WHFast Kepler solver, but uses democratic heliocentric coordinates (WHFast itself uses Jacobi coordinates). Heliocentric coordinates are advantages if planets swap positions. + +### Version 2.19.2 +* Changes to how particle hashes are handled. + +### Version 2.19.1 +* This version removes the old SWIFTER based Wisdom-Holman routine, INTEGRATOR_WH. It wasn't working correctly for a while and the WHFast (INTEGRATOR_WHFAST) should be superior in any possible case we can think of. + +### Version 2.19.0 +* Added warning/error message system. This allows warning messages to be shown directly in iPython/python programs, rather than being shown on the console. To hide the warning messages, use a filter, e.g. +.. code:: python + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + # Execute a command which triggers a warning message. + # The message will not show up. +* Improvements regarding the WHFast logic for hyperbolic orbis. No changes should be noticeable to users. + +### Version 2.18.9 +* Added the reb_simulation_get_serialized_particle_data function for fast access to particle data via numpy array. The full syntax is explained in the documentation. Here is a short example: +.. code:: python + + import numpy as np + a = np.zeros((sim.N,3),dtype="float64") + sim.serialize_particle_data(xyz=a) + print(a) + + +### Version 2.18.5 +* When loading a simulation from a binary file, REBOUND now checks if the version of the binary file is the same as the current version. +* When saving a simulation to a binary file, all the auxiliary arrays for IAS15 are now stored. This allows for bit-by-bit reproducibility in simulations that are making use of checkpoints. + + +### Version 2.18.0 +* We replaced the old HYBRID integrator with the new and better HERMES integrator. Details of the HERMES integrator will be explained in an upcoming paper Silburt et al (2016, in prep). + +### Version 2.17.0 +* What used to be called ``id`` in the particle structure is now called ``hash``. This can be used to uniquely identify particles in a simulation. In many cases, one can just identify particles by their position in the particle array, e.g. using ``sim.particles[5]``. However, in cases where particles might get reordered in the particle array (e.g. when using a tree code), when particles can merge (by using the ``collision_resolve_merge`` routine), or when particles get added or removed manually. +* The syntax is as follows: +.. code:: python + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1) + # Setting a hash using a string: + sim.particles[1].hash = "planet1" + # Finding a particle using a string: + p = sim.get_particle_by_hash("planet1") + # Setting a random unique hash: + sim.particles[1].hash = sim.generate_unique_hash() + # Save unique hash to find particle later + uhash = sim.particles[1].hash + # Find particle using the hash + p = sim.get_particle_by_hash(uhash) + + + +### Version 2.0.0 +* We made many changes to the code. Most importantly, REBOUND is now thread-safe and does not use global variables anymore. All the variables that were previously global, are now contained in the ``reb_simulation`` structure. This has many advantages, for example, you can run separate simulations in parallel from within one process. +* We also made it possible to choose all modules at runtime (compared to the selection in the ``Makefile`` that was used before). This is much more in line with standard UNIX coding practice and does not severely impact performance (it might even help making REBOUND a tiny bit faster). This makes REBOUND a fully functional shared library. We added a prefix to all public functions and struct definitions: ``reb_``. +* There are still some features that haven't been fully ported. Most importantly, the MPI parallelization and the SWEEP collision detection routine. +* The best way to get an idea of the changes we made is to look at some of the example problems and the new REBOUND documentation. If you have trouble using the new version or find a bug, please submit an issue or a pull request on github. + diff --git a/rebound/source/docs/addingparticles.md b/rebound/source/docs/addingparticles.md new file mode 100644 index 0000000000000000000000000000000000000000..0679acded8f7a9bbaa38c1843ccc5acc1836b202 --- /dev/null +++ b/rebound/source/docs/addingparticles.md @@ -0,0 +1,169 @@ +# Adding particles + +![type:video](https://www.youtube.com/embed/FoTwDtAeJyk) + +Once you've created a [simulation object](simulation.md), you can add particles to it. +REBOUND supports several different ways to do that. +Also check out the [discussion on particle operators](particleoperators.md). + +## Adding particles manually +One way to add a particle to a simulation is to first manually create a particle object, then calling a function to add the particle to the simulation. +Because the function will make a copy of the particle, you can safely delete the original particle object after you've added it to a simulation. +The following code shows an example on how to add particles this way: + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + struct reb_particle p = {0}; + p.m = 1.; + p.x = 1.; + reb_simulation_add(r, p); + ``` + !!! Important + The `= {0}` syntax above ensures that the struct is initialized with zeros. + Otherwise, you need to set every member of the struct to ensure that there are no + uninitialized values. + + +=== "Python" + ```python + sim = rebound.Simulation() + p = rebound.Particle() + p.m = 1. + p.x = 1. + sim.add(p) + ``` + +You can also use orbital parameters to initialize the particle object. +=== "C" + In C, this is done by calling the `reb_particle_from_orbit` function. Its arguments are gravitational constant, primary object, mass, semi-major axis, eccentricity, inclination, longitude of ascending node, argument of pericenter, and true anomaly. + It returns an initialized particle object which you can then add to the simulation. + ```c + struct reb_simulation* r = reb_simulation_create(); + struct reb_particle primary = {0}; + primary.m = 1; + reb_simulation_add(r, primary); + struct reb_particle planet = reb_particle_from_orbit(r->G, primary, 1e-3, 1., 0., 0., 0., 0., 0.); + reb_simulation_add(r, planet); + ``` + + You can also the coordinates described by [Pal 2009](https://ui.adsabs.harvard.edu/abs/2009MNRAS.396.1737P/abstract) to initialize orbits using the following function: + + ```c + struct reb_particle reb_particle_from_pal(double G, struct reb_particle primary, double m, double a, double lambda, double k, double h, double ix, double iy); + ``` + Here, `lambda` is the longitude, `h` is $e\cos(\omega)$, `k` is $e\sin(\omega)$, `ix` and `iy` are the x and y components of the inclination respectively. + +=== "Python" + In python, you can create and initialize particles using the constructor of the `Particle` class. + ```python + sim = rebound.Simulation() + primary = rebound.Particle(m=1., x=1.) + sim.add(primary) + ``` + If you want to use orbital parameters, you need to pass the primary and the simulation to the constructor: + ```python + planet = rebound.Particle(simulation=sim, primary=primary, m=1e-3, a=1., e=0.1) + ``` + You can use any combination of orbital parameters that makes physically sense. + See [the discussion on orbital elements](orbitalelements.md) for more details. + + !!! Note + In most cases you can simply use the convience function described below. + This way you don't have to create a particle object just to add it to the simulation. + +## Convenience functions +By far the easiest way to add particles to REBOUND is to use a convenience function. +=== "C" + In C, the function is called `reb_simulation_add_fmt` and has the following syntax: + ```c + void reb_simulation_add_fmt(struct reb_simulation* r, const char* fmt, ...); + ``` + This is a [variadic function](https://en.cppreference.com/w/c/variadic) which takes a variable number of arguments similar to the `printf` function. + The following code shows how this function is used. + ```c + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_add_fmt(r, "m", 1.0); // star at origin with mass 1 + reb_simulation_add_fmt(r, "m a", 1e-3, 1.0); // planet with mass 1e-3 and semi-major axis 1 + reb_simulation_add_fmt(r, "m a e", 1e-3, 2.0, 0.1); // planet with mass 1e-3, semi-major axis 2, and eccentricity 0.1 + reb_simulation_add_fmt(r, "m x vy", 1e-6, 1., 1.); // planet with mass 1e-6, cartesian coordinates + ``` + + The first argument is the simulation to which you want to add the particle. + The second argument is a format string and it determines how many other arguments the function expects. + + !!! Danger + You need to pass exactly the right number of arguments to `reb_simulation_add_fmt` as indicated by your format string. + Each argument also has to be the right type (mostly double floating point numbers). + The latter is particularly important. If you call the function like this: + ```c + reb_simulation_add_fmt(r, "m a", 1, 1); + ``` + then the arguments are integers, not doubles. This can lead to unexpected behaviour that is very difficult to debug. + The correct way to call the function is by making sure the arguments are doubles (by adding a `.`): + ```c + reb_simulation_add_fmt(r, "m a", 1.0, 1.0); + ``` + + The following parameters are supported: + + Parameter | Description + --------- | ----------- + `m`| mass (default: 0) + `x, y, z`| positions in Cartesian coordinates (default: 0) + `vx, vy, vz`| velocities in Cartesian coordinates (default: 0) + `primary`| primary body for converting orbital elements to cartesian (default: center of mass of the particles in the passed simulation, i.e., this will yield Jacobi coordinates as one progressively adds particles) + `a`| semi-major axis (a or P required if passing orbital elements) + `P`| orbital period (a or P required if passing orbital elements) + `e`| eccentricity (default: 0) + `inc`| inclination (default: 0) + `Omega`| longitude of ascending node (default: 0) + `omega`| argument of pericenter (default: 0) + `pomega`| longitude of pericenter (default: 0) + `f`| true anomaly (default: 0) + `M`| mean anomaly (default: 0) + `E`| eccentric anomaly (default: 0) + `l`| mean longitude (default: 0) + `theta`| true longitude (default: 0) + `T`| time of pericenter passage + `h, k, ix, iy`| See [Pal 2009](https://ui.adsabs.harvard.edu/abs/2009MNRAS.396.1737P/abstract) for a definition (default: 0) + `r`| physical particle radius + + You can use any combination of these parameters at the same time. + If a combination is unphysical, no particle will be added and an error will be outputted. + For example, you can only specify one longitude or anomaly. + +=== "Python" + ```python + sim = rebound.Simulation() + sim.add(m=1) # star at origin with mass 1 + sim.add(m=1e-3, a=1.) # planet with mass 1e-3 and semi-major axis 1 + sim.add(m=1e-3, a=2., e=0.1) # planet with mass 1e-3, semi-major axis 2, and eccentricity 0.1 + sim.add(m=1e-6, x=1., vy=1.) # planet with mass 1e-6, cartesian coordinates + ``` + +See [the discussion on orbital elements](orbitalelements.md) for more details. + + +## Solar System planets +If you want to quickly try something out, you can use a set of initial conditions for the Solar System that come with REBOUND: + +```python +sim = rebound.Simulation() +rebound.data.add_solar_system(sim) +``` + +and similarly for the outer Solar System: + +```python +sim = rebound.Simulation() +rebound.data.add_outer_solar_system(sim) +``` + + +This is currently only supported in python. + +!!! Note + These initial conditions are intended for testing integration methods. They might not be very accurate and should not be used for detailed dynamical studies of the Solar System. + + diff --git a/rebound/source/docs/api.md b/rebound/source/docs/api.md new file mode 100644 index 0000000000000000000000000000000000000000..b69b870523d1971566cff2101833434cec6c3d3f --- /dev/null +++ b/rebound/source/docs/api.md @@ -0,0 +1,20 @@ +# REBOUND API +These pages describe the main features of REBOUND and its API. + +There are two structures (*objects* in Python) which you will encounter frequently when working with REBOUND. +The first is the [Simulation structure](simulation.md) which contains all the configuration, status and particle data of one REBOUND simulation. +The second is the [Particle structure](particles.md) which represents one particle in a simulation. + +REBOUND is a modular code. +You can combine different [gravity solvers](gravity.md), [collision detection algorithms](collisions.md), [boundary conditions](boundaryconditions.md), and [integration methods](integrators.md). +Not all combinations make physically sense, and not all combinations are supported. +We describe the different modules and their configuration in this section. + +Also make sure to some of the other concepts documented in this section. +They will help you understand the [units](units.md) used in REBOUND, how REBOUND handles [orbital elements](orbitalelements.md), how to save and load simulations to [Simulationarchive](simulationarchive.md) files, how to use [chaos indicators](chaos.md), how to use the [browser based 3D visualization](visualization.md), and several other topics. + + +!!! Info + Because the C and Python versions of REBOUND are very similar, we describe both languages in one documentation. + The syntax and examples are provided in both C and Python. + Use the tabs to switch between them. diff --git a/rebound/source/docs/binaryformat.md b/rebound/source/docs/binaryformat.md new file mode 100644 index 0000000000000000000000000000000000000000..993453a0ea972131662eb9023f26aa992b29aebe --- /dev/null +++ b/rebound/source/docs/binaryformat.md @@ -0,0 +1,172 @@ +# Binary Format + +REBOUND comes with its own binary format. +The binary format allows you to store a current simulation state to a file or to memory. +The binary format is also used when you make a copy of a simulation or when you compare two simulations with each other. +The Simulationarchive is an extension of the binary format which allows you to store multiple snapshots of a simulation in one file. +This page explains the details of the binary format. +It is mainly intended for people who wish to extend the built-in REBOUND functionality. +You do not need to know those details if you're only working with binary files to save and load simulations. + +REBOUND uses two structures for the binary files: + +```c +struct reb_binary_field { + uint32_t type; + uint64_t size; +}; +``` + +and + +```c +struct reb_simulationarchive_blob { + int32_t index; + int32_t offset_prev; + int32_t offset_next; +}; +``` + +!!! note + Before version 3.18, the offset datatype was `int16_t`. This caused problems for simulations with a large number of particles and has since been change to `int32_t`. + +## Binary file (one snapshot) +You create a binary file if you save a simulation +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... setup simulation ... + reb_simulation_save_to_file(r, "snapshot.bin"); + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + // ... setup simulation ... + sim.save_to_file("snapshot.bin") + ``` +Such a binary file with one snapshot is simply a set of `reb_binaryfield`s followed by one `reb_simulationarchive_blob` at the end, for example: + +``` +reb_binary_field: + type: DT + size: 8 bytes + +8 bytes of data representing the value of DT + +reb_binary_field: + type: PARTICLES + size: 128 bytes + +128 bytes of data representing the values of PARTICLES + +... + +reb_binary_field: + type: END + size: 0 + +reb_simulationarchive_blob: + index: 0 + offset_prev: 0 + offset_next: 0 +``` + +Each of the binary fields provides the context (type and size) for the data that immediately follows the field. +The type is an integer defined in the `reb_binary_field_descriptor_list` (see below). +The last binary field of type `9999` (`end`) to indicate that the snapshot ends here. + +!!! note + Before version 3.27 data was encoded using the enum `REB_BINARY_FIELD_TYPE` instead of `reb_binary_field_descriptor_list`. + + +## Simulationarchive file (multiple snapshots) +The binary file above can also be interpreted as a Simulationarchive with one snapshot. +You can append many (millions!) of snapshots to a binary file. +REBOUND only stores data that has changed since the original snapshot (typically the particle data, time, etc). +This allows for a very compact file size, while still maintaining bit-wise reproducibility. + +Each snapshot is separated by a `reb_simulationarchive_blob`. +The blob contains the offset to the previous and next blobs. +This allows REBOUND to quickly jump from one blob in the archive to the next. +Between the blobs are the same `reb_binary_field`s we already encountered for a binary file with one snapshot. +Thus, a Simulationarchive file with multiple snapshots looks something like this: + +``` +reb_binary_field: + type: DT + size: 8 bytes + +8 bytes of data representing the value of DT + +... more reb_binary_fields ... + +reb_binary_field: + type: END + size: 0 + +reb_simulationarchive_blob: + index: 0 + offset_prev: 0 + offset_next: 256 (offset to the next blob) + +reb_binary_field: + type: DT + size: 8 bytes + +8 bytes of data representing the value of DT + +... more reb_binary_fields ... + +reb_binary_field: + type: END + size: 0 + +reb_simulationarchive_blob: + index: 1 + offset_prev: 256 (offset to the previous blob) + offset_next: 256 (offset to the next blob) + +reb_binary_field: + type: DT + size: 8 bytes + +8 bytes of data representing the value of DT + +... more reb_binary_fields ... + +reb_binary_field: + type: END + size: 0 + +reb_simulationarchive_blob: + index: 2 + offset_prev: 256 (offset to the previous blob) + offset_next: 0 +``` + +The offsets are also used as a sort of checksum to detect if a binary file has been corrupted (for example because a user ran out of disk space). +If a binary file is corrupted, REBOUND attempts some magic and will recover the last snapshot which does not appear corrupted. +You will see a warning message when that happens and should proceed with caution (make a backup!). + + +## Binary Field Descriptor + +REBOUND maintains a list of fields it needs to input/output in order to restore a simulation. +This list is of type `struct reb_binary_field_descriptor[]` and defined in `output.c` as `reb_binary_field_descriptor_list`. +A single struct `reb_binary_field_descriptor` contains the information to input/output one REBOUND field, for example the current simulation time `t`: + +```c + struct reb_binary_field_descriptor fd_t = { 0, REB_DOUBLE, "t", offsetof(struct reb_simulation, t), 0, 0}; +``` +The first number is a unique identifier (in this case 0). The second entry is the type of data, in this case a single double precision floating point number. The third entry is a string used to identify the field. This is only used when generating human-readable output and is typically the same as the variable name in C. The next entry is the offset of where this variable is stored relative to the beginning of the simulation structure. + +REBOUND also supports array like fields. For example consider the `particles` field: +```c + struct reb_binary_field_descriptor fd_particles = { 85, REB_POINTER, "particles", offsetof(struct reb_simulation, particles), offsetof(struct reb_simulation, N), sizeof(struct reb_particle)}; +``` + +The second to last entry lists the offset of the a variable in the `reb_simulation` structure that determines the number of array elements. In this case the number of particles. The last entry is the size of a single element. In this case, the size of one `reb_particle`. + +If you add an additional field to the `reb_simulation` struct and you want to write it to a binary file and read it back in, then you need to add an entry to `reb_binary_field_descriptor_list`. + diff --git a/rebound/source/docs/boundaryconditions.md b/rebound/source/docs/boundaryconditions.md new file mode 100644 index 0000000000000000000000000000000000000000..be09901bfd5984a1477c42cacfda208f656b633c --- /dev/null +++ b/rebound/source/docs/boundaryconditions.md @@ -0,0 +1,108 @@ +# Boundary conditions + +You can use different boundary conditions with REBOUND. + +## No boundaries +By default, REBOUND doesn't use boundary conditions. +This means particle can have arbitrary coordinates in all three dimensions (as long as they can be represented as floating point numbers). +Because this is the default setting, you don't need to do anything if you don't want boundary conditions. +Nevertheless, here is the syntax to set this manually: +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->boundary = REB_BOUNDARY_NONE; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.boundary = "none" + ``` + +## Open +When open boundary conditions are selected, particles are removed from the simulation if they leave the simulation box. +You therefore also need to set the size of the simulation box whenever you use open boundary conditions. +The syntax is as follows: + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_configure_box(r, 10., 1, 1, 1); # confine the simulation to a box of size 10 + r->boundary = REB_BOUNDARY_OPEN; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.configure_box(10.) # confine the simulation to a box of size 10 + sim.boundary = "open" + ``` + +## Periodic +When periodic boundary conditions are uses, particles are reinserted on the opposite side if they leave a simulation box. +You can use an arbitrary number of ghost-boxes with this module. +The syntax is as follows: + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_configure_box(r, 10., 1, 2, 3); # confine the simulation to a box of size 10x20x30 + r->boundary = reb_boundary_periodic; + ``` + +=== "python" + ```python + sim = rebound.simulation() + sim.configure_box(10., 1, 2, 3) # confine the simulation to a box of size 10x20x30 + sim.boundary = "periodic" + ``` + +Ghost boxes are supported for both periodic and shear-periodic boundary conditions. +Ghost boxes can be used to allow particle collisions across boundaries and include gravitational forces from outside the box boundaries. +This is particularly useful when simulating rings and disks. +The following code sets up two rings of ghost boxes in the x and y directions. + +=== "C" + ```c + r->N_ghost_x = 2; + r->N_ghost_y = 2; + r->N_ghost_z = 0; + ``` + +=== "python" + ```python + sim.N_ghost_x = 2 + sim.N_ghost_y = 2 + sim.N_ghost_z = 0 + ``` + +See [Rein & Liu](https://ui.adsabs.harvard.edu/abs/2012A%26A...537A.128R/abstract) for details on the ghost box implementation. + +You might encounter the `reb_vec6d` structure in various parts of the code, for example in function related to gravity calculation and collision detection. +It often contains the relative position and velocity of a ghost-box. +If there are no ghost-boxes used, then all elements of this structure will be zero. + +## Shear +![Shearing sheet](img/shear.png) + +These are shear periodic boundary conditions. +They are similar to periodic boundary conditions, but ghost-boxes are moving with constant speed, set by the shear. +This is useful when simulation a small patch in a ring or disk. +You also need to set the `OMEGA` variable in the simulation which set the epicyclic frequency. +For more information on how to setup simulations of planetary rings in REBOUND, see [Rein & Liu](https://ui.adsabs.harvard.edu/abs/2012A%26A...537A.128R/abstract). + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_configure_box(r, 10., 1, 1, 1); + r->OMEGA = 1.0; + r->boundary = REB_BOUNDARY_SHEAR; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.configure_box(10.) + sim.OMEGA = 1.0 + sim.boundary = "shear" + ``` diff --git a/rebound/source/docs/c_examples/compile_emcc.bash b/rebound/source/docs/c_examples/compile_emcc.bash new file mode 100644 index 0000000000000000000000000000000000000000..3cf056201b7696b35e24803d6036cffc9e9d4c23 --- /dev/null +++ b/rebound/source/docs/c_examples/compile_emcc.bash @@ -0,0 +1,31 @@ +#!/bin/bash + +source emsdk/emsdk_env.sh +READTHEDOCS_OUTPUT="${READTHEDOCS_OUTPUT:-.}" +OPTIMI="${1:-3}" + +echo "Compiling C examples with emscripten." +echo "Output dir: $READTHEDOCS_OUTPUT" +echo "" + +for dir in examples/*/ +do + echo "Working on $dir ..." + mpi_enabled=$(cat $dir/Makefile | grep -c "export MPI=1") + openmp_enabled=$(cat $dir/Makefile | grep -c "export OPENMP=1") + server_used=$(cat $dir/problem.c | grep -c "reb_simulation_start_server") + if [ $mpi_enabled -eq 0 ] && [ $openmp_enabled -eq 0 ]; then + mkdir -p $READTHEDOCS_OUTPUT/html/emscripten_c_$dir/ + echo "Compiling... " + if [ $server_used -eq 0 ]; then + emcc -O$OPTIMI -Isrc/ src/*.c $dir/problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -s -sASYNCIFY -sALLOW_MEMORY_GROWTH -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file web_client/shell_rebound_console.html -o $READTHEDOCS_OUTPUT/html/emscripten_c_$dir/index.html || exit 1 + else + emcc -O$OPTIMI -Isrc/ src/*.c $dir/problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file web_client/shell_rebound_webgl.html -o $READTHEDOCS_OUTPUT/html/emscripten_c_$dir/index.html || exit 1 + fi + echo "Done. " + else + echo "Skipping." + fi + echo "" + +done diff --git a/rebound/source/docs/c_examples/generate_c_examples.py b/rebound/source/docs/c_examples/generate_c_examples.py new file mode 100644 index 0000000000000000000000000000000000000000..040e28c3ec83380bc9c3b9b96dcf80e4592680be --- /dev/null +++ b/rebound/source/docs/c_examples/generate_c_examples.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +import glob + +# C Example update +def run(*args, **kwargs): + print("Generating C examples.") + count = 0 + for problemc in glob.glob("examples/*/problem.c"): + count += 1 + cname = problemc.split("/")[1] + with open("docs/c_examples/"+cname+".md","w") as fd: + will_output = 0 + livepreview=1 + # Manual exception for file viewer + if "_viewer" in cname: + livepreview=0 + if "screenshots" in cname: + livepreview=0 + try: + with open("examples/"+cname+"/Makefile","r") as mfd: + Makefile = mfd.read() + if "export MPI=1" in Makefile: + livepreview=0 + if "export OPENMP=1" in Makefile: + livepreview=0 + except: + print("Warning: Makefile error in "+problemc) + + with open(problemc) as pf: + did_output=0 + empty_lines = 0 + for line in pf: + if line[0:3] == "/**": + will_output += 1 + if line[0:3] == " */": + will_output = -1 + line = "" + fd.write("\n\n```c\n") + if will_output>1: + if will_output == 2: + line = " # "+line[3:].strip() + " (C)\n" + if livepreview == 1: + line += "!!! example \"Try it out this example!\"\n" + line += " REBOUND has been compiled with emscripten to WebAssembly.\n" + line += " This lets you run this example interactively from within your browser at almost native speed.\n" + line += " No installation is required.\n" + line += " [Click here](../../emscripten_c_examples/"+cname+"/) to try it out.\n" + will_output = 2 + if len(line[3:].strip())==0: + fd.write("\n\n"+line[3:].strip()) + else: + fd.write(line[3:].strip() + " " ) + if will_output==-1: + fd.write("" +line.rstrip() + "\n" ) + did_output = 1 + if will_output>0: + will_output += 1 + fd.write("```\n") + fd.write("\n\nThis example is located in the directory `examples/"+problemc.split("/")[1]+"`\n\n") + if did_output==0: + print("Warning: Did not find description in "+problemc) + print("Converted %d C examples."%count) +if __name__ == "__main__": + run() diff --git a/rebound/source/docs/c_outputfunctions.md b/rebound/source/docs/c_outputfunctions.md new file mode 100644 index 0000000000000000000000000000000000000000..c76adfc5ea231fc71325341abe3f4102a7683611 --- /dev/null +++ b/rebound/source/docs/c_outputfunctions.md @@ -0,0 +1,78 @@ +# C output functions + +The functions listed here provide various output functionality. + +## Output check + +```c +int reb_simulation_output_check(struct reb_simulation* r, double interval); +``` + +This function can be used to trigger outputs at regular time intervals. +The function returns 1 if an output is required and 0 otherwise. +Typically, you would use this within the heartbeat function to generate equally spaced outputs as in this example: + +```c +void heartbeat(struct reb_simulation* const r){ + if (reb_simulation_output_check(r, 100.)){ + printf("t = %f\n", r->t); // Will print current time every 100 time units. + } +} +``` + +## Timing + +```c +void reb_simulation_output_timing(struct reb_simulation* r, const double tmax); +``` + +This function outputs various status information on the screen. An example output looks as follows + +``` +N_tot= 10 t= 4610.00 dt= 4.000 cpu= 0.002472 [s] t/tmax= 0.01% +``` + +It shows the number of particles, the current time and time-step, as well as the time since the last output. If `tmax` is non-zero, then the last number indicates how far the simulation has progressed. + +## ASCII orbits +```c +void reb_simulation_output_orbits(struct reb_simulation* r, char* filename); +``` +This function creates or appends an ASCII file with orbital parameters of all particles. +The orbital parameters are calculated in Jacobi coordinates. +Particles are assumed to be sorted from the inside out, the central object having index 0. +Each time the function is called N-1 rows are appended to the file with name filename. +Each row in the file corresponds to one particle and contains the following columns (tab separated): + + - time + - semi-major axis + - eccentricity + - inclination + - Omega (longitude ascending node) + - omega (argument of pericenter) + - lambda (mean longitude) + - orbital period, + - f (true anomaly) + +## ASCII coordinates +```c +void reb_simulation_output_ascii(struct reb_simulation* r, char* filename); +``` +This function creates or appends an ASCII file with the positions and velocities of all particles to an ASCII file. + +## Velocity dispersion +```c +void reb_simulation_output_velocity_dispersion(struct reb_simulation* r, char* filename); +``` +This function creates or appends an ASCII file with the current velocity dispersion of all particles. +This is useful for ring simulations where one wants to monitor that the system has reached an equilibrium. + +## Binary snapshot +```c +void reb_simulation_save_to_file(struct reb_simulation* r, const char* filename); +``` + +These functions save the `reb_simulation` structure as a binary file. +It can be used to save the current status of a REBOUND simulation and later restart the simulation. +If the file exists, this function will append a snapshot. + diff --git a/rebound/source/docs/c_randomsamplingfunctions.md b/rebound/source/docs/c_randomsamplingfunctions.md new file mode 100644 index 0000000000000000000000000000000000000000..a069b71bf16058c31c61c69d18ac44a7c437ca1f --- /dev/null +++ b/rebound/source/docs/c_randomsamplingfunctions.md @@ -0,0 +1,41 @@ +# Random sampling + +REBOUND includes several functions which help sampling random numbers from various distributions. +Each function takes a pointer to a `struct reb_simulation` as a first argument. +This is because the simulation structure stores the random number generator state in the member `rand_seed`. +When a simulation is created, `rand_seed` is initialized using the current time and process id. +These functions are thread safe. +The `rand_seed` variable is stored in binary files. This makes the random number generator reproducible which can be very helpful when debugging simulations that use random numbers. + +The following example draws a number in the interval between 0 and $2\pi$ from a uniform distribution. +```c +struct reb_simulation* r = reb_simulation_create(); +double phi = reb_random_uniform(r, 0., 2.*M_PI); +``` + +# Uniform +This function returns a uniformly distributed random variable between `min` and `max`. +```c +double reb_random_uniform(struct reb_simulation* r, double min, double max); +``` + +# Power law +This function returns a random variable drawn form a power law distribution with slope `slope` between `min` and `max`. +```c +double reb_random_powerlaw(struct reb_simulation* r, double min, double max, double slope); +``` + +# Normal +This function returns a random number drawn from a normal distribution centerd on zero and with variance `variance`. +It uses the algorithm by D.E. Knut, 1997, The Art of Computer Programming, Addison-Wesley. +```c +double reb_random_normal(struct reb_simulation* r, double variance); +``` + +# Rayleigh +This function returns a random variable drawn form a Rayleigh distribution with scale parameter `sigma`. +```c +double reb_random_rayleigh(struct reb_simulation* r, double sigma); +``` + + diff --git a/rebound/source/docs/changelog.md b/rebound/source/docs/changelog.md new file mode 100644 index 0000000000000000000000000000000000000000..0b48b43609ff6a244333ec24384f0aea4f25f69a --- /dev/null +++ b/rebound/source/docs/changelog.md @@ -0,0 +1,589 @@ +# Changelog + +This changelog only includes the most important changes in recent updates. For a full log of all changes, please refer to git. + +## Version 4.x + +### Version 4.5.1 +* Added leapfrog integrators of order 4, 6, and 8. Order can be set with `r->ri_leapfrog->order`. +* Heartbeat function is now also called when using `reb_simulation_steps()`. +* OrbitPlot supports more colours. +* Fixed an alignment issue when comparing binary snapshots which could have triggered a segfault. + +### Version 4.5.0 +* Added support for (Frequency) Modified Fourier Transforms. Heavily based on David Nesvorny's code. The new functions are `reb_frequency_analysis()` in C and `rebound.frequency_analysis()` in python. For usage, see C examples `secular_frequencies` and `frequency_analysis` as well as the iPython notebook `FrequencyAnalysis`. +* Support for Jacobi coordinates added when using WHFast with OpenMP. +* Allow negative periods when initializing hyperbolic orbits. + +### Version 4.4.11 +* The collision resolve function now returns a type `enum REB_COLLISION_RESOLVE_OUTCOME`. The actual integer values remain unchanged. +* Bug in TRACE was fixed. +* Convergence check for M_to_E function. +* New API example that shows how to use the Kepler solver without a REBOUND simulation. Updated other examples. + +### Version 4.4.10 +* Version bump to rerun github workflows for pypi uploads + +### Version 4.4.9 +* Fixes a bug that affected collisions searches with a tree code. +* Support for mid-timestep add/remove of particles with TRACE. +* Various small improvements and bugfixes for TRACE. +* IAS15's `adaptive_mode` is now an ENUM. +* Some OpenMP improvements. + +### Version 4.4.8 +* Added support for symplectic correctors with barycentric coordinates in WHFast. + +### Version 4.4.7 +* Added option to disable SSL checks for Horizon queries with `rebound.horizons.SSL_CONTEXT = 'unverified'.` +* Added unit tests. +* Added barycentric coordinates for WHFast. +* Bug fix for when MEGNO is used with adaptive timestepping. +* Added more error messages. +* Fixed various issues in documentation. + +### Version 4.4.6 +* When initializing particles with "uniform" in python, REBOUND now uses its own `reb_random_uniform()` function. This avoids importing the "random" library and makes results reproducible as the random seed of the simulation is used when generating random numbers. +* More cracefull interrupt handling. REBOUND now stop the integration after the next timestep when CTRL-C is pressed the first time. If CTRL-C s pressed twice, then long loops (during gravity, collision calculations) are terminated immediately. Continuing an integration after one CTRL-C press should be easier with this change as the simulation does not get corrupted. +* Fixed typos in documentation. + +### Version 4.4.5 +* Version updated to test github workflows + +### Version 4.4.4 +* Fixed several memory leaks and other memory issues. It is unlikely that any of those bugs did affect an simulation. +* When converting units of a particle, the particle radius is now also converted. +* Added getter/setters for Pal coordinates to the particle structure in python. Syntax is `sim.particles[1].pal_h`, `sim.particles[1].pal_ix`, etc. + +### Version 4.4.3 +* REBOUND now raises ImportError if it detects a size mismatch between the C and python Simulation structures. +* Fixes a bug in the WHFast512 synchronization on non-AVX512 systems. +* Fixes a bug in the SimulationArchive in cases where there are multiple snapshots with t=0. +* Updates TRACE switching condition to match Lu et al (2024). +* TRACE binary file size has been reduced. +* Pericenter passage time is now calculated even if particles are not in a Simulation. + +### Version 4.4.2 +* Fixed bug in TRACE when adding particles. +* Added WHFast fallback for synchronizing WHFast512 simulations with `N_systems` > 1. +* Output version number used to create Simulationarchive if there is a version mismatch. +* Added C example `simulationarchive_fields` which outputs all fields in a simulationarchive for debugging purposes. + +### Version 4.4.1 +* Fixed bug in TRACE for FULL PERI modes. + +### Version 4.4.0 +* Added TRACE integrator. See Lu, Hernandez & Rein (2024) for details on this implementation. + +### Version 4.3.2 +* No longer clipping particles and orbits in visualization. +* Added a scale to visualization. Hide by pressing `t`. +* Option to take a screenshow manually in png (WebGL) or tga (OpenGL) format by pressing `e`. +* Improved `plane` visualization mode. Now supporting hyperbolic orbits. +* Fixed a memory leak in `reb_simulation_copy`. + +### Version 4.3.1 +* Added new `plane` visualization mode for orbits. Press `w` to toggle through available orbit visualization modes. +* Added python interface for screenshot API. +* Fixed an issue where no python exception was raised when a particle was added outside a simulation box. +* Renamed `past_N` to breadcrumbs in visualization module. + +### Version 4.3.0 +* Take screenshots of WebGL based visualizations using the `reb_simulation_output_screenshot()` function. You need to connect one web browser to the simulation in order to take screenshots. +* Improved synchronization of visualization and simulation on Windows with mutex. +* Fixes an issue that might lead to NaN values when less than the maximum number of planets are used in WHFast512. + +### Version 4.2.0 +* It is now possible to programmatically change all aspects of a REBOUND visualization. This can be used to set up default viewing options or to render animations. See the C examples in `animation_solar_system` and `animation_saturn_rings`. +* Reworked matrix operations in visualization routines to follow the Model-View-Projection paradigm. +* Fixed an issues where unit tests would fail because a binary file was not deleted. + +### Version 4.1.1 +* Fixed python wheels for windows. + +### Version 4.1.0 +* New visualization feature that allows you to show past particle positions and orbits (keyboard commands p, u, and i). +* After pausing a simulation, you can now advance it by a single timestep by pressing the down arrow or 50 timesteps by pressing the page down key. +* Visualization now supports scroll to zoom. +* Fixed memory leaks when using custom ODEs. +* Fixed broken links in documentations. + +### Version 4.0.3 +* Default IAS15 timestepping criterion is now `adaptive_mode=2`. See Pham, Rein, and Spiegel (2024) for details. To use the old default timestepping criterion, set `adaptive_mode=1`. +* Fixed a race condition that should improve the responsiveness of web based visualizations. +* Removed the glad dependency from emscripten builds which reduces filesize and improves performance. + +### Version 4.0.2 +* Fixes an issue where the default Makefiles included white spaces after the SERVER and OPENGL variable definitions. This caused the main Makefile to ignore these settings. +* Added `key_callback` function for customizing user interaction in visualizations. +* Added `simulationarchive_viewer` example. +* Included `-sGL_ENABLE_GET_PROC_ADDRESS` flag that is now needed for the latest version of emscripten. + +### Version 4.0.1 +* Include missing python packages + +### Version 4.0.0 +* Major API changes and new features! If you have used a previous version of REBOUND, then you will need to update your code. If you have trouble with the migration, open a GitHub issue! +* Many function and variable names have changed. They now follow a coherent naming convention. See the naming convention section in the documentation for more information. +* New visualization module! Previously, using OpenGL visualization required the GLFW library which led to problems on various operating systems. The new visualization module no longer requires ANY dependencies and is compatible with MacOS, Linux, and Windows. It works by running a local web server to which you can point your browser to. In your web browser, an emscripten compiled version of REBOUND handles the WebGL visualization while constantly updating simulation data over HTTP. You can use ssh and port forwarding to visualize simulations on remote servers. Check out the documentation for more details on this new module. +* OpenGL for all the examples has been turned off by default so that new users don't get stuck at this step. To turn on OPENGL simply change the flag in the Makefile. +* Added emscripten support. All C examples (including those using visualizations) are now automatically compiled with emscripten on readthedocs.org so you can run from within the browser. No download or installation required. +* A race condition in OpenGL visualization has been removed. Visualizations run much smoother. +* `reb_random` functions now callable with `r=NULL`. If `r=NULL` then the time and PID is used as a seed. +* Removed support for Simulationarchives with version 2. Added some additional support for reading corrupt/old archives. +* Fixed memory leak in `reb_simulation_copy`. +* Consistent integer sizes for 32/64bit. This includes padding for `reb_particle` which is stored in the Simulationarchive. + + +## Version 3.x + +### Version 3.28.4 +* WHFast512 now support the integration of 2 and 4 planet systems in parallel. Providing a speed up of up to 10x. +* The sqrt7 function used by IAS15 now support a wider range of input arguments. + +### Version 3.28.3 +* Removed distutils requirement in preparation for python 3.12. +* Removed rebound.InterruptiblePool as it no longer works with recent python version. Updated examples. +* Added Holmberg example. +* Added `adaptive_mode==3` for IAS15 (Aarseth 1985). + +### Version 3.28.2 +* Implemented own fmemopen implementation on MacOS. This is mainly to appease conda-forge builds. +* Improved sqrt7 algorithm allows larger convergence interval. + +### Version 3.28.1 +* Improved support for reading old and corrupted Simulationarchives. +* Renamed `ri_ias15.epsilon_global` to `ri_ias15.adaptive_mode`. +* Added new timestep method for IAS15 `ri_ias15.adaptive_mode = 2`. This is experimental for now. Details to be described in Pham, Rein & Spiegel (in prep). +* Added unit tests to check for fused multiply add instruction (these break reproducibility). +* Added phony target in C Makefile to force rebuilding librebound whenever building examples. + +### Version 3.28.0 +- Native Windows support. REBOUND can now be built natively on Windows (without WSL) using the Microsoft Visual Studio Compiler. +- Python Wheels are now provided for Linux, MacOS, and Windows. This should significantly speed up the installation process on a wide variety of systems. + +### Version 3.27.0 +* In python, Simulation and Particle objects are now picklable. Just like loading Simulations from a binary file, function pointers will need to be re-set manually after unpickling. +* The difference between simulations can now be printed out in a human readable form. Python syntax: `sim.diff(sim2)`. C syntax: `reb_simulation_diff(sim2, sim1, 1)`. +* Reading Simulationarchives with version < 2 is no longer supported. +* The POSIX function fmemopen() is now required to compile REBOUND. This should not affect many users. However, if you are using macOS, the version needs to be >= 10.13 (this version of macOS, High Sierra, was released in 2017). +* Internal changes on how Simulationarchives are written. +* Internal variable names that represent the size of allocated buffers now consistently include the name `N_allocated`. +* The TES (Terrestrial Exoplanet Integrator) has been removed. If you wish to use TES, you will need checkout an earlier version. + +### Version 3.26.3 +* A few more changes to reduce the number of compiler warnings. This should not affect any calculation. + +### Version 3.26.2 +* Fixed various signed/unsigned int issues. This should reduce the number of compiler warnings but not affect any calculation. + +### Version 3.26.1 +* Added support for `AVX512` and `FFP_CONTRACT_OFF` environment variables when using pip to install REBOUND. + +### Version 3.26.0 +* Added WHFast512 integrator (Javaheri, Rein, Tamayo 2023) + +### Version 3.25.1 +* Bug fixed that prevented the installation via PyPi + +### Version 3.25.0 +* MPI parts updated and unit tests added +* Fixed machine independence bug in TES. + +### Version 3.24.3 +* Updated unit tests so they work on 32bit machines + +### Version 3.24.2 +* Fixed bug in TES ctypes structure + +### Version 3.24.1 +* Added CORS proxy for Horizons request in pyodide +* Smoother OpenGL animations when using usleep +* TES calculates orbital period automatically + +### Version 3.24.0 +* Added support for Simulationarchive larger than 4 GB. +* Updated documentation for Lyapunov characteristic number. + +### Version 3.23.5 +* Added new units shortcuts (year,years,massist) +* Rearranged some loops and switch statements (doesn't affect floating point numbers). + +### Version 3.23.4 +* Added pyproject.toml file + +### Version 3.23.3 +* Changed the way REBOUND reverses the integration direction when the sign of the timestep is inconsistent with respect to the requested final time. +* Fixes a memory leak when a tree code is used +* Fixes an issue where MERCURIUS was not bit-wise reproducible when safe mode was turned off. + +### Version 3.23.2 +* Minor changes to the python side of Vec3d to make it more compatible with numpy. + +### Version 3.23.1 +* Minor changes related to the REBOUND Rotations framework. + +### Version 3.23.0 +* Added the REBOUND Rotations framework. +* Fixes an issue with showing an incorrect periastron location in OrbitPlot for high mass-ratio systems. +* Adds pre and post timestep calls to the ode framework. + +### Version 3.22.0 +* OrbitPlot is now a class. Checkout the OrbitPlot.ipynb tutorial. This change allows for interactive plots and much faster updates to existing plots. This is great for rendering animations! + +### Version 3.21.0 +* Automatic rescaling of first order variational particles has been added. This will allow you to integrate chaotic systems for longer and obtain a more accruate measure of MEGNO and the Lyapunoc exponent. +* Added `sim.stop()` / `reb_simulation_stop()` to end an integration from within the heartbeat function. + +### Version 3.20.1 +* Pal coordinates have been added to the `reb_orbit` struct. + +### Version 3.20.0 +* A new integrator has been added, the Terrestrial Exoplanet Simulation (TES). + +### Version 3.19.10 +* Fixes another bug int he BS integrator when additional forces are used. + +### Version 3.19.9 +* Two bugs fixed in the BS integrator. One was related to unitialized memory and the other to issues when the particle number changed. + +### Version 3.19.5 +* Workaround for urllib support in pyodide added +* Silent warning when InterruptiblePool is not available + +### Version 3.19.4 +* InterruptiblePool is optional. +* Fixed an issue that occured when switching integrators while using the Simulationarchive. +* Renamed `srand_seed` to make it user accessible. + +### Version 3.19.3 +* Added several examples. +* Changed how pypi is rendering the documentation. + +### Version 3.19.2 +* Fixes a bug relates to test particles of type 0 in MERCURIUS. + +### Version 3.19.1 +* Some compilers seem to complain that a constant cannot be initialized from a constant. Fixed this so that REBOUND works on colaboratory. + +### Version 3.19.0 +* Added a Gragg-Bulirsch-Stoer integrator (short BS for Bulirsch-Stoer). This is an adaptive integrator which uses Richardson extrapolation and the modified midpoint method to obtain solutions to ordinary differential equations. The version in REBOUND is based on the method described in Hairer, Norsett, and Wanner 1993 (see section II.9, page 224ff). +* Added the ability to integrate arbitrary ordinary differential equations with REBOUND. The ODEs can be couple to the N-body simulation. This can be used to simulate spin, tides, and other physical effects. The user-defined ODEs are integrated with the new BS integrator. + +### Version 3.18.1 +* Various improvements and fixes relates to NASA Horizons: small bodies are retrieved correctly, the dates now work with fractional JD values and dates in the format YYYY-MM-DD HH:MM:SS are now supported. + +### Version 3.18.0 +* Fixes an issue in the Simulationarchive that prevented REBOUND from seeing more than one snapshot. This only affected simulations with a large number of particles. + +### Version 3.17.5 +* REBOUND will now uses the new HTTP API from NASA Horizons. This is significantly faster than the old telnet version. Thanks to Lukas Winkler for implementing this. + +### Version 3.17.4 +* REBOUND will now attempt to recover binary files and Simulationarchives which have been corrupted. Simulations can be restarted from corrupt files and in most cases the corrupt files will fix themselves. + +### Version 3.17.3 +* Allow for Horizon queries with future JD dates. + +### Version 3.17.2 +* Moved some function declarations to rebound.h. This is a temporary fix for REBOUNDx. + +### Version 3.17.1 +* Fixed an issue where the simulation struct in python did not match the one in C. This might have lead to unexpected behaviour in rare cases. +* Fixed various typos in the documentation +* MERCURIUS switching functions can now be set from Python. Also inluded more built-in switching functions from Hernandez (2019). + +### Version 3.17.0 +* Added new 'reb_simulation_add_fmt()' function. This makes adding particles in C as easy as in python. +* Orbits can now also be initialized using the eccentric anomaly. +* Fixed an issue which prevented one loop in the gravity routine form being parallelized with OpenMP. +* Added a warning message when test particles have finite mass. +* More reliable reading of corrupt Simulationarchive files. + +### Version 3.16.0 +* MERCURIUS: If encounters only involve test-particles (type 0), then the algorithm is now resetting the coordinates of all massive particles after the encounter step. This only changes the outcome at the machine precision, but it makes the trajectories of massive particles independent of the close encounter history. Thanks to Kat Deck for this feature! +* MERCURIUS: The gravity routine is now $O(0.5 \cdot N^2)$ instead of $O(N^2)$ for non-OPENMP runs. This should lead to a noticable improvement in runtime. + +### Version 3.15.0 +* Orbital parameters of particles can now be changed in-place. For example: 'sim.particles[1].e += 0.1'. +* Implemented more chatty repr functions for most object. Printing REBOUND objects should now give some useful information. +* Improved support for adding/removing particle in MERCURIUS during collisions. +* REBOUND now outputs an error message when one is trying to remove a particle with a negative index. +* Small updates to the documentation. +* New ipython example added, showing how to use a python collision resolve function. + +### Version 3.14.0 +* Due to a bug, WHFast was not thread-safe. It is now. +* Random number generator seed is now stored in the Simulationarchive. + This allows you to get reproducible random number even after restarting a simulation. +* Random numbers generated with the `reb_rand_*()` functions were not thread-safe. + They are thread-safe now. Note that this required an API change. All `reb_rand_*()` + functions now require the simulation structure as an argument. This is because the + random number generator seed is now stored in the simulation structure. + +### Version 3.13.2 +* Correct handling of test particles in reb_transformations. +* Small bug fixes + +### Version 3.13.1 +* WHFast: Fixes multiple issues with testparticles in WHFast. + +### Version 3.13.0 +* IAS15: Fixes a bug which leads to a biased energy error in long term integrations with fixed timesteps (see Hernandez and Holman 2020). The old version of IAS15 can still be used for the time being by setting ri_ias15.neworder=0. +* IAS15: Does not take variational particles into account when predicting new timesteps. This should be beneficial during close encounters. +* A few improvements have been made to the Simulationarchives code including a more efficient loading procedure for large datasets. + +### Version 3.12.3 +* Various small bug fixes +* Added a new function sim.cite() to automatically generate citations depending on the current simulation settings. + +### Version 3.12.2 +* Various bug fixes to MERCURIUS +* Performance increase when using the BASIC Gravity Routine with OpenMP + +### Version 3.12.1 +* Bug fixes to LINE and LINETREE algorithms + +### Version 3.12.0 +* Added LINETREE collision search algorithm. + This algorithm uses a tree to check if any two particle trajectories overlapped during the last timestep. This + should be beneficial in large N, low density situation as it allows for much larger timesteps. A modification of the + collision resolve routine might be necessary to allow for multiple collisions of the same particle during one timestep. + This depends on the application and the default is to only allow one collision per timestep. + +### Version 3.11.1 +* Added support for test particles and first-order variational particles to the Embedded Operator Splitting (EOS). +* BASIC Gravity routine changed from O(N^2) to O(0.5 N^2). This should lead to a speed-up in most cases but will break bit-wise reproducibility from earlier versions as the ordering of floating point operations has changed. + +### Version 3.11.0 +* This version adds the new Embedded Operator Splitting methods from Rein (2019). See the tutorial in the ipython_examples folder for how to use them. + +### Version 3.10.2 +* Updates to OrbitPlot. Includes better layout of plot and some syntax changes. See OrbitPlot documentation for the new syntax. + +### Version 3.10.1 +* Small syntax changes for SABA integrator family. +* Includes high order integrators by Blanes et al. (2013). + +### Version 3.10.0 +* Changes for the new version of REBOUNDx. + +### Version 3.9.0 +* Added new high order symplectic integrators from Wisdom et al. (1996) and Laskar & Robutel (2001). The implementation of these integrators are discussed in Rein, Tamayo & Brown (2019). +* Implemented new bit-wise comparison functions for simulations. Python syntax is simply sim1==sim2. +* Fixed a bug in IAS15 which prevented a restarted simulation to reproduce the original simulation exactly. + +### Version 3.8.3 +* Improves and fixes various issues related to variational equations and MEGNO. + +### Version 3.8.2 +* Fixes a bug which resulted in duplicate snapshots in Simulationarchives when restarting simulations. + +### Version 3.8.1 +* Syntax change on the python side to create a simulation from a binary file or Simulationarchive: + + ```python + rebound.Simulation.from_file("test.bin") becomes rebound.Simulation("test.bin") + rebound.Simulation.from_archive("test.bin",5) becomes rebound.Simulation("test.bin",5) + ``` + +### Version 3.8.0 +* The hybrid integrator MERCURIUS has been completely rewritten. It can now much more easily be used in simulations where physical collisions occur. There are no more hidden particle arrays in the background, meaning adding and removing particles can occur in the same way as for other integrators. It also works reliably with any additional forces. +* The old hybrid integrator HERMES has been removed. MERCURIUS should always be equal or better in performance and accuracy. + +### Version 3.7.1 +* Added getBezierPaths to Simulationarchive to allow for easy plotting of complicated trajectories. To do this, store a lot of snapshots in the Simulationarchive (several per orbit!). +* Added functionality to add, subtract, multiply and divide simulations. This might be useful when developing new algorithms, but is most likely not useful for most users. + +### Version 3.7.0 +* Added a deep copy functionality: reb_simulation_copy() in C, and sim.copy() in python. +* Refactored WHFast to enable calling only certain substeps. + +### Version 3.6.8 +* Added the rhill property to reb_orbit in C and the Orbit and Particle classes in Python. This parameter corresponds to the circular Hill radius of the particle: $ a (m/(3M)^{1/3}$. + +### Version 3.6.7 +* Fixes an issue related to collisions and the Mercurius integrator that prevented the last_collision property to be updated. + +### Version 3.6.6 +* New: Fancy plotting routine. Usage: rebound.OrbitPlot(sim, fancy=True) + +### Version 3.6.5 +* One can now add particles from NASA Horizons using Julian Days. For example: sim.add("Earth", date="JD2458327.500000") + +### Version 3.6.4 +* Fixes a memory leak when using the old Simulationarchive version. Thanks to Ian Rabago for reporting the issue. + +### Version 3.6.2 +* Fixes a memory leak in the Simulationarchive read function. + +### Version 3.6.1 +* Removed function calls to open_memstream and fmemopen which might not work on older Mac OSX versions. This only affects the internals and there are no changes to user interface. +* Minor bug fixes + +### Version 3.6.0 +* Simulationarchive Version 2. With the new version of the Simulationarchive file format, you can now create snapshots of your simulations without any restrictions. You can change the number of particles, the timestep, even the integrator used during the integration. REBOUND automatically detects what has changed and only stores the differences in incremental snaphots. This reduces the filesize while keeping the format as flexible as possible. The old Simulationarchive Version 1 is still supported for now but might become deprecated in the future. All examples have been updated. As usual these are as usual good starting points for understanding the functionality and the syntax. + +### Version 3.5.12 +* Added REB_COLLISION_LINE. This is a collision detection routine which serves for collisions during the last timestep, assuming that all particles travel along straight lines. This can be useful in cases where not every collision needs to be detected exactly, but the overall collision rate should be reproduced. The algorithm is O(N**2). +* Bug related to N_active and variational particles has been fixed. +* A bug where WHFast might not converge in rare cases involving negative timesteps has been fixed. + +### Version 3.5.11 +* Changed default collision behaviour from hardsphere bouncing to halting the simulation. An exception is raised when using the python version. In C, you need to check the status flag after integrating the simulation. + +### Version 3.5.10 +* Refactored OrbitPlot. + +### Version 3.5.9 +* SIGINT handler added. Allows for garceful exit and keyboard interrupts (even from python). + +### Version 3.5.8 +* WebGL widget text overlay added. + +### Version 3.5.7 +* Bug fixes related to WebGL widget and ipywidgets version 6 + +### Version 3.5.6 +* Updated WebGL widget to work with ipywidgets version 7 + +### Version 3.5.5 +* Various fixed for Mercurius + +### Version 3.5.4 +* Bug fix for N_active=-1 (default) + +### Version 3.5.3 +* Allow for better parallelization of WHFast with OpenMP. +* Addded example of the Solar System with Testparticles. +* Made simulationarchive_append a public function (might be useful for some hacking projects). + +### Version 3.5.2 +* Fixes an issue with the WebGL widget. +* Fixes an issue with external forces and MERCURIUS. + +### Version 3.5.1 +* MERCURIUS is not compatible with binary files and the Simulationarchive. + +### Version 3.5.0 +* The WHFast integrator now supports Jacobi coordinates (default), democratic heliocentric coordinates and WHDS coordinates. The previously separate WHFastHelio integrator has been removed. The coordinate system can now be changed by simply setting the coordinates flag in the ri_whfast struct. +* Included an experimental new integrator MERCURIUS. This is similar to the hybrid integrator in Mercury but uses WHFast and IAS15. Not ready for production yet. + +### Version 3.4.0 +* Added a screenshot functionality for the WebGL ipython widget. This lets you take screenshots programmatically which is useful to create movies of simulations. + +### Version 3.3.1 +* Removed the march=native compiler flag as it seems to be problematic for some OSX/Sierra compilers. + +### Version 3.3.0 +* JANUS integrator added. This is a bit-wise reversible high-order symplectic integrator. At this time, it remains experimental. Details about this integrator will be published in an upcoming paper. + +### Version 3.2.4 +* Changes to the WHFastHelio integrator. This integrator now uses democratic heliocentric coordinates and a Hamiltonian splitted as proposed by Hernandez and Dehnen (2017), WHDS, which splits the Hamiltonian into three parts. It has the advantage that the integrator solves the two body problem exactly. It is not compatible with symplectic correctors, this functionality has been removed for WHFastHelio. For very high accuracy integrations of stable planetary systems, the WHFast integrator in Jacobi coordinated (and potentially symplectic correctors) should be better suited. + +### Version 3.2.3 +* Various minor bug fixes. Added pre-timestep modifications for REBOUNDx. + +### Version 3.2.2 +* Various minor bug fixes. One related to exact_finish_time=1. + +### Version 3.2.0 +* Added real-time interactive 3D visualizations using WebGL for Jupyter notebooks. This is an early release. Not everything might be working yet and new feature will be added to the widget class. To try it out, simply run `sim.widget()` in a Jupyter notebook. Note that you need to have ipywidgets installed and enabled. +* Minor changes to the Visualization backend. This should not have any consequences for users. + + +### Version 3.1.1 +* Now stores the first characters of the current githash in binary files. This is helpful when trying to restart simulations from a binary file and making sure one uses the same version of REBOUND than in the original run. Currently, the git hash is not automatically compared when reloading a binary file. To view the githash, use e.g. hexdump. The hash appears between the first and second zero character in the first 64 bytes of the file. + +### Version 3.1.0 +* Updated visualization. REBOUND now uses a modern version of OpenGL (3.3) that allows for custom shaders and therefore better looking visualizations. However, REBOUND now requires glfw3 to compile the visualization module. If you are on a Mac, then the easiest way to install the glfw3 library is with homebrew: `brew tap homebrew/versions && brew install glfw3`. If you are on Linux, you can install it with your package manager, for example with `sudo apt-get install libglfw3-dev`. + +### Version 3.0.0 +* Introducing the Simulationarchive. The Simulationarchive allows for exact (bit-by-bit) reproducibility in N-body simulations and a completely new way of analyzing simulations. See Rein&Tamayo (2017) for details. +* The binary format has changed. Binary files created with an earlier version of REBOUND can not be loaded with this version. However, future binary files will be backwards compatible from this point forward. + + +## Version 2.x +### Version 2.20.6 +* Minor bug fixes in HERMES integrator and some examples. + +### Version 2.20.5 +* NASA Horizons changed a telnet command. This update implements those changes and restores access to NASA Horizons from within REBOUND. + +### Version 2.20.4 +* Improvements to the Kepler solver. This is typically only relevant for extremly long simulation (1e11 timesteps or more) and extremely accurate simulation with symplectic correctors and a relative energy error of less than 1e-10. + +### Version 2.20.3 +* Small changes to HERMES integrator. It now has a Solar Switch Factor SSF to allow for close encounters with the central object. + +### Version 2.20.2 +* Added adaptive HSF for HERMES integrator. More documentation and paper to follow. + +### Version 2.20.1 +* Added symplectic correctors for WHFastHelio integrator. See Wisdom (2006). +* Improved accuracy of symplectic corrector coefficients for WHFast and WHFastHelio. + +### Version 2.20.0 +* Added new WHFastHelio integrator. This integrator uses the WHFast Kepler solver, but uses democratic heliocentric coordinates (WHFast itself uses Jacobi coordinates). Heliocentric coordinates are advantages if planets swap positions. + +### Version 2.19.2 +* Changes to how particle hashes are handled. + +### Version 2.19.1 +* This version removes the old SWIFTER based Wisdom-Holman routine, INTEGRATOR_WH. It wasn't working correctly for a while and the WHFast (INTEGRATOR_WHFAST) should be superior in any possible case we can think of. + +### Version 2.19.0 +* Added warning/error message system. This allows warning messages to be shown directly in iPython/python programs, rather than being shown on the console. To hide the warning messages, use a filter, e.g. +.. code:: python + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + # Execute a command which triggers a warning message. + # The message will not show up. +* Improvements regarding the WHFast logic for hyperbolic orbis. No changes should be noticeable to users. + +### Version 2.18.9 +* Added the reb_simulation_get_serialized_particle_data function for fast access to particle data via numpy array. The full syntax is explained in the documentation. Here is a short example: +.. code:: python + + import numpy as np + a = np.zeros((sim.N,3),dtype="float64") + sim.serialize_particle_data(xyz=a) + print(a) + + +### Version 2.18.5 +* When loading a simulation from a binary file, REBOUND now checks if the version of the binary file is the same as the current version. +* When saving a simulation to a binary file, all the auxiliary arrays for IAS15 are now stored. This allows for bit-by-bit reproducibility in simulations that are making use of checkpoints. + + +### Version 2.18.0 +* We replaced the old HYBRID integrator with the new and better HERMES integrator. Details of the HERMES integrator will be explained in an upcoming paper Silburt et al (2016, in prep). + +### Version 2.17.0 +* What used to be called ``id`` in the particle structure is now called ``hash``. This can be used to uniquely identify particles in a simulation. In many cases, one can just identify particles by their position in the particle array, e.g. using ``sim.particles[5]``. However, in cases where particles might get reordered in the particle array (e.g. when using a tree code), when particles can merge (by using the ``collision_resolve_merge`` routine), or when particles get added or removed manually. +* The syntax is as follows: +.. code:: python + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1) + # Setting a hash using a string: + sim.particles[1].hash = "planet1" + # Finding a particle using a string: + p = sim.get_particle_by_hash("planet1") + # Setting a random unique hash: + sim.particles[1].hash = sim.generate_unique_hash() + # Save unique hash to find particle later + uhash = sim.particles[1].hash + # Find particle using the hash + p = sim.get_particle_by_hash(uhash) + + + +### Version 2.0.0 +* We made many changes to the code. Most importantly, REBOUND is now thread-safe and does not use global variables anymore. All the variables that were previously global, are now contained in the ``reb_simulation`` structure. This has many advantages, for example, you can run separate simulations in parallel from within one process. +* We also made it possible to choose all modules at runtime (compared to the selection in the ``Makefile`` that was used before). This is much more in line with standard UNIX coding practice and does not severely impact performance (it might even help making REBOUND a tiny bit faster). This makes REBOUND a fully functional shared library. We added a prefix to all public functions and struct definitions: ``reb_``. +* There are still some features that haven't been fully ported. Most importantly, the MPI parallelization and the SWEEP collision detection routine. +* The best way to get an idea of the changes we made is to look at some of the example problems and the new REBOUND documentation. If you have trouble using the new version or find a bug, please submit an issue or a pull request on github. + diff --git a/rebound/source/docs/chaos.md b/rebound/source/docs/chaos.md new file mode 100644 index 0000000000000000000000000000000000000000..409f0c64398da7215c847a9059a444600a7da69c --- /dev/null +++ b/rebound/source/docs/chaos.md @@ -0,0 +1,102 @@ +# Chaos indicators +REBOUND supports different chaos indicators. +All of these make use of variational equations, but most of the complexity is hidden. + +## Initialization +If you want to use a chaos indicator in REBOUND, first add all the particles to your simulations. +Then, initialize the variational particles and MEGNO variables with +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... add particles ... + reb_simulation_init_megno(r); + ``` +=== "Python" + ```python + sim = rebound.Simulation() + # ... add particles ... + sim.init_megno() + ``` + +REBOUND uses random numbers to initialize the variational particles. +The initial seed is chosen based on the current time and the process id. +This ensures the seed is different every time you run the simulation. +See the discussion on [random sampling](c_randomsamplingfunctions.md) for more details. + +If you want to have reproducible result, you can specify the seed manually: +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... add particles ... + reb_simulation_init_megno_seed(r, 0); // 0 is the initial seed + ``` +=== "Python" + ```python + sim = rebound.Simulation() + # ... add particles ... + sim.init_megno(seed=0) # 0 is the initial seed + ``` +## Accessing chaos indicators +Once you've initialized the chaos indicators, you can integrate the simulation normally. +To print out the MEGNO value or the largest Lyapunov characteristic number (LCN), use the following syntax: + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... add particles ... + reb_simulation_init_megno_seed(r); + // ... integrate ... + printf("MEGNO = %f\n", reb_simulation_megno(r)); + printf("LCN = %f\n", reb_simulation_lyapunov(r)); + ``` +=== "Python" + ```python + sim = rebound.Simulation() + # ... add particles ... + sim.init_megno() + # ... integrate ... + print("MEGNO", sim.calculate_megno()) + print("LCN", sim.lyapunov()) + ``` +!!! Note + Using chaos indicators is not always straightforward. + It can be particularly tricky to figure out how long to integrate for. + If the integration time is too short, you might not capture the Lyapunov timescale accurately. + On the other hand, if the integration time is too long, you can run into problems as well because quantities tend to grow exponentially with time in chaotic systems. + +!!! Note + There are different definitions of the LCN which might differ by a factor of order unity. + Here, we're following Eq. 24 of [Cincotta and Simo (2000)](https://aas.aanda.org/articles/aas/abs/2000/20/h1686/h1686.html). + +## Re-scaling of variational equations + +!!! Important + This is a new feature, first implemented in version 3.21 + +REBOUND will automatically re-scale first order variational equation once any coordinate of a variational particle becomes larger than $10^{100}$. +This is only possible for first order variational equations because they are linear. +It is not possible to re-scale second order equations. +For the calculation of MEGNO, all this is done behind the scenes and no user intervention is needed. +However, should you be interested in the actual value of the variational particles, for example to calculate a Lyapunov exponent manually, then you need to take the value of the `lrescale` variable into account. +This variable contains the natural logarithm of all re-scaling factors that have been applied throughout the integration to a given set of variational particles. + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... add particles ... + reb_simulation_init_megno_seed(r); + // ... integrate ... + struct reb_variational_configuration* vc = &(r->var_config[0]); + double log_x = log(r->particles[vc->index].x) + vc->lrescale; // log of x coordinate of variational particle + ``` +=== "Python" + ```python + sim = rebound.Simulation() + # ... add particles ... + sim.init_megno() + # ... integrate ... + vc = sim.var_config[0] + log_x = vc.particles[0] + vc.lrescale // log of x coordinate of variational particle + +Note that above the calculations involving the rescaling factors have been done in log space as floating point numbers cannot be used to represent a number larger than $10^{308}$. +For a more complete example, check out the [iPython Variational Equation example](ipython_examples/VariationalEquations.ipynb). diff --git a/rebound/source/docs/collisions.md b/rebound/source/docs/collisions.md new file mode 100644 index 0000000000000000000000000000000000000000..72aa116313c14e4a099c7e7672ed4f37e46a1d95 --- /dev/null +++ b/rebound/source/docs/collisions.md @@ -0,0 +1,246 @@ +# Collisions + +## Detecting collisions + +REBOUND comes with several collision detection modules. +These modules check for physical collisions (the distance between two particles is closer than the sum of the radii), not close encounters. +For a collision to occur between two particles, at least one of them needs to have a finite radius and collision detection needs to be turned on (it is turned off by default). + + +### No collisions +By default REBOUND does not search for collisions. +You can manually set the collision routine to NONE with the following code: +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->collision = REB_COLLISION_NONE; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.collision = "none" + ``` + +### Direct +The direct collision detection module is a brute force collision search and scales as $O(N^2)$. +It checks for instantaneous overlaps between every particle pair. +The following code enables this module: +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->collision = REB_COLLISION_DIRECT; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.collision = "direct" + ``` + +!!! Important + This method checks for instantaneous overlaps. It does this only after each timestep. + This means that if the timestep is large enough for particles to pass completely through each other, then the collision will be missed. + + + +### Line +This is a brute force collision search and scales as $O(N^2)$ but compared to the direct method described above, this algorithm checks for overlapping particles during the timestep (not just at the end). +It assumes particles travelled along straight lines during the timestep and might therefore miss some collisions. + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->collision = REB_COLLISION_LINE; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.collision = "line" + ``` + +### Tree +This method uses an oct-tree to check for overlapping particles at the end of the timestep. +When a large number of particles $N$ is used, this method scales as $O(N log(N))$, rather than $O(N^2)$ for the direct search. +Note that you need to initialize the simulation box whenever you want to use the tree. +Below is an example on how to enable the tree based collision search. + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_configure_box(r, 10, 1, 1, 1); # confine the simulation to a box of size 10 + r->collision = REB_COLLISION_TREE; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.configure_box(10) # confine the simulation to a box of size 10 + sim.collision = "tree" + ``` + + +### Linetree +Similar to the tree method, this method also uses an oct-tree and has a scaling of $O(N log(N))$. +It checks for overlapping trajectories during the last timestep, not only for overlapping particles at the end of the timestep. +It might still miss some collisions because it assumes that particles travel along straight lines. + + +Below is an example on how to enable the line-tree collision search. + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_configure_box(r, 10, 1, 1, 1); # confine the simulation to a box of size 10 + r->collision = REB_COLLISION_LINETREE; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.configure_box(10) # confine the simulation to a box of size 10 + sim.collision = "linetree" + ``` + +## Resolving collisions + +Once a collision has been detected, you have a choice on what to do next. +You might just want to merge particles, let them bounce off each other, or simply keep a log of all collisions that occurred. + +REBOUND comes with several built-in collision resolve functions. +You can also write your own. + +Internally this functionality is implemented using a [function pointer](https://www.cprogramming.com/tutorial/function-pointers.html). +You can set this pointer to a function that should be called when a collision occurs, whether it be a built-in function or your own. + +### Halt + +This function resolves a collision by simply halting the integration and setting the `status` flag in the simulation to `REB_STATUS_COLLISION`. +In python this will raise the `Collision` exception. +This is the default. +It can also be set manually using the following syntax: + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->collision = REB_COLLISION_DIRECT; + r->collision_resolve = reb_collision_resolve_halt; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.collision = "direct" + sim.collision_resolve = "halt" + ``` + +### Hard-sphere + +This assumes a hard-sphere collision and uses the `coefficient_of_restitution` function pointer in `struct reb_simulation` to determine coefficient of restitution which can be velocity dependent +It conserves momentum and mass. +Depending on the coefficient of restitution, it also conserves energy. + +The following example shows how to set up a hard-sphere collision resolve function and a direct collision detection routine. + +=== "C" + ```c + double coefficient_of_restitution_constant(const struct reb_simulation* const r, double v){ + // v is the normal impact velocity. + // Here, we just use a constant coefficient of restitution + return 0.5; + } + struct reb_simulation* r = reb_simulation_create(); + r->collision = REB_COLLISION_DIRECT; + r->coefficient_of_restitution = coefficient_of_restitution_constant; + r->collision_resolve = reb_collision_resolve_hardsphere; + ``` + +=== "Python" + ```python + def coefficient_of_restitution_constant(r, v): + # v is the normal impact velocity. + # Here, we just use a constant coefficient of restitution + return 0.5 + sim = rebound.Simulation() + sim.collision = "direct" + sim.coefficient_of_restitution = coefficient_of_restitution_constant + sim.collision_resolve = "hardsphere" + ``` + + +### Merge + +This function merges the two colliding particles. +It conserves mass, momentum and volume, but not energy. +The particle with the higher index will be removed. + +The following example shows how to set up a hard-sphere collision resolve function and a direct collision detection routine. + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->collision = REB_COLLISION_DIRECT; + r->collision_resolve = reb_collision_resolve_merge; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.collision = "direct" + sim.collision_resolve = "merge" + ``` + +### Custom function +You can write your own collision resolve function. +In your function, you can update the properties of the particles involved in the collision. +The return value of your function (of type `enum REB_COLLISION_RESOLVE_OUTCOME`) determines if a particle gets removed. + +- `REB_COLLISION_RESOLVE_OUTCOME_REMOVE_NONE` or `0`: don't remove either particle from the simulation +- `REB_COLLISION_RESOLVE_OUTCOME_REMOVE_P1` or `1`: remove the first particle (`p1`) from the simulation +- `REB_COLLISION_RESOLVE_OUTCOME_REMOVE_P2` or `2`: remove the second particle (`p2`) from the simulation +- `REB_COLLISION_RESOLVE_OUTCOME_REMOVE_BOTH` or `3`: remove both particles from the simulation + +Here is a short example on how to write a simple custom collision resolve function: + +=== "C" + ```c + enum REB_COLLISION_RESOLVE_OUTCOME collision_print_only(struct reb_simulation* const r, struct reb_collision c){ + printf("%f\t", r->p); + printf("%f\t", r->particles[c.p1].x); // x position of particle 1 + printf("%f\n", r->particles[c.p2].x); // x position of particle 2 + return REB_COLLISION_RESOLVE_OUTCOME_REMOVE_NONE; // Don't remove either particle + } + + int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + r->collision = REB_COLLISION_DIRECT; + r->collision_resolve = collision_print_only; + } + ``` + +=== "Python" + ```python + def collision_print_only(sim_pointer, collision): + sim = sim_pointer.contents # get simulation object from pointer + print(sim.t) # print time + print(sim.particles[collision.p1].x) # x position of particle 1 + print(sim.particles[collision.p2].x) # x position of particle 2 + return 0 # Don't remove either particle + + sim = rebound.Simulation() + sim.collision = "direct" + sim.collision_resolve = collision_print_only + ``` +The first argument of the collision resolve function is a pointer to the simulation. +The second argument is a `reb_collision` structure. +It contains information about which particles are involved in the collision and, for periodic or shear-periodic [boundary conditions](boundaryconditions.md), if the collision occurred across a boundary: + +`int p1` +: Index corresponding to one of the colliding particles + +`int p2` +: Index corresponding to one of the colliding particles + +`struct reb_vec6d gb` +: Shift of particle p1 due to a collision across periodic and shearing sheet boundaries. All entries are zero if a normal collision occurs. diff --git a/rebound/source/docs/examples.md b/rebound/source/docs/examples.md new file mode 100644 index 0000000000000000000000000000000000000000..cd5cd9a4665114ab8571c9bf96827aa8f26cf263 --- /dev/null +++ b/rebound/source/docs/examples.md @@ -0,0 +1,9 @@ +# Examples in REBOUND +We provide a lot of examples for REBOUND. We think examples are the easiest way to learn how to use REBOUND. +This page contains a list of all examples that come with REBOUND. +The examples are sorted by topic. +Note that some examples use the C version, other the python version of REBOUND. +Often, the syntax is very similar and you might want to look at the C examples even if you want to write python code and vice verse. +!!! Info + You can find the source code for all examples in the `examples/` and `ipython_examples/` directories. + diff --git a/rebound/source/docs/generate_python_docs.py b/rebound/source/docs/generate_python_docs.py new file mode 100644 index 0000000000000000000000000000000000000000..b0098c790437b790ba17be52f7663858de25a15c --- /dev/null +++ b/rebound/source/docs/generate_python_docs.py @@ -0,0 +1,39 @@ +import rebound +import inspect +import docstring_to_markdown +def convert_code_blocks(doc): + new_doc = "" + lines = doc.split("\n") + first = True + for line in lines: + if first: + if line[:3]==">>>": + first = False + new_doc += "```python\n" + new_doc += line[3:]+"\n" + else: + new_doc += line+"\n" + else: + if line[:3]==">>>": + new_doc += line[3:]+"\n" + else: + new_doc += "```\n" + new_doc += line+"\n" + first = True + if first==False: + new_doc += "```\n" + + return new_doc + +def render_class(cls, functions=None): + d = "## Class `"+cls+"`\n" + d += convert_code_blocks(inspect.cleandoc(eval(cls).__doc__)) + for function in functions: + f = getattr(eval(cls),function) + d += "## Function `"+cls+"."+function+"`\n" + d += convert_code_blocks(inspect.cleandoc(f.__doc__)) + + return d + +print(render_class("rebound.Simulation",["copy"])) + diff --git a/rebound/source/docs/gravity.md b/rebound/source/docs/gravity.md new file mode 100644 index 0000000000000000000000000000000000000000..e112eb4eb9e88772e13fc39264922cb7584f02d0 --- /dev/null +++ b/rebound/source/docs/gravity.md @@ -0,0 +1,29 @@ +# Gravity solvers + +## Basic +`REB_GRAVITY_BASIC` + +The basic gravity routine works is the default. It works in most cases. +It uses direct summation to calculate gravitational forces between all particle pairs. +OpenMP parallelization is implemented. If OpenMP is turned on, the scaling is $O(N^2)$, otherwise, it is $O(\frac12 N^2)$, where $N$ is the number of particles. + +## Compensated +`REB_GRAVITY_COMPENSATED` + +This routine also uses direct summation but in addition makes use of compensated summation to minimize round-off errors. +There are only a few special cases where the round-off error in force calculations has a dominant effect. In most cases, the basic gravity routine is faster and equally accurate. + +## Tree +`REB_GRAVITY_TREE` + +This method uses an oct tree (Barnes and Hut 1986) to approximate self-gravity. It scales as $O(N \log(N))$. + +## Tree +`REB_GRAVITY_JACOBI` + +Direct summation, scales as $O(N^2)$, includes special terms needed for some symplectic integrators. + +## None +`REB_GRAVITY_NONE` + +By using this gravity routine, no self-gravity calculated. It is still possible to include additional forces. diff --git a/rebound/source/docs/img/favicon.ico b/rebound/source/docs/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b99d52f7eacfaa5eb2b63575a1357841ea5ebd25 Binary files /dev/null and b/rebound/source/docs/img/favicon.ico differ diff --git a/rebound/source/docs/img/orbit.png b/rebound/source/docs/img/orbit.png new file mode 100644 index 0000000000000000000000000000000000000000..47933a966e5af39353e9ca2c506c04e756bc844d Binary files /dev/null and b/rebound/source/docs/img/orbit.png differ diff --git a/rebound/source/docs/img/rebound.png b/rebound/source/docs/img/rebound.png new file mode 100644 index 0000000000000000000000000000000000000000..0c63991ae16a3a5d57448d3a49ab83b10c6140fd Binary files /dev/null and b/rebound/source/docs/img/rebound.png differ diff --git a/rebound/source/docs/img/reboundbanner.png b/rebound/source/docs/img/reboundbanner.png new file mode 100644 index 0000000000000000000000000000000000000000..c4749616f498c540f98fa74d3ee37ce7d930edec --- /dev/null +++ b/rebound/source/docs/img/reboundbanner.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:296d298b253a126e4803c81f9025b4ccbdceb65e3b5e3f8be6b0723a4ad04a90 +size 710010 diff --git a/rebound/source/docs/img/reboundblack.png b/rebound/source/docs/img/reboundblack.png new file mode 100644 index 0000000000000000000000000000000000000000..335240631d749ceb7250ee0eafed4d7ce148edb5 Binary files /dev/null and b/rebound/source/docs/img/reboundblack.png differ diff --git a/rebound/source/docs/img/shear.png b/rebound/source/docs/img/shear.png new file mode 100644 index 0000000000000000000000000000000000000000..c5658323f2f0544f62a17ddeadd43860caeb795a Binary files /dev/null and b/rebound/source/docs/img/shear.png differ diff --git a/rebound/source/docs/index.md b/rebound/source/docs/index.md new file mode 100644 index 0000000000000000000000000000000000000000..f0e6490c2fcfb57777a20ef2a44747273f0d930b --- /dev/null +++ b/rebound/source/docs/index.md @@ -0,0 +1,103 @@ +# Welcome to REBOUND + +![REBOUND Examples](img/reboundbanner.png) + +REBOUND is an N-body integrator, i.e. a software package that can integrate the motion of particles under the influence of gravity. The particles can represent stars, planets, moons, ring or dust particles. REBOUND is very flexible and can be customized to accurately and efficiently solve many problems in astrophysics. + +## Features + + +* No dependencies on external libraries. +* Runs natively on Linux, MacOS, and Windows. +* Symplectic integrators ([WHFast](integrators/#whfast), [SEI](integrators/#sei), [LEAPFROG](integrators/#leapfrog), [EOS](integrators/#embedded-operator-splitting-method-eos)) +* Hybrid reversible integrators for planetary dynamics with arbitrary close encounters ([TRACE](integrators/#trace)) +* Hybrid symplectic integrators for planetary dynamics with close encounters ([MERCURIUS](integrators/#mercurius)) +* High order symplectic integrators for integrating planetary systems ([SABA](integrators/#saba), WH Kernel methods) +* High accuracy non-symplectic integrator with adaptive time-stepping ([IAS15](integrators/#ias15)) +* Can integrate arbitrary user-defined ODEs that are coupled to N-body dynamics for tides, spin, etc +* Support for collisional/granular dynamics, various collision detection routines +* The computationally intensive parts of the code are written entirely in C, conforming to the ISO standard C99, and can be used as a thread-safe shared library +* Easy-to-use Python module, installation in 3 words: `pip install rebound` +* Real-time, 3D visualization, for both C and Python. +* Extensive set of example problems for both C and Python. You can run examples directly from your browser without the need to download or install anything. +* Parallelized [WHFast512](integrators/#whfast512) integrator for super fast integrations of planetary systems with SIMD AVX512 instructions +* Parallelized with OpenMP (for shared memory systems) +* Parallelized with [MPI](mpi/) is supported for some special use cases only (using an essential tree for gravity and collisions) +* The code is 100% open-source. All features are included in the public repository on [github](https://github.com/hannorein/rebound) + +## Contributors + +* Hanno Rein, University of Toronto, +* Dan Tamayo, Harvey Mudd College +* David S. Spiegel, Institute for Advanced Study Princeton, +* Garett Brown, University of Toronto, +* Shangfei Liu, Kavli Institute for Astronomy and Astrophysics at Peking University, +* Ari Silburt, Penn State University, +* Pejvak Javaheri, University of Toronto, +* Ruth Huang, University of Toronto, +* and many others! Check the git history to find out who contributed to the code. + +REBOUND is open source and you are invited to contribute to this project! + +## YouTube tutorials + +There are several short YouTube videos describing various aspects of REBOUND available at . + +## Related projects + +### Additional physics +To easily incorporate additional physics modules such as migration forces, GR effects and spin into your REBOUND simulations, see REBOUNDx at . + +### Analytical and semianalytical tools +If you're interested in comparing numerical simulations to analytical and semianalytical tools for celestial mechanics, see Celmech at . + +### Ephemeris-quality integrations of test particles +To generate ephemeris-quality integrations of test particles in the Solar System with a precision on par with JPL's small body integrator, see ASSIST at . + + +## Papers + +There are several papers describing the functionality of REBOUND. + +1. Rein & Liu 2012 (Astronomy and Astrophysics, Volume 537, A128) describes the code structure and the main feature including the gravity and collision routines for many particle systems. + +2. Rein & Tremaine 2011 (Monthly Notices of the Royal Astronomical Society, Volume 415, Issue 4, pp. 3168-3176) describes the Symplectic Epicycle integrator for shearing sheet simulations. + +3. Rein & Spiegel 2015 (Monthly Notices of the Royal Astronomical Society, Volume 446, Issue 2, p.1424-1437) describes the versatile high order integrator IAS15 which is now part of REBOUND. + +4. Rein & Tamayo 2015 (Monthly Notices of the Royal Astronomical Society, Volume 452, Issue 1, p.376-388) describes WHFast, the fast and unbiased implementation of a symplectic Wisdom-Holman integrator for long term gravitational simulations. + +5. Rein & Tamayo 2016 (Monthly Notices of the Royal Astronomical Society, Volume 459, Issue 3, p.2275-2285) develop the framework for second order variational equations. + +6. Rein & Tamayo 2017 (Monthly Notices of the Royal Astronomical Society, Volume 467, Issue 2, p.2377-2383) describes the Simulationarchive for exact reproducibility of N-body simulations. + +7. Rein & Tamayo 2018 (Monthly Notices of the Royal Astronomical Society, Volume 473, Issue 3, p.3351–3357) describes the integer based JANUS integrator. + +8. Rein, Hernandez, Tamayo, Brown, Eckels, Holmes, Lau, Leblanc & Silburt 2019 (Monthly Notices of the Royal Astronomical Society, Volume 485, Issue 4, p.5490-5497) describes the hybrid symplectic integrator MERCURIUS. + +9. Rein, Tamayo & Brown 2019 (Monthly Notices of the Royal Astronomical Society, Volume 489, Issue 4, November 2019, Pages 4632-4640) describes the implementation of the high order symplectic integrators SABA, SABAC, SABACL, WHCKL, WHCKM, and WHCKC. + +10. Javaheri, Rein & Tamayo 2023 (The Open Journal of Astrophysics, Volume 6, July 2023) describes the WHFast512 integrator which uses AVX512 instructions. + +## Acknowledgements + +If you use this code or parts of this code for results presented in a scientific publication, we would greatly appreciate a citation. +The simplest way to find the citations relevant to the specific setup of your REBOUND simulation is: + +```python +sim = rebound.Simulation() +-your setup- +sim.cite() +``` + +!!! Info + When you cite one of the REBOUND papers, your paper will receive an automatic shout-out from the [REBOUND Citation Bot](https://botsin.space/@reboundbot). + +## License + +REBOUND is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +REBOUND is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with REBOUND. If not, see . + diff --git a/rebound/source/docs/integrators.md b/rebound/source/docs/integrators.md new file mode 100644 index 0000000000000000000000000000000000000000..88970ec8c20ed9e2f247f3dbaa4cca7aaf6af745 --- /dev/null +++ b/rebound/source/docs/integrators.md @@ -0,0 +1,852 @@ +# Integrators + +![type:video](https://www.youtube.com/embed/QW5a-iH62dQ) + +Numerical integrators are the backbone of any N-body package. +A numerical integrator evolves particles forward in time, one timestep at a time. +To do that, the integrator needs to know the current position and velocity coordinates of the particles, and the equations of motion which come in the form of a set of ordinary differential equations. + +Because an exact solution to these differential equations is in general unknown, each integrator attempts to approximate the true solution numerically. +Different integrators do this differently and each of them has some advantages and some disadvantages. +Each of the built-in integrators of REBOUND is described in this section. + +## IAS15 + +![type:video](https://www.youtube.com/embed/UILEgdZt-fw) + +IAS15 stands for **I**ntegrator with **A**daptive **S**tep-size control, **15**th order. It is a very high order, non-symplectic integrator which can handle arbitrary forces (including those who are velocity dependent). +It is in most cases accurate down to machine precision (16 significant decimal digits). +The IAS15 implementation in REBOUND can integrate variational equations. +The algorithm is described in detail in [Rein & Spiegel 2015](https://ui.adsabs.harvard.edu/abs/2015MNRAS.446.1424R/abstract) and also in the original paper by [Everhart 1985](https://ui.adsabs.harvard.edu/abs/1985ASSL..115..185E/abstract). + + +IAS15 is the default integrator of REBOUND, so if you want to use it, you don't need to do anything. +However, you can also set it explicitly: + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_IAS15; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.integrator = "ias15" + ``` + +The setting for IAS15 are stored in the `reb_integrator_ias15` structure. + +`epsilon` (`double`) +: IAS15 is an adaptive integrator. It chooses its timesteps automatically. This parameter controls the accuracy of the integrator. The default value is $10^{-9}$. Setting this parameter to 0 turns off adaptive timestepping and a constant timestep will is used. Turning off adaptive time-stepping is rarely useful. + + !!! Important + It is tempting to change `epsilon` to achieve a speedup at the loss of some accuracy. However, that makes rarely sense. The reason is that IAS15 is a very high (15th!) order integrator. Suppose we increase the timestep by a factor of 10. This will increase the error by a factor of $10^{15}$. In other words, a simulation that previously was converged to machine precision will now have an error of order unity. + +`min_dt` (`double`) +: This sets the minimum allowed timestep. The default value is 0. Set this to a finite value if the adaptive timestep becomes excessively small, for example during close encounters or because of finite floating point precision. Use with caution and make sure the simulation results still make physically sense as you might be in danger of ignoring small timescales in the problem. + The following code sets the smallest timestep to $10^{-3}$ time units: + === "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->ri_ias15.min_dt = 1e-3; + ``` + + === "Python" + ```python + sim = rebound.Simulation() + sim.ri_ias15.min_dt = 1e-3 + ``` + +`adaptive_mode` `(unsigned int`) +: This flag determines how the adaptive timestep is chosen. The previous name of this flag was `epsilon_global`. + The default is 2 which corresponds to the timestep criterion described in Pham, Rein, and Spiegel (2024). + This should be optimal in almost all cases. + If set to 0, the fractional error is estimated via `max(acceleration_error/acceleration)` and the timestep criterion of Rein and Spiegel (2015) is used. + If set to 1, IAS15 estimates the fractional error via `max(acceleration_error)/max(acceleration)` where the maximum is taken over all particles. As before, the timestep criterion of Rein and Spiegel (2015) is used. This was the default until January 2024. + If set to 3, then the criterion of [Aarseth 1985](https://ui.adsabs.harvard.edu/abs/1985IAUS..113..251A/abstract) is used. + +All other members of this structure are only for internal IAS15 use. + + +## WHFast + +![type:video](https://www.youtube.com/embed/ttLUhtNj1Lc) + +WHFast is an implementation of the symplectic [Wisdom-Holman](https://ui.adsabs.harvard.edu/abs/1991AJ....102.1528W/abstract) integrator. +It is the best choice for systems in which there is a dominant central object and perturbations to the Keplerian orbits are small. +It supports first and second symplectic correctors as well as the kernel method of [Wisdom et al. 1996](https://ui.adsabs.harvard.edu/abs/1996FIC....10..217W/abstract) with various different kernels. +The basic implementation of WHFast is described in detail in [Rein & Tamayo 2015](https://ui.adsabs.harvard.edu/abs/2015MNRAS.452..376R/abstract). +The higher order aspects of it are described in [Rein, Tamayo & Brown 2019](https://ui.adsabs.harvard.edu/abs/2019MNRAS.489.4632R/abstract). +WHFast also supports first order variational equations which can be used in chaos estimators ([Rein & Tamayo 2016](https://ui.adsabs.harvard.edu/abs/2016MNRAS.459.2275R/abstract)). +The user can choose between Jacobi, Democratic Heliocentric, WHDS, and barycentric coordinates. + +The following code enables the WHFast integrator. +Because WHFast is not an adaptive integrator, you also need to set a timestep. +Typically, this should be a small fraction (a few percent) of the smallest dynamical timescale in the problem. +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_WHFAST; + r->dt = 0.1; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.integrator = "whfast" + sim.dt = 0.1 + ``` + + +The setting for WHFast are stored in the `reb_integrator_whfast` structure, which itself is part of the simulation structure. + +`unsigned int corrector` +: This variable turns on/off different first symplectic correctors for WHFast. + By default, it is set to zero and symplectic correctors are turned off. + + First symplectic correctors remove error terms up to $O(\epsilon \cdot dt^p)$, where $p$ is the order of the symplectic corrector, and $\epsilon$ is the mass ratio in the system. + The following first correctors are implemented in REBOUND: + + Order | Number of stages + ------- | ---------------- + 0 | Correctors turned off (default) + 3 | 2 + 5 | 4 + 7 | 6 + 11 | 10 + 17 | 16 + + For most cases you want to choose the 17th order corrector. + You only want to consider lower order correctors if frequent outputs are required and speed is an issue. + Symplectic correctors are turned on as follows. + + + === "C" + ```c + r->ri_whfast.corrector = 17; + r->ri_whfast.safe_mode = 0; + ``` + + === "Python" + ```python + sim.ri_whfast.corrector = 17 + sim.ri_whfast.safe_mode = 0 + ``` + + Note that the above code also turns off the safe mode. + Most likely, you want to do that too (see below for a description of the safe mode). + +`unsigned int corrector2` +: This variable turns on/off second symplectic correctors for WHFast. + By default, second symplectic correctors are off (0). + Set to 1 to use second symplectic correctors. + + !!! Info + The nomenclature can be a bit confusing. + First symplectic correctors are different from second symplectic correctors. + And in REBOUND first symplectic correctors have different orders (see above). + Second symplectic correctors on the other hand can only be turned on or off. + See [Rein, Tamayo & Brown 2019](https://ui.adsabs.harvard.edu/abs/2019MNRAS.489.4632R/abstract) for more on high order symplectic integrators. + +`unsigned int kernel` +: This variable determines the kernel of the WHFast integrator. + The following options are currently supported: + + - The standard Wisdom-Holman kick step. This is the default. + - Exact modified kick. This works for Newtonian gravity only. Not additional forces. + - The composition kernel. + - Lazy implementer's modified kick. This is often the best option. + + Check [Rein, Tamayo & Brown 2019](https://ui.adsabs.harvard.edu/abs/2019MNRAS.489.4632R/abstract) for details on what these kernel methods are. + The syntax to use them is + + === "C" + ```c + r->ri_whfast.kernel = REB_WHFAST_KERNEL_DEFAULT; // or + r->ri_whfast.kernel = REB_WHFAST_KERNEL_MODIFIEDKICK; // or + r->ri_whfast.kernel = REB_WHFAST_KERNEL_COMPOSITION; // or + r->ri_whfast.kernel = REB_WHFAST_KERNEL_LAZY; + ``` + + === "Python" + ```python + sim.ri_whfast.kernel = "default" # or + sim.ri_whfast.kernel = "modifiedkick" # or + sim.ri_whfast.kernel = "composition" # or + sim.ri_whfast.kernel = "lazy" + ``` + +`unsigned int coordinates` +: WHFast supports different coordinate systems. + Default are Jacobi Coordinates. + Other options are democratic heliocentric coordinates, and the WHDS coordinates ([Hernandez & Dehnen, 2017](https://ui.adsabs.harvard.edu/abs/2017MNRAS.468.2614H/abstract)) + The syntax to use them is + + === "C" + ```c + r->ri_whfast.coordinates = REB_WHFAST_COORDINATES_JACOBI; // or + r->ri_whfast.coordinates = REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC; // or + r->ri_whfast.coordinates = REB_WHFAST_COORDINATES_WHDS; // or + r->ri_whfast.coordinates = REB_WHFAST_COORDINATES_BARYCENTRIC; + ``` + + === "Python" + ```python + sim.ri_whfast.coordinates = "jacobi" # or + sim.ri_whfast.coordinates = "democraticheliocentric" # or + sim.ri_whfast.coordinates = "whds" # or + sim.ri_whfast.coordinates = "barycentric" + ``` + +`unsigned int recalculate_coordinates_this_timestep` +: Setting this flag to one will recalculate the internal coordinates from the particle structure in the next timestep. + After the timestep, the flag gets set back to 0. If you want to change particles after every timestep, you also need to set this flag to 1 before every timestep. Default is 0. + +`unsigned int safe_mode` +: If this flag is set (the default), WHFast will recalculate the internal coordinates (Jacobi/heliocentric/WHDS/barycentric) and synchronize every timestep, to avoid problems with outputs or particle modifications between timesteps. + Setting it to 0 will result in a speedup, but care must be taken to synchronize and recalculate the internal coordinates when needed. See also the AdvWHFast.ipynb tutorial. + +`unsigned int keep_unsynchronized` +: This flag determines if the inertial coordinates generated are discarded in subsequent timesteps (cached Jacobi/heliocentric/WHDS/barycentric coordinates are used instead). The default is 0. Set this flag to 1 if you require outputs and bit-wise reproducibility + +All other members of the `reb_integrator_whfast` structure are for internal use only. + +## Gragg-Bulirsch-Stoer (BS) +The Gragg-Bulirsch-Stoer integrator (short BS for Bulirsch-Stoer) is an adaptive integrator which uses Richardson extrapolation and the modified midpoint method to obtain solutions to ordinary differential equations. + +The version in REBOUND is based on the method described in Hairer, Norsett, and Wanner 1993 (see section II.9, page 224ff), specifically the JAVA implementation available in the [Hipparchus package](https://github.com/Hipparchus-Math/hipparchus/blob/master/hipparchus-ode/src/main/java/org/hipparchus/ode/nonstiff/GraggBulirschStoerIntegrator.java). The Hipparchus as well as the REBOUND version are adaptive in both the timestep and the order of the method for optimal performance. +The BS implementation in REBOUND can integrate first and second order variational equations. + +The BS integrator is particularly useful for short integrations where only medium accuracy is required. For long integrations a symplectic integrator such as WHFast performs better. For high accuracy integrations the IAS15 integrator performs better. Because BS is adaptive, it can handle close encounters. Currently a collision search is only performed after every timestep, i.e. not after a sub-timestep. + +The following code enables the BS integrator and sets both the relative and absolute tolerances to 0.0001 (the default is $10^{-8}$): + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_BS; + r->ri_bs.eps_rel = 1e-4; + r->ri_bs.eps_abs = 1e-4; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.integrator = "BS" + sim.ri_bs.eps_rel = 1e-4 + sim.ri_bs.eps_abs = 1e-4 + ``` + +The BS integrator tries to keep the error of each coordinate $y$ below $\epsilon_{abs} + \epsilon_{rel} \cdot \left|y\right|$. Note that this applies to both position and velocity coordinates of all particles which implies that the code units you're choosing for the integration matter. If you need fine control over the scales used internally, you can set the `getscale` function pointer in `r->ri_bs.nbody_ode` (this is currently undocumented, search the source code for `getscale` to find out more). + +!!! Info + The code does not guarantee that the errors remain below the tolerances. In particular, note that BS is not a symplectic integrator which results in errors growing linearly in time (phase errors grow quadratically in time). It requires some experimentation to find the tolerances that offer the best compromise between accuracy and speed for your specific problem. + + +You can limit the timestep with both a maximum and minimum timestep: + +=== "C" + ```c + r->ri_bs.min_dt = 1e-5; + r->ri_bs.max_dt = 1e-2; + ``` + +=== "Python" + ```python + sim.ri_bs.min_dt = 1e-5 + sim.ri_bs.max_dt = 1e-2 + ``` + +Compared to the other integrators in REBOUND, BS can be used to integrate arbitrary ordinary differential equations (ODEs), not just the N-body problem. We expose an ODE-API in REBOUND which allows you to make use of this. User-defined ODEs are always integrated with BS. You can choose to integrate the N-body equations with BS as well, or any of the other integrators. + +If you choose BS for the N-body equations, then BS will treat all ODEs (N-body + all user-defined ones) as one big system of coupled ODEs. This means your timestep will be set by either the N-body problem or the user-defined ODEs, whichever involves the shorter timescale. + +If you choose IAS15 or WHFast for the N-body equation but also have user-defined ODEs, then they cannot be treated as one big coupled system of ODEs anymore. In that case the N-body integration is done first. Then the user-defined ODEs are advanced to the exact same time as the N-body system using BS using whatever timestep is required to achieve the tolerance set in the `ri_bs` struct. During the integration of the user-defined ODEs, the coordinates of the particles in the N-body simulation are assumed to be fixed at their final position and velocity. This introduces an error. However, if the system evolves adiabatically (the timescales in the user-defined ODEs are much longer than in the N-body problem), then the error will be small. + +The following code sets up a REBOUND simulation in which a harmonic oscillator is driven by the phase of a planet orbiting a star: + +=== "C" + ```c + void derivatives(struct reb_ode* const ode, double* const yDot, const double* const y, const double t){ + struct reb_orbit o = reb_orbit_from_particle(ode->r->G, ode->r->particles[1], ode->r->particles[0]); + const double omega = 1; + double forcing = sin(o.f); + yDot[0] = y[1]; + yDot[1] = -omega*omega*y[0] + forcing; + } + + void run(){ + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_add_fmt(r, "m", 1.); + reb_simulation_add_fmt(r, "m a e", 1e-3, 1., 0.1); + + r->integrator = REB_INTEGRATOR_BS; + + struct reb_ode* ho = reb_ode_create(r,2); // Add an ODE with 2 dimensions + ho->derivatives = derivatives; // Right hand side of the ODE + ho->y[0] = 1; // Initial conditions + ho->y[1] = 0; + } + ``` + +=== "Python" + ```python + import numpy as np + + def derivatives(ode, yDot, y, t): + omega = 1.0 + sim_pointer = ode.contents.r + orbit = sim_pointer.contents.particles[1] + forcing = np.sin(orbit.f) + yDot[0] = y[1] + yDot[1] = -omega*omega*y[0] + forcing + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3, a=1, e=0.1) + + sim.integrator = "BS" + + ho = sim.create_ode(length=2) # Add an ODE with 2 dimensions + ho.derivatives = derivatives # Right hand side of the ODE + ho.y[0] = 1.0 # Initial conditions + ho.y[1] = 0.0 + ``` + + +## Mercurius + +MERCURIUS is a hybrid symplectic integrator very similar to MERCURY ([Chambers 1999](https://ui.adsabs.harvard.edu/abs/1999MNRAS.304..793C/abstract)). +It uses WHFast for long term integrations but switches over smoothly to IAS15 for close encounters. +The MERCURIUS implementation is described in [Rein et al 2019](https://ui.adsabs.harvard.edu/abs/2019MNRAS.485.5490R/abstract). + + +The following code enables MERCURIUS and sets the critical radius to 4 Hill radii +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_MERCURIUS; + r->ri_mercurius.r_crit_hill = 4.; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.integrator = "mercurius" + sim.ri_mercurius.r_crit_hill = 4. + ``` + +The `reb_integrator_mercurius` structure contains the configuration and data structures used by the hybrid symplectic MERCURIUS integrator. + +`double (*L) (const struct reb_simulation* const r, double d, double dcrit)` +: This is a function pointer to the force switching function. + If NULL (the default), the MERCURY switching function will be used. + The argument `d` is the distance between two particles. + The argument `dcrit` is the maximum critical distances of the two particles. + The return value is a scalar between 0 and 1. + If this function always returns 1, then the integrator effectively becomes the standard Wisdom-Holman integrator. + + The following switching functions are available: + + + - Mercury switching function + + This is the same polynomial switching function as used in MERCURY. + + ```c + double reb_integrator_mercurius_L_mercury(const struct reb_simulation* const r, double d, double dcrit); + ``` + - Smooth switching functions + + These two polynomials switching functions are 4 and 5 times differentiable. + Using smooth switching functions can improve the accuracy. + For a detailed discussion see [Hernandez 2019](https://ui.adsabs.harvard.edu/abs/2019MNRAS.490.4175H/abstract). + + ```c + double reb_integrator_mercurius_L_C4(const struct reb_simulation* const r, double d, double dcrit); + double reb_integrator_mercurius_L_C5(const struct reb_simulation* const r, double d, double dcrit); + ``` + + - Infinitely differentiable switching function + + This is an infinitely differentiable switching function. + + ```c + double reb_integrator_mercurius_L_infinity(const struct reb_simulation* const r, double d, double dcrit); + ``` + + The switching function can be set using this syntax: + + === "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->ri_mercurius.L = reb_integrator_mercurius_L_infinity; + ``` + + === "Python" + ```python + sim = rebound.Simulation() + sim.ri_mercurius.L = "infinity" + ``` + +`double r_crit_hill` +: The critical switchover radii of particles are calculated automatically based on multiple criteria. One criterion calculates the Hill radius of particles and then multiplies it with the `r_crit_hill` parameter. The parameter is in units of the Hill radius. The default value is 3. + +`unsigned int recalculate_coordinates_this_timestep` +: Setting this flag to one will recalculate heliocentric coordinates from the particle structure at the beginning of the next timestep. After a single timestep, the flag gets set back to 0. If one changes a particle manually after a timestep, then one needs to set this flag to 1 before the next timestep. + +`unsigned int recalculate_r_crit_this_timestep` +: Setting this flag to one will recalculate the critical switchover distances dcrit at the beginning of the next timestep. After one timestep, the flag gets set back to 0. If you want to recalculate `dcrit` at every timestep, you also need to set this flag to 1 before every timestep. + +`unsigned int safe_mode` +: If this flag is set to 1 (the default), the integrator will recalculate heliocentric coordinates and synchronize after every timestep to avoid problems with outputs or particle modifications between timesteps. Setting this flag to 0 will result in a speedup, but care must be taken to synchronize and recalculate coordinates manually if needed. + +## TRACE + +TRACE is a hybrid time-reversible integrator, based on the algorithm described in [Hernandez & Dehnen 2023](https://ui.adsabs.harvard.edu/abs/2023MNRAS.522.4639H/abstract). +It uses WHFast for long term integrations but switches time-reversibly to BS or IAS15 for all close encounters. TRACE is appropriate for systems with a dominant central mass that will occasionally have close encounters. +The TRACE implementation is described in [Lu, Hernandez & Rein](https://ui.adsabs.harvard.edu/abs/2024MNRAS.533.3708L/abstract). + + +The following code enables TRACE and sets the critical radius to 4 Hill radii +=== "C" + ```c + struct reb_simulation* r = reb_create_simulation(); + r->integrator = REB_INTEGRATOR_TRACE; + r->ri_trace.r_crit_hill = 4; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.integrator = "trace" + sim.ri_trace.r_crit_hill = 4 + ``` + +The `reb_integrator_trace` structure contains the configuration and data structures used by the hybrid symplectic TRACE integrator. + +`int (*S) (const struct reb_simulation* const r, const unsigned int i, const unsigned int j)` +: This is a function pointer to the switching function for close encounters between non-central bodies. + If NULL (the default), the default switching function will be used. + The arguments `i` and `j` are the indices of the two particles considered. + The return value is either 0 or 1. + A return value of 1 means a close encounter has been flagged. + If the return values of both this function and the central switching function below are always 0, then the integrator effectively becomes the standard Wisdom-Holman integrator. + + - Default switching function + + This is a similar (but slightly modified) switching function used in MERCURY. It uses a modified Hill radius criteria, with heliocentric distance replacing semimajor axis + + ```c + int reb_integrator_trace_switch_default(const struct reb_simulation* const r, const unsigned int i, const unsigned int j); + ``` + + The switching function can be manually set using this syntax: + + === "C" + ```c + struct reb_simulation* r = reb_create_simulation(); + r->ri_trace.S = reb_integrator_trace_switch_default; + ``` + + === "Python" + ```python + sim = rebound.Simulation() + sim.ri_trace.S = "default" + ``` + +`int (*S_peri) (const struct reb_simulation* const r, const unsigned int j)` +: This is a function pointer to the switching function for close encounters involving the central body. + If NULL (the default), the default switching function will be used. + The argument `j` is the index of the non-central particle considered. + The return value is either 0 or 1. + A return value of 1 means a close encounter has been flagged. + + - Default switching function + + This switching function checks if a body is close to its pericenter by considering a timescale derived from high-order derivatives of the particle's herliocentric position, inspired by [Pham, Rein, and Spiegel 2024](https://ui.adsabs.harvard.edu/abs/2024OJAp....7E...1P/abstract). + + ```c + int reb_integrator_trace_switch_peri_default(const struct reb_simulation* const r, const unsigned int j); + ``` + The switching function can be manually set using this syntax: + + === "C" + ```c + struct reb_simulation* r = reb_create_simulation(); + r->ri_trace.S_peri = reb_integrator_trace_switch_peri_default; // default + r->ri_trace.S_peri = reb_integrator_trace_switch_peri_none; // Turn off pericenter switching + ``` + + === "Python" + ```python + sim = rebound.Simulation() + sim.ri_trace.S_peri = "default" # Following Pham et al 2024 + sim.ri_trace.S_peri = "none" # Turn off pericenter switching + ``` + +`double r_crit_hill` +: The critical switchover radii of non-central particles are calculated based on a modified Hill radii criteria. This modified Hill radius for each particle is calculated and then multiplied by the `hillfac` parameter. The parameter is in units of the modified Hill radius. This value is used by the `default` switching function. The default value is 4. + +`double peri_crit_eta` +: The criteria for a pericenter approach with the central body. This criteria is used in the `default` pericenter switching condition. It flags a particle as in a close pericenter approach if the ratio of the timestep to the condition described in [Pham, Rein, and Spiegel 2024](https://ui.adsabs.harvard.edu/abs/2024OJAp....7E...1P/abstract). The default value is 1. + + The switching criteria can be manually set using this syntax: + + === "C" + ```c + struct reb_simulation* r = reb_create_simulation(); + r->ri_trace.peri_crit_eta = 0.5; // or + ``` + + === "Python" + ```python + sim = rebound.Simulation() + sim.ri_trace.peri_crit_eta = 0.5 # or + ``` +`unsigned int peri_mode` +: This variable determines how TRACE integrates close approaches with the central star. + The following options are currently supported: + + - Integrating the entire system with BS. This is the default. + - Integrating only the Kepler Step with BS. + - Integrating the entire system with IAS15. + + Check [Lu, Hernandez & Rein 2024](https://ui.adsabs.harvard.edu/abs/2024MNRAS.533.3708L/abstract) for details on what these pericenter switching modes entail. + The syntax to use them is + + === "C" + ```c + r->ri_trace.peri_mode = REB_TRACE_PERI_PARTIAL_BS; // or + r->ri_trace.peri_mode = REB_TRACE_PERI_FULL_BS; // or + r->ri_trace.peri_mode = REB_TRACE_PERI_FULL_IAS15; // or + ``` + + === "Python" + ```python + sim.ri_trace.peri_mode = "PARTIAL_BS" # or + sim.ri_trace.peri_mode = "FULL_BS" # or + sim.ri_trace.peri_mode = "FULL_IAS15" # or + ``` +## SABA + +SABA are symplectic integrators developed by [Laskar & Robutel 2001](https://ui.adsabs.harvard.edu/abs/2001CeMDA..80...39L/abstract) and [Blanes et al. 2013](https://ui.adsabs.harvard.edu/abs/2012arXiv1208.0689B/abstract). +The implementation in REBOUND supports SABA1, SABA2, SABA3, and SABA4 as well as the corrected versions SABAC1, SABAC2, SABAC3, and SABAC4. +Different correctors can be selected. +In addition, the following methods with various generalized orders are supported: SABA(8,4,4), SABA(8,6,4), SABA(10,6,4). +See [Rein, Tamayo & Brown 2019](https://ui.adsabs.harvard.edu/abs/2019MNRAS.489.4632R/abstract) for details on how these methods work. + +The `reb_integrator_saba` structure contains the configuration and data structures used by the SABA integrator family. + +`unsigned int type` +: This parameter specifies which SABA integrator type is used. + The following SABA integrators are supported: + + Numerical value | C constant name | Description + ------------------- | ------------------- | ---------------------------------- + 0x0 | `REB_SABA_1` | SABA1 (Wisdom-Holman) + 0x1 | `REB_SABA_2` | SABA2 + 0x2 | `REB_SABA_3` | SABA3 + 0x3 | `REB_SABA_4` | SABA4 + 0x100 | `REB_SABA_CM_1` | SABACM1 (Modified kick corrector) + 0x101 | `REB_SABA_CM_2` | SABACM2 (Modified kick corrector) + 0x102 | `REB_SABA_CM_3` | SABACM3 (Modified kick corrector) + 0x103 | `REB_SABA_CM_4` | SABACM4 (Modified kick corrector) + 0x200 | `REB_SABA_CL_1` | SABACL1 (lazy corrector) + 0x201 | `REB_SABA_CL_2` | SABACL2 (lazy corrector) + 0x202 | `REB_SABA_CL_3` | SABACL3 (lazy corrector) + 0x203 | `REB_SABA_CL_4` | SABACL4 (lazy corrector) + 0x4 | `REB_SABA_10_4` | SABA(10,4), 7 stages + 0x5 | `REB_SABA_8_6_4` | SABA(8,6,4), 7 stages + 0x6 | `REB_SABA_10_6_4` | SABA(10,6,4), 8 stages, default + 0x7 | `REB_SABA_H_8_4_4` | SABAH(8,4,4), 6 stages + 0x8 | `REB_SABA_H_8_6_4` | SABAH(8,6,4), 8 stages + 0x9 | `REB_SABA_H_10_6_4` | SABAH(10,6,4), 9 stages + + SABA(10,6,4) is the default integrator. It has a generalized order of $O(\epsilon dt^{10} + \epsilon^2 dt^6 + \epsilon^3 dt^4)$. + + Below is an example on how to enable the SABA integrators in REBOUND and set a specific type. + + === "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_SABA; + r->ri_saba.type = REB_SABA_10_6_4; + ``` + + === "Python" + ```python + sim = rebound.Simulation() + sim.integrator = "saba" + sim.ri_saba.type = "(10,6,4)" + ``` + One can also use the following shorthand: + ```python + sim = rebound.Simulation() + sim.integrator = "SABA(10,6,4)" + ``` + +`unsigned int safe_mode` +: This flag has the same functionality as in WHFast. Default is 1. Setting this to 0 will provide a speedup, but care must be taken with synchronizing integration steps and modifying particles. + +`unsigned int keep_unsynchronized` +: This flag determines if the inertial coordinates generated are discarded in subsequent timesteps (cached Jacobi coordinates are used instead). The default is 0. Set this flag to 1 if you require outputs and bit-wise reproducibility + + + + +## JANUS +Janus is a bit-wise time-reversible high-order symplectic integrator using a mix of floating point and integer arithmetic. +It is described in [Rein & Tamayo 2018](https://ui.adsabs.harvard.edu/abs/2018MNRAS.473.3351R/abstract). + +The following code shows how to enable JANUS and set the length and velocity scales. +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_JANUS; + r->ri_janus.scale_pos = 1e-10; + r->ri_janus.scale_vel = 1e-10; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.integrator = "janus" + sim.ri_janus.scale_pos = 1e-10 + sim.ri_janus.scale_vel = 1e-10 + ``` + + +The `reb_integrator_janus` structure contains the configuration and data structures used by the bib-wise reversible JANUS integrator. + +`double scale_pos` +: Scale of the problem. Positions get divided by this number before the conversion to an integer. Default: $10^{-16}$. + +`double scale_vel` +: Scale of the problem. Velocities get divided by this number before the conversion to an integer. Default: $10^{-16}$. + +`unsigned int order` +: The order of the scheme. Default is 6. + +`unsigned int recalculate_integer_coordinates_this_timestep` +: If this flag is set, then JANUS will recalculate the integer coordinates from floating point coordinates at the next timestep. + +All other members of this structure are only for internal use and should not be changed manually. + + +## Embedded Operator Splitting Method (EOS) +This is the Embedded Operator Splitting (EOS) methods described in [Rein 2019](https://ui.adsabs.harvard.edu/abs/2020MNRAS.492.5413R/abstract). + +The `reb_integrator_eos` structure contains the configuration and data structures used by EOS. + +`unsigned int phi0` +: Outer operator splitting scheme (see below for options) + +`unsigned int phi1` +: Inner operator splitting scheme (see below for options) + +`unsigned int n` +: Number of sub-timesteps. Default: 2. + +`unsigned int safe_mode` +: If set to 0, always combine drift steps at the beginning and end of `phi0`. If set to 1, `n` needs to be bigger than 1. + + + +The following operator splitting methods for `phi0` and `phi1` are supported in the EOS integrator. + +Numerical value | Constant name | Description +--------------- | --------------------- | ------------------------------------------------- +0x00 | `REB_EOS_LF` | 2nd order, standard leap-frog +0x01 | `REB_EOS_LF4` | 4th order, three function evaluations +0x02 | `REB_EOS_LF6` | 6th order, nine function evaluations +0x03 | `REB_EOS_LF8` | 8th order, seventeen function evaluations, see Blanes & Casa (2016), p91 +0x04 | `REB_EOS_LF4_2` | generalized order (4,2), two force evaluations, McLachlan 1995 +0x05 | `REB_EOS_LF8_6_4` | generalized order (8,6,4), seven force evaluations +0x06 | `REB_EOS_PLF7_6_4` | generalized order (7,6,4), three force evaluations, pre- and post-processors +0x07 | `REB_EOS_PMLF4` | 4th order, one modified force evaluation, pre- and post-processors, Blanes et al. (1999) +0x08 | `REB_EOS_PMLF6` | 6th order, three modified force evaluations, pre- and post-processors, Blanes et al. (1999) + + +The following code shows how to enable EOS and set the embedded methods. +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_EOS; + r->ri_eos.phi0 = REB_EOS_LF4; + r->ri_eos.phi1 = REB_EOS_LF4; + r->ri_eos.n = 6; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.integrator = "eos" + sim.ri_eos.phi0 = "LF4" + sim.ri_eos.phi1 = "LF4" + sim.ri_eos.n = 6 + ``` + +## Leapfrog +`REB_INTEGRATOR_LEAPFROG` + +This is the standard leap frog integrator. It is symplectic. By default it is second order with one force evaluation per step. Higher orders of 4, 6, and 8 can be selected as well. These correspond to the 4th order Yoshida integrator and the 8th order by Blanes & Casa (2016), p91. The higher order methods have more function evaluations and are therefore slower. Note that some substeps of the higher order methods move particles backwards. Therefore higher order methods might not give accurate results when a collision search is turned on. + +`unsigned int order` +: Set the order of the leapfrog integrator: + === "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_LEAPFROG; + r->ri_leapfrog.order = 8; // 2, 4, 6, or 8 + ``` + + === "Python" + ```python + sim = rebound.Simulation() + sim.integrator = "leapfrog" + sim.ri_leapfrog.order = 8 # 2, 4, 6, or 8 + ``` + +## Symplectic Epicycle Integrator (SEI) +`REB_INTEGRATOR_SEI` + +Symplectic Epicycle Integrator (SEI), mixed variable symplectic integrator for the shearing sheet, second order, Rein & Tremaine 2011. The `reb_integrator_sei` structure contains the configuration and data structures used by the Symplectic Epicycle Integrator (SEI). + +`double OMEGA` +: Epicyclic/orbital frequency. This can be set as follows: + === "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_SEI; + r->ri_sei.OMEGA = 1.0; + ``` + + === "Python" + ```python + sim = rebound.Simulation() + sim.integrator = "sei" + sim.ri_sei.OMEGA = 1.0 + ``` + +`double OMEGAZ` +: Epicyclic frequency in vertical direction. Defaults to `OMEGA` if not set. + +All other members of this structure are only for internal use and should not be changed manually. + + +## No integrator +Sometimes it might make sense to simply not advance any particle positions or velocities. By selecting this integrator, one can still perform integration steps, but particles will not move. + +Here is how to do that: +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_NONE; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.integrator = "none" + ``` + +## WHFast512 + +WHFast512 is a symplectic Wisdom-Holman integrator. +It is using Single Instruction Multiple Data (SIMD) parallelism and 512-bit Advanced Vector Extensions (AVX512) to speed up the integration of planetary systems by up to 4.7x compared to the standard version of WHFast. + +!!! warning "Important" + + To use WHFast512 you need to compile and run REBOUND on a computer that has a CPU which supports AVX512 instructions. + You will see an error message if you try to use WHFast512 but have not compiled REBOUND with the AVX512 flag. + We describe below how to do this for both the C and python versions of REBOUND below. + + To find out if your CPU supports AVX512 instructions, check for the AVX512 flags by running + ```bash + cat /proc/cpuinfo | grep avx512 + ``` + + Note that you can read Simulationarchives of simulations which used WHFast512 on machines that do not support AVX512 instruction. + If a synchronization is required, it will be performed with the standard WHFast integrator. + + +=== "C" + To turn on the AVX512 flag, go to the Makefile in problem directory. Add this line at the top: + ``` + export AVX512=1 + ``` + To explicitly turn AVX512 off, add + ``` + export AVX512=0 + ``` + Also make sure to add the `-march=native` flag to the compiler. This will optimize your code (and enable AVX512 instruction) for the specific CPU you're using. + ``` + export OPT=-march=native + ``` + Then, clean your build directory and (re)-build REBOUND with + ```bash + make clean + make + ``` + +=== "Python" + To use WHFast512 from python, you need to compile REBOUND with AVX512 instructions enabled. + They are disabled by default and enabled with the AVX512 environment variable. + To install the latest release of REBOUND on pypi use: + ```bash + export AVX512=1 + pip install rebound + ``` + Alternatively, you can download the latest development version of REBOUND. + Then set the AVX512 environment variable and install REBOUND by running + ```bash + export AVX512=1 + pip install -e . + ``` + from the main directory. + +Once you have compiled REBOUND with AVX512 enabled, you can use WHFast512 like any other integrator: + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_WHFAST512; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.integrator = "whfast512" + ``` + +See also [this example](../c_examples/whfast512_solar_system) on how to use WHFast512. +If you are interested in integrating 2 or 4 planet systems in parallel, see [this example](../c_examples/whfast512_2_planets). + +To allow for the best performance, WHFast512 has certain limitations that WHFast does not have. + +- The number of particles cannot exceed 9 (1 star and 8 planets) and needs to be constant. +- Although you can use WHFast512 with any number of planets (up to 8), the performance is best if the system has either 2, 4, or 8 planets. +- The gravitational constant needs to be exactly equal to 1. Note that you can always [rescale](../units/) your system such that G=1. +- The integrator always combines the first and last drift step (`safe_mode=0` for WHFast). +- No variational or test particles are supported (although a particle can have mass 0). +- MEGNO and other chaos indicators are not supported. +- WHFast512 always uses democratic heliocentric coordinates. Jacobi coordinates are not supported. +- The timestep needs to be constant and the `exact_finish_time` flag needs to be set to 0. To change the timestep, first synchronize the simulation, then call `reb_simulation_reset_integrator()`. +- The masses of all particles need to be constant. To change the masses, first synchronize the simulation, then call `reb_simulation_reset_integrator()`. +- Additional forces (other than the GR potential) and REBOUNDx are not supported. + + +The setting for WHFast512 are stored in the `reb_integrator_whfast512` structure, which itself is part of the simulation structure. +The following settings are available: + +`unsigned int keep_unsynchronized` +: This flag determines if democratic heliocentric coordinates are re-used after subsequent calls to `reb_simulation_integrate()`. The default is 0. This makes WHFast512 recalculate democratic heliocentric coordinates at the beginning of each `reb_simulation_integrate()` call. Set this flag to 1 if you want to continue an integration using unsynchronized democratic heliocentric coordinates. This is useful if you require outputs (and therefore synchronization) but don't want the integration to be affected by the output to allow for bit-wise reproducibility. + +`unsigned int gr_potential` +: This flag determines if an additional $1/r^2$ potential is included in the force calculation. The default is 0. Set to 1 to turn on the potential. This can be used to mimic general relativistic precession. Note that this feature assumes [units](../units/) of AU and year/2pi. + +`unsigned int N_systems` +: This flag determines how many systems are integrated in parallel. Possible values are 1, 2, or 4. By default this is set to 1 which means WHFast512 is integrating only one system at a time. If your system has fewer than 5 planets, then you can use WHFast512 to integrate 2 systems in parallel. If your system has fewer than 3 planets, then you can use WHFast512 to integrate 4 systems in parallel. If multiple systems are integrated at the same time, particles must be added in the following order: Star 1, Planet, Planet, Star 2, Planet, Planet, ... For more information see the [this example](../c_examples/whfast512_2_planets). + diff --git a/rebound/source/docs/ipython_examples/AdvWHFast.ipynb b/rebound/source/docs/ipython_examples/AdvWHFast.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..d29ae810ce809ab2f6d6c2130145359a44a334c6 --- /dev/null +++ b/rebound/source/docs/ipython_examples/AdvWHFast.ipynb @@ -0,0 +1,440 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "# Advanced settings for WHFast: Extra speed, accuracy, and additional forces\n", + "\n", + "There are several performance enhancements one can make to WHFast. However, each one has pitfalls that an inexperienced user can unwittingly fall into. We therefore chose safe default settings that make the integrator difficult to misuse. **This makes the default WHFast substantially slower and less accurate than it can be**. Here we describe how to alter the integrator settings to improve WHFast's performance.\n", + "\n", + "**TL;DR**\n", + "\n", + "As long as \n", + "\n", + "1. you don't add, remove or otherwise modify particles between timesteps\n", + "2. you get your outputs by passing a list of output times ahead of time and access the `particles` pointer between calls to `sim.integrate()` (see, e.g., the Visualization section of [WHFast.ipynb](../WHFast))\n", + "\n", + "you can set `sim.ri_whfast.safe_mode = 0` to get a substantial performance boost. Under the same stipulations, you can set `sim.ri_whfast.corrector = 11` to get much higher accuracy, at a nearly negligible loss of performance (as long as there are many timesteps between outputs).\n", + "\n", + "If you want to modify particles, or if the code breaks with these advanced settings, read below for details, and check out the Common mistake with WHFast section at the bottom of [WHFast.ipynb](../WHFast)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "**The Wisdom-Holman algorithm**\n", + "\n", + "In order to understand and apply the various integrator flags, we need to first understand the Wisdom-Holman scheme (see, e.g., Wisdom & Holman 1991, or Rein & Tamayo 2015 for more details).\n", + "\n", + "The Wisdom-Holman algorithm consists of alternating *Keplerian* steps that evolve particles on their two-body Keplerian orbits around the star with *interaction* steps that apply impulses to the particles' velocities from the interactions between bodies. The basic algorithm for a single timestep $dt$ is a Leapfrog Drift-Kick-Drift scheme with an *interaction* kick over the full $dt$ sandwiched between half timesteps of *Keplerian* drift:\n", + "\n", + "$H_{Kepler}(dt/2)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt/2)$\n", + "\n", + "Timesteps like the one above are then concatenated over the full integration:\n", + "\n", + "$H_{Kepler}(dt/2)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt/2)$ $H_{Kepler}(dt/2)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt/2)$ ... $H_{Kepler}(dt/2)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt/2)$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "**Combining Kepler steps and synchronizing**\n", + "\n", + "It turns out that Kepler steps take longer than interaction steps as long as you don't have many planets, so an obvious and important performance boost would be to combine adjacent Kepler half-steps into full ones, i.e.:\n", + "\n", + "$H_{Kepler}(dt/2)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt) ... \\:H_{Interaction}(dt)\\:H_{Kepler}(dt/2)$\n", + "\n", + "The issue is that if you were to, say, output the state of the particles as the simulation progressed, the positions would not correspond to anything real, since the beginning (or end) of one of the full $H_{Kepler}(dt)$ steps corresponds to some intermediate step in an abstract sequence of calculations for a given timestep. In order to get the particles' actual positions, we would have to calculate to the end the timestep we want the output for by splitting a full *Kepler* step back into two half-steps, e.g.,\n", + "\n", + "$H_{Kepler}(dt/2)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt/2) \\text{**PRINT OUTPUT**} H_{Kepler}(dt/2) H_{Interaction}(dt)\\:H_{Kepler}(dt)$...\n", + "\n", + "We call this step of reinserting half-Kepler steps to obtain the physical state of the particles *synchronizing*. This must be done whenever the **actual** states of the particles are required, e.g., before every output, or if one wanted to use the particles' states to compute additional changes to the particle orbits between timesteps. It is also necessary to synchronize each timestep whenever the MEGNO chaos indicator is being computed.\n", + "\n", + "**Conversions between Jacobi and Inertial Coordinates**\n", + "\n", + "It turns out that the most convenient coordinate system to work in for performing the Kepler steps is often Jacobi coordinates (see, e.g., 9.5.4 of Murray & Dermott). WHFast therefore works in Jacobi coordinates by default, converting to inertial coordinates when it needs to (e.g. for output, and for doing the direct gravity calculation in the interaction step, which is most easily done in inertial coordinates).\n", + "\n", + "One feature of WHFast is that it works in whatever inertial coordinate system you choose for your initial conditions. This means that whatever happens behind the scenes, the user always gets the particles' inertial coordinates at the front end. At the beginning of every timestep, WHFast therefore has to somehow obtain the Jacobi coordinates. The straightforward thing would be to convert from the inertial coordinates to Jacobi coordinates every timestep, but these conversions slow things down, and they represent extra operations that grow the round-off error.\n", + "\n", + "WHFast therefore stores the Jacobi coordinates internally throughout the time it is running, and only recalculates Jacobi coordinates from the inertial ones if told to do so. Since Jacobi coordinates reference particles to the center of mass of all the particles with indices lower than their own (typically all the particles interior to them), the main reason you would have to recalculate Jacobi coordinates is if between timesteps you choose to somehow change the particles' positions or velocities (give them kicks in addition to their mutual gravity), or change the particles' masses. \n", + "\n", + "**Overriding the defaults**\n", + "\n", + "Let's begin by importing rebound, and defining a simple function to reset rebound and initialize a new simulation with a test case," + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "def test_case():\n", + " sim = rebound.Simulation()\n", + " sim.integrator = 'whfast'\n", + " sim.add(m=1.) # add the Sun\n", + " sim.add(m=3.e-6,e=0.99, a=1.) # add Earth\n", + " sim.move_to_com()\n", + " sim.dt = 0.2\n", + " return sim" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "By default WHFast synchronizes and recalculates the Jacobi coordinates from the inertial ones every timestep. This guarantees that the user always gets physical particle states for output, and ensures reliable output if the user decides to, e.g., grow the particles' masses between timesteps. \n", + "\n", + "Now that you understand the pitfalls, if you want to boost WHFast's performance, you simply set" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "sim = test_case()\n", + "sim.ri_whfast.safe_mode = 0" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "Now it becomes the user's responsibility to appropriately synchronize and recalculate jacobi coordinates when needed. You can tell WHFast to recalculate Jacobi coordinates for a given timestep (say after you change a particle's mass) with the `sim.ri_whfast.recalculate_coordinates_this_timestep` flag. After it recalculates Jacobi coordinates, WHFast will reset this flag to zero, so you just set it each time you mess with the particles." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "deletable": true, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "safe_mode = 1\n", + "---------------------------------\n", + "REBOUND version: \t3.4.0\n", + "REBOUND built on: \tMay 31 2017 11:53:50\n", + "Number of particles: \t2\n", + "Selected integrator: \twhfast\n", + "Simulation time: \t6.2831853071795858e+05\n", + "Current timestep: \t0.200000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n", + "Safe integration took 1.4043679237365723 seconds\n", + "---------------------------------\n", + "REBOUND version: \t3.4.0\n", + "REBOUND built on: \tMay 31 2017 11:53:50\n", + "Number of particles: \t2\n", + "Selected integrator: \twhfast\n", + "Simulation time: \t6.2831853071795858e+05\n", + "Current timestep: \t0.200000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n", + "Manual integration took 0.8836901187896729 seconds\n" + ] + } + ], + "source": [ + "import time\n", + "Porb = 2*np.pi # orbital period for Earth, using units of G = 1, solar masses, AU and yr/2pi\n", + "\n", + "sim = test_case()\n", + "print(\"safe_mode = {0}\".format(sim.ri_whfast.safe_mode))\n", + "start_time = time.time()\n", + "sim.integrate(1.e5*Porb)\n", + "sim.status()\n", + "print(\"Safe integration took {0} seconds\".format(time.time() - start_time))\n", + "\n", + "sim = test_case()\n", + "sim.ri_whfast.safe_mode = 0\n", + "start_time = time.time()\n", + "sim.integrate(1.e5*Porb)\n", + "sim.status()\n", + "print(\"Manual integration took {0} seconds\".format(time.time() - start_time))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "source": [ + "In our test case with a single planet, there is effectively no interaction step, and by combining Kepler steps we get almost the full factor of 2 speedup we expect. Because Kepler steps are expensive (by virtue of having to solve the transcendental Kepler equation), this will always be an important performance boost for few-planet cases.\n", + "\n", + "Note that one case where REBOUND needs to synchronize every timestep is if you're using the MEGNO chaos indicator. So if you call" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "sim.init_megno()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "REBOUND will synchronize every timestep even if you set `sim.ri_whfast.safe_mode = 0` and never explicitly call `sim.synchronize()`." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "source": [ + "**Modifying particles/forces**\n", + "\n", + "Again, if performance is a factor in your simulations, you would not want to write a custom stepper in python that modifies the particles, since this will be very slow. You could either write a modified C version of `reb_simulation_integrate` in `src/librebound.c` (the flags are defined in `librebound.h`, and have the same name as the python ones, just without `sim.` in front), or you can use the REBOUNDXF library, which takes care of this for you and supports many typically used modifications. We again illustrate a simple scheme with python code:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "sim = test_case()\n", + "sim.ri_whfast.safe_mode = 0\n", + "def integrate_mod(sim, t_final):\n", + " while sim.t < t_final:\n", + " sim.step()\n", + " sim.particles[1].m += 1.e-10\n", + " sim.ri_whfast.recalculate_coordinates_this_timestep = 1\n", + " sim.synchronize()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "Here, because we grow the mass of the planet every timestep, we have to recalculate Jacobi coordinates every timestep (since they depend on the masses of the particles). We therefore manually set the flag to recalculate them the next timestep every time we make a change. Here we would actually get the same result if we just left `sim.ri_whfast.safe_mode = 1`, since when recalculating Jacobi coordinates, WHFast automatically has to synchronize in order to get real positions and velocities for the planets. In this case WHFast is therefore synchronizing and recalculating Jacobi coordinates every timestep.\n", + "\n", + "But imagine now that instead of growing the mass, we continually add an impulse to vx:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "sim = test_case()\n", + "sim.ri_whfast.safe_mode = 0\n", + "def integrate_mod(sim, t_final):\n", + " while sim.t < t_final:\n", + " sim.step()\n", + " sim.particles[1].vx += 1.e-10*sim.dt\n", + " sim.ri_whfast.recalculate_coordinates_this_timestep = 1\n", + " sim.synchronize()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "This would not give accurate results, because the `sim.particles[1].vx` we access after `sim.step()` isn't a physical velocity (it's missing a half-Kepler step). It's basically at an intermediate point in the calculation. In order to make this work, one would call `sim.synchronize()` between `sim.step()` and accessing `sim.particles[1].vx`, to ensure the velocity is physical." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "**Symplectic correctors**\n", + "\n", + "Symplectic correctors make the Wisdom-Holman scheme higher order (without symplectic correctors it's second order). The great thing about them is that they only need to get applied when you synchronize. So if you just need to synchronize to output, and there are many timesteps between outputs, they represent a very small performance loss for a huge boost in accuracy (compare for example the green line (11th order corrector) to the red line (no corrector) in Fig. 4 of Rein & Tamayo 2015--beyond the right of the plot, where the round-off errors dominate, the two lines would rise in unison). We have implemented symplectic correctors up to order 11. You can set the order with (must be an odd number), e.g.," + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "sim.ri_whfast.corrector = 11" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "By default, WHFast does not use correctors, i.e., sim.integrator_whfast_corrector = 0. This is because the default is also to synchronize every timestep. An Nth order corrector does N-1 Kepler steps of various sizes, so an 11th order corrector done every timestep would increase the number of Kepler steps by an order of magnitude, making WHFast unacceptably slow. So keep in mind that if you're doing modifications that require recalculating jacobi coordinates or synchronizing every timestep, you should turn off symplectic correctors (the default) unless you really need the accuracy." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Changing the internal coordinate system**\n", + "\n", + "WHFast by default uses Jacobi coordinates internally. This works well for planetary systems which are stable and orbits are not crossing. However, in some cases a different coordinate system might perform better. WHFast also support so-called democratic heliocentric coordinates and the so called WHDS coordinates. For more information on these coordinates systems [see Hernandez and Dehnen (2016)](https://arxiv.org/abs/1612.05329). To select a different coordinate system, use the following syntax:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sim.ri_whfast.coordinates = 'jacobi' #default\n", + "sim.ri_whfast.coordinates = 'democraticheliocentric' \n", + "sim.ri_whfast.coordinates = 'whds' " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that symplectic corrector are only compatible with Jacobi coordinates because both democratic heliocentric and WHDS include a so called jump step." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "**Warning messages**\n", + "\n", + "If you choose a timestep that is larger than the smallest dynamical timescale and WHFast has difficulties to solve the Kepler problem, you will receive a warning message." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false, + "deletable": true, + "editable": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rein/git/rebound/rebound/simulation.py:305: RuntimeWarning: WHFast convergence issue. Timestep is larger than at least one orbital period.\n", + " warnings.warn(msg[1:], RuntimeWarning)\n" + ] + } + ], + "source": [ + "sim = test_case()\n", + "sim.dt = 1000.\n", + "sim.integrate(1000.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/rebound/source/docs/ipython_examples/ChaoticHyperion.ipynb b/rebound/source/docs/ipython_examples/ChaoticHyperion.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..b5e8f454f8fbe7439e1c8bf26d7ab1d35eae5f34 --- /dev/null +++ b/rebound/source/docs/ipython_examples/ChaoticHyperion.ipynb @@ -0,0 +1,250 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "6882e778", + "metadata": {}, + "source": [ + "# Chaotic Hyperion\n", + "In this example, we simulate the spin of Hyperion. The spin evolution is governed by an ordinary differential equation that is coupled to the moon's orbit. \n", + "\n", + "We start by importing REBOUND, numpy and matplotlib." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "e350dbbb", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "0bc568b2", + "metadata": {}, + "source": [ + "The right hand side of ODEs can be implemented in either python or in C. Although not absolutely necessary for this example, we here show how to implement the RHS in C. This is often significantly faster than using a python callback function. \n", + "\n", + "We use a simple spin model which is one second order ODE, or a set of two coupled first order ODEs. For more details on the physics behind this model, see Danby (1962), Goldreich and Peale (1966), and Wisdom and Peale (1983). The RHS of this set of ODEs implemented in C is:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "79a48333", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Overwriting rhs.c\n" + ] + } + ], + "source": [ + "%%writefile rhs.c\n", + "#include \"rebound.h\"\n", + "void derivatives(struct reb_ode* const ode, double* const yDot, const double* const y, const double t){\n", + " struct reb_orbit o = reb_orbit_from_particle(ode->r->G, ode->r->particles[1], ode->r->particles[0]);\n", + " \n", + " double omega2 = 3.*0.26; \n", + " yDot[0] = y[1];\n", + " yDot[1] = -omega2/(2.*o.d*o.d*o.d)*sin(2.*(y[0]-o.f));\n", + "}\n" + ] + }, + { + "cell_type": "markdown", + "id": "33cd1c9c", + "metadata": {}, + "source": [ + "We now compile this into a shared library. We need the REBOUND headers and library for this. The following is a bit of hack: we just copy the files into the current folder. This works if you've installed REBOUND from the git repository. Otherwise, you'll need to find these files manually (which might depend on your python environment). " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "7d3c176a", + "metadata": {}, + "outputs": [], + "source": [ + "!cp ../src/librebound.so .\n", + "!cp ../src/rebound.h .\n", + "!gcc -c -O3 -fPIC rhs.c -o rhs.o\n", + "!gcc -L. -shared rhs.o -o rhs.so -lrebound " + ] + }, + { + "cell_type": "markdown", + "id": "2421c0e7", + "metadata": {}, + "source": [ + "Using ctypes, we can load the library into python" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11736a91", + "metadata": {}, + "outputs": [], + "source": [ + "from ctypes import cdll\n", + "clibrhs = cdll.LoadLibrary(\"rhs.so\")" + ] + }, + { + "cell_type": "markdown", + "id": "37ac5371", + "metadata": {}, + "source": [ + "The following function is setting up the N-body simulation as well as the ODE system that governs the spin evolution. Note that we set the `derivatives` function pointer to the C function we've just compiled. You could also set this function pointer to a python function and avoid all the C complications." + ] + }, + { + "cell_type": "code", + "execution_count": 133, + "id": "18043d1d", + "metadata": {}, + "outputs": [], + "source": [ + "def setup():\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1) # Saturn\n", + " sim.add(a=1, e=0.123233) # Hyperion, massless, semi-major axis of 1\n", + " sim.integrator = \"BS\"\n", + " sim.ri_bs.eps_rel = 1e-12 # tolerance\n", + " sim.ri_bs.eps_abs = 1e-12\n", + " \n", + " ode_spin = sim.create_ode(length=2, needs_nbody=True)\n", + " ode_spin.y[0] = 0.01 # initial conditions that lead to chaos\n", + " ode_spin.y[1] = 1\n", + " ode_spin.derivatives = clibrhs.derivatives\n", + " \n", + " return sim, ode_spin" + ] + }, + { + "cell_type": "markdown", + "id": "85c097cf", + "metadata": {}, + "source": [ + "We will create two simulations that are slightly offset from each other." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8182b908", + "metadata": {}, + "outputs": [], + "source": [ + "sim, ode_spin = setup()\n", + "sim2, ode_spin2 = setup()\n", + "ode_spin2.y[0] += 1e-8 # small perturbation" + ] + }, + { + "cell_type": "markdown", + "id": "c597773f", + "metadata": {}, + "source": [ + "With these two simulations, we can measure the growing divergence of nearby trajectories, a key feature of chaos." + ] + }, + { + "cell_type": "code", + "execution_count": 149, + "id": "4eb25927", + "metadata": {}, + "outputs": [], + "source": [ + "times = 2.*np.pi*np.linspace(0,30,100) # a couple of orbits\n", + "obliq = np.zeros((len(times)))\n", + "obliq2 = obliq.copy()\n", + "\n", + "for i, t in enumerate(times):\n", + " sim.integrate(t, exact_finish_time=1)\n", + " sim2.integrate(t, exact_finish_time=1) \n", + " obliq[i] = ode_spin.y[0]\n", + " obliq2[i] = ode_spin2.y[0]" + ] + }, + { + "cell_type": "markdown", + "id": "98a92abf", + "metadata": {}, + "source": [ + "Finally, let us plot the divergence as a function of time." + ] + }, + { + "cell_type": "code", + "execution_count": 150, + "id": "13ac8f3a", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1)\n", + "ax.set_xlabel(\"time [orbits]\")\n", + "ax.set_ylabel(\"obliquity difference [degrees]\")\n", + "ax.set_yscale(\"log\")\n", + "ax.set_ylim([1e-8,1e2])\n", + "o1 = np.remainder((obliq-obliq2)*180/np.pi,360.)\n", + "o2 = np.remainder((obliq2-obliq)*180/np.pi,360.)\n", + "ax.scatter(times/np.pi/2.,np.minimum(o1,o2))\n", + "ax.plot(times/np.pi/2.,1e-8/np.pi*180.*np.exp(times/(np.pi*2.)/1.2),color=\"black\");" + ] + }, + { + "cell_type": "markdown", + "id": "c2bc381f", + "metadata": {}, + "source": [ + "On a log-linear scale, we see that the divergence follows a straight line, indicating exponential growth. The Lyapunov timescale is approximately 1.2 orbits. About 25 days! (Wikipedia says ~30 days which is close enough given the very simplistic model)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/rebound/source/docs/ipython_examples/Cheartbeat.ipynb b/rebound/source/docs/ipython_examples/Cheartbeat.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..29d1b36f8a3499e0cef721a91fca144cb1d9c100 --- /dev/null +++ b/rebound/source/docs/ipython_examples/Cheartbeat.ipynb @@ -0,0 +1,300 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Using a C Heartbeat function\n", + "The heartbeat function of a REBOUND simulation gets called after every timestep. There are many different things you can do in a heartbeat function, for example creating outputs, adding particles, adjusting parameters that depend on time, etc. REBOUND supports heartbeat functions in both its C and python interface. \n", + "\n", + "A python heartbeat function can sometimes become the bottleneck of a simulation because it gets called every single timestep. This tutorial shows you how to implement the heartbeat function in C, then link it to REBOUND using python. Note that alternatively you can of course always just use the C version of REBOUND directly and never bother with python at all.\n", + "\n", + "We start by creating a REBOUND simulation which contains the planets of our Solar System as a test case." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "rebound.data.add_solar_system(sim)\n", + "sim.integrator = \"whfast\"\n", + "sim.dt = sim.particles[1].P/30.13 # About 30 steps for each Mercury Orbit" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us first create a simple heartbeat function in python. It simply calculates the eccentricity of Mercury (you could do something with it, here we just calculate it and then ignore it)." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Eccentricity: 0.205636 \n" + ] + } + ], + "source": [ + "# We use a global variable to store the value of the eccentricity\n", + "e = 0 \n", + "def heartbeat(sim_pointer):\n", + " global e\n", + " # The function argument is a pointer to the simulation:\n", + " # Here we get its contents:\n", + " sim = sim_pointer.contents \n", + " e = sim.particles[1].e\n", + "sim.heartbeat = heartbeat\n", + "sim.integrate(sim.t+1)\n", + "print(\"Eccentricity: %f \" %e)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's measure how long it takes to integrate 1000 orbits:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Runtime: 0.474900 s\n" + ] + } + ], + "source": [ + "import time\n", + "start = time.time()\n", + "sim.integrate(sim.t + sim.particles[1].P*1000)\n", + "stop = time.time()\n", + "print(\"Runtime: %f s\"%(stop-start))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now implement this in C. For this to work, it is best to download and work with a full REBOUND repository (download the package from github, rather than just installing the python package with pip install). \n", + "\n", + "We first write our heartbeat function in C. The following cell writes to a new file in the current directory, `heartbeat.c` (you can also use an external editor and terminal window to do the same without the jupyter magic commands):" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Overwriting heartbeat.c\n" + ] + } + ], + "source": [ + "%%writefile heartbeat.c\n", + "#include \"rebound.h\"\n", + "double e =0; // global variable\n", + "void heartbeat(struct reb_simulation* sim_pointer){\n", + " struct reb_orbit orbit = reb_orbit_from_particle(sim_pointer->G, sim_pointer->particles[0], sim_pointer->particles[1]);\n", + " e = orbit.e;\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before we compile and link our heartbeat function as a shared library, we need the REBOUND header file and the shared library file. Different operating systems and compilers handles the paths to shared libraries differently. This can quickly get rather frustrating. If you're familiar with C, by all means go ahead and do it the proper way. A hack to get around most of these difficulties is to simply copy the REBOUND header and library to the current folder." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "!cp ../src/librebound.so .\n", + "!cp ../src/rebound.h ." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you installed REBOUND with pip, you can look up the paths to the two files in python and e.g. create symlinks to them into your working directory." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/path/to/your/venv/lib/python3.9/site-packages/rebound/../librebound.cpython-39-x86_64-linux-gnu.so\n", + "/path/to/your/venv/lib/python3.9/site-packages/rebound/rebound.h\n" + ] + } + ], + "source": [ + "from pathlib import Path\n", + "print(rebound.__libpath__)\n", + "print(Path(rebound.__file__).parent / \"rebound.h\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we can compile and link the code. `-fPIC` instructs gcc to create Position Independent Code, which might not be needed on your operating system." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "!gcc -c -O3 -fPIC heartbeat.c -o heartbeat.o" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "!gcc -L. -shared heartbeat.o -o heartbeat.so -lrebound " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we load the library using ctypes." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "from ctypes import cdll\n", + "clibheartbeat = cdll.LoadLibrary(\"heartbeat.so\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now finally set the function pointer in our simulation to the new heartbeat function and then run the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "sim.heartbeat = clibheartbeat.heartbeat" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Runtime: 0.153589 s\n" + ] + } + ], + "source": [ + "start = time.time()\n", + "sim.integrate(sim.t + sim.particles[1].P*1000)\n", + "stop = time.time()\n", + "print(\"Runtime: %f s\"%(stop-start))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that the simulation runs significantly faster using the C heartbeat function as we avoid all the python overhead.\n", + "\n", + "We can print out the value of the global variable `e` in the heartbeat library (using global variables in a shared library is not the best way to store data - all simulations will see the same variable and you could end up with unexpected behaviour if you are running multiple simulations in one python program)." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.2057293010348337\n" + ] + } + ], + "source": [ + "from ctypes import c_double\n", + "print(c_double.in_dll(clibheartbeat,\"e\").value)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/rebound/source/docs/ipython_examples/Checkpoints.ipynb b/rebound/source/docs/ipython_examples/Checkpoints.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..d22ee84be9779acbafd80bf8fa204ed6be26f6a2 --- /dev/null +++ b/rebound/source/docs/ipython_examples/Checkpoints.ipynb @@ -0,0 +1,120 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Checkpoints\n", + "You can easily save and load a REBOUND simulation to a binary file. The binary file includes all information about the particles (mass, position, velocity, etc), as well as the current simulation settings such as time, integrator choice, etc.\n", + "\n", + "Let's add three particles to REBOUND and save them to a file." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t3.8.0\n", + "REBOUND built on: \tFeb 3 2019 13:37:32\n", + "Number of particles: \t3\n", + "Selected integrator: \twhfast\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-6, a=1.)\n", + "sim.add(a=2.)\n", + "sim.integrator = \"whfast\"\n", + "sim.save_to_file(\"checkpoint.bin\")\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The binary files are small in size and store every floating point number exactly, so you don't have to worry about efficiency or losing precision. You can make lots of checkpoints if you want!\n", + "\n", + "Let's delete the old REBOUND simulation (that frees up the memory from that simulation) and then read the binary file we just saved." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t3.8.0\n", + "REBOUND built on: \tFeb 3 2019 13:37:32\n", + "Number of particles: \t3\n", + "Selected integrator: \twhfast\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "del sim\n", + "sim = rebound.Simulation(\"checkpoint.bin\")\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that you will have to re-set any function pointers manually (if you're using them)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/rebound/source/docs/ipython_examples/Churyumov-Gerasimenko.ipynb b/rebound/source/docs/ipython_examples/Churyumov-Gerasimenko.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..d2d7b2d50c7e9f0a472abf50239107f38a397638 --- /dev/null +++ b/rebound/source/docs/ipython_examples/Churyumov-Gerasimenko.ipynb @@ -0,0 +1,355 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# The comet 67P/Churyumov–Gerasimenko\n", + "\n", + "This tutorial teaches you how to use the IAS15 integrator (Rein and Spiegel, 2015) to simulate the orbit of 67P/Churyumov–Gerasimenko. We will download the data from NASA Horizons and visualize the orbit using matplotlib.\n", + "\n", + "This tutorial assumes that you have already installed REBOUND." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**NASA Horizons**\n", + "\n", + "If you're interested in Solar System dynamics, you have probably heard of NASA Horizons. It's a large database of Solar System objects, their orbits and physical properties. It includes planets, moons, satellites, asteroids, comets and spacecrafts. With REBOUND, you can easily import data from NASA Horizons. As an example, let's pull in the present day positions of Jupiter, Saturn and the Sun:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Sun'... \n", + "Found: Sun (10) \n", + "Searching NASA Horizons for 'Jupiter'... \n", + "Found: Jupiter Barycenter (5) (chosen from query 'Jupiter')\n", + "Searching NASA Horizons for 'Saturn'... \n", + "Found: Saturn Barycenter (6) (chosen from query 'Saturn')\n" + ] + } + ], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(\"Sun\")\n", + "sim.add(\"Jupiter\")\n", + "sim.add(\"Saturn\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now all the data is in REBOUND! Let's have a look at the orbits of the two planets." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n" + ] + } + ], + "source": [ + "for orbit in sim.orbits():\n", + " print(orbit)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Although there are three bodies, the `orbits()` function only returns two objects as the orbit for the Sun would be a little boring. The function returns the orbits in Jacobi coordinates. Since we didn't specify a value for $G$, REBOUND assumes that $G=1$. The unit of length is one astronomical unit, the unit of time is one year/$2\\pi$.\n", + "\n", + "Let's add something more interesting to our simulation: the comet 67P/Churyumov-Gerasimenko. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Churyumov-Gerasimenko'... \n", + "Found: 67P/Churyumov-Gerasimenko (chosen from query 'Churyumov-Gerasimenko')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rein/git/rebound/rebound/horizons.py:165: RuntimeWarning: Warning: Mass cannot be retrieved from NASA HORIZONS. Set to 0.\n", + " warnings.warn(\"Warning: Mass cannot be retrieved from NASA HORIZONS. Set to 0.\", RuntimeWarning)\n" + ] + } + ], + "source": [ + "sim.add(\"Churyumov-Gerasimenko\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When searching for a body by name, REBOUND takes the first dataset that Horizons offers. In this case, it's a set of parameters from 1962. You probably want to go to the Horizons website and check that the values you are using are up-to-date and appropriate for what you want to do. You can also use more complicated Horizons queries, for example, to get the most recent apparition solution for the comet, use\n", + "\n", + " sim.add(\"NAME=Churyumov-Gerasimenko; CAP\")\n", + "\n", + "You can also use the IAU asteroid number for numbered asteroids, or the database record numbers from Horizons for objects not yet numbered by the IAU (but note that database record numbers can change as the database gets rearranged with new discoveries, see https://ssd.jpl.nasa.gov/?horizons_doc#sb for details). In our case the current database record number is 900647, so you could use `sim.add(\"900647\")` to get the newest set of orbital parameters for Churyumov-Gerasimenko.\n", + "\n", + "NASA Horizons doesn't have masses for all bodies. If REBOUND doesn't find a mass, you get a warning message (see above). In our case, we don't need the mass of the comet (it's really small). However, it you want, you can add it manually using the syntax `sim.add(\"Churyumov-Gerasimenko\", m=5.03e-18)`.\n", + "\n", + "Before we integrate the orbits, let's plot the instantaneous orbits using the built-in REBOUND class `OrbitPlot`." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = rebound.OrbitPlot(sim, unitlabel=\"[AU]\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Integration with IAS15**\n", + "\n", + "We will integrate backwards in time for 70 years. Because we don't know what will happen yet (hint: a close encounter) we will use the IAS15 integrator. It is fast, accurate and has adaptive timesteps to capture any potential close encounters. \n", + "\n", + "To integrate backwards, we could set a negative timestep or multiply all velocities with $-1$. We'll choose the first option:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "sim.dt = -0.01" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "While we're integrating, let's store the positions of Jupiter and the comet at 10000 times during the interval. We'll need to prepare a few variables to do that:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "Noutputs = 10000\n", + "year = 2.*np.pi # One year in units where G=1\n", + "times = np.linspace(0.,-70.*year, Noutputs)\n", + "x = np.zeros((2,Noutputs))\n", + "y = np.zeros((2,Noutputs))\n", + "z = np.zeros((2,Noutputs))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we're ready to start the integration:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrator = \"ias15\" # IAS15 is the default integrator, so we actually don't need this line\n", + "sim.move_to_com() # We always move to the center of momentum frame before an integration\n", + "ps = sim.particles # ps is now an array of pointers and will change as the simulation runs\n", + "\n", + "for i,time in enumerate(times):\n", + " sim.integrate(time)\n", + " x[0][i] = ps[1].x # This stores the data which allows us to plot it later\n", + " y[0][i] = ps[1].y\n", + " z[0][i] = ps[1].z\n", + " x[1][i] = ps[3].x\n", + " y[1][i] = ps[3].y\n", + " z[1][i] = ps[3].z" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Visualization with matplotlib**\n", + "\n", + "Let's plot the orbits of Jupiter (blue) and the comet (green) to get an idea of what was going on during our integration." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(5,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlim([-6,6])\n", + "ax.set_ylim([-6,6])\n", + "plt.plot(x[0], y[0]);\n", + "plt.plot(x[1], y[1]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see in the above image, the comet 67P had a rather strong encounter with Jupiter a few years ago. Of course, if you wanted to do a realistic simulation of that encounter, you'd need to include all the other planets and maybe even some non-gravitational effects for the comet. However, let's stick with our simplistic model and try to find out when exactly the two bodies had a close encounter. We already stored the data, so we can just plot their distance as a function of time." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Minimum distance (0.047401 AU) occured at time: -63.790379 years.\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+QAAAHACAYAAAAr/6IYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC5hklEQVR4nOzdd3hb9b0/8PfRsjzkvbdjJ3H2DiSEDQFKmYUOugftbemAbn69vb0dt3TSltKWUjqgG1rK3iEkhIRA9nASx47jvZe8tM/vj3O+cgIZlnSkcyS9X8+T52kTW/rGKNL5nM+SZFmWQUREREREREQxZdL7AERERERERETJiAE5ERERERERkQ4YkBMRERERERHpgAE5ERERERERkQ4YkBMRERERERHpgAE5ERERERERkQ4YkBMRERERERHpgAE5ERERERERkQ4seh8g2gKBALq6uuBwOCBJkt7HISIiIiIiogQnyzLGxsZQWloKk+n0efCED8i7urpQUVGh9zGIiIiIiIgoybS3t6O8vPy0f57wAbnD4QCg/CAyMzN1Pg0RERERERElOqfTiYqKimA8ejoJH5CLMvXMzEwG5ERERERERBQzZ2ub5lA3IiIiIiIiIh0wICciIiIiIiLSAQNyIiIiIiIiIh0wICciIiIiIiLSAQNyIiIiIiIiIh0wICciIiIiIiLSAQNyIiIiIiIiIh0wICciIiIiIiLSAQNyIiIiIiIiIh0wICciIiIiIiLSAQNyIiIiIiIiIh0wICciIiIiIiLSAQNyIiIiIiIiIh1Y9D4AERERERFRKIYnPPjnjnZsbR7EyKQHhY4UXDCnADcuL0dGCkMcih98tRIRERERUVyQZRmP7OjAd55qwLjbd9KfvXSoD/dsaMJdNy7C5fOLdDohUWgYkBMRERERkeHJsozvPnUIf3itBQAwryQT711VgfKcVDT1jePvb7Th+OAkbn1oB/776nn4xPmzdD4x0dkxICciIiIiIsP7wXOHg8H4l9fPwacvqoPZJAEALp1XhA+vrcYPnj2MP209ju89fQg2iwkfWlOt44mJzo5D3YiIiIiIyND+vbMDv910DADwgxsX4bOXzA4G44Ldasa3rpmP2y+bDQD49pMN2No0EPOzEoWCATkRERERERlW2+Ak/vuxAwCAz15ch/eurjzt10qShC9cOhs3LiuDPyDj9n/u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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlabel(\"time [yrs]\")\n", + "ax.set_ylabel(\"distance [AU]\")\n", + "distance = np.sqrt(np.square(x[0]-x[1])+np.square(y[0]-y[1])+np.square(z[0]-z[1]))\n", + "plt.plot(times/year, distance);\n", + "closeencountertime = times[np.argmin(distance)]/year\n", + "print(\"Minimum distance (%f AU) occured at time: %f years.\" % (np.min(distance),closeencountertime))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that the minimum distance occured approximately 56 years ago (as of writing this tutorial). Let's see what date that was using some python magic and the datetime module:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'1959-02-04 08:09'" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import datetime\n", + "encounterdate = datetime.datetime.today() + datetime.timedelta(days=365.25*closeencountertime)\n", + "encounterdate.strftime(\"%Y-%m-%d %H:%M\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you check [Wikipedia](https://en.wikipedia.org/wiki/67P/Churyumov–Gerasimenko) or [JPL](https://ssd.jpl.nasa.gov/sbdb.cgi?sstr=67P;old=0;orb=0;cov=0;log=0;cad=1#cad), the encounter happened on 1959-Feb-04 06:24, so we are not far off (it turns out that's because of jets and other non-gravitational forces from the comet!)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/CloseEncounters.ipynb b/rebound/source/docs/ipython_examples/CloseEncounters.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..1ad3c8c95c12153247168fda59da057f13310c84 --- /dev/null +++ b/rebound/source/docs/ipython_examples/CloseEncounters.ipynb @@ -0,0 +1,332 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Catching close encounters using exceptions\n", + "Sometimes one is interested in catching a close encounter between two planets. This can easily be done with REBOUND. What you do when a close encounter happens is up to you.\n", + "\n", + "Some integrators are better suited to simulate close encounters than others. For example, the non-symplectic integrator IAS15 has an adaptive timestep scheme that resolves close encounters very well. Integrators that use a fixed timestep like WHFast are more likely to miss close encounters.\n", + "\n", + "Let's start by setting up a two-planet system that will go unstable on a short timescale:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "def setupSimulation():\n", + " sim = rebound.Simulation()\n", + " sim.integrator = \"ias15\" # IAS15 is the default integrator, so we don't need this line\n", + " sim.add(m=1.)\n", + " sim.add(m=1e-3,a=1.)\n", + " sim.add(m=5e-3,a=1.25)\n", + " sim.move_to_com()\n", + " return sim" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's integrate this system for 100 orbital periods." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "sim = setupSimulation()\n", + "sim.integrate(100.*2.*np.pi)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Rebound exits the integration routine normally. We can now explore the final particle orbits:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n" + ] + } + ], + "source": [ + "for o in sim.orbits():\n", + " print(o)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the orbits of both planets changed significantly and we can already speculate that there was a close encounter.\n", + "\n", + "Let's redo the simulation, but this time set the `sim.exit_min_distance` flag for the simulation. If this flag is set, then REBOUND calculates the minimum distance between all particle pairs each timestep. If the distance is less than `sim.exit_min_distance`, then the integration is stopped and an exception thrown. Here, we'll use the [Hill radius](https://en.wikipedia.org/wiki/Hill_sphere) as the criteria for a close encounter. It is given by $r_{\\rm Hill} \\approx a \\sqrt{\\frac{m}{3M}}$, which is approximately 0.15 AU in our case. \n", + "\n", + "This setup allows us to catch the exception and deal with it in a customized way. As a first example, let's catch the exception with a `try`-`except` block, and simply print out the error message. Additionally, let's store the particles' separations while we're integrating:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Two particles had a close encounter (d" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(10,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlabel(\"time [orbits]\")\n", + "ax.set_xlim([0,sim.t/(2.*np.pi)])\n", + "ax.set_ylabel(\"distance\")\n", + "plt.plot(times/(2.*np.pi), distances);\n", + "plt.plot([0.0,12],[0.2,0.2]); # Plot our close encounter criteria;" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We did indeed find the close encounter correctly. We can now search for the two particles that collided and, for this example, merge them. To do that we'll first calculate our new merged planet coordinates, then remove the two particles that collided from REBOUND and finally add the new particle." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of particles at the beginning of the simulation: 3.\n", + "Two particles had a close encounter (d" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "op = rebound.OrbitPlot(sim,Narc=300)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let's simulate our system for and check that our final relative energy error is small. The energy error is a key measure of whether the integration was performed accurately or not." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5.390879254005452e-07\n" + ] + } + ], + "source": [ + "sim.integrate(tmax)\n", + "dE = abs((sim.energy() - E0)/E0)\n", + "print(dE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/docs/ipython_examples/EmbeddedOperatorSplittingMethods.ipynb b/rebound/source/docs/ipython_examples/EmbeddedOperatorSplittingMethods.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..990a65500ce13d2577bb290fd1bd5213e06e2939 --- /dev/null +++ b/rebound/source/docs/ipython_examples/EmbeddedOperatorSplittingMethods.ipynb @@ -0,0 +1,557 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Embedded Operator Splitting (EOS) Methods\n", + "\n", + "This examples shows how to use the Embedded Operator Splitting (EOS) Methods described in Rein (2019). The idea is to embedded one operator splitting method inside another. The inner operator splitting method solves the Keplerian motion, whereas the outer solves the planet-planet interactions. The accuracy and speed of the EOS methods are comparable to standard Wisdom-Holman type methods. However, the main advantage of the EOS methods is that they do not require a Kepler solver. This significantly simplifies the implementation. And in certain cases this can lead to a speed-up by a factor of 2-3x." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "%matplotlib inline\n", + "import matplotlib.pylab as plt\n", + "import numpy as np\n", + "import time\n", + "linestyles = [\"--\",\"-\",\"-.\",\":\"]\n", + "labels = {\"LF\": \"LF\", \"LF4\": \"LF4\", \"LF6\": \"LF6\", \"LF8\": \"LF8\", \"LF4_2\": \"LF(4,2)\", \"LF8_6_4\": \"LF(8,6,4)\", \"PLF7_6_4\": \"PLF(7,6,4)\", \"PMLF4\": \"PMLF4\", \"PMLF6\": \"PMLF6\"}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We first create a function to setup our initial conditions of two Jupiter-mass planets with moderate eccentricities . We also create a function to run the simulation and periodically measure the relative energy error. The function then runs the simulation again, this not only measuring the runtime. This way we don't include the time required to calculate the energy error in our run time measurements. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def initial_conditions():\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1)\n", + " sim.add(m=1e-3,a=1,e=0.05,f=0.)\n", + " sim.add(m=1e-3,a=1.6,e=0.05,f=1.)\n", + " sim.move_to_com()\n", + " return sim\n", + " \n", + "def run(sim):\n", + " simc = sim.copy() # Use later for timing\n", + " tmax = 100.\n", + " \n", + " # First run to measure energy error\n", + " Emax = 0\n", + " E0 = sim.energy()\n", + " while sim.t" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,2,figsize=(8,3),sharey=True)\n", + "plt.tight_layout()\n", + "for _ax in ax:\n", + " _ax.set_xscale(\"log\")\n", + " _ax.set_yscale(\"log\")\n", + "ax[0].set_xlabel(\"timestep\");\n", + "ax[1].set_xlabel(\"runtime\");\n", + "ax[0].set_ylabel(\"error\")\n", + "\n", + "for m, method in enumerate(methods):\n", + " ax[0].plot(dts/np.pi/2.,results[:,m,0],label=method,color=\"black\",ls=linestyles[m])\n", + " ax[1].plot(results[:,m,1],results[:,m,0],label=method,color=\"black\",ls=linestyles[m]) \n", + "\n", + "ax[0].legend(loc='upper center', bbox_to_anchor=(1.1, -0.2), ncol=5);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**EOS with $\\Phi_0=\\Phi_1=LF$**\n", + "\n", + "We now run several EOS methods where we set both the inner and outer operator splitting method to the standard second order leapfrog method. Our resulting EOS method will therefore also be a second order method. We vary the number of steps $n$ taken by $\\Phi_1$." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "ns = [1,2,4,8,16]\n", + "results_lf = np.zeros((len(dts), len(ns), 2))\n", + "for i, dt in enumerate(dts):\n", + " for j, n in enumerate(ns):\n", + " sim = initial_conditions()\n", + " sim.dt = dt\n", + " sim.integrator = \"eos\"\n", + " sim.ri_eos.phi0 = \"lf\"\n", + " sim.ri_eos.phi1 = \"lf\"\n", + " sim.ri_eos.n = n\n", + " sim.ri_eos.safe_mode = 0\n", + " results_lf[i,j] = run(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see in the following plot that for $n=1$, we recover the LEAPFROG method. For $n=16$ both the accuracy and efficiency of our EOS method is very similar to the standard WH method." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,2,figsize=(8,3),sharey=True)\n", + "plt.tight_layout()\n", + "for _ax in ax:\n", + " _ax.set_xscale(\"log\")\n", + " _ax.set_yscale(\"log\")\n", + "ax[0].set_xlabel(\"timestep\");\n", + "ax[1].set_xlabel(\"runtime\");\n", + "ax[0].set_ylabel(\"error\")\n", + "colors = plt.cm.viridis(np.linspace(0,1,len(ns)))\n", + "\n", + "for j, n in enumerate(ns):\n", + " label = \"$\\Phi_0=\\Phi_1=LF$, $n=%d$\"%n\n", + " ax[0].plot(dts/np.pi/2.,results_lf[:,j,0],label=label,color=colors[j])\n", + " ax[1].plot(results_lf[:,j,1],results_lf[:,j,0],label=label,color=colors[j])\n", + "\n", + "for m, method in enumerate(methods):\n", + " ax[0].plot(dts/np.pi/2.,results[:,m,0],label=method,color=\"black\",ls=linestyles[m])\n", + " ax[1].plot(results[:,m,1],results[:,m,0],label=method,color=\"black\",ls=linestyles[m]) \n", + "\n", + "ax[0].legend(loc='upper center', bbox_to_anchor=(1.1, -0.2), ncol=4);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**An extra factor of $\\epsilon$**\n", + "\n", + "We now create EOS methods which are comparable to the Wisdom-Holman method with symplectic correctors. For the same timestep, the error is smaller by a factor of the mass ratio of the planet to the star, $\\epsilon$. We set $\\Phi_1$ to the fourth order LF4 method and use $n=2$. For $\\Phi_0$ we try out LF4, LF(4,2) and PMLF4. " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "phi0s = [\"LF4\", \"LF4_2\", \"PMLF4\"]\n", + "results_4 = np.zeros((len(dts), len(phi0s), 2))\n", + "for i, dt in enumerate(dts):\n", + " for j, phi0 in enumerate(phi0s):\n", + " sim = initial_conditions()\n", + " sim.dt = dt\n", + " sim.integrator = \"eos\"\n", + " sim.ri_eos.phi0 = phi0\n", + " sim.ri_eos.phi1 = \"LF4\"\n", + " sim.ri_eos.n = 2\n", + " sim.ri_eos.safe_mode = 0\n", + " results_4[i,j] = run(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see in the following plot that the EOS methods using LF(4,2) and PMLF4 do approach the accuracy and efficiency of the Wisdom-Holman method with symplectic correctors for small enough timesteps. To achieve a better accuracy for larger timesteps, we could increase the order of $\\Phi_1$ or the number of steps $n$. Note that the EOS method with $\\Phi_0=LF4$ is a true 4th order method, whereas the methods with LF(4,2) and PMLF4 have generalized order (4,2). " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,2,figsize=(8,3),sharey=True)\n", + "plt.tight_layout()\n", + "for _ax in ax:\n", + " _ax.set_xscale(\"log\")\n", + " _ax.set_yscale(\"log\")\n", + "ax[0].set_xlabel(\"timestep\");\n", + "ax[1].set_xlabel(\"runtime\");\n", + "ax[0].set_ylabel(\"error\")\n", + "\n", + "for j, phi0 in enumerate(phi0s):\n", + " label = \"$\\Phi_0=%s, \\Phi_1=LF4, n=2$\" % labels[phi0]\n", + " ax[0].plot(dts/np.pi/2.,results_4[:,j,0],label=label)\n", + " ax[1].plot(results_4[:,j,1],results_4[:,j,0],label=label)\n", + "\n", + "for m, method in enumerate(methods):\n", + " ax[0].plot(dts/np.pi/2.,results[:,m,0],label=method,color=\"black\",ls=linestyles[m])\n", + " ax[1].plot(results[:,m,1],results[:,m,0],label=method,color=\"black\",ls=linestyles[m]) \n", + " \n", + "ax[0].legend(loc='upper center', bbox_to_anchor=(1.1, -0.2), ncol=4);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**High order methods**\n", + "\n", + "Next, we will construct arbitrarily high order methods using LF, LF4, LF6, and LF8 for both $\\Phi_0$ and $\\Phi_1$. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "phis = [\"LF\", \"LF4\", \"LF6\", \"LF8\"]\n", + "results_2468 = np.zeros((len(dts), len(phis), 2))\n", + "for i, dt in enumerate(dts):\n", + " for j, phi in enumerate(phis):\n", + " sim = initial_conditions()\n", + " sim.dt = dt\n", + " sim.integrator = \"eos\"\n", + " sim.ri_eos.phi0 = phi\n", + " sim.ri_eos.phi1 = phi\n", + " sim.ri_eos.n = 1\n", + " sim.ri_eos.safe_mode = 0\n", + " results_2468[i,j] = run(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following plots show that the methods are indeed 2nd, 4th, 6th, and 8th order methods. " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,2,figsize=(8,3),sharey=True)\n", + "plt.tight_layout()\n", + "for _ax in ax:\n", + " _ax.set_xscale(\"log\")\n", + " _ax.set_yscale(\"log\")\n", + "ax[0].set_xlabel(\"timestep\");\n", + "ax[1].set_xlabel(\"runtime\");\n", + "ax[0].set_ylabel(\"error\")\n", + "\n", + "for j, phi in enumerate(phis):\n", + " label = \"$\\Phi_0=\\Phi_1=%s, n=1$\" % labels[phi]\n", + " ax[0].plot(dts/np.pi/2.,results_2468[:,j,0],label=label)\n", + " ax[1].plot(results_2468[:,j,1],results_2468[:,j,0],label=label)\n", + "\n", + "for m, method in enumerate(methods):\n", + " ax[0].plot(dts/np.pi/2.,results[:,m,0],label=method,color=\"black\",ls=linestyles[m])\n", + " ax[1].plot(results[:,m,1],results[:,m,0],label=method,color=\"black\",ls=linestyles[m]) \n", + " \n", + "ax[0].legend(loc='upper center', bbox_to_anchor=(1.1, -0.2), ncol=4);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Modified potentials**\n", + "\n", + "We can use operator splitting methods which make use of derivatives of the acceleration, or the so called modified potential. For the same order, these methods can have fewer function evaluations, and thus better performance. Let us compare using the sixth order methods LF6 (nine function evaluations) and PMLF6 (three modified function evaluations) for $\\Phi_0$. We keep using LF6 for $\\Phi_1$. " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "phis_m = [\"LF6\", \"PMLF6\"]\n", + "results_m = np.zeros((len(dts), len(phis_m), 2))\n", + "for i, dt in enumerate(dts):\n", + " for j, phi in enumerate(phis_m):\n", + " sim = initial_conditions()\n", + " sim.dt = dt\n", + " sim.integrator = \"eos\"\n", + " sim.ri_eos.phi0 = phi\n", + " sim.ri_eos.phi1 = \"LF6\"\n", + " sim.ri_eos.n = 1\n", + " sim.ri_eos.safe_mode = 0\n", + " results_m[i,j] = run(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the following plot, we see that the method using PMLF6 is indeed about a factor of 2 faster than the one using LF6. " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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3UPITP7ukIPTCqTEjh07CIANGzbk48eP37/hs171dzm7+LM+YWFhrFmzJo8fP67RNR4+fMju3bsTAAsUKMBp06bx9evXGfURBIIsJzVfonUxkxVHdnJyAu2gUCjYrVs3GhsbEwBr1KjBRYsW8cWLF9o2TaskJCRw79697NSpE3PlykUArFOnDpcsWcKIiAh1u02bNtHAwIA//PCD6vzdg+R0c3KTDalISPd17z97m672QjAlz44dO2hmZkZzc3Pu3btXdVKWya09yRmFyKdXP2rv6+tLa2tr3rx5k88iYvkmWrO/3fXr19mpUycCYOnSpZmYmJjRH0UgyBKEYMpmTk6QNfj5+XHNmjXq1926deOoUaN47do1LVqlG1y7do2jR49m0aJFCYDFihXjuHHjePPmzWTbb9myha1atWJUVBQZeEmVlHJVUzIuMl3X9X8eyT83XKalrQcvBWheCFYIppR58OAB69atSwAcNWoU4+PjyehXpH0VcmkdMj4q2X79XS6x7qwjPHAzRONr3bhxg9u2bSNJKpVK2tvbf5TEVSDQdYRgyoZOTpA5vHz5ksuWLWO9evUIgKampnzz5o22zdIJnj9/TkdHR9asWZMAaGxszC5dunD//v1MSEh+puHDpR5ZlskX98l5ZcnFNclIzW+Uz9/GcuLumyxv58lqUw9x6dH7jI7XfJZCCKbUiYuL419//UUArFevHh8+fEg+Ok1OK0DuG0FS9W/j1av3ItU3+A3bLT1NS1sPDtp4mc8iYtN1zUuXLlGSJObJk4d///03nz17lqGfSSDIDIRgyqZOTpCx7Ny5U73kVrNmTTo6OvL58+faNkvrXL16lTY2NjQyMiIA1q9fn8uWLePLly9T7efq6kpjY2NeuHBBdeJtKOlYnZxfnnz1UKNrR8UlctHhe7SacpAV7Dw5da8vX0TGpfszCMGkGbt376a5uTnNzMzo5uZGHpmmime6tZdTpkyhqampKv4siUSFkitPPmDlSQdYfdohul58kq5Yvjt37rB37940MDCgqakpR40a9dFSrkCgawjBlM2dnCD9yLLM8+fPc9iwYdy3bx9JMigoiKNHjxZLbklcvXqVHTp0IACam5vz77//pp+fn8b9w8PDOXHiRNUST2wEudKanF2CDL6SZt8EhZKbzj9m3VlHaGnrwWGbrzDgRfJLQ5ogBJPmBAQE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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,2,figsize=(8,3),sharey=True)\n", + "plt.tight_layout()\n", + "for _ax in ax:\n", + " _ax.set_xscale(\"log\")\n", + " _ax.set_yscale(\"log\")\n", + "ax[0].set_xlabel(\"timestep\");\n", + "ax[1].set_xlabel(\"runtime\");\n", + "ax[0].set_ylabel(\"error\")\n", + "\n", + "for j, phi in enumerate(phis_m):\n", + " label = \"$\\Phi_0=%s, \\Phi_1=LF6, n=1$\" % labels[phi]\n", + " ax[0].plot(dts/np.pi/2.,results_m[:,j,0],label=label)\n", + " ax[1].plot(results_m[:,j,1],results_m[:,j,0],label=label)\n", + "\n", + "for m, method in enumerate(methods):\n", + " ax[0].plot(dts/np.pi/2.,results[:,m,0],label=method,color=\"black\",ls=linestyles[m])\n", + " ax[1].plot(results[:,m,1],results[:,m,0],label=method,color=\"black\",ls=linestyles[m]) \n", + " \n", + "ax[0].legend(loc='upper center', bbox_to_anchor=(1.1, -0.2), ncol=4);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**High order methods for perturbed systems**\n", + "\n", + "We can do better than above by making use of high order methods for $\\Phi_0$ which were specifically designed for perturbed systems such as LF(8,6,4) and PLF(7,6,4). " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "phi0s_8 = [\"LF8\", \"LF8_6_4\", \"PLF7_6_4\"]\n", + "results_8 = np.zeros((len(dts), len(phi0s_8), 2))\n", + "for i, dt in enumerate(dts):\n", + " for j, phi0 in enumerate(phi0s_8):\n", + " sim = initial_conditions()\n", + " sim.dt = dt\n", + " sim.integrator = \"eos\"\n", + " sim.ri_eos.phi0 = phi0\n", + " sim.ri_eos.phi1 = \"LF8\"\n", + " sim.ri_eos.n = 1\n", + " sim.ri_eos.safe_mode = 0\n", + " results_8[i,j] = run(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see in the following plot that these methods indeed perform very well. With $\\Phi_0=LF(8,6,4)$, $\\Phi_1=LF8$ and $n=1$ we achieve an accuracy and efficiency comparable to SABA(8,6,4). In contrast to SABA(8,6,4) we do not require a Kepler solver. " + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,2,figsize=(8,3),sharey=True)\n", + "plt.tight_layout()\n", + "for _ax in ax:\n", + " _ax.set_xscale(\"log\")\n", + " _ax.set_yscale(\"log\")\n", + "ax[0].set_xlabel(\"timestep\");\n", + "ax[1].set_xlabel(\"runtime\");\n", + "ax[0].set_ylabel(\"error\")\n", + "\n", + "for j, phi0 in enumerate(phi0s_8):\n", + " label = \"$\\Phi_0=%s, \\Phi_1=LF8, n=1$\" % labels[phi0]\n", + " ax[0].plot(dts/np.pi/2.,results_8[:,j,0],label=label)\n", + " ax[1].plot(results_8[:,j,1],results_8[:,j,0],label=label)\n", + "\n", + "for m, method in enumerate(methods):\n", + " ax[0].plot(dts/np.pi/2.,results[:,m,0],label=method,color=\"black\",ls=linestyles[m])\n", + " ax[1].plot(results[:,m,1],results[:,m,0],label=method,color=\"black\",ls=linestyles[m]) \n", + " \n", + "ax[0].legend(loc='upper center', bbox_to_anchor=(1.1, -0.2), ncol=4);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/rebound/source/docs/ipython_examples/EscapingParticles.ipynb b/rebound/source/docs/ipython_examples/EscapingParticles.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..91f457b65e7d69c8e683a236ecf1a1a57d54d44b --- /dev/null +++ b/rebound/source/docs/ipython_examples/EscapingParticles.ipynb @@ -0,0 +1,242 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Escaping particles\n", + "\n", + "Sometimes we are not interested in particles that get too far from the central body. Here we will define a radius beyond which we remove particles from the simulation. Let's set up an artificial situation with 3 planets, and the inner one moves radially outward with $v > v_{escape}$." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t2.19.1\n", + "REBOUND built on: \tJul 8 2016 19:40:49\n", + "Number of particles: \t4\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.000000\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "import rebound\n", + "import numpy as np\n", + "def setupSimulation():\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1., hash=\"Sun\")\n", + " sim.add(x=0.4,vx=5., hash=\"Mercury\")\n", + " sim.add(a=0.7, hash=\"Venus\")\n", + " sim.add(a=1., hash=\"Earth\")\n", + " sim.move_to_com()\n", + " return sim\n", + "\n", + "sim = setupSimulation()\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's run a simulation for 20 years (in default units where $G=1$, and thus AU, yr/2$\\pi$, and $M_\\odot$, see [Units.ipynb](../Units) for how to change units), and set up a 50 AU sphere beyond which we remove particles from the simulation. We can do this by setting the `exit_max_distance` flag of the simulation object. If a particle's distance (from the origin of whatever inertial reference frame chosen) exceeds `sim.exit_max_distance`, an exception is thrown.\n", + "\n", + "If we simply call `sim.integrate()`, the program will crash due to the unhandled exception when the particle escapes, so we'll create a `try`-`except` block to catch the exception. We'll also store the x,y positions of Venus, which we expect to survive." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A particle escaped (r>exit_max_distance).\n" + ] + } + ], + "source": [ + "sim = setupSimulation() # Resets everything\n", + "sim.exit_max_distance = 50.\n", + "Noutputs = 1000\n", + "times = np.linspace(0,20.*2.*np.pi,Noutputs)\n", + "xvenus, yvenus = np.zeros(Noutputs), np.zeros(Noutputs)\n", + "for i,time in enumerate(times):\n", + " try:\n", + " sim.integrate(time) \n", + " except rebound.Escape as error:\n", + " print(error)\n", + " for j in range(sim.N):\n", + " p = sim.particles[j]\n", + " d2 = p.x*p.x + p.y*p.y + p.z*p.z\n", + " if d2>sim.exit_max_distance**2:\n", + " index=j # cache index rather than remove here since our loop would go beyond end of particles array\n", + " sim.remove(index=index)\n", + " xvenus[i] = sim.particles[2].x\n", + " yvenus[i] = sim.particles[2].y" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Went down to 3 particles\n" + ] + } + ], + "source": [ + "print(\"Went down to {0} particles\".format(sim.N))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So this worked as expected. Now let's plot what we got:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig,ax = plt.subplots(figsize=(15,5))\n", + "ax.plot(xvenus, yvenus)\n", + "ax.set_aspect('equal')\n", + "ax.set_xlim([-2,10]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This doesn't look right. The problem here is that when we removed `particles[1]` from the simulation, all the particles got shifted down in the `particles` array. So following the removal, `xvenus` all of a sudden started getting populated by the values for Earth (the new `sim.particles[2]`). A more robust way to access particles is using hashes (see [UniquelyIdentifyingParticlesWithHashes.ipynb](../UniquelyIdentifyingParticlesWithHashes))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A particle escaped (r>exit_max_distance).\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim = setupSimulation() # Resets everything\n", + "sim.exit_max_distance = 50.\n", + "Noutputs = 1000\n", + "times = np.linspace(0,20.*2.*np.pi,Noutputs)\n", + "xvenus, yvenus = np.zeros(Noutputs), np.zeros(Noutputs)\n", + "for i,time in enumerate(times):\n", + " try:\n", + " sim.integrate(time) \n", + " except rebound.Escape as error:\n", + " print(error)\n", + " for j in range(sim.N):\n", + " p = sim.particles[j]\n", + " d2 = p.x*p.x + p.y*p.y + p.z*p.z\n", + " if d2>sim.exit_max_distance**2:\n", + " index=j # cache index rather than remove here since our loop would go beyond end of particles array\n", + " sim.remove(index=index)\n", + " xvenus[i] = sim.particles[\"Venus\"].x\n", + " yvenus[i] = sim.particles[\"Venus\"].y\n", + "\n", + "fig,ax = plt.subplots(figsize=(15,5))\n", + "ax.plot(xvenus, yvenus)\n", + "ax.set_aspect('equal')\n", + "ax.set_xlim([-2,10]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Much better! We solved the problem by assigning particles hashes and using those to access the particles for output." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/rebound/source/docs/ipython_examples/Forces.ipynb b/rebound/source/docs/ipython_examples/Forces.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..6ddae65ebb7d90a689cc17a8858c6126c79825be --- /dev/null +++ b/rebound/source/docs/ipython_examples/Forces.ipynb @@ -0,0 +1,297 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Additional forces\n", + "REBOUND is a gravitational N-body integrator. But you can also use it to integrate systems with additional, non-gravitational forces.\n", + "\n", + "This tutorial gives you a very quick overview of how that works. Implementing additional forces in python as below will typically be a factor of a few slower than a C implementation. For a library that has C implementations for several commonly used additional effects (with everything callable from Python), see [REBOUNDx](https://github.com/dtamayo/reboundx).\n", + "\n", + "**Stark problem**\n", + "\n", + "We'll start by adding two particles, the Sun and an Earth-like planet, to REBOUND." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + }, + "outputs": [], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.integrator = \"whfast\"\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-6,a=1.)\n", + "sim.move_to_com() # Moves to the center of momentum frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We could integrate this system, and the planet would go around the star at a fixed orbit with $a=1$ forever. Let's add an additional constant force that acts on the planet and points in one direction $F_x = m\\cdot c$, where $m$ is the planet's mass and $c$ a constant. This is called the Stark problem. In python, we can describe this with the following function" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "ps = sim.particles\n", + "c = 0.01\n", + "def starkForce(reb_sim):\n", + " ps[1].ax += c" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we need to tell REBOUND about this function. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "sim.additional_forces = starkForce" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can just integrate as usual. Let's keep track of the eccentricity as we integrate as it will change due to the additional force." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "Nout = 1000\n", + "es = np.zeros(Nout)\n", + "times = np.linspace(0.,100.*2.*np.pi,Nout)\n", + "for i, time in enumerate(times):\n", + " sim.integrate(time, exact_finish_time=0) # integrate to the nearest timestep so WHFast's timestep stays constant\n", + " es[i] = sim.particles[1].e " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And let's plot the result." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "image/png": "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\nT+GJogAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(15,5))\n", + "ax = plt.subplot(111)\n", + "plt.plot(times, es);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see that the eccentricity is oscillating between 0 and almost 1. \n", + "\n", + "Note that the function `starkForce(reb_sim)` above receives the argument `reb_sim` when it is called. This is a pointer to the simulation structure. Instead of using the global `ps` variable to access particle data, one could also use `reb_sim.contents.particles`. This could be useful when one is running multiple simulations in parallel or when the particles get added and removed (in those cases `particles` might change). The `contents` has the same meaning as a `->` in C, i.e. follow the memory address. To find out more about pointers, check out the [ctypes documentation](https://docs.python.org/3/library/ctypes.html#pointers).\n", + "\n", + "\n", + "**Non-conservative forces**\n", + "\n", + "The previous example assumed a conservative force, i.e. we could describe it as a potential as it is velocity independent. Now, let's assume we have a velocity dependent force. This could be a migration force in a protoplanetary disk or PR drag. We'll start from scratch and add the same two particles as before." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + }, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.integrator = \"ias15\"\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-6,a=1.)\n", + "sim.move_to_com() # Moves to the center of momentum frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But we change the additional force to be" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + }, + "outputs": [], + "source": [ + "ps = sim.particles\n", + "tau = 1000.\n", + "def migrationForce(reb_sim):\n", + " ps[1].ax -= ps[1].vx/tau\n", + " ps[1].ay -= ps[1].vy/tau\n", + " ps[1].az -= ps[1].vz/tau" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We need to let REBOUND know that our force is velocity dependent. Otherwise, REBOUND will not update the velocities of the particles. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + }, + "outputs": [], + "source": [ + "sim.additional_forces = migrationForce\n", + "sim.force_is_velocity_dependent = 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we integrate as before. But this time we keep track of the semi-major axis instead of the eccentricity." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "Nout = 1000\n", + "a_s = np.zeros(Nout)\n", + "times = np.linspace(0.,100.*2.*np.pi,Nout)\n", + "for i, time in enumerate(times):\n", + " sim.integrate(time)\n", + " a_s[i] = sim.particles[1].a \n", + "fig = plt.figure(figsize=(15,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlabel(\"time\")\n", + "ax.set_ylabel(\"semi-major axis\")\n", + "plt.plot(times, a_s);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The semi-major axis decays exponentially on a timescale `tau`.\n", + "\n", + "In the above example, REBOUND is calling a python function at every timestep. This can be slow. Note that you can also set `rebound.additional_forces` to a c function pointer. This let's you speed up the simulation significantly. However, you need to write your own c function/library that knows how to calculate the forces. Or, you use Dan Tamayo's new migration library (in preparation)." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/docs/ipython_examples/FourierSpectrum.ipynb b/rebound/source/docs/ipython_examples/FourierSpectrum.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..f9310c471fa63602044b826cfe17eb16421a5488 --- /dev/null +++ b/rebound/source/docs/ipython_examples/FourierSpectrum.ipynb @@ -0,0 +1,407 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fourier analysis & resonances\n", + "\n", + "A great benefit of being able to call rebound from within python is the ability to directly apply sophisticated analysis tools from scipy and other python libraries. Here we will do a simple Fourier analysis of a reduced Solar System consisting of Jupiter and Saturn. Let's begin by setting our units and adding these planets using JPL's horizons database:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Sun'... Found: Sun (10).\n", + "Searching NASA Horizons for 'Jupiter'... Found: Jupiter Barycenter (5).\n", + "Searching NASA Horizons for 'Saturn'... Found: Saturn Barycenter (6).\n" + ] + } + ], + "source": [ + "import rebound\n", + "import numpy as np\n", + "sim = rebound.Simulation()\n", + "sim.units = ('AU', 'yr', 'Msun')\n", + "sim.add(\"Sun\")\n", + "sim.add(\"Jupiter\")\n", + "sim.add(\"Saturn\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's set the integrator to whfast, and sacrificing accuracy for speed, set the timestep for the integration to about $10\\%$ of Jupiter's orbital period." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sim.integrator = \"whfast\"\n", + "sim.dt = 1. # in years. About 10% of Jupiter's period\n", + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The last line (moving to the center of mass frame) is important to take out the linear drift in positions due to the constant COM motion. Without it we would erase some of the signal at low frequencies.\n", + "\n", + "Now let's run the integration, storing time series for the two planets' eccentricities (for plotting) and x-positions (for the Fourier analysis). Additionally, we store the mean longitudes and pericenter longitudes (varpi) for reasons that will become clear below. Having some idea of what the secular timescales are in the Solar System, we'll run the integration for $3\\times 10^5$ yrs. We choose to collect $10^5$ outputs in order to resolve the planets' orbital periods ($\\sim 10$ yrs) in the Fourier spectrum." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "Nout = 100000\n", + "tmax = 3.e5\n", + "Nplanets = 2\n", + "\n", + "x = np.zeros((Nplanets,Nout))\n", + "ecc = np.zeros((Nplanets,Nout))\n", + "longitude = np.zeros((Nplanets,Nout))\n", + "varpi = np.zeros((Nplanets,Nout))\n", + "\n", + "times = np.linspace(0.,tmax,Nout)\n", + "ps = sim.particles\n", + "\n", + "for i,time in enumerate(times):\n", + " sim.integrate(time) \n", + " # note we used above the default exact_finish_time = 1, which changes the timestep near the outputs to match\n", + " # the output times we want. This is what we want for a Fourier spectrum, but technically breaks WHFast's\n", + " # symplectic nature. Not a big deal here.\n", + " os = sim.orbits()\n", + " for j in range(Nplanets):\n", + " x[j][i] = ps[j+1].x # we use the 0 index in x for Jup and 1 for Sat, but the indices for ps start with the Sun at 0\n", + " ecc[j][i] = os[j].e\n", + " longitude[j][i] = os[j].l\n", + " varpi[j][i] = os[j].Omega + os[j].omega" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's see what the eccentricity evolution looks like with matplotlib:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "labels = [\"Jupiter\", \"Saturn\"]\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "plt.plot(times,ecc[0],label=labels[0])\n", + "plt.plot(times,ecc[1],label=labels[1])\n", + "ax.set_xlabel(\"Time (yrs)\")\n", + "ax.set_ylabel(\"Eccentricity\")\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's try to analyze the periodicities in this signal. Here we have a uniformly spaced time series, so we could run a Fast Fourier Transform, but as an example of the wider array of tools available through scipy, let's run a Lomb-Scargle periodogram (which allows for non-uniform time series). This could also be used when storing outputs at each timestep using the integrator IAS15 (which uses adaptive and therefore non-uniform timesteps).\n", + "\n", + "Let's check for periodicities with periods logarithmically spaced between 10 and $10^5$ yrs. From the documentation, we find that the lombscargle function requires a list of corresponding angular frequencies (ws), and we obtain the appropriate normalization for the plot. To avoid conversions to orbital elements, we analyze the time series of Jupiter's x-position." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from scipy import signal\n", + "Npts = 3000\n", + "logPmin = np.log10(10.)\n", + "logPmax = np.log10(1.e5)\n", + "Ps = np.logspace(logPmin,logPmax,Npts)\n", + "ws = np.asarray([2*np.pi/P for P in Ps])\n", + "\n", + "periodogram = signal.lombscargle(times,x[0],ws)\n", + "\n", + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "ax.plot(Ps,np.sqrt(4*periodogram/Nout))\n", + "ax.set_xscale('log')\n", + "ax.set_xlim([10**logPmin,10**logPmax])\n", + "ax.set_ylim([0,0.15])\n", + "ax.set_xlabel(\"Period (yrs)\")\n", + "ax.set_ylabel(\"Power\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We pick out the obvious signal in the eccentricity plot with a period of $\\approx 45000$ yrs, which is due to secular interactions between the two planets. There is quite a bit of power aliased into neighbouring frequencies due to the short integration duration, with contributions from the second secular timescale, which is out at $\\sim 2\\times10^5$ yrs and causes a slower, low-amplitude modulation of the eccentricity signal plotted above (we limited the time of integration so that the example runs in a few seconds). \n", + "\n", + "Additionally, though it was invisible on the scale of the eccentricity plot above, we clearly see a strong signal at Jupiter's orbital period of about 12 years. \n", + "\n", + "But wait! Even on this scale set by the dominant frequencies of the problem, we see an additional blip just below $10^3$ yrs. Such a periodicity is actually visible in the above eccentricity plot if you inspect the thickness of the lines. Let's investigate by narrowing the period range:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n2EoBOtApIDkAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "ax.plot(Ps,np.sqrt(4*periodogram/Nout))\n", + "ax.set_xscale('log')\n", + "ax.set_xlim([600,1600])\n", + "ax.set_ylim([0,0.003])\n", + "ax.set_xlabel(\"Period (yrs)\")\n", + "ax.set_ylabel(\"Power\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is the right timescale to be due to resonant perturbations between giant planets ($\\sim 100$ orbits). In fact, Jupiter and Saturn are close to a 5:2 mean-motion resonance. This is the famous great inequality that Laplace showed was responsible for slight offsets in the predicted positions of the two giant planets. Let's check whether this is in fact responsible for the peak. \n", + "\n", + "In this case, we have that the mean longitude of Jupiter $\\lambda_J$ cycles approximately 5 times for every 2 of Saturn's ($\\lambda_S$). The game is to construct a slowly-varying resonant angle, which here could be $\\phi_{5:2} = 5\\lambda_S - 2\\lambda_J - 3\\varpi_J$, where $\\varpi_J$ is Jupiter's longitude of pericenter. This last term is a much smaller contribution to the variation of $\\phi_{5:2}$ than the first two, but ensures that the coefficients in the resonant angle sum to zero and therefore that the physics do not depend on your choice of coordinates.\n", + "\n", + "To see a clear trend, we have to shift each value of $\\phi_{5:2}$ into the range $[0,360]$ degrees, so we define a small helper function that does the wrapping and conversion to degrees:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def zeroTo360(val):\n", + " while val < 0:\n", + " val += 2*np.pi\n", + " while val > 2*np.pi:\n", + " val -= 2*np.pi\n", + " return val*180/np.pi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we construct $\\phi_{5:2}$ and plot it over the first 5000 yrs. " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n/B+IS0vkK7xKhgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "phi = [zeroTo360(5.*longitude[1][i] - 2.*longitude[0][i] - 3.*varpi[0][i]) for i in range(Nout)]\n", + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "ax.plot(times,phi)\n", + "ax.set_xlim([0,5.e3])\n", + "ax.set_ylim([0,360.])\n", + "ax.set_xlabel(\"time (yrs)\")\n", + "ax.set_ylabel(r\"$\\phi_{5:2}$\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the resonant angle $\\phi_{5:2}$ circulates, but with a long period of $\\approx 900$ yrs (compared to the orbital periods of $\\sim 10$ yrs), which precisely matches the blip we saw in the Lomb-Scargle periodogram. This is approximately the same oscillation period observed in the Solar System, despite our simplified setup!\n", + "\n", + "This resonant angle is able to have a visible effect because its (small) effects build up coherently over many orbits. As a further illustration, other resonance angles like those at the 2:1 will circulate much faster (because Jupiter and Saturn's period ratio is not close to 2). We can easily plot this. Taking one of the 2:1 resonance angles $\\phi_{2:1} = 2\\lambda_S - \\lambda_J - \\varpi_J$," + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\ngg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "phi2 = [zeroTo360(2*longitude[1][i] - longitude[0][i] - varpi[0][i]) for i in range(Nout)]\n", + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "ax.plot(times,phi2)\n", + "ax.set_xlim([0,5.e3])\n", + "ax.set_ylim([0,360.])\n", + "ax.set_xlabel(\"time (yrs)\")\n", + "ax.set_ylabel(r\"$\\phi_{2:1}$\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "In this case, since we are far from this particular resonance (the 2:1), the corresponding resonance angles vary on fast (orbital) timescales, and their effects simply average out." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/rebound/source/docs/ipython_examples/FrequencyAnalysis.ipynb b/rebound/source/docs/ipython_examples/FrequencyAnalysis.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..6086f459d2be7df64457aaba3227276637eafa02 --- /dev/null +++ b/rebound/source/docs/ipython_examples/FrequencyAnalysis.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Frequency Analysis\n", + "This examples shows how to perform a Modified Fourier Transform (MFT), or a Frequency Modified Fourier Transform (FMFT) on timeseries data using REBOUND. This can be used to determine the fundamental or secular frequencies of planetary systems. The (Frequency) Modified Fourier Transform is much more accurate in determining the frequencies than a simple Fourier Transform. For more information on these methods see: [Laskar (1988)](https://ui.adsabs.harvard.edu/abs/1988A%26A...198..341L/abstract), [Laskar (1990)](https://ui.adsabs.harvard.edu/abs/1990Icar...88..266L/abstract), and [Sidlichovsky and Nesvorny (1996)](https://ui.adsabs.harvard.edu/abs/1996CeMDA..65..137S/abstract).\n", + "\n", + "In this example, we will determine the secular frequencies present in the outer Solar System. Throughout the example, we work in units where $G=1$ and one year is equivalent to $2\\pi$ code units." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "sim = rebound.Simulation()\n", + "rebound.data.add_outer_solar_system(sim)\n", + "sim.integrator = \"whfast\"\n", + "sim.dt = sim.particles[1].P/30.13 # About 30 steps per Jupiter orbit" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now integrate forward in time, taking snapshots every 120000 days using the Simulationarchive." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "step = int(120000.0/365.25*np.pi*2/sim.dt)\n", + "sim.save_to_file(\"output.bin\",step=step,delete_file=True)\n", + "Nsamples = 2**13 # Needs to be a power of 2\n", + "sim.integrate(step*sim.dt*(Nsamples-1),exact_finish_time=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now have a Simulationarchive with $2^{13}$ snaphots." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "sa = rebound.Simulationarchive(\"output.bin\")\n", + "print(sa)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We next extract the eccentricity e and the periastron $\\bar \\omega$ of Jupiter from this archive." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "inp = np.zeros(Nsamples*2)\n", + "for i, sim in enumerate(sa):\n", + " o = sim.particles[1].orbit()\n", + " inp[i*2+0] = o.e*np.cos(o.pomega)\n", + " inp[i*2+1] = o.e*np.sin(o.pomega)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's quickly plot this dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "fig, ax = plt.subplots()\n", + "ax.set_xlabel(\"Time [Myrs]\")\n", + "ax.set_ylabel(\"Eccentricity of Jupiter\")\n", + "ax.plot(np.arange(Nsamples)*step*sim.dt/np.pi/2.0/1e6,np.sqrt(inp[::2]**2+inp[1::2]**2));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we perform the Frequency Modified Fourier Transform algorithm on this time series to extract the secular frequencies, amplitudes, and phases. We specify a minimum and maximum frequency to ensure the FMFT only returns modes in this range. Here, we choose the range of -60\"/year to +60\"/year." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "minfreq = 60.0/1296000.0*step*sim.dt\n", + "freq, amp, phase = rebound.frequency_analysis(inp, type=1, minfreq=-minfreq, maxfreq=minfreq)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now print out the 10 most dominant frequencies in the signal. Also shown are the amplitudes and the phases." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "nu = 4.24\"/yr A = 0.0441150 phi = 30.0°\n", + "nu = 28.24\"/yr A = 0.0156774 phi = 306.1°\n", + "nu = 3.09\"/yr A = 0.0018430 phi = 119.5°\n", + "nu = 52.25\"/yr A = 0.0005711 phi = 42.2°\n", + "nu = 29.29\"/yr A = 0.0002578 phi = 253.3°\n", + "nu = 27.18\"/yr A = 0.0002552 phi = 183.9°\n", + "nu = 5.35\"/yr A = 0.0000729 phi = 135.4°\n", + "nu = 53.36\"/yr A = 0.0000541 phi = 325.2°\n", + "nu = 4.17\"/yr A = 0.0000483 phi = 75.7°\n", + "nu = 51.18\"/yr A = 0.0000191 phi = 282.4°\n" + ] + } + ], + "source": [ + "nfreq = len(freq)\n", + "for i in range(nfreq):\n", + " print(\"nu = %5.2f\\\"/yr A = %.7f phi = %5.1f°\" % (freq[i]*1296000.0/step/sim.dt, amp[i], phase[i]/np.pi*180.0))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also use these few dominant modes to create a very accurate approximation of the input data. Note that we don't need to worry about converting units in the following code." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "approx = np.zeros(Nsamples*2)\n", + "for i in range(nfreq):\n", + " approx[0::2] += amp[i]*np.cos(freq[i]*np.arange(Nsamples)+phase[i])\n", + " approx[1::2] += amp[i]*np.sin(freq[i]*np.arange(Nsamples)+phase[i])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following plot shows the original signal (blue) and the reconstructed signal consiting of 10 modes (orange). They are a very good match." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "ax.set_xlabel(\"Time [Myrs]\")\n", + "ax.set_ylabel(\"Eccentricity of Jupiter\")\n", + "ax.plot(np.arange(Nsamples)*step*sim.dt/np.pi/2.0/1e6,np.sqrt(inp[::2]**2+inp[1::2]**2), label=\"input signal\")\n", + "ax.plot(np.arange(Nsamples)*step*sim.dt/np.pi/2.0/1e6,np.sqrt(approx[::2]**2+approx[1::2]**2),label=\"reconstruction\")\n", + "ax.legend();" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/docs/ipython_examples/HighOrderSymplectic.ipynb b/rebound/source/docs/ipython_examples/HighOrderSymplectic.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..0ff58ef0fc719586ba3f3672672382db7a7e3e81 --- /dev/null +++ b/rebound/source/docs/ipython_examples/HighOrderSymplectic.ipynb @@ -0,0 +1,278 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# High Order Symplectic Integrators\n", + "\n", + "These notebooks show how to use the high order symplectic integrators of Wisdom et al. (1996) and Laskar & Robutel (2001) with REBOUND. See Rein, Tamayo & Brown (2019) for an overview of these integrators. \n", + "\n", + "Let us start by importing REBOUND, as well as numpy and matplotlib." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "High order symplectic integrators with a fixed timestep are well suited for planetary systems in which planets orbit the primary mass on almost Keplerian orbits. The planet-planet interactions need to be a perturbation. If they are not, a different integrator, such as IAS15 or MERCURIUS is better suited.\n", + "\n", + "On system that we know is stable is the outer Solar System. So we will use this as our test case. We can either import accurate data from NASA Horizons, or, because this is just a test, use some of the initial conditions which come with REBOUND to setup a simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from rebound import data\n", + "sim = rebound.Simulation()\n", + "data.add_outer_solar_system(sim) # either this, or add the planets manually\n", + "rebound.OrbitPlot(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll integrate the outer Solar System for 1000 years into the future and measure the energy error along the way. We do that at random intervals to make sure we don't have any aliasing with an orbital period. The following function runs the simulation, and then returns the error." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def measure_energy(sim):\n", + " Nsamples = 1000\n", + " tmax = 2.*np.pi*1e3 # 1000 years\n", + " t_samples = tmax*np.sort(np.random.random(Nsamples))\n", + " E0 = sim.energy() # initial energy\n", + " Emax = 0. # maximum energy error\n", + " for t in t_samples:\n", + " # we do not want to change the timestep to reach t exactly, thus \n", + " # we need to set exact_finish_time=False and slighlty overshoot.\n", + " sim.integrate(t,exact_finish_time=False) \n", + " E = sim.energy()\n", + " Emax = max(Emax, np.abs((E-E0)/E0))\n", + " return Emax" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To get an idea how our integrators are behaving, we want to run this simulation for various timesteps. So let us set up an array of timesteps from 0.001 to 1 orbital periods of Jupiter." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "N_dt_samples = 100\n", + "dt_samples = sim.particles[1].P * np.logspace(-3,0.,N_dt_samples)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's run the simulations with the standard WH integrator first. We set `safe_mode` to 0 to speed up the calculation." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "Emax_wh = np.zeros(N_dt_samples)\n", + "for i, dt in enumerate(dt_samples):\n", + " sim_run = sim.copy() # make a copy of the simulation so we don't need to set a new one up every time\n", + " sim_run.integrator = \"whfast\"\n", + " sim_run.dt = dt\n", + " sim.ri_whfast.safe_mode = False\n", + " Emax_wh[i] = measure_energy(sim_run)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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yZgxY/jpp5944403rMNa+/btq9QLVt4j9fXXX9OhQwf8/Py47bbbKCgo4L333iMqKopGjRrx4IMPYjabre0XFRXx6KOP0rx5c/z9/YmPj2fZsmXW9/fv38+wYcNo1KgR/v7+dO7cmW+++YZ9+/YxaNAgABo1aoTJZGLMmDEAWCwWpk+fTqtWrfD19SUmJobPPvvM2mZ57AsXLqRbt274+Phw1VVXsXXrVrt8v0aMGFHh2MMPP8zAgQOtrwcOHMgDDzzAAw88QFBQECEhITzzzDMYhmE959zh1KioKABGjhyJyWSyvgZYsGABPXr0wMfHh9atWzN16lRKS0ut75tMJv75z38yfPhw/P39efHFFyvF/Nxzz9GlS5dKx2NjY3nmmWesr9955x06deqEj48PHTt25B//+EeF85944gnat2+Pn58frVu35plnnqGkpMT6/pQpU4iNjeWdd96hVatW+Pj4APDZZ5/RtWtXfH19ady4MQkJCeTn51/4GywiF6SeOBGp5I033mDXrl106dKF5557DijrJdq3b1+lcwsKCnjzzTf55JNPyM3NZdSoUYwcOZKGDRvyzTffsHfvXm699Vb69u3LHXfcAcADDzzA9u3b+eSTTwgPD2fevHnccMMNbNmyhXbt2pGYmEhxcTHLly/H39+f7du306BBAyIiIvj888+59dZbSU1NJTAwEF9fXwCmT5/Ohx9+yKxZs2jXrh3Lly/nD3/4A02aNGHAgAHWeB977DHeeOMNwsLCePLJJxk2bBi7du26Ij1V7733Hvfccw9r165l/fr1/OlPfyIyMpLx48dXOnfdunU0bdqU2bNnc8MNN1h7pVasWMHdd9/Nm2++Sb9+/dizZ491CPbZZ5+1Xj9lyhReeuklZsyYgYdH5R/148aNY+rUqaxbt464uDgAfv31VzZv3swXX3wBwEcffcTkyZOZOXMm3bt359dff2X8+PH4+/szevRoAAICApgzZw7h4eFs2bKF8ePHExAQwOOPP269V1paGp9//jlffPEF7u7uHD16lDvvvJOXX36ZkSNHkpuby4oVKyoktCJSDYaIyAUMGDDAeOihhyocW7p0qQEYp06dMgzDMGbPnm0ARlpamvWcP//5z4afn5+Rm5trPTZkyBDjz3/+s2EYhrF//37D3d3dOHz4cIW2Bw8ebEyaNMkwDMPo2rWrMWXKlAvGdX4MhmEYhYWFhp+fn7Fq1aoK595zzz3GnXfeWeG6Tz75xPr+iRMnDF9fX2Pu3LlVfh8AY968eRWOzZ492wgKCrK+Hj16tHHLLbdUOOehhx4yBgwYYH09YMAAo1OnTobFYrEee+KJJ4xOnTpZX7ds2dL4+9//ftF7Dx482Jg2bVqFYx988IHRrFmzCtc9/PDDVX6mckOHDjX+8pe/WF9PmDDBGDhwoPV1mzZtjI8//rjCNc8//7zRp0+fKtt85ZVXjJ49e1pfP/vss4anp6dx7Ngx67ENGzYYgLFv376Lxnf+90NEKlJPnIhcFj8/P9q0aWN9HRoaSlRUFA0aNKhw7NixYwBs2bIFs9lM+/btK7RTVFRE48aNAXjwwQf5y1/+wuLFi0lISODWW2+lW7duVcaQlpZGQUEB1113XYXjxcXFdO/evcKxPn36WP8cHBxMhw4d2LFjh42fumauuuoqTCZThVhee+01zGZzted/bdq0iZUrV1YYIjWbzRQWFlJQUICfnx8AvXr1umRb48ePZ9y4cbz++uu4ubnx8ccf8/e//x2A/Px89uzZwz333FOhp7C0tLTCwpa5c+fy5ptvsmfPHvLy8igtLSUwMLDCfVq2bFlhvl9MTAyDBw+ma9euDBkyhOuvv57bbruNRo0aVet7ICJllMSJyGU5fxjSZDJd8JjFYgEgLy8Pd3d3NmzYUClxKU/87r33XoYMGcLChQtZvHgx06dP57XXXmPChAkXjCEvLw+AhQsX0rx58wrveXt71/zDVZObm1ulocBz54XZU15eHlOnTmXUqFGV3iufbwbg7+9/ybaGDRuGt7c38+bNw8vLi5KSEm677TbrfQDefvtt4uPjK1xX/ve2evVq7rrrLqZOncqQIUMICgrik08+4bXXXqtw/vmxuLu78/3337Nq1SoWL17MW2+9xVNPPcWaNWto1apVNb4LIgJK4kSkCl5eXhUWI9hL9+7dMZvNHDt2jH79+lV5XkREBPfddx/33XcfkyZN4u2332bChAnWlY3nxhYdHY23tzcHDhyoMP/tQn755RciIyMBOHXqFLt27aJTp06X9ZmaNGlSaYFESkpKpWR2zZo1lWJp165dlb1wnp6elf4OevToQWpqKm3btr2smAE8PDwYPXo0s2fPxsvLi9/97nfWOYahoaGEh4ezd+9e7rrrrgtev2rVKlq2bMlTTz1lPbZ///5q3dtkMtG3b1/69u3L5MmTadmyJfPmzSMpKemyP5dIfaEkTkQuKCoqijVr1rBv3z4aNGhAcHCwXdpt3749d911F3fffTevvfYa3bt35/jx4yxZsoRu3bpx00038fDDDzN06FDat2/PqVOnWLp0qTXRatmyJSaTia+//pobb7wRX19fAgICePTRR/nrX/+KxWLhmmuuITs7m5UrVxIYGGidhA9lqzIbN25MaGgoTz31FCEhIZVWltrq2muv5ZVXXuH999+nT58+fPjhh2zdurXSUO6BAwdISkriz3/+Mxs3buStt96q1Gt1rqioKJYsWULfvn3x9vamUaNGTJ48mZtvvpnIyEhuu+023Nzc2LRpE1u3buWFF16wOfZ7773X+r1duXJlhfemTp3Kgw8+SFBQEDfccANFRUWsX7+eU6dOkZSURLt27Thw4ACffPIJcXFxLFy4kHnz5l3ynmvWrGHJkiVcf/31NG3alDVr1nD8+PHLTqZF6huVGBGRC3r00Udxd3cnOjqaJk2acODAAbu1PXv2bO6++24eeeQROnTowIgRI1i3bp21h8xsNpOYmEinTp244YYbaN++vbW0RfPmzZk6dSoTJ04kNDSUBx54AIDnn3+eZ555hunTp1uvW7hwYaXhuZdeeomHHnqInj17kpGRwVdffXXJumXns1gsFVZ8DhkyhGeeeYbHH3+cuLg4cnNzufvuuytdd/fdd3PmzBl69+5NYmIiDz30UIXivud77bXX+P7774mIiLAmhEOGDOHrr79m8eLFxMXFcdVVV/H3v/+dli1b2vQZyrVr146rr76ajh07Vho2vffee3nnnXeYPXs2Xbt2ZcCAAcyZM8f6PR0+fDh//etfeeCBB4iNjWXVqlUVypNUJTAwkOXLl3PjjTfSvn17nn76aV577TWGDh1ao88gUl+ZjPMncoiI1EHLli1j0KBBnDp1yqbdFkwmE/PmzavQW/fSSy9Ze9uqa+DAgcTGxrrcNlKGYdCuXTvuv/9+lxvKjIqK4uGHH660c4iIlFFPnIjIJdx55520aNGCgoICNm7cyOzZs0lISHB2WJft+PHjzJw5k4yMDMaOHevscKymTZtGgwYN7Nr7K1IXaU6ciMhF7N69GyhbUfnvf/+b5557joSEBCZPnuzkyC5f06ZNCQkJ4d///rdLlfe47777uP322wHHbUUmUhdoOFVERESkFtJwqoiIiEgtpCROREREpBZSEiciIiJSCymJExEREamFlMSJiIiI1EJK4kRERERqISVxIiIiIrWQkjgRERGRWuj/Absj9QK2JzZNAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f,ax = plt.subplots(1,1,figsize=(7,5))\n", + "ax.set_xscale(\"log\")\n", + "ax.set_yscale(\"log\")\n", + "ax.set_xlabel(\"timestep [Jupiter years]\")\n", + "ax.set_ylabel(\"relative energy error\")\n", + "ax.plot(dt_samples/sim.particles[1].P,Emax_wh,label=\"WH\")\n", + "ax.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that the WH converges quadratically and reaches a precision of $10^{-9}$ at a timestep of 0.001 Jupiter years. Let's try the same with the WHCKL, SABACL4, and SABA(10,6,4) integrators." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rein/git/rebound/rebound/simulation.py:724: RuntimeWarning: WHFast convergence issue. Timestep is larger than at least one orbital period.\n", + " warnings.warn(msg[1:], RuntimeWarning)\n" + ] + } + ], + "source": [ + "Emax_saba4 = np.zeros(N_dt_samples)\n", + "for i, dt in enumerate(dt_samples):\n", + " sim_run = sim.copy() # make a copy of the simulation so we don't need to set a new one up every time\n", + " sim_run.integrator = \"SABACL4\"\n", + " sim_run.ri_saba.safe_mode = False\n", + " sim_run.dt = dt\n", + " Emax_saba4[i] = measure_energy(sim_run)\n", + "Emax_saba1064 = np.zeros(N_dt_samples)\n", + "for i, dt in enumerate(dt_samples):\n", + " sim_run = sim.copy() \n", + " sim_run.integrator = \"SABA(10,6,4)\" \n", + " sim_run.ri_whfast.safe_mode = False\n", + " sim_run.dt = dt\n", + " Emax_saba1064[i] = measure_energy(sim_run)\n", + "Emax_whckl = np.zeros(N_dt_samples)\n", + "for i, dt in enumerate(dt_samples):\n", + " sim_run = sim.copy() \n", + " sim_run.integrator = \"WHCKL\" \n", + " sim_run.ri_whfast.safe_mode = False\n", + " sim_run.dt = dt\n", + " Emax_whckl[i] = measure_energy(sim_run) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We get a warning message because the largest timestep we try is larger than the innermost orbital period. You would not want to use such a large timestep in an actual simulation, but we can ignore the message for this test." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAncAAAHECAYAAABbfAwkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAADfq0lEQVR4nOzdd3iUVfbA8e+UZNIb6QUChN5CaDYIoUiTjiBYQBS7rotl7b38bCzuqosixUZTaSqC0kF6QuidUNIL6W0yM+/vj5cMxCSQQJJJwvk8D08mb5szgOZw7z3nahRFURBCCCGEEI2C1tYBCCGEEEKImiPJnRBCCCFEIyLJnRBCCCFEIyLJnRBCCCFEIyLJnRBCCCFEIyLJnRBCCCFEIyLJnRBCCCFEI6K3dQANlcViITExEVdXVzQaja3DEUIIIUQjpigKubm5BAYGotVeeWxOkrtrlJiYSEhIiK3DEEIIIcQN5Pz58wQHB1/xGknurpGrqyug/ia7ubnZOBohhBBCNGY5OTmEhIRY848rkeTuGpVOxbq5uUlyJ4QQQog6UZWlYFJQIYQQQgjRiEhyJ4QQQgjRiEhyJ4QQQgjRiMiau1pksVgwGo22DkM0AHZ2duh0OluHIYQQohGQ5K6WGI1G4uLisFgstg5FNBAeHh74+/tL30QhhBDXRZK7WqAoCklJSeh0OkJCQq7abFDc2BRFoaCggNTUVAACAgJsHJEQQoiGTJK7WmAymSgoKCAwMBAnJydbhyMaAEdHRwBSU1Px9fWVKVohhBDXTIaUaoHZbAbA3t7expGIhqT0HwIlJSU2jkQIIURDJsldLZK1U6I65O+LEEKImiDJnRBCCCFEIyLJnRBCCCFEIyLJnRBCCCFEIyLJnbCaNWsWrq6umEwm67G8vDzs7Ozo27dvmWs3btyIRqPh1KlThIaGMnPmzHLPe+ONNwgPD6/doIUQQghRhrRCEVZRUVHk5eWxZ88ebrrpJgC2bNmCv78/O3fupKioCAcHBwA2bNhA06ZNadmypS1DFkIIIWqEoigczzyOxaJgr/Eiv8Ce5JwisgtLiGrri7eLwdYhVpkkd3VAURQKS8w2eW9HO12VqzDbtGlDQEAAGzdutCZ3GzduZOTIkaxfv54dO3ZYR/A2btxIVFRUbYUthBBC1KnlRzfw2q5/WL9XzAYsJR4oJZ50OTSGRZMn2jC66pHkrg4Ulphp/9oam7z34bcG4WRf9T/mqKgoNmzYwAsvvACoI3TPP/88ZrOZDRs20LdvXwoLC9m5cydTp06trbCFEEKIOrX0yCYAFEWHRmNGoytGp0sBhxQOFM8lK38sHs4No3+trLkTZURFRfHXX39hMpnIzc1l7969REZG0qdPHzZu3AjA9u3bKS4uLjNy969//QsXF5cyv9577z0bfQohhBCies7kngSgt9cDbLtrBytHreSL/l+gUezQGpKZs2eDjSOsOhm5qwOOdjoOvzXIZu9dHX379iU/P5/du3eTmZlJ69at8fHxITIykvvvv5+ioiI2btxIixYtaNq0qfW+5557jilTppR51n/+8x82b95cEx9DCCGEqDWKopBlOgd66NOsE64GZ1wNzWnu3pzWLr05lr+eFad/5plI2/wsry5J7uqARqOp1tSoLYWFhREcHMyGDRvIzMwkMjISgMDAQEJCQti2bRsbNmygX79+Ze7z9vYmLCyszDEvL686i1sIIUTjpSgKqw8m0z7QjWZNnGv8+cfT00CfBcCAsC5lzk0Ln8Szf63nAruJu5BGcy+fGn//mibTsqKcqKgoNm7cyMaNG8u0QOnTpw+///47u3btkmIKIYQQdWbZ/hNM3/wYk3+aWSvPX3syFgCdxQsfZ88y525v2RN7cxAarYmZOxfWyvvXNEnuRDlRUVFs3bqV2NhY68gdQGRkJF9++SVGo1GSOyGEEHXmm/0/oXc5SbrdCpKz82v8+XsSDwPQxL5ZuXMajYabfYcBsDX5VxRFqfH3r2mS3IlyoqKiKCwsJCwsDD8/P+vxyMhIcnNzrS1ThBBCiNqWX2ziZN4eADS6QhYd2FLj73EqSy2mCPMIq/D8U73uQrHYYdQmsS5uR42/f02T5E6UExoaiqIoHDlypMzxZs2aoSgKR48eLXP8zJkzPP300+We88YbbxAbG1uLkQohhGjsfj14Go3jaev3685urNHnmy0KF0rOANAzsEOF17T28cHd0hOAL/f+UKPvXxskuRNCCCFEvbXk4Ho0GjMoakP+s4W7a3Rq9HhKDtgnA3Bb006VXjc8dAwAx3L/Iqsoq8y5ohIzLy7dx/nMvBqL63pIcieEEEKIeim3qIQj2TsB6BM4BEXRotilsvXM0avcWXWbT59AoytGo+ho4dm80uvu794bc1EQisbENwd+sh7PLChi1PwvWJH2DPcs+gKLxfZr8iS5E0IIIUS9tOZQEhpnNZG7p+MoXJU2ACw+XHO7Pu1MOAiAuz4IO61dpdf5uTsSolPbgP10/CdMFhMLDy2n36I7SLD/Cp1DCi6+O9Fqq7blZ22S5E4IIYQQ9dKSAzvQ6vOw0zjS3a874U1uBmBv2rZqPed4Si4FRlPF5y6cAKC5e8XFFJeb0H44itmeLFMCA368nff2vIpJlwIWR8a1mMqCO+ZWK67aIsmdEEIIIeqd7IISDlxQk7huvr2w09kxrp26Q0Q2x7hQmH3VZyiKwlu/7eWOb97mwYW/lDtfaDSTUXIWgAj/dld93qguLTHldgUgoygNxeSEIXcYCwf/wuu9/4m7wb3Kn682SXInhBBCiHpnzaFkNE7qlOywsP4ARLVsByV+aDQWFuz/84r3my0K/1oaw8Kzb2Lw+53Yov9xJCmnzDWHErPRGJIAiPBvf9WYvJzt6ep6JyU5nSlOGUJAztv8dt8bdAzwu+q9dUmSOyGEEELUO8sOHEbnmABouC3oNgC0Wg0hhm4A/HlmfaX3Gk0Wnly4m1+S/g+98ykAdA5JzNy4tcx1e86lobVPB6C1V+sqxXVvj84UJUyio8tIfny4L35uDtX9aLVOkjshhBBC1CsX8o1Ep20HoLVHO7wdva3n+oX0BeBMYQwmS/l1dIVGM9O+28X6jE/Rux5Fr7EnyDkUgE2Jf5KYVWi9dsf5I2g0Fuw1zvg5VW30bUhHf9ZO78OSh2/Gw8n+Gj9h7ZLkTgghhBD1yuqDyWid1Ub6A0PLbnc5ofNtKCYnLJp8tsVHlzmXV2zi3rnb2ZHzJXbu+9Fp9Pyn30we7/oQAFrXfczdeqkh8pGMYwA0dW2JRlO1KleNRkOYryt63WUpVNY5WPYInK1eoUdtkeROlJGWlsajjz5K06ZNMRgM+Pv7M2jQIP76668y123fvh2dTsewYcPKPePMmTNoNBrrL3t7e8LCwnjnnXcqbDwZHx+Pvb09HTt2rDAmRVH46quv6NWrFy4uLnh4eNC9e3dmzpxJQUEBoO6GER4eXqXP+Mgjj6DRaJg5c2aVrhdCCFG3Vu4/i95Z3RKsT3CfMudCvFxxMKk7SSw5/If1eInZwiPf7+FA4XfYe+xBg5aPIj+kd3BvokKisNPYozOksWjfTnKKSsjIKybLdA6Azr5try/gvT/AvoWw8f+u7zk1RJI7UcbYsWPZu3cv33zzDcePH2flypX07duXjIyMMtfNmTOHJ598ks2bN5OYmFjhs9auXUtSUhInTpzgzTff5N1332Xu3PJl4vPnz2f8+PHk5OSwc+fOcufvvfdenn76aUaOHMmGDRuIjY3l1VdfZcWKFfzxxx/lrr+SZcuWsWPHDgIDA6t1nxBCiNpVaDSz9UQ6n/xxjOjkPWi0Rpo4+NDOq3wVaxcvtSVKdJo68KAoCk/8+DvRxnex91JHz9657W0GNhsIgIu9C5EhapJodIhhwc5z7I/PRmtQd6bo4N3m2gO3mCH24pZkEfdd+3NqkN7WAYj6Iysriy1btrBx40YiIyMBdT/Znj17lrkuLy+PxYsXs2fPHpKTk5k/fz4vvfRSuec1adIEf39/63PmzZtHTEwMDzzwgPUaRVGYN28eX3zxBcHBwcyZM4devXpZzy9ZsoQffviB5cuXM3LkSOvx0NBQRowYQU5O2cqnK0lISODJJ59kzZo1FY44CiGEqFtp+elM/u0fZOZquZDSmeKcNoAOg59aJds3pE+F06Uj2/RjZ8xn5FkSOJ55nDfWfc/+ohXonSzYax145aaXGNFyRJl7hrYYytpza7Fz38fcv04xNqKpNblr7Vm1YooKnd4I2efBwQPa3nHtz6lBN+zIXVZWFt27dyc8PJyOHTsye/bs2nszRQFjvm1+VWP/PRcXF1xcXFi+fDnFxcWVXrdkyRLatm1LmzZtuOeee5g7d+5V9/nbs2cP0dHRZRI3gA0bNlBQUMCAAQO45557WLRoEfn5+dbzP/zwA23atCmT2JXSaDS4u1etp5DFYuHee+/lueeeo0OHijeGFkIIUTMKSgp4Y9sbLD66+IrXPf3n25wv3E+ePhb7oG9xbf0e7TtuwNtXbSz89ynZUlGtm2IpULcKu3PlXRzIX4ZGY6G1y838Onolo1uNLndP76DeOOud0dplkV5ykvnbD6O1UwcIwjyu3sC4Unu/U792Hg929aNy9oYduXN1dWXz5s04OTmRn59Px44dGTNmDE2aNKn5NyspgPdsNA34UiLYO1fpUr1ez/z585k2bRqzZs0iIiKCyMhI7rrrLjp37my9bs6cOdxzzz0ADB48mOzsbDZt2kTfvn3LPO+WW25Bq9ViNBopKSnhoYce4r77yg5Zz5kzh7vuugudTkfHjh1p0aIFP/74I1OmTAHgxIkTtGlzHcPlF33wwQfo9Xqeeuqp636WEEKIK/vv3v/y84mfAWjm3oybAm4qd82upN3sz16PomgItY8iWxtLVvEFzpvVrcXstfYV3gfg6mCHv10EaZzCQgmWEg8G+j3CzOF3VxqTg96Bfk378cvpX7Bz24cx14we8HEIwMXe5do+aH4GHP1Nfd313mt7Ri24YUfudDodTk5OABQXF6MoylVHn24EY8eOJTExkZUrVzJ48GA2btxIREQE8+fPB+DYsWPs2rWLiRMnAmpCOGHCBObMmVPuWYsXLyY2NpZ9+/axZMkSVqxYwQsvvGA9n5WVxdKlS62JIsA999xT5lk18WcSHR3Np59+yvz586tcDSWEEOLa7EmO4fsjP1i/f3nry2QXl91NosRSwkub3wRAk3sTC8d8zIbx6/i8/+fc3ux2DDoDo8JG4WTnVOn7DGo2nJKcThSnR3G728f8+45JV41tcPPBANi5HUBrUNeLt2tyHVOy+xeD2QgBXSCg89WvryP1duRu8+bNfPTRR0RHR5OUlMSyZcsYNWpUmWs+//xzPvroI5KTk+nSpQv//e9/y60Pu5KsrCwiIyM5ceIEH330Ed7e3le/6VrYOakjaLZwhf8wKuPg4MDAgQMZOHAgr776Kg8++CCvv/46U6ZMYc6cOZhMpjIFCYqiYDAY+Oyzz8pMk4aEhBAWpg51t2vXjlOnTvHqq6/yxhtv4ODgwIIFCygqKiozVasoChaLhePHj9O6dWtat27N0aNHr+M3ALZs2UJqaipNmza1HjObzTzzzDPMnDmTM2fOXNfzhRBCqLadSuLxTc+BTqEkuws6hwRSSeXtHW/zUZ+PrP/A/u7Qd6QUncVicuaultNwdbAD1GnYPsF9UBTlqv8YHxveinlb7iWylQ8fjo2o0j/ebw64GXeDO9lkY++5A4A2VWxeXI6iXJqSrSeFFKXq7chdfn4+Xbp04fPPP6/w/OLFi5k+fTqvv/46MTExdOnShUGDBpGammq9pnQ93d9/lVZ3enh4sG/fPuLi4liwYAEpKSmVxlNcXExOTk6ZX1Wm0ahTo7b4VQMjVe3btyc/Px+TycS3337LJ598QmxsrPXXvn37CAwMZOHChVd8jk6nw2QyYTQaAXVK9plnnin3rN69e1uraidNmsTx48dZsWJFuecpikJ29tX3Frz33nvZv39/mfcJDAzkueeeY82aNdfwOyKEEOJyydlF/GPRXqYsfxeTLhVMbnR3fYDCxAmgaFlzZg2/nv5VvTY/mS9i/weAJX0Yj/QuP+JVlUQtzNeFfa/fzlf3dsNOV7V0xk5nZ62g1Rou7kxxrcUUCTGQehj0DtBx3LU9o5bU25G7IUOGMGTIkErPz5gxg2nTpnH//fcDMGvWLH777Tfmzp1rnfqLjY2t0nv5+fnRpUsXtmzZwrhxFf8Bvf/++7z55pvV+xANTEZGBnfeeSdTp06lc+fOuLq6smfPHj788ENGjhzJr7/+SmZmJg888EC5QoaxY8cyZ84cHnnkkTLPS05OxmQyceDAAT799FOioqJwc3MjNjaWmJgYfvjhB9q2LdtfaOLEibz11lu88847jB8/nmXLljFx4kReeeUVbr/9dnx8fDhw4AD//ve/efLJJ60juoWFheX+zF1dXWnZsmW5tZR2dnb4+/vXyHo+IYS4kZ3LKOCO/24hjzicQjcD8G7v1xnUog9DZmqIT+uPwfdP3t35LhF+EXyy5xOKLUWYCkIZ23okPq6Ga35vg15X7XuGhA7hp+M/Wb9v5dnq2t5877fq1/YjwdHj2p5RS+rtyN2VGI1GoqOjGTBggPWYVqtlwIABbN++vUrPSElJITc3F4Ds7Gw2b958xR/0L774ItnZ2dZf58+fv74PUQ+5uLjQq1cv/v3vf9OnTx86duzIq6++yrRp0/jss8+YM2cOAwYMqLBCdezYsezZs4f9+/dbjw0YMICAgABCQ0N56KGHGDp0KIsXq5VTc+bMoX379uUSO4DRo0eTmprKqlWr0Gg0LFiwgBkzZrB8+XIiIyPp3Lkzb7zxBiNHjmTQoEHW+44fP07Xrl3L/Hr44Ydr4XdKCCFEqbd+PUxOcRHuTZei0SgMbT6UEa1vx6DX8c6ojhgz+mIuaEZ+ST7T/pjGn2f/RFG0lKSM4uHI66hSvUbd/Lrh4+gDgJ3WjmZuzar/EGM+HFALRupTIUWpejtydyXp6emYzWb8/MruA+fn51fl9Vlnz57loYceshZSPPnkk3Tq1KnS6w0GAwbDtf/roiEwGAy8//77vP/++xWe/+WXXyq9t2fPnmWKH65WCPHf//630nP+/v6YzWbr91qtlkceeaTMqODfvfHGG7zxxhtXfM/LyTo7IYS4pKjEzJML9xLi6cRrw9tX+b6Nx1JZeyQFB58NmHRJeDl48ULPS4Vzt4R5M7prU5YfHI9ry/9yPlcdGCm5cAt3tI0gxKv668Kvl06rY1DoIL4/8j0tPVqi115DKnR4BRhzwbM5hN5W80FepwaZ3NWEnj17VnnaVgghhKjvTGYL/1yyDxeDjvdGd6pWd4BVB5L487C67nxMRBAdg67eQ9RosvDWr4fR2GVg770RBXi518t4OniWue7lYe1YdySFgqThOAb+iKXEjeL0gTwyqWW1Pl9NmtRuEtEp0dzV9q5re0DMxUKKrvfUyNr2mtYgkztvb290Ol25AoiUlBTrjghCCCHEjWTbqQx+2ZcAwB2dA7k1rOodIBbsPAeYAQ1zt8YxY0L4Ve/5ZtsZTqfl4xG8CzNmbgm8hdtDby93nbeLgReGtOOlZSYKStywlDShf+sQ2vq7VTm+mhbiGsKS4Uuu7eb0k3BuG2i0EH719iu20CDX3Nnb29OtWzfWrVtnPWaxWFi3bh0333yzDSMTQgghbGPZ3nM4hX6OU7P/8dnmvVW+73hKLnvOJ+Ec9iFOzf/DL4cOkZJTdMV7UnOL+HTdCdAY0bvvAeCedvdUev1dPUKIaOqBuaAVSokXj/a13ajddYuep34NGwhu9XOf8nqb3OXl5VnbVgDExcURGxvLuXPnAJg+fTqzZ8/mm2++4ciRIzz66KPk5+dbq2eFEEKIG0VRiZk/T+9E5xiPzukc+83vsvn08Srdu2DnOfTOx9DaZaNzSMa+6RfM3Lzxivd88Psx8opNNA89RrElnxDXEG4NurXS67VaDe+N6YSrg54B7XzpHupVnY9XfxgLLvW26/HAla+1oXo7Lbtnzx6ioqKs30+fPh2AyZMnM3/+fCZMmEBaWhqvvfYaycnJhIeHs3r16nJFFkIIIURjt/5oKkb7Y5SW/WntM5i+5SF+bDKP5u7NK72vqMTM0ph49J7H1PvQgl0Ov6a9wuBzbkQ2vaXcPTHnMvk5Jh5QcGyyA/JhQpsJaDVXHi9q6+/G7pcHVLknXb108CcoygbPUAgbcNXLbaXe/g737dvXWsl6+a/SbbAAnnjiCc6ePUtxcTE7d+4stym9EEIIcSNYEZuA3ukkAONaPIC52IdiMrh31WSOXqi8i8Sv+5PIKTJi73oCgI8iP0ZvbAnaYp7a8Di/nf6tzPUms4U3Vh4CoH94AefzT+Ggc2BU2Kgqxelgp0OnrX8FCFWiKLDrK/V19wdAW/0ee3Wl3iZ3QgghhLi67MISNhw/h9YxHoCHuk6go+ZFzEWBZBszmbp6KrGpsRXeu2DnWbQOSSi6XJz0TkSF9OXRNh9QktMJCyZe2PIC3x5Sm/WazBb+sSiW/fHZuBj0OPmo23cNazEMd8PVq2sbvPO7IPmAuiNF18rXF9YHktwJIYQQDdiag8mYDafQaCw0c2tGgEsAj/XpQsHZh1AKm5NbkstT65+iyFS2SOJocg4x57Kwd1GnZHsF9MJOZ8ekXi2xS78XY4a6hu6jPR+x4Mgi/rEolt8OJGGn0/Dm6BC2JmwAuPZ2Ig3N7tnq147jwKl+rxmU5E4IIYRowFbsS0DvrE7J3hRwEwCRrX1o6+tD3tn7cdX5klmcyZ9n/yxz38KdaoGil89pAG4LUpvxuhj03NWzGcWpw/E13wHA+7veY83ZVdjpNPzv7m6ksgmTYqKrb1faepXfaajRyUuFQ8vV1z2n2TSUqpDkTgghhGigUnOK2HYqA93F5K5XgLr2XKPR8FCfFqDYU3ihGwA/n/jZel+h0czSvQmgLSAPNbnrHdTben7yLaFoNXDq+K14maMABYfAH3limJHItl78ePxHACa2nVgXH9P2or8BSwkE94DAcFtHc1WS3AmrWbNm4erqislksh7Ly8vDzs6Ovn37lrl248aNaDQaTp06RWhoKDNnziz3vDfeeIPw8PAyx3Jycnj55Zdp27YtDg4O+Pv7M2DAAJYuXWrdsqxv3748/fTTZe779NNPMRgMLFq0qNJrhBDiRvPL/iTQ5aAzpKJBQ0//ntZzw7sEEujuQFZqOBq0RKdEcyb7DAC/7k8kt8iEn99ZFCy0dG9JgEuA9d5gTyeGdAwANJw9PhBzTgQajYVvT73Nx7s/Jq0wDW9HbwY0rb8VozXGbLrU265H/R+1A0nuxGWioqLIy8tjz5491mNbtmzB39+fnTt3UlR0ab3Ghg0baNq0KS1bVr0RZVZWFrfccgvffvstL774IjExMWzevJkJEybw/PPPk52dXeF9r7/+Oi+99BIrVqzgrrtukLUdQghRBStiE9BdrJJt36R9mcIGO52Wqbc1RzG5Y8prA8Dkn/7L04v28vkG9Z7gIHVqtnRK9nIP9FZbqNjr9Mzs/z5RIVEYLUYWHF0AwLjW47DT2dXeh6svjq2CnARw8oYOo2wdTZXU2z53ou61adOGgIAANm7cyE03qes2Nm7cyMiRI1m/fj07duywjuBt3LixTB/CqnjppZc4c+YMx48fJzDwUlfv1q1bM3HiRBwcHMpcrygKTz31FN9//z1//vknt9xSvt+SEELcqE6n5bE/PhvHwFPApfV2l7urZ1O+23GWhMzuOLocIZ1tLI/tA+jRaxXSTPsAuC24fHIX0dSTeff3wNvZQKdgdyLbfMTjax9nZ/JO9Bo9d7a+s1Y/X71RWkjRbTLoDVe+tp6Q5K4OKIpCoanQJu/tqHes1ubRUVFRbNiwgRdeeAFQR+ief/55zGYzGzZsoG/fvhQWFrJz506mTp1a5edaLBYWLVrE3XffXSaxK+Xi4lLme5PJxD333MP69evZtGkTnTt3rvJ7CSHEjWDlvkRAwdHtNCVcWm93OReDnnXTI4nP6sY9f/xGNhe4s08OzqYIgvwy+M/RCzjqHYnwjajwPaLa+FpfG3QGPu33KR/t/oi2Xm3xdfKt8J4GIS8NNrwD/p0h4j6oaARSUdRRu7jN6j6y3RrODliS3NWBQlMhvRbYpsHyzkk7cbJzqvL1UVFRPP3005hMJgoLC9m7dy+RkZGUlJQwa9YsALZv305xcXGZkbt//etfvPLKK2WeZTQaad++PQDp6elkZmbStm3Vqqpmz1b/pbRv374q3yOEEDeKErOFFbGJaO3TKNFkYq+1p6tv1wqv1eu0hDZx4842Y/j6wNfk2v/FR0Pv5av9akPeXgG9sNfZV+l9ne2ceeOWN2rqY9iGxQw/3Q9ntqjfb/8M+r0K7UeB9uJqtcRY+PM1iNukft9+JHiEXPGxiqKAoqDR2n7Fm+0jEPVK3759yc/PZ/fu3WzZsoXWrVvj4+NDZGSkdd3dxo0badGiBU2bNrXe99xzz1n3Ai799cgjj1jPlxZLVNVtt92Gi4sLr776apkCDyGEuNGVmC08uWAvcen5OLqpla5d/brioHe44n1jwsYAsC1hG4l5iWxN2AqUrZJtFHKT1SKIymz6UE3s7JzB2QcunFaTvdlRaruTn6fBV5FqYqezh5ufgOH/qfRxisVC7tq1nBl3J9krV9b857kGMnJXBxz1juyctNNm710dYWFhBAcHs2HDBjIzM4mMjAQgMDCQkJAQtm3bxoYNG+jXr1+Z+7y9vQkLCytzzMvrUpNHHx8fPDw8OHq08m1wLtepUyc++eQTBgwYwIQJE1i8eDF6vfx1FULYVmJeMrnF+bRpUvVisppkNFl4cmEMaw6lYK/XEt46jf2ZFa+3+7sQtxB6+fdiZ/JOvj38LfvSLq63q6CYosGK3wNfDwC/jjBxYfnRttMbYdMH6uvhM6HNUNj+OWz7DyTFwo+TL13baTz0ewU8m1X4VorZTM7q1WTM+pLiE+r2bZnffofHqFE1/amqTUbu6oBGo8HJzskmv6qz3q5UVFQUGzduZOPGjWVaoPTp04fff/+dXbt2VbuYQqvVctddd/HDDz+QmJhY7nxeXl65Ebrw8HDWrVvH5s2bGT9+PCUlJdX+LEIIUZOG/3gv41beybG083X+3kaThccXXErsZt0TTlzefqBqyR3AmFbq6N2CIwuwKBZauLcg0KX8OugGa/8SQIGUA+pI3LnLBlZyU9RRORR1nV3n8WBwgb7/gqdiodcjoDNA80h4aBOMnV1hYqeYzWQtXcbpocNIfOZZik+cQOviQpOHHybk69l19UmvSJI7UU5UVBRbt24lNjbWOnIHEBkZyZdffonRaKx2cgfw7rvvEhISQq9evfj22285fPgwJ06cYO7cuXTt2pW8vLxy93Tp0oX169ezdevWcgleWlpauanglJSUa/vQQghxFUdSUjBqk0Fbwrexf179hmtUYraQkFVIfrHJuqTFaLLw2A8x/HlYTexm39cdnybp5Jbk4mrvSjuvdlV6dv9m/XE3uKOgPrdRjdopChz/XX3t7AP5afDNHRC7UF1nt/RByE8F3w4w5MOy97r4wJAP4OUkmLyy0kbFpgsXOD/tIZJeegnj2bPo3N3x+cdThK1fh+8/n0bvVT+2JZN5LlFOVFQUhYWFtG3bFj8/P+vxyMhIcnNzrS1TqsvLy4sdO3bwf//3f7zzzjucPXsWT09POnXqxEcffYS7e8UbT3fq1In169fTv39/7rzzTpYsWQLAggULWLBgQZlr33777XKFHUIIURP+OH7I+npbwi6g6h0DqiouPZ+7Z+8gMVvtK2qv1+LpZIdOoyExuwjDxcSuT2sfZu9fDkBP/57otLoqPd+gMzC8xXC+P/I90MiSu9QjkHVOHX17dDv89k848gssfwT2zIH43eo6uzvng10lS5au8PtYEBNDwj+nY0pJQePoiM/jj+E5cSJaZ+fa+TzXQaNUd6W7ANSdFtzd3cnOzsbNza3MuaKiIuLi4mjevHm53m1CVEb+3ghRv9294Ev2l3wGgFLiwfZ71uPqUHNNfBOzCrlz1nYSsgrRaNSBqMsZ9Fq+ntyd3q18AHhwzYPsTN7Jy71e5q62VW/wfjLzJGNWjsHV3pUN4zdUuVK23tvyCax7C1rdDnf/CBYLbHwfNl82Sjf6K+gyoVqPVRSFC/O/IfWTT8Bkwr5FC4I/nYmhVasa/gBXdqW84+9k5E4IIYS4CkVROJYRBxd/pmrsslhx8AD3dK+4P1x1ZeQVc8+cnSRkFdLC25klj9yMo52OzAIjWQUlXMg30sbfFV9XA7uTd/Pj8R/ZnbIbqPp6u1JhnmHMGTQHV3vXxpPYARxbrX5tPVj9qtVCv5fBpw2sflFN6qqZ2BWfjiN1xifkrV0HgNuwYQS89Wa9HK27nCR3QgghxFXEZxaSZ0nm8nG6Fce2XHNyV2Iu4a/Ev/g97nfstU7E7O3N6bRCAt0d+O7BXni7qDshOBv0BHtCdnE2K0/9yI/HfyQuO876nGEthtHMreJqzivp4d/jmuKut/LS1GlXuJTcleo0DjqOhSoWGFqMRnL/+JOsxYsp2K0+U2Nnh99LL+Jx113XVKhY1yS5E0IIIa5i+6kMNHYXAPBxCCCtKImjmXsxmizY66tWm6goCvvT9/PrqV9ZfWY1WcVZ1nMlHMHLeQrfP9iLII+y68EOZRzisbWPcaFIfX9HvSPDWgzjztZ30r5J+5r5gA3diT8ARd1xwj2o/PkqJGSKyUTap/8h68cfMWdlqQe1Wlz69MH7iSdw7NihRkOuTZLcCSGEEFex43QGWvsMAMa3Gcvn+z7D4nCKbafS6dvm6ttwWRQLT6x7gi0JW6zHvByaoCloTzrbsHM7xE1t1hHqfXuZ+3Yn7+bJ9U+SX5JPqFso97a/l6HNh+Ji7/L3t7ixlVbJthlyzY/IXLiIjIu7I+n9/fEYNw6PsWOwu4YCQluTVihCCCHEFSiKwrbTSWjtcgAYGTYCDTq0dlksP3igSs/YmbSTLQlbsNPacUeLO3j35k9xTH6DM8eGYU65By06tiSt5v92/Z+1/cmm85t4dO2j5Jfk092vOwuHLWR8m/GS2P2dqRhObVBf/31KthpyVq0CoMkjDxO29k98nni8QSZ2ICN3QgghxBWdu1BAamESzoCLnQv+zv6EurQlLu8Qm8/twGLph1Z75Wm/JcfUFk5jWo3hjqAnmPbtHtJyC/F2sefLiQ+QaGrDy1tfZuHRhbjYudDCowWvbH0Fs2Kmb3BfPor86Krbi92wzmwFYx64+EFA+DU9oiQpicK9e0GjwXPiJDQNfEekhh29EEIIUcu2n8pAc3FKtqlbUzQaDVHNbibu0CEKtMfYez6Lbs08K70/JT+FDefVkSU/+jHhy+0Umyy08XNlzpTuBHs60Y3hFJoKeXvH28w+cGmXgzta3MFbt76FnbbmWq40OsdLq2QHqRWy1yBnzRoAnLp1w87v6tPs9Z1MywohhBBXcPl6uxBXda/SmwJ7AqBzPs2ag0lXvH/piaWYFTPe+ra8uzyTYpOFfm19+fmxWwj2dLJeN77NeP7Z7Z/W7ye2nci7t70rid2VKMplLVCufb1d7u/qM1yHXPu0bn0iI3dCCCFEJRRFYfvpDLSOZZO7Lj5d0Gn0YJfN70cP8eLQduVaZJy/UMCKfef5+swC0ML5s+EAPHhbc14c2g5dBVO5UztOxd/JH7Ni5o4WdzSIths2lXoYss+B3gFa9L2mR5QkJFC4bx9oNLjdfvvVb2gAJLkTDcKcOXNYvHgxf/zxh61DuSYvvPAC+fn5/Pe//7V1KEKIajiTUUBKTjHOHmobkqauTQFwsnOiQ5OO7E+PJcl4iBOpg2nt5wrAztMZzFx7gu2nM9C7HsQxOAvF5MxtgVFMGtmC2zv4X/E9h7YYWrsfqjE5drFKtnkk2Dtd+dpK5KxRf6449eiB3senpiKzKZmWFWWkpaXx6KOP0rRpUwwGA/7+/gwaNIi//vqrzHXbt29Hp9MxbNiwcs84c+YMGo3G+sve3p6wsDDeeecdKtrtLj4+Hnt7ezp27FhhTEVFRbz66qu8/vrr1mOHDh1i7NixhIaGotFomDlzZoX3fv7554SGhuLg4ECvXr3YtWvXVX8PsrKyePzxxwkICMBgMNC6dWtWXayiupqTJ0/i6uqKh4dHmePPPvss33zzDadPn67Sc4QQdevxX2dw+/ePcCG/oMzx7afUETuDYyYAwa7B1nO9AtRGwHqn06w5mEzs+SzunbOTCV/tUEf7NOATGAPAPR3GMX/KLVdN7EQFclNg12z4YTwsfRj2zFX3kbVYLq23a3MdVbKr1We4NZIpWZCRO/E3Y8eOxWg08s0339CiRQtSUlJYt24dGRkZZa6bM2cOTz75JHPmzCExMZHAwMByz1q7di0dOnSguLiYrVu38uCDDxIQEMADDzxQ5rr58+czfvx4Nm/ezM6dO+nVq1eZ8z/99BNubm7ceuut1mMFBQW0aNGCO++8k3/+859UZPHixUyfPp1Zs2bRq1cvZs6cyaBBgzh27Bi+vhUvmDUajQwcOBBfX19++ukngoKCOHv2bLlkrSIlJSVMnDiR3r17s23btjLnvL29GTRoEP/73//46KOPrvosIUTdScjKZ1Pa92i0JUxeuIAfJ9+Pg526gfyO0xmAGZNWHbkrnZYF6BnQk9kHZqNzPs0XG0/yyZ/HAdBrNUzoEcKoHgamrjuMBg33dKj63q8CyEuFwyvg0HI4+xdw2cDA/kXqVwcPKMpWX19jCxRjfDxF+/eDVovrwIHXE3G9IsmdsMrKymLLli1s3LiRyMhIAJo1a0bPnj3LXJeXl8fixYvZs2cPycnJzJ8/n5deeqnc85o0aYK/v7/1OfPmzSMmJqZMcqcoCvPmzeOLL74gODiYOXPmlEvuFi1axPDhw8sc69GjBz16qP9qfuGFFyr8PDNmzGDatGncf//9AMyaNYvffvuNuXPnVnrP3LlzuXDhAtu2bcPOTl3EHBoaWuG1f/fKK6/Qtm1b+vfvXy65Axg+fDgvv/yyJHdC1DNfb4tGoy0B4FjWAZ5eFMvnd0eg1cD20xlo7LJQMGPQGfB1uvQPwy4+XdBr9JjssikgDa2mCWMigvlH/1aEeDnxyZ5PALg16NYyI37iKs7thO9GQcllo6hB3aHdcDDmw7ntEL8HirIunusGbuUHGKoi9+KonVOPHui9va8v7npEkrs6oCgKSmGhTd5b4+hY5QW5Li4uuLi4sHz5cm666SYMBkOF1y1ZsoS2bdvSpk0b7rnnHp5++mlefPHFK77Pnj17iI6O5r777itzfMOGDRQUFDBgwACCgoK45ZZb+Pe//43zZZsyb926lXvvvbdKn6GU0WgkOjqaF1980XpMq9UyYMAAtm/fXul9K1eu5Oabb+bxxx9nxYoV+Pj4MGnSJP71r3+h0+kqvW/9+vX8+OOPxMbGsnTp0gqv6dmzJ/Hx8Zw5c6bKCaMQonYZTRZWHNkHF3+u2zmfY/WhZF5edoAHe7cgLbcYg9vFKVmXYLSaS6uZHPWOdPbpTExqDL07ZfN61Bha+qgNhovNxSw/uRyACW2qt1n9Da3gAvw0VU3sfDtA+ERoPxI8mpa9zlwCyfsh+YC63u4a5fze+KZkQZK7OqEUFnIsoptN3rtNTDQap6otMtXr9cyfP59p06Yxa9YsIiIiiIyM5K677qJz587W6+bMmcM999wDwODBg8nOzmbTpk307du3zPNuueUWtFotRqORkpISHnrooXLJ3Zw5c7jrrrvQ6XR07NiRFi1a8OOPPzJlyhRAHU3Mzs6ucNr3StLT0zGbzfj5+ZU57ufnx9GjRyu97/Tp06xfv567776bVatWcfLkSR577DFKSkrKrPm7XEZGBlOmTOH777/Hzc2t0meXfoazZ89KcidEPbHmUDK55gRK2wM7uMRTqDGzaPd5Ys9nAdDMt5AkIMQtpNz93f27E5MaQ1BAojWxA/jjzB9kFWfh7+xP76Detf9B6tLRVepIWWB4zT5XUWDlk5ATD14t4IE1YHCt+FqdnTpiF3TtP1uN585RdOhQo5uSBSmoEH8zduxYEhMTWblyJYMHD2bjxo1EREQwf/58AI4dO8auXbuYOHEioCaEEyZMYM6cOeWetXjxYmJjY9m3bx9LlixhxYoVZaZDs7KyWLp0qTVRBLjnnnvKPKvw4oing0PddGa3WCz4+vry1Vdf0a1bNyZMmMDLL7/MrFmzKr1n2rRpTJo0iT59+lzx2Y6O6mbgBQUFV7xOCFF3vttxFq19qvV7o6WIJwarMwdHk3MBaOKpbjt2+Xq7Uj381eUhfyX8xbs73uX5Tc/z0B8P8fGejwEY12ocOm3lo/4NTvJBWDQR5g6GxNiaffaur+Dor6Czh3HzKk/sakjO6ouNi3v1RN+kSa2+V12Tkbs6oHF0pE1MtM3eu7ocHBwYOHAgAwcO5NVXX+XBBx/k9ddfZ8qUKcyZMweTyVRmJE1RFAwGA5999hnu7u7W4yEhIYSFhQHQrl07Tp06xauvvsobb7yBg4MDCxYsoKioqMwaO0VRsFgsHD9+nNatW9OkSRM0Gg2ZmZnV+gze3t7odDpSUlLKHE9JSbGuA6xIQEAAdnZ2ZaZg27VrR3JyMkajEXt7+3L3rF+/npUrV/Lxxx+X+Qx6vZ6vvvqKqVOnAnDhgrog26eRlNoL0dAdTc5hV9wFnJqlAaDX6jFZTPj6JPH84Jv4cPUx9bghE/IqTu66+HTBXmtPZnEmi44tKnPOSe/E2NZja/+D1KVT69SvpkJYNAke2gguNbCjQ2Is/PGK+nrg2zU/KliBnNVqGxW3wdfe/Li+kuSuDmg0mipPjdZH7du3Z/ny5ZhMJr799ls++eQTbv9bo8dRo0axcOFCHnnkkUqfo9PpMJlMGI1GHBwcmDNnDs8884x1CrbUY489xty5c/m///s/7O3tad++PYcPHy73nldib29Pt27dWLduHaNGjQLUUbl169bxxBNPVHrfrbfeyoIFC7BYLGgvbmNz/PhxAgICKkzsQG0LYzabrd+vWLGCDz74gG3bthEUFGQ9fvDgQezs7OjQoUOVP4cQovZ8v+MsAAandExAv5B+/HH2D/am7uXjyLtxtNORkFnIHpO6A0Vpj7vLOeod+b8+/8fOpJ24G9zxMHjgYfDA3eBOa8/WeDs2nkX6AJzepH7V6CAnARbfC5NXgr7iNdpVUpwLP90PZiO0GQa9Hq6ZWK/AePYsxYePgE6H68ABtf5+dU2SO2GVkZHBnXfeydSpU+ncuTOurq7s2bOHDz/8kJEjR/Lrr7+SmZnJAw88UGaEDtTp3Dlz5pRJ7jIyMkhOTsZkMnHgwAE+/fRToqKicHNzIzY2lpiYGH744Qfatm1b5lkTJ07krbfe4p133kGv1zNo0CC2bt3K008/bb3GaDRy+PBh6+uEhARiY2NxcXGxjhZOnz6dyZMn0717d3r27MnMmTPJz8+3Vs9W5NFHH+Wzzz7jH//4B08++SQnTpzgvffe46mnnqr0nnbt2pX5fs+ePWi12nJ9+7Zs2ULv3r2t07NCCNvJLSphWUwCGl0eJvLQoGFU2Cj+OPsHsamxANx/a3MURaHnDwlAxSN3AAObDWRgs8a1ZqtCJqNaqQowbi6sfArO74BVz8Lw/8C17KahKPDrdLhwGtyCYeRn1/acasr+9VcAnHv1Qu/lVevvV+cUcU2ys7MVQMnOzi53rrCwUDl8+LBSWFhog8iuXVFRkfLCCy8oERERiru7u+Lk5KS0adNGeeWVV5SCggLljjvuUIYOHVrhvTt37lQAZd++fUpcXJyC2pRIARSdTqcEBwcr06ZNU1JTUxVFUZQnnnhCad++fYXPSkpKUrRarbJixQpFURTl0KFDiqOjo5KVlWW95u/vUforMjKyzLP++9//Kk2bNlXs7e2Vnj17Kjt27ChzfvLkyeXu2bZtm9KrVy/FYDAoLVq0UN59913FZDJZz8+bN0+50n868+bNU9zd3csdb9OmjbJw4cJK72uof2+EaIi+2RanNPvXr8ptM2crHed3VAb9NEgpKClQwr8JVzrO76jE58YriqIoKfkpSsf5HZUu33RRjGajjaO2sTN/KcrrboryQQtFMZsV5fgfivK6u3psx5fX9swDP6n3v+GpKGe312i4lbFYLMqJgbcrh9u0VbKWL6+T96wJV8o7/k5G7oSVwWDg/fff5/3336/w/C+//FLpvT179iyz+4RSwU4Ul7vSNlz+/v5lpjnbt2/PsGHD+OKLL6ytTUJDQ6/6HgBPPPHEFadh4+LiiIqKKnPs5ptvZseOHVe8p7QPYEWmTJlSbqr5999/R6vVMm7cuKvGLISoXYqi8O12dUq2e6sS1qZBc/fmOOodad+kPfvT9xOTEkOQSxDncs4BEOAcgJ3WzpZh217cZvVr8z6g1UKrgTDwTfjzNVj9gtqupPWgqo+8FVyAVc+rr/s8B01vqp24/6Zwbywl586hcXLCdUDjm5IFqZYVDcRHH32Ei4vL1S+shuzsbE6dOsWzzz5brft+//13Pvzww2rdk5+fz7x589Dr5d9TQtjajtMXOJmah5O9Di/PLEBN7gDCfcMBrFOz53PPA5VPyd5QStfbNb+sM8AtT0HnCaCYYeEE+LK3ulVYYRWK4Na8BAXp4NMOej9TOzFXIHv5cgDcBg5Ee1lP1cZEkjvRIISGhvLkk0/W6DPd3d2Jj4+vdtK4a9eucrt2XM24cePK7bwhhKh7qTlF/Hutuk3YqK5BJOSpI3gt3FsA0NW3KwB70/YCl5K7pm7liyluKMZ8iN+tvm5x2cyFRqOut+t6j9rCJPmAugbvk7bw8zRI2lfx806uhX0LAQ2M+C/oKy5Yq2mW4mJyflerZN1Hj6qT97QFSe6EEEI0ejlFJXy85hiRH21kV9wF7HQaJt8cyuns08Cl5K505O5k5klyjDkyclfq3HawlIB7CHg2L3vOzgFGfg7PHIPBH6g7S5iK4MASmN0fdsxSCydKFefBLxf3BO/1MIT0qLOPkbdhA5bcXPQBAThV8x/pDYnMEQkhhGi0ik1mvt9xjs/WnyCzQN0/NqKpBy8Pa0dIEx1J+Wqbk9JpWW9Hb0JcQzife579afutyd0Nvzesdb1dZOVr6py84KZH1IQtMQa2zFCbEq/+l5ocjvgvOLjBhnch+xy4N4V+r9bdZwCyl68AwH34cDTaxju+JcldLarKgn8hSsnfFyFqTl6xiUW7zvH1ljiSc4oAaOnjzPOD23J7ez80Gg2HM9R2Sp4GTzwdPK33dvXtyvnc88SkxFyalq2gx90NpaL1dpXRaNRtwSZ8Dzu/hD9ehsPL1Snb3tNhx//U64b/Gww1u5YaoCQxEb2PDxq7sgUwpvR08rZsAcB91Mgaf9/6RJK7WlC6u4HRaJSeZqLKSrcls7O7wSvyhLgOGXnFzN92hm+2nSGnyASAn5uBfw5ozbhuweh1l0ZrSqdkS0ftSoX7hrPy1Eo2x28mx6huPXZDj9wVXLi0dq4qyV0pjUYdyQvqBj9OgQunYMXj6rnOd0FY1StVC/fvJ/H5f6Hz8sJ1wABcBw7APuTSVHlJSio5v/5K9ooVFB8/jmOXLoR8PRud66UtzHJ++w3MZhw6d8bQokXVP0cDJMldLdDr9Tg5OZGWloadnZ11pwMhKqIoCgUFBaSmpuLh4VFm6zMhRMVyikqIPptJcnYRSdlFJGcXkpRdxO4zFygqsQDQwtuZhyNbMKprEAZ9+f+uTmddXG/nUfYHfYRvBADHMtXtx3wcfXDU38D/UD/7F6CAd2twC6j+/SE94OHNsHSaun2ZkzcMrrjlVkXyd+0i/pFHsRQUwJkzFMbEkPrhhxjatMGlTx+KDh8mf/t2sFis9xTu28f5aQ+pCd7FormsFRenZEeOqP5naGAkuasFGo2GgIAA4uLiOHv2rK3DEQ2Eh4fHFfe9FUKA2aKwePd5Plpz1LqG7u86B7vzWN+WDGzvj05bec+1uOw4AJq7lR25a+7eHDd7N+uo3Q1RTKEosG8ROHur/esuZ52Srby/51U5N4G7f4Jjq8Cvvbo+rwryNm8m/smnUIqLcbrpJlz79yd37VoK9uyh+Ngxio8ds17r2LUr7iNHYt+8OfFPPUVhbKya4M2eTUlCgrrdmJ0dbkOHXvvnaCBu6OQuNDQUNzc3tFotnp6ebNiwocaebW9vT6tWrTAajTX2TNF42dnZyYidEFex91wmr688xP74bACCPBxp4++Kv7sDAW4O+Ls7EObrQniIB5oqNNItTe7+PnKn1WgJ9w1nc7xaRHBDJHenN8DyRwANjJkNne+8dO7y5sXXQ6uFdndU+fKcNX+Q8OyzUFKCS2QkQf/5FK3BgNe992DKzCRv4yYKdmzHLjgE9xHDsW/WzHpv07lzOHf/VAr37uX8Qw9haNMaANe+keg9PSt7y0bjhk7uALZt21bjzXFLabVaHBwcauXZQghxo0jLLeajNUdZsiceAFeDnum3t+bem5qVWUNXHSaLibO5ZXvcXa6rb9cbJ7lTFNj4Qek3sOxhsHeCtsMgJwnSjwEaCL2tzkLKWr6cpJdeBosF1yGDCfrgAzT2l3rh6T098Rg9Co9KetU5duhA07lzOTd1KoUxMRTGxADgPrJxF1KUuuGTOyGEEPXT2Yx8Zm85zY974ik2qeupxnUL5l+D2+LjariuZ5/PPY/JYsJR74i/c/nlEOE+4dbXjb6BcdxmOL8DdAZofTsc+UUtgJi0GPLT1WsCOld5KvV6FZ84QdKLL4Gi4D5mDAFvv4XmGmY2HDt2oOmcrzk39QEsubno3N1x6XOdo48NRL1d6b9582aGDx9OYGAgGo2G5Re3C7nc559/TmhoKA4ODvTq1Ytdu3ZV6z00Gg2RkZH06NGDH374oYYiF0IIcT0OxGfz+IIYoj7eyPc7zlFsshAe4sHPj97Cx3d2ue7EDi5Vyoa6haLVlP9R2NG7I3qtOv7R6NugbLo4atdtMoybD+1GgNkIi+6GXV+p565nvV015e/aBYqCU/fuBLzz9jUldqUcO3Wi6ZyvMbRrh/dTT5YZ/WvM6u3IXX5+Pl26dGHq1KmMGTOm3PnFixczffp0Zs2aRa9evZg5cyaDBg3i2LFj+Pr6AhAeHo7JZCp37x9//EFgYCBbt24lKCiIpKQkBgwYQKdOnejcuXOtfzYhhBBlmS0K646kMO+vM2w/nWE93reND49EtqRXc68qraOrKmsxxd/aoJRy0DvwfI/nOZN9hnZN2tXY+9Y7cVvUalidPdz6NOj0MHYOLJqobhFWuuVYHSZ3xUePAuDYvVuNNBp27NyZFsuWXvdzGpJ6m9wNGTKEIUOGVHp+xowZTJs2jfvvvx+AWbNm8dtvvzF37lxeeOEFAGJjY6/4HkFBQQAEBAQwdOhQYmJiKk3uiouLKS4utn6fk5NTnY8jhBCiArlFJSzZE883285w7oLa61Gn1TCiSyAP9WlBuwC3WnlfazFFBevtSk1sO7FW3rteKR2163ovuKs/E9Hbw/jv4IdxauKn1UOzm+sspKIjanLn0LYRJ9W1rN4md1diNBqJjo7mxRdftB7TarUMGDCA7du3V+kZ+fn5WCwWXF1dycvLY/369YwfP77S699//33efPPN645dCCFudIqicDAhhyV7zrNsbwJ5xeoMi7ujHRN7NuW+m5sR6FG7feUq63F3Qzm7Dc5sAa0d3PbPsufsndQ1d7//C/w6gL1znYSkmEwUHz8OgEO7tnXyno1Rg0zu0tPTMZvN+Pn5lTnu5+fH0YvDuVeTkpLC6NGjATCbzUybNo0ePSrfvPjFF19k+vTp1u9zcnIICWnkFVRCCFGDMvONLI9NYPHu8xxNzrUeb+njzNTbmjO6axBO9rX/Y0lRFOJyKu5xd0OxjtrdAx4V/DwzuMKoL+o0JGNcHIrRiNbJCTv5GXvNGmRyVxNatGjBvn37qny9wWDAYLj+RbxCCHEjKSoxs+5IKiv3JbDhaBpGs1r1aq/XMqiDP+O7B3NrS2+0V2g2XNNSC1LJL8lHp9HRzK3Z1W9ojM7thNMb1SnXv4/a2VDRxQEaQ9u2NbLe7kbVIJM7b29vdDodKSkpZY6npKRIh38hhLCxErOFrSfSWbkvkT8OJZNvNFvPdQxyY3z3EEZ0CcTDyTaVi6WVsiGuIdjpbtC9nDf9n/o1fBJ41p8E99J6O5mSvR4NMrmzt7enW7durFu3jlGjRgFgsVhYt24dTzzxhG2DE0KIG5CiKBxKzOHnmHhWxiaSkX9pd54gD0eGdwlkRJdA2gfWToFEdZQmd5VVyjZ6CdFwar06atf7GVtHU0bx0SMAGGS93XWpt8ldXl4eJ0+etH4fFxdHbGwsXl5eNG3alOnTpzN58mS6d+9Oz549mTlzJvn5+dbqWSGEELUvJaeIpTEJLNsbz/GUPOtxbxd7hnUKYER4IBFNPWu0jcn1uloblEZv60z1a6c7wTPUlpGUoSiKVMrWkHqb3O3Zs4eoqCjr96XFDJMnT2b+/PlMmDCBtLQ0XnvtNZKTkwkPD2f16tXliiyEEELULKPJwvqjKSzefZ5Nx9OwKOpxg17LwPZ+jI0Ipncr72veGqy2VaUNSqOVfkLdgQLg1n/YNpa/MaWmYs7MBJ0OQ6swW4fToNXb5K5v374oinLFa5544gmZhhVCiDpyLDnX2r7kwmXTrj1CPRnXLZghnQJwc6jfa9hyjDkcTD8IQJjHDZhA/PUpoECboeBbv0bHio5cnJJt0Ryt7Mt+XeptcieEEML2sgtKWLkvgR+j49kfn2097utqYGy3YO7sFkwLHxcbRlg9i48upsBUQJhHWOPeeaIiOYmwb5H6uh5VyJYqtlbK3mB/LrVAkjshhBBlmMwWtpxM5+foeP44nILRpLYv0Ws19G/ny/juIUS29qm3066VKTQV8t3h7wB4oNMDFe4p26ht/xwsJdDsVgjpaetoypFK2ZojyZ0QQghrteuyvQmsiE0kPe/Sdott/V25s3sIo8IDaeLScPt9Lj2xlMziTIJcghgcOtjW4dStwkyInq++roejdgBFFytlZWeK6yfJnRBC3MCSsgtZEZvIspgEjqVc2jXCy9me4Z0DuLN7CB0C3epVteu1KDGXMP/QfACmdpyKXnuD/fjb/TUY88CvI4QNsHU05Zjz8ik5ew5QGxiL63OD/e0WQgiRV2xi9cFklu2NZ9upDEpr1+z1Wga282N01yAi2/hg18CmXa/kt7jfSM5PxtvRm5FhI20dTt0yFsCOWerrW5+GepioFx8/BoDezw+9l5eNo2n4JLkTQogbgNmisO2Uuo5uzaEUCksu7RrRM9SL0RFBDO0UgLtj/a52vZL159YTmxrL/R3vx9PB03rcbDEz58AcAO5rfx8GXcOdWr4msT9AQTp4NIUOo20dTYVKK2VlvV3NkOROCCEasRMpufwck8DyvQkk5xRZj7fwdmZ01yBGdQ0ixMvJhhHWjJOZJ3lm0zOYLCZ+Pf0r7/d+n14BvQBYf349Z3LO4Grvyvg2420caR0zm2Dbf9TXtzwFuvr5Y99aKSvr7WpE/fxTFkIIcc3ScotZuS+R5XsTOJBwqX2Ju6MdI7oEMiYiiPAQjwa/jq6UyWLi1b9exWQxodfoSStMY9of03ig0wM8Fv4Ys/fPBmBS20k42znbONo6dvAnyDoHTt7Q9R5bR1Mpa6Vsu/Y2jqRxkOROCCEagaISM2sOJbNsbwJbTqRjvrhthF6rIaqtL2Mjgohq64tBr7NxpDXv+8PfczDjIK52riy8YyHzDs7j5xM/8/WBr/nz7J+czTmLo96Ru9vdbetQ65bFAltmqK9vfhzsHG0ajikzk8Tn/4Vjly74PPG49bhiMlF8/DgglbI1RZI7IYRooBRFYc/ZTH7aE8+qA0nkFpus57qEeDA2Iog7Ogfi5Wxvwyhr15nsM3wW+xkAz/V4jmZuzXjjlje4OfBm3tz2JmdzzgIwttXYMuvwbghHf4X0Y2Bwhx4P2DoaUj/4kPwtW8jfsgW9rw+e49UpcmNcHIrRiNbZGbvgYBtH2ThIcieEEA3M+QsFLI1JYOneeM5mFFiPB3k4MiZCXUfXsgHtGnGtLIqF17e9TrG5mJsDbmZU2CjruUGhg+jk3YnXtr1GSn4K93e833aB2oKiwJaP1de9HgIHd5uGk799O9nLl1u/T377HQxhrXCK6EqRdWeKtmi0jadC25YkuRNCiAYgt6iE3w8k81NMPLviLliPO9vrGNopgLHdgukZ6oVW2zjW0VXFoqOLiEmNwUnvxBu3vFFuDWGgSyBf3/61jaKzsVPrIGkf2DlBr0dtGoqlqIik198AwHPSREwZF8hds4b4fzxF859+kp0pakG1kjuTycR7773H1KlTCZahUyGEqFUlZgtbT6azfG8Caw4lU1SibgOm0cAtLZswrlswgzr442R/4/07PT43npkxMwH4Z7d/EugSaNuA6pvNn6hfu90Pzk1sGkr6519Qcu4cej8/fKZPR6PRcOb0aYpPnCD+yafQ2Kvtd2S9Xc2p1v8R9Ho9H330Effdd19txSOEEDc0i0Uh+lwmK2IT+G1/EpkFJdZzLX2cGdstmFHhQQR62HZxvK19uPtDCk2FdPPrduO1N7mas9vg3DbQ2cMtT9g0lKJjx8iYOxcA/9deReeiLhcI/vwz4u4cT9H+/dZrDW3b2STGxqja/9zr168fmzZtIjQ0tBbCEUKIG9PJ1DyWxsSzIjaRhKxC63FvF3uGdQpgdEQwXYLdG037kuuRa8xlS/wWAF7u9TJajazTKmPLxVG78EngZrsRTcVsJumVV8FsxvX223Ht3996zr5pU4I++YTzDz2kVvXqdBhahdks1sam2sndkCFDeOGFFzhw4ADdunXD2blsz6ARI0bUWHBCCNGYZeYb+WV/Ij/HJLDvfJb1uItBz6AO/owMD+SWlk3QN6JtwGrCX4l/YVJMNHdvTivPVrYOp35JjIWTa0GjhVv/YdNQMn9YQNGBA2hdXPB7+eVy511uuxXfZ54h9aOPcOjQAa3hBts5pBZVO7l77LHHAJgxY0a5cxqNBrPZXO64EEIIldFkYcOxVJbGxLP+aColZrUfnU6roW9rH8ZEBNO/nS8Odo2vH11N2XR+EwB9g/vaNpD6qHTUruM48GphszBKUlNJnTkTAN9nn8HOz7fC67ym3o+hdSvsmzevw+gav2ondxaLpTbiEEKIRktRFPbHZ7M0Jp6V+xLLrKNrH+DG2G7BjOgSiI+rjFxcjcliYkuCOiXbJ7iPjaOpZy7EwZFf1Ne9p9s0lIyvv0YpKMChS2c8xle+JlKj0eDSu3cdRnZjuPFKrIQQoo6cv1DAitgElu5N4HRavvW4j6uB0V2DGN01iHYBbjaMsOHZn7af7OJs3OzdCPcNt3U49UvMt4ACLfuBr+2KE0pSU8lavAQAn6eekt51NnBNyd2mTZv4+OOPOXLkCADt27fnueeeo7dk30KIG1x2YQmrDiSxbG9CmX50DnZaBnXwZ0xEMLfKOrprtjF+IwC3Bd2GXivjE1bmEoj9QX3dbYpNQ7kwZy5KcTGO4eE433KLTWO5UVX7v4zvv/+e+++/nzFjxvDUU08B8Ndff9G/f3/mz5/PpEmTajxIIYSoz4pKzGw4msry2AQ2HE3DaL7Uj+7mFk0Y3TWIwR39cXWws3GkDd/m85sB6BvS17aB1DfHV0NeCjj7QpuhNgvDlJ5O5uLFAHg//rhUd9tItZO7d999lw8//JB//vOf1mNPPfUUM2bM4O2335bkTghxQzBbFHbGZbBibyKrDiaRW3RpX9c2fq6M6hrEqK6BBLjf2P3oatL53POcyj6FTqPj1qBbbR1O/RI9X/0aPgl0tvtHRMacuShFRTh06YzzbfJnZCvVTu5Onz7N8OHDyx0fMWIEL730Uo0EJYQQ9ZGiKBxKzGFFbAK/7EsiOafIei7A3YER4YGMCpd1dLWltEo2wi8CN3v5PbbKOgcn16mvI2y3yYApI4PMRYsA8JFRO5uqdnIXEhLCunXrCAsr22xw7dq1hISE1FhgQghRX5QWRqyITeREap71uJuDnqGdAhgZHkSv5jfWvq62sCleTe4igyNtHEk9E/MdoEDzSGjSstbfrnD/fjT29uX2gr0wbx5KYSEOnTrhLGvwbarayd0zzzzDU089RWxsLLdcXCj5119/MX/+fD799NMaD1AIIWwhI6+Y3w4ksSI2keizmdbj9not/dv6MjI8iKi2Phj00o+uLuQZ89iTsgdoZMldfjpYzODqd233m02w9zv1dbfJNRdXJYxnz3Jm0t1gMuHcuzfejz2KU9eumDIzubBgIQDejz8mo3Y2Vu3k7tFHH8Xf359PPvmEJUvUUud27dqxePFiRo4cWeMBCiFEXSk0mvnzSArL9yaw+XgaJovaYLi0MGJUeBCDOvrj7iiFEXVtW+I2TBYToW6hhLqH2jqcmmEqhi/7qF+figEH9+o/4+SfkJsETk2g7R01H+PfFETHgEldX5q/ZQv5W7bgfMvN6Dw81b52HTrgEtmIku8GqlrJnclk4r333mPq1Kls3bq1tmISQog6Y7Yo7DidwbK9Caw+mExe8aXCiI5BbowKD2J4l0D83BxsGKVolFOycVsgJ0F9fXwNdK682W+lLi+k0Nd+E+yigwcBcBs2DI2DgewVK8nftt16Xkbt6odqJXd6vZ4PP/yQ++6z3YJNIYSoCafS8vg5Op5lexNIyr5UGBHk4cjoi5WuYb6uNoxQlDJbzGyJV3eliAxpRMndsVWXXh9eUf3kLjsBTvyhvo6o/SlZgMJDanLn0i8K92HD8H70UTK+mk3WsmU4de2KS1RUncQhrqza07L9+/dn06ZNhIaG1kI4QghRey7kG/ltfyI/xSSw73yW9bibg547ugQyumsQ3Zp6SmFEPXMg/QCZxZm42rs2nl0pFEXtTVfq5Dow5oO9c9Wfsfd7UCzQ7DbwblXzMf6NYjRSfOQoAI6dOgFgHxxMwFtv4vfSi2h0Ohm1qyeqndwNGTKEF154gQMHDtCtWzecncv+RRwxYkSNBSeEENcrr9jEn4eTWRmbyJYT6dZ1dDqthr6tfRjbLZh+bX1xsJPCiPpq4/mNANwWeBt22kay3jF5vzola+cETt6QfQ5O/AkdRlXt/sJMiPlGfV1HO1IUnzyJYjSidXPD7m/dMbQOsmyhPql2cvfYY48BMGPGjHLnNBoNZrP5+qMSQojrYDRZ2HQ8jRWxCaw9kkJRicV6rmOQG6O7BjOiSyA+rrW/RklcH4ti4c+zfwKNbUr2d/Vry37g1QK2/QeO/FK15K7gAnw3Sk0OXfyhXfnes7Wh8OJ6O8eOHWSErp6rdnJnsViufpEQQtQxi0Vhz9lMlscmsOpAElkFJdZzzb2dGdElkBHhgbT0cbFhlOJyRy8cZXfybu5qe1elI3I7knZwLvccLnYuRIU0ovVcpcld68Hg01ZN7o6vUStnr1QYkZ8O346ClAPqiN+9S8GubkbNig4eAsChQ8c6eT9x7aqV3JWUlODo6EhsbCwdO8ofrhDC9o6n5LJ8r9pgOCGr0Hrcx9XA8M6BjOoaSKcgdxlpqIfe3v42+9P3Y1EsTO5QcUHA4qPqPqUjWo7Ayc6pLsOrPdkJkBQLaKD1IDVJcw2E3EQ4tQHaDK74vrxU+HYkpB5W95Cd/Av4tq342lpQWinrID//671qJXd2dnY0bdpUpl6FEDaVnF3Eyn0JLN+byOGkHOtxF4OeQR38GdU1kFtaeqOTwoh6y2wxcyzzGADzDs5jQpsJOOjLjkAl5SWxMX4jABPaTKjrEGtPaSFFcA9w8VVftxsOu76EIysrTu5yk+Gb4ZB+HFwD1MSuDoooSlmKiyk6cQJQp2VF/VbtadmXX36Zl156ie+++w4vL6/aiEkIIcopKjHz5+EUfoyOZ8uJNBS1LgK9VkPfNj6M6hpE/7Z+ONpLYURDcC73HMXmYgAyijL4+cTP3N3u7jLX/Hj8RyyKhV7+vWjh0cIWYdaO0uSuzZBLx9qPUJO7o7+BuQR0l01TF2ZeSuzcgtTErg62Gbtc8fHjUFKCztMTfWBgnb63qL5qJ3efffYZJ0+eJDAwkGbNmpWrlo2Jiamx4IQQNzZFUTiYkMOP0edZEZtIduGldXTdm3kyqmsQwzoF4Olsb8MoxbU4kamOAmk1WiyKhbkH5jKu9TgMOnW9mdFs5OcTPwMwoW0jGrUrzoPTakPmMsld05vV6dmCdDizRS20AHVrsp8euJTYTfkNvJrXediXT8nKEof6r9rJ3ahRo2ohDCGEuORkah6/7Evkl/2JnE7Ltx4PcHdgXLdgxnULplmTavQDE/XOiSw1uRvafCi7k3eTUpDC8hPLrYnc2rNruVB0AV9HX/qG9LVhpDXs9AYwF4NnqFpIUUqrg7bD1PYmR365lNytfQNOrQO9I0xcZJPEDqDwwMVK2U6y3q4hqHZy9/rrr9dGHEKIG1xCViErYxNZuS+RI5etozPotQxs78f47iHcGibr6BqL4xeOA9ChSQc6eXfi/V3v8/XBrxnTagx2OjsWHVsEwLg24xpPbzuAY6VTskPVTYsv137ExeTuVxj6MRxcqlbRAoz6HAI6122sl5Fiioal2skdQFZWFj/99BOnTp3iueeew8vLi5iYGPz8/AgKCqrpGIUQjVR2YQm/H0hi2d4EdsZdsB7XazX0ae3D8C4BDGzvj4vhmv5XJeqx0pG7Vp6tCPcN5+sDX5Ocn8yKUyvo5N2Jval70Wv0jG011saR/k3cFshLgU7jqn+vxXxpvV3rCoomQvuAgzvkp8LOL2Hdm+rx26ZDR9v9PlgKCyk+eRKQNigNRbX/j7l//34GDBiAu7s7Z86cYdq0aXh5ebF06VLOnTvHt99+WxtxCiEaiWKTmQ1H1QbD646kYjRf6p15UwsvRnQJYkhHf1lH14gVlBQQnxsPqMmdQWfg/o738+HuD/n6wNf09O8JQL+m/fB18rVlqGUpCiy5Vy1w8G4FAV2qd3/8HnVNncEdmt1S/rzeXh3R27cQ1ryoHms1CPq9cv2xX4VisZC3fj16/4By1bBFR46CxYLexwc7v3r05yEqVe3kbvr06UyZMoUPP/wQV9dLm2oPHTqUSZMm1WhwQojGobTB8LK9Cfy2P5GcIpP1XGs/F3XHiPBAgjwcbRilqCunsk6hoNDEoQleDmrXhXGtx/H1ga9JyEtg2cllANzV9i5bhllebpKa2AEcXVX95O74xcbFrQaWrYa9XLsRanIH0KQVjJ2trserRcZz50h66WUK9uxB4+hIy1W/YRcQYD0vU7INT7WTu927d/Pll1+WOx4UFERycnKNBCWEaBxOpuaybK/aj+7yBsN+bgZGhQcxMjyIdgGuUn13g7l8SraUo96RKR2mMCNa3doyzCOM7n7dbRJfpTJOXXp9/HeIerF695fuSnF5lezftYxSGxqXFMDEheo0bS1RLBYyv/+e1Bn/RikqUo8VFpL68ScEffKx9bqiQ6XJnfS3ayiqndwZDAZycnLKHT9+/Dg+Pj41EpQQouFKzS3il31JLN+bwIGEbOtxF4OeIR39Gd01iF4tmkhhxA3seKZaTHF5cgdqo+K5B+eSVZzF+Dbj61/Sf+Gy5C5pn7rThHsV15nHR0PaUdAZIGxA5dfZOcJj29QpYKfa6yVrPHOGxJdfoTA6GgCnm27C8+5JJDz1D3J++w3PiXfh1F1NrgsvbjvmKCN3DUa1k7sRI0bw1ltvsWTJEgA0Gg3nzp3jX//6F2PH1rOFr0KIOpFXbGLNwWSWxybw18l0LBU0GB7Qzg8HO2kwLC71uGvt2brMcSc7J2b0ncGu5F2Ma3UNBQu17fKRO1CLI3o8ULV7d32lfu04Bhw9rnyto2e1Q6sOU2YmZybchTk7G62TE77PP4/HBDWZzr/zTrKWLCH53fdo/tOPWAqLMJ4+DYBDBxm5ayiqndx98sknjBs3Dl9fXwoLC4mMjCQ5OZmbb76Zd999tzZiFELUQyazhc0n0li2N5E/DydTVHKpMCI8xIMxEUHc0TkQLymMEJdRFMWa3P195A6gh38Pevj3qOuwquaCmuTgFgw58VVP7vLT4dBS9XXPabUXXxXlrV+POTsbu6ZNaTZvLnaXdbnwefof5Pz+O8VHjpD108/YNw8FRUEfEIDe29t2QYtqqXZy5+7uzp9//slff/3Fvn37yMvLIyIiggEDrjDMXA8dO3aMCRMmlPl+4cKF0qRZiKs4mZrHj9HnWRqTQFpusfV4C29nRoYHMTI8kFBvaTAsKpZRlEFmcSZajZaW7nW7hdZ1Kx25u+kR+OMVdacJYz7YX+Xve8w3YDZCYAQEdav9OK8i548/APAYPapMYgeg9/LC58knSHnvfdJmzsRjwnhApmQbmmtuHnXrrbdy66231mQsdapNmzbExsYCkJeXR2hoKAMHDrRtUELUU5n5RlYfSuan6Hiiz2ZajzdxtmdEeCCjuwbRKci9/q2REvVO6Xq7pq5NcdA72DiaarBYIDNOfd12GOyaDVln4dQGaHdH5feZTbB7rvq650O1H+dVmHNzyd+2HQDX22+v8BrPiRPJXLIE48lTZHw9B5BK2YZGOoMCK1eupH///uX2yRXiRnYh38iaQ8msOpDEtlMZmC8upNNpNUS18WFctxD6tfXFXq+1caSiIbnSlGy9lpMApiLQ6sG9qVrxunOWWjV7peTu+Gp1CtepCXQYXXfxViJv40YoKcG+ZUsMLSseOdXY2eH34oucf+BBMKlti6RStmGpt/9X3rx5M8OHDycwMBCNRsPy5cvLXfP5558TGhqKg4MDvXr1YteuXdf0XkuWLCkzRSvEjSq3qIQf95zn3jk76fHuWl5ceoAtJ9IxWxTaB7jxwpC2bH+xH19P7sHgjv6S2Ilqs1bKejSw5K60UtYzFHT6SztMHF+jjupVprSQIuI+sLP9SGXuxSlZ14FXXkrlcuutuAzob/3eUYopGpR6O3KXn59Ply5dmDp1KmPGjCl3fvHixUyfPp1Zs2bRq1cvZs6cyaBBgzh27Bi+vmoH7fDwcEwmU7l7//jjDwIDAwHIyclh27ZtLFq0qHY/kBD1lNFkYfPxNJbFJrD2cArFpks/qDoGuTG0UwBDOwbIOjpRIyqrlK33StfbeV0c7Wp2KxjcID8NEqIhpIIikLRjELcJNFroPrXuYq2EpaCAvC1bAXCrZEr2cn7/+heF0TEYWrZE5+FRy9GJmlRvk7shQ4YwZEjljR5nzJjBtGnTuP/++wGYNWsWv/32G3PnzuWFF14AsK6pu5IVK1Zw++234+Bw5X9RFRcXU1x8afF4Rb3+hGgoFEUh+mwmy2MT+G1/EpkFJdZzLXycGR0exIjwQJo1kYRO1ByzxczpbLXitMFNy5Ymd00uJnd6ewjrD4eWqVOzFSV3u79Wv7YeAh5N6ybOK8jbshWlqAi74GAM7dpd9Xr7kBDC1q1FYzDUQXSiJlU7uYuMjOSBBx7gzjvvxNHRNlsFGY1GoqOjefHFS93BtVotAwYMYPv27dV61pIlS3jooasvcn3//fd58803qx2rEPXJydRclu9NZHlsAvGZl3aM8HYxMKKLWhjRMchNCiNErTiXe45iczGOekeCXYNtHU71lE7LerW4dKz1EDW5O7Ya+r9W9vriXIi9uI1YzwfrJsarsE7J3n57lf8b1zo51WZIopZUO7nr2rUrzz77LE8++STjx4/ngQce4KabbqqN2CqVnp6O2WzGz8+vzHE/Pz+OHj1a5edkZ2eza9cufv7556te++KLLzJ9+nTr9zk5OYSEhFQ9aCFsJDm7iF/2qQndocRLI87O9joGdfRnVHgQt7Rsgl4n6+dE7Sqdkm3p3hKtpoH9fbOO3IVdOtZqIGh0kHoIMs+CZ7NL5/YtAmOuen3zvnUZaYUsRqNaTMHV19uJhq/ayd3MmTP5+OOPWblyJd988w19+vQhLCyMqVOncu+995ZLuOozd3d3UlJSqnStwWDAIEPTooHIKzax6oC6Bdj20xkol+0YEdnah5FdgxjYzg9He9kxQtSdivaUbRDMJsg8o75uclmFqZMXNL0Jzv6lVsX2ehhyU2DfQtj+uXpNj2mgtX0im//XX1jy89H7+uLYpYutwxG17JrW3On1esaMGcOYMWNITU3lq6++4tVXX+Wll15i6NChPPXUU/Tr16+mY7Xy9vZGp9OVS8xSUlLw9/evtfcVoj5TFIXdZzJZsuc8qw4kUWA0W891b+bJyK5BDOsUIDtGCJs5fqHiPWXrhYRoyI6H9iPLn8s+D5YSdV9Yt79NJ7cerCZ3Md/B6Y1q9axy8b89z1AIn1jbkVdJ7p9rAXAdOBBNPUg2Re26roKKXbt2MW/ePBYtWoSvry9TpkwhISGBO+64g8cee4yPP/64puIsw97enm7durFu3TrrjhIWi4V169bxxBNP1Mp7ClFfnU7L47f9SfwcE8+ZjALr8ebezoyNCGJkeBAhXrJuRthevR65W3yv2stu2gYIiih7zrrernn5Ubg2Q+DPVyHlgPoLILgnRNyr9rUzuNZ+7FehlJSQt24dUHnjYtG4VDu5S01N5bvvvmPevHmcOHGC4cOHs3DhQgYNGmRdoDllyhQGDx58XcldXl4eJ0+etH4fFxdHbGwsXl5eNG3alOnTpzN58mS6d+9Oz549mTlzJvn5+dbqWSEas5Opuaw6oDYYPpqcaz3uZK/jjs4B3Nk9hO7NPKUwQtQbBSUFxOfGA/WwDUpemprYAZxcVz65y7i4p6xXBU1/vVtBu+GQsBc6joau94JPm9qNt5oKdu/GnJ2NztMTp24RV79BNHjVTu6Cg4Np2bIlU6dOZcqUKfj4+JS7pnPnzvTocX0bP+/Zs4eoqCjr96XFDJMnT2b+/PlMmDCBtLQ0XnvtNZKTkwkPD2f16tUNas2fENWRkVfMsr0J/BQdXyah02s13BLmzfDOAQztFICzod52OBI3sFNZp1BQaOLQBC8HL1uHU1bq4UuvT62HyOfKni8duWvSggpN+L524qohpXvJug7oj0Yv/3+4EVT7T3ndunX07t37ite4ubmxYcOGaw4KoG/fviilq8Ar8cQTT8g0rGjUTGYLm0+ksWR3POuOplBiVv+bsNNpuC3MmyGdAri9vR8eTrKOTtQfucZcjmQcoZlbM3ydfNFoNPV7Sjbtsi4L8bvUNiaXT6f+vYFxA1K4bx+5f/wJyJTsjaTayd3VEjshxPWxWBT2nM3kt/2JrDqYTFrupebZnYPdubN7CCM6B+LuZGfDKIWo3CtbX2H9+fUAeDl40darLVnFWUA9Te4uH7mzmODMVnUtXakLf2tgXM8pikL+1r/ImD2bgovbcur9/HDu1cvGkYm6ck197ipax6PRaHBwcCAsLIwpU6aUmVIVQlyZoijEnMvkl31JrDqQROplCZ2nkx2juwZzZ/dg2gW42TBKIa4uuzibzfGbAdBpdFwousC2xG3W8/VuvR1A6sWRO2cfdTuxU+svJXfmErWHHTSIkbu8LVtInfFvio8cUQ/o9bgPH473Y4+isZcR/htFtZO7wYMH87///Y9OnTrRs2dPAHbv3s3+/fuZMmUKhw8fZsCAASxdupSRIysoKRdCWMWl57NsbwLL9yZw7sKlSldXBz2DOvgzrHMAt7b0xl4vrQtEw7Dx/EZMiokwjzAWDlvIicwTHLlwhCMXjmC2mLm9WT2bGlQUSL2YCPWYBhvfg1OXLSvKPKu2NtE7gmuAbWKsopLERM4/+hiYTGicnPC88068pkzGLqB+xy1qXrWTu/T0dJ555hleffXVMsffeecdzp49yx9//MHrr7/O22+/LcmdEBVIzytm1YEklsYkEHs+y3rc2V7HoA7+3NElgFvDvDHopcGwaHjWnlX7qQ1sNhAHvQOdfDrRyaeTjaO6gtwkKM5Wd5roPhU2fQAZJyDrPHiElJ2Sref94XJWrQKTCYdOnQj56kv0np62DknYSLWTuyVLlhAdHV3u+F133UW3bt2YPXs2EydOZMaMGTUSoBCNQW5RCWsOpbAiNoFtpzIwW9TCCJ1WQ+9W3ozuGsTt7f1lxwjRoOWX5FunYAc0ayBbXJWut2vSElx8IKibWlRxegNE3HdZMUUllbL1SPZvqwDwGDdOErsbXLWTOwcHB7Zt20ZYWFiZ49u2bcPBwQFQGwqXvhbiRlVitrD5eBo/x8Sz9kgqRpPFeq5LsDsjwoMY0SUQH1fZ1k40Dlvit2C0GGnm1oxWHvWwcKIipevtfNupX1v2U5O7U+vV5K6BFFMUnz6trrPT63G9faCtwxE2Vu3k7sknn+SRRx4hOjra2stu9+7dfP3117z00ksArFmzhvDw8BoNVIiG4khSDj9Hx7M8NoH0PKP1eEsfZ0ZeTOhCvZ1tGKEQtePPs2rLjQFNBzScBtql6+18SpO7KNj0f+pWYhZzg2mDknNx1M751ltk1E5UP7l75ZVXaN68OZ999hnfffcdAG3atGH27NlMmjQJgEceeYRHH320ZiMVoh5LySliZWwiy/YmcDgpx3q8ibM9o7oGMbprEB0C3RrODzwhqqnIVMSWhC2Aut6uwUi7mNz5tlW/BnUDgxsUZkLSvgYxcqcoCjm//QaA+7BhNo5G1AfVSu5MJhPvvfceU6dO5e677670OkdHx+sOTIj6LreohNUHk1l+cR1dac9tO52G/m39GNctmMg2Ptjp6vcibCFqwl+Jf1FoKiTAOYD2TdrbOpyqsVgg7Zj62vdizDo7aN4Hjv4Kx9dAtrplWn0euSs6fBjjmTNoDAZc+vW3dTiiHqhWcqfX6/nwww+57777aiseIeq1ohIzG4+lsXJfAuuOpFJ82Tq67s08GdU1iGGdAvB0ln5S4sZSWiXbv2n/hjNCnX0ejHmgtStbMNGir5rcxXwLigXsXcDF12ZhXk3plKxLVBQ6F1nyIa5hWrZ///5s2rSJ0NDQWghHiPrHbFHYcTqDFbEJ/H4wmdwik/VcSx9nRncNYmR4ECFeTjaMUgjbKTGXsOn8JqChTcleLKbwbq2O2JVq2U/9mpuofvVqAfU0YVUsFnJ+/x0At6FDrnK1uFFUO7kbMmQIL7zwAgcOHKBbt244O5f9V8KIESNqLDghbEVRFGLPZ7FyXyK/7k8qswVYgLsDI7oEMiI8kPYBso5OiB1JO8gtycXb0Ztw33Bbh1N1pW1QStfblfJqAR5NIeuc+n09Xm9XuHcvpqQktC4uuERG2jocUU9UO7l77LHHACrsY6fRaDCbzdcflRA2ciY9n6Ux8SyPTSyzY4SHkx1DOgYwMjyQnqFeaLWS0AlRau25S1OyWk0DWmP69zYopTQadfQuer76fS2tt1MUhZT33sdSkE/A22+juYYmyaWFFK4DBqA1SFsloap2cmexWK5+kRANSE5RCb/tT+Kn6Hiiz2Zajzva6bi9gx8jugTSu5WPbAEmRAVMFhPrz60HGlDj4lKlI3c+7cqfuzy5axJW/nwNMF+4QObFrhNe903GoU319t1VTCZyVq8BwE2qZMVlqp3cXa6oqEiaFYsGqbQw4pf9iaw9nGItjNBqoHcrH8ZEBDGwvR9O9tf1n4gQjV50SjRZxVl4GDzo7tfd1uFUncUM6cfV138fuQO1YlajVQsqamlatvjkKevrwpjoaid3+Tt2Yr5wAZ2nJ8439arp8EQDVu2fXGazmffee49Zs2aRkpLC8ePHadGiBa+++iqhoaE88MADtRGnENfNaLLw18l0ftmXyB+HU8grvlQY0crXhbHdghndNQg/N/kHixBVVVolGxUShV7bgP4xlHkGTEWgdwDP0PLnHT2h97OQfgwCu9ZKCMWnTlpfF0TH4DlxYrXut07JDh6Exs7uKleLG0m1/0t89913+eabb/jwww+ZNm2a9XjHjh2ZOXOmJHeiXiktjFi2N4Ff9iWSWVBiPRfg7sAdnQMY3iWQTkHuUhghxDXYnrQdUJO7BsW6M0Ub0Fayp3O/l2s1BOOp09bXBTHl92y/EnNuLrl/qjuCSONi8XfVTu6+/fZbvvrqK/r3788jjzxiPd6lSxeOHj1ao8EJca3OXyhgaUwCy2MTiEvPtx73djEwrJM/w7sEEtHUUwojhLgOKfkpnM05i1ajpZt/N1uHUz1/33bMBopPXZqWNSUmUZKYiF1gYJXuTZv5KZa8POybN8cxIqK2QhQNVLWTu4SEBMLCyi8utVgslJSUVHCHEHUju6CEXw8ksiwmgT1/K4wY1MGP0RHB3NqyCXrZMUKIGrEnZQ8Abb3a4mbvZuNoqsm67Zgtkzt1Wlbj5IRSUEBBzF7cq5DcFR48RObChQD4v/7aNVXZisat2sld+/bt2bJlC82aNStz/KeffqJr19pZlyBEZUrMFjYeS+Pn6HjWH03FaFYLIzQauLWlN6O7BjG4oz/Ohga0FkiIBmJ38m4Aevj1sHEk1yDVtsmdOSsLc1o6oDYfzv7pZwpjonG/48pTrIrZTPIbb4DFgtsdd+B80011EK1oaKr9E++1115j8uTJJCQkYLFYWLp0KceOHePbb7/l119/rY0YhSjnZGoeP+45z88xCaTnXWow3NbflTERQYzoEoS/uxRGCFGbSkfuevg3sOTOXALpJ9TXPm2vfG0tKT6trrfTBwTg0rsP2T/9TEF0zFXvy1y8mKKDB9G6uuL3r+drO0zRQFU7uRs5ciS//PILb731Fs7Ozrz22mtERETwyy+/MHBgA9p2RjQ4abnFrDmUzNKYeGLOZVmPe7vYM7prEGMigmkX0MCmhoRooC5fb9fVr4HN2mScAkuJumese4hNQig+qU7JGlq2xClC/f0rPn4cc04OOreK/z9mSksjbca/AfB5+h/ofXzqJljR4FzTXFXv3r3582KVjhC1KSWniNUHk1l1IIndZy5gUdTjOq2GqDa+jO8eTFRbX+xkHZ0QdapRrLfzaQM2Wq9WWilraNkSvY8Pds2aUnL2HIWxsbj06VPhPSkffIglLw+Hjh3xvOuuugxXNDDXvBDJaDSSmppabseKpk2bXndQ4saWXVDCbweSWB6bwO4zF1CUS+e6BLsztFMAo7sG4Sv96ISwmYa93q6SbcfqUGmlrH3LFgA4RXQj++w5CqJjKkzu8rdvJ+fXX0Gjwf/119HoKmnfIgTXkNydOHGCqVOnsm3btjLHFUWRvWXFNSsqMbP+aCrL9yaw8ViatTACIKKpB0M7BTC4oz/Bnk42jFIIUarBrreDK287VkdKkzvDxe4TTt0iyF62jMLo8v3ulJISkt96GwDPiRNx7NSx7gIVDVK1k7spU6ag1+v59ddfCQgIkMav4pqZzBa2ncpgRWwifxxKJveyHSPa+rsyumsQw7sEEujhaMMohRB/l1qQ2nDX2ykKJO1TX9uqUjYvD1NSEgCGFurInWOE2iew8MABLEYjWnt76/VZP/2EMS4OXZMm+Dz9j7oPWDQ41U7uYmNjiY6Opm1b21QYiYZNURT2ns9ixd4EfjuQRHqe0Xou0N2BEeFBjOoaSFv/BraGR4gbyJ7kBrze7uQ6yDoLds4QbJu9cI0XK2V1Pt7oPDwAsG8eis7TE3NmJkWHDuF0sbWYpaCAtC++AMD70UcrLbYQ4nLX1OcuPT29NmIRjdj5CwUs35vA0r1ld4zwcrZnaCd/RnQJonsz2TFCiIZgd0oDXm+37T/q126TwcHdJiEUW4spLm0IoNFocOwWQd7adRTGxFiTuwvffoc5LR274GA8x99pk3hFw1Pt5O6DDz7g+eef57333qNTp07Y/W2zYjf5V4W4KLughN8PJrFsbwI74y5Yjzva6Rjc0Z8R4YHcFuYtla5CNDClI3cNbr1dYizEbQKNDm561GZhGE9daoNyOaeIbuStXUdBdAxNHngAU2YmGV9/DYDPP55Cc9lUrRBXUu3kbsCAAQD079+/zHEpqBAABUYTa4+ksjI2kU3HUykxq6WuGg3c0rIJY7oGy44RQjRgqQWpnMk50zDX223/TP3aYTR42K6zQ/HJspWypZy6qXvEFsbEoFgsZMz+GkteHoY2bXAbduWdK4S4XLV/wm7YsKE24hANmMWisDPuAj/uOc/qQ8kUGC8l+G39XRkRHsio8CApjBCiEWiw6+2yzsHBperrW560aSjWStmWZfdpd2jXDo2DA+asLPK3byfz++8B8J3+T9k/VlRLtZO7yMjI2ohDNEDxmQX8HJ3ATzHnOX+h0Ho8xMuREV0CGdEliDb+rjaMUAhR0xrsersds0AxQ/M+EBhuszAsRUWUxMcDYAgrOy2rsbfHsXNnCnbtIvFfL6AYjTh1745zJU2NhajMNc2NbdmyhS+//JLTp0/z448/EhQUxHfffUfz5s257bbbajpGUY9k5hv5/WAyv+xLZEdchrXBsItBz/AuAYzrFkxEU09pkSNEI9Ug19sVZkHMN+rrW2zbSsQYFweKgs7DA52XV7nzjt0iKNi1C/PFwkWfZ6bL/09FtVU7ufv555+59957ufvuu4mJiaG4WN20PTs7m/fee49Vq1bVeJDCtvKKTfx5OJmVsYlsOZGOyXJpy4ibWzRhfI9gBncIwNFeOqYL0ZjV+/V2a99UCyZuegw6jLm0tVj0PDDmgW97COt/5WfUMut6u7CWFSZtThERZFx87dK/v7VqVojqqHZy98477zBr1izuu+8+Fi1aZD1+66238s4779RocMJ2jCYLm4+nsTw2gbVHUigqubRjRIdAN4Z3CeSOzgGyY4QQN5B6vd5u/xLYOkN9/fMD8NenMPBNaHarOiUL6lo7G4+CFVsrZcMqPO8YHo7GwQHFaMRXGhaLa1Tt5O7YsWP0qWD+393dnaysrJqISdiIoijsOZvJsr0JrDqQRFZBifVcC29nhncJZHiXQMJ8XWwYpRDCVnYl7wLq4Xq7C3Hw63T1dcv+cH4XJO+H70ZDk1aQlwyuAdBxnG3jBIzWYooWFZ7XubrSdO4csFgwtGpVl6GJRqTayZ2/vz8nT54kNDS0zPGtW7fSokXFf1lF/RaXns+ymHiWxSaUKYzwcTUwoota6doxyE3WfQjRiJW2s6pMfkk+a86sAeDWoFvrKqyrM5eoI3XGXGh6M0xaAkVZsOUT2P01ZJxQr+v1COht3yfuUhuUlpVe4xQRUVfhiEaq2sndtGnT+Mc//sHcuXPRaDQkJiayfft2nn32WV599dXaiFHUgqwCI7/sT2JpTDx7z2VZjzvb6xjcMYDRXYO4uWUTdLJjhBCN3uKji/ks9jP+3fffdPeveEuuladWkleSR3P35twUcFMdR3gFG96DhGh1t4kxs0GnB2dvGPy+mtBt/ggKM6HHA7aOFMVoxHjuHACGsIqnZYWoCdVO7l544QUsFgv9+/enoKCAPn36YDAYePbZZ3nySdv2DhJXVmK2sOlYGj/HxLPuSCpGs7qOTquB3q18GBMRxO3t/aUwQogbzKq4VWQVZ/Hh7g9ZfMficiN4FsXCgiMLAJjYdmL9GcU/vQm2/lt9Pfw/4BFS9rxnMxj5Wd3HVQnj2bNgNqN1cUHv62vrcEQjVu3kTqPR8PLLL/Pcc89x8uRJ8vLyaN++PS4usg6rPjJbFHbFXWDVgSRWHUgiI99oPdcuwI2xEUGM6BKIr5uDDaMUQtjSmZwzABy5cIS159YysNnAMue3J27nTM4ZXOxcGNFyhA0irEB+Bix9CFAgYjJ0GGXriK7qUvPiiitlhagp17wHlL29Pe3bt6/JWEQNMVsUdsZlsOpAEqsPppCeV2w95+1iYFR4IGMigmkfWM+q3YQQdS67OJsLRZf2fv587+f0C+mHTntpBP+HIz8AMCpsFM52znUeY4V+f14tlPBurU7BNgCXt0ERojbJBp+NyLHkXJbGxLM8NoGUnEsJnbujHbe392No5wB6h3mj18k2NkIIVVx2HABeDl6YLCZOZZ9iVdwqhrccDsDZnLNsSdiCBg0T2060ZaiXFGbC4eXq69Ffgn09STiv4mptUISoKZLcNXCpuUWsjE1k2d4EDiXmWI+7O9oxqIMfQzsFcGuYN3aS0AkhKlCa3LXybMVNATfxacyn/G/f/xjcfDB2WjsWHl0IQJ/gPjR1a2rLUC85+htYTODXEYIaTmWp8eSV26AIUVMkuWuACowm/jiUwrK9CWw5kUbphhF2Og1RbXwZExFMVFsfDHopjBBCXFnpervmbs2Z1HYS3x3+jvO551l5ciWDQgex/ORyACa1m2S7IP/u0DL1awNYZ1fKdOECxWfOAGAvI3eilkly10CUmC1sPZnOythE1hxKpsBotp7rEuLB2Igg7ugciJez7fs4CSEajtKRu+buzXGyc+LBTg/y4e4PmbV/FrnGXPJL8mnh3oKbA262caQXFVyA0xvV1+1H2zSU6rjw3XdQUoJDhw7YBQXaOhzRyF1Tcvfdd98xa9Ys4uLi2L59O82aNWPmzJk0b96ckSNH1nSMtebjjz9m3rx5aDQaXnjhBe655x5bh1RGaWHEL/uS+P1g2R0jmjVxYlR4EKO6BtHcu2GsNxFC1D+XJ3cA49uMZ/6h+STnJzMzZiYAk9pOqj/VnUd/Vadk/TuBd92PgKV+MgPjmTgCP/4YrcFQpXvMeXlk/qC2kmny0EP15/dSNFrVTu7+97//8dprr/H000/z7rvvYjarI0geHh7MnDmzwSR3Bw4cYMGCBURHR6MoClFRUdxxxx14eHjYOjQAPl17gu93niUt9/JKV3uGdgpgVNcguoZ4yP8ghBDXpcRSQnxuPHApuTPoDDzc+WHe3vE2ZsWMq52rtbiiXrBOydb9qJ2luJiMOerWYHkbNuI2eFCV7stavARLTg72zZvjOnBALUcpBFR7lf1///tfZs+ezcsvv4xOd2lNV/fu3Tlw4ECNBlebjhw5ws0334yDgwOOjo506dKF1atX2zosq/S8YtJyi3F3tOOuHiH88GAvdrzYn7dGdiSiqackdkKI6xafG49JMeGod8TPyc96fHTYaIJcgtTXrUbjZOdkqxDLys9QGxcDtB9V529vjIsDi9r8Pef336t0j8Vo5ML8+QA0efBBNFopbhO1r9p/y+Li4ujatWu54waDgfz8/BoJCmDz5s0MHz6cwMBANBoNy5cvL3fN559/TmhoKA4ODvTq1Ytdu3ZV+fkdO3Zk48aNZGVlkZmZycaNG0lISKix+K/XfTc3Y+6U7ux+eQD/N7Yzt0oLEyFEDSudkg11Cy3zD0Y7nR0f9fmICW0m8FDnh2wVXnlHfwXFDP6doUnd94or7VMHkLdpE5Yq/MzLXrYcU1oaen9/3IffUZvhCWFV7WnZ5s2bExsbS7NmzcocX716Ne3atauxwPLz8+nSpQtTp05lzJgx5c4vXryY6dOnM2vWLHr16sXMmTMZNGgQx44dw/fiti7h4eGYTKZy9/7xxx+0b9+ep556in79+uHu7s5NN91UZiTy74qLiykuvjRFmpOTU+m1NaGVnyut/Fxr9T2EEDe2v6+3u1wnn0508ulU1yFdmQ2nZAGKT56wvlaKisjdsBH3O4ZVer1iMqnTuECTqfejsZeCN1E3qp3cTZ8+nccff5yioiIURWHXrl0sXLiQ999/n6+//rrGAhsyZAhDhgyp9PyMGTOYNm0a999/PwCzZs3it99+Y+7cubzwwgsAxMbGXvE9Hn74YR5++GEAHnzwQVq1alXpte+//z5vvvlmNT+FEELUX1dK7uqd/HSI26y+tlELFOPF7cN0TZpgzsggZ9WqKyZ3OWvWUHLuHDoPDzzGjaurMIWo/rTsgw8+yAcffMArr7xCQUEBkyZN4n//+x+ffvopd911V23EWI7RaCQ6OpoBAy4tTNVqtQwYMIDt27dX+TmpqakAHDt2jF27djFoUOWLY1988UWys7Otv86fP3/tH0AIIeqBuJyL07LuobYNpCqO/KJOyQaEg5dtmgAXn1B3mGgy7UEA8rdswVzJLI6iKGTMVgc8PO+9B61TPVm3KG4I19QK5e677+buu++moKCAvLw86zRoXUlPT8dsNuPn51fmuJ+fH0ePHq3yc0aOHEl2djbOzs7MmzcPvb7y3w6DwYChimXvQghR3ymKwpnsM4DawLjes/GUrMVoxHjuHABuQ4aS9dNPGE+eInfdejxGjyp3ff7mzRQfPYrWyQmvu++u42jFja7aI3fvvPMOcXHqv/acnJzqPLGrSdu3b+fw4cPs3r2bbt262TocIYSoMxeKLpBjzEGDhmZuza5+gy3lpcGZLeprW03JXqyU1bq6ovf1we3isqGc31eVu1axWEif9SUAHhMmoKsnLbbEjaPayd2PP/5IWFgYt9xyC1988QXp6em1EdcVeXt7o9PpSElJKXM8JSUFf3//Oo9HCCEamtL1doEugTjoHWwczVUcWQmKBQK7gmeoTUIoPqlOyRrCwtBoNLgNGQpA/rbtmDIzy1yb8dVsCvfuRWMw4DVlSl2HKkT1k7t9+/axf/9++vbty8cff0xgYCDDhg1jwYIFFBQU1EaM5djb29OtWzfWrVtnPWaxWFi3bh0331xPtsgRQoh6rHS9XYMopjj4s/rVRlOycKmYwhCmtmAxtGiOoV07MJnI/fNP63X5O3aS9p//AOD/2qvY+TXc2S3RcF1T47QOHTrw3nvvcfr0aTZs2EBoaChPP/10jY6a5eXlERsba614jYuLIzY2lnMX1zxMnz6d2bNn880333DkyBEeffRR8vPzrdWzQgghKle63i7ULdSmcVxV8kE4+xdodNBxrM3CKC2mMIRd2vLs0tSs2tDYlJZGwrPPgsWC++jReIy1XbzixnZNBRWXc3Z2xtHREXt7e3Jzc2siJgD27NlDVFSU9fvp06cDMHnyZObPn8+ECRNIS0vjtddeIzk5mfDwcFavXl2uyEIIIUR5DaYNys5Z6td2w8E92GZhFF8cubNveXlyN5i0GTMo2LmLkpRUEp97DnN6OoZWrfB/7VVbhSrEtSV3cXFxLFiwgAULFnDs2DEiIyN58803GVeDfXz69u2LoihXvOaJJ57giSeeqLH3FEKIG0WDSO7y02H/EvX1TY/ZLAyL0Yjx7FkADK0uJXf2ISE4dOpE0YEDnH/wAYpPnETr5ETQp5+idXS0VbhCVD+5u+mmm9i9ezedO3fm/vvvZ+LEiQQFBdVGbEIIIWpBsbmYhDx1u8V6ndxFzwNzMQRGQEhPm4VhPHMGzGa0Li7o/9Yhwm3oUIoOHLBO2/q//RaGFvX491TcEKqd3PXv35+5c+fSvn372ohHCCFELTuXcw4FBVc7V5o4NLFtMIoCl+1ra2Uywq6Lux7d9GjF19QRY2mlbMuWZfbgBXAbPIjUDz4AwHPSRNyHVb5jhRB1pdrJ3bvvvlsbcQghhKgjl0/J/j1ZqVPr3oK9P8Cd86DZLWXPHV4Becng4g/tR9kkvFLFJy+ut7tsSraUXUAAPv/8JyXx5/G9uPWlELZWpeRu+vTpvP322zg7O1sLGyozY8aMGglMCCFE7ShN7my67VhxHuz4H5QUwA/jYcovah87UEfzdnyuvu7xIOjtbRcnl/W4a1k+uQPwfvihugxHiKuqUnK3d+9eSkpKrK+FEEI0XPWix92x39XEDsCYC9+Ngft/B9+2cH4XJO4FnQG62769VbG1x13FyZ0Q9U2VkrsNGzZU+FoIIUTDUy/2lD34k/r1psfg/E5IiIbvRsHU1bDzf+q5zneCs7fNQgRQLq+UvdjAWIj6rtpNjKdOnVphP7v8/HymTp1aI0EJIYSoHYqi2L4NSsEFOLlWfd1tCtz9E/i2h9wkmD8cDq9Uz/V6tM5CMmVkUHxx3/TLGc+eBZMJrbMzetneUjQQ1U7uvvnmGwoLC8sdLyws5Ntvv62RoIQQQtSO1IJUCkwF6DQ6QlxDbBPE4RVgMYFfJ/BpA05ecO8y8GwO2edAMUPzPuDfsc5COjf1AU6PGEnhoUNljpeut7MPK18pK0R9VeXkLicnh+zsbBRFITc3l5ycHOuvzMxMVq1aha+v7KEnhBD1Wel6uxDXEOx0drYJonSv2E6XNb539Yf7VoDbxb6pNz9ZZ+GUJCdTfOwYlJSQ9u+ZZc6VVsrKejvRkFS5FYqHhwcajQaNRkPr1q3LnddoNLz55ps1GpwQQoiaZd1T1laVsjmJcGar+vrve8V6NoOHNkH6MQi9rc5CKoyJsb7O37qV/J27cO6lNk2+WqWsEPVRlZO7DRs2oCgK/fr14+eff8bLy8t6zt7enmbNmhEYGFgrQQohhKgZJzJPADYspji4FFCg6c3gUcG0sIuP+qsOFcSoXSA0BgNKcTFpM2bgtGghGo2G4lMXk7sKetwJUV9VObmLjIwE1H1lQ0JC0GqrvVxPCCGEDSXnJ/PL6V8ACPcNt00QpVWyfx+1s6HSkTvfZ54hdcYMCvftI2/DBlxuuw3jmYuVsi2lUlY0HNXeoaJZs2YAFBQUcO7cOYxGY5nznTt3rpnIhBBC1KiP93xMoamQCN8IokKi6j6AjFNq/zqNDjqMrvv3r4AlP5+iY8cAcB10O6a0NDJmzybt3zOxCwpWK2WdnNAHBNg4UiGqrtrJXVpaGvfffz+///57hefNZvN1ByWEEKJm7UzayZoza9BqtLzU6yXbVH4euDhq1zLK5v3rShXu3w9mM3aBgdj5+dHkwQfIXLyY4hMnSPvPfwCwDwuTSlnRoFR7bvXpp58mKyuLnTt34ujoyOrVq/nmm29o1aoVK1eurI0YhRBCXIcSSwn/t+v/ABjfejxtvNrUfRCKAgd+VF93HHfla+tQQbQ6JesYEQGAzt2dJg88AEDeunWAVMqKhqfaI3fr169nxYoVdO/eHa1WS7NmzRg4cCBubm68//77DBs2rDbiFEIIcY0WHV3EyayTeBo8eaLrE7YJInk/ZJwAvQO0rT8/J0rX2zlGdLUe87r3Hi58/x3mtHRA1tuJhqfaI3f5+fnWfnaenp6kpaUB0KlTJ2IuKycXQghhe+mF6XwR+wUAT0U8hbvBvW4DKM6FY6th7Rvq960HgYNb3cZQCcVspnDfPgCcLo7cAWidnPB+9NLuGFIpKxqaao/ctWnThmPHjhEaGkqXLl348ssvCQ0NZdasWQTIglMhhKhXZkbPJK8kjw5NOjA6rI6KGPLTYfccOL0B4neru1GU+v/27ju8qfIL4Pg3Tfdu6YDSlrJlg2yQXWXInvITBUEEBAQRUWQjCoosAUVRloogKBuRIXtvBIEySoFOoHS3SZvc3x8XKrWMFpuktOfzPDxwk5v7nqSX9vQd563W0zwx5IAuJARjcjJWzs7YlS2b5TmPrl2JW7GS9IgI7KtUsVCEQjydXCd3w4YNIzIyEoAJEybQqlUrfvrpJ2xtbVmyZElexyeEEOIpnYo5xbor6wD4qO5HaK20pm80Qw9L20HM3/885lFSXURRtqXac5dPpNwfkq1WDY0262ejsbUl6OflKOnpaN3dLRCdEE8v18ldr169Mv9ds2ZNwsLCuHDhAoGBgXh55Y/VT0IIUdgpisKs47MA6FC6A1W9zVSmav9sNbFzLALNx6lJnUeQedrOpdR7xYsfnG/3ICsnJ3OGI0SeyXVy92+Ojo48/8BcBSGEEJZ3KPIQJ2JOYGtlyzvPv2OeRm9dhD3T1X+3/jzr3rH5UMpJtefOUX6GiQImR8ndiBEjcnzBmTNnPnUwQggh/jtFUZh/aj4A3cp3w8fRx/SNGo2w/h0w6KHsS/lqB4qHSY+KIiMiErRaHKT4vihgcpTcnTx5MkcXkyKPQghheQciDnD61mnstHb0q9zPPI0eXwQ3DoGNE7w8E/L5z4P7JVDsy5eX4VdR4OQoudu5c6ep4xBCCJEHFEXJLH3SvXx3vB29Td9ofDhsm6j+O3gCuAeYvs3/KOX+fLuaNS0ciRB5L9d17u67fPkyf/zxB6mpqYD6DUUIIYRl7Q3fy5nbZ7DX2tO3cl/TN6gosGkE6BPBvw7UftP0beaB+z13jo9YTCHEsyzXyd2dO3do0aIF5cqVo02bNpllUfr168d7772X5wEKIYTImQd77V557hW8HMxQweDsrxCyBaxsoP2XYI5yK/+RISmZtAsXgH+2HROiIMl1cvfuu+9iY2PD9evXcXR0zHy8R48ebNmyJU+DE0IIkXN7bu7h3J1zOFg70KdSH9M3eGUnrH1b/Xej98CngunbzANpZ06D0YiNnx82vr6WDkeIPJfrUihbt27ljz/+wN/fP8vjZcuWJSwsLM8CE0IIkXMPrpDt+VxPijgUMW2D1/bBzz3BoIPybaDxSNO2l4cy59tJr50ooJ5qb9kHe+zui42Nxc7OLk+CEkIIkTu/h/7O+djzOFo7mr7X7voh+Kk7ZKRCmReh2xLQ2pi2zTx0f77do4oXC/Gsy3Vy16hRI5YtW5Z5rNFoMBqNfP755zRr1ixPgxNCCPF4iqKw7NwyRu8bDcCrFV7Fw97DdA3ePA4/doX0ZCjVFHr8CNbPzi/2+ps3ST5yBACn2rUtHI0QppHrYdnPP/+cFi1acOzYMfR6PaNGjeLcuXPExsayf/9+U8QohBDiIdIy0ph4cCKbrm4CoH3p9gysNtB0DUachB87qStjgxrBKz+Djb3p2jOB219/DRkZODVsiF3ZspYORwiTyHVyV7lyZUJCQpg3bx4uLi4kJSXRuXNnBg8eTLFixUwRoxBCiH+JTIpk2M5hnI89j1ajZWStkbxa4VXTFZO/shNWvqYmdgH1oOcKsM0+RSc/04eFEb92HQDeQ4dYOBohTCdXyV16ejqtWrViwYIFjBkzxlQxCSGEeIx94fv4aO9H3NXdxcPOgy+afEGdYnVM1+DplbDubTBm3OuxWw52zqZrz0Ruf/U1GAw4NWmMQ/Xqlg5HCJPJVXJnY2PDmTNnTBWLEEKIx0jQJ/DF0S9Yc3kNABU8KzC72Wz8nP1M06CiwP45sH2Cely5C3T8+pmaY3ef7moo8Rs2AOA9ZKiFoxHCtHK9oKJXr158//33pohFCCHEI+y5uYdO6zqx5vIaNGjoVaEXS1svNV1iZzTA7x/8k9jVHwKdv3smEzuA2/Png9GIc/PmOFSpbOlwhDCpXM+5y8jIYNGiRWzfvp2aNWvi9K8Nl2fOnJlnwQkhRGEXmxbLjGMzWH9lPQAlXEswucFknvc1YY22uOuwfihc3aUet/wU6g82XXsmprt0iYTNmwHwHvLsvg8hcirXyd3Zs2d5/l7hx5CQkCzPmWwirxBCFDKxabEsPbeUny/8TGpGKho0vFbxNYbUGIKDtYNpGlUUOL4Eto5TF05Y20PHr9Th2GfYrflfgaLg8uKL2FesaOlwhDC5XCd3O3fuNEUcQgghyJ7UAVQsUpHRdUZT3ae66Rr+d29dQD01sStS2nRtmkHaxYskbtkCGg1eskJWFBK5Tu6EEELkPaNi5KfzPzH35NzMpK5SkUq8Xf1tGhVvZNqRkTOrYONw0CepvXUtxkPdgWClNV2bJmLU69FdDCHt3FlSz54l+cABAFxbt8K+XDkLRyeEeUhyJ4QQFnY79TZj949lf7haCN5sSZ2iwO7PYNdU9fgZ762LmTmLO4sXQ3p6lset3NzwGiK9dqLwkOROCCEsaO/NvYzdP5bYtFjstHa8X+t9upfvbvo5zBk6dRj2zEr1uOEwaDHhmeytAzAkJRN7L7HTurtjX7ky9pUr4VC5Mg7PP4+1p6elQxTCbCS5E0IIC9AZdMw+Ppsfz/8IQFmPsnze6HPKeJQxfeMpsbCyF4TtB40WXp4Btd4wfbsmlLxvL0p6OjYlAim9ZYss8BOFmiR3QghhZhdjL/Lh3g+5HHcZgFcrvMq7Nd/FTmuGGnJ3rsDy7nDnMti6QPelUKaF6ds1scTtOwBwCQ6WxE4UepLcCSGEmRgVI8vOLePLk1+SbkzH096Tjxt+TGP/xuYJ4O/1sG4w6BLALQD+9wv4PvulQRS9nqTduwFwaRFs4WiEsDxJ7oQQwgwikyIZs38MR6OOAtDUvykTG0ykiEMR0zduSIdtE+DQfPU4sD50WwIuRU3fthkkHzmKMTERrZcXDtWqWjocISwu19uPPYs6deqEh4cHXbt2zdVzQgiRF/649gdd1nfhaNRRHKwdmFB/Al82/9I8iV38TVjc5p/ErsFQ6L2hwCR2AIk7tgPg0qwZGu2zuSBEiLxUKJK7YcOGsWzZslw/J4QQ/0VaRhofH/yYkbtHkpieSFWvqqxut5qu5bqaZ17YlT/hm8Zw8wjYucEry+GlKaC1MX3bZqIYjSTt+BMAlxdlSFYIKCTJXdOmTXFxccn1c0II8bRC40N5dfOr/BLyCxo09K/Sn6WtlxLoGmj6xhUF9s6AH7tAyh0oWhUG7IbnXjZ922aWdvYsGTExWDk64livnqXDESJfsHhyt2fPHtq1a4efnx8ajYa1a9dmO2f+/PkEBQVhb29P3bp1OXLkiPkDFUKIHNpwZQM9NvYg5G4InvaeLAhewDvPv4O1lRmmOaclqGVOdkwGxQg1XoN+28CzpOnbtoDEbeqQrFOTxljZ2lo4GiHyB4svqEhOTqZatWr07duXzp07Z3t+5cqVjBgxggULFlC3bl1mz55Ny5YtuXjxIj4+PgBUr16djIyMbK/dunUrfn5+eRKnTqdDp9NlHickJOTJdYUQBUeSPompR6ay/sp6AOoUrcO0RtPwdvQ2TwAxF9TE7s4l0NpCm+lQs4952raQxB33SqDIKlkhMlk8uWvdujWtW7d+5PMzZ86kf//+vPGGWmBzwYIFbNq0iUWLFvHhhx8CcOrUKZPHOXXqVCZNmmTydoQQz6bTt07z4Z4PuZl0EyuNFQOrDuStqm+hNceOD4oCZ36Bje9CejK4FofuP4B/TdO3bUG6q1fRX70KNjY4NzFTORkhngEWH5Z9HL1ez/HjxwkO/uc3MisrK4KDgzl48KBZYxk9ejTx8fGZf27cuGHW9oUQ+ZPBaGDB6QX0/r03N5Nu4ufkx+KWixlUfZB5ErukGLW3bs1bamIX1Aje2l3gEzv4p9fOqW5dtDJ3WohMFu+5e5zbt29jMBjw9fXN8rivry8XLlzI8XWCg4M5ffo0ycnJ+Pv7s2rVKurXr//E5x5kZ2eHnZ0ZqscLIZ4ZEUkRjN47mhMxJwBoXbI1Y+uNxdXW1TwBnFsLm0aoiyasbKDJB/DCu6DN19/a80zi9nslUIKf/R02hMhLheI7wPZ73wBy+5wQQjzKtrBtTDgwgUR9Ik42ToypO4a2pdqap8RJSixsHglnf1WPfStDpwVQtIrp284n0qNjSDt9BgDnZs0tHI0Q+Uu+Tu68vLzQarVER0dneTw6OpqiRQtOAU4hxLMjNSOVz49+zuqQ1QBU8arCZ40/I8AlwDwB3DgKq9+A+Bug0UKjEdB4FFgXrpWiSTvV2nb21api4+tj4WiEyF/y9Zw7W1tbatasyY578yoAjEYjO3bseOjQqRBCmFLI3RB6buzJ6pDVaNDQr3I/lrZeap7ETlHg4HxY3EpN7DxKqiVOmo8tdIkdQMLm3wFwCZZVskL8m8V77pKSkrh8+XLmcWhoKKdOncLT05PAwEBGjBhB7969qVWrFnXq1GH27NkkJydnrp4VQghTUxSFXy7+wvRj09EZdHg5ePHpC59S389Mv2SmxsG6wXBho3pcsQO0nwv2buZpP59J3LWLlCNHwNoa11atLB2OEPmOxZO7Y8eO0axZs8zjESNGANC7d2+WLFlCjx49uHXrFuPHjycqKorq1auzZcuWbIsshBDCFOJ18Uw4MIEd19URhBeKv8CUhlPMsy8swM3j6jBsXJhau+6lT6BOfzDH3L58yKjTEf3JpwB49n4d2wAzDYcL8QzRKIqiWDqIZ1FCQgJubm7Ex8fj6mqmlXFCCLM6EX2CD/Z+QFRyFNZW1gx/fjivVXwNK40ZZrQYMmDfTNg1DRQDuJeAbkug+POmbzsfu/3119ya8yXWPj6U2rwZrbOTpUMSwixyk3dYvOdOCCHyG4PRwMK/FvL16a8xKkYCXQL5vMnnVCpSyTwBxIbCmgFw47B6XKkztJ0FDu7maT+fSg8P5/Y33wLgM2qUJHZCPIIkd0II8YCo5ChG7x3NsehjALQr1Y4x9cbgZGOGREJR4NRy+H0U6JPAzhXafAFVuxfaYdgHRU+bhpKWhmPt2ri+3MbS4QiRb0lyJ4QQ9+y8vpNxB8YRr4vH0dqRsfXG0q50O/M0nhYPG4bDud/U48AGau06jxLmaT+fS9q7j8Rt20GrxXfcWPPUExTiGSXJnRCi0NMZdMw8NpPlF5YDUMGzAtObTKeEq5kSq/DjsLov3L0GVtbQdLS604Q5ti97Bhj1eqKnTAHAs9er2JcrZ+GIhMjfJLkTQhRqofGhjNozigux6paGr1V8jeHPD8dWa4bacUYjHJoP2yeCMQPcA6HLIgiobfq2nyGxi5egDwtD6+WF15Ahlg5HiHxPkjshRKG1/sp6phyaQmpGKh52Hkx5YQqN/Rubp/HkO7B2IFzaqh5XaK/Wrivkiyb+TXflCrfnzwfAZ+R7aF1cLByREPmfJHdCiEInJT2FKYemsOHqBgDqFK3D1EZT8XE00zZW1/bBr29CYiRo7aDVp1Crnyya+BclI4OIDz5E0etxeuEF3Dp0sHRIQjwTJLkTQhQqF2IvMHL3SMISwrDSWDGo2iD6V+mP1hzz24wG2DMddn8GihGKlIVui6FoFdO3nQ8lHz5C0p9/UmTgAKw9PLI9f/vbb0k7exYrV1eKfTJFFlEIkUOS3AkhCgWD0cCyv5cx9+Rc0o3p+Dr68lnjz6jpW9M8ASREwm/94dpe9bj6q9BmOtgW3lpt0VOnortwgcSdOwn4ZgF2JUtmPpf299/c/uprAIqOG4uN7EokRI5JcieEKPCuxl9l3L5xnLl9BoCm/k35uOHHuNu7myeAkK3q/LqUO2DjpBYkrtbDPG3nU8a0NHSXLgGQfv06Ya/0xH/+PBxr1cKo1xPxwYeQkYHLSy/h2rathaMV4tkiyZ0QosC631s37+Q89EY9zjbOjKo9io5lOppniC9Dp66EPfSVely0CnRdAl5lTN92PqcLCQGDAa27OzaBgaSdOcP1N/pS7NNP0YVcRHfpEtoiRSg6cYIMxwqRS5LcCSEKpLCEMD7a9xFnbqm9dQ2LN2Ri/YkUdSpqngBuX4LVb0DUX+px3YEQPAls7M3Tfj6X9vffANhXqYL/l3OI+OBDErduJeL99zMXlhSbNBFrT09LhinEM0mSOyFEgaIoChuubsgscWL23jpFgVM/web3IT0FHItAh6+gfCvTt/0MSTt3L7mrWBErBweKz55FzBcziF20CBQFtw4dcAkOtnCUQjybJLkTQhQYSfokPj70MZtDNwNQy7cWUxtNNV9vXVoCbHwXzq5Wj0s2gU7fgGsx87T/DEk7dw5QkzsAjZUVvqPex77Cc6SePoP3sHcsGZ4QzzRJ7oQQBcKZW2cYtWcU4UnhaDVaBlUbxJtV3jRPiROA8BP3thALBY0Wmo+FhsPByso87T9DFL2etHuLKewrVczynFu7dri1M9N+vkIUUJLcCSGeaemGdL458w3f//U9GUoGfk5+fNb4M6r7VDdPAIoCh76GbePBmA5ugdD1ewioY572n0G6y5chPR0rNzdsihe3dDhCFDiS3Akhnlnnbp9j7P6xXI67DECroFaMqz8OV1tX8wSQEgtrB0HIFvW4Qrt7W4hlL8gr/pG5mKJiBVkJK4QJSHInhHjm6Aw6FpxewOKzizEoBjzsPBhTbwwtg1qaL4jw4/BLb4i/oW4h1vITqP2mbCGWA/8kdxWfcKYQ4mlIcieEeKaE3A1h1O5RXIm/Aqi9daPrjsbT3kwlMxQFji2CLR+CQQ+epaDbUihW1TztFwCp/1pMIYTIW5LcCSGeGRuubGDywcmkGdIoYl+EcfXG0aJEC/MFoE9RV8OeWaEeP9cWOn4F9m7mi+EZp2RkoLtwEZDkTghTkeROCJHv6Q16Pj/6OSsvrgSggV8DpjWahoe9Gee2Rf8Nv74JMefU1bDBE6HBUBmGzSXd1asoOh1WTk7Ylihh6XCEKJAkuRNC5GuRSZG8t/s9/rqt7vQwsNpABlYdaL4SJxl62DcL9kxXV8M6+UC3xRD0gnnaL2Ay59tVqIBGysQIYRKS3Akh8q0/r//JhAMTiNPF4WrrytRGU2ns39h8AUSchHVDIPqselyuNbSbDS5mKopcAGUmd5VkSFYIU5HkTgiR7yTqE/nsyGesu7IOgAqeFZjVbBbFnc1UEy1DB7umwf45oBjAwRPaTIfKXWQY9j96cNsxIYRpSHInhMhXjkQeYez+sUQmR6JBwxuV32Bw9cHYam3NE8DtS7D6DYhSh4Gp1Blafw7O3uZpvwBTjEbSzp8HJLkTwpQkuRNC5AvphnRmnZjFD3//AIC/sz+fvPAJz/s+b54AFAVO/QSb34f0FHAsAu3mqIWJRZ7QXwtDSUlBY2+PbcmSlg5HiAJLkjshhMUl6BMYsXMEh6MOA9CtXDdG1hqJo42jeQJIi4eNI+DsavW4ZGPo9C24FjNP+4VE5ny7555DYy0/foQwFfnfJYSwqIikCN7e/jZX4q/gaO3ItEbTaBbYzHwB3DwGv/aDu9fUEifNx0DD4WCu1biFiOxMIYR5SHInhLCYc3fOMWTHEG6n3sbHwYf5wfN5zvM58zRuNMC+mbBzqrpowj0QuiyCgNrmab8QSru/M4WslBXCpCS5E0JYxO4bu3l/z/ukZqRS1qMsX7X4iqJOZioxEncD1gyAsP3qceUu8PJMcHA3T/uFkKIo0nMnhJlIcieEMCu9Qc/Xp79m0dlFGBUj9YvVZ0bTGbjYupgngHNrYMMwdZ6drTO0+QKqvSIlTkws/eZNjImJaGxssCtd2tLhCFGgSXInhDCbi7EX+WjfR4TcDQGgS9kujKk3BhsrG9M3Hn4CdkyGqzvV4+I1oct34FnK9G2LzPp2duXLo7E1U1kbIQopSe6EECaXYcxgybklzD81nwxjBh52HoyvP57gEsGmb/xWCOycAn+rBZGxsoGGw6Dph6A1Q1IpAFlMIYQ5SXInhDAZvUHPnzf+ZOnZpZy9o27h1SygGePrj8fLwcu0jafGwbZxcPJHUIyABqr2gGajwSPItG2LLIx6PUm7dgFgX7GCZYMRohCQ5E4IkecuxF5gzaU1bArdRLwuHgBnG2c+rPMh7Uu3R2Pq+W3xN+GnbhCj9hZRvg00Hwu+lUzbrnio6E8/RRcSgtbNDefmzS0djhAFniR3Qog8kaBPYPPVzfx26TfOx57PfNzX0ZcOZTrQvVx3fJ18TR9I9Dn4sSskRoBzUei2GEo0MH274qHi1q4lbsVK0Gjw+2I6Nj4+lg5JiAJPkjshxFNTFIUTMSf47dJvbL22lTRDGgA2VjY0D2xOpzKdqFesHlpzFQQO3QMreoEuHrzKQa9f1fp1wiLSLl4kauIkALwGD8a5USMLRyRE4SDJnRDiqdxIvMHwncMzV74ClHEvQ5eyXWhbqi3u9u7mDeiv1bB2EBj0EFgfXlkOjp7mjUFkMiQkcHPoOyhpaTg1aoTX24MsHZIQhYYkdwWYkpFB2vnzpBw+TPKRIxhi71J89ixs/f0tHZp4xt1IvEHfP/oSlRyFg7UDrUu2pnPZzlT1qmr6+XT/lqFXV8Pun6MeV2gPnReCjb154xCZFKORiNEfkX79OjZ+fvh9/hkaKytLhyVEoSHJXQGUevYct+fNI+XYMYxJSVmei1u9Gp/hwy0TmCgQbibepN8f/YhKjiLINYhFLRfh7ehtmWDuXFH3hY04qR7XextemiL7wlpY7OIlJO3YgcbGhuJz5mDt4WHpkIQoVCS5K2D0169zo18/DPHqCkUrFxcca9fGyt6ehM2bSTl4CIZbNkbx7ApPCqffH/2ITI60bGKnKHD6Z9g0EtKTwd4d2s+Fiu3NH4vIQh8Wxq05ai+q75gxOFSpbOGIhCh8JLkrQAxJSdwY9DaG+Hjsq1Sh6MQJ2D/3HBqtlvTwcBI2byb17FkMSUlonZ0tHa54xkQkRdDvj35EJEdYNrFLjYNN78HZ1epxUCPo9A24FTd/LCILRVGImjQZRa/HqUED3Ht0t3RIQhRKMgmigFAMBsLfew/9lStY+/riP38eDpUqodGqw1M2xYtjExgIBgMpR4/+5/biN2zk5tB3yLh16z9fS+R/l+5eou8ffQlPCqeEawm+b/m9ZRK7q7vh6wZqYqfRQvNx8Po6SezyiYSNm0g+cACNrS1FJ4w3//xLIQQgPXcFRszMmSTv3oPGzg7/efMeWkvKqW5d4q5fJ+XQYVyaNXvqttKjY4gcPx4lNRVFr8d/wdfyTbwA23h1I5MPTiY1I5VAl0C+f+l7fBzNXKssPVXdF/bQV+qxZyl10YR/LfPGIR7JEB9P9LRpAHi9PQjbEiUsHJEQhZf03BUAcWvWEvv9IgD8pn76yDkuTvXrAZB86NB/au/W3C9RUlMBSNq9m/jffvtP1xP5U7ohnU8OfcLovaNJzUilfrH6/NjmR/MUIn5Q5Gn4tuk/iV2tvjBwnyR2+UzMjJkY7tzBtnRpivTta+lwhCjUCkVy16lTJzw8POjatWuWx+Pi4qhVqxbVq1encuXKLFy40EIR5o4hKZnUc+eI37SJW1/OJWr8eACKDBqIa5s2j3ydY926AOguXiQjNvap2k67eJH4X9VkzrVtWwCiP51Kenj4U11P5E9RyVH02dKHFRdXADCg6gC+Dv4aD3szrnrM0MOuabCwOdy6AE4+8L9V0HYW2DqZLw7xRCknThD3yy8AFJs4AY2trYUjEqJwKxTDssOGDaNv374sXbo0y+MuLi7s2bMHR0dHkpOTqVy5Mp07d6ZIkSIWivTRdJcucffnn0ncvoOMmJhsz7u8GIz30KGPvYZ1kSLYlSuHLiSElMOHcW3dOts56eHhJB89ilubNg/9Bh3z+XRQFFxatcLvs2mkR0SQeuIEEWPGErjo+zyrZaUYDMT+8AO6S5fwfvttbIrLnCpTiNfFM+ngJC7GXiTNkEZaRho6gw6dQQeAi60L0xpNo7F/Y/MGFnka1g6G6L/U4wrtoO0ccMp//zcLOyU9nagJEwFw69IZx9q1LRuQEKJwJHdNmzZl165d2R7XarU4OjoCoNPpUBQFRVHMHN2jKVEXSDwVxt3ly0k5ciTLc1pPT2yDgrANCsK+QgXcu3XNUWLlWK8uupAQkg9lT+4UReHmsOGknT1LwsZN+H85B6t7nw9A0t59JO/fDzY2+Lw3Ao1Wi9/UT7nasRMphw5xd/nPePZ69T+/7/ToaCJGfUDK4cMAJP6+BZ/3R+Leo4cUQs1D6cZ03tv9HocjDz/0+cpFKjO9yXT8XcxY9DpDD3umw76ZYMwAB09oMx0qdwGZ15nvpEdHc2vmLHSXLqH18MBn5EhLhySEIB8kd3v27GH69OkcP36cyMhI1qxZQ8eOHbOcM3/+fKZPn05UVBTVqlVj7ty51KlTJ0/aj4uLo0mTJly6dInp06fj5eWVJ9f9r+6M7UPspgNkpN4rxmplhUuL5rh374FD1Spo3dye6rpO9epzd9kPJB86qD6gKJk/NFMOHSLt7FkAkvft43q/NwlY8DVaNzcUg4GYzz8HwPPVV7ENCADAtkQJfEa+R/THU4j54gucX2iIbVDQwxtXFLXobOhu0CVClW7ZVjkm7txJ5OiPMMTFoXF0xK5kSdLOnSNq0mQSft9CsSkfYxsoe4X+V4qi8NmRzzgceRgHawc+a/QZvk6+2Gvtsbe2x05rh6e9p3kXysSHw0/dIOacelyxI7T5ApwtVCBZPJL+Zjh3vltI/K+/oaSnA+D70WgpVixEPmHx5C45OZlq1arRt29fOnfunO35lStXMmLECBYsWEDdunWZPXs2LVu25OLFi/jcWxFavXp1MjIysr1269at+Pn5PbZ9d3d3Tp8+TXR0NJ07d6Zr1674+mafMK7T6dDpdJnHCQkJuX2rOaco6MOuk5GqRWtvxL1dSzzeHo1NsWL/+bqOpTxBoyE97DrpH1fGxjoeeq8HvxrcWfgdAE6NGpF6+jSpJ08S9trrBH7/HYm7dqG7dAkrN1e8evdQh82srMG3Eh49e5K4fTspBw8R8eFoApcsxsr+3tZPafFwfoO6oXvoHox3I7n9twspt2yxcZqDbamy2NZth221RsRv2szdH34AwK5iBYrPmIFtiRLc/fEnYmbNIuXIEa526IjPe+/lSQ+huaRHRABg84R70Zx+vvAzKy+uRIOGzxp9RrPAp189nSfSEmB5dzWxc/SCl2dApY6WjUlkkx4Tw62Zs4jfsAEMBgAcatbE6+1BODdsaOHohBD3aZR8NA6p0Wiy9dzVrVuX2rVrM2/ePACMRiMBAQEMHTqUDz/8MMfX3rVrF/PmzWP16tWPPOftt9+mefPm2RZeAEycOJFJkyZlezw+Ph5XV9ccx5FTukshpC0biQu7sbK1hZ4/Q5ngp7/gX6thy2hIjiF0mxdpd2wpVucu7qVSoWJHUiuN4lqXrqDVUvqPPzAmJ3P9zX4Ybt3GppgXxsQ4DEkZ+NZKxbPM3X+u23sDlGxMekQEF15uhXVqOprixSj+0RicmzdHs7QdXNsLQMotWyKPeKBPfPzWUJ59+uA94l31fd+jv3GDyLHjModqi8+Zg2vLl57+8zATQ3w8l19qiZKeTtDPy7EvX97SIXEg/ACDdgzCqBh5t+a79K2chysbk27Bqt4QWE+tQZeTnj9Dutpjd3UnOPvCm9vBXXpn8xvFaORa9x6ZvftODRrgNWigzLETwkwSEhJwc3PLUd6Rrycw6fV6jh8/TnDwP0mNlZUVwcHBHDx48D9fPzo6msTEREBN0vbs2UP5R/zwHT16NPHx8Zl/bty48Z/bfxy7suVwm/gbVpXbg0EPK15VC7jepyhwdRf83BNmVoKbxx99MUM6bB0HyTGgtcOprDrMlWL7gvr8hY3EfqOWmXBt3Rpb/+LYly9H0E8/YeNfnPTI2xiSMrBxzsCj5L3EztpB/fuE2tOWUsSJ6R013HEBJTySm4OHcKPPa+jOHMCYYUVUdFPC/vRGn6jF2tsb3/Hj8O7/Cu61fHH00WPtYMDWJYOASUPx/fCDLIkdgG1AAIGLF+HZuzcA0VOnYkxJefyHmA9+b4lfuxZjfDxKSgo3hwzN3BbOUq7GXWXk7pEYFSPtS7fnjUpv5G0Duz6FsP2wdwZsn/Dkr4GiwMZ31cTOxhH+t1ISu3wqfs0a0s6excrZmaAVPxO46HtJ7ITIp/J1cnf79m0MBkO2YVJfX1+ioqJyfJ3g4GC6devG5s2b8ff3z0wMw8LCaNSoEdWqVaNRo0YMHTqUKlWqPPQadnZ2uLq6Zvljclpr6PI9lGsNGWnw8ytw5U84vkSt0r+sA1zcDAk34c+PH32dC5sgMQKcvOGDUJwGzAIgOeQWSvHa6BMUErbtBKBIv396cWwDAykxujN2bumgUfAdPhjNsOMwJhr6bPzn2vpkNl3dxMkgI8Pf0nIguBgaGxuSDx/n6hYfrvzhz92dIaAouHXuTKlNG/H83//wem8CxX7cRYkNeyg7qialX47BWffHI9+GxsoK73eHY1O8OBlRUdz+ekH2kzJ0asL5VX2YWRHOb8z1x55XFEXh7s9qKRFsbEi/cYPw999HuTec9VTXNBiImTGDW/Pmo+j1uXptvC6eIX8OITE9kRo+NZhQf0Lezqm7fQmOP7Aiff8cNcl7nL1fwMkfQGMFXReDX428i0fkGUNiIjEz1e8bXm+/jUP16pYNSAjxWPk6ucsr27dv59atW6SkpHDz5k3q168PQJ06dTh16hSnT5/mzJkzDBgwwMKRPoS1LXRfCqVbQHoK/NAJNgyDmL/Bxgmef13dhunqToj66+HXOKrOpaNmH7B1wqFGDTS2tmTExLDMLoDDVz1AUdDUrQFlS/7zOqMRm/OLKdnyFmWmvYZLr+HgVQZs7KF4TfAoqW7afvF31l5eC4DOVsPcOrH4/LYc5xJaMGrISMzAumhRAhZ+i9+nn6D9d2LsVhxaTbv3PnZB+IlHfhxW9vb4jhkDwJ0lS9Bdvao+kXpXTSRmV4H1Q9TPJzECVr4Kv72lPm9mKYcOob92DStHR0osXoTGzo7kPXu5PX/+U18zfsMG7iz8jtvz5hHW540cb/9mMBr4YO8H3Ei8gZ+TH7ObzcZWm8e1yLZPBMUA5dvAS1PUx/78GA5/+/Dzz/wCf947r/XnUL5V3sYj8szt+V+pBYpLlnym5rsKUVjl6+TOy8sLrVZLdHR0lsejo6MpWrSohaKyAGs7eOUnKHmv1ph7ILz0CYz4G9rP/Wfi+YF52V8b/bc6502jhZrqEJyVvT1K5XIAXNtzBNcQ9Yf8xNKnqf1TbVr/2pqwhDAI+R1uh6BxcMOm5b9q6Gk06mpX4MLpZZyPPY+NlQ3FnIphUAwcSzpIQP0bBDRLwHvY25TauAHnRo0e+RbX3D7B5LLPo9MA+2Y98rwf/v6BKdZbcGzSGNLTifr4Y5QD89Wh6R2TISkaXPzgxY+h4XC1R+jMSphfD0K2PvGjzkv3e+3cOnbAsVYtin08GYDbX31N4o4dub6eUafj1pdfqgcaDaknThDatRupZ8488bVfnf6K/eH7sdfaM6f5HDztPXPd/mNdPwQXNqqfd/BEaDAUmnygPvf7+3BquToEe+si7P8SlrSFNQPV5xsMhTr98zYekWd0V68S++OPgLoiVgoUC5H/5evkztbWlpo1a7LjgR+ERqORHTt2ZPa+FRo2DtBrDQzYA++cggZDwMFdfa7+EPXvs6vVchIPut9r99zLmWVHrsRdYa272uPV5YAR2wy46atwLVBd6HAz6SaLzy6GfbPV19buC/YPGYa+l9ytvav2GDYLaEaLwBYA7Lu0FgDnps3xGjQUrbPzI9/asnPLGH9gPKvSo1nn7Kyurr0Vku2826m3mXlsJptDN3PpjcZo7OxIOXiIxO8mqz2IvpWh0zcw7DQ0fAdenAR9t0KRMpAUBcu7qfO7jMZHxpIbxuRkDElJD30uPTo6M4Fzf+UVANzat8fjtdcAiBj1Abqroblq7+7PP5MREYm1ry8l1/yGbenSZERHE9brNeJ+ffQWcDuu7+DbM2rv2YQGE3jO87lctftEigLb1F1SqPEaeN+bt9p0NNQbrP573WCYUxXm14Ft49RfOBQDVOsJwZPzNh6RZxRFIfrTqZCRgXPTpo/9BU0IkX9YPLlLSkri1KlTnDp1CoDQ0FBOnTrF9evXARgxYgQLFy5k6dKlnD9/nkGDBpGcnMwbb+TxRPBngdYailUDq3+tNi3+PAQ1Uou+Hn5gHlpaPJy+N+frXs/I9YTr9N/an6PF1bIu2nt5Tt0ycRy8FsbCeuoP2k1X1hMfcQy0dlB30MPj8S6HvlhVNjmpiys6lulIo+LqN//9SWEoAFW7P/YtLT+/nOnHpmcer/byQ0GBA3Oynbv28loyFLXkzZ/p5yjS93UAok+6YajUS91vtNor6lD2fQG1YcDee0mGBo4tUnsk/4O0CxeIGDuWkAYNuRL84j9Dww+IW7UaDAYcatXEvly5zMd9R72PY61aGJOTuTl0KMZ7e/Q+iSExkTsLvgHA7q3XSQsqStDKFTi3aIGi1xM5Zgwxs2Zne11ofChj9qnD2L0q9KJtqbZP8Y6f4MJGuHFYXRDRdPQ/j2s00PITdeqAYoS466C1hdLNodVn8M5J6LQApDB1vpW0cxfJ+/ahsbHBd3TOqxMIISzL4t9Vjx07Ro0aNahRQ51IPWLECGrUqMH4e/ul9ujRgy+++ILx48dTvXp1Tp06xZYtWx5ai65Qa3Bv2PT4ErVmGKiJXXoyeD8HQY2ITIrkza1vciv1FpoKZdA4qbtP2JQIxKVJAzRA3WvHKO9RnjRjOmudnaB6T3B59Ge9K6g2cVotPooVDfwaULNoTeytbIjRaghx8oCyjy5X8svFX5h6ZCoAPZ/riY2VDedJ429bWzi9MksvpFEx8mvIr5nHe8P34l78MjZOGWSkaok55Urijh3cXbGCW3PnETl+ArfmzlNX1No6QqtPoeEw9cX71aFNJT2dW1/OJWL0R6SePffYj1fJyCBhyx9c69WL0I6diF/9K4pOhyEujhuDBmGIi/vn3PT0zH02PV7pmeU6Ghsbis+ehbWPD/orV4i+Vxj6Se58/z2GuDgMgcXokjGPlr+2ZOutvfjP/RKvIWrP7Z1vvyU9MjLzNcnpyQzfOZzk9GRq+tZkRK0ROWrrodISYOMIdeg79oFk1pCuzrUDqD8YXP9Vi1GjgbazoePX8MpyGBUKr62BegPBs9TTxyNMzqjXEz1tGgCefXpjW6KEhSMSQuSUxYsYN23a9Ilbfg0ZMoQh936AiUco8yJ4lYfbF9XVh/XehiML1edqv8nttDu8ufVNIpMjCXIN4ptW35G29xMSf9+CV//+aKo4wdUdaE4tp2ezd5h49yIrXF3oVe9tHleVbq2ilvZoH38XbfxNtB4lqG3lwl5jLPsCq1Le2u6hr1tzaQ0fH1JX+Pap1IcRNUcQr4tnc+hmVvmVptK183BwHrRSk7/DkYe5mXQTZxtnNBoNcbo4zoWuonRNDTf3FCHu17XE/bo2WzuJW7fiP/dLbIOCuF39FY6dWQSxZ7DeMR2vb/Zgd+YyoJZ5cGpQnyL9++NYrx4ajQYlI4OUI0dI+GMridu3Y7hzR72oVovLSy/i1qED0ZM/Jj3sOjeHv0vgwm/R2NiQuHMnGTExaIsUweWlF7PFZO3lhd9n07j+Rl/ifl6Bc6NGODdrxoqLK1AUhe7lu2Nt9c9/zfSYGGKXLgNgfp1Y0jBARjqj9oziSLkjfDBQ3aot5ehR4tetx2vgAKKSo5hyaApX46/i4+jDF02+wMbK5jFfycdIS4Afu8DNe1vg7Z0BJZtAzd5qXbs7l9XCww3eefjrrbRQ/X9P17awmDvffUf69etYe3tTZMBAS4cjhMgFiyd34uEURWF/xH4a+DXASpODDlYrK3Ue3vqhcOhr8CoHdy6BrQtUe4Xxez/geuJ1/Jz8WPjSQrwcvDBMnIjHKz1xrFNbHTZzC4D4G7TZt5CZ7nDTxpp9aVE04eG1/6KTo9kfcwyAjonJ6py/+kN44U44e90c2G9nTb+HvG7T1U1MODABgFcrvMqImiPQaDR0K9eNzaGb2axNZ6RGg/PxJdD4fXD0ZHWIWny6bam2xKfe5vfr29nl6ED1Tv/DI9CFpJ070XoVwdrLG2svL7Qe7sSt/hXdpUuEdu2G7YSR9Er6kgQvd0pGKrw/ehF2CZBqC2dKaqh9CZIPHCT5wEHsK1XCrlw5knbuzNIjp/X0xL1HdzxeeQWbez3HNsWKEdbzf6QcOkTUJ59g9f4gYpZ+q/7HatuCmPRYHBQHXG1ds5QdcapfH8++fYldtIjIMWMJnz+ST//6FIA/rv3BZ40/o6iTumjo9tdfo6SmcqW4FfvKZNAwJY2Kej3fubuxOmQ1Z26dYVqrlnD0KFGrljO57Fl2h+/BqBixsbJhVtNZeDk8els9472SKv+uLQio28T91FVN7Ozd1SkAV3aqW8iFPlB3sckHD5+XaQK6K1eI+Ogj3Dt3waPH44f9xdNJ2ruX2/PUVd0+749E6+xk4YiEELmRr3aoeJbkplJ0bimKwvCdw/nzxp9MbjCZTmU75eyF6WlqKZDkGLWmXfItqPMW5+r04ZVNr2ClsWJN+zWUcn/EcNie6ZmlKWZ4uLPE3ZWGfg1Z8OJD6skB3/31HXNOzOF5R3+WnjsAPhWh2Rhu/NqbNgF+WGus2fvKXpxt/1lMEZUcRfu17UnNSKVH+R6MqTsmM+lRFIWO6zpyNf4qY/X29AgPgSYfcrtef15c9SIZSgar263m8vaP+DA1hDIGWNPrsDrs+rCPIzqG8HffJfWEWlplTX0NqUVd6b4+DmuDhjtetqx4oyS7ra/gHafw6hlXGhxLBt0/9eO0Hh6kNKjCrjI6kquU4sMGY9D+a85j4p87uTl4MCgK2+s7EHwwFSMwdJCWW+7qe6tcpDLfvPQNrrb/3CtGvZ5rPV5Bd/4858vYM7FrOmisUFBws3NjSsMpNDAEceXll8FgZMKrWhx8dCxItsEhIZwDTi6M9i9BrD4Bd6M9c2clY6dXGPealov+GmoXrc3AqgOpU+yBfZjvXgNdEoprAMnHzxC/Zi2JO3ag6HRYubpi7eWV+ce1VQtcbsyBG4fA3g1eXw9+1eFuGJz8Uf2TGAFFysKgA1nnOpqIMSWF0G7d0V+5gpWzM2V27XzsYh2Re7qroVzr0QNjYiJuXTpTbMoU8+4xLIR4qAKzQ0VhpdFoqOGjzkGcfWI2Cfoc7mNrYw9131L/nXyv/lnt/pkrJduUbPPoxA6gxutwb+iuu9tzaNCwP2I/1+KvZTtVUZTM2nYdK/VSJ8rH/A27phKQkUGg1okMJYPDkYezvO7zo5+TmpFKNe9qfFT3oyw/NDQaDV3LqVu/rXJzUxdkHJzP+t9eJUPJoKptEcofX84LF/5Eqyhc1kK4/tH162x8fQhcspi/mqtzhTodVPjfmnisDRqc/dKo/05D5vVby7zm8zAULcLsxokMGqQl/H9NcHi1B39P7MGIEW68VvUA3zseZ8WVVRyOOpytHZfmzfAZ+R4AwQfVBRLnytuj83HLHF49e+csEw9MzDIFwcrWluJfTMdgo6XC5TR6nHFhdfvVVCxSkXhdPGPXD2HvyNfAYOREaQ0a33Tmle6JwzunoEwwDZITWR1noLZPTeKs0jhwr4P1zeulWNdhHYtaLsqa2EWeQfdJPaIHtOZSg9rc6P8WCZs3o9zbM9mYkID+6lV1KHrzZm6+8x7xe0/fS+zWqYkdgEcJaD4Ghv8Fb2yBNzabJbFTFIWoSZPRX7mixpuURNzKX0ze7uMYU1KIXb6ctIvZV3c/iwyJidwcPBhjYiIONWpQdEIeF7oWQpiFJHf51KsVXqWkW0li02L5+tTXOX9hrX7/bA1Wsgkh1vDnjT/RoKF/lSfUEnPxVVc2WlkT0HQcjf3VunorLq7IdurJmJOEJYThYO1Ay7KdoFxL9Ylodd/JF4qrm4jvi9iX+Zp94fvYFrYNrUbLuHrjHjrc3L50e2ytbLmYGs1fPmUw6hP5NTUMgK7hIbB/Nm5GI9Xt1GHGPTf3PPYtLbq4jI/rhjO3ow2KvTr/z+t/7fBvFIv24mpIiqFJQBN+bf8rjf0bc8chnXdL7Kd94G9M1P1KWIo6z6+MexmAzIT23zz79uXvuv8sPGkzYjb7e+7n5GsnWd5mOdZW1mwL28YvF7MmI1He1ixtoX4OnbYlUfRwKHOuNuDbFe4snGvA7+xtjMDeRlYsaDYXl+DJaiLV8Wtw8sY7+jwLjd6MqzeO0q+qX9+SxyIIsv1XHUijkbRFQwnd7E7sRWcMaVq0tgY8yiYR9OItynWKpFTrGAKb3cavUSquZdQkNOKwO4klxz585witNZSoD84+j/0a5JX439YQv24dWFnh3k39JSB22bJc79SRl6KmfEL05I8J7dCBGwMHkXLi0QW48zvFYCD8vffQh4ZiXbQo/nO/fPhQvRAi35PkLp+y0drwYR219MDPF37m0t1LOXuho6e6KtTKGhqPZOEZdVHFiyVefHyv3X1tpsP7VyDoBXo+p670XHd5HcnpyZmn3Ei4wZwTaqmSVkGtcLRxzKx5B4BXOV4o2wFQEzpFUdAZdHx6WJ1T9r8K/6O858Pn8bnZudEySE0UV1VsxtEXx3DdxgYnjTUtn+sGlTpB7TdpUlGtkr/7xu6HXgdg7829fHlCXRnbrO84ym7ZQsl1a/Ee9xka/1pg0MFhtbyIl4MX85rPY2zdsdhr7VFQqFSkEpMaTGJHtx1MaagOV/95/c+H9qTeTr3Np01i2VdRg/alpji98ELmc1W8q/Du8+8Cas/lhdgLgNoTNe3INLZUN3K1siea9AzChw/n7lcLcA+9DUCYL6xsb8fkAevweHDlsbMPdFSHy7VHv6W7xo2XOgzHJiAAY3Iyidu2ZYlPOf4DERvCUYwaHCpXwH/mNMqu+4Gin8zEoctItM93xK5MWZyKGXErfhe/mpG4lU4HRUP4lHkk7duf7T0bEhOJ37CBpN27Md7r/TOVtJAQoj5WF+B4v/MOvuPGYe3tTUZ0NPGbNj/ydbrQUJPFlnruHPFr1qgHGg1Ju3YR9r9XudarF0l79jxxoZg5KIqS4/2Mb82aRfKevWjs7PCfNw9rr0fP0xRC5G+S3OVjDfwa0CKwBQbFwNQjU3P+w6Lph/BRJKGeAfxxTd2r9a2qb+XstVbazOLI9f3qE+QaRFJ6EhuvbCRBn8CMYzPosK4DJ2JOYG1lnZkAUrYl2Lmp/67SnVpFa2NrZUtUchRX4q6w6K9F3Ei8gY+DD29Xe/uxIXQrryaKW27uZnGqWnajbbkuOLadA92WwMszaFJCLZZ8JOoIKekp2a5xPeE6H+z9AAWFruW60q1cN2yKFsW+fHm1PMf9sihHvwOdWohYoyj0sPZig01p1liXYkWp/9G5VHscbRypWKQiZdzLoDPo2BK6JVt7m0M3o9cq7OkZSLlez6MxpGV5/rWKr9HEvwl6o573d79PcnoyO2/sZF/4Pqy1NlScPh8bf3+snJxwqeRFsTp3KdMhiuBxPRj/6RF8PEpn/6DKBv9TJHjtIDRJ0bh16ghA3Jq1/5yXEsud2VPQxdmgdbLDf8G3uLTpgKZkXajaTb1fui2BwYfgo0h4+xCaHssotmgzLi1boqSnc3PIEFKOqYtn0kJCiJw4kUtNmhLx/ihuDBjIpfoNuDlsOPEbNmCIj8eo06G7dInE7du58/33RE35hMTt2x/7dX8UY3Iy4cPfRUlLw+mFFyjyVn+sbG3x7K3WOYxd9P1D/2/cWbSYq63bED1lylO1+ziKohAz7TNQFFxffpnSv29WexNtbEg9dpwbbw3g7rJled5ubsVM+4yQuvW4MXAQunvD2f9mSEjg1pdfcue77wEo9sknOFSuZM4whRB5TBZUPCVTLqh4UHhSOB3WdkBn0DG9yXRaBeV8/80x+8aw/sp6mvo3ZW6LuU/V/k/nf2LakWn4OPqQbkjnrk6d49bArwEja42krEfZf04++h38vQ66LAJnbwZuG8j+iP10L9edtZfXojfqc/QeFEWh07pOXIn/54fRqnarsuysoCgKbX5rw82km8xuNjtzZwyAJH0SvTb34kr8Fap5V2NRy0XZ91E1GmBeLbVmW7MxYOsER7+H2H/9AHT1h9r94PneLL22kS+OfUFVr6r89PJPWU7rsrYDIfFXGXc7lu6JSWppkIbD1NfaqisN49Li6Lq+E9Gpt2mVruWMVQYRWg1vulVhWOW+KG5BsGEYmuv71O3i2s5Sy408ToYOvmuh7iscWJ/0xjO53K4rKApldmzHpnhxdIsHEDp9N4pRQ7FPp+Deucvjr/ng10Kv58bQoSTv3oOVkxN2FZ4j9djxzOdtS5bEmJJCxoNbBGq16i4gD/nW4vryyxQdPw6tm1uO2jemphI5fgIJGzZg7eNDybVrsPZUt04zJCZyuWkzjMnJBHyzAOcmTTJfl7R/Pzf6vwVGI1ZOTpQ9eCBPhxgTtm0jfOg7aOzsKP37Zmz8/AB1Z5Lb8+YRt2o11kWLUmbHdjTaxxUTMp3EnTu5OeiBX6S0Wty7dsV76BCsvbzIiI0ldslS7i5fjvHeTitF+vfH573/UA9RCGEyuck7JLl7SuZK7gC+OvUVX5/+Gl9HX9Z3XK8Ogz7BzcSbtF3TFoNiYHmb5VTxrvJUbSfqE2mxqgWpGepCgVJupRhZayQvFH/hiROtf/j7Bz4/+k+R3vrF6vPNi9/kaIL2/aQS1JWmP7f9Ods5nx35jB/P/0jnsp2Z1GASAAajgWE7h7H75m58HHxY0XYF3o7eD2/k6Pew6V8/yOxc1S2xbJ3gxFJIuVfbztqe2xVeJjjpOAaMrOuwLnOY++LpZXQ9NR0bRWFnxG3cHLwhXt1hBSdvNclzLQ6nfuLEzX30LeqN4d5nUDQjg3U3I3F88L+hrTN0Xwplgp/4OQHqVm0Lm4E+CdwDCTvyHCknzuI1dAhe7esS9r/upN6yw+n5igT8tDrXE+SNaWnceGsAKUfu1bnTanEJDsajZ08c66oLNtLOniNxx3aSduxAd0mtHWjl7IxtiRLYliiBxtGB+DVrwWDA2teXYp9+gnPDhlnaURSFjMhIUk+dIuXkKVJPniTtwgXIyAArK0osW4pjrVpZXhP9+XRiFy3CsXZtSvyg9pTpb9wgtGs3jA8MRwZ8+w3OjRvn6n0/8vPQ67nath3p169TZMAAfN4dnu35y40aY4iPJ2DhtxbZsivj9m2utu+AITYWt06dMCYlkrhN7Tm1cnTEuWkTEv/ciZKm9jDblS1DkQEDcX25jSygECKfkuTODMyZ3KVlpNFxXUfCk8LpX6U/g6sP5nLcZU7fOs2pmFNEpURRr1g9Wge1JsA1AIBJByexOmQ1Dfwa8M2L3/yn9n86/xOrLq6ix3M96Fqua46L4YbGh9J+bXsAbKxs+K39bwS5BeXotfG6eFqsaoHOoGNi/Yl0KZe9t+lgxEHe2vYWReyL8Gf3P7HSWDHr+CwWnV2EndaOJa2WUNmr8qMbSU+FuTUhIRx8q6i9bFW6gd290hrpaXD2VzjyDUSeBmCojxe7nBx5w6EkI+p9BOc3MOPCjyxxdyU4Q8ustsvBqyycWQm7P4e4sGzNfleiMnOs1Hl7M4u+yIuJ8RBxUu01dA9Ud3IomstkPOosrOwFd0OJv+5KxAFnbPz98SyXQPSfCWhsrSi1eSu2/sVzd917DEnJ3Jo9G627O+7dumbW+XuY9KgoNDY2aD09syQKqWfOEDHqA/TXrgHg8b//4VCjBmkXzqM7f560v89nqSt4n7WPD97DhuHepfND27oc/CJkZBD0y0rsypTh2is90YWEYF+1KnZlyhD/22+4d+9OscmTcvx+FUVBF3IJ26ASWNllLcR9Z9FiYj7/HK23F6V/3/LQGnBRn3zK3R9+wKVlS/znzM5xu4l//smtWbPw7NMH9y4572H9d+w3Bw4iafdu7MqVI2jVL1jZ2ZFy7BjRn31O2l9/ZZ5rX7kyXgMH4Ny8ORrZBk6IfE2SOzMwZ3IHsCNsB8N3Dcfayho7rV2WBQ4PqlykMs0Dm/PV6a/IMGawpNUSavrWNHl8D/Pg0OmAqgMYUiN3u4ysv7KeM7fO8H7t97HTZt/pIt2QzgsrXiAlI4WfX/6Z0PhQPtr3EQDTGk3j5VIvP7mRxChIvg2+ldS5eA9/I3DzKJz+mR2XNzDcwwGvDAPbboSjAV4M8OOWtTVzGk+neckHhpwN6eoWcAfmQkaamjhW/x9Gz5LMPjEbWytbBlcf/E8CpEtSewyftuck9S6sGYjx7z+4tNYXY4YVaBRQNPi+NwTP/oOf7rp5yJiaSswXM7j7008PP8HaGvvy5XGoUQOHGtVxrF4daz+/x/YmRXw4mvi1a3F56SXQWpH4+xa0Xl6U/HU1ukuXufHmm2i9vCi7e1eOhkiNej2RY8ZmDgV7DRqIe5cuaGxtyYiN5UrLVhgTEyk25WPcu3Z96DXSLl4ktENHsLGh7O5dmUPJj5MeFcXVdu0xJiYC4PX223gNHZLrnrS7K1YQNXESGltbglatwr78P3sbK0YjCb//TvLefbi2bYtTwwbSUyfEM0KSOzMwd3KnKAoDtw/kQMQBABytHanqXZXqPtXxsvdix/UdHI46jFExZr6mpm9NlrRaYvLYHudkzEmORh2lT6U+2ee95YERu0awLWwbTQOaciD8AHqjnjervMmw54fleVsA6foUWqxqzt2MZObfTsBaa8sAD3vc7dz5s9uf2GifcouvvGI0wt4viPxsPnFX1eF7h9JFKbHecnO/HiZp335uffklGo0G+0oVsatQAfsKFbErWyZbT9mTpIWEENq+wz8PWFtTYukSHGvWRNHrCWn4AsbEREosX47j8w8p6fIAQ1wcN4cMzVw8cp+Nnx9ebw8i9a+zxK1ciV2FCpRcveqxn2lo126knT2Lz4cfUKRPn8e2qygKN97sT/L+/Wi9vTDcUldLu3XqRLHJk9DY5Oy+0l29SmjnLihpafiO/hDP3k+YsymEeGbkJu+Q7ceeERqNhulNprM/fD+l3EpRxr1Mlp0SejzXgzupd9gatpUtoVu4lnCNd2u+a8GIVTV8amQWZDaFJv5N2Ba2jV03dgHQNKApQ2sMNVl7NraOvFy2Ez+e/5G1NTqqCeu1LbQKamX5xA7UbeiajMItwYO492ei0UKxmQvyVWIH4PxCQ5xfaPjkE3PAvlw5nJo0Jnm3WvOw6NgxONZUe6s1trY4N2lCwsaNJG7f/tjkTh8Wxo0BA9Ffu4aVszN+X0wn/WY4t79ZQHpEBJFjx2We6/vBB0/8TN27diHq7Fnif/0Vz969H9tDFvfLKpL370djZ0eJpUtJOX6cqImTiF+zhoyYGIrPmfPELcAUvZ6Ike+rq4ob1Mfjtdcee74QouCSnrunZO6eO/Fwd1Lv0OyXZigolHEvw49tfsTJxrT7YF6MvUjXDV2xtrLGxsqG1IxUfmrzE1W9q5q03dyKX7cO6yJeOOVREpWfpf51lut9+uDetQs+H36YJZFK2PIH4cOHYxMYSOk/tjw0yUo5cZKbgwdjuHsXa79iBH7zDXZl1ZXgxtRU7v68gjsLF2K4exfn4BYEzJv3xJgMiYlcatQYJS2NoJUrcKhW7aHn6W/c4GqHjigpKVl6+ZJ27+bm8HdRUlOxq1ABv2nTsgyxPkh36RLRU6eSfOAgWjc3Sq5fj42veYpLCyHMQ4ZlzUCSu/xjwoEJnIw5yVctvsLfxd8sbXbf0J3zsecBCHINYn3H9TJ3ycIURXno18CYnExI/QYoej0l16/DvlzWBCnl6FGu93sTRa/HvnJlAr7+Cmvv7CusjcnJJB85glO9elg5OOQopogPPiB+3Xrcu3Wj2MeTs8dsNHK9dx9Sjh7FsVYtApctzbKwIfWvs9wYOBDDHXXVtlPDhnj2fQOnBupcuYzbt7k1dx5xq1apQ/I2NvjPmY1L8+Y5ik8I8eyQvWVFoTKpwSTWd1xvtsQOoEOZf+Z4tS3VVhK7fOBRXwMrJyecGjQAIGnHjizPGZOTifhwNIpej3PTppRYtvShid3967g0a5bjxA7A7d6K14TNmzGmZC+2fffHH0k5ehSNoyPFpn6abcWqQ5XKBK1ciUurVmBlRfL+/dzo9yahHTsRPe0zrrRsRdzKlWA04vLSS5TetFESOyGEJHdCPI2XS76MvdYerUZL29JtLR2OeAKXYLXI9f1ab/fFzJxFeng41n7F8PviC6wcn1xDMjcca9fGpkQgxuRkErb8keW55EOHiZkxEwDfUe9jGxDw0GvY+hfHf/YsSm/9A4/XXkPj6Iju4kVilyzBmJyMfeXKlPjxB/y/nINtYGCexi+EeDbJsOxTkmFZcebWGXQGHbWL1rZ0KOIJMmJjufRCIzAaM3fuSDl6lLDX1C3MAr7/LltR5bxy+5tvuTVrFg41a1Lih2Uk7drNnYULST15EgCnBg0I+P67HPf+GuLjubvyF5IPHMC9cydc27aVGnVCFAIy584MJLkT4tlyrVcvUo8dx/ejj3Dv1pWrHTqSfv067t26Uuzjj03Wbnp0DJebNQOjEduSJdGHhgKgsbHBrWNHfN4bgdbd3WTtCyEKBimFIoQQ/+ISHEzqseMkbt9Oeng46devY120KD6jRpm0XRtfH5wbNyZp1y70oaFYOTvj0fMVPF57DRsfWdEqhMh7ktwJIQoFl+BgYqZ9RsqxY6QcPQpAscmT0Lq4mLxt7xHvoqSn41ivLh6vvGKWNoUQhZckd0KIQsHW3x+7555Dd+ECAG4dO+LcuLFZ2rYvV47A778zS1tCCCGzcIUQhYZLC3XVrLW3N76jP7RwNEIIYRrScyeEKDQ8+/TGEB+PW4cOaN3cLB2OEEKYhCR3QohCQ+viQtGxYywdhhBCmJQMywohhBBCFCCS3AkhhBBCFCCS3AkhhBBCFCCS3AkhhBBCFCCS3AkhhBBCFCCS3AkhhBBCFCCS3AkhhBBCFCCS3AkhhBBCFCCS3AkhhBBCFCCS3AkhhBBCFCCS3AkhhBBCFCCS3AkhhBBCFCCS3AkhhBBCFCCS3AkhhBBCFCDWlg7gWaUoCgAJCQkWjkQIIYQQBd39fON+/vE4ktw9pcTERAACAgIsHIkQQgghCovExETc3Nwee45GyUkKKLIxGo1ERETg4uKCRqN56Dm1a9fm6NGjj73Oo85JSEggICCAGzdu4OrqmicxW0pOPof83uZ/vd7TvD43r8npuU8673HPF5R7siDcj3lxzfxwT8r3SFVBuCcLwv2Yk/Ms+T1SURQSExPx8/PDyurxs+qk5+4pWVlZ4e/v/9hztFrtE7/ATzrH1dX1mf/GlZPPIb+3+V+v9zSvz81rcnruk87LyXWe9XuyINyPeXHN/HBPyvdIVUG4JwvC/ZiT8yz9PfJJPXb3yYIKExo8eHCenPOss8R7zOs2/+v1nub1uXlNTs990nlyPz47bRaEe1K+R6oKwj1ZEO7HnJz3rNyPMiybTyUkJODm5kZ8fPwz/1upKBjknhT5idyPIr/JT/ek9NzlU3Z2dkyYMAE7OztLhyIEIPekyF/kfhT5TX66J6XnTgghhBCiAJGeOyGEEEKIAkSSOyGEEEKIAkSSOyGEEEKIAkSSOyGEEEKIAkSSOyGEEEKIAkSSuwIgLi6OWrVqUb16dSpXrszChQstHZIoxG7cuEHTpk2pWLEiVatWZdWqVZYOSQg6deqEh4cHXbt2tXQoohDauHEj5cuXp2zZsnz33Xcmb09KoRQABoMBnU6Ho6MjycnJVK5cmWPHjlGkSBFLhyYKocjISKKjo6levTpRUVHUrFmTkJAQnJycLB2aKMR27dpFYmIiS5cuZfXq1ZYORxQiGRkZVKxYkZ07d+Lm5kbNmjU5cOCASX9GS89dAaDVanF0dARAp9OhKAqSswtLKVasGNWrVwegaNGieHl5ERsba9mgRKHXtGlTXFxcLB2GKISOHDlCpUqVKF68OM7OzrRu3ZqtW7eatE1J7sxgz549tGvXDj8/PzQaDWvXrs12zvz58wkKCsLe3p66dety5MiRXLURFxdHtWrV8Pf35/3338fLyyuPohcFjTnux/uOHz+OwWAgICDgP0YtCjJz3pNC5NZ/vT8jIiIoXrx45nHx4sUJDw83acyS3JlBcnIy1apVY/78+Q99fuXKlYwYMYIJEyZw4sQJqlWrRsuWLYmJick85/58un//iYiIAMDd3Z3Tp08TGhrK8uXLiY6ONst7E88ec9yPALGxsbz++ut8++23Jn9P4tlmrntSiKeRF/en2SnCrABlzZo1WR6rU6eOMnjw4Mxjg8Gg+Pn5KVOnTn2qNgYNGqSsWrXqv4QpCglT3Y9paWlKo0aNlGXLluVVqKKQMOX3yJ07dypdunTJizBFIfU09+f+/fuVjh07Zj4/bNgw5aeffjJpnNJzZ2F6vZ7jx48THByc+ZiVlRXBwcEcPHgwR9eIjo4mMTERgPj4ePbs2UP58uVNEq8o2PLiflQUhT59+tC8eXNee+01U4UqCom8uCeFMJWc3J916tTh7NmzhIeHk5SUxO+//07Lli1NGpe1Sa8unuj27dsYDAZ8fX2zPO7r68uFCxdydI2wsDDeeuutzIUUQ4cOpUqVKqYIVxRweXE/7t+/n5UrV1K1atXMuSk//PCD3JPiqeTFPQkQHBzM6dOnSU5Oxt/fn1WrVlG/fv28DlcUMjm5P62trZkxYwbNmjXDaDQyatQok1ezkOSuAKhTpw6nTp2ydBhCAPDCCy9gNBotHYYQWWzfvt3SIYhCrH379rRv395s7cmwrIV5eXmh1WqzLYCIjo6maNGiFopKFFZyP4r8Ru5JkZ/l1/tTkjsLs7W1pWbNmuzYsSPzMaPRyI4dO2TIQJid3I8iv5F7UuRn+fX+lGFZM0hKSuLy5cuZx6GhoZw6dQpPT08CAwMZMWIEvXv3platWtSpU4fZs2eTnJzMG2+8YcGoRUEl96PIb+SeFPnZM3l/mnQtrlAURV1+D2T707t378xz5s6dqwQGBiq2trZKnTp1lEOHDlkuYFGgyf0o8hu5J0V+9izen7K3rBBCCCFEASJz7oQQQgghChBJ7oQQQgghChBJ7oQQQgghChBJ7oQQQgghChBJ7oQQQgghChBJ7oQQQgghChBJ7oQQQgghChBJ7oQQQgghChBJ7oQQQgghChBJ7oQQ/9muXbvQaDTExcVZOhSz0Wg0aDQa3N3dTd5WUFAQs2fPNnk7+d3EiRMzP3f5PIR4NEnuhBC50rRpU4YPH57lsQYNGhAZGYmbm5tlgsIyCebixYsJCQnJPF6yZIlJkr2jR4/y1ltvZR5rNBrWrl2b5+3kdyNHjiQyMhJ/f39LhyJEvmZt6QCEEM8+W1tbihYtaukwzM7d3R0fHx+Tt+Pt7W2S66anp2NjY2OSa+eWXq/H1tb2sec4Ozvj7OyMVqs1U1RCPJuk504IkWN9+vRh9+7dzJkzJ3N47Nq1a9l6ze73YG3cuJHy5cvj6OhI165dSUlJYenSpQQFBeHh4cE777yDwWDIvL5Op2PkyJEUL14cJycn6taty65duzKfDwsLo127dnh4eODk5ESlSpXYvHkz165do1mzZgB4eHig0Wjo06cPAEajkalTp1KyZEkcHByoVq0aq1evzrzm/dg3bdpE1apVsbe3p169epw9ezZPPq+OHTtmeWz48OE0bdo087hp06YMGTKEIUOG4ObmhpeXF+PGjUNRlMxzHhyWDQoKAqBTp05oNJrMY4B169bx/PPPY29vT6lSpZg0aRIZGRmZz2s0Gr7++mvat2+Pk5MTn3zySbaYJ0+eTOXKlbM9Xr16dcaNG5d5/N1331GhQgXs7e157rnn+Oqrr7Kc/8EHH1CuXDkcHR0pVaoU48aNIz09PfP5iRMnUr16db777jtKliyJvb09AKtXr6ZKlSo4ODhQpEgRgoODSU5OfvgHLIR4KOm5E0Lk2Jw5cwgJCaFy5cpMnjwZUHuVrl27lu3clJQUvvzyS1asWEFiYiKdO3emU6dOuLu7s3nzZq5evUqXLl1o2LAhPXr0AGDIkCH8/fffrFixAj8/P9asWUOrVq3466+/KFu2LIMHD0av17Nnzx6cnJz4+++/cXZ2JiAggF9//ZUuXbpw8eJFXF1dcXBwAGDq1Kn8+OOPLFiwgLJly7Jnzx569eqFt7c3TZo0yYz3/fffZ86cORQtWpSPPvqIdu3aERISYpaeraVLl9KvXz+OHDnCsWPHeOuttwgMDKR///7Zzj169Cg+Pj4sXryYVq1aZfZi7d27l9dff50vv/ySRo0aceXKlcyh3AkTJmS+fuLEiUybNo3Zs2djbZ39R0Dfvn2ZNGkSR48epXbt2gCcPHmSM2fO8NtvvwHw008/MX78eObNm0eNGjU4efIk/fv3x8nJid69ewPg4uLCkiVL8PPz46+//qJ///64uLgwatSozLYuX77Mr7/+ym+//YZWqyUyMpKePXvy+eef06lTJxITE9m7d2+WRFcIkQOKEELkQpMmTZRhw4ZleWznzp0KoNy9e1dRFEVZvHixAiiXL1/OPGfAgAGKo6OjkpiYmPlYy5YtlQEDBiiKoihhYWGKVqtVwsPDs1y7RYsWyujRoxVFUZQqVaooEydOfGhc/45BURQlLS1NcXR0VA4cOJDl3H79+ik9e/bM8roVK1ZkPn/nzh3FwcFBWbly5SM/B0BZs2ZNlscWL16suLm5ZR737t1b6dChQ5Zzhg0bpjRp0iTzuEmTJkqFChUUo9GY+dgHH3ygVKhQIfO4RIkSyqxZsx7bdosWLZRPP/00y2M//PCDUqxYsSyvGz58+CPf032tW7dWBg0alHk8dOhQpWnTppnHpUuXVpYvX57lNR9//LFSv379R15z+vTpSs2aNTOPJ0yYoNjY2CgxMTGZjx0/flwBlGvXrj02vn9/HkKIrKTnTghhEo6OjpQuXTrz2NfXl6CgIJydnbM8FhMTA8Bff/2FwWCgXLlyWa6j0+koUqQIAO+88w6DBg1i69atBAcH06VLF6pWrfrIGC5fvkxKSgovvvhilsf1ej01atTI8lj9+vUz/+3p6Un58uU5f/58Lt/106lXrx4ajSZLLDNmzMBgMOR4ftnp06fZv39/lqFWg8FAWloaKSkpODo6AlCrVq0nXqt///707duXmTNnYmVlxfLly5k1axYAycnJXLlyhX79+mXpWczIyMiyoGblypV8+eWXXLlyhaSkJDIyMnB1dc3STokSJbLMJ6xWrRotWrSgSpUqtGzZkpdeeomuXbvi4eGRo89ACKGS5E4IYRL/Hs7UaDQPfcxoNAKQlJSEVqvl+PHj2RKa+wnhm2++ScuWLdm0aRNbt25l6tSpzJgxg6FDhz40hqSkJAA2bdpE8eLFszxnZ2f39G8uh6ysrLINKT447ywvJSUlMWnSJDp37pztufvz2QCcnJyeeK127dphZ2fHmjVrsLW1JT09na5du2a2A7Bw4ULq1q2b5XX3v24HDx7k1VdfZdKkSbRs2RI3NzdWrFjBjBkzspz/71i0Wi3btm3jwIEDbN26lblz5zJmzBgOHz5MyZIlc/ApCCFAkjshRC7Z2tpmWQSRV2rUqIHBYCAmJoZGjRo98ryAgAAGDhzIwIEDGT16NAsXLmTo0KGZKy0fjK1ixYrY2dlx/fr1LPPrHubQoUMEBgYCcPfuXUJCQqhQocJ/ek/e3t7ZFmacOnUqW5J7+PDhbLGULVv2kb12NjY22b4Gzz//PBcvXqRMmTL/KWYAa2trevfuzeLFi7G1teWVV17JnMPo6+uLn58fV69e5dVXX33o6w8cOECJEiUYM2ZM5mNhYWE5aluj0dCwYUMaNmzI+PHjKVGiBGvWrGHEiBH/+X0JUVhIcieEyJWgoCAOHz7MtWvXcHZ2xtPTM0+uW65cOV599VVef/11ZsyYQY0aNbh16xY7duygatWqvPzyywwfPpzWrVtTrlw57t69y86dOzMTsBIlSqDRaNi4cSNt2rTBwcEBFxcXRo4cybvvvovRaOSFF14gPj6e/fv34+rqmjn5H9RVokWKFMHX15cxY8bg5eWVbaVrbjVv3pzp06ezbNky6tevz48//sjZs2ezDQlfv36dESNGMGDAAE6cOMHcuXOz9XI9KCgoiB07dtCwYUPs7Ozw8PBg/PjxtG3blsDAQLp27YqVlRWnT5/m7NmzTJkyJdexv/nmm5mf7f79+7M8N2nSJN555x3c3Nxo1aoVOp2OY8eOcffuXUaMGEHZsmW5fv06K1asoHbt2mzatIk1a9Y8sc3Dhw+zY8cOXnrpJXx8fDh8+DC3bt36z0m2EIWNlEIRQuTKyJEj0Wq1VKxYEW9vb65fv55n1168eDGvv/467733HuXLl6djx44cPXo0s0fNYDAwePBgKlSoQKtWrShXrlxmCY7ixYszadIkPvzwQ3x9fRkyZAgAH3/8MePGjWPq1KmZr9u0aVO2Yb5p06YxbNgwatasSVRUFBs2bHhi3bV/MxqNWVagtmzZknHjxjFq1Chq165NYmIir7/+erbXvf7666SmplKnTh0GDx7MsGHDshQt/rcZM2awbds2AgICMhPFli1bsnHjRrZu3Urt2rWpV68es2bNokSJErl6D/eVLVuWBg0a8Nxzz2Ubfn3zzTf57rvvWLx4MVWqVKFJkyYsWbIk8zNt37497777LkOGDKF69eocOHAgSxmVR3F1dWXPnj20adOGcuXKMXbsWGbMmEHr1q2f6j0IUVhplH9PCBFCiEJk165dNGvWjLt37+ZqdwmNRsOaNWuy9O5NmzYts3cup5o2bUr16tXz3XZaiqJQtmxZ3n777Xw3JBoUFMTw4cOz7ZQihFBJz50QQjylnj174u/vT0pKCidOnGDx4sUEBwdbOqz/7NatW8ybN4+oqCjeeOMNS4eT6dNPP8XZ2TlPe4uFKIhkzp0QQjyFS5cuAeoKz2+//ZbJkycTHBzM+PHjLRzZf+fj44OXlxfffvttvipDMnDgQLp37w6Ybks2IQoCGZYVQgghhChAZFhWCCGEEKIAkeROCCGEEKIAkeROCCGEEKIAkeROCCGEEKIAkeROCCGEEKIAkeROCCGEEKIAkeROCCGEEKIAkeROCCGEEKIA+T92t2m/aKU29wAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f,ax = plt.subplots(1,1,figsize=(7,5))\n", + "ax.set_xscale(\"log\")\n", + "ax.set_yscale(\"log\")\n", + "ax.set_xlabel(\"timestep [Jupiter years]\")\n", + "ax.set_ylabel(\"relative energy error\")\n", + "ax.plot(dt_samples/sim.particles[1].P,Emax_wh,label=\"WH\")\n", + "ax.plot(dt_samples/sim.particles[1].P,Emax_saba4,label=\"SABACL4\")\n", + "ax.plot(dt_samples/sim.particles[1].P,Emax_whckl,label=\"WHCKL\")\n", + "ax.plot(dt_samples/sim.particles[1].P,Emax_saba1064,label=\"SABA(10,6,4)\")\n", + "ax.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that the higher order SABA4, WHCKL, and SABA(10,6,4) integrators are doing significantly better than the standard WH method. For very small timesteps the methods are limited by double floating point precision. The SABA methods appear to be slightly better than the WHCKL method above, but note that the SABA methods are also much slower than the WHCKL per timestep. Taking this into account, the WHCKL has a slight advantage for timesteps larger than 1% of the shortest orbital period. For extremely high accuracy, the SABA(10,6,4) method is faster." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that by default all integrators set `safe_mode=False` and `keep_unsynchronized=False`. Depending on your application, you might want to change these flags." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/Holmberg.ipynb b/rebound/source/docs/ipython_examples/Holmberg.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..107bb6b1f83effa7bdbe42f071e62cd4ee114ca6 --- /dev/null +++ b/rebound/source/docs/ipython_examples/Holmberg.ipynb @@ -0,0 +1,233 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Holmberg\n", + "In 1941, Erik Holmberg performed arguably the first N-body simulation on the dynamics of interacting galaxies. He used light bulbs to simulate the gravitational interaction of stars as both gravitational force and light intensity fall of as $1/r^2$ with distance. This notebook recreates Holmberg's N-body simulation. Instead of lightbulbs, we use REBOUND. More information about Erik Holmberg can be found on [wikipedia](). His paper can be found on [ADS](http://adsabs.harvard.edu/abs/1941ApJ....94..385H)." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T14:23:10.051870Z", + "start_time": "2023-09-24T14:23:09.708792Z" + } + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, we setup the initial conditions of one galaxy. The velocities are chosen such that the particles are initially on approximately circular orbits. The arrangement roughly matches that of Holmberg's experiment." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T14:23:10.058351Z", + "start_time": "2023-09-24T14:23:10.053319Z" + } + }, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "\n", + "sim.add(m=1) # central object\n", + "\n", + "# 4 rings\n", + "lamps = [{\"N\": 6, \"m\": 1, \"r\": 1, \"v\": np.sqrt(4.1/2)},\n", + " {\"N\": 8, \"m\": 1, \"r\": 2, \"v\": np.sqrt(9/2)},\n", + " {\"N\": 10, \"m\": 0.7, \"r\": 3, \"v\": np.sqrt(15/2)},\n", + " {\"N\": 12, \"m\": 0.3, \"r\": 4, \"v\": np.sqrt(16/2)}]\n", + "\n", + "for l in lamps:\n", + " for i in range(l[\"N\"]):\n", + " phi = i/l[\"N\"]*2*np.pi\n", + " x, y = l[\"r\"]*np.sin(phi), l[\"r\"]*np.cos(phi)\n", + " vx, vy = l[\"v\"]*np.cos(phi), -l[\"v\"]*np.sin(phi)\n", + " sim.add(m=l[\"m\"], x=x, y=y, vx=vx, vy=vy)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us plot the galaxy we just created." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T14:23:10.413945Z", + "start_time": "2023-09-24T14:23:10.290734Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f, ax = plt.subplots(1, 1, figsize=(5,5))\n", + "ax.set_aspect(\"equal\")\n", + "coords = np.zeros((sim.N, 6))\n", + "sim.serialize_particle_data(xyzvxvyvz=coords)\n", + "ax.scatter(coords[:,0],coords[:,1])\n", + "ax.quiver(coords[:,0],coords[:,1],coords[:,3],coords[:,4], alpha=0.5);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we add the second galaxy and put the two galaxies on a collision course. To do that, we simply copy the first galaxy and offset it." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T14:23:10.561114Z", + "start_time": "2023-09-24T14:23:10.557749Z" + } + }, + "outputs": [], + "source": [ + "N = sim.N\n", + "for i in range(N):\n", + " p = sim.particles[i].copy() # make a copy of the particle in the simulation\n", + " p.x += 8 # offset\n", + " p.y += 8 # offset\n", + " p.vx -= 6 # set up collision course\n", + " sim.add(p) # add the copy\n", + "sim.move_to_com() # Move to the center of mass frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let's run the simulation and take snapshots of the particle positions and velocities at 9 intervals. We set a smoothing length to smear out gravity on small scales so that close encounters between particles don't slow down our simulation. The physical size of the lightbulbs would have had the same effect." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T14:23:11.094329Z", + "start_time": "2023-09-24T14:23:10.829736Z" + } + }, + "outputs": [], + "source": [ + "sim.softening = 0.2 # smoothing length\n", + "N = 9\n", + "coords = np.zeros((N,sim.N,3))\n", + "times = np.linspace(0,4.,N)\n", + "for i,t in enumerate(times):\n", + " sim.integrate(t)\n", + " sim.serialize_particle_data(xyz=coords[i])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let's plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T14:23:11.824081Z", + "start_time": "2023-09-24T14:23:11.193361Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABN8AAATFCAYAAACQInBAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3iURdcG8HsDJKEl9JpQlSJFBAFBqjQRpSOgSAepSpFqAZSiAorSUQGVptIEBUQgIEoHeRGkE1pIkJpAgJAy3x/nW0KS3dSn7e79uy6uvOyz2Wd28Z3ZmTlzjk0ppUBERERERERERESa8zK7AURERERERERERO6Ki29EREREREREREQ64eIbERERERERERGRTrj4RkREREREREREpBMuvhEREREREREREemEi29EREREREREREQ64eIbERERERERERGRTrj4RkREREREREREpBMuvhEREREREREREemEi29EREREREREREQ64eIbkQZ27dqF8ePH4/bt25q95rp161C1alX4+vqiWLFiGDduHGJiYlL1u3Fxcfj0009RsmRJ+Pr6onLlyli+fLlmbSMiImNZaZw5f/48bDabwz8rVqzQrH1ERGQsrceaH374AV26dMGTTz4Jm82GBg0apPk1vvnmG5QvXx6+vr548sknMXPmTE3aRmQ0Lr4RaWDXrl2YMGGCZgPVxo0b0bp1a+TKlQszZ85E69atMXHiRAwePDhVv//uu+9i1KhRaNKkCWbOnIlixYrhtdde46SIiMhFWW2cAYDOnTvj+++/T/CnVq1amrSPiIiMp/VYM3fuXPz8888IDAxE7ty50/z78+fPR+/evVGhQgXMnDkTtWrVwltvvYVPPvlEk/YRGSmz2Q0goqTeeecdVK5cGZs3b0bmzPJ/Uz8/P0yePBlvv/02ypUr5/R3Q0JCMH36dAwcOBCzZs0CAPTu3Rv169fHiBEj0KFDB2TKlMmQ90FERNaUkXHGrmrVqujSpYveTSUiIhf1/fffo2jRovDy8kLFihXT9Lv379/Hu+++ixYtWmDlypUAgD59+iAuLg4fffQR+vbtm64FPSKzMPKNKIPGjx+PESNGAABKliz56OjN+fPn0/V6//77L/7991/07dv30YQIAAYMGACl1KPBx5mff/4Z0dHRGDBgwKPHbDYb+vfvj8uXL2P37t3pahcREZnDauPM4yIjI/Hw4cN0tYOIiKxD67EGAAIDA+Hllb4lh6CgINy4cSPBnAYABg4ciMjISPz666/pbheRGRj5RpRBbdu2xalTp7B8+XJ8/vnnyJcvHwAgf/78CA8PR3R0dIqv4evrixw5cgAA/v77bwDAs88+m+A5RYoUQUBAwKPrzvz999/Inj07ypcvn+DxGjVqPLpep06d1L05IiIyndXGGbsJEyZgxIgRsNlsqFatGiZNmoSmTZum5a0REZFFaD3WZJSzsapatWrw8vLC33//zehrcilcfCPKoMqVK6Nq1apYvnw5WrdujRIlSjy61qBBA+zYsSPF1+jWrRsWL14MAAgNDQUAFC5cOMnzChcujCtXriT7WqGhoShYsCBsNluS3wWQ4u8TEZG1WG2c8fLyQtOmTdGmTRsULVoU586dw2effYbmzZtj3bp1aNGiRerfHBERWYLWY01GhYaGIlOmTChQoECCx729vZE3b17OacjlcPGNSEfTp0/HrVu3UnxekSJFHv3v+/fvAwB8fHySPM/X1xcRERHJvtb9+/ed/u7jr09ERK7PjHGmWLFi+O233xI89sYbb+Cpp57C8OHDufhGRORm0jPWZNT9+/fh7e3t8Jqvry/nNORyuPhGpKNq1aql+XeyZs0KAIiKikpy7cGDB4+uJ/f7zn738dcnIiLXZ8Y440iePHnQo0cPfPzxx7h8+TICAgLS/BpERGRN6RlrMipr1qxOc4qmd6wiMhMX34h0dPPmzVQlos6aNSv8/f0BxB8DCg0NRWBgYILnhYaGPsrd5kzhwoURFBQEpVSCo6f2Y0Za7kgREZG5zBhnnLG/1s2bN7n4RkTkRtIz1mRU4cKFERsbi//++y/B0dOHDx/ixo0bnNOQy2G1UyINJM6vZte2bVsULlw4xT9vv/32o9+pUqUKAODAgQMJXuvKlSu4fPnyo+vOVKlSBffu3cPx48cTPL53794Er09ERK7DSuOMM+fOnQMgybmJiMj1aDnWZJSzserAgQOIi4vjnIZcDiPfiDSQPXt2AMDt27cTPJ6e/AgVKlRAuXLlsGDBArz55pvIlCkTAGDu3Lmw2Wxo3779o+eGh4cjNDQUhQsXfrTL1KpVKwwdOhRz5szBrFmzAABKKcybNw9FixZF7dq1M/ReiYjIeFYaZ65du5ZkgS0kJAQLFy5E5cqVHRZyICIi69NyrEmLe/fu4eLFi8iXL9+jKqsvvPAC8uTJg7lz5+Kll1569Ny5c+ciW7ZszC9KLoeLb0QasOdBePfdd9GpUydkyZIFr7zySrrzI0ydOhUtW7ZE06ZN0alTJxw9ehSzZs1C7969Ub58+UfPW7NmDXr06IFFixahe/fuAICAgAAMGTIEU6dORXR0NKpXr461a9di586dWLp06aNJFhERuQ4rjTMjR47E2bNn0ahRIxQpUgTnz5/H/PnzERkZiS+++CLD75WIiMyh9Vjzxx9/4I8//gAgGzeRkZGYOHEiAKBevXqoV68eAGDfvn1o2LAhxo0bh/HjxwOQI6wfffQRBg4ciA4dOqBZs2bYuXMnlixZgkmTJiFPnjwZfLdEBlNEpImPPvpIFS1aVHl5eSkAKjg4OEOvt2bNGlWlShXl4+OjAgIC1HvvvacePnyY4DmLFi1SANSiRYsSPB4bG6smT56sihcvrry9vVWFChXUkiVLMtQeIiIyl1XGmWXLlql69eqp/Pnzq8yZM6t8+fKpNm3aqIMHD2aoPUREZD4tx5px48YpAA7/jBs37tHzgoKCkjxmt2DBAlW2bFnl7e2tSpcurT7//HMVFxeX7jYRmcWmlFLmLPsRERERERERERG5NxZcICIiIiIiIiIi0gkX34iIiIiIiIiIiHTCxTciIiIiIiIiIiKd6Lr49scff+CVV15BkSJFYLPZsHbt2gTXlVL44IMPULhwYWTNmhWNGzfG6dOnU3zd2bNno0SJEvD19UXNmjWxb98+nd4BERFZGccZIiLSG8caIiLKKF0X3yIjI/H0009j9uzZDq9/+umn+PLLLzFv3jzs3bsX2bNnR7NmzfDgwQOnr/nDDz9g2LBhGDduHA4dOoSnn34azZo1w3///afX2yAiIoviOENERHrjWENERBllWLVTm82GNWvWoHXr1gBkh6hIkSIYPnw43nnnHQBAeHg4ChYsiMWLF6NTp04OX6dmzZqoXr06Zs2aBQCIi4tDYGAgBg8ejNGjRxvxVoiIyII4zhARkd441hARUXpkNuvGwcHBCAsLQ+PGjR895u/vj5o1a2L37t0OB6qHDx/i4MGDGDNmzKPHvLy80LhxY+zevdvpvaKiohAVFfXo73Fxcbh58yby5s0Lm82m0TsiIvI8SincuXMHRYoUgZeXtdKIcpwhInJ9Vh5nAI41RESuzqhxxrTFt7CwMABAwYIFEzxesGDBR9cSu379OmJjYx3+zokTJ5zea8qUKZgwYUIGW0xERM5cunQJAQEBZjcjAY4zRETuw4rjDMCxhojIXeg9zpi2+GakMWPGYNiwYY/+Hh4ejmLFiuHSpUvw8/MzsWVERK4tIiICgYGByJkzp9lNMRXHGSIifXCcicexhohIe0aNM6YtvhUqVAgAcPXqVRQuXPjR41evXkWVKlUc/k6+fPmQKVMmXL16NcHjV69effR6jvj4+MDHxyfJ435+fhyoiIg0YMXjLhxniIjchxXHGYBjDRGRu9B7nDEtcULJkiVRqFAhbN269dFjERER2Lt3L2rVquXwd7y9vVGtWrUEvxMXF4etW7c6/R0iIvJMHGeIiEhvHGuIiCg1dI18u3v3Ls6cOfPo78HBwTh8+DDy5MmDYsWKYciQIZg4cSKefPJJlCxZEu+//z6KFCnyqHoQADRq1Aht2rTBoEGDAADDhg1Dt27d8Oyzz6JGjRqYMWMGIiMj0aNHDz3fChERWRDHGSIi0hvHGiIiyihdF98OHDiAhg0bPvq7PUdBt27dsHjxYowcORKRkZHo27cvbt++jTp16mDTpk3w9fV99Dtnz57F9evXH/29Y8eOuHbtGj744AOEhYWhSpUq2LRpU5KEpURE5P44zhARkd441hARUUbZlFLK7EYYLSIiAv7+/ggPD2d+BCKiDGB/6hg/FyIibbA/dY6fDRFRxhnVl5qW842IiIiIiIiIiMjdcfGNiIiIiIiIiIhIJ1x8IyIiIiIiIiIi0gkX34iIiIiIiIiIiHTCxTciIiIiIiIiIiKdcPGNiIiIiIiIiIhIJ1x8IyIiIiIiIiIi0gkX34iIiIiIiIiIiHTCxTciIiIiIiIiIiKdcPGNiIiIiIiIiIhIJ1x8IyIiIiIiIiIi0gkX34iIiIiIiIiIiHTCxTciIiIiIiIiIiKdcPGNiIiIiIiIiIhIJ1x8IyIiIiIiIiIi0gkX34iIiIiIiIiIiHTCxTciIiIiIiIiIiKdcPGNiIiIiIiIiIhIJ1x8IyIiIiIiIiIi0gkX34iIiIiIiIiIiHTCxTciIiIiIiIiIiKdcPGNiIiIiIiIiIhIJ5nNbgARUUpiY4GdO4HQUKBwYaBuXSBTJrNbRURERERERJQyLr4RkaWtXg28/TZw+XL8YwEBwBdfAG3bmtcuIiIiIiIiotTgsVMisqzVq4H27RMuvAFASIg8vnq1Oe0iIqL0i40Ftm8Hli+Xn7GxZreIiIiISF9cfCMiS4qNlYg3pZJesz82ZAgnbURErmT1aqBECaBhQ+C11+RniRLcTCEiIiL3xsU3IrKknTuTRrw9Ting0iV5HhERWR+jmYmISE+MrCYr4+IbEVlSaKi2zyMiIvNYNZqZEzUiIvfAyGqyOi6+EZElFS6s7fOIiMg8Voxm5kSNiMg9MLKaXAEX34jIkurWlaqmNpvj6zYbEBgozyMiImuzWjQzJ2pERNowO4LYqpHVRIlx8Y2ILClTJuCLL+R/J16As/99xgx5HhERWZuVopk5USMi0oYVIoitGFlN5Ijpi28lSpSAzWZL8mfgwIEOn7948eIkz/X19TW41USeweydrLZtgZUrgaJFEz4eECCPt21rbHvM/jwofTjOEJnPStHMnKiR1jjOkCeySgSx1SKriZzJbHYD9u/fj9jHZrBHjx5FkyZN0KFDB6e/4+fnh5MnTz76u83ZNzkiSrfVqyUy4PEBNSBAotGMXPRq2xZo1UomQaGhEhVRt67xEW9W+Two7TjOEJnPHs3cvr0stD0edWZ0NDMnaqQ1jjPkaVKKILbZJIK4VSv9+3UrRVYTJcf0xbf8+fMn+PvHH3+M0qVLo379+k5/x2azoVChQno3jchj2XeyEg+o9p0so6POMmUCGjQw7n6JWe3zoLThOENkDfZoZkcbGTNmGNePcqJGWuM4Q54mLRHEen+Ht0dWh4Q4Xgy02eQ680ST2Uw/dvq4hw8fYsmSJejZs2eyuz93795F8eLFERgYiFatWuHYsWMGtpLIvTEXTkL8PNwLxxkic7VtC5w/DwQFAcuWyc/gYGM3MKx0BJbcD8cZ8gRWiiBmnmhyFZZafFu7di1u376N7t27O31O2bJlsXDhQvz8889YsmQJ4uLiULt2bVxOZuk9KioKERERCf4QkWPMhZMQPw/3wnGGyHz2aObOneWn0RMiTtRIT3qNMwDHGrIOq0UQWy1PNJEjNqUcxXOYo1mzZvD29sb69etT/TvR0dEoX748OnfujI8++sjhc8aPH48JEyYkeTw8PBx+fn7pbi+RO1q+XKoVpWTZMpk4uTt+HsmLiIiAv7+/y/SnHGeIyM5RLs/AQGOPwFLKOM7E41hDVhEbK1VNUzrqGRxs7EZGbKz5eaLJ9Rg1zlgm8u3ChQvYsmULevfunabfy5IlC5555hmcOXPG6XPGjBmD8PDwR38uXbqU0eYSuS2r7WSZjZ+H++A4Q0SPs8IRWHIveo4zAMcasg6rRhCbHVlNlBzTCy7YLVq0CAUKFECLFi3S9HuxsbH4559/8NJLLzl9jo+PD3x8fDLaRCKPwKSlCfHzcB8cZ4gEIwPimV3Qh9yLnuMMwLGGrMUqRXSIXIUlIt/i4uKwaNEidOvWDZkzJ1wP7Nq1K8aMGfPo7x9++CE2b96Mc+fO4dChQ+jSpQsuXLiQ5h0mInLMijtZsbHA9u1yBHT7dmOLG1jx86C04zhDJFavlqNCDRvKkfqGDeXvq1eb3TIi18ZxhjwRI4iJUs8SkW9btmzBxYsX0bNnzyTXLl68CC+v+DXCW7duoU+fPggLC0Pu3LlRrVo17Nq1C0899ZSRTSZya1bayXKUkycgQBbEjGqHlT4PSh+OM0TSn7ZvnzSKNyREHjc6KTUj8MidcJwhT8UIYqLUsVTBBaO4WuJWIrOYPTFyNlG0R5xxomg+9qeO8XMhq7Enx3ZWTNHo5NhW2Fgh18D+1Dl+NkRJmf193ez7U9oZ1ZdaIvKNiKzJzJ2s2FiZmDnaHlBKJopDhgCtWhk3oHFnj4hc1c6dzhfeAOlXL12S5+ndz1ktAo+IiNyD2Rs7Zt+frM0SOd+IiBJLy0SRiIiSFxqq7fPSK6WNFUA2VozM7UlERNowM0+zfWMn8fzBvrGjd25Ts+9P1sfFNyKyJKtMFImI3EHhwto+L724sUJE5J7MLOhj9saO2fcn18DFNyKyJKtMFImI3EHdunL0JXHVZjubDQgMlOfpyUobK2ZGaBARuROzo77M3tgx+/7kGrj4RkSWZJWJIhGRO8iUSXLOAEn7VfvfZ8zQP4emVTZWzIzQICJyJ1aI+jJ7Y8fs+5Nr4OIbEVmSVSaKRETuom1bKWZQtGjCxwMCjCtyYIWNFbMjNBhxR0TuxApRX2Zv7Jh9f3INXHwjIsuywkSRiMidtG0LnD8PBAUBy5bJz+Bg4/pTszdWzI7QYMQdEbkbK0R9mb2xY/b9yTVw8Y2IUs2M3XozJ4qMTiAid5QpE9CgAdC5s/w0OoLYzI0VMyM0zI64IyL3Ztb3VitEfZm9sWP2/ck1cPGNiFLFzN16MyaKjE4gItKPWRsrZkVomB1xR0TuzczvrVaJ+jL7xIzZ9yfry2x2A4jI+uy79YknDfbdencbUDzt/RIRmcG+sWIksyI00hJxZ/RnQkSuzezvrfaor/btZaHt8XYYHfXVti3QqpX0paGh0pfXrWtcxJnZ9ydrY+QbESXL03brPe39EhF5ErMiNKyQE4mI3I9VvrdaKerL7NQKZt+frIuLb0SULCtUMDKSp71fIiJPYlZeHivkRCIi92Ol761mF/QhsjouvhFRsjxtt97T3i8RkacxI0LDKjmRiMi9WO17K6O+iJxjzjciSpan7dZ72vslIrKLjfWcPDVG5+WxUk4kInIf/N5K5Dq4+EbkooyaJNl360NCHOeTsNnkup679UZOCM1+v540+SUi61i9WvIGPX58KSBAFozc9ciQ0QUf7BF3jj7nGTPc93MmIv2Y/b2ViFKPx06JXJCR5cTNyo9jZ3TpdDPfr5ll4onIc9kr5SXOG2SvlMc+SDvMiUREWjL7ezoRpR4X34hcjBmTJLMqGJk1ITTj/XLyS0RmMLtSXmwssH07sHy5/PSEStLMiUREWrJSpVEics6mlKOvW+4tIiIC/v7+CA8Ph5+fn9nNIUq12FiJhHJW1cgeWh4crM+XeSOPRJr9Xu1tMOL9WuG9phf7U8f4uZCr2L5domxTEhSk/RFNTzzqSmnH/tQ5fjb0OE9NXWL2+zb7/pRxRvWlzPlG5ELSUk5cjzw2RubHMfu9Asa9Xyu8VyLyTGZVyrNH+ybeArZH+zJag4gobYzOY2kFZm/imH1/ci08dkrkQqxWTlxPfK/pfx4RUWqZUSnPjKOunni8lYjInZmdssXs+5Pr4eIbkQvxpHLifK/pfx4RUWrZK+UlTtRtZ7MBgYHaVspLS7SvFljMhojIvVghX6mZ9yfXxMU3IhdixiTJLHyv8dzpvRKRtZhRKc/IaF9GJhARmUPPiGOjN3Gsdn9yTVx8I3IhnlROnO814d/d5b0SkfUYXSnPqGhfRiYQEQmjj97rHXFsdsoWs+9PromLb0QuxpPKifO9uud7JSLradsWOH9eqpouWyY/g4P16XuMivZlZAIRkfFH742IODY7ZYvZ9yfXZFPK0X6ge2NZbnIHViprrXdbXP31XbUtqcH+1DF+LkTJs0/OgISRafYFOS02HZYvl4lmSpYtAzp3zti9EnO1vtzK2J86x8+GUuKssrSWfe3jYmNlYc/ZxofNJpsvwcEZ6xPt9wkJcRzdrNV9rHp/0pZRfWlm3V6ZiHRllXLiRpTY1vO9Wq1EuFX+XYnIGtx1Ecce7euo/50xQ5v+16zIBKuNK0TkmVI6em+zydH7Vq20G1fSEnGcke+79pQt7dvL+3C0iaNnyhaz70+uicdOiSjdXD2Rtau3n4jcm7tX6dT7qKsZxWw4rhCRVZhx9N7IXGhmp2wx+/7kehj5RkTpYsZumpZcvf1E5N6cHRWyL+K4yxd7PaN9jY5M4LhCRFZiRlEAoyOO27aVPtWsCHEj7u+uEfCeiJFvRJQurp7I2tXbT0Tui1U6tWNkZALHFSKyEjOO3psRcWzfxOncWX4avTCl5/3dPQLe03DxjYjSxdVLbLt6+4nIfXERR1tGVXLluEJEVmLWQtgXX8S/fuL7AcyFllpMY+B+uPhGROni6iW2Xb39ROS+uIijPSMiIziuEJGVmLUQxlxoGccIePfExTciShcjd9NiY4Ht24Hly+WnFgONGbuBRESpwUUc18RxhYisxqyFMKMijt0VI+Ddk+mLb+PHj4fNZkvwp1y5csn+zk8//YRy5crB19cXlSpVwoYNGwxqLZHr0WPhCjBuN02vXAdG7gbq9W9AqcNxhlyNVRdx9O7LXL2v5HErz8VxhqzMrIUwvSKOjRgrzB6PGAHvnkxffAOAChUqIDQ09NGfP//80+lzd+3ahc6dO6NXr174+++/0bp1a7Ru3RpHjx41sMVErkHvJJ1676bpnevAiN1AJkq1Bo4z5EqsuIijd1/mLn0lj1t5Lo4zZGVmFyXQihFjhRXGI0bAuyebUo5OEhtn/PjxWLt2LQ4fPpyq53fs2BGRkZH45ZdfHj323HPPoUqVKpg3b16qXiMiIgL+/v4IDw+Hn59feppNZHn2havE/w+3T9y0nAToUQI7NlYGOmch1zabTGaCg7W5lx4lvI38NzCLK/SnHGfIVa1eLTlfHu8HAwNl4c3IvkPvvswd+0q9xhVP5Ar9qRnjDOAanw2RVowYK6wyHtnnQSEhjvO+aTkPIuP6UktEvp0+fRpFihRBqVKl8Prrr+PixYtOn7t79240btw4wWPNmjXD7t27nf5OVFQUIiIiEvwhcmdGJ+nUYzfNyFwHerSfiVKtheMMuSIr5MzRuy/T+vXNPipk5y5RJpR6eo8zAMca8lxGfK+20nd3K0bAU8aZvvhWs2ZNLF68GJs2bcLcuXMRHByMunXr4s6dOw6fHxYWhoIFCyZ4rGDBgggLC3N6jylTpsDf3//Rn8DAQE3fA5HVuEOSTlfPdeAO/wbuguMMuTKzF3H07su0fH0rHBUiz2TEOANwrCHPZcT3aqt9d2caA/eT2ewGNG/e/NH/rly5MmrWrInixYvjxx9/RK9evTS5x5gxYzBs2LBHf4+IiOBgRW7N1ReuANfPdeAO/wbuguMMUfrp3Zdp9frOjgrZc4S6y0SFx1mtyYhxBuBYQ64tI/2XEd+rrfjdvW1boFUr9vvuwvTFt8Ry5cqFMmXK4MyZMw6vFypUCFevXk3w2NWrV1GoUCGnr+nj4wMfHx9N20lkZa6+cAXEV/tLKdeB0dX+Ussd/g3cFccZotTTuy/T4vVTOipks8lRoVatXHvC4igHYECAHE1yh4VFd6LHOANwrCHXldH+y4jv1Vb97m6PgCfXZ/qx08Tu3r2Ls2fPorCT/6pr1aqFrVu3Jnjs999/R61atYxoHpFLsC9cJc4RYGezSdJuqy5cAa6f68Ad/g3cFccZotTTuy/T4vWtdlRID3pX/yZtcZwhiqdF/2XE92p+dye9mb749s4772DHjh04f/48du3ahTZt2iBTpkzo3LkzAKBr164YM2bMo+e//fbb2LRpE6ZPn44TJ05g/PjxOHDgAAYNGmTWWyCyHCsuXKUnCbYWuQ7MSr5txX8DT8Vxhij99O7LtHh9vY8KmV3EwUpJwMkxjjOkBbP7Gj1o1X8Z8b2a391Jd8pkHTt2VIULF1be3t6qaNGiqmPHjurMmTOPrtevX19169Ytwe/8+OOPqkyZMsrb21tVqFBB/frrr2m6Z3h4uAKgwsPDtXgLRJa1apVSAQFKyfAmfwID5XGz2xEQkPp2xMQoFRSk1LJl8jMmxpj7asEq/wZ6cYX+lOMMUcbp3Zdl5PWDghL+nrM/QUHatMvocUTP9+cKXKE/NWOcUco1PhtKHSv0NXrQuv8y4nu1u393p6SM6kttSjlah3ZvERER8Pf3R3h4OPz8/MxuDpGuzE7O7CwJtn0HSa8k2Gbd1xGz/w30xP7UMX4uZCa9+hy9+7L0vn5srFQ1TSlHaHBw2tprlXFk+XKp3pqSZcukKq67YX/qHD8b92CVvuZxWvX3evRfRnyvdufv7pSUUX0pF984UBHpxj4hcpaLJ70TIqve1xOxP3WMnwuZxVOT8tsnr0DCCWx6J69WGke2bwcaNkz5eUFB7pmUm/2pc/xsXJ+V+ho7LccRT++/yDUY1ZeanvONiNyXWUmwPSH5NhFRYp6clF+LHKGPs9I4wiTgRO7LSn0NoP04wv6LKB4X34hIN3onwbbafYmIzMKk/LLAdv68RFAsWyY/g4PTF/FnpXGEScCJ3JeV+ho9xhEr9F/uWMiCXBMX34hIN4ULa/s8q9+XiMgsVoueAMyZ8GTKJEeXOneWn+md0FltHNE6so+IrMFKfY1e44iZ/dfq1XKst2FDyT3XsKH83Z0jwcm6MpvdACJyX/ZQ85SSYGsdam7WfYmIzGKl6AnA9XPPWXEcadsWaNWKScCJ3ImV+ho9xxEz+i9nhSzsR2jN2rhgMQfPxcU3IguySqec0XbYQ83bt5cvD46SYKcm1Dyt7dDqvhlth16s0g4isg4rRU9YdcKTFnqNI1q0i0nJidyHlfoavccRI/uvlI7Q2mxyhLZVK2P7cVffmKKM4bFTIouxSni0Vu3IaKh5etuhdYi7u/27EJF7sUpSa61zBpmZq4dHPYnICFbpa6wyjmjBiqkYPLkoEgmbUo6+Hrk3luUmq3IWLWAfBI0agPVoR3qitbRohxZRYu7875JR7E8d4+dCZrD3EYDj6Akj+ojt22VTICVBQSlHQFglQoDRxuZif+ocPxv3YoW+xgrjiF1GPo/ly2WTOiXLlkmOUL3FxspmubMFQfvx4uBgji9mMKov5eIbByqyCKt0ymwH25EW7E8d4+dCZnG0YBUYKMeWjJgwaTXhseJmA5mD/alz/GxID2aPI87akJbNFy03grRgtfZQQkb1pTx2SmQRVgmPZjvYDiJyXW3bAufPyxf4ZcvkZ3CwcRMmLXIGudPRVSIiV2P2OKLF8UyrHaG1WlEkMgcLLhBZhFU6ZbaD7SAi12ZmUn4tKvelZbPBVY6uEhG5ErPGEa0KJVipkAVgraJIZB5GvhFZhFU6ZbaD7SAiSi/7hAdIGnGQ2gmPVpsNTG5NRJ7AnaJ7tTzpYZVCFoD1IvHIHFx8I7IIq3TKbAfbQUSUERmd8Fjx6CoRkRWtXi05gRs2lHybDRvK383cXMjIYqDWJz3MPkJrp8XGFLk+Lr4RWYRVOmW2g+0gIsqojEx4tNhssGqeTHeKUCEic1kxujeji4F6nPSwH6Ht3Fl+mvVd2UqReGQOLr4RWYhVOmU92pGeCYcW7dBiouPO/y5ERM5ktP9M74THSkdXtWTFCBUick1WjO51x0IJWrNKJB6Zw6aUo//LujeW5Sari42V3fjQUNnZqVvXnF0ardqR0YTX6W2H1om23e3fRQvsTx3j50KuzgqFChy1ITBQFt5SasP27bK4lZKgIGOSitsnpYm/ddsnmNxAcY79qXP8bDyX1fq42FjZTHAWcWwvthMcnPJ3Vnt/CTgulGB0f2ml792kD6P6Ui6+caAi0pVZEw5OdIzB/tQxfi7kyqzUf6Z30mOfCKZUdTU1E8GM0nJS6onYnzrHz8ZzLV8uEbQpWbZMoo/1pvViYEY2X7RkhY0o0p9RfSmPnRKRbswKibdiKD4RkSuwWv9p5tFVrVg1/xwRuS49cqNlhDsWSrBiTj1ybVx8IyLdmDXh4ESHiFyZmUn53an/tEqeTCvmnyMi12a13GjuVijBahtRdiza49q4+EZEujFrwsGJDhG5KrOT8hvRfxo5ebBC9ITVIlSIyPVZKboXsN5iYEZZcSPK7O8HlHFcfCMi3Zg14eBEh4hckRWOuOjdf5oxeTAzegJwv0kpEVmDVaJ7AWssBmq5sWO1jXwrfD+gjOPiG5GbMzM82awJh9UmOgwRJ6KUWOWIi579p6dOHqwwKSUi92SF6N7H22LWYqDWGztW2si3yvcDyjguvhG5MbPDk7WacKR18cpKEx2z/w2IyDVY5YiLXv2n1pMHV9vUsFKEChG5F7Ojex9nxmKgHhs7VtrIt8r3A8o4Lr4RuSmrRBhkdMKR3sUrK0x0rPJvQETWZ6UjLnr0n1pOHozY1NBjcc9KESpERHoxcjFQr6gwK23kW+n7AWVMZrMbQETaS2kgstlkIGrVyphBo21budfOnTIwFC4sO0Up3du+eJX4fdgXr1KaBKb3vlqw2r8BEVmblY64ANr3n1pNHjI6LqTG6tXSfz++WBgQIBOxjL62fVJKREQZl5aNnbT2vfaNKEfjwYwZxm2cWO37AaUfF9+I3JCeA1F6pXXCodXilVkTHSv+GxCRddmPuISEOO73bDa5bmRSfi37Ty0mD0ZsahixuEdE5EpiY/XdyM7I6+sdFWbmRr6dFb8fUPrw2CmRG3KH8GRXz2/gDv8GRGQcKx1x0YMW+XP0HheY1JqIKCG9j/ln9PWNiAozO6eeu38/8CRcfCNyQ+4Qnuzqi1fu8G9ARMayQq5KvWgxedB7XHD1TR8iIi3pnbtYi9e3UmEEPbnz9wNPwsU3IjfkDgORqy9eucO/AREZz52T8md08qD3uODqmz5ERFrROxJYq9f3pKgwd/5+4CmY843IDdkHovbtZeB5fGDTYyDSIxeEkfkN9Gi/0f8GROQ+3Dkpf0by5+g9Llhx00fvXEtERI7onbtYy9e3SmEEI7jz9wNPwMg3IjdlVHiyXrkgjNrJ0jOXBUPEichKYmOB7duB5cvlp1m5y9KbP0fvccFqEct651oiInJG70hgrV+fUWHkCkxffJsyZQqqV6+OnDlzokCBAmjdujVOnjyZ7O8sXrwYNpstwR9fX1+DWkzkOvQeiPTOBaH34pXe7Qf4ZcAKOM4Quc9Cjp7jgpWOLxkxPpF2OM6Qu9E7EliP1ze7MAJRSkxffNuxYwcGDhyIPXv24Pfff0d0dDSaNm2KyMjIZH/Pz88PoaGhj/5cuHDBoBYTuRa9BiKjqsLptXhlZFU7fhkwF8cZ8nTutpCj56aGFSKWWXXV9XCcIXejdySw1SKNiYxges63TZs2Jfj74sWLUaBAARw8eBD16tVz+ns2mw2FChXSu3lE5ITeuSAep0d+AyPbT+biOEOeLKWFHJtNFnJatXKtjQE9895kJC+dFjg+uR6OM6QVq+R51Dt3MXMjkycyPfItsfDwcABAnjx5kn3e3bt3Ubx4cQQGBqJVq1Y4duyYEc0jov/n6lXhXL39lH4cZ8iTpGUhh+KZGbHM8cn1cZyh9LBaegC9I4GtEGlMZCTTI98eFxcXhyFDhuD5559HxYoVnT6vbNmyWLhwISpXrozw8HBMmzYNtWvXxrFjxxAQEJDk+VFRUYiKinr094iICF3aT+RJrFgVLi1cvf2UPhxnyNOYuZBjlQgOV8PxybXpNc4AHGvcmT09QOIoZXt6ALMWo/SOBDY70lhrHPcoWcpC+vXrp4oXL64uXbqUpt97+PChKl26tHrvvfccXh83bpwCkORPeHi4Fs0m8kgxMUoFBChlsyklXxUS/rHZlAoMlOdZkau33yrCw8Ndqj/lOEOeJijIcR+X+E9QkLb3XbVK+tjH7xEQII9T8jg+JcRxJh7HGvdk//+8s/7Z0/4/r6WYGBnfli2Tn3p+hhz3XJdR44xljp0OGjQIv/zyC4KCgpzu9jiTJUsWPPPMMzhz5ozD62PGjEF4ePijP5cuXdKiyUQezUpV4dLD1dtPacdxhjyRGUmt3a3Ag9E4PrkuPccZgGONu2J6AH0YeYyX4x6lhumLb0opDBo0CGvWrMG2bdtQsmTJNL9GbGws/vnnHxR2En/v4+MDPz+/BH+IKONcPVeDq7efUofjDHkyoxdyzKjUGRsLbN8OLF8uP92hCijHJ9dixDgDcKxxV8zzqD0jF8NYoZpSy/ScbwMHDsSyZcvw888/I2fOnAgLCwMA+Pv7I2vWrACArl27omjRopgyZQoA4MMPP8Rzzz2HJ554Ardv38bUqVNx4cIF9O7d27T3QWQ0q+QUMCJXg57v1Wq5Jqzy7+pOOM6Qp7Mv5Lz9dsKJSECALLxpuZBjdKXO1asdv68vvnD9BSqrjU/kHMcZygjmedSW0VW+WaGaUsv0xbe5c+cCABok+i9x0aJF6N69OwDg4sWL8PKKD9K7desW+vTpg7CwMOTOnRvVqlXDrl278NRTTxnVbCJTWW2yYa8Kpwcj3que7U8Lq/27uguOM0TGLeQYGcFh1QTlWrLK+ETJ4zhDGWFPDxAS4njByGaT61qmBzCT3hvNRi+GMXKRUsumlKP/i7u3iIgI+Pv7Izw8nOHa5HKcTTbsx4fcYbJhx/dq/ffK/tQxfi7kqbZvl7w6KQkKytikJzZWcvc4m2DZJ6vBwfpEijFK2TjsT53jZ+M+7N8DgYTfBfX4Hmhm/2XERvPy5ZLjLSXLlgGdO2f8fkaNe6Qfo/pS03O+EVHqeVJOAb5X4W7vlYjcm1EFHsxMUG5kEm8i8gxG5Xk0s/8yKg+b0cd4zShsRK6Ji29ELsSTqiHxvcZzp/dKRO7NqAIPZh3zYUU7ItJL27bA+fMSIbVsmfwMDtZ24c2s/svIjWajF8NYoZpSi4tvRC7Ek3IK8L2m/3lERGYyIoLDjATljFImIr3Z8zx27iw/XbkS9eOM3Gg2YzGMFaopNbj4RuRCPKkaEt9r+p9HRGQ2vSM4zDjmwyhlInJVZvdfRm80m7EYpve4R67P9GqnRJR6ZldDMjJBq9nvFTDu/VrhvRIRaU3PSp32yIb27aWPdJSgXOvIBkYpE5GrMrv/MmOj2agq349jhWpKDiPfiFyImTkFjE7Qanb+BCPfr9nvlYjIFRkd2cAoZSJyVWb3X2YVJdDrGC9RenDxjcjFmBFGbVaCVrPyJ5jxfpkrgogo7Yw85sOKdkTkqszuv7jRTATYlHJ0yMm9RUREwN/fH+Hh4fDz8zO7OUTpYtSRyNhYifhylifCfiQyOFi/AdPI465mv18j36sW2J86xs+FyD3ZN2cAx0dduVmiPfanzvGzobSwQv+1erUUfnj8e3ZgoCy8se8ksxjVlzLnG5GLMiqnQFoStOqZ28eo/Almv1/miiCi9HK1xXtXZI9STjx5DAjg5JGIrM0K/ZcZedishOO0Z+PiGxEly+wErUbztPdLRO7BUTRBQIAc8+GCkLY8ffJIRK7LCv2Xp240c5wmLr4RUbLMTtBqNE97v0Tk+uxHiRInErHnqTTiKJGn7eZ76uSRiFwf+y/jWWGcJvOx4AIRJcvsBK1G87T3S0SuLTZWdtIdZfC1PzZkiDxPL0ZXwyYiInIVVhinyRq4+EZEyfK06kSe9n6JyLWlJU+lHsyqhk1EROQKzB6nyTq4+EZEKbInaC1aNOHjAQHuGSbtae+XiFyXmXkquZtPRESUPOaTJjvmfCOiVDEzQasZuYSskJCWiCglZuapNLs6tJ2n5ZsjIqK0MXOcYD5psuPiGxGlmhkJWs2sDMSEtERkdfY8lSEhjiPQbDa5rkeeSivs5rN6HBERJcfsccLMcZqshcdOiciymEuIiCh5ZuapNHs334pjRGwssH07sHy5/OSRWyLydGb2i1YYJ5hPmuy4+EZElsRcQkREqWNWnkozq0NbcYxg1VciooTM7BetNE4wnzQBXHwjIotiZSAiotRr2xY4fx4ICgKWLZOfwcH6fqE3czffamOEFaIriIisxOx+0WrjhBnjNFkLc74RkSVZIZcQEZErMSNPpX0331E+nRkz9JtUWGmMSCm6wmaT6IpWrXisiIiMZVahASv0i1YaJ+yYT9qzMfKNiCzJ7FxCRESUOmbs5ltpjLBadAUREWDukU8r9ItWGieIAEa+EZFFsTIQEZHrMHo330pjhBWjK4jIs9mPfCbuH+1HPvXOM2aFftFK4wQRwMg3IkqGmdWJrFgZiFXsiIiswUpjBKMriMhKrFBowAr9opXGCSKAi29E5IQVqrZZqTKQFT4PIiKKZ5Uxwsyqr0REiVnhyKdV+kWrjBNEAI+dEpEDZoeqP65tW0nGakayWDsrfR5ERBTPCmOEPbqifXuZUD4+VjC6goiMZoUjn1bqF60wThABgE0pRwGp7i0iIgL+/v4IDw+Hn5+f2c0hspTYWInocrZjZs+PEBzsGYMWP4/ksT91jJ8LkedZvTpp1dfAQH2rvnoC9qfO8bMhR7ZvlxMaKQkK0j9XJ/tFcgVG9aWMfCOiBNISqu4JpbL5eRARUWowuoKIrMBKhQbYLxLF4+IbESVghVB1K+HnQUTkXGwsJ1WPM7rqKxFRYlY68mlvD/tFIhZcIKJErFCdyEr4eRAROcZCNERE1sRCA8mLjZXjucuXy089K78S2THyjYgSsFKouhXw8yAiSoqFaIiIrI1HPh1zlIcuIECiBTlukZ4Y+UZECdhD1YGk5cE9sWobPw8iooRiY2Xi4mhDwv7YkCHmRBIwmoGIKJ79yGfnzvLTyO+rsbHAw4fG3S817BtHifM52zeOGLlNeuLiG5nuxg1g+nTglVeAl18Gpk4Frl83u1WezWqh6mZPpqz2eRARmSkthWiMxGOwRETm++MPmdd5ewM+PkD58rJhs2SJuZsiVt44Is9gicW32bNno0SJEvD19UXNmjWxb9++ZJ//008/oVy5cvD19UWlSpWwYcMGg1pKWtu2DShVChg7FoiJAeLigPffB0qWBH7/3ezWeba2bYHz56UM+bJl8jM42PiFJqtMpqzyeVD6cayh9Ni/H+jdG6hVC2jSBJg7F7hzx+xWmcuKhWgYzUBWwHGGPN1330mE3aVLElwxcCBw4QLw5ZfAG2+Yuyli1Y0j8hymL7798MMPGDZsGMaNG4dDhw7h6aefRrNmzfDff/85fP6uXbvQuXNn9OrVC3///Tdat26N1q1b4+jRowa3nDLq0iWgZUvguefkf2/cCGzYIJ1i3bpA69ay2EHmMTNUHbDeZMrsz4PSj2MNpZVSwJgxQI0awJYtQLlysos/eDBQsSJw6pTZLTSP1QrRMJqBrIDjDHm60FDZrOrZEzh0CChWDJgzB7h/P+HzzPoeb8WNI/IsNqUcfVUxTs2aNVG9enXMmjULABAXF4fAwEAMHjwYo0ePTvL8jh07IjIyEr/88sujx5577jlUqVIF8+bNS9U9IyIi4O/vj/DwcPj5+WnzRijNxo4FZs+WhZWcORNei4yUI319+wKffGJO+8hcsbGyM+Zsh8pe6CA4mItgZnKV/tToscZVPhdy7vvvga5dJRXC0KHx/UxwMPDSSxKp/e+/ntn/2PvnlArRGNU/b98u0RQpCQqSjRNyLa7Sn3JOQ2a5fl2CGCIjgUqVgNq1k+YpNsLEicCUKcCVK0COHNb7Hs+xgpwxqi81NfLt4cOHOHjwIBo3bvzoMS8vLzRu3Bi7d+92+Du7d+9O8HwAaNasmdPnA0BUVBQiIiIS/CHzbdwoR/YSL7wBQPbssiPC6HvPxdBw0ooRYw3HGfeiFPDZZ5KH9J13Ek4MSpaUYzWnTgG//mpsu27dkmM8zz8PVKkiR/H/+MPYNgDWK0TDaAYyG+c0ZIboaOCttyQncdeucsSzTh2gcmXg4EHj2/O//8n45O9vze/xdevKgp+zhUmbDQgMlOcR6cHUxbfr168jNjYWBQsWTPB4wYIFERYW5vB3wsLC0vR8AJgyZQr8/f0f/QkMDMx44ynDHj6UXRFncua0XoUcMg4nU6QVI8YajjPu5eZN4PBh4PXXHV+vXh148kk5jmqUf/+V465jx8pxztq15VhP/fpypNLocwxWKkRjtWOw5Hk4pyEz9O4NzJsHjB8PXLsmi3FbtgC+vsALLwAnThjbHh8f2SQCrPk93mobR+R5TM/5ZoQxY8YgPDz80Z9Lly6Z3SSCTF5+/VWO7iQWFwesXy/PIc/EyRS5Eo4z7sWeG8zb2/lzfHykUJARYmKkclzevMC5c7K4NWcOcPw4MHOmTCYWLTKmLY+zSiEaRjOQp+BYQ3b//CNR2HPnSn7SfPkALy+gUSNg61Ygd25g8mRj2/TKK8CBA8CRI9b9Hm+ljSPyPKYuvuXLlw+ZMmXC1atXEzx+9epVFCpUyOHvFCpUKE3PBwAfHx/4+fkl+EPmGzBAvqSPH59wx14pYNIk4MwZeQ55Jk6mSCtGjDUcZ9xL/vxA6dLAmjWOr588CRw9KsdrjLBunSy6ffttwgmDzQYMGiQFij7/3PjoN8AahWgYzUBm45yGjLZ0KVCggBw3TczPD+jfH/jxRyAqyrg2tWkDlCkTn1bIqt/jrbJxRJ7H1MU3b29vVKtWDVu3bn30WFxcHLZu3YpatWo5/J1atWoleD4A/P77706fT9ZVo4Yk5fzoI/nfU6cC06ZJ9dMPPpDHa9c2u5VkFk6mSCscayit7Itay5YlrcYWEQH06QMULCi5SY0QFASULQs884zj6506yWLg9evGtMeKGM1AZuI4Q0b77z/JQZoli+PrZcrIwtudO8a1ydsb2LQJyJwZePZZaZuzojyAud/jrbBxRJ4ns9kNGDZsGLp164Znn30WNWrUwIwZMxAZGYkePXoAALp27YqiRYtiypQpAIC3334b9evXx/Tp09GiRQusWLECBw4cwIIFC8x8Gy7p4UNg7Vpg2zbpGJ9/Hnj1VckTYJTRo4GqVWWRZdw4eax+fSm00Ly5ce0AgAcP5Av6zp0yKDRoIF/Wkzt2RPqyT6befjth0taAABmwOZmi1OJYQ2k1eDCwZw/Qrp2MS40bA1evyoJcTIwUDfLxMaYtSiU/MbBfM7d+vfnatgVatZJxPDRUjjPVrctJFRmD4wwZKTBQNofu3QOyZUt6/dAhya3t729su0qWlCOxP/8M/PILUKSIbA6Fh8c/h9/jyWMpC5g5c6YqVqyY8vb2VjVq1FB79ux5dK1+/fqqW7duCZ7/448/qjJlyihvb29VoUIF9euvv6bpfuHh4QqACg8P16L5Lumff5QqXlwpQKlKlZSqUkX+d8GCSu3ebXbrjLdvn1KFC8tn8PTT8pkAShUrptThw2a3jmJilAoKUmrZMvkZE2N2i8jOlfpTI8caV/pcyLnYWKVWrFCqQQOl8udXqmRJpd55R6ngYGPbsWyZjElHjzq+3rGjUmXKKBUXZ2y7iIzgSv0p5zRklLNnlbLZlJo8Oem1K1dkzBowwPh2OcLv8WR1RvWlNqU8b580IiIC/v7+CA8P98hcCTdvAhUqyJGZJUukehoAnD4N9OgBHDsmiTI9pYDSlSvyGZQtK/l0ypSRx48dkzwKly/L/86Xz9x2ElmRp/enzvBzIS09fAiUKiVHKjdskMILdkuWyFg1cyYwcKB5bSTSC/tT5/jZeLbRo4FPPgH69gXefFPylW7eDEycKJVP9+5NehSfiJIyqi81/dgpGW/RIlmAO3hQQoHtnnxSwoNLlJDKOUZXyDHLvHkyQP36K5AnT/zjFSrIYyVKAN98A4waZVoTiYjIg3l7yxGepk1lTHr1VaBQIeD334H9+4Hu3SW5NhEReY4pU6TowqefAvbTyjYb0KKFbMh4+sLb//4nhZPu3gXKlwc6dpSjuERmMbXgApljzRrg5ZcTLrzZ5colHZOzCm/uaM0aoEOHhAtvdoUKSRU5T/o8iIjIeqpVkzw6Q4dKLrqlSyUi++efgYULAS9+oyMi8ig2GzBsGHDxIrBjh+QiPX8eWL9eNmo81d27Mn+rUgWYNUs+j759ZTFy5UqzW0eejJFvHujePQlLdiZ/fnmOp0jN5/Hvv8a1h4iIyJEiRYAPP5Q/REREgERH16tndiuso3NnWYxctkyqkmfJIguUI0ZIdfCtW6WQEpHRuE/qgSpWBLZsAeLiHF/fvDk+D5wnqFhR3rOj7IdKed7nQURkNXfvApcuedbGEBERkasKDwe++w747DNg1SogKsqY+x48KGmUvv5aFuGyZJHHixWTxbgqVYBJk4xpC1FiXHzzQP36AWfPSonnxL77TvLH9OtneLNM068fcPiwHNtJbNYs4NQpz/o8iIis4vhx2aXOnVu+OOfJI8UFzp41u2VERESUmFKSN7xIEclHOm6cRJ8FBgLLl+t//5Urpahg27ZJr2XKJHO6338Hbt/Wvy1EifHYqQeqXRsYORIYPlzCbjt3BjJnls5q1SqgZ0/JCWeUa9dk4WvHDumw69UDevWSBKJGePFFqRDUu7fslLz6qkQFrlghfx86lKHcRERGO3QIaNhQ8pp9+qkkS/7f/4DZs6Xi586d8piR9u2THKD37klRntdeY/JmIiKyjogIifA6cgTImhVo1QqoW1fywxnh44+Bd9+VeeawYbIId+IEMH68jJlZs0o+Nr3cuSOLb5mdrHLYi1DcvSu5zomMZFPK0WE798ay3LLItXSphAL//bc89tRTwFtvAX36GJe4ecsWoE0bqTbauLEMDFu2yM7EqlVAs2bGtEMpqWj6xRfA0aPyWJUqsvD2xhvGDVhErob9qWP8XDJGKaBqVRkLgoKAnDnjr928CdSpI1+ug4KMac/t27Ix8/vvct+8eWUykSOHVBB3tMNORNpgf+ocPxt63OrVEm12756kzLl5U1I2PP+8bBwll+NaCxERsrjVty8wfXrCa3FxUoX10iUpHqTX3GrmTFn4u3RJxuvERo2SyrBXr0quPCLAuL6Ux049lM0GdOkikQW3bknnfPSoRIAZtfB28WL8bkxIiESZrV8v/7thQ1mUO3fOmLbYbBL5duSIfBa3bsmiZNeuXHgjIjLa/v2SDmDSpIQLb4AcPR03Dti+HTh5Uv+2KAW0awccOCATm5AQ4NgxqSjXtKlUCP/rL/3bQURE5Mzu3TIevfgicOGCjKEXLgCbNgGnTwMtWzrP962V9eslomzYsKTXvLzk8WPHJIpdL126SNTb2LFJ3+/Jk8D8+bJAyYU3MgMX3wi5ckk+HaMXmebMkSSYP/4oUQR2efIAP/wA+PoCc+ca2yabTT4LhiETEZnn+HH52bCh4+svvCA/jahE/ddfwLZtwLffyqZQpkzyuD1/TYUKkt+GiIjILB9/DJQrJ0dO7UcrbTY5RbR8ObBnj4xlerp+XY6V2u+fWOnS8c/TS+7cMsdcuFC+QyxbJu/7vfeAWrWkbe+/r9/9iZLDxTcyzaZNclTHUb6cbNkkOeemTca3i4iIzJU9u/y8etXx9bAw+WlEvrVVq2ShrUWLpNcyZ5bjNRs3ApGR+rfl5k05+rpli1SSIyIievhQThD16eM411nDhsCTT0r0tp5KlADu349P4ZPY/v3xz9NT9+6SGzY2Fnj9daBRIzmO+vrrwB9/SKAHkRm4+EamiY6On2A5kj27PIeIiDxL06YyBjiLfp43TwoxGFEM5+5doFAh5ykZCheWo6n37unbhjfflB37pk2BJk3kf7/1lkx0iIjIcz14IEcsnRWrs9kk/9ndu/q2o3lzGS/HjUt65DMyEpgyRcbtJ57Qtx32tvz5JxAaKsduw8JkAe7x01ZERuPiG5mmRg3ZpYmNTXotLk7yBlSvbny7iIjIXH5+wJAhwCefAJ9/Hr+wdfeu5IGbM0eqdvv46N+WcuUkH6izYzJBQZLEWq+d9KgomUQsXy5HZU6dkmIPI0YAX38tVeNiYvS59+P++08SWHNTjIgoqZgYYO1aYOBAoF8/YPFi4zZHcuYEAgKcHyu9dQs4eFCK6+nJ2xuYNUuKOzRtKtFnp07J0c/atYEzZ2RMN1KhQrLYlzWrsfclcoSLb2SagQMlYfUHH0jUgJ1SwIQJwNmz8hwiIvI8EybIGDB8OFCkiFSgLlxYxowxY4B33jGmHV27ys+xYxOOVYAsyi1cKEd97LngtLZ8ueSd++03acOTTwJly0pkwc8/A5s3A+vW6XNvQCZRNWtK1ESxYjLBe+89fSP9iIhcyenTkv+zTRtZANuzB+jRAyheHNi5U//722wSHf3998C+fQmvKSVjR0yMtElv7dpJAMW1a5KuoWxZOe6ZN68c+axaVf82EFmVTanEXyXdH8tyW8fUqRK9UKUK8OqrMnj89JNUYZ08WSZYRGRd7E8d4+einXPngKVL5chI0aLAG29IDjYjffONVMSuU0dyvBUoILnXFiyQHfXt2yVaTw/16skR3I0bHV9//nkpEvTrr9rfe8YMYOhQyZfTs6ckst64USLuqlWThT9GE5De2J86x8/GfHfvysJbtmzAkiXSNwIS5dWnj0Sc/f13fLEBvdy7JykJ/v5b+utmzYAbN2T8+vNPGa/69NG3DY9TSiqbXr8uGzelShl3b6K0MqovdZCSkTydfTnWiOqnI0bIDsgXX0geAKWA+vXlC32TJvrfHzD2/RIRUdqUKmV+ZbJevSTqbsqU+Ei4PHkk0uD99/VbeAPkqGfnzs6vV60qi39au3hRog6HDQOmTYsfI5s3B157TcbqmTNlA42IyFMtWQJcvizRb48vMD3xhEQllyolfeWMGfq2I1s2mT998okstM2eLY/Xry/HP5s31/f+idlsQMWKxt6TyOp47JQe2bxZOmYfHyBLFqBuXYlC0zs2slEjGZwiIoA7dyQPnN4Lb0pJBbv69eW9+vjIDhGrqxIRkSMvvSTHh65dAy5ckCTOU6fqu/AGSD65U6ecXz91ynmS7Yz4+mupJjthQtLNqeeeAzp1AubP1/6+RESuZM0ambc4iuzKmVOOXK5ZY0xbsmcHPvxQFgOvXJEK2du3G7/wRkSOcfGNAEjyy2bNJDT4k09kdyZLFjkKOny4/gtwRhs1CmjfXv7355/Le751SwanTz81t21ERGRd+fLJERpvb2Pu16WL5HY7eTLptb//lo2zN97Q/r4nTkjRoxw5HF9/4QU5Evzwofb3JiJyFZGRyW+AFChgfI7MzJklWjt3bmPvS0TJ4+Ib4Z9/5FjJyJGSpHPoUGDQIEkYOnOmLE799pvZrdTOli0SrfDZZ8COHcDgwfKe9+6VhKSjRsmEhoiIyGw9ekiRhRdekIpxUVFSQW/xYtk0q1JFotC0liOH5NlztvkWGioLkJmZwISIPFiFClL12lnV6d9/17/KKBG5Bi6+EebOld2RiROTHi0ZOFDyycyaZU7b9DB7NlC5MjBkSMLHbTY5XhMQAMyZY0rTiIiIEsiZE9i6VSZ4r78uBQ6yZZNFueeek4mdr6/2923XTpJl//ln0mtRUZLEu107wIvfJInIg/XrJ8c8HZ2cWbVKjn3262d4s4jIgrhfSTh0SHbPs2RJes1mA15+GfjqK+PbpZdDh2QC46jAQubMcvT04EHj20VERORI4cJyvPT4cVkMs9kkZ+mTT+p3zxdflGOnHToAixbJ9wQvLzlq+vbbUgjixx/1uz8RkSt45hnggw+Ad98F/vhDUgX4+Eietx9+kMjkjh3NbiURWQEX3wje3lLowJmICBlE3IWnvV8iInd07RqwcCHw11+yKPTCC1KJNFcus1umn/Ll5Y8RMmWSAkht20qxiSJF5LM9flx+rlkjk04iIk83YYL0zdOnx+fgfOIJSd0zcCAjhI2wfz+werXk4KtQQapy58xpdquIEmJXQGjRQr5g//df0msPHgDLl8tz3EWLFsCKFY6Tn964IZVX3en9EhG5mw0bgJIlgXHjgOho+bI9fDhQurQsxpE2ChSQCq87d0o0R+PGctz08mVWzyMielynTrIAdOuWbA6dOgW89ZZsZLi7LVuA1q2BokVlbO7fXzZqjHD7tkRm16ghUdrbtsmCZ9GiwE8/GdMGotTi4ptFRURI3rGXXgIaNZJJxalT+tyrVy9JrNyqFXDxYvzj165JtdPwcClKoJerV4FJk4CmTaVU90cfSSJnvQwaJAtvHTokXHC8fFkGDl9foE8ffe595gwwYoT8mzZvLrn0IiL0uRcRkTs6dUpyjTVqBISEABs3St6zCxeAihUlVcLVq/rdPzpaxo779/W7h5XYbECdOlIV/IsvJNdctmxmt4qIyJpy5ZKq2I7S27ijsWNl/hYcDPTsCbRpIxW6q1SRn3pSSuZz9qi3kBDg6FHg/HmZQ3fuLEeBiayCi28WdPSohC6/9RYQGysd+LffAuXKSbEAreXLJ5OXs2dlt6JBA1kICwiQ3YPVq4GyZbW/LyBVVEuXlsW3bNlkEfDjjyVUe8MGfe75xBNyXOaPP+Q9NmkCNGwIlCghuzQbNiRfMjy95s+Xz3HhQiBvXhkwhgyRx/73P+3vR0TkjmbNAvz8JII5b974x4sUkfEqKgr4+mvt7/vff9Jn588PFCwobXj1VfbfRETkmdavB6ZMAaZNAw4flgCKzz6ThbhXXpHFr7Aw/e6/Z49E3S1eLIt+9ijDgABg6VLg6aelfURWwcU3i7l/XyKi8ueXxbDffpNknZcvy2LcoEFS9Uxr1avL/WbNksW47NllQezCBf2Olpw/Lx1lgwayU7F2rSyKhYTI0ZZ27aRNemjaVN7bxx9LPoC8eWVH/9w5qR6nNXulo/795d/yxx+BTZtkcCpSRHZnIiO1vy8RkbvZsEGSV2fNmvRa3rzyhf/XX7W9Z2goUKsW8P330o+vWQNMnSoLb7VqATt2aHs/IiIiq5s5U8bA4cMTRvr5+MQX69NjM8xu5UpZaHv55aTXMmUC3nxT5lvJ5fomMhILLljMjz/K4sy2bUDx4vGP+/pK0s4//5QdhUaNtL93zpwyqejfX/vXdmTuXOmcV6yQiDe7XLkkz1xgoDxn2jR97p8nDzBsmPzR22efye7Ll18mTLoaGCj5CJ54Qj6HXr30bwsRkSt7+DD5JMo5c8pztPTOO5Ku4OBBiZK2e/NN2Tzp2lU2bzwhtw8REaVfdLSMFXoXYfjnH5l/rFkj41elSjLH694dyKzRCsCuXcD48Y6v5c4t89Vdu7S5lyN378ppJWefZaFC8vPePRZfIGtg5JvF/Pab7CA8+WTSazabVND57TcgLs74tmntt9+kitrjC2922bIB7dvLboWrU0rea5cujgeHUqUkn447vFciIr1VqyZHXZRKei06WtIoPPusdve7cUM2SUaMSLjwBkj03bRpki9140Zt7qeUbLT17i0Lez17SvS0o/dLRETW9/ChnLApVw7w9paginbt5NikHjZulFNNQUGSLuGzz6QAQd++Mr+KidHmPl5eyb9WdLS+i4zly0u6pmvXHF8PCpITXY+nqCAyExffLCYmxvFRGrusWSUPnDssvqX0XrNl025wMJsnvVciIj0NHCg7+p9/nvBxpYD33gOuXAEGDNDufqdPywSicWPH16tVkx3+Y8cyfq/oaMmRU7euHGX19ZWogYYNpSDQgwcZvwcRERnn4UMpavfOO8Azz0ju58mTgRMnpK9fuVLb+0VESOXVJk2AkyclMm3QIGDdOtm4+vVXOS6qhUaNgGXLHG8OhYXJSS49TmvZvfGGLO6NGZN0bvzPP3LktVcv7SL9iDKKi28WU6MG8NdfwPXrjq+vXSs7+u7QidSoAfzyiywmJhYXJxVyatQwvl1as9nkfTir+HPjhkyy3OG9EhHprXFjYPRoyTFTp44swk2dKmPjp5/KDn/lytrdz17Z09nOemSk/NGiAuiYMVI0YtkymTStXi2FgFavBjZvBoYOzfg9iIjIOF9+Kfm6N22StDo9eshC3P/+J1Fo3boBN29qd7+lS2VMsqf3eVyLFpIzdfZsbaKphwyRRa7hwxOme7hxQxYAc+SQY656yZsXmDNHFjTr1QO++04+53feAZ5/XtL6jBmjzb2OHgXefht48UWpsPrDD9qnuCD3x8U3i+nePT5BZOL/Q3//vYQRDxpkStM0N3CgFD0YOzbhAKAU8MEHUoxg4EDz2qelQYOA338HFi1K+Hh0dHyEBvO9ERGlzpQpshnl4yNfrMeNAwoXlqpnWi9QVawoVbnnz3d8/dtvJXK5ZcuM3Sc8HJg3TxYWO3eOP6pjs0lxovHjZYLhbBGQiIisRSlZBOvcOWkEWObMchQ1OloWjbRy4ABQtaoUInDklVekoN3t2xm/V/36EkU3Y4bkKu/ZU6qABwbK4uL69RIZrqcePWR+nCmTLGQ2by7zrTfflJQN/v4Ze337vLRSJVlwy55d8rN36iSbfqGhmrwN8hBuED/lXvLlk12RDh0k71uXLtJpbNgg0VE9e0piZ3dQrZpEKAwbJu/v1VdlkvHTT8CRIxLBULOm2a3UxmuvAX/8If9+ixZJVZ6ICGDJEjki9cMPkjCUiIhSp1Ur+aM3Ly/g3Xel/x47VhbH/Pxkwe2HH2SHvUuXhEWS0uPPPyVaoVs3x9e7d5d7b9smkQtERGRtd+5IMZ5JkxxfL1BAFnAOH9bunt7eUojAGfs1b29t7jdokKRGmDsX2L9fXve99ySooGBBbe6RkmbN5M+NG1JcoWBB7d7fd98BH30ETJwouV/tr3vwoHwHadMG2L07YbVXImdMi3w7f/48evXqhZIlSyJr1qwoXbo0xo0bh4cpxG82aNAANpstwZ9+/foZ1GpjtGwpuxaNG8tZdXuH/cMP8nd3+j/30KGyK/Hkk3J0aPp0oGRJCc8eMcLs1mnHZpOIhpUrZWdm0iRgwQIZrPbvl46biLTHsYa00KOH5Oj59FNJWl2zJlCsmCy6vfSS9O8ZZf9P0llFNntxIj2OuURHy/g0cqQsMO7YwQIPRKnFcYacsS/UJBdldvu25PfUSvPmkq5g376k15SSaO169SSCSysVKgCzZgF79wI7d8o4YtTC2+Py5pWoO60W3pSStBatWskm3OOvW62aRKPv3SubZ0SpYVrk24kTJxAXF4f58+fjiSeewNGjR9GnTx9ERkZi2rRpyf5unz598OGHHz76ezYtEq1YTKVKwDffmN0KERwsuxl//CGLSPXrS6nqjO7y29WvL3/0cvGiTIyCgqQTrVNH2l+6tH73dMRmk8pG7doZe18iT8axxniHD8vijX28ePpps1ukjTFjJPL8228lkqF+fTlK9Mwz2rz+M8/IZ7Z+veM0BOvXy08tK7kCMnFo316O0ZQqJUUdpkyR+6xZ4/zoEhEJjjPkjK8v0LSpLNL07Zu08ueePbJQNnWqdvds0UKqgL72muSbrlBBHr9/X45P7twpxRcoZSEhUkzpo48cX2/cWFJebNwoxTOIUmLa4tuLL76IF1988dHfS5UqhZMnT2Lu3LkpDlTZsmVDoUKF9G4iQXbCX39ddkdeflkWr+bNk7P9K1ZI9TUr++UXOcLr7S05DjJlkmOfX34pYcSdOpndQiLSE8ca44SEyHixY0d8kueoKKBBAzliX7Soqc3TRNGisqOvhxIlZJwdNw544QWJAre7fFnu+8ILMqnSSnCwHNWpUEHSP1SqJOP8tm1yzLZpU+DQIW2jMojcDccZSs7IkVJ5dMAA4JNP4nOQHTgg85BKlSSJv1YyZZKKps2aSc7S55+XtEZ//CFRdp9/LnMiSpk9eNVZlKCXlxRbYuEFSi1LFVwIDw9Hnjx5Unze0qVLkS9fPlSsWBFjxozBvXv3DGid5zlxQnZN2rWTL/7ffSdFH0JCpNPu1Ak4c8bsVjp3/rwsvDVvLm1eskQiFuxJMt94Q3YziMizcKzR3p07kkz63Dlg1SrJKXPnjmzgnDkju8PJ5aAhMW+eLHRVqgT06ydV3AYNksWx2FjtI+K/+ALIkkV27StVksdsNvm3XL9eIjJWrtT2nkSegOMM2TVqJKlmFi6UDZzGjSXSuXp1SSfw66+yYKalkiWlCumSJRKZFR0N9OkDnDolFUopdQIDJS+fPfI8sWPHpHhF9erGtotcl00pa2T1OHPmDKpVq4Zp06ahT58+Tp+3YMECFC9eHEWKFMGRI0cwatQo1KhRA6tXr3b6O1FRUYiKinr094iICAQGBiI8PBx+fn6avg93MmiQFD+4eDFpqer79+UoSrduUjTBikaNksHu8uWkOxbR0XJstmVLbXL1EHmqiIgI+Pv7u0x/qtdY4+njzMyZksPz33+BMmUSXjtxQnbfv/wyvrozOXfjhnyeixbJxlGhQjLWvv229oV5ihaVzajp0x1fr1dPKtX9/LO29yVKC44z8Tx9rHFlV67IAtyRI0DWrJLv+eWXpeopWdcHH0i+199+S5gm6e5dOeJ7+rQEfGiVZ47MYdg4ozQ2atQoBSDZP8ePH0/wO5cvX1alS5dWvXr1SvP9tm7dqgCoM2fOOH3OuHHjHLYjPDw8zffzJOXLKzVggPPrvXop9fTThjUnzZ59Vqnu3Z1ff+stpZ54wrj2ELmj8PBwU/pTq401nj7OPPecUm3aOL/esqVStWsb1x5KnZw5lZo2zfn1Tp2UatjQuPYQOcJxJp6njzVkDRERSs2Zo9QrryjVrJlSY8cqdf68dq8fF6fU5s1Kde6sVN26SrVrp9SaNUpFR2t3j9S6f1+pRo2UypRJqbZtlfryS6VGj1aqUCEZQ//80/g2kfaMGmc0j3y7du0abty4kexzSpUqBe//Xx6+cuUKGjRogOeeew6LFy+GV+JMlCmIjIxEjhw5sGnTJjRr1szhc7hLlD7lykkOghkzHF/v3x/46y/ZwbGiatWAqlWBr75yfP2ddySZ9NmzxraLyJ2YFZFgtbHG08eZMmWkGpizpNHDh8vRmhMnjG0XJa96dTmS5Cj5dkyM5KF75RUpukRkFo4z8Tx9rCHz/e9/ktLn6lXJQ5ojh+QJvXdP5lzdu2fs9R8+lGJGq1dL1HyVKsDJk8D+/RKNvX49YPR/6g8fAl9/DcyfL23JmVNSGw0dCjz5pLFtIX0YNc5oHuiaP39+5M+fP1XPDQkJQcOGDVGtWjUsWrQozYMUABw+fBgAULhwYafP8fHxgU/ic5OUotq1ZXFq+vSkuQiio+UYSsuW5rQtNWrXlmOzDx8mDQWOi5NOvU4dc9pGRBljtbHG08eZEiWAffucX9+3T55jtLAw2WDJmVO+xKfjn96t9e0LvPkmsHWr5CV63IwZcuy1b19TmkZkOquNMwDHGjLX3buy8Fa4MLB7t6TwAYDISMkl16uXbMbVrp3+e4wdKwXzVq2So7k2mzy+fbts8vXrByxbltF3kjbe3pI2g6kzKKNM+xoaEhKCBg0aoFixYpg2bRquXbuGsLAwhIWFJXhOuXLlsO//v9GfPXsWH330EQ4ePIjz589j3bp16Nq1K+rVq4fKlSub9Vbc1qBBwKVLErEQFxf/eGysdLBXrwIDB2b8PqGhwIQJsnvSsCEwfrx84c+oAQOA69eBwYOlzXZxcZIPLjhYrhGR++JYY4xevaSS2u+/J73222/An3/Kc4xy4QLQtq3kJq1TB3j6aYnmXrJEu3tcvCh5YEaMkHx2169r99pG6d5dKpq+9JKMmZs3y8Zau3byvkaOlMTgROQcxxnyFMuWyfxv1ar4hTdAcmvPnw+ULSvVVNPrzh15nREjZAy3L7wBUjn944+BH36Q+SmRS9L1UGsyFi1a5DR/gl1wcLACoIKCgpRSSl28eFHVq1dP5cmTR/n4+KgnnnhCjRgxIs1nc83KHaGXGzeUmj1bqTFjlPr8c6VCQ7V77dmzlQKUKlVKqVGjlBoxQqkSJZSy2ZRasCDjr//rr0ply6ZU9uxynr99e6Vy5FDK11epdesy/voLFyrl5aVU8eLS9tGjJc8boNQXX2T89e3CwuT1xoxRatYspa5f1+61iazM6v2pWWON1T8XrUVHS94XX1/pB//+W/6MHq2Uj49SzZsbl6vl4kWlihZVqlgxGcOOHVPq998lJ50WfX9MjFJDhsjYkj27Uk8+qZS3t7zPqVO1eQ9GevBAqfHjJX8NIH/Kl1fq668l7w6R2azen3JOQ64mLi59/XubNko1aOD8+uTJMi6m1+bNMgadOOH4ekSEXF+0KP33IHLEqL7UtMU3M7nTQDVtmkx2smSRBSZfX6UyZ5bJT2ysNvfYu1ep119XKjBQJjNduyq1f3/GX/fcOWlvy5ZK3b4d/3h4uCS09PVV6vTpjN/n4EGlunWTtgcGKvXaa0rt3p3x11VKBq733pPP38dHFibt//vjjzlxIffnTv2pljzxc7l/X6nhw5Xy84tfxPHzk8cePDCuHT16KFW4cNKNqLg4KbTj45OxDZIxY2Th7dNPlbpzRx67dk3eJ6DUV1+l/7XN9PChUmfPKnXhAscushZP7E9Ti58NpcW6dUq98IIUD8iUSan69aWQQWq1aCF/nPniC9mMSq8NG2QcdVa8ISrKtcdZsi6j+lJmP3FhCxZI0YD+/YHLl6XMcWgo8P77wJQpwKRJ2tynRg05qnPxohzl+fZb4NlnM/66c+ZIqe1lywB///jH/fzkftmzA7NnZ/w+VasCixdL2y9eBJYuBZ57LuOvC0j488SJwJgx8tkHB8uR2cGDgdGjmaSaiDyHry8wbZr0gX/9JX+uXJHHjEpRFBkJLF8ufXChQgmv2WwyPiol40B63LoludDefVeOxeTIIY/nyyfv87XXgA8/TJjqIDmhocAXX0i7vvoKCA9PX7u0kCULUKoUUKxYwqM+RESeRttyhNbw4YeSq/vBA+Czz+R4aFyc5FV7773UvUb16pJ7zdlY9fPP8pz0qlpVxqK1a52/PqDdPI7IaFx8c1ExMdKJdukiHWiBAvJ4rlzABx/Iotynn8rZeavavFnO82fPnvRa1qxA+/aO8wdZRWSkLL4NGSI563Lnlsfz55eKfz16yMJcdLSpzSQiMlSOHJJsuXZtx/27nq5elYlFjRqOr+fLB5QuDZw7l77X//VX4P595/lO7blSkys+AciEZ+RIWegaNUo2tfr3B4oWdb9Nm5MngS1bpEKeO05oicg9XLwIvP22jBNeXlIk6KOPzN0U0cqePcC4cfJ+/voLeOst2aT64w/gk08kYOOPP1J+nT59ZF4zeLDMRR+3eLFUPc1IPvCCBYFXX5V2Hj2a8NrFizJuNmggBZSIXBEX31zUrl3xEVaODB4sFWk2bTK2XWkRGyuREs74+ibt2K1k82YgIiL5f4PQUGDnTmPbRUTkqXLlkqit4GDH1x88kGi8vHnT9/p37kj1b/uGV2JFi8rPiIjkX+f99yVSbvx4qchqjyzv0kUKH6Q3Ms9K9u4Fnn9eCl00aQJUqQJUriwLmEREVnL0KFCtmpzG6dlTkv43aSInierUAW7cMLuFGTNnjmw8jR2b9NqIEVIoYc6clF+nSBFZZFu2DChfXoIPPvtMCub16CGLc506ZaytX34pxZKqVgU6d5Zgkl69ZCwB5P5EroqLby7KvgsTGOj4ekBAwudZUc2awLp1jo/nxMZKaLGVw4pT+jewP27lfwMiIneSJw/w4ovArFnAw4dJry9cKH1y587pe/0yZWR82r3b8fUdO+Tnk086f41bt2Sy8u678idXLnncHvXWpo1EKDxeZdzV7Nkjk7GHD4GVK4GzZ2UzsFAh4JVXgNWrzW4hEZFQCnj9dVlYOnFCFnv69pVUAAcPygbJ0KFmtzJjDh0CmjeXiL7EbDagRQt5Tmp07ix9fI0acnT1vfdkvFqxQhYtM5q2IE8eqZD+ySeyKDp5sgQyjB0LHDiQsMoqkavh4puLsn+x//NPx9ftjz/xhDHtSQ/78ZyRIxMeRVFKJiTnz2csdFlvKf0b2CPekpuEERGRtsaNA44fl0Wev/+Wx27flnQAQ4bIDnp6x8aGDeV3x46VKLrH3bwpR3caN5bcac6sXy+/O2hQ0ms2mxwHOns29RMhZ6KiJALejKOeQ4fKsaCdO4F27eTzaNYM+O03oFUreY9WjmwnIs/x11/AkSPA9OlJo6LLl5d5yg8/ANevG9em+/dlM6Z6ddm0qFRJFqNu307f63l7Jx+RHRGRttyszz4rEdq3bwP37snGU8eO2uULzZFDxpF//pF7nDoli3zpjVonsgouvrmocuUkDPqjj5J2plFRcqSlTBmgXj3j2hQbK8dMtmyR4zMpeeYZSTT92WfAU0/J8ZsJE+QL+yefyOOpSdp58aLcc8+e1Ce51kLt2tLu999POgm7e1dy8tWqxbwERERGqlkT+OUX4N9/5dhKrlySi3PsWDkSk5Gcal5ewNdfy1hXvbpERuzYIbv/VavK5GzmzORf4/ZtmeQULOj4erFi8jO9UdNBQRLhkDUrkDOnLBZOm+Y4ElAP//4r4/HYsUlTS3h5yVgfEiILcUREZjt4UPqqRo0cX3/lFek/jx0zpj0REZLXbNAgOck0YADw9NOysfTssxK4kFYvvywRx44W7+7cAX76SZ5DRPri4psLmz1bFp6efVYmE7t3yzn4mjUl2fOCBY7Di/WwcKHkEnjuOcmRUKKEfPk/fTr533vrLdkZr1RJcg3MmiW7TDt2pBziffashEmXKCH3rFVLdte/+kqrd5U8m00+40OHJPR64UL5N5g/X/5Nzp7VplorEZG7e/BAEvIfPapNRFSTJpL3bd06iaSeOVPGy9mzpZJaRtSvL+NWsWLAm2/KJGnUKBmD9uyJz0vjzJNPyibZgQOOr9ujqZOLnnNm8WKZQF67Ju956VLZKBozRiLOjFiAu3hRfjqril65suTNS80mHRGR3ry9Zdy5d8/xdXuQg1FVu4cOlUI1+/YBa9ZIIb0lSySiOzoa6NYt7a/55psyJ2zTRjY/7EJDpfhdbKwU/SEinSkPFB4ergCo8PBws5uSYceOKdWmjVJeXkrJ4RKlmjVTat8+49owfbrct1MnpXbuVOrcOaUWLVLqiSeUyp9fqbNntb9ncLBSBQsqVbq0Ut98I/f86y+lXn9d2vLxx9rf05kDB5Rq3lwpm03u7eWlVKtWSv3zj3FtIDKLO/WnWuLnkjr37ys1apRSefLEj2FFiyr1ySdKxcaa3bqUXbum1IkTSt26lfrfiYlRqlgxGasfPkx47dYtpcqVU6pJk7S3JTRUKW9vpXr3TvrZ/f67UpkzK/X552l/3bTav1/+Hbdtc3z93Dm5/uOP+reF3AP7U+f42WTcuXPyHX7+fMfX+/WTOUdUlP5tuX5dKR8fpT791PH1H3+U/jM9c4ydO5XKnVupTJmUatBAqRdekHHB3995f62lw4eVmjdPqa++ks+cyEqM6kttSnle4feIiAj4+/sjPDwcfn5+ZjdHE9evS0LQ/PmdH2XR675Fi0po9PTpSa9VqwbUrSs7Nlrq1g3YulXy+eTPn/DaqFFyBOjSJWM/i6tXJdqgUCEpU07kCdyxP9UCP5eURUdL9PLOnZLfs21bicxatgz45huga1eJKNYqh4yV/PabHGV6+mng7bclGu7gQUm3cOuWRL+VL5+215w8WXLOhYTEF3F43GuvSbTdqVOavAWnlJK2ly4tx38T//sNHCgReVeuANmy6dsWcg/sT53jZ6ONzp2lEvOKFXJyx2aTaLgFC2SOM2WKzC/09vvvQNOmwJkz0ocmFh0tEXhz50o0W1pFRADffQds3y59db16MqdyNGZo5cIF4I03ZKz38orPQ9qunaRx8PfX797O/Puv3Pv0abl/x47ASy9JVDZ5JqP6Uh47dRP58kluMSMXmwCZJAFypMVRm956S/IIJJfkM60iIyXx6aBBSRfeABkcM2WSL/dGKlhQ/g248EZElLKlS2Wi8euvkpOsdm05wrlggSy6LV4sEwR31KwZsG2bJJV+4w1J2fDWW7IYt2tX2hfeAEkYXrOm80lUs2Yy0YiKylDTU2SzyUR1wwagUyeZ5AAyARs8WFJMjBvHhTciso6vvpL+s0ULoEIFoGVLSWszcKAcxxwxwph22Bd/oqMdX4+OlsWr9C4S+fnJ/GnlSmDVKtn80XPh7cYNSdUQEiI55+yFgBYskCCKl14ytviOvahfhQryHcRmk3QXLVsCzz8v7SXSExffKEMuXgRKlnS+4FStmkQyhIVpd8///pPO21k+mTx5JFcO88kQEVnXV18BL74IvPBC0mtdu8oClFE5PO1iY6W62sGDkoRaT3XqSHGEy5eBw4dlnFy1CihbNn2vlzWrVFx15sYNmbBlzpy+10+LNm1kc277dpnkZM0qE9nvvpMo+SFD9G8DEVFq5cghEcm//y6LcEpJP3bokOQKNSqHdvXq0hZnAQQrVsiCkaNx04rmzJFTQdu3y+eZObNsvPTuLTlZd+2Sn0ZZuFCixCdPlhNS69bJ+Ltjh+Tq7tTJuLaQZ+LiG2VIvnyymxEZ6fj66dMySGhZGjp3bhkEnRVzuHdPJjOOouKIiMgazp6VaDdHbDa5dvasMW1RSgoUlColBQGefRYoXFiiHrSM3HakaFGJeMto1HSrVlK0Yv/+pNdiYoBFi+Soq1HHajp3lsnNmjVSwXzZMvm+MGyYex4lJiLX5uUFNG4sfeX69TImPPOMsW3ImRPo2xeYOlXa8HhyqD17JAKvdev0FeQxw5IlsqAVGJj0Wp06EvX9/ffGtCUuTsaiV1+VE1ve3vHX6tUD5s0DtmyRBVcivXDxjTKkUydZeFuwIOm1qCgZuJo313bxLVcuCQufNQu4fz/p9a+/lslS587a3ZOIiLSVK1d8ZUxHLlzQ9zjM4955R459Nmggx0H375fHliyR6qHONpis5OWXJfVB+/YySbO7dk1y+hw/DowcaWybvL1lovjWWzIm58hh7P2JiFzN5MmS961lS9kI6tNHFodq1QKeeEJyohrl+nVZCOzUSSLSV6xIW9Xsa9ckp6kzZcrIc4xw9qwEbnTv7vh6q1bynWPDBmPaQ56Ji2+UIfZ8CCNGAB9+KB2oUsDu3bLoduoUMH689vcdPx4IDpYjS7t2yT2vXwcmTpRd9TffdJyolIiIrKFTJ/kif/Vq0mtHj0o+GCM2UY4ckUIHn30GfPst0LChTHjGj5ejMv/8I8eOUkspGZ9On07bJCWjMmcGNm6U5NG1aslxzzp1gIAAiT5bulQeJyIi6/LxAdaulXyoJUtKRHPOnMDy5VK0IHduY9qxciVQrBjw/vsyTv/7r4zJTz3l/PRRYsWKOY8kU0pSPBQrpl2bk2Mfj53l0s+cGcieXf+8qOTZuPhmgrAwWSSqX1++GI8cCZw7Z3w7rlwBJkyQ3ZS6dSUE9/z5tL/OjBmy4DV5MlCgAODrK8eFLlwANm2S/AXJuXwZ+OCD+Ha8954cVUlO1aqSmyEkRBJk+vrKMdOJEyV56KxZaX8fFy9KEs66daUt48bJ6xstOBgYPVraUb++LGqGhhrfDiIiPfXvLxOKRo0k34pSknNt/XrZvClfXiqQ6e3rr4EiRSQJdWLPPCNt+PrrlF9HKclRV66cHAkqU0YWvt57D3jwQPt2OxIQIFXA16+XsbFUKSl+cOmSMZ8lERFlnJeXFCNYuRLYt08W4jp1SnhUUk8HDshCW8uWMk8LCpLHjhyRRaoXX0zduNazp2z+HD6c9Nrq1cCxY/IcI5QqJZtTv/zi+Prff8u8r1o1Y9pDnsmm1OOnyT2DmWW5t22TsNbYWDk66e0tO9V37kiOgS5djGnHb78BbdtK3pUWLSQHzIYNcozz++/lPHxa3bghg0NEhCSMbtQo5QSl69fLvbJkkUHGZpN2REVJRETr1sn/flycfKYnTshxlpdfTl/enFWrgNdek0W8l16S192wQf6dfvpJPiMjrFghYd3Zs8vkMyZGPlObTQavJk2MaQdRapnZn1oZP5fUOX4c6NBBvoDnzSt9Xni4LBz9+KMsiumtRQuZTPz8s+Pr8+ZJhHdMTPK5ykaOlOM5r74qFUyzZZNkzvPny/vZsMG4iRORO2F/6hw/G2uIiZExZMkSOQUUGCiLSo0bu2aOy86dJSrt33+TFuk5flyi3777Tsa65ERGSiDBuXMS5NGmjczxliyR4jstW8o8y6jPaNgw2SQLCkpYuO/OHZl3Xbokx1ONKExE1mJYX6o8UHh4uAKgwsPDDb1vaKhSOXIo1bSpUjdvxj9+755SPXoolSmTUocO6d+OixeVypZNqRYtlLp9O/7xu3eVeu01pTJnVuroUf3bcfasUj4+SrVpo1RERPzjd+4o1aGDUt7eSp06pX87jh+Xe736qtzbLjxcqVatlPL1VSo4WP92HDkin/0bbygVGRn/+K1bSjVvrlT27Epdvqx/O4jSwqz+1Or4uaReXJxSW7cq9eGHSk2apNTevcbe//XXlXr6aefXR49WKm/e5F/j77+VApSaNi3pte3blfLyUmrOnNS3KS5OqZAQGa9jYlL/e0TuiP2pc/xszHfrllK1a8sY8NxzSnXtqlTFivL3du2Uiooyr22xsTKepFX27EpNnOj8eu3aMldLjVu3lOreXeZaEiOulL+/UqNGKfXwYdrblhF37si/kbe3Ul26KDVvnlLvvqtUkSJK+fkptWuXse0h6zCqL+WxUwN99ZVEVK1YkfC8ftasUrAgIAD48kv92zF/vkS6LV8u4bd22bNL9F3+/FIoQW9z5sg9lyyRo0d2OXLIboqfX9ry7KTX7NmSYPO77xImg/bzkxw5vr7A3Ln6t+PLL4FChSSRarZs8Y/nyhVfWtxRYQsiIldmswEvvCB5ZcaOBWrUMPb+nTtLTp3t25Neu31bxsWUcs/Zx/C33056rX592d3/6quU26IUsHChFE4oWlRy4ZQsCXz8MRAdnZp3Q0RERurdW6LBdu6UnNfffivHM1eulOjn9983tj1KydzquefkZJGPj1S6djTGOfv9Bw+Szy2XO3fq0ynkyiXjaEgIsHmznFgKCZFxLUuW1L2GVnLkkHyyEycCe/dK+ovZs+XzOXCAeVFJf1x8M9Dvv8vxFkedWebMcpZ/yxZj2tGqVcIFLztvbzkyY1Q72rZNuNBk5+sLtGtnXDs6dJDBKbHs2eXoq1Ht6NjR8UDk5ydHao1oBxGRJ3nxRclT2q6dbEo9fBhfOKhpU/n7sGHJv8bJk/Iazo6q1KsnBYhSMnIk0KuX5I1btUpy0zRrJpO3Dh0kFQIREVlDcLDkLvv0U8njbWezyZgyfLikLjCqYrZSUnTujTdk0WvmTMn7efmyFBOaNy/l17DZgKeflrRIjty9C/zxB1ClStrali+fpM9p2FDmV2bJlk0KBZ46JWPqrVvyuSRXlZVIK1x8M1BsbPL5Xnx8JGeAEe1wtNBkRjuS+zx8ffl5PM6oz4OIyJNkyiSLXLVqSe7PPHkkArx2bflS/vvvEn2WHH//5Av0XL7svMKa3b59wLRpkgdn1SrZnGrRQiLm1q6VfELLlqX57RERkU62bpWfr73m+HqXLpILe98+Y9qzcqWMGYsXS9G7AQNkAfDgQSkqNHCg5DRLyYABknN6zZqEj8fFycLVvXtAnz66vAVDuWI+PnJtXHwzUK1asotw/37Sa0rJzokR4a61akmhA3vJ5cfFxUlHW7u2Me1Yt87xglJsrEw2jPo81qyR955YdLS00ajPY80a+W8hsaio+MkhERFpK3du6WOPHpVK10OHynh98mTqKp916AD89ZdUS0ssPFzSGqRUyGjBAqB4ccdHV1u0kMTd8+en7v1oJSZGIgC3bJEFRCIiihcbKws4zjbP7Zv7Rm2ez5kjqQ66dUv4uJeXROf5+6duHOneHWjfXv60bSvHRr/8EqheXX5/3jwpKmGEiAhg1iyJRK9bVxYRjx415t5EWuPim4H69ZMv4YMGJTw6ohQwaZJ0JIMH69+O/v2B69eBIUOStuODD4DTp6WNehs4UCIFRoxIuPCllFTEuXBBnmNEO4KD5Z6PL3zFxcluUViY7ADpbfBgqdo6fnzCdsTGymTs1i35tyMiIn1UqCBj0rvvynHUlCp227VrB1SqJHljNm6MH9MOH46vXO1oUe1xJ07I8dRMmRxff+EFeY4RlJI8OCVKyOZTkyayMNiqlYzNREQkedXi4iSowZE1a2QB7plnjGnPoUOyWeNI1qyyiXPwYMqvY88NPnu2zAt79pRNqUKFZDOmd29t2+3MsWNA+fJy7yxZZExavVrG208+MaYNRFpiIV0DPfGEJFLu2VNKHHfsKB3y6tXAP/8AH30k5+D19tRTsmvRt68kvuzYUfLUrFwpJaU//TR9kV4xMRJWHREBlCkDlCqV/POrVJGdjIEDgQ0bJHLAZpOS0ydPAl98kbAMtDPBwfL8nDmBmjXTXh66Zk3gs88kp8+6ddKOuDjghx8kNHvuXOnk9Va3ruRlGDNGjhy1ayeRdz/8AJw/D3z9NVC2rP7tICJyVVevSlLp2Fjp20uXNua+3t7Ab79Jv/3SS0CBApIq4OJFKZrw228pH13NkUM2e5y5ciVhUSA9TZggf7p1k43DAgXkeNWkScDzz0ui6qJFjWkLEZFVPf205Hp75x2Jki5WLP7a4cPyvb5zZ8l3ZgRvb5mHORMennyqncdlyiT9f79+cloqUybnm0N6iIqS8TRfPonAtn+20dEyPo0eLQtzLVsa16aYGJkrBgXJJlWdOhIZmFzaIKIEdK2lalFml+U+eFDKUBcpolTBgkq1aaPU1q3Gt2PvXqVef12pwoWVKlRIqfbtldqxI32vNX++UgEB8SWkAaUaN1bq+PGUf3fXLqU6d45vR8eOSv35Z8q/d/KkUk2bJrxn0aJKzZmTvrLaO3dK2exChaQtnTsrtWdP2l8no7ZvV6ptW2lHkSJSCnv/fuPbQZQaZvenVsXPxVh37yrVs6dSWbIkHBNeekmpK1eMa0dcnFJ//aXU++8rNXq0UqtXKxUdnbrfXbBAKZtNqRMnkl67fVup3LmVGj5c2/Y6cvGiUl5eSo0bl/RaSIhSBQoo1a+f/u0gsmN/6hw/G/MFBytVvLhS2bIp1aOHUlOmyHwic2alqlVT6tYt49rSrZu05eHDpNcuXFAqUyalZs82rj0ZsWSJjOP//pv0WlycUnXqKFW/vnHtOXpUqVKlpE3lyilVoUL83JPzNNdnVF9qU8pRhin3FhERAX9/f4SHh8MvpQzIlKJPPwVGjZKkogMHym74jh1Sxvn6dWDPHon601JwsEQ15MoFvPeeRAyGhkqug2+/ld35sWO1vScRJcX+1DF+LsaJjZUjort3Ax9+KGORr6/kDR07Vqqq7d0r44WVRUZKFAUg+XXq1JFo8KNHJVL9+HGJpCheXN92TJwox3muXHFcFX3cOIkWv3GDu/1kDPanzvGzsYYbN+SkzPffA9euSZRWr15y2snIyp6HDwM1agBt2sicKG9eefzsWTnZExoqp4Vc4T+V7t3lZJizY7Lz50tUXlSU/mPRzZtAxYpSjOnbb+Mrvf77r/wbnz4tbS1SRN92kH6M6kt57JQy5No14P33JUfOp5/GP96li4QKV60qX9SXLtX2vuPGSdj0rl3xodyBgTLgFCkiedN69pTcBEREpJ/oaClWcOKEHIts3dq4RMyApC3YskXSKDRpEv94166SQqFiRfmSPmqUcW1Kj+zZ5X20aiW534oVk3Hu9GnZ1PrtN/0X3gA5KluunOOFN0DSQdy9K5MRjrFERLLI9d578sdMVapIuprXXpPjkfXqSWXSv/4CCheWcUTPhTelZLHs1Ckp7vDCC5JrLj1iY2UjzRn7tcfzl+tl0SJZYD1wIOEC21NPyXeQ4sXle8aECfq3hVwbCy5QhixbJjvzjiY1efIAb70lOdzCw7W75927wI8/SoECRzkURoyQvG9aL/gREVFCmzbJl862bYHp0yXvTcmSEqnlqKK2Hr77TnLtPL7wZvfEE1Jl9NtvjWlLRpUoIRVTf/tN2t2ihYx3wcGyuWSEfPkkz6izf79Tp2SM9fc3pj1ERJR6bdpIYZxx42RTp3BhyRt9+jRQubJ+992/X8bi6tWB118HXn4ZCAgApk5NWEgutZ57TqLWQ0IcX1+9Wt5Pehf30mL1askt5yiyLU8eGa9XrdK/HeT6uPhGGXLpkky87GHNiVWtKlERV69qd89r1yTEuGpVx9dz55bJ38WL2t2TiIgS2r1borSqVAGOHJE0A9evA9OmyWJX377GtCMsTKqUOlOhghy1Sa/9+yWSumpVoFYtYPJk4L//0v96KfHyApo2lQnL55/LUaEsWfS7X2Kvvy7/jt99l/RaZKQcrWrXzpgJDxERpV2BAlKQYPVq2cDp2RPIlk2/+x05IlFumTNLJNidO5IqoXNnYORIOZGUVl26SDR9797A/fsJry1dKhVmBw/WpPkpuntXPlNnChaU5xClhItvlCH580teGGcdzqlTEhnnbHEuPXLnlsnJqVOOr9+7B1y+LG0jIiJ9fPihVBpbuza+InTOnMCQIcDMmbIAd/Kk/u0oUkS++DvbWf/nn/RX5pw4USLOtm2Tn8WLS2Xy8uVlUc4dVaggR3YHDJDcbzdvymf7xx8SXXj1qvlHq4iIyDref1+i3IKCgObNZdGsXDlg1iwZL6ZMSfumlb+/nJ7asQMoVUoi6ydPlqO0XbpINe6ePfV5P4lVqCAVv519z9iyJflNQCI7Lr65CaWABw/SF9abEZ06yWLXvHlJrz14IBOwFi20XXzLlQt45RV57cQ7IQCwYIHsuLz2mnb3TA2z/g2IiIx286YcOR00yHGi465dpa9esUL/tnTrJkmmN25Meu3kSfny3r172l933TqZUEyYIMmq582T93PxIlCmjBypiYzMaOut6euvgTfflPefN6/k1qlfX3Le/P675NEjIiJjRUdbb55x/brkfR0yxHFxiWHDgEyZgOXL0/7aTZrI+N6uneSy++wziQT/6Sdg4UIJxjDCm2/K94m5c5NeW7JENuP69TOmLeTauPjm4v77T8J5CxSQIyC5cslkyKgjl8WLS8jvqFHABx/I8R+lgD//BJo1A86cSV+ocUrGj5f32KSJ7MYrJZ/F+PGyM9K/v+ySGOHSJcltlzu3/Bvkzy9tCAsz5v5EREaz5/EsUcLxdV9fiUi7eVP/trz4ouy0t28vu+uXLkl6ggULZMHoiSfSdwT288+l4uj778vEwS5/fplEXLsmeU9T48gRqQZer560d+5c2STS0v37Eon+4EHGXytLFtngunRJJjjTp0v034kTkoeHiIiMceMG8O67krvN21vmG4MGSV43rVy4IBtN3bvLYtmBA6n/3WvXgLg455syuXPL94ErV9LXtjJlJILu0iVZ6Nu6VcZ7my19r5ce9erJXG/gQMmp9+OPwMqVEoTStat8bi+/bFx7yHVx8c2FXb4M1KwJfPWV/B//22+lM/7pJ6lGdvy4Me2YPl0WAKdNk4EhSxagbl3JsfPbb5J8MzkXLgBjxwLPPy+V6UaPlmTPyalSRSrbXb8uk6ssWeS8/SefyKDx5ZdavbvknTwpiUVXrJAjOt99Jx3wwoVyREnLgZGIyCoKFpTNhj17HF+/dk02X4zYBPHykkTH3bvLUdhixWRDqn9/GVOCgtJe3S02Vo66dO7s+At+iRLy2tu2pfxakyYBTz8NrFkjbQNkrK5QQZtjuSdOSJ42f385XpsnjxzFCQ7O+GsXLAj06CHtbdjQ2MkOEZGnCwuTXKMzZ8qC08KFMt+wz/WOHcvY6ysl42apUhJVduqURJhVry7RZo5OGCVWoICMw//84/j6zZtSNMFRsQJXYbMBM2YA33wjkfAdO0o+1sOHZWHwm284PlIqKRMVL15cAUjwZ8qUKcn+zv3799WAAQNUnjx5VPbs2VXbtm1VWFhYmu4bHh6uAKjw8PCMNN90r7yiVGCgUhcuJHz82jWlKlRQqnp1Y9tz86ZSS5YoNWeOUlu3KhUbm/LvrF2rlI+PUv7+Sr3+ulJduiiVK5dS3t5KrVyZ8u/HxSkVFCT3/P57pW7cyOi7SJvatZUqV06p//5L+PilS0qVKKFU8+bGtofIaK7Qn5ox1rjC55JRvXopVbCgUpcvJ3w8Lk6pQYOkb79+3dg23bih1M8/K7VqlVIXL6b/daKjlQKUmjfP+XPq1VOqY8fkX2fVKnmdceOUevgw/vFz55R66imlSpdO+HhaHTok42eJEkpNnarUL78oNWmSUkWLKpU/v1InT6b/tYmswhX6U85pSA8dOihVuLBSZ88mfPz6daUqVVLqmWdkzE2v+fNljPrgA6Xu3pXHYmKUWrZMqaxZlerWLXWv07KlUmXLKnXnTtJr776rVJYsSl29mv52WklcnMz7rl7N2GdP1mJUX2r64tuHH36oQkNDH/25a/9/vhP9+vVTgYGBauvWrerAgQPqueeeU7Vr107Tfd1hoLpwQSmbTamvvnJ8fd066UwPHDC2XWlx5owssrVvH9/hK6VUZKRSnTrJtRMnzGtfSg4fls94zRrH1xctkn+jc+eMbBWRsVyhPzVjrHGFzyWjLl+WDaCAAKVmzFDqf/9TauNG2RgClPryS7NbmDG1ainVuLHjayEhSmXKpNTMmSm/xgsvOL5mH0N++il97YuLU6pKFaWqVlUq8X9m167JRMjZvYlciSv0p5zTkNauXJFxZtYsx9c3bpQxZPfu9L1+TIxs3Lz2muPrM2cq5eWVNMjDkSNHlMqZU6lq1ZRav17GpGPHlOrXT9o4fnz62khkFI9ZfPv8889T/fzbt2+rLFmyqJ8e+6Z6/PhxBUDtTkPP4w4D1S+/SGeWOOLAzr5r//XXxrYrLYYOVSpvXqXu3Ut67cED2bUfPNj4dqXWt9/KZ/zggePrYWHJL84RuQNX6E/NGGtc4XPRwsWLEv2VObP0d4BS5csrtXy52S3LuBUr5P3MnJlwd/vOHVmUy5VLqdu3nf/+nTvy+wsXOn9OxYpK9e2bvvbt2SOvv3Gj4+tLlsh1Rr+Rq3OF/pRzGtLa5s3ShyeOerOLjZXFuTlz0vf6hw7J62/f7vj6nTsSseZs8S+x/fuVevbZ+O8CgMzzpk9nhBhZn1F9qek53z7++GPkzZsXzzzzDKZOnYqYmBinzz148CCio6PRuHHjR4+VK1cOxYoVw+7du53+XlRUFCIiIhL8cXU+PvLz1i3H12/flp++voY0J122bgXatpW8QYn5+Eiuga1bjW9XarnDvwGRp9B7rHHHcSY1AgMl5+WVK5L/7dgx+dOpk9kty7hXXwWGDpWiQs88A4wZI3nkihWT97p6teRZcyY2Vn4mNwb4+gLJ/KeYrH//lZ+NGjm+bv/P16j8r0SejnMa93LjhiTW//574OhR4+9vn2fYCxwldueOjDPpnWfcuyc/8+VzfD17dpmjpSbvGyA56PbvBw4dku8FGzZIfvJhw5gPjcjO1MW3t956CytWrEBQUBDefPNNTJ48GSNHjnT6/LCwMHh7eyNXrlwJHi9YsCDCkiktOWXKFPj7+z/6ExgYqNVbME3t2lI9ZuFCx9e/+UYq4jRpYmy70iI2VgolOOPtLdVzrKpxYxkYk/s38PeX4hNEZB4jxhp3HGfSIn9+KQD01FPu8yXbZpOCQps3AyVLSoXToCCgVy9JLN2wYfK/7+cHlCsHrF3r+PqFC8DBg+mvHpo9u/z87z/H169eTfg8ItIP5zTu4+FDqWwZECCJ9bt2BSpVkoqXZ84Y144aNWRhzNk8Y/FiqcTdrFn6Xr9MGZmHbd7s+PrevUBEhPMqps4884x8bs2bMwCBKAmtQ+lGjRqVJOFo4j/Hjx93+LvffPONypw5s3rg5Bzf0qVLlbe3d5LHq1evrkaOHOm0TQ8ePFDh4eGP/ly6dMktQrQnTJCz+LNnxydstifJ9PFRqn9/c9uXkr59JSl0dHTSazExShUrplTPnsa3Ky0GD5bcdN9/L21WSt7P/Pnyb/Pee+a2j0hvZh15sdpY467jjBVkpCCB2WbPlrHgxx8TPh4ZqVSTJkrlyZMw52la3LqlVLZszseZAQOUypfPeWoEPfz1lyQIz51bKT8/pZo1kzQZRBnBcSYexxp9xcUp9eqr8t1+4kTJuxYZKbk5n3xSih+EhBjXnkmTJH/0rFnxY2FsrBSly5pVqR49Mvb6r72mVKFCSfNT372rVJ06SpUqFT+/IXJnRo0zmbVezBs+fDi6d++e7HNKlSrl8PGaNWsiJiYG58+fR9myZZNcL1SoEB4+fIjbt28n2Cm6evUqChUq5PR+Pj4+8LHH7rqR994DQkOBgQOBiROBChWA06dlN719e+Dzz7W5z5UrwFdfAX/8IZEA9esDffoAyXzkqTJwoLzu0KHAF19ImWpAot1GjAAuXZLnZNTVq8DXX0vEglJAnTpA375A0aIZf+1p04Br14A33gDefVd2kf79Vz6z3r2B8eMzfg8iSspqY427jjNmCQ2VqLNvvwWuX5fd/27dgOHDgcKFzW5d6r35JvDXX3KEtUEDiVC4dg1YsgSIjATWr09/ZFquXBKdMWUKUKCAjMu+vvK6X34JzJkDfPpp/NElvX31lbzfsmWBIUMken3NGuDll4GxY4FJk4xpB5FWrDbOABxr9LZ3rxw1XboUeO21+Mfbt5f5Q4UKMjZNn25Me0aPBkJCgEGDpA+tXFnmeufOAS1bArNnZ+z1p0+X91W1qowhNWrIa8+fL/OnzZsluo6INKLr0l4aLVmyRHl5eambN286vG5PTrpy5cpHj504ccLjk5MeOSLFCzp0UGrgQKX27tUuseX69bKzkj27Um3bKtWmjey0Z8/uPMlzWsybJzs6pUopNWqUUqNHK/XEE5KkM7UJPpOzebNSOXLIe2jdWql27eTvvr7aFkLYt0+i4Dp0UGrIEKliR+QJXLE/NWKsccXPxSrOnZMKqrlzKzV8uFSOHj5c/h4Q4HoVpGNjJSK9Xj2JdCtaVMZqLQohxMTEV5PLnVsqn/r5ybg6cqRxSa5PnpQIv/795f0+bupUad/mzca0hdyPK/annNO4pv79pQJo4n7MbvhwKSJgtP/9T+YXbdsq9eabSv35p3b9+3//yTwyd27pq7NkkYi4f/7R5vWJXIFRfalNKaXMWPTbvXs39u7di4YNGyJnzpzYvXs3hg4diubNm+Pbb78FAISEhKBRo0b47rvvUKNGDQBA//79sWHDBixevBh+fn4YPHgwAGDXrl2pvndERAT8/f0RHh4OPz8/7d+cmzhzRs75v/QSsGhRfGLp27cl0mvrVonyKlEiY/fZv1926bdvl8i0+vUlwXV68+DYXboElC8vORqWLpUceYDkL+jdG/j5Z+DIEdmlJ6L0sXp/atZYY/XPxcoaNwaCg4GdO4EiReIfv3JFcmiWLAls2WJe+6zo9GmJpgsLkzxFXbsCxYsbd/9hwyQp+eXLSSPtlJKoimLFZNwlSiur96ec07iPtm2lwMDGjY6vL1woeT+jo4HMmp8fM1dsrBR3yJFDIpdd1e3bUvDh3DkgTx7JP1eypNmtIqszrC/VdWkvGQcPHlQ1a9ZU/v7+ytfXV5UvX15Nnjw5QW6E4OBgBUAFBQU9euz+/ftqwIABKnfu3CpbtmyqTZs2KjQ0NE335i5R6gwZIvli7t1Leu3uXaVy5ZJoNat6912JAIiISHrtwQOlChSQaDUiSj+r96dmjTVW/1ys6sQJ2Xlftszx9aVL5fqJE8a2i5L3/PNKdeni/Pq4cUoVLGhYc8jNWL0/5ZzGfQwcKBHWzvKcvf22zB8o9WJiJB/o+vVK/fuvvveaP19OaGXOrFTp0nLayWZTqk8f184fS/pz+8g3M3GXKHUqVJCosblzHV/v2RP4+2/5Y0U1akjk2/9vOiYxeDDw22/AqVPGtovInbA/dYyfS/r88APQqRNw65bkNEssPFweX7FCdrPJGho0kLx8K1c6vj5qlESgX75saLPITbA/dY6fjbYOHACqVwe++UbmOY+7dEmqnvbrB3z8sTntczVLlgDvvw+cPx//WK1acuLp2We1vdfKlUCHDpK7bsIEyQ977578Ww4fLo9nNEceuS+j+lIv3V6ZXF5MTPIlorNmledYlau3n4jI09iPLIaHO75++7b8TK5vT6/r16WITrduMrnatEkKAFHKmjUDfv0VuHEj6bXoaGD5cqB5c+PbRUSUFs8+K8f2+/aVQjFnzkiRnMWLJe1BrlxyzJ5StmCBpCl69lkpPBQSAqxaBURFyYaNlsEbSkmRu5dekmIR9sJM2bJJsMXkyfL4lSva3ZMoPbj4Rk7VrCn5WRxNPmJigHXr5DlWVbMm8Msv8sU/sbg4YO3ajOeVIyIi7TRoIF+WFy50fH3hQrneoIG29126FAgMlCriZ85IDtLmzSWCOixM23u5o169ZEG0XTvgv//iH4+IkMXMsDCpzEpEZHXffAOMHAnMmgU8+aRUk+7RA3jqKclFWqCA2S20vrt3gREjJMf2jz8CtWtLDte2bYE//gBKlZKIaK2cOAEcOyZVYW22pNf79AG8vKQCN5GZuPhGTg0cKEmv33tPdhTslJLS15cvy3OsasAAIDRUBtDE7Z8wQRJUDxpkXvuIiCihXLmA/v1ll/q77yQBNCA/v/tOHu/fP74AkBZ27JBIh44dZVz76y/g+HGZIISGAi+/zAi4lBQoAKxfD/zvf7KI+fLLMskqWlQiHZYuleNaRERWlzmzjDUhIRLRu3o1cPYssGGD9G9auHVL7lG+PJA3L/D008CMGUBkpDavnxrHj8sxzC+/lOO2WlqzBrhzR+aQiRfDsmcH3nkH+P13OcqrBXu0fNGijq/7+wN+frIhRGQmN6vTQlqqWROYOlV2LtavB159VSYgP/4oVU6/+AJ45hmzW+lcpUqyazVwoBwf6tRJdj1WrpQqp1OmyE4MERFZx5QpEinVrZvkiilfXiYJFy8Cr78u17X0ySdAlSoSVef1/1uSNpscMVq+XCpwb94MvPiidve8dk0mdnnzajeZM1udOhI1uGiRVKONipLjWX36SAVWIiJXkjOnHGPU2uXLEr0dEiKbPmXLAocPy3zr22+BrVulSqderl+X8XXDBiBLFhn3oqLkNNCyZdpUBr10Sd6Ds6rb9vljSIg2Y2CpUkCmTLJpVrly0utHj0pahDJlMn4vooxg5Bsl6513gKAg4IknZEdm5kyZCP3xh2scIRkwAPjzT1mImzlT3kPJkjKwjR5tduuIiCixLFkkSfO+fcArr8gx01dekb8vWSLXtfLggWzO9OwZv/D2uLp15cv6zz9rc7+TJ4E2bYBChWTyUayYFDbasUOb1zdb3rzyvWHTJolqmDCBC29ERI/r1k1S4vz7r+SSGzNGig0dOiSLVnrOr6KiZCNp/37g++8lOi0yUlIJXbsGNGzoOHdnWhUoIDlar151fP3kyfjnaaFAAaB1awkaSZwqIjpaPuOCBeW7BJGZGPlmUdeuAV9/LTnLoqJkV37AAKBqVePb0qCB9vl1HnfuHDBvnkw+lJKJSP/+QOnS2rz+88/LHyv4+2+pHnvoEODtDbRoIVEBzB9BRJRQ9eryR09RUTLu5M3r+LrNJlU879/P+L2OH5fosNy5ZTOoenWJFJsxA2jcWBb49IiyICIia/j3X2DbNqnYnTjCrFIlOaY5ciQwfbosFmlt5Urg4EFZfHu82ugrr8jR13LlpDDB2LEZu0+7drKI+NlnEl3+uOhoebx2bYlY08q0aTLfq1YNePttieQLDpZTUIcPy1FYb2/t7keUHox8s6D9+6Xz+/BDObtetaocealWTfvjNmZbvVoi6b76St7zU0/JkZXy5eV4qzuZOlX+LTdujI94mDRJ3veePWa3jojI8/j5ybGYzZsdX792TXLhaJGvbOhQIH9+GeMHDJDFt86dJTq7aVPgzTf1qcCtlNxj9Ghpw7ffarOYSEREaWP/vt+6tePrbdrI4tTBg/rcf+lSSaXw+MKbXbFikmJo6dKM3yd3buDdd4FPPwWGDAHOn5exaO9eyQm6f7/kvNNSiRLA7t1Ao0bABx/I++zeXcb5bdvkvkRm4+KbxURGSudQpozkt/nxRynVfO6cdCRjx0ryT3dw+rRMPFq3ljP/334r4deXLwMdOgBdukj1Gnfw22+ykzVmjOzCfPWV7HpdvCgLjq+8IqHfRERkHJsN6NdPJhs7dya8FhsrRyi9vOSYUEZcuCDjwJgxMil5XJYsshFz+bIc19TSf//J0dm6daVgxcaNMhkJDJRjoUREZJxMmeRnVJTj6/bHM+t0Nu3GDUkl5Ezp0pITTgtjx0rU26JFEuWXKZNEo50+LbnE69fX5j6PK1ZMxrr//pNo87AwSTVUt6729yJKDy6+WcyyZdLprVghO+R2mTMD48cDtWoBn39uWvM0NWeO7EZ8+63k9LHLmlUSX+fOLVV43MHnn0uUw6RJCQfUfPkkofetW5J7gYiIjDVkiBxVadwY6NFDxt/Zs6XPXrJEUkDky5exe5w9Kz+dpUCoUkXGQfvztBAbK6kNzpyRxNqXL8uG1unT8t5atpTiQ0REZIyGDWVDZ8kSx9eXLAFy5JBFKj0ULy5RZ0o5vn7ggESQacFmk8CDK1ckmGTuXNn0OXNG2wJGjvj5yckiPY7uEmUEF98sZts2OQPvqDqMzQa89poUQIiLM75tWtu2TcKrfX2TXvPxkXwB27YZ3y6tKSXvo3PnpOW2AYlAqFvXPd4rEZGr8fWVxakJE2R87dwZGDwYKFJE/v766xm/R65c8vPiRcfX//tPjoL6+2f8XnYbN8pEauVKoHnz+IISTzwhuW+KFJF0CEREZAz70c4xYxIW2lEKWLtWIsX69JHFIz306iWbLqtWJb22Z4/kGu/VS9t7Zs8uJ5refFM2uRwVNyLyFPzP32Li4pIPNc6cWZ7jbMfClaT2vboDT3qvRESuxtdXcqIFBwPh4cC9ezIJqVdPm9evUkXSSXz5pePxe/Zs2XRq2VKb+wGy6FapkhR5SMzXVyq8rlzpHt8niIhcxfz5UtygQQOJcOveXcaINm0kIkzP/N5NmwLt28sm0zvvSCG4Y8ckz3iTJnLCqmtX/e5P5Om4+GYxtWtLYuTEZZLtVq6U59hzBriy55+X6m7R0UmvxcTIDpBVqpRmhM0m/2YrVzq+/t9/svvlDu+ViMiV2WwSceAoIjsjvLwksu7nn2X3//Jlefz2bUlHMHGiFEPIk0e7e969CxQu7Px64cLAgwdyPJWIiIxhLwCwerX0w6dPyxHJTZskKtnHR79722yS4mjkSEnxU7UqULGiRNy98Ya0Qevxj4ji6ZTOkdKrWzcprNC9u4QEZ88ujyslOdK2bpV8NHqIi5PBYOtW+TJeu7YUf9Ar6efAgVJ44O23gZkz4xcUY2OBYcNkcjJokD73BmSBb8MG4K+/ZGLUsKF+4dBvvy07TTNmyP+2Hz+9d09yDPn4yL85ERG5p06dgIgIYPhw4JtvZNJ1/Xr8mDdxorb3K1cOmDVLCjnZv0s8bvt2Sa6t1xhPRESOZc4skW5t2hh/b3uRn3fflci32FiJxNMy7YFVxcZK8aPt22VuXa8e8NJL7hHUQq7BppTnHTiIiIiAv78/wsPD4afXofoM2LpVjp5kzSpf1v39ZZHo8GFJDP3ZZ45zh2VEcLBUHT1yBChaVDrm8+cl6eaaNRIOrYevvwb69pUcCO3by/tatUruPXeuRAjo4cgRGfDOnZP8erGxsthXsaJE3JUure39lAJGjZL8OpUry6JmRIQspEZGyj2bNtX2nkRGsHp/ahZ+LuTMnTvATz9JBdS8eSUXTnIRaukVHCxj2YgRwMcfJ/zesGePVJqbOFGuE1kZ+1Pn+NkQpc7Jk0CrVvKzeHEZE8+flzyoa9cCFSqY3UIyk1F9KRffLDpQnTsnO9a//CLHQp55BhgwQBZotF54u3tXdjxsNtmNr1dP/vehQ7Iwdv68LFYVKaLtfe0OHZLIN/suRP36kuz62Wf1uV9YmCyAFS0qkXfPPiv3/fNPSTIaHQ3873/6JDvdskX+XQ8dkmi3Fi0kui+5st9EVuYK/akZ+LmkTClg3z7gu++kXy5SRCKAq1Uzu2XuY9o0WVxr2lRyvOXKBfz6q2x8VasGbN4sG31EVsb+1Dl+NkQpu3VL5n5+fjLXrVlT5rr79wO9e0sKoCNHgPz5zW4pmYWLbzriQJXQvHlyBPTECeDJJxNeu3EDKFkSeOst7Y/EmGXcOGD6dIkKSNzJnjsnSbG/+EI+EyJKHvtTx/i5JO/hQ0nq/MMPsgNdrpwkfb58WdIvfP01j0NqZeVKiXw7eFD+nj+/bKyNHQtky2Zu24hSg/2pc/xsiFI2fbqMeWfPAgEBCa+FhQGlSgHvvSfPIc9kVF/KgguElSuBZs2SLrwBciSmc2fgxx+Nb5deVq4EOnZ0vLtRqpSc/Xen90tEZDUjRkhKgyVL5Mvwpk0SZb1wIbB0KfD++/q34cED4OpVWQh0Z+3bAwcOyATj/HkgJEQ207jwRkREnmDlSknplHjhDQAKFQLatZN0EER64+Ib4c6d5I+UFi0qz3EXnvZ+iYis5OZNYMECWWB7/fX4RMeZMkkBmpEjgdmz9euHT5yQ+/r7y5fu3LklEuzSJX3uZxUFC0qUYZYsZreEiIjIOCnN/QoX5tyPjMHFN0LZssAff0i1U0e2b5fnuIuyZYEdOxxfU8r93i8RkZVs3SpRZz17Or7es6d8Cd65U/t7HzokuV527QI++kiSLI8cCaxbJ4+fO6f9PYmIiDydPc/rggWS6/XqVePuXbZsfG5xR3bskPQXRHrj4huhb1/g9Glg/vyk1375BQgK0q/qqBn69pVJ3Zo1Sa99841ERbjT+yUispKoKPnp7+/4uv3xBw+0va9SUtDhySelqM7IkVL5bNw4+XvWrMz1SURE7isuzvkClJ6OHQOqV5dNrn79JLdrYKDMt7Qe6x3p21cKKnz/fdJrP/wgi4Kc+5ERuPhGeP55qbg5YIDkd1u/HvjtN+mo2rQBWrcGXn3V7FZqp107yYHToYNUuNm0SRYZX38d6NNHOt/69c1uJRGRe3rmGfm5caPj6xs2yM+nn9b2vrt3A//8A0yZkrSadcGCcgx20yYpxkNERKS1S5ekwqaRaQ6UApYvB2rXlkJGWbJIru/ffjPm/hcuAA0ayMbbhg1AdLSkn5gyRSLgXn9d/wVBe8Xv7t2BN96Qed+vv8oi4GuvSRtatNC3DUQAF98IUmr5yy+BOXMkKXPLlsCLL0oH+eGHUnzAnpPHHXh5ySA0aZIMPM2bA6+8AuzdC8yaBcydK58JERFpr0IFoF49qSoWFpbw2uXLEon24otA6dLa3vfYMfnZqJHj602ayM/jx7W9b2L37kmUddeuMgn4+msgMlLfexIRkXkOHAAaNwaKFQNq1JCfjRpJxJWelALeeksWmHLkkHyq06cDt2/LOPvZZ/reHwA+/VTmkdu3y5wrUybJtTp8OLBoEbB6tczB9GSzAV99BcyYIWknXnkFePllSbs0dSrw7bcyPyTSm00pM4JPzcWy3M7FxcluTGysDAyZM+t/zzNnZOFvxw4ZJOrXB/r3B8qU0f/esbHAxYvS4QYGsuMlSiv2p47xc0nemTOyABcVJbvRTz0lUWmLFklU2s6dMgZpadky2d0OC5NIt8T+/huoWlVSLTRooO297fbulQ2ua9dkAgbI5CtfPsk799xz+tw3OTExMhHLkQPw9TX+/kQpYX/qHD8b69u1SxbeypSRBadKlYCjR2UR7MQJ4PffgTp19Ln3L7/IQtO8eQmPVSoFjBkDfPKJjL0VK+pzf6WAXLnkhNWkSUmvx8UBpUpJ1Nns2fq0wdE9L1+WtnHuR3ZG9aX8z40S8PKSamilShmz8PbTTzLp+u47oEoVmfgsWSKREcuX63//TJmAkiXlPbPzJSIyxhNPSCRAt27AwoWyALdkiRz937dP+4U3QI7Z+Po6zm8KyOMFCsjRHD2Ehsqu/xNPAGfPAnv2yJ+zZyUZdPPmwJUr+tzbkWvXgKFDgfz55U/OnEDHjpIXh4iIMk4pySX69NOS+uCNN2S+06WL/L1aNcmBplcozJw5stGTOJ+ZzSZFhwoVkoU5vTx8CEREOC9k5+UleVj/+0+/Nji6Z7FinPuROfifHJnm1CmJQujQQXYgvvlGjt9cuiTh0V276n/8h4iIzFGkiBx5uXFDvqD/958cT3EUlaaFvHklt+lHH0l6AXvhh8hIYPJkWXwbNQrw9tbn/vPny/tcv142fexKlpSot5gY5wuDWgsNBWrVkqM2b74px34++USi/2rVkqM4RESUMQcPAocPSzqFrFkTXvP1BcaPl5QIeh27PHQIeOklx9fsud8OHdLn3oCMp/nzy9jiSHS0RAEGBurXBiIr4eIbmWb2bAlFXrgw4VEXX185l583r+RgIyIi95YlizH3+eQTibYbMAAoWlSqrxUpArz3HjB6tESC6WXdOin4kydP0mu5c8u1n3/W7/6PGzFCFh0PHQI+/liKKw0bJlVfa9SQza/YWGPaQkTkrs6elZ+1ajm+bn/83Dl97u/jI5FnzoSHy3P0YrMBPXpISokLF5JeX7BAUkH07KlfG4ishItvZJqgIPnC76jT9/aWiUhQkPHtIiIi95Q5s0RYHzsmEV9Vqsii07lzUnlNz2I79+87Xnizy5MHePBAv/vb3bghhZRGjABKlEh4LWtWST594YJUfiUiovTLnVt+Olp4evzxXLn0uf/LL0u+U0djS1iYFNd7+WV97m33zjsSUPH88xLdfemSpDd4+21g8GDJ861Xzjkiq+HiG5lGqeSrqGbKpH/paSIi8jxPPSXJn7/6So4DJV6E0sPTT8uClqNxTSm59vTT+rfj1Ck56mOv7prYs8/KhNFeHZaIiNKnQQNJpfDFF46vz5ghBXecVeHOqLfekoI6r76aMK/a+fNAq1ZS4KhHD33ubZc/vxRRqlFDos6LFZOxbulSSQPBU07kSbj4RqapWxdYu1YmAYnFxEgOmrp1DW8WERGR5vr3l8p2n3+e9NoXX0iO0/799W9H9uzy89o1x9cjI+VPtmz6t4WIyJ15ewMffCApdoYMkXybgESdDR8uG0Dvv6/f0c+yZWU+FRQEBATIIl/dulJYzx7hnFxEtlaKFJF2XLgAbNwo7bl8GXj3XRY9IM9iQD1LIscGDpTw44EDpRqPvbpqbKyEIoeGyjUiIiJXV78+MHKkTLg2bpTKojYb8MMPwO+/y9GcBg30b0fFikDp0pJr54UXkl7/9lvZAHvlFf3bQkTk7vr3l2Of778vUV758gHXr8vC3KefytFLPTVvLoteixcDu3bJyaL586W4nX0zxigBAfKHyFNx8c2D7dolu+3btsmRl+efl0UvR1/G9VChguTe6d1bJiLt28tEZNUq2Q2ZP9+YIzh227fL57Fzp7SjQQPZpXr+eePaQERE7uvjj4GqVeWoUZ8+8ljNmsDy5bIYZwQvL2DMGBl7S5eWQhM5c8qC248/yiJgly5A8eLGtIeIyJ3ZbJJbtFcvYOVK4MoVoHBhmffolestsTx5pA3DhhlzPyJyzLRAz+3bt8Nmszn8s3//fqe/16BBgyTP79evn4Etdw/z5gF16khls4EDZdHt/HkJR54yxbh29Ogh1dZefBH45RepBte4MXDggEwMjPLpp0DDhsCZM5IfYeBAKX1dpw5zERC5Mo41ZCU2myyy7d4tkRAPHgB79gCdOulb7CGxXr0k590nn8hxoOeekzw8r78uURLz5hnXFiJXx3GGUsPfX/re99+XOY5RC29EZB02pcxJaf/w4UPcvHkzwWPvv/8+tm7dirNnz8Lm5FtogwYNUKZMGXz44YePHsuWLRv8/PxSfe+IiAj4+/sjPDw8Tb/nLo4dAypVkgWmL76IP2uvFDBhgvzZuVMWnjzBnj1S6nvsWGDixPgJkFJyPGjGDODvv42NwiNyFVbvT80aa6z+uRABEmW+eLFUe82TR44hVa1qdquIErJ6f8o5DVH6nDsHXL0KFC0qG0BEZjGqLzXt2Km3tzcKFSr06O/R0dH4+eefMXjwYKeDlF22bNkS/C6lzZw5Unln+vSESS5tNqn6tmKFRHt5yuLbrFly9OajjxJGHthsEhH3ww/ymc2fb14biSh9ONYQORcQALz3ntmtIHJtHGeI0mbnTgl6+PPP+MdeeEGisZ991rx2EenNMvVF1q1bhxs3bqBHKuodL126FPny5UPFihUxZswY3Lt3z4AWuo+9e4EWLSTRZ2I2G9C6tUSDeYq9e6XctqNqO5kzAy1betbnQeTOONbQv/9KhPfQocDs2cCtW2a3iIjcCccZIue2bpU0Rw8fSp7Rf/4BliwBbtwA6tXjnIvcm2UKLnzzzTdo1qwZAlIogfLaa6+hePHiKFKkCI4cOYJRo0bh5MmTWL16tdPfiYqKQlRU1KO/R0REaNZuV5Qpk+SZceb+/fjKo56AnweR59BrrOE4Y30PHkie0RUrgNy5gUKFJPJ5xAjgyy+NzTNKRO6LcxqyoocPJbf24cOAj49UtK5Sxdg2xMVJ9de6daXYnj0QpGJFoG1bKXY3aJDk/iZyS0pjo0aNUgCS/XP8+PEEv3Pp0iXl5eWlVq5cmeb7bd26VQFQZ86ccfqccePGOWxHeHh4mu/nDt5/X6kcOZS6fTvptQcPlCpUSKn+/Y1vl1neekup/PmVun8/6bU7d5Ty81Nq9Gjj20XkCsLDw03pT6021nCcsb4uXZTy9VVq4UKloqLksdBQpXr3VgpQau1ac9tHRI5xnInHsYbSY/t2pQoXlrEuMFCpXLnkfzdrptTNm8a2A1Dqjz8cX1+/Xq7//bdxbSJSyrhxRvOCC9euXcONGzeSfU6pUqXg/diZx48++ggzZ85ESEgIsmTJkqb7RUZGIkeOHNi0aROaNWvm8DmOdokCAwM9Njnp5ctAuXKS023ZMkmyDAB37sjO/9q1sitSvryZrTTOqVNA5cpyFHfRIsD+n8StW8AbbwBBQcDx40wESuSIWcmerTbWcJyxtjNngCeflCqeb76Z8JpSQNOmwM2bsttuZNXRmBgZY0JCJBdr48ZAGv/TJHJ7HGficayhtDp2DKhRA6hZU6K8K1aUsWfNGqBfP6BCBWD7dsfpd7S2eLFEoD986Hisu34dyJ8fWLVKIuGIjOKyBRfy58+P/Pnzp/r5SiksWrQIXbt2TfMgBQCHDx8GABQuXNjpc3x8fODj45Pm13ZXAQHAzz9LbreAAKBZMzlWuWkTEB0NLF/uOQtvAFCmjBRV6NQJKFIEePFFCYvetEkGotWrufBGZDVWG2s4zljbmjVA9uxA165Jr9lswIAB8kX//HmgZElj2rRqleSdu3Qp/rHChSXh9BtvGNMGInLOauMMwLGG0u7TT4ECBYBffgGyZZPHMmcGOnQAcuWSzaetW4EmTfRviz3g4/x52RBLLDg44fOI3I3pBRe2bduG4OBg9HaQbCUkJATlypXDvn37AABnz57FRx99hIMHD+L8+fNYt24dunbtinr16qFy5cpGN92lNWokkQDvvgtEREiSy6FDgdOnjd9pOHkSeOst4OmnJQJt8GCJNDNSq1byeQwfLtEP4eHAmDHymJPNRyJyIRxrPNudO5LnLWtWx9ftc907d4xpz5o1MvGpVg3Yv1+iAP73P6B+fVkg/O47Y9pBRNrhOENWo5QUNejVK37h7XGNGwNly0oQghGaNJGx+PPPk15TSh4PCJDTWUTuyPQ08t988w1q166NcuXKJbkWHR2NkydPPqr84+3tjS1btmDGjBmIjIxEYGAg2rVrh/fee8/oZruFggVl8e3dd81rw/LlMtHInRto00YiEH76CZg7V0KTu3Qxri1Fi0oFPCJyPxxrPFvZspJy4fRpx7vt27cDvr5A8eL6tyUuDhg5EnjpJYl+sx/1qVxZUkHYbMDo0UDnzjyCSuRKOM6Q1Tx8KMWGAgMdX7fZ5JpRdTuyZgU++EACPrJmBd55Rza/Ll4EpkyReeHChSx0R+5L85xvrsCs3BGU0MmTknegc2fgq6+k8g4gA0W/frLz/7//SS4CIrIm9qeO8XOxlgcPZDe9Xj2JAnj8i/2FC5ILp3lzyfupt127gOefB3budLy7f+SIRIJv2CBtIvJ07E+d42dDKSlWTE7xfPVV0mv37knwwYABwKRJxrRHKWDqVAl4ePBAAjBu3gRy5AA+/ljaQmQ0o/pS04+dkueaPVvO9D++8AZI2en58yU/wezZ5rWPiIjcg68v8PXXwLp1QK1assi2dat8+a9eXY7jTJ5sTFvCwuSns9yq9sftzyMiIkqvvn2BJUukmF5iU6ZIqp1evYxrj80m0d9Xrsi4PHy4nHa6coULb+T+GNRJptm+XY6aOsobmyWL5J7bts3wZhERkRtq3VoW3CZOBHr2lMeyZ5f0BuPHA4UKGdOOokXl5//+B7zwQtLrR47Iz4AAY9pDRETua8gQKbRXvz4wcKCkPLh1C/jmG3l84kSgVCnj2+XvL5VPiTwJF9/INErJ7oczNps8h4iISAv168uf69clx02hQo6TUOupRg2Jbps8WY7BPn4ENi5OJkLFijlemCMiIkqLHDlk4+mDD+RE0ZQp8vhTT0mKH1bXJjIOj52SaerVk4pvDx8mvRYTA6xeLc8hIiLSUr58stNv9MIbIBtLn38u0d8vvigR3tevSw64li0lEuGzz4BMmYxvGxERuR8/P2DGDCA0FDh2DDh7Fjh6lAtvREbj4huZZuBAmXAMGABER8c/HhMDDBok+W4GDjSvfURERHpo1gz49VfJcdOoEZA/v2w2nTwpFVDbtTO7hURE5G6yZZOIt1Klkj99RET64LFTMs1TT0k56Z49gY0bJcebzSYRb6GhkoSzcmWzW0lERKS9Zs0kAmHfPiAkRI7APvcc4MVtUSIiIiK3w8U3MlXXrkDVqpKDYMsWyfHWooVEvHHhjYiI3JnNBtSsaXYriIiIiEhvXHwj01WsCMyda3YriIiIiIiIiIi0x8MNREREREREREREOuHiGxERERERERERkU64+EZERERERERERKQTLr4RERERERERERHphItvREREREREREREOuHiGxERERERERERkU64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ypVTL7/8crprVt3Tq1evJvWXANT777+vdu/erU6cOKGUkmO5ixQpopYvX67++ecf1blz53THcrdu3VpNnz496evM/p17MsYaY2MN40zueUKcUcpzYg3jTO4xzmQP4wzjTMp22DHWMM7oz5NijR3jjFL2jTVemXzr27evApDuY926dUnPOX78uOrQoYMqUKCAKl68uBo1alSqbO26desUABUREZH02MWLF1WvXr1UoUKFVGBgoHrqqaeSgp+eevXqpZo2bap5LSIiItXvcvLkSdW8eXMVHBysAgICVJUqVdTo0aNVTEyM7u1KadeuXapx48YqKChI5c+fX9WsWVP973//SzXLlratSil18+ZN9eyzz6qiRYuqggULqkcffTRV0NDbnDlzNP8tpFz0aeU9nT59uipXrpzy9/dXjRo1Utu2bUu61qJFC9W3b99Uz1+8eLGqVq2a8vf3V7Vq1VK//PKL7m1Kyd29mzNnjtt2Dh8+POl3KlWqlOrYsaP666+/DG2nUkr16NFDlS5dWvn7+6syZcqoHj16qKNHj7ptp1Lm38+UVq1apQCow4cPp7tm1T119XtpP1xtSUxMVG+88YYqVaqUCggIUG3atEnX/vLly6uxY8emeiyjf+eejLHG2FjDOKMPu8cZpTwn1jDO5B7jTPYwzjDOuNg51jDO6MuTYo0d44xS9o01DqWUymhbKhEREREREREREeWMn9UNICIiIiIiIiIi8lZMvhERERERERERERmEyTciIiIiIiIiIiKDMPlGRERERERERERkECbfiIiIiIiIiIiIDMLkGxERERERERERkUGYfCMiIiIiIiIiIjIIk29EREREREREREQGYfKNiIiIiIiIiIjIIEy+ERERERERERERGYTJNyIiIiIiIiIiIoMw+UZERERERERERGQQJt+IiIiIiIiIiIgMwuQbERERERERERGRQZh8IyIiIiIiIiIiMgiTb0RERERERERERAZh8o2IiIiIiIiIiMggTL4REREREREREREZhMk3IiIiIiIiIiIigzD5RkREREREREREZBAm34iIiIiIiIiIiAzC5BsREREREREREZFBmHwjIiIiIiIiIiIyCJNvREREREREREREBmHyjYiIiIiIiIiIyCBMvhHpYMuWLRg3bhyuXLmiy8/79ttv8cQTT6Bq1apwOBxo2bJltr7f4XBofkyZMkWX9hERkbn0jDMXL17E1KlT0bx5c5QoUQJFihTBvffei2+//TZbP+eLL75AzZo1kT9/flStWhXTp0/PdduIiMg6dos1HNOQN8lrdQOIvMGWLVswfvx49OvXD0WKFMn1z5s5cyZ27dqFhg0b4uLFizn6GQ888AD69OmT6rH69evnum1ERGQ+PePM1q1b8dprr6Fjx454/fXXkTdvXixZsgQ9e/bEgQMHMH78+Ex/xqxZszB48GB07doVI0eOxMaNG/H888/jxo0bePnll3PVPiIisobdYg3AMQ15DybfiGzom2++QZkyZeDn54fatWvn6GdUq1YNTzzxhM4tIyIiT1erVi0cOXIE5cuXT3rs2WefRdu2bfH222/jpZdewh133OH2+2/evInXXnsNnTp1wvfffw8AGDBgABITEzFx4kQMHDgQRYsWNfz3ICIi+8ptrHHhmIa8BbedEuXSuHHjMHr0aABAxYoVk5ZDHz9+PMc/MywsDH5+uf/vefPmTdy6dSvXP4eIiKyjd5ypWLFiqsEQIFt7unTpgri4OPz3338Zfv+6detw8eJFPPvss6keHzp0KK5fv45ffvklR+0iIiLr2C3WpMQxDXkDrnwjyqXw8HD8+++/WLhwIaZNm4bixYsDAEqUKIGYmBjcvn0705+RP39+FCpUSNd2zZ07F5988gmUUqhZsyZef/11PP7447q+BhERGc+sOBMVFQUAST/fnd27dwMA7rnnnlSPN2jQAH5+fti9ezdXKRAReRi7xRoXjmnIWzD5RpRLdevWxd13342FCxeiS5cuqFChQtK1li1b4o8//sj0Z/Tt2xdz587VrU1NmzZF9+7dUbFiRZw9exYzZsxA7969ERMTgyFDhuj2OkREZDwz4sylS5fw+eefo1mzZihdunSGPysyMhJ58uRByZIlUz3u7++PYsWK4ezZs5m2h4iI7MVusQbgmIa8C5NvRAZ67733cPny5UyfFxoaquvrbt68OdXXTz/9NBo0aIBXX30V/fr1Q4ECBXR9PSIisoYecSYxMRG9e/fGlStXsnRi6c2bN+Hv7695LX/+/Lh582amP4OIiDyHFbEG4JiGvAuTb0QGatCggdVNACCrEYYNG4bBgwdj165duP/++61uEhER6UCPOPPcc89h5cqV+Prrr3HXXXdl+vwCBQogPj5e89qtW7c4GCIi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UtJxRN7MbLGGcYaIyLuYLc4AjDVERFbm8eRbkSJFUKRIEbePV0ph/vz56NGjB3LmzJnp99u/fz8AoESJEpl+LpHVtGoF+PsDc+fKCLjUvvhCpptypR3ydow1RESkJcYZIiLyJMMXXFi/fj1OnDiBfv36pdkXGRmJKlWqYOfOnQCA48eP4+2338aePXtw8uRJ/PTTT+jRowceffRR1KxZU++mE+muRAmgXz/gjTeABQtkFBwA3LoFvPMO8OWXwOjRQA7TVHMkMgfGGiIi0hLjDBERpcfwLvq8efPQsGHDFPUSHO7du4fDhw8nrvwTEBCAtWvXYvr06bh16xbCwsLQsWNHjB07Vu9mExlm+nSZdtq7tyywUK4c8O+/QEwM8PrrsuACEaXEWENERFpinCEiovR4fMEFKzCqcCuRJ+3fD3z9NXD5MlCmDNCzpyTiiPTE66lzPC9ERJ7B66lrPDdERNln2QUXiEgftWvLFxERERERERGZl+E134iIiIiIiIiIiLwVk29EREREREREREQaYfKNiIiIiIiIiIhII0y+ERERERERERERaYTJNyIiIiIiIiIiIo0w+UZERERERERERKQRJt+IiIiIiIiIiIg0wuQbERERERERERGRRph8IyIiIiIiIiIi0giTb0RERERERERERBph8o2IiIiIiIiIiEgjTL4RERERERERERFphMk3IiIiIiIiIiIijTD5RkREREREREREpBEm34iIiIiIiIiIiDTC5BsREREREREREZFGmHwjIiIiIiIiIiLSCJNvREREREREREREGmHyjYiIiIiIiIiISCNMvhEREREREREREWmEyTciIiIiIiIiIiKNMPlGRERERERERESkESbfiIiIiIiIiIiINMLkGxERERERERERkUaYfCMiIiIiIiIiItIIk29EREREREREREQaYfKNiIiIiIiIiIhII0y+ERERERERERERaYTJNyIiIiIiIiIiIo0w+UZERERERERERKQRzZJv7777Lho2bIjcuXMjf/78To85ffo0Wrdujdy5c6No0aIYNWoU4uPj033dq1ev4tlnn0VwcDDy58+Pvn374ubNmxr8BEREZHaMNUREpCXGGSIi8gTNkm9xcXHo3LkzBg0a5HS/3W5H69atERcXh61bt2LhwoVYsGABxo0bl+7rPvvss/jnn3+wZs0arFixAr///jsGDBigxY9AREQmx1hDRERaYpwhIiKPUBqbP3++CgkJSbN95cqVys/PT0VFRSVumzVrlgoODlaxsbFOX+vff/9VANSuXbsSt/3666/KZrOpyMhIt9sUHR2tAKjo6Gj3fxAiIkrDLNdTs8Uas5wXIiKrM8v11GxxRinznBsiIivT61pqWM23bdu2oUaNGihWrFjithYtWiAmJgb//POPy+fkz58fDz74YOK25s2bw8/PDzt27NC8zUREZC2MNUREpCXGGSIickcOo944KioqRZACkPh9VFSUy+cULVo0xbYcOXKgYMGCLp8DALGxsYiNjU38Pjo6GgAQExOTpbYTEZFwXEeVUga3xDm9Yg3jDBGRNhhnkjDWEBF5nl5xJlPJt9GjR+P9999P95iDBw+iSpUq2WqUp02aNAlvvfVWmu1hYWEGtIaIyPtcuXIFISEhHnktK8YaxhkiIm35epwBGGuIiLTkyTjjTKaSby+//DJ69eqV7jHly5d367WKFy+OnTt3pth24cKFxH2unnPx4sUU2+Lj43H16lWXzwGAMWPGYOTIkYnfX79+HWXKlMHp06c1PbmeEBMTg7CwMJw5cwbBwcFGN8clttPzrNJWq7QTsE5brdJOQO66ly5dGgULFvTYa1ox1jDOaM8q7QSs01artBOwTlut0k7AOm1lnEli1Vhjlb81wDpttUo7Aeu0le30PKu0VYs440ymkm9FihRBkSJFPPLGDRo0wLvvvouLFy8mDrtes2YNgoODUa1aNZfPuX79Ovbs2YO6desCANavX4+EhASEh4e7fK/AwEAEBgam2R4SEmLqP4LkgoODLdFWttPzrNJWq7QTsE5brdJOAPDz81wJUSvGGsYZ/VilnYB12mqVdgLWaatV2glYp62+HmcA68caq/ytAdZpq1XaCVinrWyn51mlrZ6MM05fX6sXPn36NPbv34/Tp0/Dbrdj//792L9/P27evAkAeOKJJ1CtWjU8//zz+PPPP7F69WqMHTsWgwcPTgwqO3fuRJUqVRAZGQkAqFq1Klq2bIn+/ftj586d+OOPPzBkyBB07doVJUuW1OpHISIik2KsISIiLTHOEBGRJ2i24MK4ceOwcOHCxO/r1KkDANiwYQOaNGkCf39/rFixAoMGDUKDBg2QJ08e9OzZExMnTkx8zu3bt3H48GHcu3cvcdvXX3+NIUOGoFmzZvDz80PHjh3xySefaPVjEBGRiTHWEBGRlhhniIjIEzRLvi1YsAALFixI95gyZcpg5cqVLvc3adIkzYoTBQsWxOLFi7PVtsDAQIwfP97psG2zsUpb2U7Ps0pbrdJOwDpttUo7AePbatZYY/R5yQyrtNUq7QSs01artBOwTlut0k7AOm01up1mjTOA8efGXVZpJ2CdtlqlnYB12sp2ep5V2qpXO23KrOt2ExERERERERERWZy2FeWIiIiIiIiIiIh8GJNvREREREREREREGmHyjYiIiIiIiIiISCNemXx799130bBhQ+TOnRv58+d3eszp06fRunVr5M6dG0WLFsWoUaMQHx+f7utevXoVzz77LIKDg5E/f3707ds3cZlxT9i4cSNsNpvTr127drl8XpMmTdIcP3DgQI+1y5WyZcumed/Jkyen+5y7d+9i8ODBKFSoEPLmzYuOHTviwoULmrXx5MmT6Nu3L8qVK4dcuXKhQoUKGD9+POLi4tJ9nl7ndObMmShbtiyCgoIQHh6OnTt3pnv8d999hypVqiAoKAg1atRIt7ivJ0yaNAn16tVDvnz5ULRoUbRr1w6HDx9O9zkLFixIc+6CgoI0bScATJgwIc37VqlSJd3n6H0+HZz937HZbBg8eLDT4/U6p7///juefvpplCxZEjabDcuWLUuxXymFcePGoUSJEsiVKxeaN2+Oo0ePZvi6mf07twrGGu1jDeNM9pk9zgDWiTWMM9nHOJM5jDOMMw5mjjWMM55llVhj1jgDmDjWKC80btw49dFHH6mRI0eqkJCQNPvj4+NV9erVVfPmzdW+ffvUypUrVeHChdWYMWPSfd2WLVuqWrVqqe3bt6vNmzerihUrqm7dunms3bGxser8+fMpvvr166fKlSunEhISXD6vcePGqn///imeFx0d7bF2uVKmTBk1ceLEFO978+bNdJ8zcOBAFRYWptatW6d2796t6tevrxo2bKhZG3/99VfVq1cvtXr1anX8+HG1fPlyVbRoUfXyyy+n+zw9zunSpUtVQECA+vLLL9U///yj+vfvr/Lnz68uXLjg9Pg//vhD+fv7qylTpqh///1XjR07VuXMmVP9/fffHm1Xci1atFDz589XBw4cUPv371etWrVSpUuXTvf3PH/+fBUcHJzi3EVFRWnWRofx48er+++/P8X7Xrp0yeXxRpxP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CerNN99UxYoVU4GBgapZs2Zp2l+mTBk1fvz4FNvS+zu3MsYabWMN44xnmD3OKGWdWMM4k32MM5nDOMM442DmWMM441lWijVmjDNKmTfW2JRSKr1pqURERERERERERJQ1fkY3gIiIiIiIiIiIyFsx+UZERERERERERKQRJt+IiIiIiIiIiIg0wuQbERERERERERGRRph8IyIiIiIiIiIi0giTb0RERERERERERBph8o2IiIiIiIiIiEgjTL4RERERERERERFphMk3IiIiIiIiIiIijTD5RkREREREREREpBEm34iIiIiIiIiIiDTC5BsREREREREREZFGmHwjIiIiIiIiIiLSCJNvREREREREREREGmHyjYiIiIiIiIiISCNMvhEREREREREREWmEyTciIiIiIiIiIiKNMPlGRERERERERESkESbfiIiIiIiIiIiINMLkGxERERERERERkUaYfCMiIiIiIiIiItIIk29EREREREREREQaYfKNiIiIiIiIiIhII0y+ERERERERERERaYTJNyIiIiIiIiIiIo0w+UbkAVu3bsWECRNw/fp1j7zeiBEj8MADD6BgwYLInTs3qlatigkTJuDmzZtuv8a8efNQtWpVBAUFoVKlSpgxY4ZH2kZERPozW5yx2WxOvyZPnuyR9hERkf48HWuSO378OIKCgmCz2bB79263npOQkIApU6agXLlyCAoKQs2aNbFkyRKPt41IDzmMbgCRN9i6dSveeust9OrVC/nz58/26+3atQuNGjVC7969ERQUhH379mHy5MlYu3Ytfv/9d/j5pZ83nzNnDgYOHIiOHTti5MiR2Lx5M4YOHYrbt2/jtddey3b7iIhIX2aLMwDw+OOPo0ePHim21alTJ9ttIyIiY3g61iQ3YsQI5MiRA7GxsW4/54033sDkyZPRv39/1KtXD8uXL0f37t1hs9nQtWtXj7aPSGtMvhGZ0JYtW9Jsq1ChAl555RXs3LkT9evXd/ncO3fu4I033kDr1q3x/fffAwD69++PhIQEvP322xgwYAAKFCigWduJiMj8shNnHO677z4899xzWjSPiIi8yOrVq7F69Wq8+uqreOedd9x6TmRkJD788EMMHjwYn376KQCgX79+aNy4MUaNGoXOnTvD399fy2YTeRSnnRJl04QJEzBq1CgAQLly5RKn3pw8edKj71O2bFkA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IiIiIiIiIiKNMPlGRERERERERESkESbfiIiIiIiIiIiINMLkGxERERERERERkUaYfCMiIiIiIiIiItIIk29EREREREREREQaYfKNiIiIiIiIiIhII0y+ERERERERERERaYTJNyIiIiIiIiIiIo0w+UZERERERERERKQRJt+IiIiIiIiIiIg0wuQbERERERERERGRRph8IyIiIiIiIiIi0giTb0RERERERERERBph8o2IiIiIiIiIiEgjTL4RERERERERERFphMk3IiIiIiIiIiIijTD5RkREREREREREpBEm34iIiIiIiIiIiDTC5BsREREREREREZFGmHwjIiIiIiIiIiLSiOHJt7Jly8Jms6X5Gjx4sNPjFyxYkObYoKAgnVtNRERWwThDRERaYpwhIqKM5DC6Abt27YLdbk/8/sCBA3j88cfRuXNnl88JDg7G4cOHE7+32WyatpGIiKyLcYaIiLTEOENERBkxPPlWpEiRFN9PnjwZFSpUQOPGjV0+x2azoXjx4lo3jYiIvADjDBERaYlxhoiIMmL4tNPk4uLisGjRIvTp0yfduz83b95EmTJlEBYWhrZt2+Kff/5J93VjY2MRExOT4ouIiHwP4wwREWlJqzgDMNYQEVmZqZJvy5Ytw/Xr19GrVy+Xx1SuXBlffvklli9fjkWLFiEhIQENGzbE2bNnXT5n0qRJCAkJSfwKCwvToPVERGR2jDNERKQlreIMwFhDRGRlNqWUMroRDi1atEBAQAB+/vlnt59z7949VK1aFd26dcPbb7/t9JjY2FjExsYmfh8TE4OwsDBER0cjODg42+0mIvJVMTExCAkJscz1lHGGiMhaGGeSMNYQEXmeXnHG8JpvDqdOncLatWsRERGRqeflzJkTderUwbFjx1weExgYiMDAwOw2kYiILIxxhoiItKRlnAEYa4iIrMw0007nz5+PokWLonXr1pl6nt1ux99//40SJUpo1DIiIvIGjDNERKQlxhkiInLFFMm3hIQEzJ8/Hz179kSOHCkH4/Xo0QNjxoxJ/H7ixIn47bff8N9//2Hv3r147rnncOrUKfTr10/vZhMRkUUwzhARkZYYZ4iIKD2mmHa6du1anD59Gn369Emz7/Tp0/DzS8oRXrt2Df3790dUVBQKFCiAunXrYuvWrahWrZqeTSYiIgthnCEiIi0xzhARUXpMteCC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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f, axarr = plt.subplots(3, 3, figsize=(15,15))\n", + "for i,axs in enumerate(axarr):\n", + " for j,ax in enumerate(axs):\n", + " ax.set_aspect(\"equal\")\n", + " ax.set_xlim([-10,10])\n", + " ax.set_ylim([-10,10])\n", + " ax.scatter(coords[i*3+j,:sim.N//2,0],coords[i*3+j,:sim.N//2,1],facecolors='none', edgecolors='b')\n", + " ax.scatter(coords[i*3+j,sim.N//2:,0],coords[i*3+j,sim.N//2:,1],facecolors='b')\n", + " ax.set_title(\"t=%.1f\"%(times[i*3+j]))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Holmberg pointed out the aparent spiral arms in the post collision snapshots in his paper. You can see them in the above plots as well. However, note that this simulation is very rudimentary and a claim that it explains the occurance of spiral arms in galaxies would not hold up. One of the most obvious shortcomes of our model is that a typical galaxy contains 100 billion stars but our model contains only 37 particles." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/Horizons.ipynb b/rebound/source/docs/ipython_examples/Horizons.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..f382c626da6c345ad3f97cce801b4a9d5360fc8b --- /dev/null +++ b/rebound/source/docs/ipython_examples/Horizons.ipynb @@ -0,0 +1,355 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Adding particles using NASA JPL Horizons system\n", + "\n", + "REBOUND can add particles to simulations by obtaining ephemerides from NASA's powerful HORIZONS database. HORIZONS supports many different options, and we will certainly not try to cover everything here. This is meant to serve as an introduction to the basics, beyond what's in [Churyumov-Gerasimenko.ipynb](../Churyumov-Gerasimenko). If you catch any errors, or would either like to expand on this documentation or improve REBOUND's HORIZONS interface (`rebound/horizons.py`), please do fork the repository and send us a pull request.\n", + "\n", + "**Adding particles**\n", + "\n", + "When we add particles by passing a string, REBOUND queries the HORIZONS database and takes the first dataset HORIZONS offers. For the Sun, moons, and small bodies, this will typically return the body itself. For planets, it will return the barycenter of the system (for moonless planets like Venus it will say barycenter but there is no distinction). If you want the planet specifically, you have to use, e.g., \"NAME=Pluto\" rather than \"Pluto\". In all cases, REBOUND will print out the name of the HORIZONS entry it's using.\n", + "\n", + "You can also add bodies using their integer NAIF IDs: [NAIF IDs](https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/MATLAB/req/naif_ids.html). Note that because of the number of small bodies (asteroids etc.) we have discovered, this convention only works for large objects. For small bodies, instead use \"NAME=name\" (see the SMALL BODIES section in the [HORIZONS Documentation](https://ssd.jpl.nasa.gov/?horizons_doc))." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Sun'... \n", + "Found: Sun (10) \n", + "---------------------------------\n", + "REBOUND version: \t4.0.3\n", + "REBOUND built on: \tJan 12 2024 08:52:18\n", + "Number of particles: \t1\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "---------------------------------\n", + "The following fields have non-default values:\n", + "N:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 1\u001b[0m\n", + "python_unit_l:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 4097248214\u001b[0m\n", + "python_unit_m:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 2145773914\u001b[0m\n", + "python_unit_t:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 1864791206\u001b[0m\n", + "rand_seed:\n", + "\u001b[31m< 886170\u001b[0m\n", + "---\n", + "\u001b[32m> 676381\u001b[0m\n", + "particles:\n", + "\u001b[32m> (128 bytes, values not printed)\u001b[0m\n", + "\n" + ] + } + ], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(\"Sun\")\n", + "## Other examples:\n", + "# sim.add(\"Venus\")\n", + "# sim.add(\"399\")\n", + "# sim.add(\"Europa\")\n", + "# sim.add(\"NAME=Ida\")\n", + "# sim.add(\"Pluto\")\n", + "# sim.add(\"NAME=Pluto\")\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Currently, HORIZONS does not have any mass information for solar system bodies. `rebound/horizons.py` has a hard-coded list provided by Jon Giorgini (10 May 2015) that includes the planets, their barycenters (total mass of planet plus moons), and the largest moons. If REBOUND doesn't find the corresponding mass for an object from this list (like for the asteroid Ida below), it will print a warning message. If you need the body's mass for your simulation, you can set it manually, e.g. (see [Units.ipynb](../Units) for an overview of using different units):" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'NAME=Ida'... \n", + "Found: 243 Ida (A884 SB) \n", + "\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/dtamayo/Documents/workspace/rebound/rebound/horizons.py:167: RuntimeWarning: Warning: Mass cannot be retrieved from NASA HORIZONS. Set to 0.\n", + " warnings.warn(\"Warning: Mass cannot be retrieved from NASA HORIZONS. Set to 0.\", RuntimeWarning)\n" + ] + } + ], + "source": [ + "sim.add(\"NAME=Ida\")\n", + "print(sim.particles[-1]) # Ida before setting the mass\n", + "sim.particles[-1].m = 2.1e-14 # Setting mass of Ida in Solar masses\n", + "print(sim.particles[-1]) # Ida after setting the mass" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Time**\n", + "\n", + "By default, REBOUND queries HORIZONS for objects' current positions. Specifically, it caches the current time the first time you call `rebound.add`, and gets the corresponding ephemeris. All subsequent calls to `rebound.add` will then use that initial cached time to make sure you get a synchronized set of ephemerides.\n", + "\n", + "You can also explicitly pass REBOUND the time at which you would like the particles ephemerides: " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Venus'... \n", + "Found: Venus Barycenter (299) (chosen from query 'Venus')\n", + "Searching NASA Horizons for 'Venus'... \n", + "Found: Venus Barycenter (299) (chosen from query 'Venus')\n", + "---------------------------------\n", + "REBOUND version: \t4.0.3\n", + "REBOUND built on: \tJan 12 2024 08:52:18\n", + "Number of particles: \t2\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n", + "The following fields have non-default values:\n", + "N:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 2\u001b[0m\n", + "python_unit_l:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 4097248214\u001b[0m\n", + "python_unit_m:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 2145773914\u001b[0m\n", + "python_unit_t:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 1864791206\u001b[0m\n", + "rand_seed:\n", + "\u001b[31m< 829806\u001b[0m\n", + "---\n", + "\u001b[32m> 210256\u001b[0m\n", + "particles:\n", + "\u001b[32m> (256 bytes, values not printed)\u001b[0m\n", + "\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "date = \"2005-06-30 15:24\" # You can also use Julian Days. For example: date = \"JD2458327.500000\"\n", + "sim.add(\"Venus\")\n", + "sim.add(\"Venus\", date=date)\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the two Venus positions are different. The first call cached the current time, but since the second call specified a date, it overrode the default. Any time you pass a date (with time in UTC), it will overwrite the default cached time, so: " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Venus'... \n", + "Found: Venus Barycenter (299) (chosen from query 'Venus')\n", + "Searching NASA Horizons for 'Earth'... \n", + "Found: Earth-Moon Barycenter (3) (chosen from query 'Earth')\n", + "---------------------------------\n", + "REBOUND version: \t4.0.3\n", + "REBOUND built on: \tJan 12 2024 08:52:18\n", + "Number of particles: \t2\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n", + "The following fields have non-default values:\n", + "N:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 2\u001b[0m\n", + "python_unit_l:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 4097248214\u001b[0m\n", + "python_unit_m:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 2145773914\u001b[0m\n", + "python_unit_t:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 1864791206\u001b[0m\n", + "rand_seed:\n", + "\u001b[31m< 433115\u001b[0m\n", + "---\n", + "\u001b[32m> 842290\u001b[0m\n", + "particles:\n", + "\u001b[32m> (256 bytes, values not printed)\u001b[0m\n", + "\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "date = \"2005-06-30 15:24\" # You can also use Julian Days. For example: date = \"JD2458327.500000\"\n", + "sim.add(\"Venus\", date=date)\n", + "sim.add(\"Earth\")\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "would set up a simulation with Venus and Earth, all synchronized to 2005-06-30 15:24 UTC. All dates should either be passed in the format Year-Month-Day Hour:Minute or in JDxxxxxxx.xxxx for a date in Julian Days.\n", + "\n", + "For reference HORIZONS interprets all times for ephemerides as [Coordinate (or Barycentric Dynamical) Time](https://en.wikipedia.org/wiki/Barycentric_Dynamical_Time)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Origin**\n", + "\n", + "REBOUND queries for particles' positions and velocities relative to the Solar System barycenter" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Sun'... \n", + "Found: Sun (10) \n", + "---------------------------------\n", + "REBOUND version: \t4.0.3\n", + "REBOUND built on: \tJan 12 2024 08:52:18\n", + "Number of particles: \t1\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "---------------------------------\n", + "The following fields have non-default values:\n", + "N:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 1\u001b[0m\n", + "python_unit_l:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 4097248214\u001b[0m\n", + "python_unit_m:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 2145773914\u001b[0m\n", + "python_unit_t:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 1864791206\u001b[0m\n", + "rand_seed:\n", + "\u001b[31m< 629898\u001b[0m\n", + "---\n", + "\u001b[32m> 447379\u001b[0m\n", + "particles:\n", + "\u001b[32m> (128 bytes, values not printed)\u001b[0m\n", + "\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(\"Sun\")\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The reference plane is the ecliptic (Earth's orbital plane) of J2000 (Jan. 1st 2000 12:00 GMT), with the x-axis along the ascending node of the ecliptic and the Earth's mean equator (also at J2000). " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/docs/ipython_examples/HybridIntegrationsWithTRACE.ipynb b/rebound/source/docs/ipython_examples/HybridIntegrationsWithTRACE.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..4c974cd8d272ed6c3b97213f5f3430636beae6af --- /dev/null +++ b/rebound/source/docs/ipython_examples/HybridIntegrationsWithTRACE.ipynb @@ -0,0 +1,198 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Hybrid integrations with TRACE\n", + "REBOUND comes with several integrators, each of which has its own advantages and disadvantages. TRACE is a time-reversible hybrid integrator (Lu, Hernandez & Rein 2024) that is an improvement on the older MERCURIUS hybrid integrator. It uses a symplectic Wisdom-Holman integrator when particles are far apart from each other and switches over to a high order integrator during close encounters. Specifically, TRACE uses the efficient WHFast and Bulirsch-Stoer/IAS15 internally." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's start out by showcasing the problem with traditional fixed timestep integrators such as WHFast. We setup a simulation of the outer solar system and increase the masses of the planets by a factor of 50. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import math\n", + "import rebound, rebound.data\n", + "%matplotlib inline\n", + "sim = rebound.Simulation()\n", + "rebound.data.add_outer_solar_system(sim) # add some particles for testing\n", + "for i in range(1,sim.N):\n", + " sim.particles[i].m *= 50.\n", + "sim.integrator = \"WHFast\" # This will end badly!\n", + "sim.dt = sim.particles[1].P * 0.002 # Timestep a small fraction of innermost planet's period\n", + "sim.move_to_com()\n", + "E0 = sim.energy() # Calculate initial energy \n", + "rebound.OrbitPlot(sim);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us integrate this system for a few hundred years. An instability will occur. We can then measure the energy error, which is a good estimate as to how accurate the integration was." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Relative energy error with WHFast: 41.850545\n" + ] + } + ], + "source": [ + "sim.integrate(600*2.*math.pi)\n", + "E1 = sim.energy()\n", + "print(\"Relative energy error with WHFast: %f\"%((E0-E1)/E0))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "An energy error that large means we basically go it wrong completely. Let's try this again but use TRACE." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Relative energy error with TRACE: 3.591519e-07\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "rebound.data.add_outer_solar_system(sim) # add some particles for testing\n", + "for i in range(1,sim.N):\n", + " sim.particles[i].m *= 50.\n", + "sim.integrator = \"trace\" \n", + "sim.dt = sim.particles[1].P * 0.002 # Timestep a small fraction of innermost planet's period\n", + "sim.move_to_com()\n", + "E0 = sim.energy() # Calculate initial energy \n", + "sim.integrate(600*2.*math.pi)\n", + "E1 = sim.energy()\n", + "print(\"Relative energy error with TRACE: %e\"%((E1-E0)/E0))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see, TRACE is able to integrate this system with much better accuracy. When a close encounter occurs, it automatically (and reversibly!) switches to the BS integrator. When there is no close encounter, you still get all the benefits in terms of speed an accuracy from a symplectic integrator." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are a few options to adjust TRACE. First of all, close encounters with the central star are treated differently than close encounters between planets. This becomes important in systems that deal with highly eccentric orbits. \n", + "\n", + "You can switch between two prescriptions that use the BS integrator:\n", + "* `PARTIAL_BS`, the fastest and least accurate method\n", + "* `FULL_BS`, which provides a good compromise between speed and accuracy (this is the default)\n", + "\n", + "Or you may use the IAS15 integrator\n", + "* `FULL_IAS15`, which is the most accurate but slowest prescription (in most cases, this will have no significant accuracy advantage over `FULL_BS`)\n", + "\n", + "See Lu, Hernandez & Rein (2024) for more details on these prescriptions." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# Sets the pericenter switching prescription\n", + "sim.ri_trace.peri_mode = \"PARTIAL_BS\" # or\n", + "sim.ri_trace.peri_mode = \"FULL_BS\" # or\n", + "sim.ri_trace.peri_mode = \"FULL_IAS15\" # or" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You also may want to change the criteria at which TRACE switches over from pure WHFast to BS/IAS15. For planet-planet encounters, this is expressed in units of a slightly modified Hill radii criteria. The default is 3 Hill radii, in the following we change it to 5 Hill radii (larger values result in more accurate but slower simulations):" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "sim.ri_trace.r_crit_hill = 5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For star-planet encounters, this is expressed as a parameter $\\eta$, which is related to the ratio between the timestep and an adaptive timescale described in Dang, Rein & Spiegel (2024). The default is $\\eta = 1$, we set it to $\\eta = 0.1$ here (lower values result in more accurate but slower simulations):" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "sim.ri_trace.peri_crit_eta = 0.1" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/docs/ipython_examples/HyperbolicOrbits.ipynb b/rebound/source/docs/ipython_examples/HyperbolicOrbits.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..47ab16cc1b2bfa0cada585535e3a10f3e1716e6b --- /dev/null +++ b/rebound/source/docs/ipython_examples/HyperbolicOrbits.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Loading Hyperbolic Orbits into REBOUND\n", + "\n", + "Imagine we have a table of orbital elements for comets (kindly provided by Toni Engelhardt)." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from io import StringIO\n", + "import numpy as np\n", + "import rebound\n", + "epoch_of_elements = 53371.0 # [MJD, days]\n", + "c = StringIO(u\"\"\"\n", + "# id e q[AU] i[deg] Omega[deg] argperi[deg] t_peri[MJD, days] epoch_of_observation[MJD, days]\n", + "168026 12.181214 15.346358 136.782470 37.581438 268.412314 54776.806093 55516.41727\n", + "21170 2.662235 2.013923 140.646538 23.029490 46.292039 54336.126288 53673.44043 \n", + "189298 15.503013 11.550314 20.042232 203.240743 150.855761 55761.641176 55718.447145 \n", + "72278 34.638392 24.742323 157.984412 126.431540 178.612758 54382.158401 54347.240445\n", + "109766 8.832472 9.900228 144.857801 243.102255 271.345342 55627.501618 54748.37722\n", + "\"\"\")\n", + "comets = np.loadtxt(c) # load the table into a numpy array" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We want to add these comets to a REBOUND simulation(s). The first thing to do is set the units, which have to be consistent throughout. Here we have a table in AU and days, so we'll use the gaussian gravitational constant (AU, days, solar masses). " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "k = 0.01720209895 # Gaussian constant\n", + "sim.G = k**2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We also set the simulation time to the epoch at which the elements are valid:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "sim.t = epoch_of_elements" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We then add the giant planets in our Solar System to the simulation. You could for example query JPL HORIZONS for the states of the planets at each comet's corresponding epoch of observation (see [Horizons.ipynb](../Horizons)). Here we set up toy masses and orbits for Jupiter & Saturn:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "sim.add(m=1.) # Sun\n", + "sim.add(m=1.e-3, a=5.) # Jupiter\n", + "sim.add(m=3.e-4, a=10.) # Saturn" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Let's write a function that takes a comet from the table and adds it to our simulation:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def addOrbit(sim, comet_elem):\n", + " tracklet_id, e, q, inc, Omega, argperi, t_peri, epoch_of_observation = comet_elem\n", + " sim.add(primary=sim.particles[0], \n", + " a = q/(1.-e),\n", + " e = e,\n", + " inc = inc*np.pi/180., # have to convert to radians\n", + " Omega = Omega*np.pi/180.,\n", + " omega = argperi*np.pi/180.,\n", + " T = t_peri # time of pericenter passage\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By default, REBOUND adds and outputs particles in Jacobi orbital elements. Typically, orbital elements for comets are heliocentric. Mixing the two will give you relative errors in elements, positions etc. of order the mass ratio of Jupiter to the Sun ($\\sim 0.001$) which is why we pass the additional `primary=sim.particles[0]` argument to the `add()` function. If this level of accuracy doesn't matter to you, you can ignore the `primary` argument.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now set up the first comet and quickly plot to see what the system looks like:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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IiIXYMESERG5AAuWiIjIBViwRERELsCCJSIicgEWLBERkQuwYImIiFyABUtEROQCLFgiIiIXYMESERG5AAuWiIjIBViwRERELsCCJSIicgEWLBERkQuwYImIiFyABUtEROQCLFgiIiIXYMESERG5AAuWiIjIBSRTsIsXL0bfvn3h7++P4ODgWu8jk8luuGzevLlxgxIREQHwETvArTKbzXjwwQeRkJCAdevW1Xm/DRs2YPjw4Y7rdZUxERGRK0mmYBcsWAAA2Lhx403vFxwcDJ1O1wiJiIiI6iaZXcS3Kjk5GeHh4ejVqxfWr18PQRBuen+TyQSDwVDjQkRE1FCS2YK9FQsXLsSgQYPg7++PH374AU8//TTKy8vx7LPP1vlvUlJSHFvHREREziIT/moTz4VeeuklLF269Kb3OXfuHNq1a+e4vnHjRkyfPh2lpaV/+fhz587Fhg0bkJ2dXed9TCYTTCaT47rBYEBMTAz0ej2CgoL++kUQEZHHMBgM0Gq1TukAUbdgZ86ciQkTJtz0Pi1atKj34/fu3RuvvvoqTCYT1Gp1rfdRq9V1fo2IiKi+RC3YiIgIREREuOzxT506hZCQEBYoERE1Oskcg83KykJxcTGysrJgs9lw6tQpAECrVq2g0WjwzTffIC8vD3369IGvry927tyJJUuW4Pnnnxc3OBEReSXJFOzcuXPxwQcfOK5369YNALB3714MGDAASqUSq1evxnPPPQdBENCqVSusWLECkydPFisyERF5MVEHObkjZx7gJiIiaXFmB3jcebBERETugAVLRETkAixYIiIiF2DBEhERuQALloiIyAVYsERERC7AgiUiInIBFiwREZELsGCJiIhcgAVLRETkAixYIiIiF2DBEhERuQALloiIyAVYsERERC7AgiUiInIBFiwREZELsGCJiIhcgAVLRETkAixYIiIiF2DBEhERuQALloiIyAVYsERERC7AgiUiInIBFiwREZELsGCJiIhcgAVLRETkAixYIiIiF2DBEhERuQALloiIyAVYsERERC7AgiUiInIBFiwREZELsGCJiIhcgAVLRETkAixYIiIiF2DBEhERuQALloiIyAUkUbCXL1/GpEmTEB8fDz8/P7Rs2RLz5s2D2Wyucb9ffvkF/fv3h6+vL2JiYrBs2TKREhMRkbfzETvArTh//jzsdjveffddtGrV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IAjC9u3bha5duwoajUYICAgQunTpIqxdu1aw2WziBv+Dv3oNgiAIly9fFkaMGCH4+fkJ4eHhwsyZMwWLxSJe6DqcOHFC6N27t6DVagVfX1+hffv2wpIlS9zmDaYub7/9thAbGyuoVCqhV69ewpEjR8SOdEvGjRsnNGnSRFCpVELTpk2FcePGCenp6WLHqtPevXtr/V1//PHHBUH4/VSdOXPmCFFRUYJarRYGDx4sXLhwQdzQf3Cz/BUVFcLQoUOFiIgIQalUCnFxccLkyZPd6oNaXe/3GzZscNynsrJSePrpp4WQkBDB399fuP/++2tsdN0KLldHRETkAh49ipiIiEgsLFgiIiIXYMESERG5AAuWiIjIBViwRERELsCCJSIicgEWLBERkQuwYImIiFyABUtEROQCLFgiIiIXYMESERG5AAuWyMsVFBRAp9NhyZIljttSU1OhUqmwe/duEZMRSRsn+ycifPfddxg9ejRSU1PRtm1bdO3aFUlJSVixYoXY0YgkiwVLRACA5ORk7Nq1C3feeSfS0tJw7NgxqNVqsWMRSRYLlogAAJWVlejUqROys7Nx4sQJ3HHHHWJHIpI0HoMlIgBARkYGrl+/DrvdjsuXL4sdh0jyuAVLRDCbzejVqxe6du2Ktm3b4o033kBaWhoiIyPFjkYkWSxYIsK//vUvfP755zh9+jQ0Gg3uvvtuaLVabNu2TexoRJLFXcREXm7fvn1444038N///hdBQUGQy+X473//i4MHD2LNmjVixyOSLG7BEhERuQC3YImIiFyABUtEROQCLFgiIiIXYMESERG5AAuWiIjIBViwRERELsCCJSIicgEWLBERkQuwYImIiFyABUtEROQCLFgiIiIX+P8BKcAAdrNfJSQAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "addOrbit(sim, comets[0])\n", + "%matplotlib inline\n", + "op = rebound.OrbitPlot(sim,xlim=[-20.,20],ylim=[-20.,20])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we just integrate until whatever final time we’re interested in. Here it's the epoch at which we observe the comet, which is the last column in our table:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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sGCJiIhEwIIlIiISAQuWiIhIBCxYIiIiEbBgiYiIRMCCJSIiEgELloiISAQsWCIiIhGwYImIiETAgiUiIhIBC5aIiEgEsinYV155BYMGDYK3tzf8/f2v+BiFQnHZZcOGDfYNSkREBMBD6gDXymAwYPLkyUhKSsJnn33W7OPWrFmDsWPHWq83V8ZERERikk3BLlmyBACwdu3aqz7O398f4eHhdkhERETUPNlMEV+r2bNnIzg4GPHx8Vi9ejUEQbjq4/V6PbRa7SUXIiKi1pLNCPZaLF26FDfddBO8vb2xZcsWPProo9DpdHj88ceb/TfLli2zjo6JiIhsRSH80xBPRAsWLMBrr7121cf88ccf6Nq1q/X62rVrMXfuXFRXV//j8y9atAhr1qxBUVFRs4/R6/XQ6/XW61qtFlFRUaipqYGfn98/fxJEROQ0tFotNBqNTTpA0hHsk08+iRkzZlz1MbGxsS1+/oSEBLz00kvQ6/VQqVRXfIxKpWr2PiIiopaStGBDQkIQEhIi2vNnZmYiICCABUpERHYnm/dgCwsLUVlZicLCQpjNZmRmZgIAOnbsCF9fX/z0008oLy9HYmIi1Go1tm7dildffRVPPfWUtMGJiMglyaZgFy1ahHXr1lmvx8XFAQB27NiB4cOHw9PTEx988AHmzZsHQRDQsWNHrFixAg8++KBUkYmIyIVJusjJEdnyDW4iIpIXW3aA0x0HS0RE5AhYsERERCJgwRIREYmABUtERCQCFiwREZEIWLBEREQiYMESERGJgAVLREQkAhYsERGRCFiwREREImDBEhERiYAFS0REJAIWLBERkQhYsERERCJgwRIREYmABUtERCQCFiwREZEIWLBEREQiYMESERGJgAVLREQkAhYsERGRCFiwREREImDBEhERiYAFS0REJAIWLBERkQhYsERERCJgwRIREYmABUtERCQCFiwREZEIWLBEREQiYMESERGJgAVLREQkAhYsERGRCFiwREREImDBEhERiYAFS0REJAIWLBERkQhkUbD5+flISUlBTEwMvLy8cMMNN2Dx4sUwGAyXPO7YsWMYOnQo1Go1oqKi8Prrr0uUmIiIXJ2H1AGuxcmTJ2GxWPDxxx+jY8eOOH78OB588EHU1dXhzTffBABotVokJydj1KhRWLlyJbKysjBz5kz4+/vjoYcekvgzICIiV6MQ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OMHLy0sIDg4WnnzyScFoNEoXuhmHDh0SEhISBI1GI6jVaqFbt27Cq6++6jB/YJrz/vvvC9HR0YJSqRTi4+OFjIwMqSNdkylTpggRERGCUqkU2rZtK0yZMkXIzc2VOlazduzYccWf9enTpwuC8OehOi+88IIQFhYmqFQqYeTIkUJOTo60of/iavnr6+uF5ORkISQkRPD09BTat28vPPjggw71Qq25v/dr1qyxPqahoUF49NFHhYCAAMHb21u47bbbLhl0XQuero6IiEgETr2KmIiISCosWCIiIhGwYImIiETAgiUiIhIBC5aIiEgELFgiIiIRsGCJiIhEwIIlIiISAQuWiIhIBCxYIiIiEbBgiYiIRMCCJXJxFy5cQHh4OF599VXrbfv27YNSqURqaqqEyYjkjZv9ExE2bdqEiRMnYt++fejSpQv69u2LCRMmYMWKFVJHI5ItFiwRAQBmz56Nbdu2YcCAAcjKysKBAwegUqmkjkUkWyxYIgIANDQ0oGfPnigqKsKhQ4fQq1cvqSMRyRrfgyUiAMCZM2dQUlICi8WC/Px8qeMQyR5HsEQEg8GA+Ph49O3bF126dME777yDrKwshIaGSh2NSLZYsESEp59+Gv/9739x9OhR+Pr6YtiwYdBoNPj555+ljkYkW5wiJnJxaWlpeOedd/Dvf/8bfn5+cHNzw7///W/s3r0bH330kdTxiGSLI1giIiIRcARLREQkAhYsERGRCFiwREREImDBEhERiYAFS0REJAIWLBERkQhYsERERCJgwRIREYmABUtERCQCFiwREZEIWLBEREQi+P/8DJ9gXKpH+gAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tfinal = comets[0][-1]\n", + "sim.integrate(tfinal)\n", + "op = rebound.OrbitPlot(sim,xlim=[-20.,20],ylim=[-20.,20])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "REBOUND automatically find out if you want to integrate forward or backward in time." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For fun, let's add all the comets to a simulation:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAc8AAAHACAYAAADELuP+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAACAZElEQVR4nO3deViN+f8/8Gf7vllCyb6NZayDZixjEIaxlUgoZS+DErJkmci+Tikiu5J9J4RBlrFnRGiVFqrTfrb7/v3hV199JJ0659znnF6P6+q6prPc92uO03me9/t+L2osy7IghBBCSIWpc10AIYQQomwoPAkhhBAJUXgSQgghEqLwJIQQQiRE4UkIIYRIiMKTEEIIkRCFJyGEECIhCk9CCCFEQppcF6BIGIZBSkoKjIyMoKamxnU5hBBC5IhlWeTm5sLCwgLq6uW3LSk8v5CSkgIrKyuuyyCEEMKhpKQk1K9fv9zHUHh+wcjICMDnF87Y2JjjagipvliWhZWVFZYsWYKpU6dK/fhv376FjY0NQkND8dNPP0n9+Ipk7NixSEpKws2bN6lH7X9kZmZixYoVuHHjBmxtbTFlyhQ0b968JAvKQ+H5heI3lrGxMYUnIRxKT08Hn89Hq1atZPK3yDAM1NXVYWlpqdJ/6wkJCbh8+TK2b98OExMTrstRKDdv3sSCBQsgEokQFBSEfv36IScnBwAq9CWDBgwRQhROfHw8AKBhw4YyOX52djYAqHRwAkBgYCCMjY0xZswYrktRGHw+H3/99RdcXV3RqlUrnDt3Dv369ZP4ONTyJIQonOLwbNCggUyOX9zCMDU1lcnxFUFRURFCQkLg7OwMAwMDrstRCK9evYKHhwfi4+OxZMkSjBs37rsDg76FWp6EEIWTkJAAU1NTmYVbdnY2NDU1oaenJ5PjK4IjR47g06dPmDZtGtelcI5hGOzduxcjR46Empoajh8/jgkTJlQ6OAFqeRJCFFBCQgIaNWoks+PzeDyYmJio9ACagIAA2NjYoFmzZlyXwqmMjAzMmzcPt27dgrOzM+bOnQsdHZ0qH5fCkxCicOLj42V2vRP4HJ6q3GX74MEDPHz4ECdPnuS6FE5duXIF3t7e0NLSwu7du9GzZ0+pHZu6bQkhCichIUGm4Zmdna3Sg4W2b9+Ohg0bYuDAgVyXwonCwkIsWbIE06dPR5cuXXD27FmpBidALU9CiIJhGEbm3bY5OTkq2/LMyMhAWFgYVqxYAQ0NDa7Lkbvo6Gh4eHggNTUVf/31F0aPHi2T7nlqeRJCFErxHE9qeVZOSEgI1NXV4ezszHUpciUWixEUFAQ7OzsYGBjg1KlTGDNmjMyua1PLkxCiUIqnqch6wFDTpk1ldnyuFAeIvb09atasyXU5cpOSkgIvLy88ePAAU6dOxZ9//gktLS2ZnpPCkxCiUBISEgDIbo4n8H+jbVXNuXPnkJiYCDc3N65LkZtz585hyZIlMDQ0xIEDB9C1a1e5nJe6bQkhCiUhIQE1atSQabeqqobn9u3b0bVrV3Tq1InrUmQuLy8P8+bNw+zZs9GrVy+cOXNGbsEJUMuTEKJgZD1NhWEYlRww9Pr1a1y5cgV79uzhuhSZe/ToETw9PZGVlYV169Zh2LBhcp+zSy1PQohCkXV45ubmgmVZlRswtH37dtSuXRt2dnZclyIzYrEYW7duhYODA8zNzXH27FkMHz6ck8UuKDwJIQpFHqsLAaq1rm1eXh727dsHFxcXqayeo4gSExMxZswYBAQEYObMmTh06NB399yUJeq2JYQoDIZhkJiYKJfwVKWW56FDh5CXl4cpU6ZwXYrUsSyLU6dOYfXq1dDX10doaCg6dOjAdVkUnoQQxZGWlgaBQCDzpfkA1Wl5siyLgIAA/PHHHzIdocyFnJwc+Pj44MKFC3B2dsaff/6pMDvEUHgSQhRGXFwcANnt4wmoXnjeunULL168wMaNG7kuRaru378PLy8vFBQUYPPmzRg0aBDXJZVC1zwJIQqjeI6nPMLTyMhIZueQp4CAALRs2RJ9+vThuhSpEAqFWL9+PSZMmIAGDRrg9OnTChecALU8CSEKJCEhAbVq1YKhoaHMzpGdnQ0jIyOVWPc1JSUFJ0+exPr161Vie7W4uDh4enoiJiYGnp6ecHFxUdh/JwpPQojCkPVuKsDnlqeqDBYKDg6Grq4uxo8fz3UpVcKyLMLDw7Fq1SrUqVMH4eHhaNOmDddllYvCkxCiMGQ9xxNQnb08BQIBdu7cCUdHR6X+MpCVlYXFixfjypUrGD16NLy9vaGnp8d1Wd9F4UkIURjx8fEYNmyYTM+hKkvznTx5EqmpqZgxYwbXpVTa7du3MX/+fAiFQvj7+6Nfv35cl1RhNGCIEKIQxGIxkpKSZDrHEwDU1NRgYWEh03PIw/bt29G7d2+0bt2a61Ikxufz4efnBxcXF7Ro0QJnzpxRquAEqOVJCFEQqampEAqFMu+2TUxMRPPmzWV6Dll79uwZRCIR3N3duS5FYrGxsfD09MS7d+/g7e2NCRMmQF1d+dpxylcxIUQlyWMfT0A1NsIOCAhAQkIChg4dynUpFcayLA4cOABbW1uIxWIcPXoUzs7OShmcALU8CSEKQh77eALKP2AoKysLBw8exIIFC2S+4bO0fPz4EQsXLsSNGzcwbtw4eHl5QVdXl+uyqoTCkxCiEOLj41G7dm2ZLr/GsqzSDxjau3cvhEIhJk2axHUpFXL9+nV4e3tDTU0NO3bsQO/evbkuSSooPAkhCkEeczyLioogFAqVtuXJMAy2b98OOzs71KlTh+tyylVUVIS1a9fi4MGD6N27N1atWoVatWpxXZbUUHgSQhSCvOZ4AlDalmdERATevHmj8Btev3z5EnPnzkVSUhJ8fHwwduxYlVgB6UvKeaWWEKJyZL2PJ/B5sBCgvOH5999/o2PHjujevTvXpZSJYRiEhIRg1KhR0NTUxPHjx+Ho6KhywQlQy5MQogCK53hSy/Pb3r17hwsXLmDnzp0KGUbp6emYP38+7ty5AxcXF8yZMwfa2tpclyUzStvyXL16NdTU1DB79uyS24qKiuDm5oaaNWvC0NAQtra2SEtL465IQkiFpKSkQCQSUcuzHIGBgTAzM8OYMWO4LuUrERERGDJkCGJjY7F7927Mnz9fpYMTUNLwfPDgAYKCgvDjjz+Wun3OnDk4c+YMwsPDcePGDaSkpGDkyJEcVUkIqajiOZ6ybnnm5OQAUL69PAsKCrB7925MnDhRodZ9LSwsxJIlS+Du7o6ffvoJZ86cwS+//MJ1WXKhdOGZl5cHR0dH7Ny5E2ZmZiW383g87Nq1Cxs3bsRvv/2Gzp07IyQkBHfu3MHdu3c5rJgQ8j3ymuOZnZ0NXV1dpWsVhYaGIjs7G9OmTeO6lBLR0dEYPnw4zpw5g7/++gt///13qc9kVad04enm5obBgwd/tQ7iw4cPIRQKS93eqlUrNGjQAFFRUWUei8/nIycnp9QPIUT+EhISYG5uDn19fZmeRxkXSGBZFv7+/vj999/RpEkTrsuBWCxGUFAQ7O3tYWBggJMnT8Le3l4hr8PKklINGAoNDcWjR4/w4MGDr+5LTU2Ftrb2V38YderUQWpqapnH8/Pzw/Lly2VRKiFEAvIYaQso516eUVFRePLkCVatWsV1KUhJScG8efPw77//YsqUKZg5c6bSrHIkbUrT8kxKSsKsWbNw8OBBqS3r5O3tDR6PV/KTlJQkleMSQiQTFxcn8+udwOduW2UbLOTv749mzZqhf//+nNZx/vx5DB06FMnJydi3bx88PDyqbXACShSeDx8+RHp6Ojp16gRNTU1oamrixo0b2Lp1KzQ1NVGnTh0IBIKS0XTF0tLSULdu3TKPqaOjA2Nj41I/hBD5k8fqQsDnAUPK1G2bmpqKY8eOYcaMGZwtoJ6Xl4f58+djzpw56NGjB06fPo2uXbtyUosiUZpu2759++L58+elbps4cSJatWqF+fPnw8rKClpaWrh69SpsbW0BAK9evUJiYiKsra25KJkQUgEikQjJyclya3nKelCSNAUHB0NLSwtOTk6cnP/JkydYu3YtXr58iTVr1mDYsGHV7trmtyhNeBoZGaFt27albjMwMEDNmjVLbnd1dYWHhwdq1KgBY2NjzJw5E9bW1gq7Ggch5PN1NLFYjMaNG8v8XMo0YEgoFCIoKAiOjo5yr7l4UFBAQAB69uyJU6dOKdWXDnlQmvCsiE2bNkFdXR22trbg8/kYMGAAAgICuC6LEFIOec3xBKBUO6qcOnUKKSkpmDFjhlzPm5ycjHnz5uHp06eYPn06pk+fDg0NDbnWoAyUOjyvX79e6nddXV34+/vD39+fm4IIIRIrDk8rKyuZn0uZBgwVt/r+dzEYWTpz5gxWrFgBExMT7N+/H506dZLbuZWNUocnIUT5JSQkoE6dOjJfOUcgEKCoqEgpwvP58+e4ceMGQkND5XK+3NxcrFixAmfPnsUff/yBJUuWwMjISC7nVlYUnoQQTslzjiegHOvaBgQEoF69ehg+fLjMz/Xw4UPMmzcPOTk5WLt2Lf744w+Zn1MVKM1UFUKIapLXNJXi8FT0AUPZ2dk4cOAApkyZItN5lGKxGFu3bsWECRNQt25dnDx5koJTAtTyJIRwysDAAB06dJD5eZRlR5V9+/ZBIBBg8uTJMjtHYmIi5s2bh+joaLi7u2PKlCk0KEhC1PIkhHBGKBTiwoULcgk0ZWh5MgyDgIAA2Nraol69elI/PsuyOHnyJEaMGIHMzEwcPHiQRtNWErU8CSGcSU5OBsMwcr3mqcgriV25cgWxsbHYtWuX1I+dk5ODZcuW4cKFCxg+fDgWLVoEQ0NDqZ+nuqDwJIRwJi4uDgDkEp7Z2dnQ0tJSqP0w/5e/vz/at2+Pn3/+WarHffDgAebNm4f8/Hxs3LgRgwYNkurxqyPqtiWEcCYhIQFqampymeOZk5MDExMThV1eLi4uDufOnYObm5vUahSJRNi8eTOcnJxQv359nDp1ioJTSqjlSQjhTFxcHCwtLaGjoyPzcyn6AgmBgYEwMTGBg4ODVI6XkJCAuXPn4uXLl5g1axYmTZpE1zaliMKTEMKZ+Ph4uUxTARR7XdvCwkLs3r0bEydOrPKG4CzL4vjx41i5ciVq166NQ4cOyXWVouqCwpMQwpn4+Hg0bdpULudiGEYui89XRlhYGLKysjBt2rQqHYfH48HHxweXL1+Gra0tFi5cWOUwJmWj8CSEcCY+Ph59+/aVy7nev3//zb19ucSyLPz9/TFw4EA0a9as0se5e/cuFixYgMLCQmzevBkDBgyQYpXkf9GAIUIIJwoLC/Hhwwe5jLQFFPea57179/Do0SO4ublV6vlCoRDr16+Hi4sLGjVqhFOnTlFwygG1PAkhnEhKSgIgn2kqgOJuR+bv748mTZpUKvDi4+Ph6emJV69ewdPTE87OzjQoSE6o5UkI4YQ853gCijlgKC0tDeHh4ZgxYwbU1Sv+ccyyLMLDwzFq1CgYGxsjLCwMrq6uFJxyRC1PQggn4uPjoaGhAUtLS5mfSyQSIT8/X+FansHBwdDU1ISzs3OFn5OdnY2lS5fiypUrsLOzw4IFCxR64QdVReFJCOFEfHw8rKysoKkp+48hRVwUXiQSISgoCGPHjoWZmVmFnhMVFYWFCxeCz+djy5Yt6Nevn4yrJN9C3baEEE7Ex8fLbeqIIu7lefr0abx//x4zZsz47mOLBwVNmjQJjRs3xokTJyg4OUYtT0IIJ+Li4tCuXTu5nEsRd1TR0NDAhAkTvrsdW1xcHLy8vBAbG1syKEiS66NENuhfgBDCiYSEBLm1PBWx23bYsGEICQn55v0sy+LIkSOws7NDUVERDh8+DBcXFwpOBUEtT0KI3OXl5eHjx49yHWkLKFZ4licrKwtLly7F1atXYW9vj3nz5tGgIAVD4UkIkbuEhAQA8p2moqmpqRRL1UVFRcHb2xsCgQBbt26V2wpMRDLU/ieEyB1XczwVdTsyABAIBCWDgpo2bYqTJ09ScCowankSQuQuPj4eOjo6cltrVlGX5iv25aAgLy8vTJgwga5tKjgKT0KI3MXHx6NBgwZyCwhFXZqveKWgNWvWoF69eggNDcUPP/zAdVmkAig8CSFyJ885noBiLs2XlZUFHx8fXLt2Dfb29pg/fz50dXW5LotUEIUnIUTu4uLi0L17d7mdj8fjKdR2ZHfu3MHChQshFAqxbds2/Pbbb1yXRCREneqEELlLSEiQ22Ah4HMrTxG6bYsHBW3duhXNmzfHiRMnKDiVFLU8CSFylZWVBR6PJ9fwVIRrnnFxcZg/fz5iY2Mxe/ZsjB8/ngYFKTH6lyOEyFV8fDwAVItrnhEREbC2tkbt2rXRrl07JCYm4tChQ3BycqLgVHL0r0cIkavi8GzYsKFczicSiVBQUCD3lqeLiwtsbGxw9+5dfPz4Efn5+bh37x42bNgg1zqIbFB4EkLkKj4+HgYGBqhVq5ZczpednY2OHTvK7XzA5xbnt9at3bVrF65evSq3WohsUHgSQuQqLi4OjRo1kttqPzweD0+fPoWhoaFczicUCjF58uRyH7N48WK51EJkh8KTECJX8h5pK88dVRISEjBu3DikpKSU+7jv3U8UH4UnIUSuilue8iKPvTxZlsWxY8dgZ2eH/Px8tG7dutzHW1hYyKwWIh8UnoQQuWFZVq77eAKy346Mx+PB09MTy5Ytw+DBgxEeHo5169aV+xxfX1+Z1ELkh8KTECI3GRkZKCgokNtIW+Bzt622trZMlr578OABbG1tce/ePWzcuBHLli2Dnp4e+vfvD1dX1zKf4+rqSrulqAAKT0KI3HA1x9PExESqA5REIhF27doFV1dXNGjQAMePH0f//v1LPSY4OBhXrlxB9+7d0aBBA3Tv3h1XrlxBcHCw1Oog3KEVhgghclO8j6e8W57S7LJNTEzEggULEBMTAy8vLzg6On5zwYO+fftSK1NFUXgSQuQmISEBpqamcl3th8fjwczMrMrHYVkWZ86cgZ+fH2rVqoX9+/ejTZs2UqiQKCMKT0KI3Mh7pC0gnXVtc3Nz4evri4sXL2LYsGGYP38+DAwMpFQhUUYUnoQQuZH3SFvgc7dtVbqJHz9+DG9vb+Tm5mLNmjUYOHCgFKsjyooGDBFC5CYuLk6u1zuByl/zFIvF2L59O1xcXFCnTh2Eh4dTcJIS1PIkhMgFwzBITEzkpOUpaXimpKTA29sbz549w9SpUzF58mRoaGh893ksywKA3JYeJNyh8CSEyMWHDx8gEAjkes2TZVmJtyO7cOEC/vrrLxgbGyMkJAQdOnSQ+JwUnqqPwpMQIhfFczzlGZ5FRUUQCAQVannm5+fDz88PZ86cwcCBA7F48WIYGRlJdD4KzuqDwpMQIhdczPGs6Lq20dHRWLlyJT59+gRfX18MGTJE4hCkLtvqhcKTECIXCQkJMDc3l+sUDx6Ph06dOn1znifDMNizZw8CAgLQqlUr7Nq1C1ZWVpU6F7U6qxcKT0KIXHA10vbJkydldtump6dj8eLF+PfffzFx4kRMnz4dmpqV+0ikVmf1Q+FJCJGL+Ph4TkbaAl/vqBIZGYnly5dDR0cHQUFB+Omnn6p0Hmp1Vj80z5MQIhfx8fGcrC4E/F94FhUVYeXKlfDw8ECnTp1w5MgRqQQnQK3O6oZanoQQmROJREhOTuYkPA0MDKCpqYnY2FgsWLAA79+/x6JFi2Bra0uBRyqNwpMQInPJyckQi8VyD8/s7GyYmpri8OHD2Lx5Mxo2bIhDhw6hSZMmUjsHddlWTxSehBCZ42IfT+DzwgypqakIDAyEnZ0dZs2aBW1tbakdn7psqy8KT0KIzMXHx0NNTa3S00Aq4969ezh69CgEAgFWrVqFX375RernoFZn9UXhSQiRubi4OFhYWEBHR0fm5xIKhfD398f+/fuhq6uLvn37yiw4AWp1Vlc02pYQInMJCQlyud6ZmJiIiRMn4vDhw5g9ezaaN2+OunXryuRc1Oqs3ig8CSEyJ+tNsFmWxZkzZzB27Fjk5+djz549GD9+PHJycqq8ETYhZaFuW0KIzMXHx6NPnz4yOXZeXh5WrVqFS5cuYejQofDy8oK+vj6A/xttK23UZUsoPAkhMsXn85GSkiKTkbbPnz9HUFAQnj17hlWrVmHAgAEl94nFYuTk5MgsPCk4qzcKT0KITCUmJgKQ7m4qxQu6BwUFoW3btjh06BDq169f6jE8Hg+tW7dGzZo1pXZegFqd5DMKT0KITEl7jmdGRgaWLFmCR48ewcXFBZMnT4aGhsZXj8vJyUFMTIzEe3J+D8MwUFen4SLVHYUnIUSm4uPjoaGhAUtLyyof6+bNmyULum/fvh2dO3f+5mOLF4WXZrcty7IlLU9SvVF4EkJkKi4uDvXr16/0dl/A5+umW7ZsQXh4OHr37o0lS5Z8dxStLMKTYRioqalRly2h8CSEyFZCQkKVumzfvXuHtWvX4vnz55g/f36FF3T/1nZklVXc6iyri5hUP9RxTwiRqcrO8WRZFidPnoSzszM0NDSwd+9e2NnZVbjVx+PxoK2tDV1dXYnPXRZqdZIvKU14+vn54aeffoKRkRHMzc0xfPhwvHr1qtRjioqK4Obmhpo1a8LQ0BC2trZIS0vjqGJCCFC5fTxzc3Ph7e0NPz8//P7779iwYQOaNWsm0TGys7NhZmYmtbCj6SnkS0oTnjdu3ICbmxvu3r2LiIgICIVC2NjYID8/v+Qxc+bMwZkzZxAeHo4bN24gJSUFI0eO5LBqQqq3/Px8ZGRkSBSeT58+haOjI/7991/4+flhwYIFlWo9ZmVlSa3LlmEYAKBRtqSE0lzzvHjxYqnf9+zZA3Nzczx8+BC9evUCj8fDrl27cOjQIfz2228AgJCQEPzwww+4e/cuunfvzkXZhFRrCQkJACo2TYVhGISEhCA4OBjt2rXDihUrqrQuLY/Hk9pgIZqeQv6X0oTn/+LxeACAGjVqAAAePnwIoVCIfv36lTymVatWaNCgAaKiosoMTz6fDz6fX/J7Tk6OjKsmpHqJi4sD8P0FEjIyMrB69Wo8ffoUEydOhKura5UH5khraT5aFIGURSnDk2EYzJ49G7/88gvatm0LAEhNTYW2tvZXfyx16tRBampqmcfx8/PD8uXLZV0uIdVWQkICdHR0UK9evW8+5vbt2/jrr7+gpaWFdevWoWPHjlI5t76+PiwsLKp8HBooRMqilP0Qbm5uiI6ORmhoaJWO4+3tDR6PV/KTlJQkpQoJIcDnlmeDBg3K7PIUCoXYvHkz5s6di3bt2mH//v1SC04AePnyZZVbr8XTU6jLlvwvpWt5uru74+zZs7h582aptSzr1q0LgUDwVVdNWlraN6+b6OjoyGVzXkKqq2+NtE1MTMSSJUsQFxeHOXPmYNSoUVJv2Unjmid12ZJvUZqvUyzLwt3dHSdOnMC1a9e+GoDQuXNnaGlp4erVqyW3vXr1ComJibC2tpZ3uYQQlB2eFy5cwOLFi1FUVITg4GDY29tLPZzEYrFUwpMGCpFvUZqWp5ubGw4dOoRTp07ByMio5DqmiYkJ9PT0YGJiAldXV3h4eKBGjRowNjbGzJkzYW1tTSNtCeFIQkICRo0aBQAoKCjA+vXrcenSJQwbNgwzZ86Enp6eTM6bm5sLlmWrFJ40PYWUR2nCc/v27QCAX3/9tdTtISEhcHZ2BgBs2rQJ6urqsLW1BZ/Px4ABAxAQECDnSgkhwOd5ljk5OWjatClevXoFHx8ffPr0CT4+PqX23ZSF4qX5zMzMKn0MsVhMwUm+SWnCsyI7Gejq6sLf3x/+/v5yqIgQUp64uDgIhUK8evUKW7duRdOmTbF+/XpYWVnJ/NxVXdeWYRgaKETKpTThSQhRLi9evADLsnjy5AlsbW0xffp0aGlpyeXcVW15isVimp5CykXhSQiRuqdPn2Lt2rXQ0NDAn3/+iR49esj1/FVpeRZPT6nKFmpE9dG7gxAiNQzDYP/+/di9ezeAz6t8yTs4AaCwsBAdO3as1Jq4xa1O6rIl5aHwJIRIxadPnxAYGIhLly7ByckJR48eldp2YJJKS0ur9I5KDMPQnp3ku+irFSGkyh48eAAXFxc8evQImzdvhqurK+Lj49GkSRNO6qnsurZisRgAKDzJd1HLkxBSaSKRCLt378bBgwfRtWtXLFy4EGZmZmAYBvHx8RXaTUUWivfylBQtikAqisKTEFIp6enp2Lx5M6KiojB16lSMGTOmJHhSUlIgEAg4a3lmZWVJ3PIsnp5CA4VIRdC7hBAisTt37mD16tUwNzfHtm3bSnY3Kla8FZkkm2BLU3Z29ne3QftfND2FSILCkxBSYSKRCDt27EB4eDh+/vlnLFiwAEZGRl89Lj4+HgC34SlJty1NTyGSoncKIaRCUlNTsX37dty5cwdubm6wtbX9Zivt3bt3qFu3LvT19eVc5Wfm5uaoU6dOhR8vEoloRSEiEXqnEEK+6/bt25g6dSri4+OxdetW2NnZldu9GRcXx9lgIT6fj2fPnlU4uFmWhVgsphG2RCLU8iSEfJNIJEJQUBCOHz+OHj16wMvLC4aGht99XlxcHKddtkDFl+aj6SmkMig8CSFlSk1Nxfr16/Hu3Tu4ublhxIgRFR5MExcXh969e8u4wrJlZWUBQIVH2xa3OmmgEJEEddsSQr5y+/ZtTJ8+HWlpafDz88PIkSMrFC4RERHo1q0bkpKScPDgQURERMih2tIkaXmKxWKwLEutTiIxCk9CSAmRSIQ9e/Zg2bJlaN++PbZv346WLVtW6LkuLi6wsbHB/fv3AXweNGRjY4NJkybJsuSvSNLyLN6zkwYKEUlRty0hBMDnRQ9WrlyJtLQ0zJgxA8OHD69wV2ZERARCQkLKvG/Xrl1wcHBA3759pVnuN2VlZUFDQ6PMKTRfYhgGDMPIbZs0olro6xYhBPfv38eMGTOQmZmJ5cuXS3R9EwB8fHzKvX/x4sVVLbHCsrOzUbdu3e/WX7woAnXZksqglich1ZhYLMa+fftw7949tGnTBnPnzv1ui60sKSkpVbpfmrKzs2FgYFDuY4qnp9CiCKSy6J1DSDX16dMnrF69Gv/99x+cnZ2/O3ezPBYWFkhMTCz3fnnJysr67mAhkUgEhmEoPEml0TuHkGro6dOnCA4ORlZWFtasWfPV2rSSWrFiBWxsbL55v6+vb5WOL4mKhicFJ6kKuuZJSDXCsixCQ0OxaNEimJub4++//65ycAJA//794erqWuZ9rq6uchssBACZmZnlhmfxUnwUnqQq6N1DSDWRm5uLgIAA/PPPPxgzZgzGjh0r1SkawcHBcHBwwOLFi5GSkgILCwv4+vrKNTgBoEaNGrC0tPzm/SKRCBoaGjQ9hVQJhSch1UBsbCz8/PygpaWFZcuWoUuXLjI5T9++feUelv/r8ePH31zdqHh6io6OjpyrIqqGwpMQFcayLK5cuYKAgAA0adIECxYsQO3atbkuS2YKCwtRVFT0zW5boVBI01OIVFB4EqKiioqKsH37dty9exeDBw+Gk5OTyi8IkJmZCeBz1+3/Kp6eoq2tLe+yiAqi8CREBb1//x5r1qxBamoq3N3d0atXL65LkovidW3LWppPKBTSOrZEaig8CVExd+/exdatW9G0aVPMnTsXDRo04LokucnJyUHbtm3LbHkKhUJoamrS7ilEKig8CVERYrEYoaGhOHr0KKytreHu7l7hDaFVRUZGBv7777+vrnkWtzpVvduayA+FJyEqgMfjYePGjcjMzISzszOGDh1aLVtYWVlZMDAw+Go0bXGrk6anEGmh8CREycXGxmLdunUQiUTw9PREmzZtuC6JM2UtkCAWi2l6CpE6Ck9ClBTLsoiMjMTu3bvRqlUrzJgxo8xrfdVJdnb2V6+BQCCAuro6DRQiUkXhSYgSEggECA8Px4sXL9CvXz+MGzeuQsvNicVi5OXlIT8/H3l5eRCJRODz+RCJRCVbdKmpqUFdXR2amprQ0tKCjo4OdHR0oKurCwMDA+jp6Slsl3BmZiZq1apV8jvDMBCJRNDV1eWwKqKKKDwJUTKZmZkIDw9HRkYGBg8ejF9++eWbj2VZFjweDx8/fsTHjx/B5/NLQlJfXx8GBgYwMDCApqZmyQ/LsmAYBmKxGCzLgs/nIz8/HyKRqCRYDQwMYGxsDBMTE4UKpqysLDRr1qzkd4FAAAA0UIhIHYUnIUrk7du3OHfuHNTU1DB+/Hg0bNiwzMfl5uYiKSkJHz9+RFFREbS0tFCzZk1YWVnB2NgYBgYGEg+eYVkWBQUFJS3XjIwMpKWlQUdHByYmJjAzM+P8uuKX1zxZloVQKKRFEYhMUHgSoiTu37+PqKgo1K5dG0OHDoWhoWGp+1mWxYcPHxAfH4/s7Gxoa2vDwsIClpaWMDY2rnJXq5qaWklLtfh8eXl5yM7OxsePH5GZmQkjIyPUrFmTsykymZmZJdc8BQIBWJal8CQyQeFJiIITiUS4du0a3r59i3bt2qF3796lBr8Uh+arV6+Qm5uLOnXqoFOnTjA3N5fp1Aw1NTUYGRnByMgI9evXR1ZWFjIzMxEfHw8DAwPUrl1briFaWFgIkUhUcs1TKBRCS0tLYa/PEuVG4UmIAsvNzUVkZCR4PB769OmDVq1albo/KysLL168QGZmJmrXro0OHTp8dyNoWVBTU4OpqSnMzMyQn5+PT58+ITk5GYaGhqhdu7ZcrjlmZmZCLBajRo0aEAqFEIvF1W6RCFI1J06cqPBjKTwJUVBpaWmIiooCAAwaNKjUKFKxWIz//vsPb968gbGxMX755RfUrFmTq1LBsiyAzyFqaGgIQ0ND5ObmIiMjA/Hx8ahdu3aZ681K05eLwhcVFdGenaTCGIbBypUrsWnTpgo/h8KTEAX09u1bvHz5EmZmZujWrVupEa2ZmZl4/Pgx8vLy0KZNGzRv3lwhuyaNjIxgYGCAzMxMZGZmoqCgAObm5hWaUlMZPB4PDRo0gLGxMcRiccm1WULKk5eXh6lTp+Ly5ctYuHAhvLy8KvQ8+lpGiAJhGAbR0dF48+YNGjdujJ49e5YKzvj4eFy7dg1qamro27cvWrRooZDBWUxdXR21atWChYUFRCIRkpOTUVhYKJNzZWRk4P3799DT04O6ujpNTyHfFR8fjwEDBuD27ds4fPgwpkyZUuHnUsuTEAUhEAgQExOD3Nxc/Pjjj6hXr17JfSzL4vHjx3jz5g2aNGmCTp06KVyXZHkhrquri/r16yMjIwMZGRkwMzODkZGRVM//6dMnmJqagmEYutZJvuv27dtwdnaGiYkJLl++jBYtWiAnJ6fCz1esvz5CqqnCwkK8efMGLMuiffv2pYKTYRjcunULCQkJ6Ny5M7p06aJwwVl8zbM86urqqFOnDoyMjJCVlVWy96a0fPr0CSYmJlBTU6NWJynX4cOHMXLkSLRt2xYRERFo0aKFxMeglichHMvNzUVqaip0dHTQvHnzUh/8DMPgn3/+wYcPH9CzZ09YWlpyWOm3fTlg6HvMzMygqamJrKwsqKmpwcTERCo15Ofno0GDBtDW1lbormzCHaFQiIULF2Lv3r1wd3eHt7d3pb9oUXgSwqHMzEzk5OTA1NQUtWrVKvWhzzAMbt++jdTUVPTu3btUa1SRsCwLlmUlag0bGRlBQ0MD2dnZUFNTg7GxcZXrSEpKQu3atTlf5YgopszMTEycOBF37tzB2rVrMXHixCodj8KTEA4wDFOydF7NmjXLvP537949JCYm4rffflPY4KwKfX39krV31dXVv1oxSVIZGRn44YcfFK5Lm3Dv1atXcHBwAI/Hw8mTJ8tdD7qi6F1GiJwJhUKkpqZCIBDA3Ny8zOB8+fIlYmNj0b17d4UPTkm6bP+XgYEBjIyMkJ+fDz6fX+ka+Hw+DAwMvrnWL6m+Ll++jH79+kFXVxfXrl2TSnACFJ6EyFVRUREyMjKgoaGBunXrlrkjyYcPH/Dvv/+iTZs2aNq0KQdVSq4q1xiNjIygq6uLnJwciMXiSh0jMzMTb968kflCDER5sCyLLVu2YMyYMejZsycuX74s1S9XFJ6EyEleXh4+fvwIbW1t1K5du8zFAvh8Pm7cuFGyPq0yYBimyscwNjaGuro6eDxehUbufkkoFCIjIwPq6uqcrrJEFAefz8f06dOxbNkyzJkzBwcOHKjyZYH/Rdc8CZGx4ut6BQUFMDIyKnd0aVRUFMRiMXr06KE0I0ZZlpXKji0mJibIyspCUVER9PT0KvzcwsJC8Hg8NG/evNQShqR6SktLw7hx4/D8+XPs3LkTdnZ2MjkPhSchMsQwDDIzMyEUCmFmZlZuKCQkJODdu3fo3bu3Uk3yl0Z4AoCmpiYMDQ1RWFgIbW3tUjvHfItIJAKfz0deXh7i4uIoPKu5x48fw9HRESzL4vz58zLtvaHwJERGRCIRsrKywDAMatasWe6+kiKRCLdv30aDBg3kdp2TZVnk5uYiNzcXfD6/ZMCOmpoatLW1oaWlBT09PRgaGpZ5bbb4GMXPkQZdXV0IBIKSVvr3FBYWQk1NDTweD9ra2rSebTV2/PhxzJgxA23btsWBAwdQt25dmZ6PwpMQGeDz+cjOzoaGhgZq1ar13VbUixcvUFBQgJ9++kmmdbEsi48fPyI1NRUZGRkloWdoaAgdHZ2SCeNFRUXIzc0tGcCjp6cHY2Nj1KxZs1SQMgwDhmGkFp5qamrQ19dHbm5uyX6c38IwDIqKimBgYICcnBy0atVKabq6ifQwDINVq1Zhw4YNGDVqFLZu3frNL3vSROFJiJQVFBQgNzcXOjo6JcvFlYfP5+Px48f44YcfpLbaTlnev3+P2NhY5Ofnw8jICA0bNkStWrVgZGT0zbmRYrEY+fn5yMvLQ3Z2Nng8XskenXp6elLrsv2SlpYWdHR0wOfzyw3PgoICAJ+DPTU1leZ3VkP5+fmYOnUqzp8/j6VLl2LWrFly+wJF4UmIlBR3gxa3hio6ui86Ohqampoyuz6Tm5uLR48eITc3F7Vr18aPP/6IGjVqVOi5GhoaMDY2hrGxMSwsLJCTk4PMzEwkJSXB2NgYJiYmFbo2KSldXV3k5+dDJBKVOSqZZVkUFBRAT08PampqKCoqgoWFhdTrIIorISEB48ePh4aGBg4dOoSBAwfK9fwUnoRIQfGIWqFQCGNj4wp3G4nFYjx79gzNmjWTaIRpRcXHxyM6Ohra2tro1q0bateuXaXjFQdpTk4OPn36BB6PB0tLy3Kv51aGhoYGNDU1wefzywzPwsLCUrunJCYmolu3blKtgSiuW7duYcKECTAyMsLhw4fRunVruddA/RyEVJFYLEZ2djYYhoGpqalE11vevn2LwsJCtG3bVup1PX/+HPfv34e5uTl+++23Kgfnl4yNjWFlZQVNTU1kZGSUdKFKU3Eg/+88UpZlkZ+fDz09vZJWb0ZGBo20rSb27NmDYcOGoXXr1oiMjOQkOAEKT0KqRCgUlmytZWJiIvEODf/99x/q168PMzMzqdb19OlTPH/+HO3atUPXrl3LbL1VlZqaGurUqQNDQ0NkZWVJfZNrTU1NqKurQyQSlbq9qKgIQqGwpNWZn5+PevXqKfwyhqRqhEIhvLy8MGvWLDg7O+PEiRMVvvwgC9RtS0gl8fl85OfnQ0tLC0ZGRhIPVMjJyUFSUhIGDBgg1bpevnyJZ8+eoWvXrmjZsqVUj/2l4hZh7dq1kZ2dXTK6WJpduJqaml+FZ15eXqmRwR8/fkRcXBynH6REtrKysjBhwgTcuXMHmzZtgouLC9clUXgSUhkFBQUoKiqCjo5OpecWxsXFQV1dHY0aNZJaXWlpaXj27BlatWol0+AEPs9NLf7CULymbE5ODmrUqCG1ka8aGhoQiUQQi8XQ0NAoaXV+uQzfx48fYWBgQN22KiomJgZjxowBj8fDqVOn0KNHD65LAkDdtoRIpPh6W1FREfT19as0Kf/t27eoX7++1FpqYrEY//zzDwwMDNClSxepHLM8IpGo1EhbY2NjqKmpIT8/X2rnUFdXh6amZsliDLm5udDU1Cy1Z2d6ejoKCwulek2XKIaLFy+ib9++0NPTQ2RkpMIEJ0DhSUiFMQyDvLw8iESiclfdqQiBQICsrCyp7vLw9OlTFBQUoGfPnjKf68YwDEQiUakWprq6OoyMjCAUCr/qaq0KNTU1sCwLgUAAPp//1cpDGRkZMDU1lfh6M1FcLMti8+bNGDNmDHr16oWIiAip9tBIA3XbElIBxYsFAJ9X46nq3Ma0tDTweDw0aNBAGuWBz+fjv//+Q4sWLWS60EIxsVgMlmW/Goikra1dssCBtAYpFQ8a4vF40NTU/GpKT25uLmcjLon0FRUV4c8//0RYWBjmzp2LRYsWKeQCGBSehHyHSCRCfn4+1NXVYWBgIJU/5LS0NGhpaUltlO1///2HvLw8/Pjjj1I53vcUFhZ+1fIspqOjg8LCwpLrlFWlpqYGkUiEgoKCMq9rJiUlSX2eKeHGhw8f4Obmhtu3b2P37t2wtbXluqRvUrw4J0SBFC9SrqWlBUNDQ6l9A05NTYW5ubnUulffvn2LZs2ayW03lpycnG/WrqmpCS0tLal13RZfR9XQ0Cjz/0/ag64INx4+fIjevXsjLy8PFy9eVOjgBCg8CfmmoqIiFBUVQVtbG/r6+lK9jpifnw9zc3OpHOvjx49ISUlBixYtpHK87ynuQi3vGqM0l+wTiUTIzc0tczoQy7KIjo6u0A4sRHGFhYVhwIABsLS0xL59+9CxY0euS/ouCk9C/gfLsigsLIRQKISurq5MdmhISUmR2s72SUlJMDQ0hKWlZZWPxTAMDh8+XO5jsrKySi1SUBZNTU2oqal9tTpQZRRf6yzr9crPz4eOjg6NtFVSYrEYPj4+mDRpEmxtbXHhwgWZbyUmLSoZnv7+/mjUqBF0dXXRrVs33L9/n+uSiJIoDs7idVNlcS1NIBBAKBRKLTyTk5NhZGQkldbepk2bMHbsWGzYsOGbj8nIyICmpma5r82VK1fQq1cvNG7cGNbW1oiIiKhUPWKxGOfOnYOdnR2aNGny1bHS0tKQk5OjNB+45P/k5uZi9OjR2LJlC1atWoXAwEC5bCUmLSoXnmFhYfDw8MDSpUvx6NEjtG/fHgMGDEB6ejrXpREFxzAMCgoKwLJsqXVTpS0vLw8ApBaeeXl5Umt57dq1CwCwe/fuMu8XCoVIS0srt5vUxcUFNjY2uHfvHhITE3H37l3Y2Nhg0qRJEtczYcIEODk54cGDB2Ueq/jvuk6dOhIfm3Dn3bt36NOnD6KionD06FHMnDlT6fZilTg8nZyccPPmTVnUIhUbN27E5MmTMXHiRLRu3RqBgYHQ19f/5ocBIcDnFk5RUVHJZsyyHhpvZWUltV1U0tLSqrRYg4uLCwYNGoRBgwYhJiYGwOcl/opv+3IptLi4OPD5/G+29CIiIhASElLmfbt27cLVq1crXNfFixdx6NChco+VnZ2NH3/8US7Tc4h0XL9+Hb1794ZYLMb169fRv39/rkuqFIk/IXg8Hvr164fmzZtj1apVeP/+vSzqqhSBQICHDx+iX79+Jbepq6ujX79+iIqK+urxfD4fOTk5pX5I9SMSicDn86GhoVGyP6QsCQQCxMXFSW006sCBA/Hp06eSFq0k8vLysGfPHly8eBEXL14sWcmHZdmS2/bs2YO8vDwwDIPY2FiYmZmVWuHnSz4+PuWeb/HixRWubcmSJd89Vn5+PmrXrq2Q8wBJaSzLIjAwEMOHD0eXLl0QGRmJ5s2bc11WpUn8jjt58iTev3+P6dOnIywsDI0aNcKgQYNw9OhRCIVCWdRYYR8/foRYLP6qC6dOnTpITU396vF+fn4wMTEp+bGyspJXqURBCIVCCASCkiXflK3rCPi8ruyjR48qFZ6Ghoa4f//+N1tuJiYm+Pfff2FoaIjXr18jJycHzZo1++bxUlJSyj3f9+4vJhaLK3SswsLCUuvcEsXE5/Mxc+ZMeHl5YcaMGQgPDy9ZD1lZVerrWu3ateHh4YGnT5/i3r17aNasGcaPHw8LCwvMmTMHsbGx0q5TJry9vcHj8Up+kpKSuC6JyBGfz4dQKIS2trZST7I/evQoLCwsKn0NtUuXLmV+uQQ+z0ft1KkTRCIRHjx4gFq1apUbVhYWFuWe63v3F8vOzv7uVB4LCwvw+XwKTwWXkZGBIUOG4O3btwgMDMSqVatkskWevFWpr+PDhw+IiIhAREQENDQ08Pvvv+P58+do3bo1Nm3aJK0aK6xWrVrQ0NBAWlpaqdvT0tLKvEajo6MDY2PjUj9E9RWvk8qyLHR0dOT+h8zn85Geni61BdSFQiEaNmxYpQFIBw4cKPP2gwcPAgD++ecf5Ofnf3fB+RUrVpR7v6+v73drYRgGWVlZWLhw4XePJRaLaSsyBfbs2TP07NkTb968wbJly+Do6Mh1SVIjcXgKhUIcO3YMQ4YMQcOGDREeHo7Zs2cjJSUFe/fuxZUrV3DkyJHv/hHJgra2Njp37lxqUALDMLh69Sqsra3lXg9RPF8Gp7a2tsxG1JanZs2aqFGjBsRisVSOZ25uXuXR5Pv27QPweSDTnTt3UL9+fQDA3r17kZCQgCdPnqBNmzbfXU6wf//+cHV1LfM+V1dX9O3b97u1ZGZmQiwWY8SIEeUeq0ePHtDQ0KDwVFDHjx9H3759UatWLdy6dQvdunXjuiSpkvgrd7169cAwDBwcHHD//n106NDhq8f06dOHs/5sDw8PODk5oUuXLujatSs2b96M/Px8TJw4kZN6iOJgGKbkury2tjZn1zcNDAygpqaG3NxcqRyvZs2aePXqVZWO4ebmhu7du2P16tVQV1dHQkICFixYgDZt2uDkyZMwNjau8BfQ4OBgDB48GPb29jA1NUWzZs3g6+tboeBkGAaZmZkwNTWFpqYmgoOD4eDggAkTJuDTp0/o2LFjybEyMjKgq6tL+3gqGIZhsGrVKvj5+WHUqFEICAiQ27KR8iRxeG7atAmjRo0qdzKrqakp4uLiqlRYZY0ePRoZGRnw8fFBamoqOnTogIsXL9I8sGquODjV1NSgpaXF6cAgNTU1GBgYSG10d+PGjXHz5k1kZmZWuhU2evRojB49uuR3dXV1rF69GsHBwSgoKMDYsWMl6t7W1NSEhYUF7ty5I9HKR58+fYJYLC51HbNv377o1asXBAIBjh07VnJ7YWEh9PX1lX7giSrJy8vD5MmTcebMGaxYsQIeHh5KOQivIiQOz/Hjx8uiDqlyd3eHu7s712UQBSEWi0t2+FCUgQo1a9aU2sIdjRs3hoGBAV68eIGePXtK5ZgAcOTIEcTHx2PMmDESL8Jw+vRptGzZUqLgFIvF+PTpE8zMzL76d4qNjS01BQ1Ayd6eyrQqjSqLj4+Hvb09EhIScOTIEfz+++9clyRTNDmKqDRFDE4AqFu3Lj58+CCVY2lra6Nx48aIiooqmadZVWfOnMH9+/fRq1cvibc5K16oftSoURI9Ly0trczRswKBAAzDoFWrVl89h653KoZ//vkHPXv2RGFhIW7cuKHywQlQeBIVJhKJIBaLoampycnAoPJYWFggKysLBQUFUjnezz//DIZhEB0dXeVjXb58GRcuXECXLl0wcOBAiZ+/a9cuvH79GnZ2dhV+jkgkwvv372FqavrVbi1PnjxBQkJCmSFOKwtxb8eOHVi+fDl+/PFH3Lx5s8wvOaqIwpOoJKFQCIZhoKmpqZCrz1haWsLAwEBqc4sbNWoEMzMznDt3rkorF0VERODEiRNo3749HBwcJH5+amoqIiMjMXPmTIk2+o6Pj0dhYSHq1av31X23bt2CkZHRV+EpFourtCwhqRqBQIA///wTs2bNQocOHXDq1Cmpbe6uDBTvU4WQKmBZFmKxuGRgkCIGJwCYmZlBTU0Nr1+/ltox//jjDxQVFeHatWuVev7Fixdx+PBhtGzZEpMmTZJ4oAfLslizZg3S09Ph7Oxc4ecVFRUhPj4e5ubmZS5W8c8//+Dnn38u1e1ePOXoW8sEEtn6+PEjBg8ejD179iAgIADr169XqMsi8qCYnyyEVEJxcAKfN2NW5FF+ampq+OGHH/Dy5UupXae0sLBAly5dcP36dYlHu58+fRre3t5o27YtZs6cWalu7rCwMJw7dw7r1q2TaMGRly9fQiQSoWnTpl/dl5eXB6FQiAEDBpS6XSAQQF1dncKTA8+ePcMvv/yCV69e4eLFi9V2GiCFJ1EJX7Y4FT04i7Vu3Ro8Hk9qA4cAYNCgQahTpw527NiBjx8/Vug54eHhmDVrFhwcHDBr1qxKBef9+/dx7NgxjBkzpkLzOYvl5eUhLi4OVlZWX13rBIBz587hwYMHX420FQgEAKDUyyoqo5MnT6JPnz4wMzPD7du38fPPP3NdEmcoPInSYximVHAqi4YNG6Ju3bp48uSJ1I6poaEBFxcX1K5dG5s3b0ZmZuY3H1u8y8XcuXMxa9YseHl5Ver1e/z4MebMmQNDQ0OJdk0BPg8GYlkWLVq0KPP+8PBw/Pzzz19NeREIBNDQ0CgzcIn0MQwDX19fODg4YNCgQbh27Vq130iDwpMoNZZlwbIs1NXVlSo4gc9B16RJE9y/f1+qOxIZGRnByckJAODv74/4+PivHsOyLHx9fXHgwAF4eHhg1qxZlWqtR0REwNXVFd27d4e/v79ELcHMzEy8efMGLVq0KDMEk5KScOvWrTKnvND1TvnJy8uDm5sbVq5cieXLl2P//v0quWKQpCg8idL6MjgVdWDQ91hbW6OoqEiqrU/g8yIMXl5eUFNTw+bNm3HhwgUwDAPg87SQZcuW4cCBA3BxcalUcBYWFmLVqlVYtGgRhg0bhlWrVkn8gRoVFQUtLS20bt26zPv37duHDh06YMiQIV/dJxAIqMtWDuLj49G7d2/cunULR44cwbx585Tikog8VK/hUURlFAeBmpqaUv8x16hRAy1btsS9e/fQpUsXqf6/mJiYYP78+Th9+jTCwsIQHR2N3377DVu2bMGNGzfw999/448//pDomGKxGJcvX8a2bdtKtiYcPXq0xHUnJibi7du36NOnT5k9BjweD/v27YOTk1OZg4+EQiG1fmTsxo0bcHBwgImJCY4dO/bNLznVFYUnUTrFwamsrc3/1adPH2zduhVPnz4tc6OFqtDS0oKtrS3at2+P4OBgjBw5EgDw559/4tdff63wcdLS0hAZGYmwsDBoamrihx9+gIeHh0TL7xVjGAY3b96EkZER2rRpU+Zjdu/eDaFQiMmTJ5f5fJFIRC1PGWFZFkFBQfDw8EDv3r1x8OBBWsmpDBSeRGFFRETAx8cHKSkpsLCwwIoVK0pGcqpKcAKfFzho3bo1zp8/j3bt2snk2q2Wlhb++ecfaGtrY+DAgXj37h0mTpyI9u3bo169emjYsCGMjY2hr68PsViM/Px8pKenIz4+Hk+ePClZzKFfv34YOXJklVaRiYmJQWJiIoYNG1bmv2NmZibu3LlTMvDpfwmFQmhoaFB4yoBAIMDs2bOxa9cuuLu7Y82aNdVu/mZF0atCFJKLiwtCQkJKfk9MTISNjQ0mTpyI3bt3c1iZbAwZMgTr16/H7du30atXL6ke+8mTJ1i5ciVYlsWVK1fQsGFDZGZm4uHDh0hISMDDhw/x/PlzvHnzBlZWVoiLi0P9+vXx/v17dOzYEW3btoWrqys6d+5c5RV9ivfXrV279je7Af38/BATE4PAwMAy7/9yP1YiPenp6Rg9ejT+/fdf7Nixo2TQGfkGlpTg8XgsAJbH43FdSrV2+fJlFsA3f65cucJ1iTJx+vRpdtGiRWxWVpbUjnn58mW2YcOG7ODBg9mPHz9+83ECgYDNzMxk379/z6akpLBZWVkswzBSq6PYzZs32SVLlrBv374t8/4HDx6wDRo0YPfv3//NY3z8+PGbzyeV8+jRI9bGxoatX78+GxUVxXU5nJEkA1Sn74uoDB8fn3Lvl3QuobLo168f1NXVcejQIamsOrRv3z5MmDABv/76K8LDw7/areRLWlpaMDMzg4WFBerVqwdTU1OpD8QqKipCZGQkGjVqhCZNmnx1P5/Px9atW9GhQ4dy19UVCoU0TUWKwsLC0Lt3b7Asi7t376J79+5cl6QUKDyJwklJSanS/cpKT08PY8eOxatXr3D79u1KH4dhGKxatQp///03XFxcsGvXLujp6Umx0sq5cOECcnNzv7ld1cqVK/Hvv/9i/fr15V73FQqFtDiCFIjFYixatAjjxo3DiBEjcOrUqUoNAKuuKDyJwrGwsKjS/cqsVatW+PXXXxEREYGEhASJn8/n8zF16lRs3rwZkyZNgq+vr0IsHpGZmYkjR47gxx9/RN26db+6//Tp0zh48CB8fHzQvHnzco8lEomo5VlFPB4PI0eOxPr167FmzRrs2bNHIb5gKRMKT6JwVqxYUe79vr6+cqqEG0OGDIGhoSGCgoKQnZ1d4edlZmZi5MiRuHDhAnbv3o0pU6YozBzYvXv3orCwEMOHD//qvpcvX8LPzw/Dhg3D6NGjyz2OSCQCy7LU8qyC2NhY/PLLL7h9+zZOnz4NDw8PhXmfKBMKT6Iw/vvvP+zYsQP9+/eHq6trmY9xdXWVaOFxZaSlpYWpU6dCXV0dgYGBKCoq+u5z4uLiMGjQILx9+xYnT54sc1Uerrx9+xZXr16Fq6srjIyMSt2XlJSEyZMno3Xr1vD19f3uhzgtCF9xERERsLa2RsOGDWFtbY2IiAhcvXoV1tbWYFkWUVFRX+1WQyQg48FLSoVG23Ln5s2bbI0aNdgOHTqwRUVFLMuy7JUrV9ju3buzDRo0YLt3766yo2y/JTk5mfX19WXXr19f8pqU5e7du+zIkSPZbt26sXFxcfIrsAIYhmHnz5/Pjh8/nhUKhaXuy8jIYPv168f279+fzcjIqNDxeDwem5CQIItSVcrEiRPLHKmupqbGzpgxg83Ozua6RIVEo22JUjl+/DgGDBiADh064Pr16yXXs/r27YuoqCgkJCQgKipK5Vuc/8vS0hKjR49GQkICtmzZUmYL9NixYxgxYgQEAgHOnz+PRo0ayb/Qcty5cwePHz+Gu7t7qcn2aWlpWLJkCfh8Pvbs2YNatWpV6HgCgYAm7X9HREREqTnSX2JZFsOGDYOJiYmcq1I9FJ6EU1u3boW9vT2GDx+O8+fP0x/1/2jWrBlmz56NlJQUbNu2Dbm5uQA+fwhu3LgRU6ZMwbBhw3D06FGFW0JNIBBgx44daNu2LX766aeS21+/fg0HBwfExsbi4MGDEg0Ao2X5vu97U72WLl0qp0pUG4Un4QTDMJg3bx7mzJkDT09PHDhwgEZQfkOTJk0wZ84c5ObmYsWKFYiNjYW7uztWrlwJb29vBAQEKORrd/z4cWRlZcHNza3kWmZUVBTGjx8PMzMzHDp0SOI9ISk8v6+6TvWSN+r/IHLH5/MxceJEHDlyBJs3b8bMmTO5LknhNWzYELNnz8aGDRvQv39/5OXlISgoCHZ2dlyXVqbMzEyEhIRg4MCBaNKkCUQiEYKCgnDw4EH07t0bPj4+MDQ0lOiYYrEYDMPQSNvvsLCwQGJiYrn3k6qj8CRylZ2djZEjR+Lu3bs4cuRIyS4f5Pt4PB4iIiJQWFiIQYMGITU1FTweTyG7uoOCgmBpaQkXFxckJyfD29sb0dHRmDFjBlxdXSu1sH/xhuEUnuVbsWIFbGxsvnm/qk/1khfqtiVyk5ycDCcnJ8TGxuLy5csUnBK4e/cupk2bBi0tLURFRcHNzQ0xMTHw9vbGzZs3S7ZpUwQxMTE4d+4cbGxsEB4ejtmzZyM7Oxt79+7F5MmTK70jjkgkgoaGBg0Y+o7qPtVLXtRYVgqLaKqInJwcmJiYgMfjlbkBL6m8//77D4MHD4a6ujrOnj2LH374geuSlMaRI0cwc+ZMdOnSBfv27StZozY3NxeHDx9GTEwM9PX1MWrUKPz444+cTnhnGAYzZ85ERkYG8vPz8fHjRzg4OGDKlClV3rw6KysLAoEAderUkVK1qu3q1atYvHhxyZZ+vr6+FJzfIUkGUHh+gcJTNm7evAlbW1tYWVnh7NmzdM2lgliWxerVq7F27VqMHTsWmzZtKnOwTExMDMLCwvD69Wu0aNECw4YNQ/v27eUeogKBACtXroS/vz+6du2Kli1bYs6cOWjQoIFUjp+eng5NTU2FG1VMVAeFZyVReEpfeHg4nJ2d8csvvyA8PFwhr88pIj6fDzc3Nxw7dgxLly7FrFmzyg1DlmXx7NkznD59GjExMTAzM0OfPn3w66+/lrubSlWxLIt3794hMjISYWFhePbsGZo2bYrt27ejffv2Uj3Xhw8fYGRkJPFAI1XGsixYllWpzeG5ROFZSRSe0rVt2zZ4enpizJgxCA4OpikGFZSRkQFHR0c8e/YMQUFBGDZsWIWfy7IsYmNjcfXqVURFRcHIyAgmJibo2LEjOnbsiKZNm1a5Rcrn8/Hq1Sv8+++/uHLlChISEmBgYABjY2MkJyfj5MmTZS7+XhVisRhpaWmoUaMGdHV1pXpsZVUcnGpqarQ2rZRQeFYShad0MAwDb29vbNy4EZ6enli1ahV9M66gmJgYjB49GkVFRTh06BA6d+5c6WMVFhbi4cOHiIqKwtOnT1FYWIhGjRpBV1cXDRs2RMOGDVG3bl2YmprCyMgIxsbG0NDQgFgshlAoBJ/PR1ZWFlJTU5GamoqPHz/i0aNHeP36NUQiEdq2bYt69eqhb9++qFmzJqZOnQonJyc4OztL7wX5//h8Pj59+oQ6deooxC4xXCseIEbBKV0UnpVE4Vl1fD4frq6uOHLkCDZs2EBzOCVw7do1ODs7w8rKCqGhoRIvIFAesViM169f4/Xr13j16hUSEhLw/v176OnpIScnB8DnD+Li6SAAUKtWLaSmpgIANDU10aFDBxgaGqJdu3Zo27YtGjduDA0NDbAsCzc3N+Tl5cmshyE/Px95eXnVfrBQcWsTAH0hlQFJMoDGfBOp4fF4sLOzQ1RUFA4fPgxbW1uuS1IaISEh8PLyQp8+fbB79+6vdh+pKg0NDfzwww+lRjkLBAJkZGQgNzcXOTk5KCgoQGFhIbS0tKClpQUdHR0YGRmhbt26qFGjxjdbOFevXsWDBw+wZcsWmXXNi0Siaj9FhWEYMAwDDQ0Nam0qgOr9biRSk5KSAk9PTzx9+hQXLlxAz549uS5JKYjFYvj4+CAgIABTpkzBypUr5RYS2trasLS0rNIxCgoKEBYWhoEDB+Lnn3+WUmVfq+7hKRaLSwYGUXAqhur7biRSExMTg8GDBwMArl+/jtatW3NckXLIz8+Hu7s7Tp8+jbVr12Ly5MlclySxnTt3Ijo6GsuXL5fpeUQiEfT09GR6DkXEsiwYhgHLstTiVDAUnqRKbt++DVtbW1haWuLMmTM0h7OC3r9/D3t7e+jp6SE0NBT9+/fnuiSJvXv3DgcPHsSUKVNk+u8uFouhpqZW7VqeLMuW/L9TcCoeuuJMKu3UqVP4/fff0a5dO1y9epWCs4IePXqEPn36IDs7G1u2bFHK4CxewKF79+6YMGGCTM8lEokAoFqFp1gshkgkouBUYBSepFICAwMxevRoDBkyBGfPnoWpqSnXJSmFkydPYtCgQWjQoAEiIyPRpk0brkuqlAsXLuDBgwdwcHCQ+fxdkUgEdXX1ajO6VCQSQSwWQ11dnablKLDq8W4kUsOyLJYsWYJZs2bB3d0d+/fvV8i9JBUNy7JYv349nJycMHjwYJw5cwbm5uZcl1Upubm52LBhA2xsbGBtbS3z81WXwUIsy0IoFIJhGGhqalJwKjjVf0cSqREKhZg2bRoOHDiANWvWYPbs2VyXpBT4fD5mzpyJsLAweHt7Y/78+UrdDff333+jRo0a8PDwkMv5GIZR+dWpGIYp6abV0tJS6vdHdUHhSSokLy8PY8aMwfXr17Fv3z6MHj2a65KUwsePH+Ho6IjHjx9j165dCrt5dUW9ePECYWFh8PT0lMuCBcWDZlS55SkSiUq2W6O9SpWH6r4jidSkp6dj2LBhiI2NxZkzZ9CnTx+uS1IKMTExsLe3R0FBAc6dO4effvqJ65KqhGEY+Pr6onnz5hg7dqxczikWiwFAZbswhUJhyZcDVf6CoIromicp15s3b9CrVy+8f/8eV69epeCsoKtXr6Jfv34wMDBAZGSk0gcnAISGhkIsFmPRokVyC7PikbaqFp4sy0IgEEAsFkNLS4uCUwlReJJv+vfff2Fvb4+6devin3/+kfoWU6pq586dGDVqFKytrXH58mWprlHLlfT0dGzbtg1t2rRBhw4d5Hbe4laZKl0DFIvFKCwsBMuy0NHRUbkvBtUFhScp06VLlzBgwAAYGxvj+PHjaNiwIdclKTyRSAQvLy/MnTsXU6dORWhoqNTXqOXKunXroKWlhTlz5sj1vKp2vVMkEoHP50NDQwPa2toq9aWgulGddyWRmv3792P69OkYNGgQ9u7dC319fa5LUng5OTmYOHEiIiMjsWnTJri4uHBdktRERUXh1q1bWLRokdx3Gyru1lQFAoEAIpGoZOF9otwoPEkJlmWxdu1aLFu2DK6urti8ebNKfeuXlYSEBIwePRrv37/HsWPHVOq6cFFREZYtW4b27duXrF8sL8Vruir7e5BhGBQVFUFNTY26aVWIcr8ridSIxWJ4enoiKCgIS5Ysgbe3N3UpVcC9e/cwduxYGBoa4urVq2jRogXXJUlVUFAQ0tLSEBgYKPf3gyoMFhKLxaWCs7qsklQd0L8kQWFhIcaOHYudO3ciICAACxcupOCsgCNHjmDIkCFo0aIFrl27pnLB+ebNG+zevRuTJ09G48aN5X5+hmGUelk+gUCAwsJCqKurQ09PT2n/P0jZqOVZzWVlZcHW1hZPnjzBkSNH5N41p4wYhoGfnx/Wrl2LsWPHYvPmzSq3RCHDMNixYwcaNmyISZMmcVKDsg4WYlkWRUVFEIvF0NbWVvnVkaor5XtnEqlJSkrC0KFDkZ6ejosXL6Jr165cl6TwCgsLMX36dJw4cQLLli3D7NmzVbKVfuLECZw5cwZ79uzh7IuBMg4WYhgGBQUFYFkWenp6Shn+pGLoX7aaio6OxrBhw6ClpYXIyEiV63KUhbS0NDg4OOC///7DgQMH8Mcff3Bdkkx8+vQJa9euxfDhw9GtWzdOaijeBFqZrneKRCIUFhZCTU0NBgYG1E2r4ig8q6F//vkHo0aNQsOGDXHq1CnUrVuX65IUXnR0NOzt7cEwDC5evCjXhQLkbfXq1VBXV8e8efM4q0HZluUrKiqCQCCApqYm9PT0VLI3gpRGX42qmePHj2PIkCHo1KkTIiIiKDgr4MqVK7CxsUHNmjVx7do1lQ7OqKgonD17FvPmzYOZmRlndYjFYqipqSl8641lWeTn56OoqAg6OjrQ19en4KwmFPudSaQqICAA48aNw4gRI3Dy5Em5T3hXNizLYuvWrbC1tcWYMWNw6dIlWFhYcF2WzBQWFmLJkiUYMmQIhg8fzmktLMtCQ0NDoYNILBYjNzcXIpEIBgYGKjdojJSPum2rAZZlsXTpUty8eRMzZ86En5+fwn+j55pAIMCcOXOwb98+eHh4YOnSpSr/mgUEBCAtLQ1ubm6ch5ZYLFboLtsvp6EYGhqq/HuDfI3CU8UJhULMmDEDhw4dgp+fH/7880+uS1J4mZmZcHR0xL179xAYGAhHR0euS5K5V69eYdeuXXB3d0ejRo24LgcMwyjsSNvCwkIUFhZCW1sbBgYGnH/RINyg8FRheXl5cHR0xI0bNxASEgJ7e3uuS1J4r1+/hp2dHXJycnDu3DlYW1tzXZLMicViLFmyBI0bN8bkyZO5LqdkWT5Fa82xLIu8vDwIhULo6+tDV1eX65IIhyg8VVRGRgZGjhyJ169f4+TJk/j111+5LknhRUZGYty4cbCwsMD169cVogUmD0ePHsXTp09x+PBhhWjtKeJIW5FIhLy8PLAsCyMjI4V4nQi3FOurHZGKuLg49O3bF8nJybh8+TIFZwUEBwdjxIgR6NatG65evVptgvPDhw/w8/PDlClT0KlTJ67LAfC55ammpqYw3aF8Ph88Hg8AYGJiQsFJAFB4qpzHjx+jT58+UFNTQ2RkJG1g/R3Fe3DOmTMHU6ZMwZEjR6rNKGSWZbF8+XLo6+srRHdtMYZhFGZlnry8POTm5kJHRwcmJiYK15VMuKMY71AiFdeuXYODgwNatWqFY8eOoVatWlyXpNBycnLg5OSEyMhIbN68Ga6urlyXJFeXL1/G1atX8ffffyvUFwZFGCzEMAx4PB7EYjEMDQ3p+ib5CoWniggLC8OUKVPQt29f7N+/HwYGBlyXpNDi4+MxatQopKSk4MSJEyq1B2dF5OTkYPny5ejXrx9sbGy4LqcEy7KcDxYSCoXUTUu+i/oglBzLstiyZQtcXFwwZswYhIWFUXB+x507d/Drr7+Cz+cjMjKy2gUnAKxbtw4FBQVYunSpwlxbBD63+ABwFp6FhYXIysqCpqYmatSoQcFJvonCU4kxDANvb28sXLgQ8+bNQ2BgIP2xf8fBgwcxZMgQtG7dGtevX6+WC+I/fPgQkZGRmDt3rsItz1g8WEje4cmyLLKzs8Hj8aCvrw9TU1O6vknKRd22SorP52Pq1Kk4evQoNm3ahClTpnBdkkJjGAbLli3Dpk2b4OTkhI0bN1bLfRYFAgG8vb1haWkJBwcHrsv5ilgslntoCYVCZGVlgWVZmJqa0vVNUiFK8dUqPj4erq6uaNy4MfT09NC0aVMsXboUAoGg1OOePXuGnj17QldXF1ZWVli7di1HFctWbm4uRowYgdOnT+PAgQMUnN9RUFAAR0dHbN68GatWrcK2bduqZXACn5fgS0hIgK+vr0LNoyzGMIxcw/PTp094/fo1hEIhatasScFJKkwpWp4xMTFgGAZBQUFo1qwZoqOjMXnyZOTn52P9+vUAPg+AsLGxQb9+/RAYGIjnz5/DxcUFpqamKhUuqampGD58OBISEnD69Gn06NGD65IU2vv372Fvb4+3b98iLCwMgwYN4rokzsTGxmL79u2YNm0amjdvznU5ZZLXYCGWZfHff/8hPT0dlpaWqFu3rkJ+mSCKS41lWZbrIipj3bp12L59O969ewcA2L59OxYtWoTU1NSSVsWCBQtw8uRJxMTEVOiYOTk5MDExAY/HU6ih+8ViY2MxbNgwCIVCnDp1Cq1bt+a6JIX28OFDjB49Gtra2jhy5Ajatm3LdUmcYRgG9vb2yMnJwdmzZxWy5c0wDIqKiqCrqyvTAC0oKMDt27dRUFCANm3aoFmzZjI7F1EukmSAUnTbloXH46FGjRolv0dFRaFXr16lPhQGDBiAV69eISsrq8xj8Pl85OTklPpRVA8ePMBvv/0GXV1dREZGUnB+x/HjxzFw4EA0aNAA169fr9bBCXweKPX48WOsWrVKIYMTkM9I24SEBBw9ehSZmZn46aefKDhJpSlleL558wbbtm3D1KlTS25LTU1FnTp1Sj2u+PfU1NQyj+Pn5wcTE5OSHysrK9kVXQWXLl3C0qVL0bJlS1y9ehX169fnuiSFxbIsVq9eDScnJwwdOhTnz5+Hubk512VxKjU1FevWrYODgwO6dOnCdTnfJMvrnSzL4tatWzh27Bg0NTUxaNAgld6blcgep+G5YMGCkjUsv/Xzv12u79+/x8CBAzFq1KgqLynm7e0NHo9X8pOUlFSl48nC/v37MXr0aBgbG+P06dMwMzPjuiSFVVRUBFdXV6xcuRJLlixBcHBwtR8AwrIs1q9fj5YtW2L+/Plcl1MuWYUnn8/H7t27cejQITRt2hR2dnYKeVmGKBdOBwx5enrC2dm53Mc0adKk5L9TUlLQp08f/Pzzz9ixY0epx9WtWxdpaWmlbiv+/Vtz2XR0dBR29/fiD70VK1Zg4sSJ2Lhxo8Ks96mI0tLSMGbMGERHR2Pfvn0YMWIE1yUphPPnz+PYsWMIDAyEkZER1+WUi2EYqQ/aSUtLw759+5CYmAhnZ2d07dpVqscn1Renn8a1a9dG7dq1K/TY9+/fo0+fPujcuTNCQkK++oZqbW2NRYsWQSgUliwUEBERgZYtWypda00sFsPLyws7d+7EokWLMH/+fIVaBUbRREdHY9SoURCJRLh48SI6d+7MdUkKITs7G0uXLsXAgQMxYMAArssplyyudz569Ai7d++GsbExFixYAEtLS6kdmxCwSiA5OZlt1qwZ27dvXzY5OZn98OFDyU+x7Oxstk6dOuz48ePZ6OhoNjQ0lNXX12eDgoIqfB4ej8cCYHk8niz+NyqksLCQdXR0ZI2NjdmQkBDO6lAW58+fZ83NzdlffvmFTU5O5rocheLl5cW2a9eOTUtL47qU7xKJRGx+fj7LMEyVjyUWi9nw8HDWxcWF9ff3ZwsKCqRQIakOJMkApQjPkJAQFkCZP196+vQp26NHD1ZHR4e1tLRkV69eLdF5uA7P7OxsdsCAAWytWrXYc+fOcVKDsmAYht28eTNrZGTEOjg4sPn5+VyXpFBu3brFNmrUiA0NDeW6lAoRCARSCbns7GzWz8+P9fb2Zi9evCiVMCbVhyQZoLTzPGWBy3meKSkpGDFiBFJSUhAeHo7u3bvL9fzKRCAQYM6cOdi3bx88PT3h4+ND65B+obCwEAMGDIClpSUOHTqkFF3+xauFVWUaTWxsLAICAsCyLKZPn46WLVtKqzxSTUiSATQCRQG8evUKw4cPB/D5Om2rVq24LUiBZWZmwtHREffu3UNQUBDGjh3LdUkKZ9OmTSUDZZQhOIHPA+QqO1iIZVlcuXIFoaGhaN68OaZPnw4TExMpV0hIaRSeHLt//z7s7OxQr149HD9+nAY1lOP169ews7NDTk4Ozp07B2tra65LUjjPnz/Hrl27MHfuXDRq1IjrciqE/f97eFYm6AsLCxEcHIzXr1/DxsYGo0aNol4IIhcUnhy6cOECnJyc0LFjR4SFhcHU1JTrkhTWtWvXMH78eFhYWOD69etKEwzyJBKJsHXrVnTt2rXKc6DlqfjKkaShl5ycjK1btyInJweTJ0+mUdZErugrGkf27t2LMWPGoH///jh16hQFZzl27tyJkSNHolu3brh69SoF5zfs2LEDV65cwcKFC5VqTnDxHp6StDyjoqKwfPlyaGtrY/ny5RScRO6U5y9MRbAsi7Vr18LX1xeTJk3C+vXraTeHbxCJRPD29kZgYCCmT5+OVatWKVUoyNO7d++wadMmTJ48Ge3ateO6HIlI0mUrFAqxf/9+REZGwsbGpmThf0LkjT6J5EgsFsPT0xO7du2Cj48P5s6dqzQDOuQtJycHTk5OiIyMxObNm+Hq6sp1SQqLYRgsWLAA9erVw5w5c7guR2IVXVkoIyMDW7duRXJyMiZNmoRevXrR3w/hDIWnnBQWFsLV1RXnz5+Hv78/JkyYwHVJCis+Ph52dnZITU3FiRMn0KdPH65LUmiHDx/GvXv3cPjwYejp6XFdjkQqOljoyZMnCAoKgr6+PpYtW4aGDRvKqUJCykbhKQfZ2dmwt7fHkydPEBoaioEDB3JdksK6c+cOHBwcYGpqisjISIXdtFlRpKamYtWqVRg9ejR+/vlnrsuR2PcGC4nFYhw9ehSnT59Gr169MH78eOjr68uzRELKROEpY+/fv8eIESOQmpqKs2fP0sLU5Th48CBmzpyJ7t2748CBA6X2ayVfY1kWixcvhp6eHhYtWsR1OZVSvKZtWS3P7Oxs/P3333j16hUcHBwwePBg6qYlCoPCU4ZiYmIwfPhwqKur48qVK2jRogXXJSkkhmGwbNkybNq0CU5OTti4cSMNAqmAc+fOISIiAkFBQUq9KEBZ1ztfvnyJoKAgCIVCLFq0iBYOIQqHwlNG7t69i1GjRsHS0hInTpxAvXr1uC5JIeXn52PSpEk4d+4cVq1aBXd3d2pdVEBWVhZ8fHwwcOBApb4M8L/XO1mWxenTpxEWFoauXbvC2dmZpnERhUThKQPnzp2Ds7MzunTpgtDQUKVuFchScnIyRo8ejbdv3+LIkSNKHQLy5uvrC6FQiL/++ovrUqrky2X58vLyEBAQgMePH2PEiBGws7Oj1YKIwqLwlLKQkBDMnj0bQ4cOxc6dO6Grq8t1SQrp4cOHJXP0rly5grZt23JdktK4efMmXr9+jSVLlsDc3JzrciqteLCQmpoa3rx5g7///hv5+fmYP38+OnTowG1xhHwHhaeUsCyLNWvW4PLly5g0aRLWrl1Lix98w/HjxzF16lT8+OOPOHz4sFIHgLwVh0ujRo0watQorsupkuJpKpcuXcK+ffvQqVMnODs7o1atWlyXRsh3UXhKQfHiByEhIfDx8YGHhwddtytD8ReMlStXwt7eHv7+/tQyl9DatWvx8eNHhIWFKf17LD8/Hzt27MD9+/fx+++/w9HRkVaQIkqD3qlVVFhYiEmTJuHChQvw9/fHuHHjuC5JIRUWFsLNzQ3h4eFYsmQJvLy8lP7DX94ePnyIkJAQLFmyBA0aNOC6nCpJSEjAhg0bkJ2djTlz5tD+tUTpUHhWQXZ2NsaMGYMnT57g8OHDGDBgANclKaS0tDSMGTMGL168wL59+zBixAiuS1I6AoEAc+fORfv27eHi4sJ1OVUSGRmJXbt2oUWLFpg3bx7q16/PdUmESIzCs5JSUlIwcuRIpKam4syZM/jpp5+4LkkhPX/+HPb29hCJRLh48SI6derEdUlKaevWrYiPj8fFixeV9lo6n89HcHAwrl+/jt9++w3jx4+HgYEB12URUikUnpUQExODkSNHQk1NDZcvX6bFD77hwoULcHZ2RvPmzREWFkYbfVfSy5cv4e/vj5kzZ6Jly5Zcl1Mp79+/x4YNG5Ceng53d3f07NkTIpGIuu6J0qJJVBK6d+8eBgwYAFNTU1o16BtYlsWWLVswevRo9O3bF5cvX6bgrCSRSIS5c+eiSZMmcHd357qcSrl16xY2bdoEsVgMPz8/9O7dW6JtyAhRRNTylMD58+cxceJEdOnSBYcOHaLFD8ogEAgwe/Zs7N+/H56envDx8aGJ7lWwe/duPH/+HCdPnlS6JQuFQiFCQkJw6dIl9OrVC1OnTi0ZXV28ATYhyorCs4L27t2L2bNnY8iQIbT4wTdkZmbC0dER9+/fR1BQEMaOHct1SUotISEB69atg6urq9JdK05NTcX69euRnJyMadOmoV+/fl8tw0dfqogyo/D8DpZlsX79evj6+tLiB+V4/fo17OzskJOTg7Nnz8La2prrkpQay7KYN28eatWqBS8vL67Lkci9e/ewdetWmJqaws/PD40bNy51f3FwUngSZUbhWQ6xWAwvLy/s2rULS5YsgaenJ3U1leHatWsYP348LC0tcebMGdqoWApCQ0Nx584dHDp0SGn2rxQKhdi7dy/OnTuHAQMGwMnJqdzNuelviSgzCs9vKCoqKtntY9u2bZgwYQLXJSmknTt3wsvLC3379sWePXtgZGTEdUlKLzU1FQEBAbC3t0fPnj25LqdC0tLSsH79esTHx2Py5MkYNGjQN8OxeE1bQpQZhWcZeDwepk6diocPH+LQoUMYNGgQ1yUpHJFIhAULFiAoKAgzZszAypUraWk1KWBZFgsXLoRIJMKSJUu4LqdC7t+/j61bt8LQ0BB+fn5o1qxZuY+nkbZEFdCnXRlsbW2Rnp6O06dPo1u3blyXo3BycnLg5OSEyMhIbNmyRelXvFEkZ8+exaVLl7Bz506F38dSJBLhwIEDuHTpEjp06AB3d/cKLXpAg4WIKqDwLAOPx8OlS5eUdkK6LMXFxWHUqFFITU3FyZMn8euvv3JdksrIysrCokWLMHjwYPz+++9cl1Ou9PR0rFu3Dm/fvsXkyZMxcOBAiVqT1PIkyo7CswynT5+m4CzDnTt34ODgAFNTU0RGRqJ58+Zcl6RSli5dCqFQCF9fX65LKdeDBw+wefNm6OvrY82aNRK9D77cw5MQZUbhWYZ69epxXYLCOXjwIGbOnInu3bvjwIEDqFGjBtclqZRr167h2LFj2LRpk8LubyoWi7F//36cOHECXbt2xaxZs2BoaCjRMWiwEFEVFJ6kXAzDYOnSpdi8eTOcnJywceNGpVvpRtHl5uZi/vz56N27t8JucJ2RkYHAwEA8ffoUrq6u+OOPPyrVeqTBQkRVUHiSb8rLy8OkSZNw/vx5+Pn5wc3NjT74ZMDPzw/Z2dlYs2aNQr6+Dx48wKZNm6Crq4tVq1ZVaT1nGixEVAWFJylTcnIyRo8eDT09PRw5cgQDBw7kuiSVdPfuXezduxd//fUXrKysuC6nFJFIhP379+P48ePo1q0bZs2aJZV5vIr4BYEQSVF4kq88ePAA9vb20NXVxdGjR9GmTRuuS1JJRUVFmDt3Ln766Sc4OztzXU4pGRkZWLt2LWJjY+Hq6ophw4ZVOfToeidRJRSepJQjR45g2rRp6NixI0JDQ1G7dm2uS1JZGzduRHJyMvbs2aNQXZn3799HYGAgAGDNmjVSG3lOI22JKqHwJAA+DwxatWoV/Pz8MGbMGPj7+9POMTL07NkzBAYGYu7cud9dkUdeRCIR9u7di+PHj6Nfv36YNGmSVJdbpMFCRJVQeBIUFBRg2rRpOHbsGJYvX04L4MuYSCSCh4cHWrVqhRkzZnBdDoDPix6sWbMGsbGxmDRpEoYPHy6T9wC9r4iqoPCs5j58+AB7e3vExMTg0KFDGDZsGNclqbyAgAC8fv0a586dU4j1gO/du4eNGzdCX18fa9euRatWrWRyHhppS1QJ93+5hDNPnjwpmVd45coVtG/fnuOKVN/r16+xceNGTJ8+He3ateO0FqFQiH379uH48ePo3r075syZI/GiB5JQV1enlidRGRSe1dTJkycxadIktG7dGkeOHEHdunW5LknlicVizJ07F1ZWVvDw8OC0lvT0dPj5+SE3NxdTpkzB0KFDZRpsNNKWqBoKz2qGZVmsW7cOy5cvh62tLYKCgsrdsJhIT0hICB4+fIgTJ05AR0eHszqioqKwYcMGGBgYYOHChbSOMyGVQOFZjRQVFWHGjBkICwvDwoULsXDhQupGk5PExESEhITgzz//RNeuXTmpQSQSYdeuXTh58iSsra3h4eEh027aL9FIW6JqKDyrifT0dIwZMwZPnz7Fnj17FHYNVVXEsiy8vLzA5/Ph5ubGSQ2pqanw8/PDu3fvMG3aNJl30xKi6ig8q4Ho6GjY2dlBIBDg0qVL6NKlC9clVSuHDx/GzZs3cfjwYbm19L50+/ZtbNq0CUZGRti4cSNnW8lRWBNVQuGp4s6fP4+JEyeiSZMmCA8PR/369bkuqVpJTU3F8uXLYW9vL/eNwwUCAXbu3Ilnz56hY8eOmD17NgwMDORaA0CDhYhqovBUUSzLYtu2bVi4cCGGDBmCXbt2cfLBWZ2xLIsFCxZAR0cHy5cvl+u5U1JSsHLlSiQkJGDq1KkYMmQItfwIkSIKTxUkEAgwa9Ys7Nu3D3PnzsXSpUtpcjoHTp8+jUuXLmHXrl0wNTWV23mvX7+OzZs3o0aNGtiyZQuaNm0qt3OXhQYLEVVE4aliPn36hLFjx+L+/fsIDg6Gg4MD1yVVS5mZmVi0aBGGDBmC33//XS7n5PP5CAwMxPnz59GnTx/MmjWLpiERIiMUniokJiYGdnZ2yM3Nxfnz52Ftbc11SdXWkiVLIBaLsWrVKrmcLykpCStXrsT79+8xe/ZsDBw4UKFae4pUCyHSQOGpIq5cuYJx48bBysoK586dQ8OGDbkuqdqKiIjA8ePHsW3bNrls6XblyhUEBgbC1NQUW7duRePGjWV+zoqiwUJEVVF4KjmWZREYGIh58+bBxsYGe/bskeo2UkQyOTk5mDdvHvr06QNbW1uZnquoqAjbtm3D5cuXMWLECEycOJG6aQmREwpPJSYUCuHl5YWdO3fizz//hK+vLzQ0NLguq1pbsWIFcnNzsW7dOpl2VcbHx+Ovv/5CWloavLy8YGNjI7NzVQUNFiKqisJTSWVnZ8PR0RG3bt2Cv78/nJ2duS6p2rt16xYOHjyI1atXw9LSUibnYFkWFy9exN9//w1LS0sEBASgQYMGMjkXIeTbKDyV0Js3b2BnZ4ePHz/i7Nmz6NmzJ9clVXsFBQWYO3cuunfvjvHjx8vsHJs3b0ZkZCQGDx6M6dOnc7rAfEVRy5OoIgpPJXPjxg2MHTsW5ubmuHHjBudz+Mhna9asQWpqKg4dOiSTObVv3rzBX3/9hezsbCxcuBB9+vSR+jmkjQYLEVVGM+eVyO7duzF06FB06tQJ169fp+BUEA8fPsTOnTsxf/58NGnSRKrHZlkW586dw8yZM2FgYIDt27crRXASouqo5akERCIRFi5cCH9/f0ydOhVr166Fpib90ykCgUCAOXPm4Mcff8TkyZOleuy8vDysX78e//zzDxwdHTF+/HhoaWlJ9RyyRIOFiCqjT2AFl5OTAycnJ1y9ehUbN27E1KlTuS6JfGHTpk2Ij4/HpUuXpPqF5uXLl/D19UVeXh6WL1+OHj16SO3YhJCqo/BUYHFxcbCzs0NKSgpOnDiBvn37cl0S+cKLFy/w999/Y9asWfjhhx+kckyWZREeHo7g4GC0aNECGzZsQN26daVybEKI9FB4Kqjbt2/DwcEBJiYmuHHjBlq0aMF1SeQLIpEIHh4eaNasGWbNmiWVY/J4PKxZswb37t3D6NGj4eLiotTd87QZAVFlyvuXqcIOHDgAd3d3dO/eHYcOHUKNGjW4Lon8j8DAQERHR+PcuXNSuQ757Nkz+Pr6QiQSwc/PD127dpVClYQQWaGvhgpELBZj8eLFmDp1KhwdHXH69GkKTgX09u1brFu3DlOnTkWHDh2qdCyGYXDgwAF4eHjA0tISO3bsoOAkRAlQy1NB5OXlwcXFBefPn8fq1avh7u5OIxUVEMMwJUHn5eVVpWN9+vQJQUFBuHbtGsaNG4fx48fT8oqEKAkKTwWQlJSEUaNGIS4uDkePHsXAgQO5Lol8Q2hoKB48eIBjx45VaRH2f//9FytXroS6ujrWrVuHjh07SrFKQoisUXhy7P79+xg9ejT09PQQGRmJ1q1bc10S+YakpCQsWrQI06ZNq/ReqSKRCCEhITh06BC6dOmCRYsWwdTUVLqFEkJkjsKTQ0eOHMG0adPQqVMnHD58WC57P5LKYVkWnp6eMDU1xZw5cyp1jPT0dKxYsQIvX77ElClTMGbMGOqaJ0RJKd2AIT6fjw4dOkBNTQ1Pnjwpdd+zZ8/Qs2dP6OrqwsrKCmvXruWmyO9gGAZ//fUXJk6cCFtbW5w7d46CU8GFhobixo0b2LBhQ6X2S719+zYmTZqEjIwMbN26FQ4ODhSchCgxpWt5zps3DxYWFnj69Gmp23NycmBjY4N+/fohMDAQz58/h4uLC0xNTTFlyhSOqv1aQUEBpkyZghMnTmDFihXw8PCgD1EFl5qaiqVLl8Le3h6//fabRM8VCoUICgrCsWPH0KNHD8ybN482KydEBShVeF64cAGXL1/GsWPHcOHChVL3HTx4EAKBALt374a2tjbatGmDJ0+eYOPGjQoTnikpKbC3t8erV69w+PBhDB06lOuSyHewLIv58+dDW1sbf/31l0TPff/+PZYvX464uDjMnDkTI0aMoC9KhKgIpQnPtLQ0TJ48GSdPnoS+vv5X90dFRaFXr17Q1tYuuW3AgAFYs2YNsrKyYGZm9tVz+Hw++Hx+ye85OTmyKR7A48ePMWrUKKirq+PKlSto3769zM5FpOf06dO4ePEidu/eLdHAnmvXrmHDhg0wMzNDQEAAmjdvLrsiCSFypxTXPFmWhbOzM6ZNm4YuXbqU+ZjU1FTUqVOn1G3Fv6emppb5HD8/P5iYmJT8WFlZSbfw/+/EiRPo378/LC0tcfPmTQpOJfHp0yd4e3vjjz/+wODBgyv0nKKiIqxbtw67du2CtbU1duzYQcFJiAriNDwXLFgANTW1cn9iYmKwbds25ObmwtvbW6rn9/b2Bo/HK/lJSkqS6vFZlsWaNWswbtw4DB48GBcvXqRFvpXIokWLIBaL4efnV6HHx8XFYdq0aYiIiMC4ceOwaNGiMntJCCHKj9NuW09PTzg7O5f7mCZNmuDatWuIioqCjo5Oqfu6dOkCR0dH7N27F3Xr1kVaWlqp+4t//1Zg6ejofHVMaSkqKsL06dNx5MgRLFq0CN7e3nS9S4lcvnwZJ06cgL+//3dHQrMsi/Pnz2PLli2wsLBAUFAQGjduLKdKCSFc4DQ8a9euXaEpGlu3boWvr2/J7ykpKRgwYADCwsLQrVs3AIC1tTUWLVoEoVBYslB3REQEWrZsWeb1TllKT0/H6NGj8ezZM+zduxd2dnZyPT+pGh6PBy8vL/Tr1w+2trblPjY/Px8bNmzA1atXMWTIEMycORO6urpyqpQQwhWlGDDUoEGDUr8bGhoCAJo2bYr69esDAMaOHYvly5fD1dUV8+fPR3R0NLZs2YJNmzbJtdbo6GjY2tpCKBTi0qVL37xGSxTX8uXLkZeXh3Xr1pXbW/Dq1SssW7YM2dnZ8PHxof1WCalGlGLAUEWYmJjg8uXLiIuLQ+fOneHp6QkfHx+5TlM5d+4cfvvtN9SsWRP//PMPBacSunnzJg4ePIhly5bBwsKizMewLIujR49ixowZMDIyQnBwMAUnIdWMGsuyLNdFKIqcnByYmJiAx+PB2Ni4ws9jWRZbtmzB4sWLMXToUOzcuRMGBgYyrJTIQn5+Pnr37o0GDRrg2LFjZbY6c3JysHr1aty+fRujRo3C1KlTpbKfJyGEe5JkgFJ02yoygUCAP//8E/v374eXlxd8fHygrq4yDfpqxc/PDxkZGTh69GiZwfn8+XOsWLECRUVF8PPzw88//8xBlYQQRUDhWQWfPn2Cg4MDHjx4gODgYDg4OHBdEqmk+/fvIzg4GCtWrECjRo1K3ccwDA4dOoRdu3ahTZs28PHxgbm5OTeFEkIUAoVnJcXExMDW1hZ5eXm4cOECunfvznVJpJL4fD7mzJmDzp07w9XVtdR9mZmZ8PPzw+vXrzFu3Dg4OzvThtWEEArPyoiIiMD48eNhZWWF8+fPo2HDhlyXRKpg/fr1SEhIwJ49e0oF4/379+Hr6ws1NTX4+Pigc+fOHFZJCFEkdHFOAizLIiAgACNHjkSPHj0QGRlJwanknj59Cn9/f8ydO7dkGT2RSISgoCB4enqiefPmCAkJoeAkhJRCLc8KEgqFmDt3LoKDg/Hnn3/C19eXuu+UnFAoxOzZs/HDDz/Azc0NwOd1kJcvX47//vsP06ZNg4ODAw0AI4R8hcKzArKysuDo6Ijbt28jICAATk5OXJdEpGDbtm149eoVLl26BC0tLdy4cQOrV6+GoaEh/P390bZtW65LJIQoKArP74iNjYWdnR0+ffqEs2fPomfPnlyXRKQgJiYGGzduhLu7O1q2bIlNmzbh+PHj6N27N+bPn08bVhNCykXhWY7r169j7NixqFOnDm7cuIGmTZtyXRKRArFYjNmzZ6NRo0YlCx0kJCTAw8MDw4cPpwX8CSHfRRdzvmHXrl0YOnQounTpguvXr1NwqpAdO3bgyZMnsLe3x4wZM8Dn8xEUFIQRI0ZQcBJCKoSW5/tC8dJMf/75J4KDgzFt2jSsWbMGmprUQFcV7969Q+/evdGsWTOIRCIMHDgQHh4e0NPT47o0QgjHJFmej1qeZdi9ezc2bdqEDRs2UHCqEIZhMHXqVBQUFEBNTQ2LFi3CokWLKDgrKSIiAtbW1mjYsCGsra0RERHBdUmEyA0lQxkOHTqEP/74g+syiBSxLAsPDw/cuHED/fr1Q2Bg4Fdb3ZGKc3FxQUhISMnviYmJsLGxgaurK4KDgzmsjBD5oG7bL1R2VxWi2HJzc7Fw4UIEBwfj559/xoULF6Ctrc11WUorIiICNjY237z/ypUrtEUbUUrUbUvI/xcdHQ0nJyccPXoU9evXx4kTJyg4q8jHx6fc+xcvXiynSgjhDnXbEpXEMAwOHjyIHTt2QEdHByKRCNu3b6ceBSlISUmp0v2EqAJqeRKVk5mZCQ8PDwQFBeGPP/5AYmIi7O3t0a9fP65LUwkWFhZVup8QVUDhSVTKgwcP4OTkhLdv32Ljxo14+fIltLS04Ovry3VpKmPFihXl3k+vNakOKDyJShCLxQgMDMScOXPQtGlT7N27F6mpqTh//jxWr14NMzMzrktUGf379/9q39Nirq6uNFiIVAt0zZMovbS0NCxduhQvXrzA1KlT4ejoiOzsbHh7e2Pw4ME07UgGgoODkZKSgps3b6JmzZqwsLCAr68vBSepNig8iVK7ceMGVq1aBUNDQ2zfvr1kJ5SVK1eiadOmWL16NccVqq7U1FSMHTsWO3bs4LoUQuSOum2JUhIIBNi4cSMWLlyIzp07Y8+ePSXBefnyZezbtw+Ojo4wNzfnuFLVVFRUhBcvXqBTp05cl0IIJ6jlSZROYmIifHx8EB8fD09Pz1ILuvN4PHh6eqJv376wt7fnuFLV9fz5c4hEIgpPUm1ReBKlcuHCBaxfvx7m5uYIDg5Gs2bNSt2/bNky5OXlYcOGDbRDigw9fvwYGhoaaNeuHdelEMIJCk+iFAoLC7FhwwZcuHABv//+Ozw9PaGrq1vqMTdu3MCBAwewfv16WFpaclRp9fDw4UO0adOGFtUn1RaFJ1F4sbGxCAgIwLNnz+Dj44MBAwZ89Zj8/HzMmTMHPXr0wPjx4zmosnp5/PgxOnbsyHUZhHCGBgwRhcWyLI4ePQpXV1fk5eUhJCSkzOAEPk/Mz8jIwKZNm6CuTm9rWRIIBHj+/Dk6d+7MdSmEcIZankQh5eTkYOXKlbh58ybs7e3h7u4OLS2tMh977949BAcHw9fXF40aNZJvodXQixcvIBAIqOVJqjUKT6Jwnj59iqVLl6KwsBBr165Fz549v/nYoqIizJo1Cz/99BMmTZokxyqrr0ePHkFdXR3t27fnuhRCOEPhSRQGwzDYu3cvgoOD0a5dOyxfvhx16tQp9zlr165FUlIS9u3bBw0NDTlVWr09evQIrVq1goGBAdelEMIZCk+iED5+/Ijly5fj4cOHmDhxIlxcXL4bho8fP4a/vz+8vb3RokULOVVKHj16RPM7SbVH4fkFlmUBfL7eRuTnwYMHWL16NTQ0NODn54eOHTsiPz+/3OcIBAK4ubmhZcuWGD9+PP2byYlQKMSTJ08wfPhwes2Jyil+TxdnQXnU2Io8qppITk6GlZUV12UQQgjhUFJSEurXr1/uYyg8v8AwDFJSUmBkZKRwq9Pk5OTAysoKSUlJMDY25rocpUCvmeToNZMcvWaSU9TXjGVZ5ObmwsLC4rtT3qjb9gvq6urf/bbBNWNjY4V6sykDes0kR6+Z5Og1k5wivmYmJiYVehzNJieEEEIkROFJCCGESIjCU0no6Ohg6dKl0NHR4boUpUGvmeToNZMcvWaSU4XXjAYMEUIIIRKilichhBAiIQpPQgghREIUnoQQQoiEKDwJIYQQCVF4KhE+n48OHTpATU0NT548KXXfs2fP0LNnT+jq6sLKygpr167lpkgFEB8fD1dXVzRu3Bh6enpo2rQpli5dCoFAUOpx9JqV5u/vj0aNGkFXVxfdunXD/fv3uS5JYfj5+eGnn36CkZERzM3NMXz4cLx69arUY4qKiuDm5oaaNWvC0NAQtra2SEtL46hixbN69Wqoqalh9uzZJbcp82tG4alE5s2bBwsLi69uz8nJgY2NDRo2bIiHDx9i3bp1WLZsGXbs2MFBldyLiYkBwzAICgrCixcvsGnTJgQGBmLhwoUlj6HXrLSwsDB4eHhg6dKlePToEdq3b48BAwYgPT2d69IUwo0bN+Dm5oa7d+8iIiICQqEQNjY2pTYwmDNnDs6cOYPw8HDcuHEDKSkpGDlyJIdVK44HDx4gKCgIP/74Y6nblfo1Y4lSOH/+PNuqVSv2xYsXLAD28ePHJfcFBASwZmZmLJ/PL7lt/vz5bMuWLTmoVDGtXbuWbdy4ccnv9JqV1rVrV9bNza3kd7FYzFpYWLB+fn4cVqW40tPTWQDsjRs3WJZl2ezsbFZLS4sNDw8veczLly9ZAGxUVBRXZSqE3Nxctnnz5mxERATbu3dvdtasWSzLKv9rRi1PJZCWlobJkydj//790NfX/+r+qKgo9OrVC9ra2iW3DRgwAK9evUJWVpY8S1VYPB4PNWrUKPmdXrP/IxAI8PDhQ/Tr16/kNnV1dfTr1w9RUVEcVqa4eDweAJS8px4+fAihUFjqNWzVqhUaNGhQ7V9DNzc3DB48uNRrAyj/a0bhqeBYloWzszOmTZuGLl26lPmY1NRU1KlTp9Rtxb+npqbKvEZF9+bNG2zbtg1Tp04tuY1es//z8eNHiMXiMl+P6vZaVATDMJg9ezZ++eUXtG3bFsDn94y2tjZMTU1LPba6v4ahoaF49OgR/Pz8vrpP2V8zCk+OLFiwAGpqauX+xMTEYNu2bcjNzYW3tzfXJXOuoq/Zl96/f4+BAwdi1KhRmDx5MkeVE1Xi5uaG6OhohIaGcl2KQktKSsKsWbNw8OBB6Orqcl2O1NGWZBzx9PSEs7NzuY9p0qQJrl27hqioqK/WgOzSpQscHR2xd+9e1K1b96sRasW/161bV6p1c6mir1mxlJQU9OnTBz///PNXA4Gqy2tWEbVq1YKGhkaZr0d1ey2+x93dHWfPnsXNmzdLbV9Yt25dCAQCZGdnl2pJVefX8OHDh0hPT0enTp1KbhOLxbh58yb+/vtvXLp0SblfM64vupLyJSQksM+fPy/5uXTpEguAPXr0KJuUlMSy7P8NfhEIBCXP8/b2rraDX1iWZZOTk9nmzZuzY8aMYUUi0Vf302tWWteuXVl3d/eS38ViMWtpaUkDhv4/hmFYNzc31sLCgn39+vVX9xcPfjl69GjJbTExMUoz+EUWcnJySn12PX/+nO3SpQs7btw49vnz50r/mlF4Kpm4uLivRttmZ2ezderUYcePH89GR0ezoaGhrL6+PhsUFMRdoRxKTk5mmzVrxvbt25dNTk5mP3z4UPJTjF6z0kJDQ1kdHR12z5497H///cdOmTKFNTU1ZVNTU7kuTSFMnz6dNTExYa9fv17q/VRQUFDymGnTprENGjRgr127xv7777+stbU1a21tzWHViufL0bYsq9yvGYWnkikrPFmWZZ8+fcr26NGD1dHRYS0tLdnVq1dzU6ACCAkJYQGU+fMles1K27ZtG9ugQQNWW1ub7dq1K3v37l2uS1IY33o/hYSElDymsLCQnTFjBmtmZsbq6+uzI0aMKPWFjXwdnsr8mtGWZIQQQoiEaLQtIYQQIiEKT0IIIURCFJ6EEEKIhCg8CSGEEAlReBJCCCESovAkhBBCJEThSQghhEiIwpMQQgiREIUnIYQQIiEKT0IIIURCFJ6EVHMZGRmoW7cuVq1aVXLbnTt3oK2tjatXr3JYGSGKi9a2JYTg/PnzGD58OO7cuYOWLVuiQ4cOGDZsGDZu3Mh1aYQoJApPQggAwM3NDVeuXEGXLl3w/PlzPHjw4KtN2Akhn1F4EkIAAIWFhWjbti2SkpLw8OFDtGvXjuuSCFFYdM2TEAIAePv2LVJSUsAwDOLj47kuhxCFRi1PQggEAgG6du2KDh06oGXLlti8eTOeP38Oc3NzrksjRCFReBJC4OXlhaNHj+Lp06cwNDRE7969YWJigrNnz3JdGiEKibptCanmrl+/js2bN2P//v0wNjaGuro69u/fj3/++Qfbt2/nujxCFBK1PAkhhBAJUcuTEEIIkRCFJyGEECIhCk9CCCFEQhSehBBCiIQoPAkhhBAJUXgSQgghEqLwJIQQQiRE4UkIIYRIiMKTEEIIkRCFJyGEECIhCk9CCCFEQhSehBBCiIT+H0QL5/osCvSEAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.G = k**2\n", + "sim.t = epoch_of_elements \n", + "sim.add(m=1.) # Sun\n", + "sim.add(m=1.e-3, a=5.) # Jupiter\n", + "sim.add(m=3.e-4, a=10.) # Saturn\n", + "for comet in comets:\n", + " addOrbit(sim, comet)\n", + "op = rebound.OrbitPlot(sim,xlim=[-50.,50],ylim=[-50.,50])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/IntegratingArbitraryODEs.ipynb b/rebound/source/docs/ipython_examples/IntegratingArbitraryODEs.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..433cb054ee8adccdbb0e118d659c99a399c9bfc0 --- /dev/null +++ b/rebound/source/docs/ipython_examples/IntegratingArbitraryODEs.ipynb @@ -0,0 +1,429 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ac2c0891", + "metadata": {}, + "source": [ + "# Integrating arbitrary ODEs\n", + "\n", + "Although REBOUND is primarily an N-body integrator, it can also integrate arbitrary ordinary differential equations (ODEs). Even better: it can integrate arbitrary ODEs in parallel with an N-body simulation. This allows you to couple various physical effects such as spin and tides to orbital dynamics.\n", + "\n", + "In this example, we are integrating a two planet system and a decoupled harmonic oscillator which is governed by the following ODE:\n", + "\n", + "$$ y_0(t)'' = -\\frac km y_0(t)$$\n", + "\n", + "or equivalently as a set of 2 first order differential equations\n", + "\n", + "$$ \\begin{pmatrix} y_0(t)\\\\y_1(t)\\end{pmatrix}' = \\begin{pmatrix} y_1(t)\\\\- \\frac k m y_0(t)\\end{pmatrix}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "e350dbbb", + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "37ac5371", + "metadata": {}, + "source": [ + "We first set up our N-body simulation. Note that we are using the Gragg-Bulirsch-Stoer integrator (BS)." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "18043d1d", + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1)\n", + "sim.add(a=1.2,m=1e-3,e=0.1)\n", + "sim.add(a=2.3,m=1e-3,e=0.1)\n", + "sim.integrator = \"BS\"" + ] + }, + { + "cell_type": "markdown", + "id": "55150ae8", + "metadata": {}, + "source": [ + "We now create an ODE structure. Note that the ODE is linked to the simulation. If you run multiple simulations in parallel, you need to create an ode structure for each of them." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "39c5337d", + "metadata": {}, + "outputs": [], + "source": [ + "ode_ho = sim.create_ode(length=2, needs_nbody=False)" + ] + }, + { + "cell_type": "markdown", + "id": "f5766f9e", + "metadata": {}, + "source": [ + "Next, we setup the ODE structure with the initial conditions and the right hand side (RHS) of the harmonic oscillator:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "265f8c39", + "metadata": {}, + "outputs": [], + "source": [ + "# Mass and spring constants\n", + "m = 1.\n", + "k = 10.\n", + "\n", + "# Initial conditions\n", + "ode_ho.y[0] = 1. \n", + "ode_ho.y[1] = 0. # zero velocity\n", + "\n", + "# RHS\n", + "def derivatives_ho(ode, yDot, y, t):\n", + " yDot[0] = y[1]\n", + " yDot[1] = -k/m*y[0]\n", + "\n", + "ode_ho.derivatives = derivatives_ho " + ] + }, + { + "cell_type": "markdown", + "id": "2f9b90c7", + "metadata": {}, + "source": [ + "To keep track of how accurate the integration of the harmonic oscillator is, we can calculate the energy which is conserved in the physical system." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "ebc52cd3", + "metadata": {}, + "outputs": [], + "source": [ + "def energy_ho(ode):\n", + " return 0.5*k*ode.y[0]**2 + 0.5*m*ode.y[1]**2" + ] + }, + { + "cell_type": "markdown", + "id": "6bff9751", + "metadata": {}, + "source": [ + "Now we can run the simulation, keeping track of a few quantities along the way." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4eb25927", + "metadata": {}, + "outputs": [], + "source": [ + "times = np.linspace(0.,60.,1000)\n", + "energies_nbody = np.zeros(len(times))\n", + "energies_ho = np.zeros(len(times))\n", + "r_nbody = np.zeros(len(times))\n", + "x_ho = np.zeros(len(times))\n", + "\n", + "for i, t in enumerate(times):\n", + " sim.integrate(t)\n", + " \n", + " r_nbody[i] = sim.particles[1].d\n", + " x_ho[i] = ode_ho.y[0]\n", + " energies_nbody[i] = sim.energy()\n", + " energies_ho[i] = energy_ho(ode_ho)" + ] + }, + { + "cell_type": "markdown", + "id": "439539a6", + "metadata": {}, + "source": [ + "Let's plot the relative energy error over time for both the N-body and the harmonic oscillator integration." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "0411c827", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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669n/fr1rF27lszMTHbv3s1NN93EF198QWZmJsuWLeP9998HrGXeDz/8cFavXs3RRx/Nc88995sYzz//fK688kpWr17Nt99+S1paWo3nV6xYwfPPP88PP/zA999/z3PPPceqVav45JNP6N69O6tXr2bdunVMnToVl8vFOeecw6OPPsrq1av57LPPGlxJuLq6fidHHnkk06dP58EHHyQzM5MBAwbUu0Q9gMvlYvny5c1KHKA1j4Bos5U6JDRSQwiVfv36VV2Uady4cWzfvh2AdevWceutt5Kfn09xcTEnnXRS1T5nn302dru96vGpp56KiDBq1Ci6du3KqFGjABgxYgTbt29nx44dTJkyhdTUVMBKBosXL+a0004jKiqKadOmVX3+p59+WiO+oqIidu3axemnnw5ATEzMb45h6dKlnH766cTHxwNWIb9kyRKmTp3KDTfcwE033cS0adM46qijWLt2LWlpaYwfPx6wlqMPVEO/k0r1LVFfqXJJ++bSmkcjDFrzUCqUoqOjq+7b7XY8Hg8As2fP5oknnmDt2rXcfvvtlJeXV72uspCu/R42m63G+9lstqr3q4/T6axa2r3657eEwYMHs3LlSkaNGsWtt95atTpwUzX0OwlU7d9dU2nyaIxp/CVKqZZXVFREWloabrf7N8upB2vChAl8/fXX5OTk4PV6ee2116rOzBuTmJhIz549q5q5KioqfrN441FHHcX7779PaWkpJSUlvPfeexx11FHs3r2buLg4LrjgAm688UZWrlzJkCFD2LNnD8uWLas6zkATVn2/k8TERIqKigDqXaK+pWmzVQC05qFU67vrrruYOHEiqampTJw4sapwbIq0tDTuu+8+jj322KoO8xkzZgS8/0svvcQf//hHbrvtNpxOJ2+99Rb9+/evev6www5j9uzZTJgwAbA6zMeOHcuiRYu48cYbsdlsOJ1OnnrqKaKionjjjTe4+uqrKSsrIzY2ls8++yygOOr7nZx77rlceumlPPbYY7z99tu8+OKLVR3m/fv35/nnnw/itxUYqb3GfXuUkZFhli9f3qR9S2/vwpq0szj88n+1cFRKhd+GDRsYNmxYuMNQEaCu74KIrDDG1Dl+WJutlFJKBU2Th1JKqaBp8lDqEHcoNF2rhjXlO6DJQ6lDWExMDLm5uZpADmHGGHJzc+ucv9IQHW2l1CGsZ8+eZGVlsX///nCHosIoJiaGnj17BrWPJg+lDmFOp5N+/fqFOwzVBmmzlVJKqaBp8lBKKRU0TR5KKaWCdkjMMBeR/cCOJu7eGchpwXDCSY8lMrWXY2kvxwF6LJX6GGNS63rikEgezSEiy+ubnt/W6LFEpvZyLO3lOECPJRDabKWUUipomjyUUkoFTZNH454NdwAtSI8lMrWXY2kvxwF6LI3SPg+llFJB05qHUkqpoGnyUEopFTRNHg0QkakisklEtojIzeGOJxgiMk9EskVkXbVtnUTkUxHZ7L/tGM4YAyEivUTkSxH5SUTWi8i1/u1t8VhiRORHEVntP5a/+7f3E5Ef/N+zN0QkKtyxBkpE7CKySkQW+h+3yWMRke0islZEMkVkuX9bW/yOJYvI2yKyUUQ2iMgRoToOTR71EBE78CRwMjAcOE9Ehoc3qqC8AEytte1m4HNjzCDgc//jSOcBbjDGDAcOB670/z+0xWOpAI4zxowB0oGpInI4cD/wiDFmIJAHzAlfiEG7FthQ7XFbPpZjjTHp1eZEtMXv2KPAJ8aYocAYrP+b0ByHMUZ/6vgBjgAWVXt8C3BLuOMK8hj6AuuqPd4EpPnvpwGbwh1jE45pAXBCWz8WIA5YCUzEmv3r8G+v8b2L5B+gp78wOg5YCEgbPpbtQOda29rUdwzoAGzDPxAq1MehNY/69QB2Vnuc5d/WlnU1xuzx398LdA1nMMESkb7AWOAH2uix+Jt5MoFs4FPgFyDfGOPxv6Qtfc/+D/gL4PM/TqHtHosB/isiK0TkMv+2tvYd6wfsB573NyX+W0TiCdFxaPI4RBnrNKTNjNMWkQTgHeA6Y0xh9efa0rEYY7zGmHSss/YJwNDwRtQ0IjINyDbGrAh3LC1ksjHmMKxm6itF5OjqT7aR75gDOAx4yhgzFiihVhNVSx6HJo/67QJ6VXvc07+tLdsnImkA/tvsMMcTEBFxYiWOV4wx7/o3t8ljqWSMyQe+xGraSRaRyguztZXv2SRguohsB17Harp6lLZ5LBhjdvlvs4H3sBJ7W/uOZQFZxpgf/I/fxkomITkOTR71WwYM8o8eiQLOBT4Ic0zN9QFwkf/+RVj9BxFNRASYC2wwxjxc7am2eCypIpLsvx+L1XezASuJnOV/WZs4FmPMLcaYnsaYvlh/G18YY86nDR6LiMSLSGLlfeBEYB1t7DtmjNkL7BSRIf5NxwM/EaLj0BnmDRCR32O169qBecaYe8IbUeBE5DVgCtZyzPuA24H3gTeB3lhL1M80xhwIU4gBEZHJwBJgLQfb1v8Xq9+jrR3LaOBFrO+TDXjTGHOniPTHOnvvBKwCLjDGVIQv0uCIyBTgz8aYaW3xWPwxv+d/6ABeNcbcIyIptL3vWDrwbyAK2ApcjP+7RgsfhyYPpZRSQdNmK6WUUkHT5KGUUipomjyUUkoFTZOHUkqpoGnyUEopFTRNHkqFgH910z/573cXkbfDHZNSLUmH6ioVAv51uBYaY0aGOxalQsHR+EuUUk1wHzDAvwjiZmCYMWakiMwGTgPigUHAQ1gTui7EWrL998aYAyIyAOuSAKlAKXCpMWZjax+EUvXRZiulQuNm4Bf/Iog31npuJHAGMB64Byj1L2T3HTDL/5pngauNMeOAPwP/ao2glQqU1jyUan1fGmOKgCIRKQD+49++FhjtX0H4SOAta2kvAKJbP0yl6qfJQ6nWV32tJ1+1xz6sv0kb1nUx0ls5LqUCps1WSoVGEZDYlB391yvZJiJng7WysIiMacnglGouTR5KhYAxJhf4RkTWAQ824S3OB+aIyGpgPTCjJeNTqrl0qK5SSqmgac1DKaVU0DR5KKWUCpomD6WUUkHT5KGUUipomjyUUkoFTZOHUkqpoGnyUEopFbT/DwTpWH2SS+ppAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1)\n", + "ax.set_xlabel(\"time\")\n", + "ax.set_ylabel(\"relative energy error\")\n", + "ax.set_yscale(\"log\")\n", + "ax.plot(times,np.abs((energies_nbody-energies_nbody[0])/energies_nbody[0]), label=\"N-body\")\n", + "ax.plot(times,np.abs((energies_ho-energies_ho[0])/energies_ho[0]), label=\"harmonic oscillator\")\n", + "ax.legend()" + ] + }, + { + "cell_type": "markdown", + "id": "6421232c", + "metadata": {}, + "source": [ + "Let us also plot the radius of the inner planet and the position coordinate of the harmonic oscillator." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "bf8928b4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1)\n", + "ax.set_xlabel(\"time\")\n", + "ax.plot(times,r_nbody, label=\"planet\")\n", + "ax.plot(times,x_ho, label=\"harmonic oscillator\")\n", + "ax.legend()" + ] + }, + { + "cell_type": "markdown", + "id": "2ef6fafa", + "metadata": {}, + "source": [ + "The above example is using the BS integrator for both the N-body and the harmonic oscillator integration. The BS integrator has default tolerance parameters set to $10^{-5}$. You can change the relative or absolute tolerance with to get more accurate results:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "1d3c7ced", + "metadata": {}, + "outputs": [], + "source": [ + "sim.ri_bs.eps_rel = 1e-8\n", + "sim.ri_bs.eps_abs = 1e-8" + ] + }, + { + "cell_type": "markdown", + "id": "1e2b0d95", + "metadata": {}, + "source": [ + "Note that in this example, the harmonic oscillator has a period that is shorter than any orbital timescale. Therefore the timestep is limited by the harmonic oscillator, not the N-body integration. As a result, the N-body integration has an error much smaller than the tolerance parameters. " + ] + }, + { + "cell_type": "markdown", + "id": "9bb09a10", + "metadata": {}, + "source": [ + "Let us change the simple harmonic oscillator to a forced harmonic oscillator where the forcing depends on phase of a planet." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "03c94568", + "metadata": {}, + "outputs": [], + "source": [ + "def derivatives_ho_forced(ode, yDot, y, t):\n", + " # Now we can access particles and their orbital parameters during sub-steps\n", + " forcing = np.sin(sim.particles[1].f)\n", + " \n", + " # Note that we are using the global sim variable.\n", + " # Alternatively, one can also access the simulation via\n", + " # sim = ode.contents.r.contents \n", + " \n", + " yDot[0] = y[1]\n", + " yDot[1] = -k/m*y[0] + forcing\n", + "\n", + "ode_ho.derivatives = derivatives_ho_forced" + ] + }, + { + "cell_type": "markdown", + "id": "c592c246", + "metadata": {}, + "source": [ + "We explicitly set `needs_nbody = False` during initialization. We therefore need to tell REBOUND that our ODE now needs access to the particle state during the integrations:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "61034468", + "metadata": {}, + "outputs": [], + "source": [ + "ode_ho.needs_nbody = True" + ] + }, + { + "cell_type": "markdown", + "id": "3dfafc1d", + "metadata": {}, + "source": [ + "Running the integration a bit further, now with the forced harmonic oscillator:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "4305edc4", + "metadata": {}, + "outputs": [], + "source": [ + "times = np.linspace(65.,120.,1000)\n", + "\n", + "for i, t in enumerate(times):\n", + " sim.integrate(t)\n", + " \n", + " r_nbody[i] = sim.particles[1].d\n", + " x_ho[i] = ode_ho.y[0]\n", + " energies_nbody[i] = sim.energy()\n", + " energies_ho[i] = energy_ho(ode_ho)" + ] + }, + { + "cell_type": "markdown", + "id": "191064cf", + "metadata": {}, + "source": [ + "The harmonic oscillator is now getting forced by the planet." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "9f90e0fb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1)\n", + "ax.set_xlabel(\"time\")\n", + "ax.plot(times,r_nbody, label=\"planet\")\n", + "ax.plot(times,x_ho, label=\"harmonic oscillator\")\n", + "ax.legend()" + ] + }, + { + "cell_type": "markdown", + "id": "80beed0f", + "metadata": {}, + "source": [ + "In addition to using BS, it is also possible to integrate arbitrary ODEs in conjunction with other REBOUND integrators such as IAS15 and WHFast. In that case, only the user-defined ODEs are integrated with BS **after** a successfull N-body integration step. This type of switching back and forth the different ODEs will lead to an error. However, if the timescale involved in the user-defined ODEs are much longer than the timestep of the N-body integration, then this will be a small error. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "15c2b8e3", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/rebound/source/docs/ipython_examples/Megno.ipynb b/rebound/source/docs/ipython_examples/Megno.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..12cff135dfb3cb0989a6607c18a0b7419e7ad4b4 --- /dev/null +++ b/rebound/source/docs/ipython_examples/Megno.ipynb @@ -0,0 +1,200 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Stability map with MEGNO and WHFast\n", + "In this tutorial, we'll create a stability map of a two planet system using the chaos indicator MEGNO (Mean Exponential Growth of Nearby Orbits) and the symplectic integrator WHFast (Rein and Tamayo 2015).\n", + "\n", + "We will integrate a two planet system with massive planets. We vary two orbital parameters, the semi-major axis $a$ and the eccentricity $e$. Let us first define a function that runs one simulation for a given set of initial conditions $(a, e)$." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:08:23.195270Z", + "start_time": "2023-09-24T21:08:23.181079Z" + } + }, + "outputs": [], + "source": [ + "def simulation(par):\n", + " a, e = par # unpack parameters\n", + " sim = rebound.Simulation()\n", + " sim.integrator = \"whfast\"\n", + " sim.ri_whfast.safe_mode = 0\n", + " sim.dt = 5.\n", + " sim.add(m=1.) # Star\n", + " sim.add(m=0.000954, a=5.204, M=0.600, omega=0.257, e=0.048)\n", + " sim.add(m=0.000285, a=a, M=0.871, omega=1.616, e=e)\n", + " sim.move_to_com()\n", + " \n", + " sim.init_megno()\n", + " sim.exit_max_distance = 20.\n", + " try:\n", + " sim.integrate(5e2*2.*np.pi, exact_finish_time=0) # integrate for 500 years, integrating to the nearest\n", + " #timestep for each output to keep the timestep constant and preserve WHFast's symplectic nature\n", + " megno = sim.megno() \n", + " return megno\n", + " except rebound.Escape:\n", + " return 10. # At least one particle got ejected, returning large MEGNO." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's try this out and run one simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:08:24.035399Z", + "start_time": "2023-09-24T21:08:23.946126Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "2.0535548978104345" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import rebound\n", + "import numpy as np\n", + "simulation((7,0.1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The return value is the MEGNO. It is about 2, thus the system is regular for these initial conditions. Let's run a whole array of simulations. We will use the multiprocess module to run the simulations in parallel. If the following line throws you an ImportError, install the module with `pip install multiprocess`." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:08:24.770700Z", + "start_time": "2023-09-24T21:08:24.757093Z" + } + }, + "outputs": [], + "source": [ + "from multiprocess import Pool" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:08:25.796868Z", + "start_time": "2023-09-24T21:08:25.182288Z" + } + }, + "outputs": [], + "source": [ + "with Pool() as pool:\n", + " Ngrid = 80\n", + " par_a = np.linspace(7.,10.,Ngrid)\n", + " par_e = np.linspace(0.,0.5,Ngrid)\n", + " parameters = []\n", + " for e in par_e:\n", + " for a in par_a:\n", + " parameters.append((a,e))\n", + " results = pool.map(simulation,parameters)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On my laptop, this takes only half a second.\n", + "\n", + "Let's plot it!" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:08:26.697801Z", + "start_time": "2023-09-24T21:08:26.263972Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmoAAAHJCAYAAAA1shWiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAACjFUlEQVR4nOzdeXxM9/oH8M8ksskekR0JUftSa6NaSipUW9peF7ct1VZvlf6oFtWFWtqgC225aC+lra0ounI1Fa3at4qlao8tC5GVrHN+fyAyvs+JmWQyGfF531detx7fc+bMmTPjmzPP83wNmqZpICIiIiK741DZB0BEREREMk7UiIiIiOwUJ2pEREREdooTNSIiIiI7xYkaERERkZ3iRI2IiIjITnGiRkRERGSnOFEjIiIislOcqBERERHZKU7UiIiIiOyUXU7UZs2ahfDwcLi6uqJ9+/bYvn277tgFCxbAYDCY/Li6utrwaImIiMjWpkyZAoPBgBEjRpQ6bvny5WjYsCFcXV3RrFkz/PTTTyZ/r2kaxo0bh+DgYLi5uSE6OhpHjhypwCO3jN1N1JYtW4aRI0di/Pjx2L17N1q0aIGYmBikpKTobuPl5YXz588X/5w6dcqGR0xERES2tGPHDsydOxfNmzcvddzmzZvRv39/PPfcc9izZw969+6N3r17Y//+/cVjpk2bhk8++QRz5szBtm3b4O7ujpiYGOTm5lb00zCLwd4WZW/fvj3atm2LmTNnAgCMRiNq1aqFl19+Ga+//royfsGCBRgxYgTS09NtfKRERERka9nZ2WjVqhX+85//YPLkyWjZsiVmzJghju3bty9ycnLwww8/FMfuuecetGzZEnPmzIGmaQgJCcGrr76K1157DQCQkZGBwMBALFiwAP369bPFUypVtco+gJLy8/Oxa9cujB07tjjm4OCA6OhobNmyRXe77Oxs1KlTB0ajEa1atcJ7772HJk2aiGPz8vKQl5dX/Gej0Yi0tDTUqFEDBoPBek+GiIjIBjRNQ1ZWFkJCQuDgUPFflOXm5iI/P99q+9M0Tfn318XFBS4uLuL4oUOHomfPnoiOjsbkyZNL3feWLVswcuRIk1hMTAxWr14NADhx4gSSkpIQHR1d/Pfe3t5o3749tmzZwonazS5cuICioiIEBgaaxAMDA/HXX3+J2zRo0ADz589H8+bNkZGRgQ8++AAdOnTAgQMHEBYWpoyPjY3FhAkTKuT4iYiIKsvp06fFf/esKTc3F8FuHkhHkdX26eHhgezsbJPY+PHj8c477yhjly5dit27d2PHjh1m7TspKUmcUyQlJRX//fWY3pjKZlcTtbKIiopCVFRU8Z87dOiARo0aYe7cuZg0aZIyfuzYsSaz64yMDNSuXRufIAJuZUzZu+fMEDG+NWx2mfZXFufi71NiIZ1/t9njk31LWHuvEmvW/Q9x7OWtnZRY9Xs2mv1Yx+PUa7FuV16LdPtpeKy/GP/3+gQl5uUs/3P63LN7lVjMwCBx7GcD6yuxOl3k984nc5sV/3fRlQIcHPEjPD09xbHWlJ+fj3QUYaah7P9mlnQFRgzLPoHTp0/Dy8urOC7dTTt9+jSGDx+O9evX31FFg3Y1UfP394ejoyOSk5NN4snJyQgKki/smzk5OeHuu+/G0aNHxb/Xu53qBgdUh6PlBw3A08tNjJd1f2Xh6uFcqY9P9s3F3fzrQyvntcRrkaoKD095MuDo5qTEqrnI/5xK177epM6S9450DLZM33GDA6obrPC+vpYl7+XlZTJRk+zatQspKSlo1apVcayoqAi//fYbZs6ciby8PDg6mh5TUFBQqXOK6/+fnJyM4OBgkzEtW7Ys67OyKruq+nR2dkbr1q0RFxdXHDMajYiLizO5a1aaoqIiJCQkmJxwIiIish4HB+v9mKtr165ISEjA3r17i3/atGmDJ598Env37lUmacDVb91KzikAYP369cVzioiICAQFBZmMyczMxLZt28yed1Q0u7qjBgAjR47EwIED0aZNG7Rr1w4zZsxATk4OBg0aBAAYMGAAQkNDERsbCwCYOHEi7rnnHkRGRiI9PR3vv/8+Tp06heeff74ynwYREVGV5eAAOFjhBp6DBpib7ubp6YmmTZuaxNzd3VGjRo3i+M1zhOHDh6NTp0748MMP0bNnTyxduhQ7d+7EZ599BgDFfdgmT56M+vXrIyIiAm+//TZCQkLQu3fv8j9BK7C7iVrfvn2RmpqKcePGISkpCS1btsTatWuLE/0SExNNqlouXbqEwYMHIykpCb6+vmjdujU2b96Mxo0b2+yY//D62GaPpSesTXxlHwLZsUHDflNie3TGTt6crMRiLXis7HyjBaPvLL3HRCgxtwnDxLFLXF+t6MOhWzgY8KUYXyQ0FWiaIOckL+mn5jD/+Pl5cewbs9QWVEsQL479+6/U4v/W8grFMXeim+cIHTp0wOLFi/HWW2/hjTfeQP369bF69WqTCd/o0aORk5ODF154Aenp6ejYsSPWrl1rN3lwdjdRA4Bhw4Zh2DD5wys+Pt7kz9OnT8f06dNtcFREREQEWPmOWjncPCe4+c8A0KdPH/Tp00d3HwaDARMnTsTEiRPLdzAVxC4nakRERGS/HAxWmqiVfxdVHs8RERERkZ3iHTUiIiKyiL189Xkn4ESN7IbD4WglZmzwi9nbe3vL8aAANXb4iNm7rTDh59SlSU6GLDV7+34/dFZi3/eNF8fu+dPs3eJk338qsSUvjDd7+w7B7krssvkPX6WtnnpCDU5l0cDtZv9BNZbgIDc+t8TCo98pMbWz2lV5WTeWQtTybV9MwIma7fCrTyIiIiI7xTtqREREZBHeUbMdTtSIiIjIIgYrTdQMnKjdEidqZDe0hubno0kyMiyLV7YWUzcrsZMWbN8g+YISm5BT9uO5bom3+flokl4171H3iZ/LtU+qWMHCUsrnk2x/HPbmyRd9xfiiOZcq5PEGOIQqMb2sVUfnG8slaZoGtpmuujhRIyIiIos4GCxbp1N3P5xh3hInakRERGQRSxdU191P+XdR5fEcEREREdkp3lEjIiIii/COmu1wokZ2Q7vDqn/WfJxYru33HshSYnXeryeO/WTUMbP323eJWgywrP9Ws7cvbzFCVTZ6TmMlNu1FoXuqjbFwQOZfv4YYd3RUiwmKisr/eAafmkqsf85Ucezgdz8u/m8NQEH5H94iBoMBBkP5yz6tsY+qjpNZIiIiIjvFO2pERERkEX71aTucqBEREZFFOFGzHZ4jIiIiIjvFO2p3oNQ9DyixmndvqIQjofJY89EpJXZRp5O6JZK+PlDufZDMloUD/X6JUWJLo9fZ7PGrgpxUeamPth1clNjW3/PK/XjaX4eU2IqQfeJYk5UJjLavxOIdNdvhRI2IiIgswoma7fAcEREREdkp3lEjIiIii/COmu1wokZEREQWMVhposZ2t7fGidodqKoWDtTwk+MX02x7HDerU1uOnyrfwgSiH8d0FOPpc743ex8BveorsSbHd4tjD6i5z2Qn5gWpverjfowSxz7ac0tFH47dk1aNyG4YLo5dOuWnCjkGQ8NGSuyx1b+KY4d5uxb/t9GlANkVckRkDzhRIyIiIos4GKz01ecdtnRgWXCiRkRERBaxWo4aJ2q3xDw+IiIiIjvFO2pERERkEQfD1R9r7IdKx4naNb3SpsDLq3rxn1dWe6USj4bKorKLBvQc/KmLGHdvKicJl0cPr+ZifAnMLyY4NnuPEmPRgHXUr6fGjhyrmMfqGqYmprs3nVUxD2antsbfJ8bv6fy7EpNWjVgK81eS6J83Xf6LHPWDaYnfJHGodlB9vPwDF8SxqQUlygfyC299gFbGrz5th199EhEREdkp3lEjIiIii/COmu1wokZEREQW4UTNdvjVJxEREZGd4h21ax77bhmqVXcq/vMLlXgsVLU89c1pMb6qAh5LO7Sv3PvYvYe/4laUiiockNR0C1NiPQcHi2N//Px8RR9OpXj9wz/FeHwFPNYSF7kA7dVZDZXYhzr7WNrlZyV2b+ZwefDoL809tArh4GCAgxVKNh00ln3eCidqREREZBGDowEGx/JPsgxc7fOW+NUnERERkZ3iRI2IiIgsYnAwWO3HXLNnz0bz5s3h5eUFLy8vREVF4eef1a+Lr+vcuTMMBoPy07Nnz+IxzzzzjPL33bt3L9e5sTZ+9XnN4eQsOLg63Xog6Xoge4wS2+AxtRKOxL6smnjE7LGPT2ogxp17tVJiS5svUWKZX+ww/8CoSnP/8QcltrSK5qIBQA0/Nda4va849j/fZyoxMZds6F/lPi5L9tGmraMS+yxhrzjWv36N4v825hbA5v2+DZZNsnQZzd9HWFgYpkyZgvr160PTNCxcuBC9evXCnj170KRJE2X8t99+i/z8/OI/X7x4ES1atECfPn1MxnXv3h1ffPFF8Z9dXFzK8EQqDidqREREZPceeeQRkz+/++67mD17NrZu3SpO1Pz8TGfvS5cuRfXq1ZWJmouLC4KCgqx/wFbCiRoRERFZxGrFBNeqPjMzTe9yuri4lHpnq6ioCMuXL0dOTg6ioqLMeqx58+ahX79+cHd3N4nHx8cjICAAvr6+6NKlCyZPnowaNWro7MX2mKNGREREFrF2jlqtWrXg7e1d/BMbGys+bkJCAjw8PODi4oIXX3wRq1atQuPGjW95vNu3b8f+/fvx/PPPm8S7d++OL7/8EnFxcZg6dSo2btyIHj16oKioqPwnyUp4R42IiIgq1enTp+Hl5VX8Z727aQ0aNMDevXuRkZGBFStWYODAgdi4ceMtJ2vz5s1Ds2bN0K5dO5N4v379iv+7WbNmaN68OerVq4f4+Hh07dq1HM/IejhRu0YzatCMbPRZHiwcKL/vJx4W4wVvy/Gbeb0aLf/FvK+VUL+DT4lDlzZWx95u+mdMUGJLvMdXwpFUnpZZWUrs9Uo4Dlu5KGTT/+etU2Zv7+hYvi+YnnxRLlxYNOeS2fuov22mEvv+q9ni2AtHLt74Q36h2Y9hLdb+6vN6JeetODs7IzIyEgDQunVr7NixAx9//DHmzp2ru01OTg6WLl2KiRMn3nL/devWhb+/P44ePcqJGhEREd2erLYyQTn3YTQakZeXV+qY5cuXIy8vD089Jf9yWtKZM2dw8eJFBAfLq3hUBk7UiIiIyO6NHTsWPXr0QO3atZGVlYXFixcjPj4e69atAwAMGDAAoaGhSn7bvHnz0Lt3b6VAIDs7GxMmTMATTzyBoKAgHDt2DKNHj0ZkZCRiYmJs9rxuhRM1IiIisoilzWpL24+5UlJSMGDAAJw/fx7e3t5o3rw51q1bhwcffBAAkJiYCAcH06+wDx8+jE2bNuF///ufsj9HR0fs27cPCxcuRHp6OkJCQtCtWzdMmjTJrnqpcaJGREREFrF2jpo55s2bV+rfx8fHK7EGDRpA0+T8czc3t+K7cfaME7VrCnIKYChiMQFVroKC8m2f8IRcCNBv9X1KTPvzqDg2OudNJVYzR05WXhJgnwUklV040DPvXTH+o4t6bi0Za4ntSerF9G259li1nd1r/qoN/c8NV2LPTl9a7mMwLluoxLLz7adNBFUOTtSIiIjIIgaDAwwO5W/FajDwBsmtcKJGREREFrHaV58WrPV5p+LKBERERER2infUiIiIyCKVUfV5p+JE7Ro3Pzc4uDlV9mEQlcuBQ3K83kMPK7HdKTvFsWfc1eR2qRjBEm3vkT9qdmytmI7qXR73UWK/fpteIY8lsaQQoLxFA3q+HaNzMZip37f3ivGlj/9Rrv3aq70b1RUEDuiMHXt8jxIrzJWv5c0b1PdOhwd+F8caWkQqsbPz1LYSAFDNxbH4vzVosHXJASdqtsOvPomIiIjsFO+oERERkUUMjrBSMYEVDqaK40SNiIiILGIva33eCfjVJxEREZGd4h21ay5fuAyDK08H3d6Sdz8gxvv9uFKJ1XSXi2ceFGKRqWni2MlmHtfxvyumaECPLQsHqqqqUDTQ/8r7YnyJ2yglpleII/n4+7+VmE9tH/N3oOOZxONKLD/HjOVKKmH1AhYT2A5nJkRERGQRNry1HX71SURERGSneEeNiIiILGIwWOmrTwPvqN0KJ2rXODo7wuDseOuBVGVF960hxn9ZdtHsffTb9IgSW9rx+zIfU2l6jayjxKpH3C+OHeF3Ton5fLlOHDuxh4cSO7FL3d4SF+UUtyqhf/7HSmyJ8/BKOJI7Q/crE8T4WrfxSkzKRbPEq7MaivH8gylKzFgo95mQ5jL9094Wx7618lsl5lPbWz6G7Pzi/9byCnFFHFWBrPTVJ6yxjyqOX30SERER2SneUSMiIiKLGBwcYHAo/70ea+yjquNEjYiIiCzC9hy2w6ksERERkZ3iHbVrnD2c4eAmNwClO4MlRQN6KqpwQOLWr7USq7dihTj2UJb6W2vmuSxxbPxH7dXgx7stO7ib9F1yjxhf1n9rufZrD8pbOPDPL9uK8W8G7CjXfi3RZ87dSmz5i3ts9vhPvugrxhfNuaTEpKIBS332jfreeeGfu5TYow1ritufCFILbhKSssWxPx9Tn8M9nSeJY498E6XEnPeeF8cai7Qbf8i3bUNpAHBwNMDBCoUA1thHVWeXd9RmzZqF8PBwuLq6on379ti+fbtZ2y1duhQGgwG9e/eu2AMkIiK6g13/6tMaP1Q6u5uoLVu2DCNHjsT48eOxe/dutGjRAjExMUhJUcuhSzp58iRee+013HfffTY6UiIiIqKKZXcTtY8++giDBw/GoEGD0LhxY8yZMwfVq1fH/PnzdbcpKirCk08+iQkTJqBu3bo2PFoiIqI7z/UlpKzxQ6Wzq4lafn4+du3ahejo6OKYg4MDoqOjsWXLFt3tJk6ciICAADz33HO3fIy8vDxkZmaa/BAREZH5+NWn7dhVMcGFCxdQVFSEwMBAk3hgYCD++usvcZtNmzZh3rx52Lt3r1mPERsbiwkT1M7WgZ4ucGQxAdmpJ2Y0U2LpzVoosV/uCha3d07PV4NT5MKDf/6crMTGtpT3C6iJ0pJa6Rli/AOztr79/P6rnIJxX5ffldi53h119mK7YoKszWdt9lgSqWigIh08a94v6Et+PynG175wrxLrtWSnOLamn5sSa3NpsDh2me/nSqzuvKbi2KM7Kvc1I9uxqztqlsrKysLTTz+Nzz//HP7+/mZtM3bsWGRkZBT/nD59uoKPkoiIqIpxMFxd/qm8P7yjdkt2dUfN398fjo6OSE42/Y0+OTkZQUFByvhjx47h5MmTeOSRG+srGo1X11urVq0aDh8+jHr16pls4+LiAhcXlwo4eiIiojsDG97ajl3dUXN2dkbr1q0RFxdXHDMajYiLi0NUlNpfpmHDhkhISMDevXuLfx599FE88MAD2Lt3L2rVqmXLwyciIiKyKru6owYAI0eOxMCBA9GmTRu0a9cOM2bMQE5ODgYNGgQAGDBgAEJDQxEbGwtXV1c0bWr6/b2Pjw8AKHEiIiKyEkeHqz/W2A+Vyu4man379kVqairGjRuHpKQktGzZEmvXri0uMEhMTIRDBSzievp8Fgyudnc6yIaq/f2gGC+8a72Nj0S1ckSCEpsXqn6Fvz5QTREAgENNApRYjXp+4tgNj9dTYhNz5K7rwEGduKm9Ax4X478Medes7W83s3Ry1ZcKsa1J+yvkGNzUHHZcuSKPdW8mdeAvvXfl7Sz56X8osSWvxCqxwFre4vbpeTlKbN1T6rc+APDCevW9+68f5UKRkULMbosGHKyUX8avPm/JLmcmw4YNw7Bhw8S/i4+PL3XbBQsWWP+AiIiIiCqBXU7UiIiIyH4ZHGGVZrUGRyscTBXHiRoRERFZhl992gyz+IiIiIjsFO+oXXM57TIMLjwdd7K2g9Wu8QCgv3iZ9UVlvCzGvzuuJpw3yShUYoZ7e4jb7z+2WolV0ymeianeUIn5LV4mjp0lRoV9rvxBjI8yc/vbTZRO8cVwIfb6xnPi2MnlPAa9wgHJylEHyvlot5cl/mrhQGTSv5TY31qgEgOA3fdPV2L1Osurd9TsEabE/t1cbtDefWqeEgusbhTHJh+o5GKP6w1rrbEfKhXvqBEREZFFDAYrrfVpMH+iNnv2bDRv3hxeXl7w8vJCVFQUfv75Z93xCxYsuHqcJX5cXV1NxmiahnHjxiE4OBhubm6Ijo7GkSNHynxeKgInakRERGT3wsLCMGXKFOzatQs7d+5Ely5d0KtXLxw4oH9H2MvLC+fPny/+OXXqlMnfT5s2DZ988gnmzJmDbdu2wd3dHTExMcjNza3op2M2ftdHRERElrFyw9vMTNPmg9JyjyWXiwSAd999F7Nnz8bWrVvRpEkTcfcGg0FcghK4ejdtxowZeOutt9CrVy8AwJdffonAwECsXr0a/fr1K9NTsjZO1K7Jz84H8uVcgDtZi2Zq7E+1f6PNeQt9KDMyyrfPLRsr/zeoLd6finGpHWnfnLFKbFvKJnH7NcfUBp0vt5dzakJXfqfEnu1YWxwLnNSJm6rt7XrrQde0bi1/+O/adfu8P4c/ucfssZMHV35+WL+DTymxpY2/Lvd+GzVQY4cOl3u3on4/dFZihvu7imOXeL2txB76apsS+2TUMXF7Jyc19u9Ocj7bG81rKLGevyYLI4FDz7ZTYlnT5YbbwS1uTD6MVwog77HiWHutz5uXfBw/fjzeeecd3e2KioqwfPly5OTkiEtMXpednY06derAaDSiVatWeO+994ondSdOnEBSUhKio6OLx3t7e6N9+/bYsmULJ2pEREREAHD69Gl4eXkV//nmu2nXJSQkICoqCrm5ufDw8MCqVavQuHFjcWyDBg0wf/58NG/eHBkZGfjggw/QoUMHHDhwAGFhYUhKSgKA4pWPrgsMDCz+O3vAiRoRERFZxspVn9cLBG6lQYMG2Lt3LzIyMrBixQoMHDgQGzduFCdrUVFRJnfbOnTogEaNGmHu3LmYNGlS+Y/dRlhMQERERJa5PlGzxo8FnJ2dERkZidatWyM2NhYtWrTAxx9/bNa2Tk5OuPvuu3H06FEAKM5dS042/eI4OTlZN6+tMnCiRkRERLclo9GIvDy1/5ykqKgICQkJCA6+mp8bERGBoKAgxMXFFY/JzMzEtm3bSs17szV+9UmlquzCgSdf9DV77KI5lyrwSMqu39bHxPjSe1aZvY/aZ/+pxALho8QGbJb7/+w6mqbEfiwoEsd2aqb+JvlBg/bi2B+Pq19VZNZVm9sWGTVxe8ntVDSgJ7qvmkAOAP6v3K/ELLkOKsyZiklFb/WA+v5ddNj892nHzFeU2CYvtdksACx9OF6JDX3vpDg25bNWSuzfZ9QGsqEh8nHdf/xDJfb8NPmuzsC/LyixyY/VF8dmnzilxLxC5a8Ds5NvNFXWctXm1xXN2sUE5hg7dix69OiB2rVrIysrC4sXL0Z8fDzWrVsHABgwYABCQ0MRG3u1ofHEiRNxzz33IDIyEunp6Xj//fdx6tQpPP/881cf22DAiBEjMHnyZNSvXx8RERF4++23ERISgt69e5f7uVkLJ2pERERkmUpYmSAlJQUDBgzA+fPn4e3tjebNm2PdunV48MEHAQCJiYlwcLjxReGlS5cwePBgJCUlwdfXF61bt8bmzZtN8tlGjx6NnJwcvPDCC0hPT0fHjh2xdu1apTFuZeJEjYiIiOzevHnzSv37+Ph4kz9Pnz4d06fLd2CvMxgMmDhxIiZOnFjew6swnKgRERGRZQwOgIMV0twNTJW/FU7UiIiIyCIGRwMMVvjq0xr7qOo4UbvGI8ADBteSp8M+E9PtgV6Cf0Uk89trgYCeokNqJ/SljcqfLN76v3uV2IRuagL4+vVyJ/Ua9fyUmJuvmzh2VaNGSqzIX16ZoLmbmsQsrY3wfc8nxe2XYLsYt0e9XwsX46s/OKnEfll2Ud7JMvVaeKC3sMwGgA2ry7nUhgWWdpO730v6nxysxJaEfy6OLe/7N3Du/8q1/aw3TorxR79V1/qY+8IZJfbkHLmR6vY+E5RYdm35n9OVr6iFOA//niqOddomv39vKd/2xQRkO5yoERERkWUcDFd/rLEfKhUnakRERGSZSqj6vFMxi4+IiIjITvGOGhEREVmkMhre3qk4UbvG1dcVDq5OlX0YdmfAy2qH9UWf6iRK30ECA+R4cqM4JdZv5z/EsUvbrFBiPfPeFccGvDtbiQ0tMr/bv7FI7fbfsY6POPb/zqoJzaEZJ8Wx3f4Vb9bjrw0YbtY4eyYVDejRex1/dHlTidmyaKD/OZ3XIaihElriMEQcKhUO3JM+VBzbdMq3Six+xANKrNncneL2Ti2kpQEOiGNf+fguJTZ9+N/i2A87NVNi3tmdlVjym1+I29ep66zEhj6mFuEAwITN55TY5UF/imPd3wpVYg7V5C++clJziv9bczTA/E8DK3F0uPpjjf1QqXiGiIiIiOwU76gRERGRZRxhpWKC8u+iquMdNSIiIiI7xTtqREREZBGDwUrFBAYWE9wKJ2rXuLo6wcGNxQQ3SzxZoMTibX8Ydic5xfyxBn95JQeJ+4o1Yvz0G/9WYgPX/aDEIlpLyddARtoVJbZ2u9qJHQAyendQYpML5Cc8flo7Jfavx9TVBmK+7SFuv7TLz2L8dicVDVjKkhUAJJFJ/1JiBf51xbHV/vpDifXb+pg4dnMt9XMy4oqaXA8A674+r8SOTlmsxsStAUAuBpAkPdVHia18SC5SuMvnbiUWPONjJZY/fZL8YFcylVCtrxaKQ7uE+yix/lfeF8cOGD1FiRUVqIVA6iCblxKwj5oN8atPIiIiIjvFO2pERERkGS4hZTOcqBEREZFFDI4GGKzwtaU19lHV8atPIiIiIjvFO2rXZF28DIMrT8fN4r9Xk2ZvN/Ui1NixE+Xb5z8XqUn0APDNk2oivSUJ4A7B6koQANBo3iIltupxNSE6etZv4vbuNd2VmKbJCcgRO9XO7846v/WePaKuUvHd388osY+zT4nbB4pR+5Szv4sYd2/6qxLrd/ApcWyN1ZuU2Lx/qqsCAMAet1wLjk51NkJI2r+ixgCg3+ZeSqxvWrI49rF7tiqxVDf5GK6oNSwW6X/mZSX21ql94lgt9bQSy0OhOPZgmlpkcPSvHCXm8NIb4va7JjysxGpWl4vRpt3XSYktcRsljvX9MFKJZZyRV65wdr9RwKHlFeKyOKoCOThc/bHGfqhUnJkQERGRZZijZjOcyhIRERHZKd5RIyIiIsvwq0+b4UTtmowzGYAzT0dVVN58NMl7kdXFuJphYhlD50fF+JGOaq6g35gPlJhPbR9xeynPJS8rXxzrU0N9bmkX5AyYnaPURrZLa8xXYoOeCxK3/0mMVox+v6l5RQCw9H61cbBEykXTkzh0pRiftUFN2nLu11Qc23H6L0rsv2YfAdBrl5on13pngjy4g9po+atJDcShLvlqY9hz+XLz5I0ecmNXc730914ldkjnWlx675dKrP/2x8WxhmC18e+va9TmvEVfPygf2JF0JXQmVc1xA4Anf1qvxL4dHCyOffp4mhLzCvUSx7r73XifGq8UMEetCuMZIiIiIrJTvIVEREREljFYqZiAa33eEidqREREZBl+9WkzPENEREREdop31HS88vFdYnz68L9tfCRkj6Z9f0SMf2bBPnoKCcWH09VGnAAQs0JtMlpwRW3m6ejsKG6vVzggSUvOVmIZZ+TGx4182yqxPw1qMYFmlJvr2pLz8i1iXE1BB+5uocb2/Cnvd/3/7lViDy07Jo7t9+EjSuw3J6M49r9T1OR2Syxt/LUSk9usAv/3fj0l1r9/N3mwo/rPRohzmDi0QX015rtjqBI7mSk/13nTf1dicctTxbFtCj5UYkudXhXH9pmnNmCOftxXiRV0lYt7vnFUG/GmnBsujr3/N/U5vPS40IUbgHP8cSXm6CS/p8/uLXHO8uXGvhWKd9RshhM1IiIisgwb3toMp7JEREREdop31IiIiMgyDgYrffXJO2q3wokaERERWYY5ajbDido1fvX84ODqVPzn48dzxXFq/+6qof8ZNTkWAJaEfaqOPa0mAwPAklqzzNqvtM/bzaXagWL88AU1AXuf/xfi2K0r1QTqbnPbiGNP9lGTtX1TFiixK5fUzvd6QlvK3dH93NSPhQSdYoJ1iWuVmLOzOq5Bc7m7evJJNVl7Sfjn4liv4+rKAj197hbHxjeepMS+/PSiOLZ/kpBw7q2upLDHTU7Ff7DbH0rsZ52bBNq8b+S/EIz9rIkSi33hgBJrmPy0uP1fgV8psf6n/i0/WJ25Sih3RLg41Pf1iUps/vvJ4thla9orsez125TYr3Fy8cWiOZeU2OMfyut/1F+hFk+kzpNXfRh8zLxCDaloAAB65r2rxGpMl9eNcHJzUmJns/LEsUX5RUqs4EqBOLZGPb/i/zbmFkA9U1RVcKJGRERElmExgc1wokZERESW4VefNsMzRERERGSnOFEjIiIiy1y/o2aNHzPNnj0bzZs3h5eXF7y8vBAVFYWff/5Zd/znn3+O++67D76+vvD19UV0dDS2b99uMuaZZ56BwWAw+enevXuZT0tF4Fef16QdSwOcb5yONUISa1VmSYK/VDSgZ0c1OYHbXP3zP5aPwVnuAm4rjkGeYlyvcEASFqrGDqRtV4MA6n+hxqVu/5nnssTtnd3VhOactMvi2Ixc87ucvywkgX/ipo5LfvEFcfvEgjNmP1Zm3R+U2BKoMUBe57n3GLkbfILjBSU2a7N6vjvpHNfiVe2U2LbjaeLYMZ1rKbFXIzvLO/Yer4T+MUtdMmF1RpLOkamWCEUDgLwSg2tWujhWKhxonDJAHDujj1o8UbeReoH41PYWt3+s4C01Jo4EtpxXizr6LNkrjnXxclFiISWS86/zGq2uOgEAXZcvV2I9WsjFORtOqv+WZKbLxWrSaiMFV+T3dM0G/jf+UM3291yuT2qssR9zhYWFYcqUKahfvz40TcPChQvRq1cv7NmzB02aqMU38fHx6N+/Pzp06ABXV1dMnToV3bp1w4EDBxAaeuMDuHv37vjiixuf3S4u6vVRmThRIyIiokqVmWlaWe7i4qJMmB55xHQJtnfffRezZ8/G1q1bxYnaokWLTP783//+FytXrkRcXBwGDLjxy4WLiwuCgtRKb3vBrz6JiIjIMgYrfe1puDoNqVWrFry9vYt/YmNjS334oqIiLF26FDk5OYiKijLrkC9fvoyCggL4+ZnePY2Pj0dAQAAaNGiAIUOG4OLF8n0TZG28o0ZERESWsXLV5+nTp+HldaPfot7XjwkJCYiKikJubi48PDywatUqNG7c2KyHGjNmDEJCQhAdHV0c6969Ox5//HFERETg2LFjeOONN9CjRw9s2bIFjo6O5Xhi1sOJGhEREVWq6wUCt9KgQQPs3bsXGRkZWLFiBQYOHIiNGzfecrI2ZcoULF26FPHx8XB1dS2O9+vXr/i/mzVrhubNm6NevXqIj49H165dy/6ErIgTtWt8I3xNViYA+zwDAO7PUru2/+b5odnbvxr/lxIbYsHjV3bRgJ6lj24s9z7qv9BciSU5+8iDHdWE27Ba6liPejXEzRPT1RULnJ3k3xYb+1dXYpv3y53nG/ipY2M2P6XEVp75Rdx+y3n1uFqLI2V9Pmslxo880VKJ/dl6vji2pYv6MTg9T03qPnuP/HHZ4ZMEJRbRwFUYCYS8elSJTdmhFoUAwICeasHKiqF/KrF/fKpeRwBQ7eggJZY7T75uCy4IK1o4yc/h/96vp8R2ufqKY//YKCTNC8UESa4e4vYnsg4qsYdWbhXH1vZWj3dsdB1x7H92pyixs0fUr7seaqQ+VwD4p/B+GDlFXu1g8YvquZGKe/T415ff0zmpOcX/rQnXa4WrpIa3zs7OiIy8ujpF69atsWPHDnz88ceYO1culAGADz74AFOmTMEvv/yC5s3l98t1devWhb+/P44ePcqJGhEREd2m7KThrdFoRF6evCQXAEybNg3vvvsu1q1bhzZt5CX6Sjpz5gwuXryI4GC5ircycKJGREREdm/s2LHo0aMHateujaysLCxevBjx8fFYt24dAGDAgAEIDQ0tLkSYOnUqxo0bh8WLFyM8PBxJSVdb2Xh4eMDDwwPZ2dmYMGECnnjiCQQFBeHYsWMYPXo0IiMjERMTU2nP82acqBEREZFlKuGrz5SUFAwYMADnz5+Ht7c3mjdvjnXr1uHBBx8EACQmJsKhxB262bNnIz8/H//4xz9M9jN+/Hi88847cHR0xL59+7Bw4UKkp6cjJCQE3bp1w6RJk+yql5pB0zQ5QeIOkZmZCW9vb1R7qT0MJXJVFkxPrcSjqjqSdz+gxAJbbaiEI7Gu6kd7iPHLkfpdsm/2j0K1ma+Tg7M4domDmtn3pJD74hkk5/pkJWWbfVySoGaBYjwpQc3VMX4wWon5zpgjbp+XpX5lkZIl5879MVr92iItfI04tlEDNdZijdyUNe/rzUps1WQ1l6y/cba4vfTajPxUOAAAly+qTYaTDUKHYADOb6v5mScy9ysxR4P8+3ZWfqYSu39uvDjWQWiYeulkujjW0Ukd26CV0L0ZwJuD9ikx6bpdpNNgXBpb9Kz6mQIANX7ZrcSc3ORcsLNC0noDo5pP92QTfyUGAJO/VJ9XQKOa4lj36uoxnNh1Thwr0esHW7Phjccz5hbgwph1yMjIMCshvzyu/5uZvnUsvDzkPEaL9pedC597Ym1y7Lcr9lEjIiIislP86pOIiIgsYyfFBHcCTtSIiIjIMpXUnuNOVOapbEZGBl544QVERkaiUaNGOH9e7iFDRERERGVT5jtqQ4cOxbFjxzBt2jQ89dRTuHLlasPEV155BfXq1cOwYcOsdpC24BnoCYNrydPBYgJrCKheNW9rW1I0oOffv36jxAY1DhHHBgvrBUe0VsdakqSsJ7KtnBgucfFUix+mHFqnxApz5Yaczu7q9vnvqI1aASDNbYIS658zVRy7xH2MEgsKk/sibRAKByQf7lFfLwD4P6Hh7FiXInkf/e5SYi5H5bGGlONKrFHsciXWql0tcfvjSVlKrHUDOeH917hjSszVW656C7tLTbA/uO20OPb3X+9TYi8LHwnBq38Xt5dMLJLXYVz5lNr8uOt7cuGSu1u6EgsQzk1ekfm1ds+3ka+vx+qFKbH7j6WJY6XaPgdH+TPUWGgU/9tm+NWnzZT5DP3888/4z3/+g8cff9xkPayYmBgsXLiwXAc1a9YshIeHw9XVFe3bt8f27dt1x3777bdo06YNfHx84O7ujpYtW+Krr74q1+MTERFRKay8KDvpK/MZ0jQNnp7qEif169fHkSNHynxAy5Ytw8iRIzF+/Hjs3r0bLVq0QExMDFJS1CU/AMDPzw9vvvkmtmzZgn379mHQoEEYNGhQcQM8IiIiottVmSdqPXr0wKJFi5R4Tk4ODHqNX8zw0UcfYfDgwRg0aBAaN26MOXPmoHr16pg/X16nr3PnznjsscfQqFEj1KtXD8OHD0fz5s2xadOmMh8DERERleJ6MYE1fqhUZc5Ri42NLV43S9M0GAwG5ObmYtKkSWjVSl4o+Vby8/Oxa9cujB07tjjm4OCA6OhobNmy5Zbba5qGX3/9FYcPH8bUqXLuSl5ensm6YJmZalNIIiIiKgVz1GymzBO12rVrY/PmzRg6dCguX76Mdu3aISsrC15eXvjpp5/KtM8LFy6gqKgIgYGmXdADAwPx119/6W6XkZGB0NBQ5OXlwdHREf/5z3+Kl5S4WWxsLCZMUJOS8y/nw1BUCQmZlaDnYDXp9cfPK6ZqN7i6txJLqpBHuv3Mi2yoxIKW/yaOPTkwQoldPK8mi1vD0R1nlZjeygR5WflKrGd4HSX2obecbH5RSKpu/NkScey+Pn5KrOk36l19AHhTiG3wkH95e212IyV29tkXlNhbO1eL27f3Vu8IdKypXvcAYGgYp8TW+YhDcW+/v5VYIdTCg/0H1NUhAKCaq/rxLhUN6PEMUlNbAOCc8Jpte0deqWP8ZjUNxllIjm9xQv1MBgDnt2YpsQkL1VUBAHlVjnVjO4ljn159UImdT1A/meYLK2foGdbiHjE+88+tSuxKuroKAgB4hcjnXJJxJqP4v7U8uViHqoZy9VGLjIzEunXrkJiYiD///BNOTk5o3749fH3VZT8qkqenJ/bu3Yvs7GzExcVh5MiRqFu3Ljp37qyMHTt2LEaOHFn858zMTNSqJVdNERERkcBgpUIAFhPcklUa3tauXRu1a9cu9378/f3h6OiI5GTT3xCTk5MRFCT0J7jGwcEBkZGRAICWLVvi0KFDiI2NFSdqLi4udrXYKhER0W2HE7VSpaWlwcfHx2SR+LKyqzPk7OyM1q1bIy7uxtcDRqMRcXFxiIqKMns/RqPRJA+NiIiIqCIdPHgQU6ZMQYcOHVCzZk0EBARgwIABWLlyJXJycsq8X7uaqAHAyJEj8fnnn2PhwoU4dOgQhgwZgpycHAwadLUJ5oABA0yKDWJjY7F+/XocP34chw4dwocffoivvvoKTz31VGU9BSIioqrNGj3UrFWQUIkOHz6MV199FfXr18c999yDHTt24MUXX0RycjJ++ukn1KlTBxMnToS/vz969OiB2bNnW/wYdrfWZ9++fZGamopx48YhKSkJLVu2xNq1a4sLDBITE01uJebk5OCll17CmTNn4ObmhoYNG+Lrr79G3759LXrcnNQcwNnuTkeFqKjCAcnBtEtKTE0Jr9r6G+U35rO/fK3ENKPcCd21k1pMkPndHrOPwc3HVYnpJTTXqKe+Qo0D1ERtAEiCmsjeZYHaGkcqGgCA6n5uSqxVLTkRP265mlz/5nJ5v5KPvm4pxs+0UVcWWOLyihL7+rMm4vaJu9XVIEbNUa97PZfS5bjrTHV1Bdc3Y5WYVDQAADWC1cT0zHNyAUrj9mqe7pF98ufEZ4PV85Wed1kcu/OEeh5SXnlViX1xaIW4vVTQoHctudd0V2KXC+RvVlIOqSvPSKts6D2W5JHVcu/OHdFdldjq9vL1Ia3w4OAot68wllw1Ib8SigkMBit99Xl7t+fYvHkzcnJy8Mknn6Br165wdr5xHfn7+6Ndu3aYNGkSTp48iTVr1uDbb7/FkCFDLHqMMs9MBg4ciOeeew73339/WXeha9iwYbpLUMXHx5v8efLkyZg8ebLVj4GIiIioNIMGDUKvXr3g51f6LYjw8HAMHz4cw4cPt/gxyrUoe3R0NOrXr4/33nsPZ8+qJf1ERERUBV0vJrDGz20uKioKJ06cqLD9l/kMrV69GmfPnsWQIUOwbNkyhIeHo0ePHlixYgUKCgqseYxERERkTzhRK/bAAw/gnnvuKXVd8vIo1xmqWbMmRo4ciT///BPbtm1DZGQknn76aYSEhOCVV14p15qfRERERPZuzpw5GDFiBLp27Yo1a9ZYff9WyZ4/f/481q9fj/Xr18PR0REPPfQQEhIS0LhxY0ybNg2vvKIm5tKdoa63moTe47x8PSwJnl7Rh1MpljjIiaPzr7yvxPa0kLuuI8NRCdWod0qJ6SU/O1Qz/3cyaR97LFi149JJNVHa1VvuXXg57YoS26HzHJ4WYv32ykVDI9LVBP+jmxLFsbWzdyqxacK4E3XDxO2r7VEfK6qTWrwBAJ9MbKfElh+6II79/Tc1wd7RSb0OspOzxe2lwgG9FSZOHlGPIbhRgDj2rd/UIoOze3eLY5eNbKPE7l32mRL73xP9xO0H9T2pxBzeWyqOTTuuXjdD5Px+BDZRn1t6YroS8whQCxQAwNldLTz4+qHW4tjfL6vX3YnDajEDADRop15j2fnqahQAcDn9xntHyy1EujiqAnEJKRNjx45F7dq10b9/f0ydOhUvv/yy1fZd5olaQUEBvvvuO3zxxRf43//+h+bNm2PEiBH417/+BS8vLwDAqlWr8Oyzz3KiRkREVJWw4a3iySefhJ+fHx599FGsWLEC7du3R+vWrdGqVSvUr1+/zPst80QtODgYRqMR/fv3x/bt29GyZUtlzAMPPAAfH58yHxwRERGRvUtPT8fMmTMxc+ZM1KxZE2FhYfj5558xffp0FBUVwdPTExkZGbfekaDME7Xp06ejT58+cHWVb/EDgI+PT4VWQhAREVEl4B21YiNGjMD8+fPh6+uLt99+G88//3zxUpVXrlzB3r17sWeP+X0vb1bmiVqnTp3ENTM1TcPp06etsvanLdVtFQIHN6cbAQsaVpK+HmHdlNgSJ+t9d29v/rlIzUHKeLyHOPbFzd8psScbyGvaGup1VmKB/mpekF6OmkegmiuYmyE3vJUaqD7cMlgc+4u3+otafna+ErtySc1F0+Nfo7oYT979gBKL95MrzOP/VH9z/eX5juLYZov/VGIrhXFLo+WEp3e2dVZiAV8fE8e27fSbEptSKOdmeo+dosRef7yhEvvwZ/mxpObJmWczxbFSrmCiEAOAyLahSuyZxxuLY/+Rpl53I9LPKLGXfpUTsGt5Oikx7zAvcezli2rT3aQEtSEzAHTpWk+J/XogRYlJOYEAkJ+jXuMd58WLY/8c8rgSK8yTxyb+reYKFlyRr/HCvBK5a5XS8JYTteu+//57fPTRRxg4cCCcnEyvWTc3N0RFRVm0DObNyjxRi4iIwPnz5xEQYJqUmZaWhoiICBQVyQmQRERERFXF33//DUdHeVJvDWWeymqaBoOw9EN2dnapX4cSERHR7c5aPdRu7ztqSUlJKCw0/47m8ePHLX4Mi++ojRw5EgBgMBjw9ttvo3r1G19TFBUVYdu2bWJhAREREVURbM8BAFixYgXGjBmDbt264dFHH8XDDz+MmjVrmozZtm0b1qxZgzVr1iAxMRFZWfKau3osnqhdT4jTNA0JCQkmC5A6OzujRYsWeO211yzdLREREdFtZdiwYejevTu+++47LFiwAC+++CLatm2Lhx56CCdOnMAPP/wAAOjZsyemTJmCBx980OLHMGiapmacmmHQoEH4+OOPi3um3a4yMzPh7e0N5/+LgsHlxrx1/vtyEqotpe5Rk6dr3r2hEo6k7N7/soUSGzVATd6uKqQ0heEzGohjZ3YPV2Kf7bsojq3tpaYTLPzhLyVWI7KGuH1eVp4SCw/zFsdeKVSb29bWaVj7xy612atvbR8lduGY/Lyc3NRkcc9gT3Hsmg8OKbEjch49jgoJ/t8dSRfHpl5Wk7V/XfC3EpsZKycD70tRk9if66M20QWAQ5s7KbHPdyWJY6sJiex5QhK7JVyERq0AUCQ0NJaKEQAg5aCadN//0Ubi2K9btFViDhO/LO0QTex45yEl1vadn8Sx1f3clJhUJAHIDW+LhMayUtEAAOSk5igxN1/18fXG+t/lL45NPawWE+gVTxTm3vi6TcsrxOX3f0dGRkaF/5t8/d/MjMT/wstLLvyxbH+X4V37eZscuy1cvHgRP/zwA3766SeEh4ejV69eiIqKElPFzFXmYoIvvviizA9KREREtzFWfYpq1KiBgQMHYuDAgVbbp0UTtZEjR2LSpElwd3cvzlXT89FHH5XrwIiIiIjudBZN1Pbs2YOCgoLi/yYiIqI7EO+o2YxFE7UNGzaI/01ERER3EE7UbKbMOWqxsbEIDAzEs88+axKfP38+UlNTMWbMmHIfnC25eLjAIHRkN8eClW3E+DNPyAnF5uoZoXYh347ba4K8/NEOSmw7qm4xQdSlV5TY4vRT4tieszYrsbFC53kAeLphMyW2fEuiEksWuqvrOSIk0QNAzgU1Ob5bv6bi2F3CygQSjwC1Q72emQ/WEeOnhfg/wuVVHxyED/92gb+IYx+aqq4WsG2zem4a+sqfD2v+VhPW/+99tfM9AGStVAsiHKrJ/1AtGXy3Envh+6NK7NJJeRUVk871t+Dmo76OV9LllSu+H32vEnvy633iWJ8d6ioE7v5qAvruV9WiAQBoMHaFEqvZQE7El86jXjHB8X8/r8TCPvqPEtNbUcOvrp9Zjw8AhXlqj63IIPn9kHZcXVkk44y8moRHgHuJBy97ojrZvzJPZefOnYuGDdV/VJo0aYI5c+aU66CIiIjIjl3vo2aNHzPNnj0bzZs3h5eXF7y8vBAVFYWff/651G2WL1+Ohg0bwtXVFc2aNcNPP5lWDWuahnHjxiE4OBhubm6Ijo7GkSNHynRKKkqZJ2pJSUkIDlbX/6tZsybOnz9froMiIiIiO2aNVQks/Po0LCwMU6ZMwa5du7Bz50506dIFvXr1woEDB8TxmzdvRv/+/fHcc89hz5496N27N3r37o39+/cXj5k2bRo++eQTzJkzB9u2bYO7uztiYmKQmyvfUTbHhQsXcOGC2mqlrMo8UatVqxb++OMPJf7HH38gJCSkXAdFREREVNIjjzyChx56CPXr18ddd92Fd999Fx4eHti6das4/uOPP0b37t0xatQoNGrUCJMmTUKrVq0wc+ZMAFfvps2YMQNvvfUWevXqhebNm+PLL7/EuXPnsHr1aouOLT09HUOHDoW/vz8CAwMRGBgIf39/DBs2DOnp6eV63mXOURs8eDBGjBiBgoICdOnSBQAQFxeH0aNH49VXXy3XQREREZEds3IxQWamaS6ei4sLXFzkRtvA1SUrly9fjpycHERFyc2ot2zZorQSi4mJKZ6EnThxAklJSYiOji7+e29vb7Rv3x5btmxBv379zHoKaWlpiIqKwtmzZ/Hkk0+iUaOrDaAPHjyIBQsWIC4uDps3b4avr69Z+7tZmSdqo0aNwsWLF/HSSy8hP/9q92ZXV1eMGTMGY8eOLetuK01WUhbgfON0PPF+E3HcylHqLdbyFg3oWfa3mngcUSGPVHESMyt/hQdbCqxeW4n1+zFeHPvJ042VWHa+3A0+K19NKJa6+ktJ4YCcGO7sIXepd3RWO+J/unS/MBLw1EmKVo5Lp+jg7F41TSI3cq04duSn6goPDf8lF6bsu6AWWozZKKdk1GsTqsTe/1J9HXelqOcbAF4UVmd45nH1tQWAn4WCpZFRagoJAPRyUo+h14tdlFithXLz8cICtZhAr9hEr3BAEu5VU4llnjN/7cIG7cKU2MazOktMCDLOZIjx/By1AMQk4b6Eep/PU2KuwjV66WS6uL20aoO0AgEAVHNRX/O4fzwljq19brYSyzwnFxNkp5R4vHzzFwW3GitP1GrVqmUSHj9+PN555x1leEJCAqKiopCbmwsPDw+sWrUKjRvL77ekpCQEBgaaxAIDA5GUlFT899djemPMMXHiRDg7O+PYsWPKviZOnIhu3bph4sSJmD59utn7LKnMEzWDwYCpU6fi7bffxqFDh+Dm5ob69euXOgMmIiIiutnp06dNlpDSm0s0aNAAe/fuRUZGBlasWIGBAwdi48aNupM1W1i9ejXmzp2rTNIAICgoCNOmTcOLL75o+4nadR4eHmjbVl3PjYiIiKooCys2S90PUFzJeSvOzs6IjIwEALRu3Ro7duzAxx9/jLlz5ypjg4KCkJxs+q1OcnIygoKCiv/+eqxkcWRycjJatmxp9lM4f/48mjSRv4UDgKZNm1p0h+5mXEKKiIiILGMwWOmrz/L1gDMajcjLyxP/LioqCnFxcRgxYkRxbP369cU5bREREQgKCkJcXFzxxCwzMxPbtm3DkCFDzD4Gf39/nDx5EmFh6tf6wNVcOD8/tfeeuSpkCanyrBJPREREdLOxY8eiR48eqF27NrKysrB48WLEx8dj3bp1AIABAwYgNDQUsbGxAIDhw4ejU6dO+PDDD9GzZ08sXboUO3fuxGeffQbg6lxlxIgRmDx5MurXr4+IiAi8/fbbCAkJQe/evc0+rpiYGLz55ptYv349nJ1Nc3/z8vLw9ttvo3v37mV+3lxCSodjoNo929b+b4HadO/7SjiO8mhZs4USW4tvK+FITPX7+xkltvSuBeXe7+Ttq5XY1z3U1RkAoM2cn5RY16ZqjgMAxG5UVzHITslWYnlZ+eL2gU0ClFjmWTlJ2am6mjT/2EN3iWPXblaT9gtz1cTmtBNy93yJXlf/i0Ii/Ee7/xbHPtUwSImlHJMLInIz1N/Ga7dSWwxdWrBb3D74XvWxNp5KF8dKne6b1vAUxwatVj9jDQ7xSkwvid0k2fwWvMPUr5w+fSJSHPvFQTXx3zfcRxzr4qnmGR3erq5W8IIQA+Rilawk9boH5BULpE7/ALBskLrqQ7+Fe8Wxkrws9ZqR3jcAkCsUasxJ+EEcK+1DKpIAAAfHGzdENEcD5DKkClQJS0ilpKRgwIABOH/+PLy9vdG8eXOsW7cODz74IAAgMTERDiW+ju3QoQMWL16Mt956C2+88Qbq16+P1atXo2nTGyutjB49Gjk5OXjhhReQnp6Ojh07Yu3atXB1NW/VFeBqwUCbNm1Qv359DB06FA0bNoSmaTh06BD+85//IC8vD1999ZXZ+7tZmXLUCgoK0L17d8yZMwf169cv84MTERHRbagSJmrz5qnVuiXFx8crsT59+qBPnz76D28wYOLEiZg4caLZx3GzsLAwbNmyBS+99BLGjh0LTdOK9/3ggw9i5syZSlWrJco0UXNycsK+ffLabkRERER3koiICPz888+4dOlS8RJUkZGR5cpNu67M0+GnnnrqlrNbIiIiqoIqYQmp24Gvry/atWuHdu3aWWWSBpSjPUdhYSHmz5+PX375Ba1bt4a7u2ljQVZ9EhERVU2a4eqPNfZzu3NwcLhlEaXBYEBhYdkaE5d5orZ//360atUKAPD336YJvbdj1WfdViFwKNHpPfnxzvLAATtsc0AAvv/PWZs9VkXxLZK735vryRflJTcWzVGT0/v9NUAcu7Thl0qs2R9qYnjarIbi9h8O/UuJte8gJw7/mKEm/rb4aI041uCgvk/OCknKANC9kdoN/mBNtev630cvits7VFN/a/Wu5S2OTUpQV5P4OUcuUnD3V4/BXejwnrhb7d4PAI/2UIsUvvtZLhCQzFspL8a8yPuoEpOKBgBg3sutlNiao2rC+iM95Ws5UyhyKPB1E8f6BKmFA90vyWPzhXO+/Ck1Cf7B9+LF7V081ePVKzaRChKGLFKvewC4Wyh4KbgsJ7zrdfY3V8EVdb/+9WuIY52FlTqKCozi2Gk71OvRI1AtXJDeo4C8MkFRvroSBAAYi9Rj+OuS/A92XqZ6jfpFyJ+B1UqscmHMLYD1lgAnS61atUr377Zs2YJPPvkERqN8LZqjzBO1hQsXIiwszKTCAri6yOnp06fLfEBERERk3zTNCE0r++Sj5H5ud7169VJihw8fxuuvv47vv/8eTz75ZLmKFcr85XBERAQuXFDn8GlpaYiIuN1WpCQiIiJzGTWj1X6qknPnzmHw4MFo1qwZCgsLsXfvXixcuBB16tQp8z7LPFG7Xn56s+zsbIv6jxARERHdzjIyMjBmzBhERkbiwIEDiIuLw/fff2/Ss62sLP7q8/rSUQaDAePGjUP16jcawxYVFWHbtm0WrZFlL47vPgc43zgdvn+vqMSjqTriI8eWa3spF02PlIumJ+HuRkrs1HA5l2yLEDv7TW9x7PIP45WYlM8CAJ7Bar5SK6HBJwA8JDQU/VTIC7pSR85nSbus5ibpNQOV6OV3SQ1NpXw0V295geXVDzysxN4LjhPHjv8qQYnp5SB1bq/2LNp9OkMce5ePmvM0/G41fy/MU86NanN4rXBccr6So5DydKGB3IvymSx1bcC5+84rMTcf+RdjKb/Lp7acl+jo5KjEUhrJfZ8izqUqMb3muh4Bag6jlAuWofPaXBGaxepdi05u5v9z9lEndQHv+z5WrztXId8SkBsXS+9nAAir5aPENiXKz1fKS9Q7tyVz17Rc+XqrSBqM0GCFrz6tsI/KNm3aNEydOhVBQUFYsmSJ+FVoeVg8Ubu+dJSmaUhISDBZLsHZ2RktWrTAa6+9Zr0jJCIiIrti1DSrfG1p1Pl27nby+uuvw83NDZGRkVi4cCEWLlwojvv227KtymPxRO360lGDBg3Cxx9/bNZq90RERERV0YABAyq020WZqz6/+OILax4HERER3Sb41ecNCxYsqND9l3miBgBxcXGIi4tDSkqK0iNk/vz55TowIiIisk/WqtisalWfFaHME7UJEyYUrxgfHBx8Wza5Lcm3ji8MJRoIuraXm59i6gkbHZH9eqC3nJC8YbWaIHtezYeuMK3SnhPju/3Upc5yG7dRYlt/WyZuf290dSUWPvkXs4+rU5e6Ynzjr8eVWEHbMHHs4UtqA9bfhaR9p+pyI14pWbtmQ7WJLgC0CFPTGXYekRvpSsUE3gFqsnhNneMat189j3O2yI2e3YUGv1JSNwCs/Z/a8FZKbAeAe/3aKjGHV95TYnqNR7OS1NdGj1RY4v/HdnHssmNq0v7ZR6KVmMMPh8XtazbwV2Kph+W2qO3uC1dihof6imMvTVTPjfRYgPx884Smzo7OajEDAES0DlFip/aqBRUAENBAvZ6TD6nNiAFg/sGTSkxqCp2VlCVuX0do+psuFD4AwBGhAESPT20fJSYVXwA3NabOL1vHe7KOK1euIC4uDg8/fLU4auzYscjLu3GdOzo6YtKkSWXuiFHmidqcOXOwYMECPP3002XdBREREd2G2PD2hoULF+LHH38snqjNnDkTTZo0gZvb1VVH/vrrL4SEhOCVV14p0/7L3EctPz8fHTp0KOvmREREdJsyWvF/t7tFixbhhRdeMIktXrwYGzZswIYNG/D+++/jm2++KfP+yzxRe/7557F48eIyPzARERHR7e7o0aNo1qxZ8Z9dXV1Nltds164dDh48WOb9l/mrz9zcXHz22Wf45Zdf0Lx5czg5meagfPTRR2U+KCIiIrJf/OrzhvT0dJOctNRU0/xSo9Fo8veWKvNEbd++fcUrEOzfv9/k727HwoJLpy6ZrExg6BtaiUdj3wKfaS7/xerfy7Xfp4f6KbGvZsnd80fPUTuLTxOKBvSsdh6lxNpe+rc4dtLOA0rM4/eT4lipi/ih83JCsuTL/x0R413vqa3EAur4KLFMnYRmqcN6yiE1WR0A1gvxjp3l9XvTrqhJzId3q8UAl8PlRHxjhFqYInVnB+TE9ALh8QHAK0TtEq+XsH7Pt+o3A8kfvqTE3ti8Udx+mQXd5NOljvTddYoUNh1SYvf+vkmJ6X3cSoUDLp7Owkhg5+ZTSszh9zfkHQsCa8kFRieExH83XzclprcCwMP11c+Eb4vkBqkph9XrVnosAMjMUzv5V6+hFg0V5csd/4uEa/GCTsFNjXrqcwjRKWw5cUz9vNO7ljxLrGKi5RbC/JIW62DV5w1hYWHYv38/GjRoIP79vn37EBYmF4qZo8wTteuNb4mIiIjuVA899BDGjRuHnj17KpWdV65cwYQJE9CzZ88y779cfdSIiIjozsOGtze88cYb+Oabb9CgQQMMGzYMd911FwDg8OHDmDlzJgoLC/HGG+bfob5ZuSZqv//+O+bOnYtjx45hxYoVCA0NxVdffYWIiAh07NixPLsmIiIiO6VZ6avPqpCjFhgYiM2bN2PIkCF4/fXXoV1bv9RgMODBBx/Ef/7zHwQGqr33zFXmqs+VK1ciJiYGbm5u2LNnT3GiXEZGBt57T22ISERERFQVRUREYO3atUhNTcXWrVuxdetWpKamYu3atahbV256bq4y31GbPHky5syZgwEDBmDp0qXF8XvvvReTJ08u10FVBoOjAQbHG1m5bTftEMeNtNUB2bGlvctXNPDrevlu61cPqonSenKF7ubl1XbWWjGecSZTieklZUe2VYtQju6QO+2HtgxWYuf+lLuY/7rttBKrfZfaDf6ikIwMAEHN1N/mrugUHgQ2CVBim+LLtyJHyktyoca9q9VE/jcfkj/UPtmpdpmXCgwAIPOc+QUcHvVqKLHe3/2kxIb13yNu/930+kpMLwG8up+a3H6pUSNxbPZn65XYpmdilFhNqUAB8qoNBge58sCzrvnFF1KCvbOD/Du/tHKFtDKBtCoAALzYTD23X/wqX4vSc9NbNSJBeH3SE9OVmFRgAAD5QkGDk5v8z6m/sI/UbLlgZtXz6ioZD74XL46tbFe/+pSLLSzdT1Xi5+eHdu3aWXWfZb6jdvjwYdx///1K3NvbG+np6eU5JiIiIrJj16s+rfFzu3vooYeQkXHjF6YpU6aYzIMuXryIxo3VTgXmKvNELSgoCEePquvpbdq0qdy3+YiIiIhuB+vWrTPpk/bee+8hLe3GtxuFhYU4fFhek9ccZZ6oDR48GMOHD8e2bdtgMBhw7tw5LFq0CK+99hqGDBlS5gMiIiIi+3a94a01fm5314sH9P5cXmXOUXv99ddhNBrRtWtXXL58Gffffz9cXFzw2muv4eWXX7bmMRIREZEdsdY6nVVhrc+KVuaJmsFgwJtvvolRo0bh6NGjyM7ORuPGjeHh4XHrje2QVqRBK5Egevri5Uo8GvuRf7CrEnNuHCeOdReabecIOdVdLCga0PPJqGPl2n7i/GZKrGewmlANAIuFYgJfnU77UuGAu7+ckHxW6NruFyHvN+3EJSXWMlB9ryWFeYnbXxauZ2+dsckH1KR9ve73AY3VwoOUg+r24V8tELfPyVALGuboJFpnpaiJ4YV58soEwS2CzDouADgrJLe/d79aFBKW9C9x+9R3flZieonlucLzLTLKz0F6fT66dFyJ1awpd7l3E67n4yfV6wiQE/z9Q+Xr45IwtnWw/Ll/5nS6EpMKQOoIq2wAQCOD+jroFWpI9Ip+zgmFFu7CedRbmaBAuO6kwgkAuFKoTkRCdVZi2J2ivj5679Oc1BvnQdN5H5BtGAwGZUUma67QVOaJWmxsLAIDA/Hss8+aJMnNnz8fqampGDNmjFUOkIiIiOwL1/q8QdM0PPPMM3BxuTpZz83NxYsvvgj3a3cvyrPOJ1COidrcuXOxeLFaWt+kSRP069ePEzUiIqIqimt93jBgwACTO2hPPfWUOKasyjxRS0pKQnCw2geqZs2aOH9e7gVFREREVJUsWLCgQvdf5olarVq18McffyAiIsIk/scffyAkJKTcB1bZ9Bow3mkGJKrfs+dPlRt0fjvmkBLrt6+/EstbsVPcftXEI2Yf19D3wpXYov5q3hkApEd8r8QONo5UYg0OyI/vG+6jxDJOy01GG7QLU2LnhEaaAOBT21uJOXvIOTV9H2moxLxd1bevXp6MmBulk38j5cnp5UEVCdVNyULB0z8aqk1lAWDLWbUx7dksOUetrpAXeDpZbmgqvT5BTeQlXDKF/B5XRycl9ujyXeL2koIr5ucMLTq8WYxLuVxns9XX7PwZ+Vq0pOlvwayJSqzFl5+LY9OFxrIN/OTr1lXIxcoWXrMz5+VjPWpQ8wrdfOT8LoleU+fCXPX1cXZXn0N2tnx9Sa+Nm6/azBgACorUO0aplwvEsW8tOqDE6jSVr9v8ErmcmoPBCq1nLcO1Pm949tlnbznGYDBg3rx5Zdp/mSdqgwcPxogRI1BQUIAuXboAAOLi4jB69Gi8+uqrZd0tERER2Tl+9XnDggULUKdOHdx9991Wb80BlGOiNmrUKFy8eBEvvfQS8vOvzuxdXV0xZswYjB071moHSERERGSvhgwZgiVLluDEiRMYNGgQnnrqKfj5+Vlt/2X+fs9gMGDq1KnFC5D++eefSEtLw7hx46x2cERERGR/rn/1aY2f292sWbNw/vx5jB49Gt9//z1q1aqFf/7zn1i3bp1V7rCVOxHLw8MDbdu2RdOmTYtLU4mIiKjqMmqaldb6NH8iExsbi7Zt28LT0xMBAQHo3bv3LZdm6ty5c3Gfs5I/PXv2LB7zzDPPKH/fvXt3i86Hi4sL+vfvj/Xr1+PgwYNo0qQJXnrpJYSHh+vmOprLKn3USqoqfdSkBpB3Iq3bY2pwxydmb7+0+RIl1t84Wx48UV16rN+mR8Sh976jNt2t/exd4thLA9SmrDU3/qnEPh2jNhMFgIBE9Rw8+F68ODY5SU2K1ksy9vcSEq0L5JTgfCEhuX2Qmvz82fJUcXtJaEu1ahsALknFDzrFBM4O6u967z3XQt1nrvxbc8Ih9XhbCk10AWDHLqmZsHxcl9PUhqZeOg1ckxKSldgAoenunN5qAQoA9BEaBAc0qimOda+uFinEn5aba0sJ62v+vqjELCka0LPp3EYldqVQvhal49pyVn4OUlGWh9CouYbO9RWzQm2OrVcgIDU5vpKeJI6V7nLk56iveVhd+euro3vOKTG968vR2VE9rly5YMYrRN2H1EQbADyDbpxH62dF2aeNGzdi6NChaNu2LQoLC/HGG2+gW7duOHjwYHHPspt9++23xelZwNUF0lu0aIE+ffqYjOvevTu++OKL4j+X58aTg4MDDAYDNE1DUVH5yzzKfEdt7ty5aNhQrURr0qQJ5syZU66DmjVrFsLDw+Hq6or27dtj+/btumM///xz3HffffD19YWvry+io6NLHU9ERETlUxlrfa5duxbPPPMMmjRpghYtWmDBggVITEzErl36Fdl+fn4ICgoq/lm/fj2qV6+uTNRcXFxMxvn6yqvE6MnLy8OSJUvw4IMP4q677kJCQgJmzpyJxMTEcq/YVOaJWkX1UVu2bBlGjhyJ8ePHY/fu3WjRogViYmKQkiIv/xIfH4/+/ftjw4YN2LJlC2rVqoVu3brh7Fn5txAiIiIqH614tc/y/e96jlpmZqbJjznd/DMyrramsSRxf968eejXr59yBy4+Ph4BAQFo0KABhgwZgosX1bvXel566SUEBwdjypQpePjhh3H69GksX74cDz30EByEbx0sZXd91D766CMMHjwYgwYNAgDMmTMHP/74I+bPn4/XX39dGb9o0SKTP//3v//FypUrERcXV65OwERERGQbtWrVMvnz+PHj8c477+iONxqNGDFiBO699140bdrUrMfYvn079u/fr/Qz6969Ox5//HFERETg2LFjeOONN9CjRw9s2bIFjo7qV9c3mzNnDmrXro26deti48aN2LhRTSUArn4NWxZ21UctPz8fu3btMmnv4eDggOjoaGzZssWsfVy+fBkFBQW6M+y8vDyTmXpmprrgNhEREemz9lqfp0+fhpfXjRy9W+WIDR06FPv378emTWoeo5558+ahWbNmaNeunUm8X79+xf/drFkzNG/eHPXq1UN8fDy6du16y/3evISUtVVIHzXpzpc5Lly4gKKiIgQGmnZiDgwMxF9//WXWPsaMGYOQkBBER0eLfx8bG4sJEyYocRcvFxhcbpyOK5fUZOSqrIXc1B/LHIYqsfBz/YSRQPMhHZTYo6uEfEEHtWgAADr19FRix5rId2cDItSu/kuCPhTHDn5D3cclD/WxVohbA5O3Jur8japA6DgudTwHADcn9Za4n5v8lvRzU5PQfVzUmCXO7jU/RUFagQCQixz83dTn9WH8aXH7ds3UBPADQkEGAPgJid1671PvMDUpO18oENAbm3MhR32sQnm1ASfhNUsRiiQAoLqfWliSflFOxJe6+ksrPMw4KKeFWLI6wn7ha57awuMDQOI+NUH/oE4xgFR4IK2ecUFnhYkno2opsVm71ER+ALgsnEe9VQyk96SPEJOKgwDAO0z9/NHjV11Y8cBJp2hIKCYKbCIX1ySXLGLJN/+1tparVZ/lL2O4vg8vLy+TiVpphg0bhh9++AG//fYbwsLU1WAkOTk5WLp0KSZOVFfhuFndunXh7++Po0ePmjVRq+glpCqkj1pFzixLM2XKFCxduhSrVq2Cq6v8Bh07diwyMjKKf06flv8BISIiIvuhaRqGDRuGVatW4ddff1VSr0qzfPly5OXliQum3+zMmTO4ePGimIdfGcp8Rw0Afv/9d8ydOxfHjx/H8uXL4eLigq+++goRERHo2LGjxfvz9/eHo6MjkpNNy+WTk5MRFKT+5l3SBx98gClTpuCXX35B8+bNdce5uLiw3xsREVE5VMYSUkOHDsXixYuxZs0aeHp6Iinp6t1db29vuLldvVs9YMAAhIaGIjY21mTbefPmoXfv3qhRw/SudHZ2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aWlpyrE4Ozvjjz/+wJw5c8R9lfbYNWvWxPz58/HOO+9g586dyMrKwtNPP41hw4aha9euFr8uEk3ToGka5s6di4MHD2LBggVYuXIl/vvf/5pzuomIbk0jIpvatWuXBkA7efKk8ne5ubla9erVtc2bN5vEn3vuOa1///6apmlap06dtI4dOxb/XWFhoebu7q49/fTTxbHz589rALQtW7YUxzp16qQNHz5c97jKut+bpaamagC0hIQETdM0beDAgVqvXr00TdO07OxszcnJSVu0aFHx+Pz8fC0kJESbNm2aybHcfffduo9h7mNrmqa99NJL2l133aX961//0po1a6bl5uYqz3v48OGlvi6W6N+/f6nnmYjIEryjRmRjLVq0QNeuXdGsWTP06dMHn3/+OS5dugQAOHr0KC5fvowHH3wQHh4exT9ffvmlydeJzZs3L/5vR0dH1KhRA82aNSuOBQYGAgBSUlLEY1i0aJHJ/n///fcy7/fIkSPo378/6tatCy8vL4SHhwMAEhMTlcc9duwYCgoKcO+99xbHnJyc0K5dOxw6dMhkbOvWrcVjL8mcx/7ggw9QWFiI5cuXY9GiRXBxcRH3VdrroufUqVMYOnQomjZtCl9fX3h4eOCbb75BWFjYLY+diMgc1Sr7AIjuNI6Ojli/fj02b96M//3vf/j000/x5ptvYtu2bcjOzgYA/PjjjwgNDTXZruQEw8nJyeTvDAaDScxgMACA7tePjz76KNq3b1/85+uPVZb9PvLII6hTpw4+//xzhISEwGg0omnTpsjPz7/FmSidu7v7LceY89jHjh3DuXPnYDQacfLkSZOJZ0mlvS4RERHK+NTUVLRt2xZdunTBRx99hNDQUBQVFaFNmzZo0aJF2Z84EVEJnKgRVQKDwYB7770X9957L8aNG4c6depg1apVGDx4MFxcXJCYmIhOnTpV2ON7enpapR3FxYsXcfjwYXz++ee47777AACbNm3SHV+vXr3ivLM6deoAAAoKCrBjxw6Le5mZ89j5+fl46qmn0LdvXzRo0ADPP/88EhISEBAQIO5T73UZOXKkMvb7779HUVERlixZUjyBnTlzJgoKCtCyZUuLngsRkR5O1IhsbNu2bYiLi0O3bt0QEBCAbdu2ITU1FY0aNYKnpydee+01vPLKKzAajejYsSMyMjLwxx9/wMvLCwMHDqzswzfh6+uLGjVq4LPPPkNwcDASExPx+uuv6453d3fHkCFDMGrUKPj5+aF27dqYNm0aLl++jOeee87qj/3mm28iIyMDn3zyCTw8PPDTTz/h2WefxQ8//KDsr7TXRVKjRg1kZmbiu+++Q+PGjfH9998jNjYWoaGhqFmzpkXPhYhIDydqRDbm5eWF3377DTNmzEBmZibq1KmDD/+/nTtEUSCKAzD+ockiGjyDYQRB5gBWw1RBcJJFiwewGrQIYvEATvAKJm1eQIyCZ7CKmHeX3WVhZZ7w/fqb+Q9TPt7wZrGg0+kAMJ1OqdVqzGYzLpcLlUqFVqvFZDLJefKvCoUC2+2W8XhMo9GgXq+zWq1ot9vfrpnP5zweD9I05Xa7Eccxu92OarX6r/c+HA4sl0v2+z3lchmAzWZDs9lkvV4zGo0+XO+39/JZkiQMBgPSNKVUKtHv9+l2u1yv1z89hyT9xB/eSnqpXq9HsVgky7K8R5Gkt+OpT0kvcb/fOZ/PHI9HoijKexxJekuGmqSXOJ1OxHFMFEUMh8O8x5Gkt+SnT0mSpEC5oyZJkhQoQ02SJClQhpokSVKgDDVJkqRAGWqSJEmBMtQkSZICZahJkiQFylCTJEkKlKEmSZIUKENNkiQpUE/ZK0fAz7PSnQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results2d = np.array(results).reshape(Ngrid,Ngrid)\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(7,5))\n", + "ax = plt.subplot(111)\n", + "extent = [min(par_a),max(par_a),min(par_e),max(par_e)]\n", + "ax.set_xlim(extent[0],extent[1])\n", + "ax.set_xlabel(\"semi-major axis $a$\")\n", + "ax.set_ylim(extent[2],extent[3])\n", + "ax.set_ylabel(\"eccentricity $e$\")\n", + "im = ax.imshow(results2d, interpolation=\"none\", vmin=1.9, vmax=4, cmap=\"RdYlGn_r\", origin=\"lower\", aspect='auto', extent=extent)\n", + "cb = plt.colorbar(im, ax=ax)\n", + "cb.set_label(\"MEGNO $\\\\langle Y \\\\rangle$\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/OrbitPlot.ipynb b/rebound/source/docs/ipython_examples/OrbitPlot.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..89e5ae1796a9b40bac494d5abab1e53d5ea7c963 --- /dev/null +++ b/rebound/source/docs/ipython_examples/OrbitPlot.ipynb @@ -0,0 +1,542 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Orbit Plot\n", + "*Note that OrbitPlot has changed from being a function to a class in REBOUND version 3.22.* \n", + "\n", + "REBOUND comes with a simple way to plot instantaneous orbits of planetary systems. To show how this works, let's setup a test simulation with 4 planets." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1)\n", + "sim.add(m=0.1, e=0.041, a=0.4, inc=0.2, f=0.43, Omega=0.82, omega=2.98)\n", + "sim.add(m=1e-3, e=0.24, a=1.0, pomega=2.14)\n", + "sim.add(m=1e-3, e=0.24, a=1.5, omega=1.14, l=2.1)\n", + "sim.add(a=-2.7, e=1.4, f=-1.5,omega=-0.7) # hyperbolic orbit" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To plot these initial orbits in the $xy$-plane, we can simply create an `OrbitPlot` instance and give it the simulation as an argument during initialization." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "op = rebound.OrbitPlot(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can access the matplotlib figure and axes using attributes `ob.fig` and `ob.ax`. This allows you for example to save the figure to a file:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "op.fig.savefig(\"orbit.png\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "There are various ways to customize the plot. Have a look at the arguments used in the following examples, which are pretty much self-explanatory (if in doubt, check the documentation!). " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "op = rebound.OrbitPlot(sim, unitlabel=\"[AU]\", color=True, periastron=True, xlim=[-2,2], ylim=[-2.5,1.5])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAccAAAHACAYAAADX+aMKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAACa/0lEQVR4nOzdd1hT59sH8G/YIFMRAUWWAxUEEVFARBy4V92rWletWuuotba2atVq62pttWpr3eKqinuCgoAgggMEFURQlgoylJ087x+8nB8RUJAkJwn357pyEZIz7qxzn+c5zxAwxhgIIYQQwlHhOwBCCCFE3lByJIQQQt5ByZEQQgh5ByVHQggh5B2UHAkhhJB3UHIkhBBC3kHJkRBCCHkHJUdCCCHkHWp8ByDvRCIRUlNToaenB4FAwHc4hBBCPhJjDHl5eTA3N4eKyvvLhpQcPyA1NRUWFhZ8h0EIIURCnj17hmbNmr13GUqOH6Cnpweg7M3U19fnORpCCCH+/v4YNmwYAGD+/PlYvnx5jdbLzc2FhYUFd1x/H0qOH1Belaqvr0/JkRBC5EB2djZ338bGptbH5ppcIlOoBjmBgYEYNGgQzM3NIRAIcPLkyfcuf+3aNQgEgkq39PR02QRMCCFE4lJTU7n75ubmUtmHQpUc3759C0dHR0yZMgWffPJJjdd7+PCh2JmFiYmJNMIjhBAiA/n5+XBwcEBOTg6aNm0qlX0oVHLs168f+vXrV+v1TExMYGhoKPmACCGEyNy9e/dw//59AJBag0mFqlb9WE5OTjAzM0Pv3r0RHBzMdziEEELqQENDA/b29mjWrBmaNGkilX0oVMmxtszMzLBt2za4uLigqKgI//zzD7p3746wsDA4OztXuU5RURGKioq4/3Nzc2UVLiGEkA9gjOHSpUvIy8tDixYtoKqqKpX9KHVybN26NVq3bs397+7ujoSEBGzatAn79u2rcp01a9ZgxYoVsgqREEJILWRmZiIvLw8AYG1tLbX91Itq1YpcXV0RHx9f7fNLlixBTk4Od3v27JkMoyOEEPI+T5484e7b2NhIbT9KXXKsyp07d2BmZlbt85qamtDU1JRhRIQQQmoqMTGRu0/J8f+9efNGrNSXmJiIO3fuoGHDhmjevDmWLFmClJQU7N27FwDw22+/wdraGu3atUNhYSH++ecf+Pv749KlS3y9BEIIIXVQseQozWpVhUqOERER8Pb25v5fsGABAGDSpEnYvXs30tLSkJyczD1fXFyMhQsXIiUlBTo6Omjfvj2uXLkitg1CCCGKQ1bVqgLGGJPa1pVAbm4uDAwMkJOTQ8PHEUIIz3r16oWrV68CALKysmBkZFTjdWtzPK93DXIIIYQorvKSo6GhYa0SY21RciSEEKIQSkpKuEtn0rzeCFByJIQQoiCePXsGoVAIQLrXGwFKjoQQQhSErLpxAJQcCSGEKAhZtVQFKDkSQghRELLq4whQciSEEKIgqFqVEEIIeUd5yVEgEMDS0lKq+6LkSAghRCGUJ8dmzZpBQ0NDqvui5EgIIUTu5ebmIjMzE4D0q1QBSo6EEEIUgCyvNwKUHAkhhCgAWXbjACg5EkIIUQCy7MYBUHIkhBCiAGRdclSo+RwJIYTUTyUlJfD09ERhYaFMSo6UHAkhhMi9K1euIDExEXp6emjSpInU90fVqoQQQuRaQUEBnj59CgCws7ODQCCQ+j4pORJCCJFrjx8/BmMMANC6dWuZ7JOSIyGEELn28OFD7r6dnZ1M9knJkRBCiFyLi4vj7lPJkRBCCAGVHAkhhJBKykuOAoEALVq0kMk+KTkSQgiRW4wxruRobW0NLS0tmeyXkiMhhBC5lZqaijdv3gCQ3fVGgJIjIYQQOcbH9UaAkiMhhBA5VrGlKiVHQgghBOIlR1lWq9LYqoTUI0KhEDk5OcjLy0N+fj5KS0tRWlqKkpKSKu+XlpZCQ0MDmpqa0NXVhZGRERo2bAhDQ0Ooqqry/XJIPcBXyZGSIyFKQCQSISsrC8+fP6/ylp6ejoyMDLx69QoA0KNHD/j7+9do2x07dkR8fDxycnLEHtfX1+eSpZGREXe/TZs20NDQQOvWrWFpaQlra2uoqdGhhnyc8pKjgYEBTExMZLZf+sYSokBKS0vx5MkTxMbGIjY2Fg8ePEBsbCzS0tKQkpLy3nUbNWrE3S8sLKzxPouLiyslRgDIzc1Fbm4ukpKSxB53d3dHSEgIvL29ERAQAHV1dbRs2RJt2rSBnZ2d2E1XV7fGcZD65+3bt7C0tISpqSlMTExkMuB4OUqOhMgpkUiEhw8fIiIigrvl5+fjzp07VS5vbGzMlQzfpaurCzs7O5SUlMDIyAi2trZo1aoV1NTUoK6uDjU1tWrvq6ioIDc3F9nZ2Xj9+jV3y8rK4u6XlpZy+8rOzgYA5OXlASibh+/Bgwd48OBBpbhGjBiB0tJSuLq6wtXVFS4uLjAwMKjbG0eURlxcHAIDAwEAkydPlum+KTkSIieEQiHu3LkDf39/BAQEoLCwEAEBAWLLqKqqQl1dHSUlJdxjAoEAVlZWcHV1hZ6eHpo1ayZ2s7CwgL6+vtTiZozh7du3XMLMyMjgqnOtrKwQFxeHR48eobi4uNK6aWlpCA4OxsmTJ7nHxo4dCz09PXh7e6N79+4wNTWVWuxEvkVHR3P327VrJ9N9U3IkhCeMMTx48AD+/v7w9/fHtWvXuFIXAHTr1q3SOpaWlvD09ISFhQXatGmDtm3bolWrVtDR0ZFh5OIEAgF0dXWhq6sLCwuLKpcRCoVITExEXFwc4uLiEBsbi7i4OLx+/brSso8fP0ZERAR27NgBAGjTpg26d++OQYMGwcPDQ6qJnsiXmJgY7j4lR0KUWHZ2Ni5cuICwsDAcPHgQL168qHbZ4uJiDBs2DJ06dYKLiws6duyIhg0byjBayVFVVUWLFi3QokULDBw4kHu8vOr41q1bCA8PR3h4OOLj48XWLb++Gh0djZs3b6JHjx4YMmQIBg0ahGbNmsn6pRAZqpgc7e3tZbpvASufQZJUKTc3FwYGBsjJyaEzVvJRcnJycPz4cdy+fRvbt29HaWkpBAIBGjZsiMzMTG65Ro0aoXv37ujRowd69OiB1q1by7QBgrx48+YNQkJCEBAQgICAAEREREAoFMLQ0FCsZA2UtaQdMmQIhgwZAgcHh3r5fikzKysrJCUlQV9fH9nZ2XX+fGtzPKfk+AGUHMnHKC4uxvnz53HgwAGcPn0ahYWFMDIyQk5ODkQiEYCyalN9fX0uGTo4OEBFhcbleFdeXh6uX7+Oixcvws/PD8+ePatyuZ49e8LDwwPjxo2TaWdxIh05OTlwcnKCqakp2rRpg3///bfO26TkKEGUHElNiUQihISEYP/+/Th69CiysrIqLdOjRw+0b98egwYNgqenJ9TV1XmIVHExxnDnzh34+fnBz8+Pa7lra2uLhIQEAGVVuP369cPw4cMxevRoaGtr8xgx+VhBQUHcdfeZM2fir7/+qvM2a3M8p2uOhNTRgwcPcODAARw4cKBSnz8AaNy4McaMGYMJEyagU6dOVPVXBwKBAB06dECHDh2wfPlyJCUl4dSpU7h9+zaePHkCxhicnJxw5swZnDlzBgsWLMBnn32GmTNnomXLlnyHT2qhYpclJycn2QfAFMj169fZwIEDmZmZGQPATpw48cF1AgICWIcOHZiGhgaztbVlu3btqtU+c3JyGACWk5PzcUETpVRSUsIOHTrEevfuzdzc3BgAsZuOjg4bN24cO3fuHCsuLuY73HohNTWVbdq0iQ0aNKjS5wGA9e7dmx0/fpyVlJTwHSqpgSlTpnCf3c2bNyWyzdoczxXqAsfbt2/h6OiILVu21Gj5xMREDBgwAN7e3rhz5w7mzZuHadOm4eLFi1KOlCir/Px8bNmyBa1atcKYMWNQVFTEdYBXUVFBnz59sG/fPmRkZODAgQPo168fVZ3KiJmZGebNmwc/Pz+EhIRg4sSJ0NDQ4J6/fPkyPvnkE1hZWeGnn35CWloaj9GSD7l79y6Ast+Vg4OD7AOQSDrmAWpQcvzmm29Yu3btxB4bPXo069OnT433QyVHwhhjr169YitWrGDGxsZipZGmTZsyR0dHtmHDBpaWlsZ3mOQdL1++ZL/++iuzsbGpVJJUU1NjS5cuZffv3+c7TPKO4uJipqmpyQAwOzs7iW1XaUuOtRUaGopevXqJPdanTx+EhoZWu05RURE3ZmT5jdRfT58+xVdffYXmzZtj2bJlYsOz9enTB3v37kVkZCQWLFhAI7nIIWNjYyxatAiPHz/G+fPnMXjwYK5FsKamJv7880+0b98eY8aMEZv9gfDr4cOHKCoqAgA4OjryEoNSJ8f09HQ0adJE7LEmTZogNzcXBQUFVa6zZs0aGBgYcLfqRvwgyu3u3bsYP348WrRogc2bNyM/Px9AWUvIcePGISoqChcuXECPHj2o+4UCUFFRQd++feHn54fExEQsXboUrq6uyM7OBmMMhw8fRrt27TBx4sRKgxAQ2eO9MQ6UPDl+jCVLliAnJ4e7VdeniiinsLAw9O3bF05OTjh48CCEQiEAQFtbG19++SXi4+Nx4MAB3n6wpO6aN2+OlStX4syZM9iwYQMaN24MoKwrzv79+2FnZ4cpU6YgMTGR50jrr/LrjQAlR6kwNTVFRkaG2GMZGRnQ19evtu+TpqYm9PX1xW5E+T18+BCDBw/GzJkzcfPmTe5xY2NjrFixAsnJydi8eTOsrKz4C5JIlI6ODhYsWIDExESsXbuWG5pPKBRi165daNWqFT7//HM6QeYBlRylzM3NDVevXhV77PLly3Bzc+MpIiJvsrOzsWDBAtjb2+P06dNQU1NDu3btYGVlhT///BNJSUn48ccfYWxszHeoREoaNGiAxYsXIzExEatWrYKhoSGAsrkzd+zYgRYtWmDt2rViQ/0R6WH/P9ADUHYZjLdr+RJrBiQDeXl5LCoqikVFRTEAbOPGjSwqKoolJSUxxhj79ttv2cSJE7nlnzx5wnR0dNiiRYtYbGws27JlC1NVVWUXLlyo8T6ptapyKi0tZdu2bavU+rRZs2Zs165d1BeuHnv9+jVbtmwZ09fXZwCYpaUlU1VVZUZGRmzz5s3Ub1XKnj9/zv0efXx8JLrt2hzPFSo5BgQEVNm5d9KkSYwxxiZNmsS8vLwqrePk5MQ0NDSYjY0NDQJAmL+/P2vfvr3Yd0hbW5stW7aMvX37lu/wiJzIzMxk3333HevcuTP3PWnVqhVzcXFhYWFhfIentM6cOcO93998841Et620yZEPlByVR0JCAvvkk08qnVyNGTOGq30g5F0pKSns008/ZQCYvb09A8AEAgH78ssvWW5uLt/hKZ3Vq1dzv82DBw9KdNvUz5GQCvLy8rBkyRK0adMGx48f5x7v2LEjbty4AV9fXzRv3pzHCIk8Mzc3x549exASEgJVVVUAZdfF/vjjD7Rt2xZ+fn48R6hc5KExDqDkDXII8fPzw5gxY7B27VoUFxcDKLvI/++//yI8PBweHh48R0gUhZubGyIiIrBu3Tqutfvz588xdOhQfPLJJ0hJSeE5QuVQnhy1tbXRqlUr3uKg5EiUUmZmJr799lsMHToU586dQ+fOnaGhoYHFixfj0aNH+Oyzz6jzPqk1NTU1fP3114iJiUHfvn25x0+cOIFhw4Zh165dYDQL4EfLy8vjBmGwt7fnSup8oKMDUTpXrlxB+/bt8fvvv3P9Es3NzfHgwQOsXbuW+q6SOrO2tsa5c+dw8OBBmJiYQEVFBbm5uZgyZQpGjBhB3T4+0v3797mTC74H2qDkSJRGUVERFi5ciN69eyM1NRWFhYVo1KgR9u/fj//++w+2trZ8h0iUiEAgwNixYxEbG4t58+bh4cOHAIDjx4/DwcEBly5d4jlCxRMdHQ1PT0+4ubnB1dWV11goORKlEBMTA1dXV2zcuJF7rFevXjh16hTGjx9PEwwTqWnYsCE2bNiA48ePo1GjRgCAtLQ09OnTB/Pnz0dhYSHPESqOoKAgBAUFITQ0FO3bt+c1FkqORKGVtxp0cXHBvXv3AAAaGhrYuHEjLl68CHNzc54jJPXFsGHDcO/ePfj4+HCP3b17Fx4eHjROaw2FhYUBKPsN8zUbRzlKjkRhpaeno3///pg7dy53dt6uXTvcunUL8+fPpwY3RObMzc1x/vx5/P7777C3t0dgYCAiIyPh7OyM06dP8x2eXMvKysLjx48BAB06dICmpiav8dDRgyika9euwcHBARcuXOAemzt3Lm7dusV7dQyp31RUVDB37lzs27cP1tbWAMrG8B08eDCWLFkCkUjEc4TyKTw8nLvfuXNnHiMpQ8mRKBSRSITly5fD29sbbdq0AVA2+8qFCxfw+++/VzvbCiGy5uTkhIiICHzyySfcY2FhYRg4cCBNol6F8ipVgJIjIbWSlZWFQYMGYcWKFQDKfkzjx4/HvXv30KdPH56jI6QyAwMDHDt2DBs3bkS7du0QFBSE8+fPo2vXrkhOTuY7PLlCyZGQjxAfH48BAwYgOjoaQFnV1U8//YR9+/Zxk9USIo8EAgHmz5+PP/74A3p6egDK+vO5urri1q1bPEcnHxhjXLWqsbExbGxseI6IkiNRADdu3ECXLl1w8+ZNqKqqolmzZrh06RIWL15MXTSIwvD29sbNmzfRokULAGUTr3t5eeG///7jOTL+JSQkcAMnuLq6ysXvmpIjkWu+vr7o2bMn98PR0dHB9evX0bNnT54jI6T2WrVqhZs3b6Jbt24AgIKCAowYMQJr166t18POyVuVKkDJkciJrKwsREdHIysrC0BZNcvq1asxbtw4bsDw3r17Izg4WC6qXAj5WI0aNcKlS5fw6aefco8tWbIEU6dORUlJCY+R8Ucek6Ma3wGQ+m3r1q1YtWoV0tLSuMfMzMxgaWmJmzdvco9NmzYNW7duhbq6Oh9hkmrk5eUhKSkJSUlJePnyJRITE5GVlQUdHR0kJiaisLAQRUVFKCwshJWVFeLj46Gurg4NDQ2YmZmhsLAQhoaGMDQ0hI2NDXR0dGBhYQELCws0a9aM975u0qKpqYndu3ejVatWWLp0KQAgKSkJQ4YMwbFjx6Cjo8NzhLJVMTnyPWxcOUqOhDdjx47FoUOHKj2elpYmlizXrl2Lb775Ri6uQ9RHIpEI8fHxuHXrFl69eoVr165xCbG8pA+UtczMyckBUHb2X/GAB5RVIVZsgNK6dWtuPFIA6N69O65duya2jomJCQYMGICSkhK4u7vD2toanTp14oZpU2QCgQDff/89WrRogT///BP+/v4AgIULF2LdunXQ1dXlOULZKCoq4qapatWqFYyMjPgN6P9RciS82Lp1a5WJ8V1Tp07F4sWLZRARKZeSkoJbt24hPDwct27dQkREBLKzswGUVW1fvny5yvVycnKgrq6OkpKSKq+flVePV6eqKsUXL17g3r17uH37NlJTU7kEYm1tDVdXV3Tq1AmdOnWCs7OzwiaT0aNHw8zMDIMGDUL79u2xbds2PHjwAOfOnUODBg34Dk/q7t69y3035KVKFaDkSHiyatWqGi13/vx5KUdCcnNzcenSJURFRSE4OBjXr1+vdtm3b99CTU0NjDE0a9YMlpaW3M3KygpNmjSBiYkJ9PT00KBBA2hpaUFTUxNaWlrQ0NCASCRCSUkJiouLUVhYiPz8fGRnZyM7OxtZWVkYOXIknj17JnbLyMjg4iyXmJiIxMREHD58GABgZ2cHZ2dn2NjYYPDgwejYsaNCDR/YrVs3XL58meuvGxgYiEGDBuHMmTNKX8Uqj9cbAUDA6nMTqRrIzc3lqotoHkDJyMrKqlW1WGZmJho2bCjFiOqfpKQknD59GqdPn0ZAQABKSkrg4eGB4OBgGBoaciVFoGwEIldXV7i6usLFxQUtW7ZE8+bNoaYmm3PrwsJCPH78GPfv38etW7dw69YtREZGoqCggFvGw8MDKioqCAoKAlB23XrgwIEYPHgwevbsqTAjJ0VERKBXr15c9XTv3r1x6tQpaGlp8RyZ9IwZMwaBgYGwtrbGH3/8AWdnZ6ntqzbHc0qOH0DJUfKio6Ph4OBQ4+Xv378Pe3t7KUZUP6SkpMDX1xfR0dHYs2dPpeeNjIxQUFCAYcOGwdLSkqu2bNq0qdxd7y0tLcWDBw+4qt+MjAyEhYUhPT290rLa2trw8fHB6NGj0a9fPxgaGso+4FoICwtD7969kZeXBwDo27cvTp48qZSNkxhjGDx4MB49eoT09HRkZmZK9aSrVsdzRt4rJyeHAWA5OTl8h6I0MjMzGYAa3zIzM/kOWWEVFRWxQ4cOsenTpzOBQMAAMHNzc7H3t3nz5mz27Nns4sWLLD8/n++QP1pqairbsWMHGzRoENPS0qr0PerVqxczNzdnEydOZMHBwUwkEvEdcrWCg4OZrq4uF/uAAQNYUVER32FJ3JMnT7jX2L9/f6nvrzbHc0qOH0DJUTpMTExqlBjNzc35DlUhPX36lH377bfc+9ylSxex97Vfv35s5cqV7M6dO3KdJD7W27dvmZ+fH5s6dSpr0qQJA8C8vb3F3gN7e3v2559/suzsbL7DrVJgYCDT0dHh4h0yZAgrLi7mOyyJ2rVrF/f6fvrpJ6nvj5KjBFFylLykpCRmaGhYo+S4detWvsNVKJGRkWz06NGsW7duYu+jqqoqc3R0ZMuWLWOPHj3iO0yZEgqFLCgoiC1ZsqTK752Ojg6bOnUqi4iI4DvUSgICApi2tjYX6/Dhw5UqQU6ePJl7bdevX5f6/ig5ShAlR8lKSUlhtra2NUqMY8eO5TtchSASidjVq1eZj48P996pqKgwU1NTpqamxkaNGsX8/f2VsoRYW/n5+WzPnj3Mzc2tymrXbt26sWvXrsnVe3XlyhWxauJvv/2WCYVCvsOSCGtrawaAaWpqsoKCAqnvj5KjBFFylJwXL16wNm3acD/yli1bsrVr11a6BmZubk4lxgoyMzPZ/fv3K117FYlE7PLly2Jn3+U3ExMTtn79epaWlsZT1PLv7t27bNasWUxPT49pamoyfX197vvp6ekpk5JMTV28eJFpamoyT09P5uXlxZYsWcJ3SHWWnJzMfV+9vLxksk9KjhJEyVEysrKymKOjI/djsLKyYsnJydzz1SWA+mzLli3MzMxMLOmZmZmxrVu3snv37rFPP/2UCQQCJhAIuDNwGxsbtnXrVoVuWCNreXl5bOfOnczOzo516NBB7P328fFhYWFhfIfIGGPs9OnTzMPDg4ttz549fIdUJ/v27eNey48//iiTfVJylCBKjnVXUFDAfHx8uEYhTZs2ZQkJCXyHJdfGjBlTo6pnd3d3BoANHjyY+fr6spKSEr5DV1hCoZAdOnSI2dnZVXqfBw8ezO7fv893iOyPP/7gYtLQ0GAhISF8h/TRpk2bxr2Wq1evymSflBwliJJj3QiFQjZ69GjuOliPHj1YXFwc32HJtS1bttQoMQJgTk5O7ODBg0pzDUoelJaWsj179nCl8fJbhw4d2IwZM9iLFy94i00kErGZM2eKVZ8nJSXxFk9dtGjRggFg6urq7O3btzLZJyVHCaLkWDeLFy8WaxV469YtvkOSe+9WpVZ309PTk0kjhvqqqKiIbdu2jTVt2pS5uLhw73ufPn3Yjh07eGu0U1xczLp37y52gvTmzRteYvlYKSkpXPweHh4y229tjueKM/ggUTjbtm3DL7/8AgBQUVHB4cOH4eLiwnNU8i0rK0tsRpL3ycvLQ35+vpQjqr80NDTw+eefIz4+HmPHjoWenh50dXURGRmJGTNmoEePHoiPj5d5XOrq6jh27BhsbW0BAHfu3MGkSZMgEolkHsvHqjh+r5eXF4+RVI+SI5EKf39/LjECwB9//IGBAwfyGJFiSE1NlerypPa0tLSwYMECPHr0CNOmTcPLly8BANeuXYODgwN++eUXlJaWyjSmRo0a4fTp09wQaP/99x9WrFgh0xjqQhGSI1WrfgBVq9ZeQkICMzIyYsbGxszOzo59/fXXfIekMGhoPfl38eJFZmVlJfY5ODs7s9jYWJnHcu7cOaaiosLFcejQIZnH8DHKGz2pqamxvLw8me2XqlUJb96+fYthw4bh9evXePXqFezs7MRKkOT9GjZsCDMzsxota25uTrOV8MDHxwfR0dGYP38+Ny2Wrq4uHB0dsWnTJplWb/br1w/r1q3j/t+xYwfu3r0rs/1/jIyMDMTFxQEAXFxc5HYeTkqORGIYY5g+fTru3bsHoGxW7927dyvUvHp8OXr0KM6cOQMAWLp0aY3WqelyRPIaNGiAjRs3IjQ0FB4eHrh9+zaKi4uxYMECjB07Fi9evJBZLPPnz8dnn30GDw8P+Pv7Y9SoUdyMHvIoMDCQuy+3VaoAVat+CFWr1tzGjRu56h1dXV324MEDvkOSe6WlpezXX39lAJiBgQF7/PgxY4yxsWPHvrc6lYbWkx+FhYVs4cKF3Gfj6urKmjVrJtPBAwoKCpizszMXw7hx4+RqCLyKZs2axZydnVn37t3Z5cuXZbpv6sohQZQcayYgIICpqqpyP87//vuP75DkXm5uLhswYABTUVHhRmZZtmwZ9/zWrVtpaD0FcunSJbHxbTU0NNiOHTtktv/Hjx8zPT09bvi7ffv2yWzfNSUSibjrtRoaGjLvgqLUyfHPP/9klpaWTFNTk7m6ur737KzidCjlN01NzVrtj5Ljh6WmprLGjRtz77EyjPsobU+fPmUODg7ce9awYUP2559/Vnm2T0PrKY7U1FTWtWtXsWPO1KlTZdYf9dChQ6xTp04MANPX15e7AQIePnzIvS89evSQ+f6VNjkeOnSIaWhosH///ZfFxMSw6dOnM0NDQ5aRkVHl8rt27WL6+vosLS2Nu6Wnp9dqn5Qc36+0tJR1796deXt7M4FAwHx8fFhpaSnfYcm1mzdvcnMMAmCGhoYyGz6LSF9xcTGbO3euWIKcPHlyrY89H2vixIncfnv27ClXoydt3ryZi+2XX36R+f6VNjm6urqy2bNnc/8LhUJmbm7O1qxZU+Xyu3btYgYGBnXaJyXH91u1ahX3Ze/WrRt79eoV3yHJtfPnz7OuXbsydXV1BoC1aNGChtNTUvv372fa2trM09OTAWWD7cviOvzr169Zs2bNuN/lH3/8IfV91tSAAQO4uO7cuSPz/StlciwqKmKqqqrsxIkTYo9/+umnbPDgwVWus2vXLqaqqsqaN2/OmjVrxgYPHsyio6NrtV9KjtULDQ3lrjOqqKiwoKAgvkOSa4cPH+aSoouLC51M1AMRERFiicrQ0JAFBwdLfb+XLl3i9qmtrc0ePnwo9X1+SGFhIdPR0WEAmKmpKS8NhpSyn+OrV68gFArRpEkTscebNGmC9PT0Ktdp3bo1/v33X/j5+WH//v0QiURwd3fH8+fPq91PUVERcnNzxW6kstzcXIwfPx5CoRBAWbeCrl278hyV/Nq7dy/GjBmDkpISAIC1tTUuXryIRo0a8RwZkaaOHTsiLCwMTk5OAMr6sY4aNQpnz56V6n579+6N2bNnAwAKCgowadIkmY/i867g4GBuuEMfHx8IBAJe4/kgGSRriSgfqPbdKVoWLVrEXF1da7SN4uJiZmtry5YuXVrtMsuWLauy6TyVHMV9+umn3Hvj5uZGUyW9x/bt25mVlRUzNTXlGmjQddn6JTc3lw0fPpxruKaurs6OHj0q1X2+efOGm/kCAPv111+lur8P+eabb7hYDh48yEsMSllyNDY2hqqqKjIyMsQez8jIgKmpaY22oa6ujg4dOrx3sOAlS5YgJyeHuz179qxOcSujEydOICUlBVpaWtDT08OBAwegpqbGd1hy6d9//8Xnn3+Op0+fQk1NDYsXL8bff/8NVVVVvkMjMqSnpwdfX1/06NEDAFBSUoLRo0dj7969UttngwYNsHfvXqioqMDV1RVbtmzB48ePpba/D7l48SIAQCAQoHfv3rzFUWMySNYS4+rqyubMmcP9LxQKWdOmTattkPOu0tJS1rp1azZ//vwa75OuOYrLysriSkDNmjVje/fu5TskuXX48GGuWT0AtmjRIrntmE1ko7S0lH322WditVK+vr5S3ecPP/zA7at37968fAfT0tK4GFxcXGS+/3JK2SCHsbKuHJqammz37t3swYMHbMaMGczQ0JBrIj1x4kT27bffcsuvWLGCXbx4kSUkJLDbt2+zMWPGMC0tLRYTE1PjfVJyFDd16lTuSz5gwAA62FfD39+faWhoMC0tLebo6Mjmz59P7xVhjJWd1M+ZM4cBYO7u7kxVVZXt2bNHavt78+YNa968Oa+Dk+/Zs4fb//fffy/z/ZdT2uTIGGN//PEHa968OdPQ0GCurq7s5s2b3HNeXl5s0qRJ3P/z5s3jlm3SpAnr378/i4yMrNX+KDn+z9WrV7kvuJ6eHktOTuY7JLl07949pq+vz71X06ZNo8RIxIhEIrZ8+XLuO6KiosKOHTsmtf2dPHmS25eZmZnMj2fjxo3j9h8YGCjTfVek1MlR1ig5lnn79i2zsbHhvuA0hFnVkpOTWdOmTbn3aeDAgdRYiVRJJBKxL7/8kvuuqKurs4CAAKntb9CgQdy+5s6dK7X9vEsoFDJjY2PupLq4uFhm+36XUjbIIfz68ccf8eTJEwCAp6cnPv/8c54jkj95eXno168fUlJSAACurq44dOgQNVYiVRIIBPjtt98wefJkAEDnzp0xdOhQREZGSmV/mzdvhra2Nho0aIDY2FhER0dLZT/vunXrFlq1aoXOnTtj0KBBUFdXl8l+64p+teSDoqKisGnTJgCApqYm/vnnH5qG6h1CoRAjRoyAsbExVFRUYGNjgzNnzqBBgwZ8hyYVjDGkpqbiyZMnePbsGd6+fYvCwkKkpqZCKBSicePG0NHRgUAgQJMmTWBpaQlra2vq1/kOFRUV/PPPP9DR0cHWrVsBAAMHDkRYWBgsLCwkui8rKyusWrUKa9asweXLl7Fo0SKcP39eovuoyqlTpxASEgIAmDZtmtT3JykCxhjjOwh5lpubCwMDA+Tk5EBfX5/vcGROJBLBw8MDmpqauH37Nr777jssWbKE77Dkzo8//ojg4GAEBgaic+fO2LNnD2xtbfkOS2Jyc3MRFhaGK1euICwsDAKBAPn5+QgPDwcAuLm5QVVVFTdu3AAAdOrUCbq6uggICABQVirS1dVFbGwsnJ2d0bdvX7i4uKBjx45UskZZR/2ePXsiNDQUAODg4IAbN25I/JhTWFiI1q1bIzk5GUBZ9wofHx+J7uNd9vb2iImJgUAgQFpaWqWBXGSpVsdzadfxKrr6fs2x4swmnTt35vV6gby6cuUKEwgEDABr06YN8/f35zskicjMzGR//fUX6927N+vVqxczMjISG0e34nRabm5urGPHjtz/7du3Z+7u7tz/VlZWYrOQ2NraMjs7O2ZkZMQmTJjALly4wIqKivh+ybx68eKF2HV9aV2vPnDgALcPBwcHqQ5IER8fL/Yd4Vttjud0ykaqlZubi2+//Zb7f/Xq1QpzvUBWMjIyMH78eLD/r4CZNGkSvL29eY7q4zHGcP36dZw7dw6//fYbrK2t8ejRI7i4uOD169ewsbHBkydPuAE1RowYgebNm8PCwgL6+vrQ1NSEqqoqRCIR8vPz8eLFC2RkZODZs2d4/PgxkpOTUVpaiuzsbGRmZgIAjh07htDQUBQVFWHixImYOXMmmjdvzvM7IXuNGzfGuXPn4ObmBpFIhPT0dHz33Xf49ddfJbqfMWPGYNOmTYiIiMD9+/exe/duTJ06VaL7KOfn58fdHzx4sFT2ITVST9UKrj6XHBcvXsyd9Q0bNozvcOSOUChkvXr14t6jPn36yNX0QLUhFArZkSNH2NixY7nm/gKBgHl4eDAArGXLlmzWrFns5MmTLC0t7aP3IxKJ2MOHD9nevXvZqFGjmJ6eHnN2dhabA7FZs2Zs0aJF7NGjRxJ8hYrD39+fWVpacu+HNLp4XL9+nQFg9vb2rE+fPlKbb9LLy4t7HbKYkeRDqCuHBNXX5Pj48WOmoaHBgLIJohMSEvgOSe6sXr2a++GbmppWO6+ovLty5Qrz8vJiRkZGzN7enntN3bt3Z99//z2LjIyUWj/NoqIiduHCBfbZZ58xNTU1BpTNYu/k5MTU1NTY7NmzFfZ9rYuK8x7q6upKJbFUHKlHGl2zXr16xVRUVLiTK3no60vJUYLqa3JcsGAB98P57rvv+A5H7gQGBnI/fIFAoJDXGZOTk9n06dO5abTKS2+DBg1iBw8elPn15dTUVLZs2TLWrVs3seHVBg8ezHbv3i0XB1dZEYlEXMd5NTU1Nn78ePb27VuJ7uP27dvce2xhYcEKCwsluv2Ko+J8/fXXEt32x6LkKEH1MTnevHmTa1zi4eHB8vLy+A5JruTl5bHx48ezVq1aMQBs2bJlfIdUKyKRiP3777/cxLPlk/F26tSJnTt3jvcklJeXx5YvX84aNGjALCwsWPfu3RkA1rdvX5aSksJrbLL05s0b5unpydq2bcsAiI0rLSkDBw7kEtj27dsluu1PPvlELkbFqYiSowTVx+TYu3dv7ku9bds2vsOROwsWLGAqKirM09OTjR8/XqGmn3r9+jX7+uuvuRJv27ZtmaWlJfv333/l7nppWloamz9/PjehNgDWrl07qY4iI28ePHjAtLS0uNd/7tw5iW4/LCyM27alpaXEagsKCgpYgwYNGABmbGwsN78RSo4SVN+SY/mFegDM2tq63jevf1dUVBR3sNbS0mKPHz/mO6Qai46OZj179mRaWlrcPH+zZs1ir1+/5ju09zp37hw3E0zfvn2ZpqYm27RpE+8lXFnZsmUL95ts0qSJxK/B9u3bl9v+zp07JbLNs2fPctucPHmyRLYpCZQcJag+JUeRSMRVsQFgu3fv5jskuSIUClnnzp2592fVqlV8h1Rjly5dYvr6+szKyorp6uoye3t7dvz4cb7DqrFXr16xzz//XGxA91mzZtWLcWtFIhHr378/97pHjRol0RODkJAQbts2NjYSeU9nzpzJOnXqxDw8PJifn58EopQMSo4SVJ+S46VLl7gfSevWrevFgac2tm3bxr0/dnZ2Em/AIC2+vr7Mw8ODK/EOGTKEPX36lO+wak0kEonNTdipUyc2f/78evE9TU9PZ40bN2bt2rVj1tbW7MCBAxLdfsUuSXU9KS4pKWE9evRgrq6uzNjYWOINieqCkqME1ZfkKBKJmKurK/cD4WPON3mWnp7ODA0Nuffn2rVrfIdUI/v27WM+Pj5cMhkyZAh78+YN32HVyZ49e1irVq1YmzZtuGo7ebteKg0nTpzgvn+NGzdmr169kti2AwMDmZGREfPy8mLu7u51KplevHiRi3Ps2LESi1ESKDlKUH1JjhWvETg4ONSLg01tVBwQoeKcofLs9OnTXHcTNzc3NmPGDKUpZZ06dYrrggKAffnll/XiGuTw4cOldi2v4iWVixcvfvR2Kvaf/O+//yQYYd1RcpSg+pAcRSIR69q1K/P09GTm5ubs5MmTfIckV8LDwxkA5urqylq3bs1evHjBd0gfFBgYyExMTJijoyMDwGbOnKl0JzzHjh3jkv/gwYPZ5s2b+Q5J6lJTU5mBgQEDwFq0aMFu3LghsW0fO3aMS2p9+/b9qG0UFhZy8enp6bH8/HyJxScJlBwlqD4kx8DAQO5H4ejoqHQH0boQiURi/bV+//13vkP6oMTERNa1a1dmZmbG1NXV2VdffaW0n+m///7LXQ5QU1NjwcHBfIckddu2bWNubm5MTU2NOTo6SqybRGlpKWvRogVzc3NjTk5OHzUqlp+fH/dbmTBhgkTikiRKjhJUH5JjxRnC9+3bx3c4cuXq1atMS0uLG9JM3ru2FBYWMmdnZwaANWzYkI0bN07pZ1L55ptvuO9v06ZNlX64OaFQyDp06MC95n/++Udi2644JOLSpUtrvX75qD4A2JkzZyQWl6RQcpQgZU+ODx484L7MzZo1U/oDaW2IRCKxocwk3UJQGmbNmsW6devGtLW1WYsWLeS+D6MklJSUcANc29rasoULFyr99ceK/ZGbNGnCcnNzJbLd1NRUrlVzs2bNalUqffv2Ldfx38jISC5PJGtzPKfp3Ou5jRs3cvfnzZtHU1JVcO3aNQQGBgIA7OzsMHr0aJ4jer9Lly7h0aNHCAwMRNOmTXHs2DEYGhryHZbUqamp4dChQ+jevTtevXqFDRs24OTJk3yHJVXdunXDJ598AqBs2rS1a9dKZLtmZmbo168fAOD58+e4cuVKjdc9e/Ys3r59CwAYPnw4NDQ0JBITb2SQrBWaMpccX758yZo0acIAMH19faV8jXVRcbqd/fv38x3Oe+Xl5XHTHLVp04b99ddffIckc0eOHBGrBVH2MYHj4+O5mXNatGjBkpOTJbLd48ePiw04UFMVr81fvnxZIrFIGpUcSY38888/yM/Ph4eHB7788kvo6+vzHZLcCA8PR0xMDACgVatWGDNmDM8Rvd/vv/8OY2NjAICpqSk+//xzniOSvREjRqBPnz4AykpTu3fv5jcgKbO1tcWCBQvg4eGBZ8+eYdWqVRLZ7oABA9C4cWMAwMmTJ7lJqd8nNzcX586dAwCYmJige/fuEomFVzJI1gpNWUuOQqGQ2djYcGd6NF+juCFDhjBtbW3m5uYm942UEhISWOvWrRkA1qVLl3o7STBjZaWpDh06sO7duzMDAwOWnp7Od0hSlZmZyQ2pp6amxp48eSKR7Vacsq4mXWT27dvHLT979myJxCANVHIkHxQQEIAnT54AAHr37g0bGxueI5IfCQkJOHXqFAoKCpCcnCz31xqXLVuGJ0+ewN3dHb1790bLli35Dok3tra28PLywrVr15CTkyN2TV0ZNWzYEF999RUAoLS0FKtXr5bIdj/77DPu/r///vvB5a9duwYXFxeoqanJfS1LjckgWSs0ZS05jho1ijvTO3r0KN/hyJWvvvqKe2/WrFnDdzjv9fjxY25Ko0aNGind9/RjpKSkcNfidHV1WWZmJt8hSVVWVhYzMDBgjo6OzM3NjT179kwi2604nGRkZGS1y6WkpHCDMTg5Ocl1n1oqOZL3evnyJU6cOAEAaNy4MQYPHsxzRPLjzZs3ePToEbS0tKCtrY3p06fzHdJ7rV69GsbGxnBzc8OiRYvoujEAc3NzTJkyBU2bNoWXlxdOnTrFd0hSZWRkhLlz5+Lu3bsIDQ3Fli1bJLLdqVOncvffV3rcv38/RCIRAGDgwIFQUVGOtKIcr4LUyp49e1BSUgKgrPpE4ZtcS9CRI0dw/vx5qKmpYc6cOWjUqBHfIVXr1atXiImJQbNmzfDo0SPMnj2b75Dkxpw5c2BoaIizZ89i3bp1YIzxHZJUffHFF1w3rO3bt3NdKupi9OjR0NbWhrm5OZKSklBcXFxpGcaYWMOnyZMn13m/8oKSYz3DGMPff//N/T9t2jQeo5E/O3fuBFBWghwxYgTP0bzfnj17cOvWLdy8eROTJ0+Grq4u3yHJjXbt2nF9PB88eIC7d+/yG5CUmZmZYezYsQCA169fY+/evXXepoGBASZOnIjU1FQkJiYiJCSk0jLh4eGIjY0FAHh6esLW1rbO+5UXlBzrmeDgYDx69AgA4O3tXa8bb7zr4cOH3AHA3t4enTp14jmi6jHGEBUVBVNTUwDAjBkzeI5I/kyYMIG7f+bMGR4jkY358+dz93/77TeuqrMu+vbtC2NjY0RHR+O///6r9HzFUmPFRjzKQI3vAIhs7dmzB87OzlBTUxO7pkAAX19fODs7Q0NDA6NGjYJAIOA7pGrFxcXh7NmzyM7OxvDhw9GqVSu+Q5I7o0aNwv79+6GpqYno6Gi+w5E6JycndO/eHdeuXcOjR49w/vx5DBgwoE7b7NmzJ7KzswEAFy5cEHuusLAQvr6+AAAdHR25r2mpLSo51iPFxcU4duwYIiMj8eDBAwwbNozvkOQGYwyHDh1CZGQkwsLCuCoqeXX8+HHk5+fD0dERPj4+fIcjlxo2bAgVFRX4+/vj8OHDeP78Od8hSd38+fPRpEkTdO/enUtcdaGvrw8PDw8AQHx8POLj47nnTp48iZycHABlAzDo6enVeX/yhJJjPXL58mXuLHDw4MHQ0dHhNyA5Eh0djYcPHwIou3ZSXl0pr86dO4fi4mLcvXuXkuN7VByp5fr16/wFIiMDBgyApqYmrl27Bl9fX6SkpNR5m+VjrQLipUdlrlIFKDnWK4cPH+buy3vHdlk7duwYd3/kyJE8RvJhOTk50NTUhLu7O7p06QIrKyu+Q5JbXl5eAABLS0uxUo+yUlVV5RKVSCTCnj176rzNvn37cvfPnz8PoGxQ8kuXLgEArKys0K1btzrvR95QcqwnCgsLuZkKDAwMuDEoSZmjR48CAAQCATfbgby6e/cuSktLkZSUBGdnZ77DkWuurq5wcnKCpaUlkpKS+A5HJiZPngxjY2N4eXlV2cK0ttq3bw8zMzMAZSNrFRYW4tixY9z4q5MmTVKavo0VKd8rIlUKDAyEvb09NDQ0MGzYMGhqavIdktx49OgRDAwMoK6uDg8PD5ibm/Md0nuFhoYiKCgIKSkpcHFx4Tscuaanp4fs7GwEBgbi+PHjSt/fESgrydnZ2eH69es4e/YsHjx4UKftCQQCrvRYUFCAgIAA/Pbbb3j58iW6dOmiVH0bK6LkWE8cO3YMoaGhACD3JSNZO3XqFG7evAk1NTWFqG6+c+cOd5+S44e1aNECQFl1dE1mmFAGFVuOVtUFo7YqXnfcvn07kpKSwBiDkZGR0lbrU3KsBxhj3IV0gUCAnj178hyRfHn48CE0NDRQUFCAXr168R3OB719+xZdunRB165dYWdnx3c4AMoae6mqquLy5ct8h1JJ27Zt4ejoiO7duyM5OZnvcGSi4glwxevpH6tXr15c1WnFCZC/+OKLOm9bXlFyrAcePHiAZ8+eAShroECtVP+npKQEBw4cAFD23rRu3ZrniD6spKQEGhoaXFWwPPj5558hEomwZs0avkOppHnz5tDT04OqqiqysrL4DkcmLCws0LlzZwDAvXv36twYycjICG5ubgDADU3XvHlz9O/fv26ByjGFS45btmyBlZUVtLS00LlzZ4SHh793+aNHj8LOzg5aWlpwcHDgJuSsT8pbmAHi1SOkrIqyoKAAxcXFMDc3l+uO/0BZw6oLFy4gMDAQubm5fIfDKW/4ERwczHMklamqquLGjRu4evUqXr16xXc4MjN8+HDuviSqViu2WgWAzz//HKqqqnXerrxSqOR4+PBhLFiwAMuWLUNkZCQcHR3Rp08fvHjxosrlQ0JCMHbsWEydOhVRUVEYOnQohg4dWi9Gy6iIkmP1Kh7Mu3btymMkNfPy5UvuvomJCY+R/M/Fixe5QamLi4vlrmq1Yk1Jfn4+j5HIVsXkKImq1R49enD3VVRUlH6ELYVKjhs3bsT06dPx2WefoW3btti2bRt0dHSqnU7l999/R9++fbFo0SK0adMGK1euhLOzM/78808ZR86fvLw8BAUFAQCsra1pmLF33Lhxg7tfPhKIPMvJyYGNjQ1atWoFCwsLXmJwcXGBQCDgbu+WKHx8fMSe57vRkK6uLjw8PODt7V2vWmnb2NigW7du6Nq1KzQ0NJCamlqn7SUmJnL3TU1N5ebkTFoUJjkWFxfj9u3bYg0mVFRU0KtXL64V5rtCQ0MrNbDo06dPtcsDQFFREXJzc8Vuiszf35+bnqpv375yX20oS4wxruSor68Pe3t7niP6MKFQCA0NDYhEIt76ln355Zc13reKigq+/PJLKUf0fqWlpQDKGqMpY3+89+nWrRtu3LiBkJAQsYY0H2Pbtm3c/dTUVImMviPPFOab8urVKwiFQjRp0kTs8SZNmiA9Pb3KddLT02u1PACsWbMGBgYG3I2vs3NJoSrV6iUmJnLfhS5duijE9RORSIS4uDjEx8fzVkU4adIkxMfHcx3Dq2Nubo74+HhMmjRJRpFV7fXr1wgODoa/vz+vcfDBx8cH6urqcHJyqlOjnPv374vVsgDiXYqUkcIkR1lZsmQJcnJyuFt5K09FxBhDWFgYAEBDQ0PsmgEBbt26xd1XhOuNAMQSeFFREW9xWFtb4/nz59VOedayZUs8e/YM1tbWMo6ssvLxhAFwczzWF506dYK6ujru3LlTp4HIt2zZAg8PD7Exh6OioiQRotxSmCmrjI2NoaqqioyMDLHHMzIyqh0k2tTUtFbLA4CmpqbSXJdISkrC/fv3YWdnh86dO6NBgwZ8hyRXHj9+jHbt2kFdXR3u7u58h1Mjurq6sLCwAGOM95KuiopKtdex0tLS5KYK882bN3BxcYGenp7SXyd7l5aWFhwdHREaGor4+HhkZmaiUaNGtdrGy5cvsXv3bhQVFYlNqE0lRzmhoaGBjh074urVq9xjIpEIV69e5frfvMvNzU1seaCss3J1yyubGzduQCgUIi4uTi7O4OVNcHAwYmJi8OjRI7Rp04bvcGrE2NgYz549w/Pnz/HkyRNeY4mIiOD6vAFl123LvXnzBpGRkXyEVUlGRgY0NTWhqqr6wapgZVTe3xHAB7u+VWXr1q1cLcW0adO4k2xlT45gCuTQoUNMU1OT7d69mz148IDNmDGDGRoasvT0dMYYYxMnTmTffvstt3xwcDBTU1Nj69evZ7GxsWzZsmVMXV2d3b9/v8b7zMnJYQBYTk6OxF+PtM2cOZMBYADYlStX+A5H7rRo0YIBYLq6ukwkEvEdTo3p6ekxAKxly5a8xjFixAju+7VkyRLGGGNLlizhHhs5ciSv8ZWztrZmAJienp5Cfc6S4uvry30my5Ytq9W6BQUFrHHjxgwAU1VVZU+fPmVubm7c9rKzs6UTtJTU5niuMCVHoGyapfXr1+PHH3+Ek5MT7ty5gwsXLnCNbpKTk5GWlsYt7+7ujoMHD2LHjh1wdHTEsWPHcPLkSYVolSgJ5RfQVVVVxc4eSVkLxqdPnwIAbG1tFaoVb+vWrWFjYwNDQ0OIRCLe4tDW1oaJiQlu3bqFn3/+GUDZSDnh4eEwMTGBlpYWb7GVy8vL44aMa9u2rUJ9zpJS8bdf3gahpg4cOMD1rR0xYgQsLS3h5OTEPX/37l2JxCiPFOaaY7k5c+Zgzpw5VT537dq1So+NHDlS7ufnk4acnBzo6enB0NAQtra2YtcKSNmJVHkT//KBqRWFq6sroqOjUVRUhMTERNja2vISx969e6t8vFOnTpWu9fOl/ODdpk2bSv0x6wsrKysYGxvj1atXCA8PB2OsRicJjDFs3LiR+3/BggUAgA4dOnCPRUVFKeVcjoACXXMktXP37l2EhoYiOzubSo1VSEhI4O7zlVw+lrGxMQIDAxEWFoaIiAi+w5Fr165dg7W1NUxNTevtABgCgYA7BmRlZdW4S8fFixe56a66du0KV1dXABArOSrzdUdKjkrq3r173P327dvzGIl8qniAULTkWH6QAj6ugUV9cvXqVcTHxyMgIKBenySWv3Z9fX3cv3+/Ruts2LCBu79w4ULuvr29PddSmpIjUTgVfwAODg48RiKfKpYcFbFatUOHDvD09Kw3UzB9jNzcXBQWFsLQ0BDW1tYKdxIkSS4uLmjatClyc3NrdN3x7t273Ig6tra2GDRoEPectrY2N1VaTEwMN66uslG4a46kZiqWHOtLA6TaqNgNQtEOmo0bN0a7du1w48YN3LhxAxkZGZVGgiLAhQsXcO/ePRQWFmLu3Ll8h8OrVq1awdTUFIaGhjWa8Hnnzp3o27cvkpOTMWvWrEp9anv06AEjIyMUFxdz/YWVDSVHJSQSibiZR6ytrcX6n5EyjRs3ho+PD4qLi9G0aVO+w6m15s2bc61t/fz8MGPGDH4DkkO7d+9GaWkp3N3d4ePjw3c4vLKwsEBkZCQYYx9snPf48WNs2bIFIpEIHh4emDx5cqVljI2NudbwypocqVpVCT19+hRv3rwBQFWq1QkICMClS5dw9+5dqKkp3jlixZne6+McpR/y/Plzbiqt5OTkejPwR3U0NDS40YGeP3/+3mXXrl3LdRHq379/lSNrWVtbw9zcHM7OzjUqiSoixTsqkA+qeL2RGuNULS8vDwCgp6fHcyQfx9nZGSNHjkRubi6ePn2K5ORkNG/enO+w5MaOHTvg5OQENTU19O/fX26GsuNTs2bNkJGRgfT0dJSWllZ5UpiUlMR10TE0NMTs2bOr3JalpSVSU1ORmprKtWhVNvSNUUIVrzdSybFq5SVrRe3/KRAI0LFjR1y8eBF3797F1q1b+Q5Jbrx9+xbXr19HXl4ebt++rfST8tZU+eUDoVBYbT/UX375hev/O3fuXBgYGFS5XMXxqeWlT6ukUXJUQlRyfD+RSMSNCaqoyREAJk+eDHV1dQDA33//Xa9muX+fv/76C4GBgXj8+DEWLFiAZs2a8R2SXKj4PlRVtZqamoqdO3cCKPtdvK8RU8Xk+L4pABUZJUclVF5y1NTUVLhuCrKQn58PxhgAxa1WBcrmJh0zZgxMTEzg6OiIf/75h++QeJebm4uLFy9CXV0dAoGgysYk9VXF5FjVRMXr16/numXMmjXrvbN36OnpQVtbG4DyJke65qhkCgsL0bx5czRo0AD6+voK2dhE2sqrVAHFLjkCwHfffYfExEQEBATg3r17+PTTT+vdnIUV/f7777hy5QqaNm2KiRMnom3btnyHJDcqtsp+t+T48uVLbNu2DUBZP8byoeKqIxAIYGpqKjZhuLKhkqOSSU5OxuXLlxEZGUl936pR3hgHUOySIwDY2dnB0tISAJCZmYk1a9bwHBF/oqOj8dNPP6Ft27YwMzPD9OnT+Q5Jrryv5PjXX39x/X1nzJhRo2NHedVqZmamUg4EQMlRySQmJnL3aQ7HqhUVFcHb2xtubm5KMb/f6tWruQm6AwMDlbb14PsIhUL88MMPKC0txYMHD9C/f3/Y2NjwHZZcMTU1hbGxMdq2bStWo5SWloa1a9ciOjoa7u7uWLRoUY23V+7FixcSj5dvlByVTHnHcKBsNH5SWUlJCQICAhAaGipWxaqoLC0tsXLlSvTp0wc3b97E5MmTUVJSwndYMrVu3TqcPHkS3bp1g7OzM5YsWcJ3SHLHyMgIr169woMHD8ROoFavXo2CggIAZUMT1nRQDGVvlEPJUclkZWXB0tISdnZ21EqvGurq6ujQoQPs7Oy41p6Kbvbs2VytQcX5FeuD69evY8WKFfD09MSNGzfwxx9/yMVckvKm4hBw5Z38ExMTsWPHDgBAgwYNanVSQcmRKJSUlBQkJSUhLi4OjRs35jscuaSlpYWoqCjExcXh1atXfIcjETo6Oti3bx93ADx8+DD8/f15jkr6kpOTMXPmTBQWFiIoKAibNm2Cu7s732HJpYoDIZQnxxUrVnC1DPPnz+dG0akJZU+O1JRRyVQcyul9TbHrs4otVJWhWrWcq6srli9fjpCQEFy4cAEjR47EzZs30bJlS75Dk4qcnByMGDECL1++hIODA0xNTasd0YVUTo6xsbHYt28fgLIq14rTUtWEiYkJOnfuDMYYNcgh8q9icmzYsCGPkcgvZU2OALBkyRIwxsAYQ1ZWFgYMGKCUY1/m5+dj8ODBeP36NVRUVFBaWgpfX99Ks0eQ/6mYHIVCIX788UeuBLl48eJadwFq0KABwsLCEB4ejtTUVEmGKhcoOSqZrKwsAGU/hOqGfqrvdHR0uPvlI+UoC1VVVRw+fJibpkxTUxOjR4/G69eveY5McvLz8zFr1iwEBgYiPj4eFhYWOH78ONWUfEDFE4fs7GwcO3YMQFn16Jw5c2q9vYoDkivb7wig5Kh0yksJDRs2pMGWq6GiosIlSGUrOQJls72fOXMGn3zyCTIzM3H16lX06NEDL1++5Du0Onv9+jVmzJiBPXv2wMPDA0ZGRtixYwc3+S6pXsXjwdOnT7kBEpYuXVrlzBsfUrEGhpIjkXvlyZHOot+v/IetjD9qoKx7x/LlyyEUCgEAd+7cwZgxY8QmeS6XlZWF6OhortZBXsXHx8Pd3R0HDhyAp6cn7t27h0uXLqFjx458h6YQKibHjIwMPHjwAEOHDsW0adM+anvq6uqwsrKCjY0NN5ScMqHkqERKSkq40V/oeuP7devWDR06dFDqiaAdHBwQGBiIpk2bwsbGBrm5uejUqRMuX74MANi6dSvMzc3RqFEjODg4oFGjRjA3N8dff/3Fc+SVnT9/Hm5ublzXm4SEBNy4cQMuLi48R6Y4qqpJGjt2LDeAxMds7+nTp3jy5Amys7PrGJ38oeSoRCqe+VPJ8f3S0tIQFRWFe/fuobCwkO9wpKZ169YIDAyEl5cXIiIikJWVhb59+8LJyQmzZ89GWlqa2PJpaWmYNWsWxo0bx1PE4goLC7FgwQKMHz8eKioqeP78OXr37o0bN27QjDO1xBjjhhoEAHd3d4wcOZLHiOQbJUclQsmx5mxtbWFtbQ17e3ulbGlXkY2NDTZu3IiBAwcCKGtIcffu3feu4+vry3sJ8saNG/Dy8sLOnTvx+vVrWFhYwNvbG0ePHqWhET9CeR/ochs3boRAIOAxIvlGyVGJUDeOmjM2NkZiYiKio6PFDhjKytDQEH5+fli+fHmN+6StWrVKylFVLTk5GRMnTsT06dMRHh6O9u3bQ1NTExMmTMDRo0epFfZHWr16NXffzs4OnTt3rtP2yqd9A6CUSZaSoxKhAQBqruI8l/Hx8TxGIjsqKir48ssvUVRUVKPlU1NTZdpI5/nz5/jmm28wePBg7N+/H3FxcfDy8kJhYSHu3r2LefPmUQvsj5SQkMB1+AcAT09PHqNRDPRNUyJFRUVwcnKCra0tlRw/oD4mRwC1rkKWdpUzYwyhoaGYNm0arK2tERISgrt376JLly5o2LAhJkyYgJs3b6J169ZSjUPZrVixAqWlpdz/9H5+GA0fp0RevnyJO3fuAFD8SXylrb4mR3Nz81otf+XKFRgZGdV4poaaYIzhzp07OH78OM6fP4/bt2+ja9euKC0txZ07d2BhYYFBgwbhiy++gJGRkcT2W19dvnwZvr6+sLGx4brySHqqNmWsVqXkqEQaNGgALy8vFBUVQUNDg+9w5JqFhQXU1dVRUlJSr5Jjw4YNYWZmVqmValXU1dVx7NgxzJ8/H+3atcPQoUNhb2+Pdu3aoXXr1jX+jr1+/RoPHjxAeHg4wsLCkJGRgeTkZO5A3aFDByQkJMDc3BxTpkzB3LlzadB8CSkqKsKcOXNQWloq1sdVGeYxlTZKjkrk7du3uH79OgAo5UDAkqSmpgZra2s8evQIqampEIlE9eZ61tKlS2s0QLe5uTlycnIAADExMcjOzgZjDKmpqbCwsICBgQH09fXRsGFD2NraQlVVFS9fvkRhYSGKioqgqqqK69evw9jYGI8ePUKzZs3w/PlzeHp64smTJ2jWrBlSUlLg4uICDw8PjB49mqaakrANGzbg0aNHAIDGjRtzoyTVtgahKqWlpXB1dYW6urpSTo9X6+Q4adIkTJ06Fd26dZNGPKQOKh5YlLnvnqT07t0b2dnZePHiBZ4+fVpvZo6fNWsWbty4AV9f32qXGTNmDL7++mucOXMGDRo0QHp6OnJzc7kxWk1NTfH69WtER0cDALp27QqhUIjQ0FAAZSVza2trsQY9VlZWeP78OXJzc9G/f3+MHTsWPXv2pFKMlDx9+pRrcayqqgpra2suOUriPS8oKEB4eDgAwMnJqc7bkze1To45OTno1asXLC0t8dlnn2HSpEkSvR5BPh4lx9pp2LAhXrx4AQCIioqqN8kRAA4ePAhPT0+sWrVKrNGNubk5li5dii+++AIA0LFjRyxbtgzZ2dmIjIxEWFgYoqOjoa6ujufPn3NV0mpqamIlbwMDA2hqaqJ58+awtrZGhw4d0LFjR/z+++9o37491NSo0kra5s2bh4KCAgDAnDlzEBERwY0prKenV+ftl4/GJantyZtaf0NPnjyJly9fYt++fdizZw+WLVuGXr16YerUqRgyZIjSzKyuiCg51k6HDh24+1FRURg+fDiP0cjeF198gS+++AJZWVlITU2Fubl5ta2cDQ0N0aNHD/To0UPs8ZKSErx+/Rq5ubkoLS2FiooKNDU1oaurC0NDQ5pCiidnz56Fn58fgLJS/o8//ghzc3MUFRXB09NTIg1oKiZHZWwA+FGnb40bN8aCBQuwYMECREZGYteuXZg4cSJ0dXUxYcIEzJo1S2knWJVnlBxrx9nZGT179kRWVtYHR4xRZg0bNvzorj/q6uowMTGp1QzyRLry8/Mxd+5c7v8NGzYgKyuL698qqcZOFWe0UcaSY51aIKSlpeHy5cu4fPkyVFVV0b9/f9y/fx9t27bFpk2bJBUjqSFKjrXTvHlzPHjwAFFRUbh27ZpYPzBCFNXKlSvRoEEDWFlZwdvbG2PHjkVsbCz3fJs2bSSyn4KCAri7u8PDwwNNmjSRyDblSa2TY0lJCf777z8MHDgQlpaWOHr0KObNm4fU1FTs2bMHV65cwZEjR/DTTz9JI17yHpQca0cgEHANy968ecP1ESVEUUVGRmLdunW4f/8+srKysG3bNggEAsTGxqJz587w9vaGs7OzRPb1/PlzhISEIDg4mKpVgbJWTiKRCGPHjkV4eHiVrZS8vb1haGgogfBIbVByrD1PT08cPnwYABAUFERTIBGFVVJSgqlTp3JzeC5atAitWrUCANy8eRNhYWEAyqYqk4SKfWVNTU0lsk15UuuS46ZNm5CamootW7ZU23zX0NAQiYmJdY2N1BIlx9qrOMZkUFAQj5EQUjfr16/naj/at2+Pb775hnuuvMuFvr4+lzDrKj09nbuvjN1xap0cJ06cyEtH3aysLIwfPx76+vowNDTE1KlTxS4IV6V79+4QCARit5kzZ8ooYtmj5Fh79vb2MDQ0hJaWFl6+fAmRSMR3SITUWlxcHFasWAGgbID5nTt3ciMYpaSkICUlBQDg4uIiscEuykuOAoFAKRtkKcyQIOPHj0dMTAwuX76MM2fOIDAwEDNmzPjgetOnT0daWhp3+/XXX2UQLT8oOdaeiooKxo8fD5FIhBs3biAyMpLvkAipFZFIhGnTpnGtURcuXCh2eeDWrVvcfVdXV4nttzw5Nm7cWCn7rSrEK4qNjcWFCxdw69Yt7kP/448/0L9/f6xfv/69QyHp6OgoZX14VSg5fhwHBwduuL2zZ8/SdUeiUHbs2IHg4GAAZQPqL1++XOz58muNgOSSo0gkQkZGBgDlrFIFFKTkGBoaCkNDQ7GDVq9evaCioiL2wVflwIEDMDY2hr29PZYsWYL8/Pz3Ll9UVITc3Fyxm6Kg5Phx+vfvz90/d+4cj5EQUjsJCQn4+uuv4enpiQYNGuDvv//mRsEpFxISAicnJ/Tu3RtdunSRyH6zsrJQUlICQHmTo0KUHNPT0yvVaaupqaFhw4ZiF4XfNW7cOFhaWsLc3Bz37t3D4sWL8fDhQxw/frzaddasWcPV3SsaTU1N7v6HTgLI/1hYWMDZ2RmMMaioqCAlJYWGRCRyTygUYvLkyXj79i2CgoKwcOFCdO/eXWyZnJwcBAcHQygUws7OTmKJrGJLVWVNjryWHL/99ttKDWbevcXFxX309mfMmIE+ffrAwcEB48ePx969e3HixAkkJCRUu86SJUuQk5PD3Z49e/bR+5c1NTU1DBo0CO3btwdjjO9wFMqwYcMQFRWFmzdv4tixY3yHQ8gH/f7777hx4wYAwMbGplJ1KgD4+/tzXTt8fHwktu+nT5/CwsICLi4ucHR0lNh25QmvyXHhwoWIjY19783GxgampqbcANHlSktLkZWVVavriZ07dwbw/sltNTU1oa+vL3ZTJE+ePMG9e/dw584danlZC5988gl3v7zfIyHy6t69e/j111/RpUsXCAQC7N69u8qO+JcuXeLuSzI5JiQk4NmzZ4iIiFDaPu28Vqs2bty4RuP8ubm5ITs7G7dv30bHjh0BlJ0RiUQiLuHVRHkfIGWtBgAAa2trxMTEoKioCGlpaVQ9WENt27aFg4MD7t+/j9DQUCQlJcHS0pLvsAippLCwEOPHj0dGRgYyMjLw888/i/XXrag8Oaqrq8PLy0tiMZTPEQlAacfRVogGOW3atEHfvn0xffp0hIeHIzg4GHPmzMGYMWO4lqopKSmws7PjOrsmJCRg5cqVuH37Np4+fYpTp07h008/Rbdu3dC+fXs+X45UVZx2iQZiqJ3Ro0dz948cOcJjJIRUb8mSJdw8mu3bt8eCBQuqXC42NhZNmjRBhw4d4O3tLdEh3h4/fszdp+TIswMHDsDOzg49e/ZE//790bVrV+zYsYN7vqSkBA8fPuQaomhoaODKlSvw8fGBnZ0dFi5ciOHDh+P06dN8vQSZsLa25u4/efKEx0gUT3lybNmyJW7evEnXbYncuXDhAq5evQqg7BLQgQMHxBriVXT8+HGEhoYiKioKAwYMkGgc5cnR0NAQxsbGEt22vFCI1qpA2bQ6Bw8erPZ5KysrsYOZhYUFrl+/LovQ5AqVHD9eixYtMGrUKBw5cgSPHz/G7du3qc8jkRupqan49NNP8fLlS3h7e2Po0KGwt7evdvmKDcuGDBkisTgKCgq4bhwtW7aUyNyQ8khhSo6kZqjkWDcVGy1UrJkghE9CoRATJkzAy5cvAQDa2tqYM2dOtcs/evSIa2PRqVMniV4/f/DgAVJTU6Gjo8PNaqOMKDkqmYrJkUqOtTd69Ghu4taDBw+KzXZOCF9Wr16NgIAAAIC5uTn27Nnz3jFS9+3bB3t7e3h5eWHixIkSjaV8iMX8/Hw0a9ZMotuWJ5QclYyuri7XAphKjrWnq6uLcePGQV9fH05OTti/fz/fIZF67vr162KDivv6+r73Ol9paSl27dqF6OhoBAUFiXVTkoSK4w9Lam5IeUTJUQmVX3dMTU2lYeQ+wty5c8EYQ3BwMDZs2MB1oiZE1l6+fIlx48ZxfZaXL1/+warM8+fPc7NwDBw4UOLduaKiorj71U1bqAwoOSqh8qpVxhiSkpJ4jkbxtG3blus/m5CQAD8/P54jIvWRSCTCnDlzkJqaCgDo0aMHvvvuuw+uV/Fa+eeffy7RmEpLS3H37l0AZQ3YFG2QlNqg5KiEqMVq3S1atIi7v27dOurWQWRu1apVOHfuHDp16gQTExPs378fqqqq713n2bNn3OD5FhYW6NOnj0RjevjwIVcbpcxVqgAlR6VELVbrrnfv3nBwcAAA3Lx5k5sSiBBZOHv2LJYvX443b97g9u3bOHr0aI1G9vr333+5Kthp06Z9MJnWVn253ghQclRK1GK17gQCAb7++msYGRmha9euSj1JNpEv8fHxmDBhAldbsXr16hp1mSgtLcU///wDoKzhzpQpUyQeW0xMDDc1XocOHSS+fXmiMIMAkJpr2bIlevbsiaysLEqOdTBmzBisX7+em/kgODgYHh4ePEdFlNnbt2/xySefIDs7G0DZgPiLFy+u0bonT56EiYkJGjduDAsLC6l0s/D390dRURHs7e2VfoAMKjkqIQsLC9y6dQtRUVEfnAyaVE9DQwPz5s3j/v/hhx/4C4YoPcYYpk2bhvv37wMA7OzssHv37hqNQMMYw65duxAZGYmoqKhqx1uti7y8PERGRnIl2oYNG0p8H/KEkqMSEggEcHJygoGBAYyMjN47ITR5v08//RQtWrQAAAQEBODy5cs8R0SU1aZNm3Do0CEAgJ6eHk6cOMENSPEhp06dwrlz5+Ds7IwRI0ZIZeSa8kmTASj1yDjlKDkqqV69eiEnJwf379/HzZs3+Q5HYampqWHFihWwsbGBi4sLFi9eTP0eicRduHABv/76K9q2bQsA2LNnD+zs7Gq0rlAo5Lp4REZGYsKECVIZ7zQwMJC7L8npr+QVJUclVXF27opfalJ7Y8aMgbGxMSIiIhAVFYVdu3bxHRJRItHR0Rg1ahQyMjKQkJCAjRs3YtiwYTVef9++fXjw4AEAwN3dHYMHD5ZKnBUncqCSI1FYXbt25e4HBQXxGIniU1FREWut+t133yEnJ4fHiIiyePHiBQYNGsSN4Ttw4EB89dVXNV6/sLAQP/74I/f/2rVrpVJqfPPmDXcttFWrVjA1NZX4PuQNJUcl1bBhQ66fXmRkJA2gXUdeXl4YOXIkgLIhvVauXMlzRETRFRYWYtiwYXj69CkAoGPHjh8cUPxdW7duxbNnzwAA/fv3h6enpzRCxfXr15Gfnw8nJyeMHz9eKvuQN5QclVh51YdIJEJISAjP0Si+devWcX28jh07hpiYGJ4jIoqKMYbp06dzv0tzc3P4+fmhQYMGNd5GTk4Ofv75ZwBljfDWrFkjlVgB4MyZMxAKhbhz547YJRtlRslRiVU8i6TrjnVnaWmJpUuXokePHkhNTcXMmTO50UgIqY2ff/6Zm/FFR0cHp0+frvUA4evXr0dmZiYAYPz48Wjfvr3E4wTKEvmZM2cAAJqamujZs6dU9iNvKDkqMUqOkjd//nwkJSWhpKQEN27cwLZt2/gOiSiYvXv3YuvWrdxIVvv27av1UGwpKSnYuHEjAEBdXR0//fSTxOMsd+/ePTx//hwA4O3tDV1dXantS55QclRi5ubmXB+98PBwmr5KAnR0dPD3339z/y9evBjJyck8RkQUyYULFzB16lSkpqbi9evX+PPPPz9qvsU1a9bA2dkZzZs3x8yZM8WGjJS08lIjUNZgqL6g5Kjkyq87FhcXIzw8nOdolIO3tzemT58OAGjfvj1mzJhB1avkg27duoURI0agtLQUADBu3DjMmjWr1ts5efIktmzZgjt37sDZ2RnLli2TdKhizp49y90fMGCAVPclTyg5KrmK/ZGoalVyfv31VwwYMAAhISG4ePEiNmzYwHdIRI7Fx8djwIABePv2LYCyMVM3b95c624Xr1694uZofPPmDYYNG4ZGjRpJPN5yL1++5AYRadeuHaysrKS2L3lDyVHJVUyOAQEBPEaiXAwNDbFw4ULu4Pbdd98hIiKC56iIPMrIyECfPn3w8uVLAGW/yQMHDnzUdFKzZs3CixcvAACDBw/GxIkTJRrru86fPw8nJydoaGjUqypVgJKj0rOyssLw4cPh6uqKqKgo7syV1J23tzc3Y0JpaSnGjRuHN2/e8BwVkSc5OTkYMWIEN6+qvb09/Pz8uC5BtXH48GEcPXoUQFk/5u3bt0ulw39FBw4cQFRUFHR0dLh+vvUFJUclJxAI0KhRI4SHh+P169e4cuUK3yEplZ9++gmdOnUCADx+/LjG0wsR5Zefn49BgwYhPT2dm0bq/PnzMDQ0rPW20tPTxa5P/vXXX1IfpSYjIwNXr14FUFZTouyTG7+LkmM9UHGsxVOnTvEYifJRV1fHwYMHoaurC09PT/zzzz9irVlJ/VRUVIRhw4YhKCgI8fHxsLCwwIULFz5qjkXGGGbMmIGsrCwAwKhRozBq1ChJh1zJ0aNHuUH2x44dK/VSqtxh5L1ycnIYAJaTk8N3KB8tPz+f6ejoMACscePGrLS0lO+QlM7JkycZAAaAaWhosJs3b/IdEuFJcXExGzJkCPd90NfXZxERER+9vX///ZfblomJCXv58qUEo62eu7s7t9/79+/LZJ/SVpvjOZUc6wFtbW306dMHQFnrMxpKTvKGDBmCL7/8EkBZt5lx48ZxHadJ/SEUCvHpp5/Cz88PQFm/2HPnzqFjx44ftb379+9j9uzZcHZ2homJCXbs2AFjY2NJhlylp0+fcscJe3t72NvbS32f8oaSYz0xYsQIeHt7o127djh27Bjf4SilDRs2wNPTk6s6Gzx4MA34Xo+IRCLMmDGDm7BYU1MTp06dgoeHx0dtLysrC8OHD0dBQQEiIyMxfvx4DBkyRJIhV+v48ePcNc1x48bJZJ9yRwYlWYWmDNWqjDH2+vVrpqGhwVXNlJSU8B2SUkpPT2edOnXiqqP69u3LiouL+Q6LSJlIJGJLly5lAoGAAWBqamrszJkzH7294uJi5uPjwzw8PBgA5uzszAoKCiQYcfWEQiGzsrJiAJirqyt7+vSpTPYrC1StSioxNDTEoEGDAJTNIUetVqWjSZMm2LNnD4yMjACUDRc2c+ZMMMZ4joxIC2MMc+fOxapVq9ClSxdoamri4MGDHz2aDGMMX375JS5duoTg4GD0798fx44d+6juHx/j0qVL3DRaRkZGsLS0lMl+5Y60M7WiU5aSI2OMnThxgivRjB8/nu9wlFpgYCBXUgfAVqxYwXdIRApEIhGbPXs29zkLBAJ29OjROm1z3bp1Yo27AgMDJRRtzVRsTHTixAmZ7lvaanM8p+T4AcqUHAsLC5mRkREDwHR0dFheXh7fISm1I0eOcAcZLS0t9vfff/MdEpEgoVDIvv/+e64qVSAQsL1799Zpm8eOHeO+MwDY/v37JRRtzTx79oypqqoyAMzc3FzpLr9QtSqpkqamJkaPHg2grIPyiRMneI5IuY0cORIbNmyAkZERbGxsMGPGDOzZs4fvsIgECIVCTJ8+HatXr4a7uztUVVWxZ8+eOg3nFhQUhAkTJnD/r1ixAuPHj5dEuDW2c+dOrm/j9OnToaamJtP9yxUZJGuFpkwlR8YYu3HjBndW6uPjw3c4Sk8kErFVq1Zx77mKigo7ePAg32GROigpKWHjx48X+0yPHTtWp23evn2bGRgYsK5duzIAbOLEiUwkEkko4popKSlhTZs25V7Ts2fPZLp/WaBqVQlStuQoEom4lmgqKiosNTWV75CUnkgkYnPmzGEAWKdOnZi6ujrbvn0732GRj1BQUMCGDx/OOnbsyLVKPXLkSJ22eefOHdawYUMu2X755ZessLBQQhHXXMWBLAYPHizz/csCJUcJUrbkyBhjS5cuZQCYo6Mj27RpE9/h1AtCoZAtX75crJHOzz//LPPSAfl4OTk5zNvbmwFg6urqzM3Njfn5+dVpm/fv32fGxsbcd6Jr1668tQUYMGAA8/T0ZI0bN2bnzp3jJQZpo+QoQcqYHJ88ecKVHq2srGg4ORkRiURs0aJFYg0uFi5cSAlSAbx48YIrLQJgDRo0YBcvXqzTNu/evcvMzMy4bbq5ubHc3FwJRVw74eHhXByOjo5MKBTyEoe0KWWDnPIL3zo6OjUe1Z4xhh9//BFmZmbQ1tZGr1698PjxY+kGqgCsra1hZ2cHoGyYqNOnT/McUf0gEAjw66+/Yu3atdxjGzZswNSpU7nZ4Yn8SU5OhqenJ27fvg2gbLqoq1evwsfH56O3GRYWBm9vb1hYWEBVVRWdOnXC+fPnoaenJ6mwa+XXX3/l7s+ePRsqKgqTGqRH+rlaMn788Ue2ceNGtmDBAmZgYFCjddauXcsMDAzYyZMn2d27d9ngwYOZtbV1rUaaUMaSI2OMnTt3jjtT9Pb25jucemfHjh1MRUWF+wwmTJjA3r59y3dY5B2xsbGsWbNm3Odkbm7OoqOj67TNixcvsgYNGnDbnDx5MsvKypJQxLX36NEjrjtKkyZNZDYSDx+Uulp1165dNUqOIpGImZqasnXr1nGPZWdnM01NTebr61vj/SlrchQKhaxVq1bcD/TevXt8h1TvHD16lGloaDBjY2Nmbm7OXFxcWEpKCt9hkf938+ZNZmpqyv1GWrZsyRITE+u0zX/++Yd16NBB7MSU72PLjBkzuHjWrFnDayzSppTVqrWVmJiI9PR09OrVi3vMwMAAnTt3RmhoaLXrFRUVITc3V+ymjFRUVLhZJADgjz/+4DGa+mnEiBE4e/YsWrZsidTUVERGRmLUqFG4du0a36HVe35+fvD29oalpSUEAgE6dOiAoKAgWFlZfdT2SkpKMGfOHEybNg0PHz5E27ZtMWzYMJw7dw76+vqSDb4WUlJS4OvrCwDQ09PDzJkzeYtF3ihtckxPTwdQNtZlRU2aNOGeq8qaNWtgYGDA3SwsLKQaJ58mTZrEXePYv38/MjMzeY6o/unVqxe2b98OS0tLeHl5ITg4GD179sSqVasgEon4Dq9e2rx5M4YNG4aCggKEhYVhxowZCAgIqHQsqamXL1+id+/e2LJlC4CyATiGDRuGI0eOyGy81Or88ssvUFdXh7e3N+bNm1fj9hz1Aa/J8dtvv4VAIHjvLS4uTqYxLVmyBDk5Odzt2bNnMt2/LOnp6WHKlCkAgIKCAuzYsYPniOonBwcHREZGcqORiEQi/PDDD+jbty9evHjBc3T1h1AoxLx58/DVV19xA8WPHz8ev//+OwwMDD5qm5GRkXBxccH169cBABoaGti5cydWrVrF++gzT58+xbZt25CVlYXw8HDMnj2b13jkjvRreav34sULFhsb+95bUVGR2Do1veaYkJDAALCoqCixx7t168bmzp1b4xiV9ZpjucePHzMLCwvm6elZ68ZKRLJKS0vZTz/9JNZQx8zMjF27do3v0JTe27dv2dChQ8W62SxdurRO3WwOHDjAtLW1xT7L0NBQCUZdN5MnT+Zi+/777/kORyaoQQ77X4Oc9evXc4/l5ORQg5wqjBw5kvuR/Pnnn3yHU+/5+/uLNQRRUVFhK1euVNq+Z3x7dw5ONTU1tnPnzo/eXn5+Pps3bx43yD8A1qVLF7lqbBUTE8OdhBkZGbHXr1/zHZJMKGVyTEpKYlFRUWzFihVMV1eXRUVFsaioKLHRJFq3bs2OHz/O/b927VpmaGjI/Pz82L1799iQIUOoK0cVIiMjuR9xs2bNeBm6iohLT09nPXv25D4XExMT1rt3bxYXF8d3aEolKiqKubm5MT09PQaA6evrs0uXLn309m7cuMHatm3LrKysWIcOHZiKigqbOnWq3P2mhg8fzn231q5dy3c4MqOUyXHSpEliVR7lt4CAAG4ZAGzXrl3c/yKRiP3www+sSZMmTFNTk/Xs2ZM9fPiwVvutD8mRMcYGDRrEvafbtm3jOxzCyqpZV6xYwdTU1JiTkxPr0KED09TUZMuXL2f5+fl8h6fwDh8+zFV7uri4MGtr64/u0pSTk8NmzZrF/YZat27NDAwMmK+vr9yNgHTr1i0uTlNT03rVv1YpkyNf6ktyrDh8lKWlJSsuLuY7JPL/QkNDmYODg1hndGtra3bq1Cm+Q1NI5fMwVjzJ7ty5M0tPT/+o7fn5+XGzWZTfOnXqJLelfB8fHy7OLVu28B2OTFFylKD6khwZY6xv375MIBCwzp07s7/++ovvcEgFeXl57Ouvv2ZqampiB+GBAweyhIQEvsNTGDk5OWK1JADYpEmTPqohWlpamtj1eqBsEvFNmzbJ7XjFly9fZjY2NtwJ1rsNHpUdJUcJqk/J8fbt26x169YMADM2NmbZ2dl8h0TeERMTw80MUX7T1NRkP/74I1W1fsCjR49YmzZtxBo6bdq0qdbVnkKhkO3cuZMZGhqKfQ59+vSp8wg60lRcXMzatm3LADAvLy92+PBhvkOSOUqOElSfkiNjjI0ZM4b7sX/99dd8h0OqIBKJ2KFDh5i5ubnYwdnKyoodPnyYWrVW4dy5c6xJkybce2VkZPRRDW/8/f1Z586dxZJso0aN2P79++Xu2uK7fvvtNy5mV1fXevk9oeQoQfUtOT59+pRpaWkxoGzOusePH/MdEqlGbm4uW7RoEVfVamZmxgwMDFibNm3Y7t276boxK2vUtHTpUiYQCJi7uzsDwNq2bVur77VIJGL+/v7My8uLSywtW7Zk6urqbMKECezFixdSfAWSkZGRwQwMDLjkGBYWxndIvKDkKEH1LTky9r/JkAGwoUOH8h0O+YCYmBjWo0ePSp3YmzdvzjZv3lyvWiNWlJGRIdYdBgCbN29ejX/LIpGIXb58mXl6eoptw9ramjk5ObGgoCApvwLJmTJlChf/lClT+A6HN5QcJag+Jse8vDyxSVivXr3Kd0jkA0QiEbtw4QLr2rVrpe5OxsbGbOXKlbxOiyRrQUFBYtXOqqqq7Ndff61R1Wf5e1le0qx4a9myJduzZw8rKSmRwauQjKCgIObo6Mj14/zYVrnKgJKjBNXH5MgYY7t37+YOCO3bt5fb1neksqCgIDZgwIBKB3Y9PT22aNEilpSUxHeIUiMSidj69euZqqqqWF++69evf3Dd/Px8tmvXrkqlTQDMzs6O7d+/X+F+B/n5+Vwju65du9b7VuiUHCWoviZHoVDIOnbsyB0cduzYwXdIpJbu3r3Lxo4dKzZWq5ubG1NRUWFTpkxh+/fvFxthStFlZmayYcOGiSU1b29vlpaW9t71oqOj2bfffis23JuLiwt3fdLX11fhkmK5b775RqwRjqK+Dkmh5ChB9TU5MlZWAin/YTVu3Ji6diio+Ph49vnnnzNtbW1ma2vLNDQ0uOHStLW12ahRo9jx48cVetD5GzduMBsbG7EJvL/77rtqqz+fP3/O1q1bx1U3vlsdPWbMGIVv+Xvz5k3uxEhDQ4PFxMTwHRLvKDlKUH1OjowxNmrUKO6A8c033/AdDqmDly9fsp9++qlS6ar8ZmBgwCZPnszOnz+vMJ3DS0pK2PLly7kkYGlpyaysrNiZM2cqLRsfH882b97MfHx8mEAgEHvtFhYWTEdHh02cOJHdvHlT7rtlfEhhYSHXpxEA+/nnn/kOSS5QcpSg+p4cExMTmaamJmvQoAHz8PBgsbGxfIdE6kgoFLLr16+zL774ghkbG1dKkp06dWK6urps8ODBbOvWrSw2NlYuk0ViYiLz8PAQi71r167cNdX8/Hx27tw59uWXX7IWLVpwy3Tp0kVsHVdXV/b777+zzMxMnl+R5Hz33Xfc6+vYsaNCNSCSptoczwWM/f+snqRKubm5MDAwQE5ODvT19fkOhxe//fYbfv31V6SlpaFr1664fv06VFR4nSebSEhJSQmuXr0KX19fnDhxAnl5eejSpQtu3rwJANDS0kJxcTEaNWoEd3d3eHh4wN3dHR07duR1FvtDhw7h888/R25uLgBAVVUVixYtgru7OyIiInDjxg1ERERwz1fUtWtXZGRkYPz48Rg3bhxatmwp6/Cl6vbt2+jcuTOEQiHU1dVx+/ZtODg48B2WXKjN8ZyS4wdQcgQKCgrg4OCAhIQEGBsb46effsIXX3zBd1hEwgoLC3H+/HlcuHABJ06cwMuXL9GpUyfcunWr0rJNmzaFiYkJ2rZti3bt2nF/rayspDrDfW5uLqZPn44jR45wj2lqakJbWxvZ2dlo0aIF4uPjAQCOjo64e/cuAEBNTQ0eHh7o168f+vXrBwcHBwgEAqnFyZfi4mK4uLjg/v37AICffvoJP/zwA89RyQ9KjhJEybGMv78/Vq9ejYiICBQVFeHWrVt0NqrERCIRoqKiEBERgVOnTiEkJATZ2dnc8xVLlxU5OjoiJycHzZs3h4WFBSwsLKCtrQ19fX3o6emJ/W3QoAE0NTVRWlqK/Px85OTkIDc3Fzk5OWK38sdev36NoKAglJSUVBu3l5cXrl+/DgAYPnw4jIyM0K9fP/Ts2RMGBgYSf5/kzapVq7Bp0yZkZWXByckJ4eHhUFdX5zssuUHJUYIoOf7PV199hc2bNwMA2rRpg4iICOjo6PAcFZEFkUiEuLg4BAcHIyQkBKWlpfD19YVQKBRbrmnTpkhJSeH+NzU1RXp6epXbtLGxwZMnT+Dm5obQ0NA6xWdmZoa2bduid+/esLCwQNeuXdG8efM6bVPR+Pv7o1evXjAyMoKDgwN+++03ODk58R2WXKHkKEGUHP+nsLAQXbp04aqqZsyYge3bt/McFeFLUVERHj16hJiYGMTExODx48eIj4/HkydP8Pr1awCAnp4e8vLyqlzf3t4e0dHRYqW9mjAzM0Pfvn3h7u6Otm3bok2bNjAyMpLIa1JUL1++hKOjI9LS0gAAa9euxeLFi3mOSv5QcpQgSo7i4uLi0LFjR+Tn5wMAjh49ihEjRvAcFZE3b968QUpKCl68eIHc3Fzk5eVV+qutrY2UlBQ0b94cr1+/hoGBAfT19WFgYABtbW2cOnUKJ06cgEgkAlB2bXH16tWYN28eVFVVeX6F8kMkEmHgwIE4f/48AKB37964cOECNZqrAiVHCaLkWNnOnTsxbdo0AIChoSHu3LkDS0tLnqMiyiI8PByTJk1CXFwc91jnzp2xe/du2NnZ8RiZfFqzZg0OHjyI6OhoNGnSBHfv3kWTJk34Dksu1eZ4TqcWpNamTJmC0aNHAwCys7Mxfvx4lJaW8hwVUXSFhYVYunQp3NzcuMSooaGBX375BTdu3KDEWIXTp0/j+++/R0xMDHx8fLB3715KjBJCyZHUmkAgwLZt22BlZQUACA4OxsqVK/kNiii0gIAAtG/fHteuXeOqUV1cXBAVFYVvvvlGqt1DFFVMTAzGjRsHVjaYCzw9PeHj48N3WEqDqlU/gKpVqxcaGgpPT08IhUKoqKjA398fXl5efIdFFMirV6/w9ddfY8+ePdxjLi4uGDZsGCXF98jKyoKrqysSEhIAACNHjsThw4eVsu+mJFG1KpEJNzc3/PTTTwDKGgWMHz8emZmZPEdFFAFjDHv37oWdnZ1YYnR3d8fu3bvx3XffUWKsRmlpKUaPHs0lRicnJ+zatYsSo4RRciR1snjxYvTo0QMAkJKSgqlTp4IqI8j7PH78GL1798akSZO4kykDAwNs27YNQUFBaNeuHc8Ryrevv/4aV65cAQA0btwYfn5+aNCgAc9RKR9KjqROVFVVsW/fPjRq1AgA4Ofnhz///JPnqIg8Ki4uxqpVq+Dg4ICrV69yj48aNQqxsbH4/PPPqfvBB/z777/4/fffAQDq6uo4fvx4vRvsQFbom0jqzNzcHLt37wYAuLq6YuvWrfD39+c3KCJXrl69inHjxuGHH35AUVERAMDS0hJnz57F4cOHYWZmxnOE8i84OBgzZ87k/t+6dSu6du3KY0TKjZIjkYiBAwdi3bp1YIwhJSUFw4YNw7179/gOi/Ds6dOnGDFiBHr16oUTJ07A1tYWqqqqWLhwIWJiYtC/f3++Q1QIT548wZgxY7hxZefMmcP1NSbSQcmRSMy8efPQtGlTbhSUvn37Iikpie+wCA/y8/OxfPlytGnTBv/99x+AskZb5bN8rF+/nq6T1VBmZiYGDhwIXV1dGBsbw9vbGxs3buQ7LKVHyZFIjJqaGvbv3w9XV1cAQFpaGvr06YNXr17xHBmRFcYY/vvvP7Rp0wYrVqxAYWEhAMDExAS7du3CgQMH0KFDB56jVBz5+fkYOHAgYmNjERcXh/bt2+Po0aM004YMUHIkEtWgQQOcPXsWrVq1AgA8fPgQAwcOxNu3b3mOjEhbTEwMevXqhREjRiA5ORlA2QnTggUL8OjRI0yePJka3NRCYWEhpk6ditjYWABlM5z8888/XOM3Il30TSUSZ2xsjIsXL8LU1BQAEBYWhtGjR793Hj6iuDIzM/HVV1/B0dFRrCGWj48P7t27hw0bNtSLuRQlqaCgAEOGDMGhQ4dgbGyM1q1b48KFC7C2tuY7tHqDkiORCisrK1y4cIEbheLs2bP4/PPPqQ+kEiksLMSGDRvQsmVLhIeHc3M7Wltb4+TJk7hw4QLatGnDc5SKpzwxXrp0CQCQkZGBXbt2wdHRkefI6hdKjkRqHB0d4efnBw0NDQDArl27sHTpUp6jInUlEolw4MAB2NnZ4euvv8br16+RmJiIxo0bY+XKlXjw4AGGDBlCI7Z8hPz8fAwePBiXL18GAOjq6uLChQtwc3PjObL6h5Ijkaru3btj//793IHy559/pkECFNjVq1fh4uKCCRMmcC2RBQIB+vbti6ioKCxduhRaWlo8R6mYyhNj+eg3enp6uHjxIjw8PHiOrH6i5EikbuTIkdi8eTP3/9y5c3H06FEeIyK1de/ePfTr1w+9evVCVFQU93ifPn0QFRWF3bt3o2nTpjxGqNjy8/MxaNAgbuSg8sTo7u7Oc2T1FyVHIhNz5szBd999B6Csuf/atWtx9uxZnqMiH/L8+XN89tlncHJywoULF7jHnZyccOnSJVy4cIGuhdXR27dvMXDgQK4xk76+Pi5dukRVqTyjKas+gKaskhzGGKZOnYr4+HiEhIRAVVUVR48exeDBg/kOjbwjKysLf/zxB9auXcv1VQSA5s2bY/Xq1Rg3bhx1y5CAt2/fYsCAAbh+/TqA/yXGzp078xyZcqIpq4hcEggE2LFjB5o3bw6hUIji4mIMHz6cG0GF8C8nJwcrVqyAt7c3VqxYAQcHBwCAoaEh1q1bh4cPH2LChAmUGCXgzZs36N+/P5cYDQwMcPnyZUqMcoImTCMypaamxg1SfuDAAZSWluKrr75Cbm4uPvvsM36Dq8fy8vKwefNmrF+/HtnZ2QDK5lbMzs7G/Pnz8f3331PncwnKzMzEqFGjkJiYCKDs5OPy5ctwcXHhOTJSTmFO/1avXg13d3fo6OjA0NCwRutMnjwZAoFA7Na3b1/pBko+SE1NDXv27MHkyZNhYmICFRUVTJkyBatWraJ+kDL25s0brF27FlZWVli6dCmXGFVVVdGlSxecO3cOGzdupMQoQQ8fPsTkyZPh7++PkpIStG/fHleuXKHEKGcUJjkWFxdj5MiR+OKLL2q1Xt++fZGWlsbdfH19pRQhqQ1VVVXs3LkTX3zxBZ49ewYA+OGHHzBjxgyUlpbyHJ3yy8/Px/r162FtbY0lS5YgKysLQNnn8tlnn+HRo0fYsGEDLC0teY5UuZw9exaurq44c+YMvLy8AAD79u1Dx44deY6MvEthqlVXrFgBAFyVXE1pampyw5gR+aKiooJly5ahQYMG+OabbwAA//zzD1JSUnDkyBHo6uryHKHyKSgowPbt27F27VpkZGRwj6uoqGD8+PH44Ycf0LJlSx4jVE6MMfz888/44YcfuNqR3NxchIeHw8LCgufoSFUUpuT4sa5duwYTExO0bt0aX3zxBTIzM9+7fFFREXJzc8VuRHoEAgEWLVqEgwcPciPpnD9/Hl5eXkhPT+c5OuWRl5eHdevWYeDAgZg/fz6XGAUCAcaOHYuYmBjs3buXEqMUvHnzBiNHjsTSpUu5xDhixAgEBgZSYpRnTMHs2rWLGRgY1GhZX19f5ufnx+7du8dOnDjB2rRpwzp16sRKS0urXWfZsmUMQKVbTk6OhF4BqU5AQAAzMDDg3nMrKysWGxvLd1gK7cWLF2zp0qXM0NCQe19bt27NALBRo0ax6OhovkNUavHx8cze3p577wUCAfv555+ZSCTiO7R6KScnp8bHc16T4+LFi6tMRBVv7x4ca5Mc35WQkMAAsCtXrlS7TGFhIcvJyeFuz549o+QoQ9HR0czCwoL7/I2MjN77eZGqJSUlsblz5zJtbW2x35NAIGDz5s1jd+/e5TtEpXfp0iVmZGTEvff6+vrszJkzfIdVr9UmOfJ6zXHhwoWYPHnye5exsbGR2P5sbGxgbGyM+Ph49OzZs8plNDU1oampKbF9ktpp164dbt68if79++Pu3bto3bo1+vTpg19//RXz58+nwaw/IC4uDr/88gv2798v1rBJTU0NEydOxDfffAM7OzseI1R+jDFs2LABixcvhkgkAgDY2dnh5MmTaN26Nc/RkRqTfq6WrLqUHJ89e8YEAgHz8/Or8Tq1OdMgkpOTk8M+//xzpqmpyZ15Dx8+nD6Haty6dYt98sknTCAQiJUUtbW12VdffcWSk5P5DrFeePv2LRs3bpzYZzB48GD63soJhalWrY2kpCQWFRXFVqxYwXR1dVlUVBSLiopieXl53DKtW7dmx48fZ4wxlpeXx77++msWGhrKEhMT2ZUrV5izszNr2bIlKywsrPF+KTnyp6SkhC1ZskTsQNOqVSt2//59vkOTCyKRiF25coX16tWr0uUIQ0ND9sMPP7CXL1/yHWa98fTpU9ahQwexz2HZsmVMKBTyHRr5f0qZHCdNmlTlNcmAgABuGQBs165djDHG8vPzmY+PD2vcuDFTV1dnlpaWbPr06Sw9Pb1W+6XkyL9Tp06JNdTR0dFh+/bt4zss3hQWFrLdu3czJycn5ubmJvZ7MDMzY+vWrWO5ubl8h1mvHDt2jHl5eXGfg66uLneiTuSHUiZHvlBylA/x8fHMyclJLBF89dVXLD8/n+/QZCY9PZ0tX76cNWnShHsPbGxsmEAgYLa2tmz79u2soKCA7zDrlfT0dDZ8+HAGgLVs2ZK1aNGCtWjRgloBy6naHM+Vvp8jUQ62trYICQnB1KlTAZR1Wr948SI6duyIyMhInqOTrrt372LKlClo3rw5li9fLtZ5v1GjRjhx4gTi4uIwY8YMmmhYRhhj2L9/P9q2bcsNnP/48WOMHj0a4eHhaNeuHc8RkjqTfq5WbFRylD87d+5k/fr140pPampqbNWqVaykpITv0CSmtLSU+fn5MW9v70qXElRVVdmoUaNYSEgI9ZfjQXJyMuvfv7/YZ2JsbMwOHjxIn4eco2pVCaLkKJ9iYmKYs7Oz2AGqS5cu7OHDh3yHVie5ubns999/Z7a2tlU2svnmm29YUlIS32HWSyKRiG3fvp3p6emJfS5jxoxhL1684Ds8UgOUHCWIkqP8KioqYt9//z1TUVHhOri3adOGrVixQuGuvSUkJLD58+czfX39SkmxVatWbOvWrezNmzd8h1lvJSQkVCrFm5mZsZMnT/IdGqkFSo4SRMlR/oWEhLAWLVqwnj17ijVUkffRSEpLS9nZs2fZoEGDmIeHR6Wk6OPjw86dO0ddAXhUWlrKNm3axHR0dMQ+mylTprCsrCy+wyO1RA1ySL3i5uaGqKgouLm5QVVVFQDw5MkTDBw4EEOGDOEmlJUXaWlpWL16NWxtbTFgwAA8e/YM4eHhMDY2hpaWFqZPn47o6GhcvHgR/fr1g4oK/Uz5EBsbC09PT8yfPx/5+fkAAEtLS1y8eBE7d+6EkZERzxESqZJBslZoVHJULPfv3xfrbwaAaWlp8V7VKhQK2cWLF9knn3zC1NTUKl0rbdasGduyZQt12pcDubm5bPHixaxr165in9Ps2bOp/6iCo2pVCaLkqHhEIhE7cOAAMzMzEzu42drayryqNT09nf3888/M2tq6UrWpQCBg/fr1YydOnFCqlraKqrCwkG3dupU5OjoyAExDQ4NZWVmxli1bsuvXr/MdHpEASo4SRMlRceXk5LAFCxYwVVXVSmNdPnnyRGr7FQqF7PLly2zEiBGVSokAmKmpKfv+++9ZYmKi1GIgNVdcXMz+/vtv1rx5cwaAde7cmUuOGzZsqFcDTSg7So4SRMlR8VVV1dqxY0e2ePFiiTaqyMjIYL/88gtr0aJFlUMd+vj4sP/++48VFxdLbJ/k45WUlLDdu3czGxubSp/V7NmzWUJCAt8hEgmj5ChBlByVQ3lVq6mpKVNVVeWqOd3d3dnixYtZSkrKR223uLiYnTp1ig0fPpy1atWq0kHWxMSEffvtt3SglSOlpaXs4MGDVX5e/fv3ZxEREXyHSKSEkqMEUXJULjk5OWz9+vVMQ0ODtWzZkjsoqqursylTprAHDx7UaDtRUVFs3rx5zMTEhNtGt27duPs9e/ZkR44cYUVFRVJ+RaSmhEIhO3r0KGvXrl2lpNi7d28WEhLCd4hEyig5ShAlR+WUlJTEli1bxjQ0NCodKAcNGsSCgoIqDQWWnp7ONmzYwNq3b19ltWmbNm3YokWL2OPHj3l6VaQqpaWl7L///uMa2lS8eXl5UWObeqQ2x3MBY4zVrvNH/ZKbmwsDAwPk5ORAX1+f73CIhKWlpWHz5s3466+/kJOTI/acm5sb5s2bBwDYt28fzp8/D6FQKLaMhoYGhgwZgkmTJqFPnz5QU1OTVejkA3Jzc/Hvv/9i8+bNSElJQYMGDfD69WsAZZ/typUr0aNHDwgEAp4jJbJSm+M5JccPoORYP+Tm5uLvv//Gb7/9hufPn39w+S5dumDSpEkYPXo0dQaXM7Gxsdi+fTv+/fdf5OXlcY/36tUL2dnZWLlyJfr06UNJsR6qzfGcTnMJAaCvr4/Ro0ejoKAAW7duRVpaWqVlVFRU4OnpibVr16JLly48REmqk5eXh6NHj2LXrl24ceMGmjVrJpYY+/Tpg4ULF6JXr16UFEmNUHIk9VpeXh7OnTuHf/75B1evXsW7FSkqKioQiUQAAJFIhJCQEAwaNAg+Pj4YP348evfuDXV1dT5Cr/cYYwgKCsKuXbtw9OhRvH37lnuuVatWePXqFT799FN89dVXaNu2LY+REkVEyZHUO0VFRbhw4QJ8fX1x6tQpCAQCsLLGadwyXl5emDRpEkaMGIG4uDisW7cO//33H9zc3BAYGIgHDx5gwIABaNiwIYYOHYpRo0ahR48elChlICkpCfv378euXbuQkJBQ6fm2bdvik08+wZEjR9CoUSMeIiTKgK45fgBdc1QOpaWluHbtGi5duoS///4b2dnZYs97eHggLS0Nn376KT799FNYW1tX2kZCQgJ8fX2xadMm2NvbIzAwUOz58kQ5cuRI9OzZkxKlhDDGEBcXh5MnT+LkyZMoLi7GnTt3xJbR19fH2LFjMWXKFHTq1ImqTkmVqEGOBFFyVFxCoRDXr1/HkSNH8N9//+HVq1fw8PBAcHAwt0yjRo0watQoTJw4EV26dKnRQbWwsBCXLl2Cr68vTp8+LVadV87IyEgsUWpoaEj0tSk7kUiEsLAwLiE+evSIe05dXR0NGjRAdnY2evbsiSlTpmDYsGHQ1tbmMWKiCCg5ShAlR8UiFAoRFBTEJcQXL16IPW9gYABVVVX0798f48aNQ69evepUwisoKMCFCxdw9OhRnDp1qspEaWhoiEmTJsHFxQU9evSAubn5R+9PmWVkZCAgIAC3bt3CwYMHkZ6eXuVyjo6O+Pzzz9GvXz9YWVnJNkii0Cg5ShAlR/knFAoRHByMI0eO4NixY8jIyKi0jLa2NgYMGIBRo0ZhwIAB0NHRkXgcFRPl6dOn8ebNG+45a2trbl5JOzs79OzZEz179oSbmxtMTU0lHosiSE9PR1hYGK5evQp/f3/ExMQAAHR1dZGfn881hCpvJTx06FAMGTKkyipvQmqCkqMEUXKUT+UtR8sTYlVdL7S0tNC/f38uIerq6sosvoKCAly8eBFHjx5FdHQ07t27V2kZfX195ObmwsrKCp06deJuHTt2hJ6ensxilTbGGJ4/f47IyEhERUVxf58/f44GDRpUWdp2c3ND48aNMXToUAwaNAjGxsY8RE6UDSVHCaLkKD9KSkoQFBSEU6dO4b///quys76mpqZYQpSHJFNUVISQkBCuhBQeHg6hUIguXbrg5s2blZYXCASws7ODi4sL2rVrhzZt2qBFixawsbGBlpYWD6+g5kQiEeLj48WSYGRkJDIzM6tc3tXVFeHh4VBRUUGnTp3Qo0cP9OjRA+7u7lIp3ZP6jZKjBFFy5NebN29w8eJFnDx5EmfOnOFambZr146rhtPQ0EC/fv0watQoDBw4UO4/p9zcXAQGBnItMCMjI1FQUFBpOV1dXbGqWYFAgGbNmqFFixZiN2trazRt2hSNGjWCqqqqVGIuLS1FZmYmXr16hZcvX3J/y++npaXh4cOH0NDQwO3btz+4PX19fXTo0AGDBg1Cq1at0K1bNxgYGEgldkLKUXKUIEqOspeRkYHTp0/j5MmTuHLlCoqKiiot07NnT+jo6GDUqFEYNGiQQh9YS0tL8eDBA9y6dYu73bt3D46OjjVKNO7u7ggJCYGKigqMjY1hYmICAwMDaGhoiN00NTUrPVbxOVVVVWRlZSErK6tS8nv9+nWlARIqsrW1RUJCAkxNTSs1pDExMUGHDh3g7OzM/bW2toaKikqd3ztCaoOGjyMK5/Hjx1yz/dDQ0CoPxPr6+ujfvz+GDh2Kvn37KnRCrEhNTQ3t27dH+/btMXXqVABl3UXi4uJw//59xMfHi92ysrIqrQ+UVWm+ePECQqEQ0dHRtY6jXbt2ePz4MYqLi2u9bpMmTZCcnAwDAwP07NkTrVu35hKhmZkZ9TskCoeSI+GFSCRCREQElxBjY2OrXM7c3BxDhgzB0KFD0b1793rTX1BLSwtOTk5wcnKq9Nzr16+RkJDAJcuCggLo6enhxYsXyMjIgKGhYbXX+N5HU1MTjRo1EmvcpKenh8aNG6Nx48YwNjaudL/8r7m5OczNzWlWEqI0qFr1A6haVXKKi4sREBCAkydPws/Pr8oWpkDZ8F9Dhw7F0KFD0bFjR6p++whCoRDFxcVit6Kiovf+r6GhAS0tLRgaGsLY2BjGxsbQ1NTk+6UQIjFUrUokLisrC6mpqTA3N0fDhg1rvF52djYuXLiAkydP4ty5c2IzJZQTCARwd3fn+rG1bNlSkqHXS6qqqtDW1qZRYwj5SJQcyXtt3boVq1atEivlmZmZ4YcffsAXX3xR7XoikQh9+/ZFYGAgNDQ0KiVFTU1N9O7dG0OHDsXAgQPRpEkTqb0GQgipLUqOpFpjx47FoUOHKj2elpaGWbNmISgoCAcPHqxyXRUVFZSUlKCoqAjOzs4IDQ2FkZERBg4ciKFDh8LHx0emnfIJIaQ2KDmSKm3durXKxFiRr68vPD09qy1BDhw4EMnJyejbty9Wr16Nrl270kwVhBCFQA1yPqC+NsgxNzevtsHMu8ulpKRU+VxpaSlUVVWpGT8hRC7U5nhOzQBJJVlZWTVKjACQmppaqd9dOTU1NUqMhBCFRNWqhJOVlYWrV6/C19e3VuulpqbWqgUrIYTIO0qO9VhJSQnCwsJw6dIlXLx4Ebdu3XrvEGHVofkJCSHKRiGqVZ8+fYqpU6fC2toa2trasLW1xbJlyz44zFVhYSFmz56NRo0aQVdXF8OHD69yrr/6JCEhAX/99ReGDRsGY2NjeHp6YuXKlQgPD//oxEilRkKIslGIkmNcXBxEIhG2b9+OFi1aIDo6GtOnT8fbt2+xfv36atebP38+zp49i6NHj8LAwABz5szBJ598guDgYBlGz69Xr17B398fV65cwZUrV6Cnp1fl3IIA4ODgAB8fH/Tp0wcxMTGYP3/+B7e/dOlSSYdMCCH8Ywrq119/ZdbW1tU+n52dzdTV1dnRo0e5x2JjYxkAFhoaWuP95OTkMAAsJyenTvHKSnZ2Njtz5gz76aefmJOTEwMgdvPy8uLuN27cmI0bN47t3r2bpaSkVNrW2LFjK61f8TZ27FgeXiEhhHyc2hzPFaLkWJWcnJz3Vufdvn0bJSUl6NWrF/eYnZ0dmjdvjtDQUHTp0kUWYUpdXl4egoKCcO3aNVy7dg23b9+GSCRCo0aNKg0+raGhAXNzc6xZswY+Pj5wcnJ677ilBw8ehKenJ1atWoXU1FTucXNzcyxduvS9I+QQQogiU8jkGB8fjz/++OO9Varp6enQ0NCAoaGh2ONNmjSpNN9cRUVFRWLzB+bm5tY5XknKy8tDcHAwAgICuGQoFAorLZeZmYmWLVtCV1cXvXr1Qq9evdC1a9daz67+xRdf4IsvvvjosVUJIUQR8Zocv/32W/zyyy/vXSY2NhZ2dnbc/ykpKejbty9GjhyJ6dOnSzymNWvWYMWKFRLf7sd68+YNgoODce3aNQQEBCAiIqLKZFjO3t4e3bt3R/fu3eHl5QVjY2OJxNGwYUNKioSQeoPX5Lhw4UJMnjz5vcvY2Nhw91NTU+Ht7Q13d3fs2LHjveuZmpqiuLgY2dnZYqXHjIwMmJqaVrvekiVLsGDBAu7/3NxcWFhYvP+FSNDbt28REhLClQxv3bqF0tLSapdv164dlwy7desGExMTmcVKCCHKitfkWD5xak2kpKTA29sbHTt2xK5duz44x1/Hjh2hrq6Oq1evYvjw4QCAhw8fIjk5GW5ubtWup6mpKdM57PLz8xESEsKVDMPDw9+bDNu0aQNvb2+uZEjJkBBCJE8hrjmmpKSge/fusLS0xPr16/Hy5UvuufJSYEpKCnr27Im9e/fC1dUVBgYGmDp1KhYsWICGDRtCX18fX375Jdzc3HhtjFNQUMAlw2vXriEsLAwlJSXVLm9nZ4fu3bvD29sbXl5eNLUTIYTIgEIkx8uXLyM+Ph7x8fFo1qyZ2HPs/zuul5SU4OHDh8jPz+ee27RpE1RUVDB8+HAUFRWhT58+2Lp1q0xjz87ORnBwMIKCghAUFITi4mJERERUu3zr1q25atLu3bu/twqYEEKIdNCsHB9Q21k5nj17hlu3bsHf3x9BQUG4f/++2Mgz3bp1Q2BgIPd/y5YtxapJaSg2QgiRjtoczxWi5CiviouLcefOHYSEhCA0NBQhISF4/vw5OnfujLCwsCrX0dbWxrRp07hq0qZNm8o4akIIIR9CybEWXrx4wSXBkJAQREREoLCwsNJyycnJAAAVFRU4OjrC09MTnp6e6Nq1K1WTEkKIAqDkWENOTk5ITEx87zINGjRA586d4e7uDk9PT3Tu3BkGBgYyipAQQoikUHKsoaoSo42NDdzd3eHm5gZ3d3fY29tDTY3eUkIIUXR0JK8hDQ0NdOrUCe7u7lxCpG4VhBCinCg51lBKSorEhmIjhBAi3xRismN5oKGhwXcIhBBCZISSIyGEEPIOSo6EEELIOyg5EkIIIe+g5EgIIYS8g5IjIYQQ8g5KjoQQQsg7KDkSQggh76DkSAghhLyDkiMhhBDyDkqOhBBCyDsoORJCCCHvoORICCGEvIOSIyGEEPIOSo6EEELIOyg5EkIIIe+g5EgIIYS8g5IjIYQQ8g5KjoQQQsg7KDkSQggh76DkSAghhLyDkiMhhBDyDkqOhBBCyDsoORJCCCHvUOM7AHnHGAMA5Obm8hwJIYSQuig/jpcf19+HkuMH5OXlAQAsLCx4joQQQogk5OXlwcDA4L3LCFhNUmg9JhKJkJqaCj09PQgEgkrP5+bmwsLCAs+ePYO+vj4PEdador8GRY8fUPzXoOjxA4r/GhQ9fkD6r4Exhry8PJibm0NF5f1XFank+AEqKipo1qzZB5fT19dX2C9kOUV/DYoeP6D4r0HR4wcU/zUoevyAdF/Dh0qM5ahBDiGEEPIOSo6EEELIOyg51pGmpiaWLVsGTU1NvkP5aIr+GhQ9fkDxX4Oixw8o/mtQ9PgB+XoN1CCHEEIIeQeVHAkhhJB3UHIkhBBC3kHJkRBCCHkHJUdCCCHkHZQca+np06eYOnUqrK2toa2tDVtbWyxbtgzFxcXvXa+wsBCzZ89Go0aNoKuri+HDhyMjI0NGUYtbvXo13N3doaOjA0NDwxqtM3nyZAgEArFb3759pRvoe3zMa2CM4ccff4SZmRm0tbXRq1cvPH78WLqBViMrKwvjx4+Hvr4+DA0NMXXqVLx58+a963Tv3r3SZzBz5kwZRQxs2bIFVlZW0NLSQufOnREeHv7e5Y8ePQo7OztoaWnBwcEB586dk1Gk1avNa9i9e3el91tLS0uG0YoLDAzEoEGDYG5uDoFAgJMnT35wnWvXrsHZ2Rmamppo0aIFdu/eLfU436e2r+HatWuVPgOBQID09HSpx0rJsZbi4uIgEomwfft2xMTEYNOmTdj2f+3da0xbdRgG8EdY2zkJIOFSlgiBbdZkw3UrgZQPYwS0uCVSZ6bDZaJRmHMmwwuKS8wyP3hBsi0ui2jMMC5m6gxzES/LKEPdqA3riqsMiWBlAisqCkPHROH1w6RZD5dRRns0PL/kJPDv/9DnPeeUN6c9bauqsH379inXe/zxx/HRRx/h0KFD+Pzzz9HT04N169aFKLW/4eFhrF+/Hlu2bAlovfz8fJw/f963HDx4MEgJr24mNVRUVODVV19FVVUVHA4HbrjhBlgsFly6dCmISSe2ceNGtLS04NixY6itrcUXX3yBkpKSq65XXFzstw8qKipCkBZ477338MQTT2DHjh04ffo0li9fDovFgp9++mnC+Y2NjSgsLMRDDz0El8sFq9UKq9WKb775JiR5JxJoDcDlT2q5cnt3dnaGMLG/P/74A8uXL8e+ffumNd/j8WDt2rXIyclBc3MzSktL8fDDD+Po0aNBTjq5QGsY09bW5rcf4uPjg5TwCkLXrKKiQlJSUia9vb+/XzQajRw6dMg31traKgDEbreHIuKEqqurJSoqalpzi4qKpKCgIKh5ZmK6NYyOjoper5dXXnnFN9bf3y86nU4OHjwYxITjnT17VgBIU1OTb+zTTz+V6667Trq7uyddLzs7W7Zt2xaChONlZGTI1q1bfb+PjIzIwoUL5cUXX5xw/j333CNr1671G8vMzJTNmzcHNedUAq0hkMdHqAGQw4cPTznn6aeflqVLl/qN3XvvvWKxWIKYbPqmU8Px48cFgPz2228hyXQlnjnOgoGBAcTExEx6u9PpxF9//YW8vDzf2C233IKkpCTY7fZQRJwVDQ0NiI+Ph8FgwJYtW9DX16d2pGnzeDzwer1++yAqKgqZmZkh3wd2ux3R0dFIT0/3jeXl5SEsLAwOh2PKdd955x3ExsZi2bJlePbZZ3Hx4sVgx8Xw8DCcTqfftgsLC0NeXt6k285ut/vNBwCLxaLa8T6TGgDg999/R3JyMm666SYUFBSgpaUlFHFnxX9tH1wLo9GIxMRE3HbbbTh58mRI7pMfPH6N2tvbsXfvXlRWVk46x+v1QqvVjnttLCEhISTPnc+G/Px8rFu3DikpKejo6MD27dtxxx13wG63Izw8XO14VzW2nRMSEvzG1dgHXq933NNC8+bNQ0xMzJRZ7rvvPiQnJ2PhwoU4c+YMnnnmGbS1taGmpiaoeX/55ReMjIxMuO2+/fbbCdfxer3/iW09ZiY1GAwG7N+/H7feeisGBgZQWVmJrKwstLS0TOvLCNQ22T64cOEChoaGcP3116uUbPoSExNRVVWF9PR0/Pnnn3jzzTexevVqOBwOrFy5Mqj3zTPHf5WXl0/4wu+Vi/JB1N3djfz8fKxfvx7FxcUqJb9sJvkDsWHDBtx5551IS0uD1WpFbW0tmpqa0NDQ8L+pIdiCnb+kpAQWiwVpaWnYuHEj3n77bRw+fBgdHR2zWAWNMZvNuP/++2E0GpGdnY2amhrExcXh9ddfVzvanGEwGLB582aYTCZkZWVh//79yMrKwu7du4N+3zxz/NeTTz6JBx54YMo5qampvp97enqQk5ODrKwsvPHGG1Oup9frMTw8jP7+fr+zx97eXuj1+muJ7RNo/muVmpqK2NhYtLe3Izc3d1b+ZjBrGNvOvb29SExM9I339vbCaDTO6G8qTTe/Xq8fdxHI33//jV9//TWg4yEzMxPA5WcvFi1aFHDe6YqNjUV4ePi4q6unOn71en1A84NtJjUoaTQarFixAu3t7cGIOOsm2weRkZH/i7PGyWRkZODEiRNBvx82x3/FxcUhLi5uWnO7u7uRk5MDk8mE6urqq35ppslkgkajgc1mw9133w3g8tVX586dg9lsvubsQGD5Z0NXVxf6+vr8Gs21CmYNKSkp0Ov1sNlsvmZ44cIFOByOgK/ancx085vNZvT398PpdMJkMgEA6uvrMTo66mt409Hc3AwAs7oPJqLVamEymWCz2WC1WgFc/hJwm82Gxx57bMJ1zGYzbDYbSktLfWPHjh2bteM9UDOpQWlkZARutxtr1qwJYtLZYzabx719Rs19MFuam5uDfswD4NWqgerq6pLFixdLbm6udHV1yfnz533LlXMMBoM4HA7f2COPPCJJSUlSX18vp06dErPZLGazWY0SpLOzU1wul+zcuVMiIiLE5XKJy+WSwcFB3xyDwSA1NTUiIjI4OChPPfWU2O128Xg8UldXJytXrpQlS5bIpUuX/hc1iIi89NJLEh0dLUeOHJEzZ85IQUGBpKSkyNDQUMjz5+fny4oVK8ThcMiJEydkyZIlUlhY6LtdeQy1t7fL888/L6dOnRKPxyNHjhyR1NRUWbVqVUjyvvvuu6LT6eStt96Ss2fPSklJiURHR4vX6xURkU2bNkl5eblv/smTJ2XevHlSWVkpra2tsmPHDtFoNOJ2u0OSdyKB1rBz5045evSodHR0iNPplA0bNsj8+fOlpaVFlfyDg4O+4xyA7Nq1S1wul3R2doqISHl5uWzatMk3//vvv5cFCxZIWVmZtLa2yr59+yQ8PFw+++wzVfKLBF7D7t275cMPP5TvvvtO3G63bNu2TcLCwqSuri7oWdkcA1RdXS0AJlzGeDweASDHjx/3jQ0NDcmjjz4qN954oyxYsEDuuusuv4YaSkVFRRPmvzIvAKmurhYRkYsXL8rtt98ucXFxotFoJDk5WYqLi33/VNQQaA0il9/O8dxzz0lCQoLodDrJzc2Vtra20IcXkb6+PiksLJSIiAiJjIyUBx980K+xK4+hc+fOyapVqyQmJkZ0Op0sXrxYysrKZGBgIGSZ9+7dK0lJSaLVaiUjI0O++uor323Z2dlSVFTkN//999+Xm2++WbRarSxdulQ+/vjjkGWdTCA1lJaW+uYmJCTImjVr5PTp0yqkvmzsbQ3KZSxzUVGRZGdnj1vHaDSKVquV1NRUv8eDGgKt4eWXX5ZFixbJ/PnzJSYmRlavXi319fUhycqvrCIiIlLg1apEREQKbI5EREQKbI5EREQKbI5EREQKbI5EREQKbI5EREQKbI5EREQKbI5EREQKbI5EREQKbI5EREQKbI5Ec9TPP/8MvV6PF154wTfW2NgIrVYLm82mYjIi9fGzVYnmsE8++QRWqxWNjY0wGAwwGo0oKCjArl271I5GpCo2R6I5buvWrairq0N6ejrcbjeampqg0+nUjkWkKjZHojluaGgIy5Ytw48//gin04m0tDS1IxGpjq85Es1xHR0d6OnpwejoKH744Qe14xD9J/DMkWgOGx4eRkZGBoxGIwwGA/bs2QO32434+Hi1oxGpis2RaA4rKyvDBx98gK+//hoRERHIzs5GVFQUamtr1Y5GpCo+rUo0RzU0NGDPnj04cOAAIiMjERYWhgMHDuDLL7/Ea6+9pnY8IlXxzJGIiEiBZ45EREQKbI5EREQKbI5EREQKbI5EREQKbI5EREQKbI5EREQKbI5EREQKbI5EREQKbI5EREQKbI5EREQKbI5EREQKbI5EREQK/wBwdB9UCRimfwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "op = rebound.OrbitPlot(sim, orbit_style=\"solid\", lw=2)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "op = rebound.OrbitPlot(sim, orbit_style=None)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you want to get a sense of the three dimensional architecture of a planetary system, you can use `OrbitPlotSet` which shows three different perspectives of the same system:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ops = rebound.OrbitPlotSet(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Primary particles\n", + "\n", + "Note that all orbits that we have drawn so far used the center of mass of all interior particles as their primary particle. This coordinate system is known as Jacobi coordinates. It requires that the particles are sorted by ascending semi-major axis within the REBOUND simulation's particle array. You can specify the primary particle manually, for example to show heliocentric orbits or specific s- or p-type orbits in binaries. For example, have a look at this planetary system:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.) # Star A\n", + "sim.add(m=1., a=1.) # Star B\n", + "sim.add(a=2.) # Circumbinary planet ABb\n", + "sim.add(a=0.2, primary=sim.particles[1]) # Planet Bb, orbiting star B \n", + "sim.move_to_com()\n", + "fig = rebound.OrbitPlot(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Circumbinary Planet ABb is plotted correctly in orbit around the center of mass of A and B, but Bb's Jacobi orbit is also around the center of mass of the interior particles, which, in this case renders as a hyperbolic orbit ( Note that although the plot looks incorrect, IAS15 would correctly integrate their motions).\n", + "\n", + "One way to fix the visualization is to create two orbit plots using the same matplotlib figure and axes, but each showing different particles, around different primaries. Here's how this can be done:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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LoTFKFBUVBSioqLadd+ioiJMnDgRw4cPxzvvvHPBTTb9TUeeJ/o5vV6P4cOHY+PGjd6JJB6PBxs3bsT8+fPFhiPFkSQJDz30ED7//HNs2bIFvXv3Fh2p07EYFaCoqAgTJkxAz5498eKLL6KiosL7Of7Gf66zZ8/CZrPh7NmzcLvdyMnJAQD07dsXZrNZbDiBFixYgNmzZ2PEiBEYOXIkXnnlFTQ0NOCuu+4SHU1W6uvrkZ+f733/1KlTyMnJgdVqRVJSksBk8jFv3jysXr0aa9euRUhIiPc8dWhoKIxGo+B0nUQi2XvnnXckAG3e6FyzZ89u83navHmz6GjCLV26VEpKSpL0er00cuRIaceOHaIjyc7mzZvb/PmZPXu26Giycb7XonfeeUd0tE7D6xiJiIh8BM6JKiIionZgMRIREflgMRIREflgMRIREflgMRIREflgMRIREflgMRIREflgMRIREflgMRIREflgMRIREflgMRL5uYqKCsTGxuK5557zfuzHH3+EXq/Hxo0bBSYjkieulUoUAL7++mvMnDkTP/74IwYMGID09HTccMMNeOmll0RHI5IdFiNRgJg3bx6+//57jBgxArm5udi9ezcMBoPoWESyw2IkChBNTU1IS0tDQUEB9uzZg8GDB4uORCRLPMdIFCBOnDiB4uJieDwenD59WnQcItniiJEoADidTowcORLp6ekYMGAAXnnlFeTm5iI6Olp0NCLZYTESBYDHHnsMn3zyCfbv3w+z2Yyrr74aoaGhWLdunehoRLLDQ6lEfm7Lli145ZVX8N5778FisUCtVuO9997D9u3bsXz5ctHxiGSHI0YiIiIfHDESERH5YDESERH5YDESERH5YDESERH5YDESERH5YDESERH5YDESERH5YDESERH5YDESERH5YDESERH5YDESERH5YDESERH5+H8KAcIWAODSWgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ob1 = rebound.OrbitPlot(sim, particles = [1,2])\n", + "ob2 = rebound.OrbitPlot(sim, particles = [3], primary=1, show_primary=False, fig=ob1.fig, ax = ob1.ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Kepler-Orrery style plots\n", + "\n", + "You can use a similar idea to show multiple planetary systems in the same figure. This time we're creating the matplotlib figure by hand and then adding one orbit plot for each system." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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TMRDDz2EIUOGwN3dHVKpFFVVVaiqqoJSqUSfPn0wb948LF++HEOHDrWYZdW042NLYigWi3Ht2jWMHj3a7gIBuHVwLRQKWUs8Dhw4EA888ACOHTtmMQgrIiICb7zxBj777DMsWrQIQUFBqKioQHJyMpKTk6FWqzF//nzs27cPS5cubfce06dPx+rVq82/w4kTJ8xxOkzcuHEDV65cwdSpU6374jbi5ORkViaZMC3czc3NFk2NbInqgFsxKc7OzvD29oafn59FgUDTNE6ePAmapll3CTU1NTAYDKwFyzqM3fyYbqOxsZG88847JCsri7Xdli1byFtvvWX3wtNsnDp1ioSHh5OPPvqItd33339PYmNjSV1dXZf1pbKykqxZs+YeF93boWmabN26lTz33HOkurq608+01kVv3759JCIiguzYsYP1fv/5z3/I0KFDiUwm63TfmGhoaCCpqamkra2NsY1eryfTp08n7u7uNhdh7wx1dXUkLS2NNDY2srbbsWMHWb16dYdcPq0lMzOTrFu3jtWtUqvVkr/97W9kwYIFrO1sJTU19Q435+nTp9vspkoIIe+++y55/PHH7eJCzIRWqyUymYzRbZiQW67olZWVpLKyktX91Bb3dmtISUkhmzZtsrjuHD58mBw5csSme1tLlwgFQm75137++eesPrgGg4F88sknZPny5aSgoKCrumImJSWFREVFkbfffpt10jU3N5NBgwaRDz74oMv7tHPnTvLdd9+x9kej0ZCPP/6YrFq1ilRWVnb6mXe/wKZYAxOHDh0ic+bMIW+99RbriyMSicjUqVPJ1q1bO90nNmiaJhcvXiSXL19m7c+vv/5qVUyFvWhoaCCXL1+2KKyrqqrI8uXLyenTp+36/LsxGAxk/fr1rH7thBAiFovJq6++ShYvXkyamprs3g9rY1vu5vLly2TAgAHk+PHjdu/T7dA0TWQyGVEqlaztdDodKS0tJeXl5YzvZ0e/a3t9OnfuHPn5558tKsnl5eXkhx9+6DKFtcuEQltbG3n33XdZg2oIubXgffPNN2TRokXk4sWLXdIXiqLI9u3bybBhw8g///lPi9raypUryfz581mDa+xFQ0MD+eKLL8iFCxdY2ykUCrJ69Wry2muv2TXw6XYoiiLfffcdSUhIIG+++SaroKJpmjz33HNkypQprEFR9qK1tZUcO3aMVFVV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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "fig, ax = plt.subplots()\n", + "ax.set_aspect(\"equal\") # this is needed if you don't want to get stretched orbits\n", + "ax.axis('off') # no axis ticks\n", + "for x in range(5):\n", + " for y in range(5):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1)\n", + " for i in range(3):\n", + " sim.add(a=3+2.2*i, f=\"uniform\")\n", + " sim.move_to_com()\n", + " rebound.OrbitPlot(sim, fig=fig, ax=ax, origin = [-x*20., -y*20.])\n", + "ax.set_xlim([-10,90])\n", + "ax.set_ylim([-10,90]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Manually adjusting plot components\n", + "\n", + "You can access the `PathCollection` and `LineCollection` structures that OrbitPlot uses internally to adjust their appearance. These are stored in the `primary`, `particles`, and `orbits` attributes. This gives you great flexibility when it comes to customizing your plot. For example:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "op = rebound.OrbitPlot(sim)\n", + "op.orbits[1].set_linewidth(5)\n", + "op.orbits[2].set_linestyle(\"--\")\n", + "op.particles.set_color([\"red\", \"green\", \"black\"])\n", + "op.particles.set_sizes([500,100,1000])\n", + "op.primary.set_sizes([1000])\n", + "op.primary.set_edgecolor(\"orange\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, you can combine multiple orbit plots in one figure to give you a similar result. For example:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "op1 = rebound.OrbitPlot(sim, particles=[1,3])\n", + "op2 = rebound.OrbitPlot(sim, particles=[2], ax=op1.ax, fig=op1.fig, lw=5, color=\"red\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Updating plots\n", + "\n", + "You can update the simulation data in an OrbitPlot after integrating the simulation. For example, integrating the last simulation and then updating the plot (including the highlighted orbit) can be done with:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.integrate(sim.t+3.2)\n", + "op1.update()\n", + "op2.update() # red planet orbit\n", + "op1.fig" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Animations\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Updating OrbitPlot is efficient. Only the underlying data is updated whereas the figure itself does not need to get recreated. This makes it possible to render animations. Let us first render a series of frames to files:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(3):\n", + " sim.integrate(sim.t+0.31)\n", + " op1.update()\n", + " op2.update()\n", + " op1.fig.savefig(\"out_%02d.png\"%i)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You could now convert these images to a gif or a movie, for example by using ImageMagick's `convert` or `ffmpeg`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Interactive plots and animations in a jupyter notebook\n", + "You can update exisiting figures in a jupyter notebook if you use matplotlib's widget backend using `%matplotlib widget`. These figures are interactive, you can zoom in, move around, and resize them.\n", + "\n", + "Note that you might need to run `%matplotlib widget` before importing rebound or matplotlib. If the following cells don't work, restart your kernel." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib widget\n", + "import rebound" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b9b7d3cabefb435283eadde0631d4160", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "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9u3D7t27cerUKYwYMQKzZ8/GxIkT4eHhIXaJF/T555/jk08+wYIFC3DjjTeKXY4kSHl/z0CHtD9gZ3LXXXfh/fffP+P+hQsX4r333hOhIuno6urChg0b8PrrryM/Px9JSUlYsGAB5s6di9DQULHLE53BYMC2bdvwzTff4NChQwgKCsL111+PWbNmOf1gzE8++QSff/457rrrLtxwww1il+PypLy/Z6BD2h+ws8nOzsYTTzxhPQ/92WefZcv8ErS2tuLdd9/FqlWrYLFYcMUVV+DOO+/EuHHjIJdzIsizKS4uxjfffIMff/wRbW1tGDVqFG677TZkZWU55XsmCALWrFmDr776CnfffTeuv/56sUtyaVLe3zPQIe0PmKSpuroa//73v/HBBx/AbDbjL3/5C/7rv/4LCQkJYpfmMrq7u7F161Zs2bIFu3btwrhx4zB9+nRMnDjR6YJdEAR8+OGH2LNnD+644w6MHTtW7JJclpT39wx0SPsDJmlpbGzEyy+/jI0bN6KlpQULFy7EPffcg7CwMLFLc2lHjhzBF198gW3btqF///64++67cfnllzvV6HhBEPDuu+9i06ZNeO655zBgwACxS3JJUt7fO9fXUCLCli1bkJWVhfj4eGRlZWHLli0wGAx4/fXXkZWVhQ0bNuCWW27BkSNHsHz5coa5DWRkZGDFihV4++234ePjg6VLl+Kuu+7C/v37xS7NSiaTYcGCBejfvz+ef/55NDQ0iF0SORm20CHtb2xisFgskMlkTtW6cRXnmh43KCgIBoMBixYtwn//938jODhYhOrcgyAI2L9/P1atWoW8vDwMGzYM999/v9O0iLVaLR5++GH4+PjghRdecPkZ8hxNyvt7Bjqk/QE7msViAQCnOwbpCi50at+7776Lu+66y4EVuTdBEPD777/j22+/xZ49ezB9+nT89a9/dYovU2VlZXj00UcxdOhQPPbYY/zy3AtS3t9zr0s2wzC/NMuXLz/v42c75Y/sRyaT4YorrsArr7yCRx99FHv27MF9992HDRs2WH/XxRIfH4+lS5diz549+Pzzz0WthZwH97xkEz0dPQzzvuP0uM5JLpfjhhtuwKeffoohQ4bgpZdewt/+9jdUVFSIWtfIkSNx++2348svv8Tvv/8uai3kHLj3pUtmsVisx82p7y40FasUp2p1JRqNBsuWLcNrr72G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QnJysuDl5SUEBQUJEyZMELZt2yZO8U6Ol08lIiKSALca5U5ERCRVDHQiIiIJYKATERFJAAOdiIhIAhjoREREEsBAJyIikgAGOhERkQQw0ImIiCSAgU5ERCQBDHQiIiIJYKATuZmGhgZERETg+eeft963a9cueHp6Ijs7W8TKiOhScC53Ijf0008/YebMmdi1axdSU1ORmZmJGTNm4F//+pfYpRFRHzHQidzUvffei61bt2LEiBHIzc3F/v37oVKpxC6LiPqIgU7kprq6ujB48GBUVFTg4MGDSE9PF7skIroEPIZO5KaKiopQXV0Ni8WC0tJSscshokvEFjqRGzIYDBg5ciQyMzORmpqKV199Fbm5uQgLCxO7NCLqIwY6kRt65JFH8PXXX+PIkSPw9fXF+PHjERAQgB9++EHs0oioj9jlTuRmtm/fjldffRUff/wx/P39IZfL8fHHH2PHjh34n//5H7HLI6I+YgudiIhIAthCJyIikgAGOhERkQQw0ImIiCSAgU5ERCQBDHQiIiIJYKATERFJAAOdiIhIAhjoREREEsBAJyIikgAGOhERkQQw0ImIiCSAgU5ERCQBDHQiIiIJYKATERFJwP8HPjhKLWn6RAoAAAAASUVORK5CYII=", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], + "text/plain": [ + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1)\n", + "sim.add(m=0.1, e=0.041, a=0.4, inc=0.2, f=0.43, Omega=0.82, omega=2.98)\n", + "sim.add(m=1e-3, e=0.24, a=1.0, pomega=2.14)\n", + "sim.add(m=1e-3, e=0.24, a=1.5, omega=1.14, l=2.1)\n", + "op = rebound.OrbitPlot(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can update the plot during an integration. " + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "fig = op.fig\n", + "for i in range(100):\n", + " op.sim.integrate(sim.t+0.6)\n", + " op.update() # update data\n", + " fig.canvas.draw() # redraw figure" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that the simulation slowly drifted out of the frame. Ideally, we should move the simulation to the center of mass frame using `sim.move_to_com()`. Alternatively, we can also adjust the plot boundaries by passing the `updateLimits=True` argument to the update function:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(100):\n", + " op.sim.integrate(sim.t+0.6)\n", + " op.update(updateLimits=True)\n", + " fig.canvas.draw()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can make all the plots in the notebook interactive and update them dynamically. If a figure contains multiple OrbitPlots (such as in the orrery example), you need to call `update()` on each OrbitPlot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/OrbitalElements.ipynb b/rebound/source/docs/ipython_examples/OrbitalElements.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..83a3dfd8bfa682d4c2534192d519fc17999186f2 --- /dev/null +++ b/rebound/source/docs/ipython_examples/OrbitalElements.ipynb @@ -0,0 +1,916 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Orbital Elements\n", + "\n", + "**Note: All angles for orbital elements are in radians**\n", + "\n", + "We can add particles to a simulation by specifying cartesian components:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:37.673734Z", + "start_time": "2023-10-31T16:04:37.647297Z" + } + }, + "outputs": [], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1., x=1., vz = 2.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Any components not passed automatically default to 0. REBOUND can also accept orbital elements. \n", + "\n", + "**Reference bodies**\n", + "\n", + "As a reminder, there is a one-to-one mapping between (x,y,z,vx,vy,vz) and orbital elements, and one should always specify what the orbital elements are referenced against (e.g., the central star, the system's barycenter, etc.). The differences between orbital elements referenced to these centers differ by $\\sim$ the mass ratio of the largest body to the central mass. By default, REBOUND always uses Jacobi elements, which for each particle are always referenced to the center of mass of all particles with lower index in the simulation. \n", + "\n", + "For the painstaking user: When separating out the center of mass degree of freedom and reducing the N body problem to N-1 Kepler problems and interaction terms, there are a number of possible Hamiltonian splittings (see e.g., Hernandez & Dehnen 2017), and different possible choices for the primary mass in each of the separate Kepler problems. REBOUND takes this primary mass to be the total mass of all the particles in the simulation. If particles are added from the inside out, this gives logical behavior in the limit of a hierarchical system, even for large masses (one can think of it as setting up our new particle in a 2-body orbit around all the interior mass concentrated at the interior particles' center of mass). \n", + "\n", + "Let's set up a stellar binary," + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:40.389981Z", + "start_time": "2023-10-31T16:04:40.385507Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t4.0.3\n", + "REBOUND built on: \tJan 12 2024 08:52:18\n", + "Number of particles: \t2\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "sim.add(m=1., a=1.)\n", + "sim.status(showAllFields=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We always have to pass a semimajor axis (to set a length scale), but any other elements are by default set to 0. Notice that our second star has the same vz as the first one due to the default Jacobi elements. Now we could add a distant planet on a circular orbit," + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:42.146464Z", + "start_time": "2023-10-31T16:04:42.143177Z" + } + }, + "outputs": [], + "source": [ + "sim.add(m=1.e-3, a=100.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This planet is set up relative to the binary center of mass (again due to the Jacobi coordinates), which is probably what we want. But imagine we now want to place a test mass in a tight orbit around the second star. If we passed things as above, the orbital elements would be referenced to the binary/outer-planet center of mass. We can override the default by explicitly passing a primary (any instance of the Particle class):" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:43.494998Z", + "start_time": "2023-10-31T16:04:43.489556Z" + } + }, + "outputs": [], + "source": [ + "sim.add(primary=sim.particles[1], a=0.01)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All simulations are performed in Cartesian elements, so to avoid the overhead, REBOUND does not update particles' orbital elements as the simulation progresses. However, you can always access any orbital element through, e.g., `sim.particles[1].inc` (see the diagram, and table of orbital elements under the Orbit structure at https://rebound.hanno-rein.de/orbitalelements/). This will calculate that orbital element individually--you can calculate all the particles' orbital elements at once with `sim.orbits()`. REBOUND will always output angles in the range $[-\\pi,\\pi]$, except the inclination which is always in $[0,\\pi]$." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:45.249652Z", + "start_time": "2023-10-31T16:04:45.245411Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0000000000000002\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "print(sim.particles[1].a)\n", + "orbits = sim.orbits()\n", + "for orbit in orbits:\n", + " print(orbit)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that there is always one less orbit than there are particles, since orbits are only defined between pairs of particles. We see that we got the first two orbits right, but the last one is way off. The reason is that again the REBOUND default is that we always get Jacobi elements. But we initialized the last particle relative to the second star, rather than the center of mass of all the previous particles.\n", + "\n", + "To get orbital elements relative to a specific body, you can manually use the `orbit` method of the Particle class:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:46.285633Z", + "start_time": "2023-10-31T16:04:46.281830Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "print(sim.particles[3].orbit(primary=sim.particles[1]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "though we could have simply avoided this problem by adding bodies from the inside out (second star, test mass, first star, circumbinary planet).\n", + "\n", + "When you access orbital elements individually, e.g., `sim.particles[1].inc`, you always get Jacobi elements. If you need to specify the primary, you have to do it with `sim.orbit()` as above.\n", + "\n", + "**Edge cases and orbital element sets**\n", + "\n", + "Different orbital elements lose meaning in various limits, e.g., a planar orbit and a circular orbit. REBOUND therefore allows initialization with several different types of variables that are appropriate in different cases. It's important to keep in mind that the procedure to initialize particles from orbital elements is not exactly invertible, so one can expect discrepant results for elements that become ill-defined. For example, " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:46.961943Z", + "start_time": "2023-10-31T16:04:46.956924Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(a=1., e=0., inc=0.1, Omega=0.3, omega=0.1)\n", + "sim.particles[1].orbit()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The problem here is that $\\omega$ (the angle from the ascending node to pericenter) is ill-defined for a circular orbit, so it's not clear what we mean when we pass it, and we get spurious results for both $\\omega$ and $f$, since the latter is also undefined as the angle from pericenter to the particle's position. However, the true longitude $\\theta$, the broken angle from the $x$ axis to the ascending node = $\\Omega + \\omega + f$, and then to the particle's position, is always well-defined: " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:47.904555Z", + "start_time": "2023-10-31T16:04:47.901197Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.3999999999999986\n" + ] + } + ], + "source": [ + "print(sim.particles[1].theta)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To be clearer and ensure we get the results we expect, we could instead pass theta to specify the longitude we want, e.g." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:48.648906Z", + "start_time": "2023-10-31T16:04:48.644188Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.3999999999999986\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(a=1., e=0., inc=0.1, Omega=0.3, theta = 0.4)\n", + "print(sim.particles[1].theta)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:49.053002Z", + "start_time": "2023-10-31T16:04:49.046366Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(a=1., e=0.2, Omega=0.1)\n", + "sim.particles[1].orbit()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we have a planar orbit, in which case the line of nodes becomes ill-defined, so $\\Omega$ is not a good variable, but we pass it anyway! In this case, $\\omega$ is also undefined since it is referenced to the ascending node. Here we get that now these two ill-defined variables get flipped. The appropriate variable is pomega ($\\varpi = \\Omega + \\omega$), which is the angle from the $x$ axis to pericenter:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:50.157271Z", + "start_time": "2023-10-31T16:04:50.153551Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.09999999999999945\n" + ] + } + ], + "source": [ + "print(sim.particles[1].pomega)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can specify the pericenter of the orbit with either $\\omega$ or $\\varpi$:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:50.786246Z", + "start_time": "2023-10-31T16:04:50.781876Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(a=1., e=0.2, pomega=0.1)\n", + "sim.particles[1].orbit()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that if the inclination is exactly zero, REBOUND sets $\\Omega$ (which is undefined) to 0, so $\\omega = \\varpi$. \n", + "\n", + "Finally, we can specify the position of the particle along its orbit using mean (rather than true) longitudes or anomalies (for example, this might be useful for resonances). We can either use the mean anomaly $M$, which is referenced to pericenter (again ill-defined for circular orbits), or its better-defined counterpart the mean longitude `l` $= \\lambda = \\Omega + \\omega + M$, which is analogous to $\\theta$ above," + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:51.821603Z", + "start_time": "2023-10-31T16:04:51.816066Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.4000000000000039\n", + "0.39999999999999947\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(a=1., e=0.1, Omega=0.3, M = 0.1)\n", + "sim.add(a=1., Omega=0.3, l = 0.4)\n", + "print(sim.particles[1].l)\n", + "print(sim.particles[2].l)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "REBOUND calculates the mean longitude in such a way that it smoothly approaches $\\theta$ in the limit of $e\\rightarrow0$:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:52.435713Z", + "start_time": "2023-10-31T16:04:52.423600Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.39999999999999947" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[2].theta" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In summary, you can specify the phase of the orbit through any one of the angles `M`, `f`, `theta` or `l`=$\\lambda$. Additionally, one can instead use the time of pericenter passage `T`. This time should be set in the appropriate time units, and you'd initialize `sim.t` to the appropriate time you want to start the simulation." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Accuracy**\n", + "\n", + "As a test of accuracy and demonstration of issues related to the last section, let's test the numerical stability by initializing particles with small eccentricities and true anomalies, computing their orbital elements back, and comparing the relative error. We choose the inclination and node longitude randomly:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:05.189246Z", + "start_time": "2023-10-31T16:05:05.182572Z" + } + }, + "outputs": [], + "source": [ + "import random\n", + "import numpy as np\n", + "\n", + "def simulation(par):\n", + " e,f = par\n", + " e = 10**e\n", + " f = 10**f\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.)\n", + " a = 1.\n", + " inc = random.random()*np.pi\n", + " Omega = random.random()*2*np.pi\n", + " sim.add(m=0.,a=a,e=e,inc=inc,Omega=Omega, f=f)\n", + " o=sim.particles[1].orbit()\n", + " if o.f < 0: # avoid wrapping issues\n", + " o.f += 2*np.pi\n", + " err = max(np.fabs(o.e-e)/e, np.fabs(o.f-f)/f)\n", + " return err" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will use the multiprocess module to run the computation in parallel. If the following line throws you an ImportError, install the module with `pip install multiprocess`." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:08.599684Z", + "start_time": "2023-10-31T16:05:08.579075Z" + } + }, + "outputs": [], + "source": [ + "from multiprocess import Pool" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:10.333965Z", + "start_time": "2023-10-31T16:05:10.155442Z" + } + }, + "outputs": [], + "source": [ + "random.seed(1)\n", + "N = 100\n", + "es = np.linspace(-16.,-1.,N)\n", + "fs = np.linspace(-16.,-1.,N)\n", + "params = [(e,f) for e in es for f in fs]\n", + "with Pool() as pool:\n", + " res = pool.map(simulation, params)\n", + " res = np.array(res).reshape(N,N)\n", + " res = np.nan_to_num(res)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:13.391051Z", + "start_time": "2023-10-31T16:05:12.855469Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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1ZJp6lwBwHTNMHnAX26xGpv0tCXG91+KdnOrLGuJC+TPCwCQI0uImYs3a12ad5HbsLllcoERU6in2ykPUX6OYe2Uyeo/5262qgsqXklb0ggFBAQgMTER69evx003/ZHGZv369Rg+fLjX5tW7d2/07t0bTz31FL7++mv83//9H+655x6MHz8eI0aMwGuvveb8JA64tKD79NNP8cknn6B///4uvSgRERE1HQbsMBwFTdbxHHVVWFiIffv2VbfT09ORlpaGyMhIxMfHY+rUqRg1ahT69OmDpKQkLFu2DBkZGZg4caJbc/UEk8mE5ORkJCcn495778W4cePw+uuvN+yCLiIiwmN7vkREROTb7Ibh9pap3TCcd1Js27YNycnJ1e0z6dVGjx6NFStW4NZbb8XJkycxd+5cZGVloXv37li7di0SEhLcmqsnZGZm4u2338b//d//4eeff0ZSUtI58+nVhksLusceewyzZs3C66+/LnLRERERETWUgQMHwnCyEJw0aRImTZrUQDNybtmyZXjrrbfw7bff4sILL8Rf/vIXrFmzBu3atXPrvCbD2SfhQK9evbB//34YhoF27drB31/GM2zfvv0cIxu/goIChIWF4WV0RAgcxHIQkdeo2QvUGGJHaUsqlQwdduUigqO0JbFXyTxYRUoZpm8+OKmNiWoh2/2mOy/9lfHO/0S7w3195PNKGhMACAiVv28LjxWJdqBVT/GQsEIpp9Vcr0V54t4lol16Sqa+iHtP5vICgJL5MuOBLV/+QPxjlTwzAGzHZXxXyFNKqpNSvSRS5Xv/FW2/vyilv774SBtjnJbzN26R6V0sBTJdCgAYO2QZL0QqMYAF8rMGANPl18pzHNyh9ans0Eu0/W3yH6HNT7+2YilWPodAWSINhfr8z8TVFRSUILz9ROTn59d7erEz35nHc/8Dq9W9CzwFBcWIibylQebtTXFxcbjtttvwl7/8xaPFGFy6QqfWSSMiIqLzlyfuUvX0Xa6NVUZGRr3cTOrSgm727NmengcRERFRk7Rz5050794dZrMZP//8c419e/TQk1PXhksLOgDIy8vDe++9h/379+PBBx9EZGQktm/fjpiYGLRt29bV0xIREZGP8WRi4abokksuwbFjxxAdHY1LLrkEJpNJxP6daZtMJthseiWX2nBpQbdz505cc801CAsLw8GDBzFhwgRE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ho6IiIiIHOOCjoiIiMjHcUFHRERE5OO4oPvdvHnz0K9fP4SEhCA8PPyc/VasWIEePXogKCgIrVq1wuTJkxtukh5Q2/cJACdPnkRsbCxMJhPy8vIaZH6e4ux9/vTTT7j99tsRFxeH4OBgdOnSBc8++2zDT9RNtfl5ZmRkYNiwYWjWrBmioqIwZcoUj2V195bffvsNw4cPR1RUFKxWK/r3748NGzZ4e1r14pNPPsFll12G4OBgREVF4c9//rO3p1RvysrKcMkll8BkMlXnGm0qDh48iHHjxqF9+/YIDg5Gx44dMXv2bJ//b5EaDy7ofldeXo6RI0fi3nvvPWefRYsWYebMmZg+fTp2796NL7/8EkOGDGnAWbqvNu/zjHHjxqFHjx4NMCvPc/Y+U1NT0bJlS7z55pvYvXs3Zs6ciRkzZuCFF15o4Jm6x9n7tNlsuO6661BUVITNmzfjnXfewfvvv4+///3vDTxTz7ruuutQWVmJr776Cqmpqbjkkktw/fXX16mcjy94//33MWrUKNx111346aef8O233+KOO+7w9rTqzUMPPdQg5aq84ZdffoHdbsdLL72E3bt345lnnsGLL76If/7zn96eGjUVXqsi20gtX77cCAsL047n5uYawcHBxhdffNHwk6oH53qfZyxZssS46qqrjC+//NIAYJw6darB5uZJzt7n2SZNmmQkJyfX74Tqybne59q1aw2z2WwcOXKk+tjbb79tBAYGGvn5+Q04Q885ceKEAcDYuHFj9bGCggIDQJP579Mwqgp/t23b1njllVe8PZUGsXbtWuOiiy4ydu/ebQAwduzY4e0p1bunnnrKaN++vbenQU0Er9DV0vr162G323HkyBF06dIFsbGxuOWWW5CZmentqXncnj17MHfuXKxcuRJm8/nzTyQ/Px+RkZHenoZHbd26Fd27dxdXPYYMGYKysjKkpqZ6cWaua9GiBbp06YKVK1eiqKgIlZWVeOmllxATE4PExERvT89jtm/fjiNHjsBsNqNXr15o3bo1UlJSsHv3bm9PzeOOHz+OCRMm4I033kBISIi3p9NgmuLvHPKe8+fb2k0HDhyA3W7HE088gcWLF+O9995Dbm4urr322iYVA1FWVobbb78dCxYsQHx8vLen02C2bt2K//znP7jnnnu8PRWPOnbsmFazMCIiAgEBAT67PWkymbB+/Xrs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+fLl2Lp1K+66664a+19yySUAqq5wnvnfNdm1axd69+5dm+kTEXkcF3REjVC7du3w/fff4+DBgwgNDUVkZOQ5+w4aNAgLFizAypUrkZSUhDfffBO7du1Cr169AADNmzfHtGnT8MADD8But+OKK65AQUEBtmzZgtDQUIwePVo7Z3x8PAICAvD8889j4sSJ2LVrFx577LE6v48HH3wQt9xyC3r37o2rr74aH330ET744IMa70itjU6dOuGDDz7AsGHDYDKZ8Mgjj9QqB9z48eNx/fXXw2azOXzfZ2vZsiV69+6NzZs312pBt2nTJgwePLi2b4GIyKMYQ0fUCE2bNg0WiwVdu3at3u48lyFDhuCRRx7BQw89hL59++L06dPiihhQdRfprFmzMH/+fHTp0gVDhgzBRx99hPbt2zs8Z8uWLbFixQq8++676Nq1K5588kksXLiwzu/jxhtvxLPPPosFCxagW7dueOmll7B8+XKRUsUVzzzzDCIiItCvXz8MGzYMQ4YMqdXVsWuuuQatW7fGkCFD0KZNG6f97777brz11ltO+x05cgRbtmxxetWPiKi+mAw1+IaIqIkqLi5GmzZt8Nprr+HPf/6z0/6lpaW48MIL8c477yApKemc/R588EHk5+dj2bJlnpwuEVGtccuViJo8u92OY8eO4emnn0ZYWJhIFlyToKAgrFy5Ejk5OTX2i46OxrRp0zwxVSIil/AKHRE1eQcPHkT79u0RGxuLFStW4Oqrr/b2lIiIPIoLOiIiIiIfx5siiIiIiHwcF3REREREPo4LOiIiIiIfxwUdERERkY/jgo6IiIjIx3FBR0REROTjuKAjIiIi8nFc0BERERH5OC7oiIiIiHzc/wc232jU0y803QAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib import ticker\n", + "from matplotlib.colors import LogNorm\n", + "import matplotlib\n", + "\n", + "f,ax = plt.subplots(1,1,figsize=(7,5))\n", + "extent=[fs.min(), fs.max(), es.min(), es.max()]\n", + "\n", + "ax.set_xlim(extent[0], extent[1])\n", + "ax.set_ylim(extent[2], extent[3])\n", + "ax.set_xlabel(r\"true anomaly (f)\")\n", + "ax.set_ylabel(r\"eccentricity\")\n", + "\n", + "im = ax.imshow(res, norm=LogNorm(vmax=1., vmin=1.e-16), aspect='auto', origin=\"lower\", interpolation='nearest', cmap=\"RdYlGn_r\", extent=extent)\n", + "cb = plt.colorbar(im, ax=ax)\n", + "cb.solids.set_rasterized(True)\n", + "cb.set_label(\"Relative Error\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the behavior is poor, which is physically due to $f$ becoming poorly defined at low $e$. If instead we initialize the orbits with the true longitude $\\theta$ as discussed above, we get much better results:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:22.873572Z", + "start_time": "2023-10-31T16:05:22.442522Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def simulation(par):\n", + " e,theta = par\n", + " e = 10**e\n", + " theta = 10**theta\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.)\n", + " a = 1.\n", + " inc = random.random()*np.pi\n", + " Omega = random.random()*2*np.pi\n", + " omega = random.random()*2*np.pi\n", + " sim.add(m=0.,a=a,e=e,inc=inc,Omega=Omega, theta=theta)\n", + " o=sim.particles[1].orbit()\n", + " if o.theta < 0:\n", + " o.theta += 2*np.pi\n", + " err = max(np.fabs(o.e-e)/e, np.fabs(o.theta-theta)/theta)\n", + " return err\n", + "\n", + "random.seed(1)\n", + "N = 100\n", + "es = np.linspace(-16.,-1.,N)\n", + "thetas = np.linspace(-16.,-1.,N)\n", + "params = [(e,theta) for e in es for theta in thetas]\n", + "\n", + "with Pool() as pool:\n", + " res = pool.map(simulation, params)\n", + " res = np.array(res).reshape(N,N)\n", + " res = np.nan_to_num(res)\n", + "\n", + "f,ax = plt.subplots(1,1,figsize=(7,5))\n", + "extent=[thetas.min(), thetas.max(), es.min(), es.max()]\n", + "\n", + "ax.set_xlim(extent[0], extent[1])\n", + "ax.set_ylim(extent[2], extent[3])\n", + "ax.set_xlabel(r\"true longitude (\\theta)\")\n", + "ax.set_ylabel(r\"eccentricity\")\n", + "\n", + "im = ax.imshow(res, norm=LogNorm(vmax=1., vmin=1.e-16), aspect='auto', origin=\"lower\", interpolation='nearest', cmap=\"RdYlGn_r\", extent=extent)\n", + "cb = plt.colorbar(im, ax=ax)\n", + "cb.solids.set_rasterized(True)\n", + "cb.set_label(\"Relative Error\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Hyperbolic & Parabolic Orbits**\n", + "\n", + "REBOUND can also handle hyperbolic orbits, which have negative $a$ and $e>1$:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:26.698969Z", + "start_time": "2023-10-31T16:05:26.691959Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t4.0.3\n", + "REBOUND built on: \tJan 12 2024 08:52:18\n", + "Number of particles: \t4\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "\n", + "\n", + "---------------------------------\n", + "The following fields have non-default values:\n", + "N:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 4\u001b[0m\n", + "rand_seed:\n", + "\u001b[31m< 620290\u001b[0m\n", + "---\n", + "\u001b[32m> 778246\u001b[0m\n", + "particles:\n", + "\u001b[32m> (512 bytes, values not printed)\u001b[0m\n", + "\n" + ] + } + ], + "source": [ + "sim.add(a=-0.2, e=1.4)\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Currently there is no support for exactly parabolic orbits, but we can get a close approximation by passing a nearby hyperbolic orbit where we can specify the pericenter = $|a|(e-1)$ with $a$ and $e$. For example, for a 0.1 AU pericenter," + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:33.467627Z", + "start_time": "2023-10-31T16:05:33.462702Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ">\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "q = 0.1\n", + "a=-1.e14\n", + "e=1.+q/np.fabs(a)\n", + "sim.add(a=a, e=e)\n", + "print(sim.particles[1].orbit)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Retrograde Orbits**\n", + "\n", + "Orbital elements can be counterintuitive for retrograde orbits, but REBOUND tries to sort them out consistently. This can lead to some initially surprising results. For example," + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:35.112999Z", + "start_time": "2023-10-31T16:05:35.107330Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ">\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(a=1.,inc=np.pi,e=0.1, Omega=0., pomega=1.)\n", + "print(sim.particles[1].orbit)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We passed $\\Omega=0$ and $\\varpi=1.$. For prograde orbits, $\\varpi = \\Omega + \\omega$, so we'd expect $\\omega = 1$, but instead we get $\\omega=-1$. If we think about things physically, $\\varpi$ is the angle from the $x$ axis to pericenter, measured in the positive direction (counterclockwise) defined by $z$. $\\Omega$ is always measured in this same sense, but $\\omega$ is always measured in the orbital plane *in the direction of the orbit*. For retrograde orbits, this means that $\\omega$ is measured in the opposite sense to $\\Omega$, so $\\varpi = \\Omega - \\omega$, which is why we got $\\omega = -1$. \n", + "\n", + "Similarly, the retrograde version of $\\theta = \\Omega + \\omega + f$ is $\\theta = \\Omega - \\omega - f$, and `l` = $\\lambda = \\Omega + \\omega + M$ becomes $\\lambda = \\Omega - \\omega - M$. REBOUND chooses these conventions based on whether $i < \\pi/2$, which means that if you were tracking $\\varpi$ for nearly polar orbits, you would get unphysical jumps if the orbits crossed back and forth between prograde and retrograde. Of course, $\\varpi$ is not a good angle at such high inclinations, and only has physical meaning when the orbital plane nearly coincides with the reference plane." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exceptions**\n", + "\n", + "Adding a particle or getting orbital elements from particles in a simulation should never yield NaNs in any of the structure fields. Please let us know if you find a case that does. \n", + "\n", + "In cases where it would return a `NaN`, `REBOUND` will raise a `ValueError`. The only cases that should do so when adding a particle are 1) passing an eccentricity of exactly 1. 2) passing a negative eccentricity. 3) Passing $e>1$ if $a>0$. 4) Passing $e<1$ if $a<0$. 5) Passing a longitude or anomaly for a hyperbolic orbit that's beyond the range allowed by the asymptotes defined by the hyperbola. You will also get errors if you try to initialize particles with orbital elements manually with `rebound.Particle()`.\n", + "\n", + "When obtaining orbital elements from a `Particle` structure, REBOUND will raise a `ValueError` if 1) the primary's mass is zero, or 2) the particle's and primary's position are the same.\n", + "\n", + "**Negative inclinations**\n", + "\n", + "While inclinations are only defined in the range $[0,\\pi]$, you can also pass negative inclinations when adding particles in REBOUND. This is interpreted as referencing $\\Omega$ and $\\omega$ to the **descending**, rather than the ascending node. So for example, if one set up particles with the same $\\Omega$ and a range of inclinations distributed around zero, one would obtain what one might expect, i.e. a set of orbits that are all rotated around the same line of nodes.\n", + "\n", + "**Jacobi masses**\n", + "\n", + "There is a classical Hamiltonian splitting for the N-body problem (see e.g., Wisdom & Holman 1991) that when expanded to first order in the planet/star mass ratio, gives an interaction Hamiltonian with the same form as the disturbing function for an exterior perturber. This makes it particularly attractive for analytic or semi-analytic studies. In this splitting, the masses of the primaries for each planet take on a particular form. One can add particles using these jacobi masses with the `jacobi_masses` flag. By default, this flag is false and the primary mass is the total mass of all particles in the simulation (see the top of this notebook)." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:37.091245Z", + "start_time": "2023-10-31T16:05:37.086813Z" + } + }, + "outputs": [], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(m=1.e-3, a=1., jacobi_masses=True)\n", + "sim.add(m=1.e-3, a=5., jacobi_masses=True)\n", + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The jacobi mass and default mass assigned by REBOUND always agree for the first particle, but differ for all the rest" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:38.102446Z", + "start_time": "2023-10-31T16:05:38.098406Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0 4.995009980039918\n" + ] + } + ], + "source": [ + "print(sim.particles[1].a, sim.particles[2].a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can calculate orbital elements using jacobi masses by using the same flag in `sim.orbits`" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:38.958306Z", + "start_time": "2023-10-31T16:05:38.954331Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0 4.999999999999999\n" + ] + } + ], + "source": [ + "o = sim.orbits(jacobi_masses=True)\n", + "print(o[0].a, o[1].a)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/PoincareMap.ipynb b/rebound/source/docs/ipython_examples/PoincareMap.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..213bf3e660942ba967f72bb3929b2be3f6c46c26 --- /dev/null +++ b/rebound/source/docs/ipython_examples/PoincareMap.ipynb @@ -0,0 +1,387 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Poincare Map\n", + "This example shows how to calculate a simple Poincare Map with REBOUND. A Poincare Map (or sometimes called Poincare Section) can be helpful to understand dynamical systems." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:16.437138Z", + "start_time": "2023-09-24T21:21:16.376267Z" + } + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "import warnings" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We first create the initial conditions for our map. The most interesting Poincare maps exist near resonance, so we have to find a system near a resonance. The easiest way to get planets into resonance is migration. So that's what we'll do. Initially we setup a simulation in which the planets are placed just outside the 2:1 mean motion resonance." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:16.463359Z", + "start_time": "2023-09-24T21:21:16.447896Z" + } + }, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-3,a=1,e=0.001)\n", + "sim.add(m=0.,a=1.65)\n", + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We then define a simple migration force that will act on the outer planet. We implement it in python. This is relatively slow, but we only need to migrate the planet for a short time." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:16.492757Z", + "start_time": "2023-09-24T21:21:16.480378Z" + } + }, + "outputs": [], + "source": [ + "def migrationForce(reb_sim):\n", + " tau = 40000.\n", + " ps[2].ax -= ps[2].vx/tau\n", + " ps[2].ay -= ps[2].vy/tau\n", + " ps[2].az -= ps[2].vz/tau" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we link the additional migration forces to our REBOUND simulation and get the pointer to the particle array." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:16.508859Z", + "start_time": "2023-09-24T21:21:16.495569Z" + } + }, + "outputs": [], + "source": [ + "sim.additional_forces = migrationForce\n", + "ps = sim.particles" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then, we just integrate the system for 3000 time units, about 500 years in units where $G=1$." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:18.668900Z", + "start_time": "2023-09-24T21:21:16.510599Z" + } + }, + "outputs": [], + "source": [ + "sim.integrate(3000.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then we save the simulation to a binary file. We'll be reusing it a lot later to create the initial conditions and it is faster to load it from file than to migrate the planets into resonance each time. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:18.671759Z", + "start_time": "2023-09-24T21:21:18.669748Z" + } + }, + "outputs": [], + "source": [ + "sim.save_to_file(\"resonant_system.bin\") " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To create the poincare map, we first define which hyper surface we want to look at. Here, we choose the pericenter of the outer planet." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:18.674258Z", + "start_time": "2023-09-24T21:21:18.672500Z" + } + }, + "outputs": [], + "source": [ + "def hyper(sim):\n", + " dp = sim.particles[2]-sim.particles[0]\n", + " return dp.x*dp.vx + dp.y*dp.vy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will also need a helper function that ensures our resonant angle is in the range $[-\\pi:\\pi]$." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:18.676764Z", + "start_time": "2023-09-24T21:21:18.675076Z" + } + }, + "outputs": [], + "source": [ + "def mod2pi(x):\n", + " if x>np.pi:\n", + " return mod2pi(x-2.*np.pi)\n", + " if x<-np.pi:\n", + " return mod2pi(x+2.*np.pi)\n", + " return x" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function generate the Poincare Map for one set of initial conditions. \n", + "We first load the resonant system from the binary file we created earlier. \n", + "We then randomly perturb the velocity of one of the particles. If we perturb the velocity enough, the planets will not be in resonant anymore.\n", + "We also initialize shadow particles to calculate the MEGNO, a fast chaos indicator." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:18.683877Z", + "start_time": "2023-09-24T21:21:18.678660Z" + } + }, + "outputs": [], + "source": [ + "def runone(args):\n", + " i = args # integer numbering the run\n", + " N_points_max = 2000 # maximum number of point in our Poincare Section\n", + " N_points = 0\n", + " poincare_map = np.zeros((N_points_max,2))\n", + " \n", + " # setting up simulation from binary file\n", + " import warnings # ignore warning for function pointers\n", + " warnings.filterwarnings('ignore')\n", + " sim = rebound.Simulation(\"resonant_system.bin\")\n", + " vx = 0.97+0.06*(float(i)/float(Nsim))\n", + " sim.particles[2].vx *= vx\n", + " sim.t = 0. # reset time to 0\n", + " \n", + " # Integrate simulation in small intervals\n", + " # After each interval check if we crossed the \n", + " # hypersurface. If so, bisect until we hit the \n", + " # hypersurface exactly up to a precision\n", + " # of dt_epsilon\n", + " dt = 0.13\n", + " dt_epsilon = 0.001\n", + " sign = hyper(sim)\n", + " while sim.t<15000. and N_points < N_points_max:\n", + " oldt = sim.t\n", + " olddt = sim.dt\n", + " sim.integrate(oldt+dt)\n", + " nsign = hyper(sim)\n", + " if sign*nsign < 0.:\n", + " # Hyper surface crossed.\n", + " leftt = oldt\n", + " rightt = sim.t\n", + " sim.dt = -olddt\n", + " while (rightt-leftt > dt_epsilon):\n", + " # Bisection.\n", + " midt = (leftt+rightt)/2.\n", + " sim.integrate(midt)\n", + " msign = hyper(sim)\n", + " if msign*sign > 0.:\n", + " leftt = midt\n", + " sim.dt = 0.3*olddt\n", + " else:\n", + " rightt = midt\n", + " sim.dt = -0.3*olddt\n", + " # Hyper surface found up to precision of dt_epsilon.\n", + " # Calculate orbital elements\n", + " o = sim.orbits()\n", + " # Check if we cross hypersurface in one direction or the other.\n", + " if o[1].d" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline \n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(14,8))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlabel(\"$\\phi$\"); ax.set_ylabel(\"$\\dot{\\phi}$\")\n", + "ax.set_xlim([-np.pi,np.pi]); ax.set_ylim([-0.06,0.1])\n", + "for m, megno, vx in res:\n", + " c = np.empty(len(m[:,0])); c.fill(megno)\n", + " p = ax.scatter(m[:,0],m[:,1],marker=\".\",c=c, vmin=1.4, vmax=3, s=25,edgecolor='none', cmap=\"brg\")\n", + "cb = plt.colorbar(p, ax=ax)\n", + "cb.set_label(\"MEGNO $$\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The red orbits are periodic or quasi periodic, the green orbits are chaotic. " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/docs/ipython_examples/PoincareSurfaceOfSection.ipynb b/rebound/source/docs/ipython_examples/PoincareSurfaceOfSection.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..c2008ec040524709a654fc3892198007da48bad6 --- /dev/null +++ b/rebound/source/docs/ipython_examples/PoincareSurfaceOfSection.ipynb @@ -0,0 +1,306 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e5684d15", + "metadata": {}, + "source": [ + "# Poincare surface of section\n", + "This example uses `rebound` to create a [Poincare surface of section](https://en.wikipedia.org/wiki/Poincaré_map) of the restricted circular three body problem (RC3BP). First, a series of RC3BP simulations with test particles at different semi-major axes are initialized at a fixed value of the [Jacobi constant](https://en.wikipedia.org/wiki/Jacobi_integral) $C_J$. Then, each simulation is integrated and the state of the test particle is recorded whenever the test particle and perturber are at opposition, i.e., $\\lambda - \\lambda_\\mathrm{p} = \\pi$ where $\\lambda$ and $\\lambda_\\mathrm{p}$ are the mean longitudes of the test particle and massive perturber, respectively. Finally, a surface of section showing the particles' periods versus mean anomalies is plotted. Numerous resonant islands are visible at period ratios corresponding to mean motion resonances between the particle and perturber.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "17909a74", + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c1d218e6", + "metadata": {}, + "outputs": [], + "source": [ + "def get_sim(m_pert,n_pert,a_tp,l_pert,l_tp,e_tp,pomega_tp):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1)\n", + " P_pert = 2 * np.pi / n_pert\n", + " sim.add(m=m_pert,P=P_pert,l=l_pert)\n", + " sim.add(m=0.,a = a_tp,l=l_tp,e=e_tp,pomega=pomega_tp)\n", + " sim.move_to_com()\n", + " return sim" + ] + }, + { + "cell_type": "markdown", + "id": "cc68afcd", + "metadata": {}, + "source": [ + "Calculate the synodic angle, $\\psi = \\lambda - \\lambda_p$, at a specified time `T` from a simluation, `sim`." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "75dca26a", + "metadata": {}, + "outputs": [], + "source": [ + "def get_psi(T,sim):\n", + " ps = sim.particles\n", + " sim.integrate(T)\n", + " return np.mod(ps[1].l - ps[2].l ,2*np.pi)" + ] + }, + { + "cell_type": "markdown", + "id": "535243d5", + "metadata": {}, + "source": [ + "Calculate the Jacobi constant of the test particle,\n", + "$$\n", + "C_J = n_p l_z - |\\pmb{v}|^2 -\\frac{Gm_*}{|\\pmb{r}-\\pmb{r_*}|}-\\frac{Gm_p}{|\\pmb{r}-\\pmb{r_p}|}\n", + "$$\n", + "where $l_z$ is the component of the test particle's specific angular momentum aligned with perturber's orbit normal." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0dba8676", + "metadata": {}, + "outputs": [], + "source": [ + "def get_jacobi_const(sim):\n", + " ps = sim.particles\n", + " star = ps[0]\n", + " planet = ps[1]\n", + " particle = ps[2]\n", + " rstar = np.array(star.xyz)\n", + " rplanet = np.array(planet.xyz)\n", + " r = np.array(particle.xyz)\n", + " v = np.array(particle.vxyz)\n", + " \n", + " KE = 0.5 * v@v # test particle kinetic energy\n", + " mu1 = sim.G * star.m\n", + " mu2 = sim.G * planet.m\n", + " r1 = r-rstar\n", + " r2 = r-rplanet\n", + " PE = -1*mu1/np.sqrt(r1@r1) - mu2/np.sqrt(r2@r2) # test particle potential energy\n", + " \n", + " lz = np.cross(r,v)[-1]\n", + " \n", + " CJ = 2 * planet.n * lz - 2 * (KE + PE) # jacobi constant\n", + " return CJ\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "bc379bb0", + "metadata": {}, + "source": [ + "# Run simulations" + ] + }, + { + "cell_type": "markdown", + "id": "506f21b2", + "metadata": {}, + "source": [ + "Set the parameters of the simulations" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "b2bad65a", + "metadata": {}, + "outputs": [], + "source": [ + "m_pert = 3e-5\n", + "n_pert = 5/4 * (1+0.05)\n", + "e_tp = 0.0\n", + "l_tp = 0\n", + "l_pert = 0\n", + "pomega_tp = 0.5 * np.pi" + ] + }, + { + "cell_type": "markdown", + "id": "7462fb61", + "metadata": {}, + "source": [ + "Given a semi-major axis `a`, we solve for the eccentricity such that the Jacobi constant is equal to the user-specified value `CJ`. The eccentricity solution is assumed to lie in the interval specified by `e_bracket`. After finding a solution, we initialize and return a simulation with a test particle with the desired semi-major axis/eccentricity combination." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "d204a48f", + "metadata": {}, + "outputs": [], + "source": [ + "from scipy.optimize import root_scalar\n", + "def get_sim_at_fixed_CJ(a,CJ,e_bracket):\n", + " get_sim_fn = lambda e,a: get_sim(m_pert,n_pert,a,l_pert,l_tp,e,pomega_tp)\n", + " root_fn = lambda e,a: get_jacobi_const(get_sim_fn(e,a)) - CJ\n", + " root = root_scalar(root_fn,args=(a,),bracket=e_bracket)\n", + " assert root.converged, \"Root-finding failed to converge for a={:.1f}, CJ={:.1f}\".format(a,CJ)\n", + " return get_sim_fn(root.root,a)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "7152b6e2", + "metadata": {}, + "outputs": [], + "source": [ + "def get_sos_data(sim,Npts,psi_section = np.pi):\n", + " ps = sim.particles\n", + " n_syn = ps[1].n - ps[2].n\n", + " Tsyn = 2 * np.pi / n_syn\n", + " n,e,M = np.zeros((3,Npts))\n", + " for i in range(Npts):\n", + " try:\n", + " rt=root_scalar(lambda t: get_psi(t,sim) - psi_section , bracket=[sim.t + 0.8*Tsyn,sim.t + 1.2*Tsyn])\n", + " except:\n", + " # re-compute Tsyn\n", + " n_syn = ps[1].n - ps[2].n\n", + " Tsyn = 2*np.pi/n_syn\n", + " rt=root_scalar(lambda t: get_psi(t,sim) - psi_section , bracket=[sim.t + 0.8*Tsyn,sim.t + 1.2*Tsyn])\n", + " n[i] = ps[2].n\n", + " e[i] = ps[2].e\n", + " M[i] = ps[2].M\n", + " return n,e,M" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "94e2fca1", + "metadata": {}, + "outputs": [], + "source": [ + "a_tp0 = 1\n", + "sim0 = get_sim(m_pert,n_pert,a_tp0,l_pert,l_tp,e_tp,pomega_tp)\n", + "CJ0 = get_jacobi_const(sim0)\n", + "\n", + "Nsims = 24 # Number of simulations to plot on surface of section\n", + "Npts = 100 # Number of points to plot per simulation\n", + "\n", + "da_vals = np.linspace(0,0.1,Nsims)\n", + "sims = [get_sim_at_fixed_CJ(a_tp0 + da,CJ0,[0,0.3]) for da in da_vals]" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "22b19429", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rein/git/rebound/rebound/simulation.py:712: RuntimeWarning: At least 10 predictor corrector loops in IAS15 did not converge. This is typically an indication of the timestep being too large.\n", + " warnings.warn(msg[1:], RuntimeWarning)\n" + ] + } + ], + "source": [ + "all_pts = np.array([get_sos_data(sim,Npts) for sim in sims])" + ] + }, + { + "cell_type": "markdown", + "id": "56394e50", + "metadata": {}, + "source": [ + "The surface of section points are plotted below, along with the values of the test particles' eccentricities over the range of period ratio displayed in the surface of section." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "a1c57108", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,2,sharey=True,figsize=(12,5))\n", + "\n", + "min_pratio=0 \n", + "max_pratio=np.inf\n", + "for n,e,M in all_pts:\n", + " n_tp = n\n", + " alpha = (n/n_pert)**(2/3)\n", + " ecross = 1-alpha\n", + " ax[0].plot(M / np.pi, n/n_pert,'.')\n", + " ax[1].plot(e, n/n_pert,'.')\n", + "\n", + "# plot the orbit-crossing eccentricity for reference\n", + "# versus period ratio\n", + "pratios = np.linspace(*ax[0].get_ylim())\n", + "alpha = pratios**(2/3)\n", + "ecross=1-alpha\n", + "ax[1].plot(ecross,pratios,'k-',lw=3,label=\"orbit crossing\")\n", + "ax[1].legend()\n", + "\n", + "ax[0].set_ylabel(r\"$P_\\mathrm{pert}/P$\")\n", + "ax[0].set_xlabel(r\"$M/\\pi$\")\n", + "\n", + "ax[1].set_xlabel(r\"$e$\")\n", + "\n", + "# plot the location of some resonances\n", + "for a in ax:\n", + " a.axhline(3/4,ls='-',color='k',lw=2) # 1st order mmr\n", + " a.axhline(8/11,ls='-.',color='k') # 3rd order mmr\n", + " a.axhline(5/7,ls='--',color='k') # 2nd order mmr\n", + " a.axhline(7/10,ls='-.',color='k') # 3rd order mmr\n", + " a.axhline(2/3,ls='-',color='k') # first order mmr" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/rebound/source/docs/ipython_examples/PrimordialEarth.ipynb b/rebound/source/docs/ipython_examples/PrimordialEarth.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..7ab17400776f4373ee12c4258c32573cbaa7a919 --- /dev/null +++ b/rebound/source/docs/ipython_examples/PrimordialEarth.ipynb @@ -0,0 +1,320 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Primordial Earth\n", + "There are a wide variety of problems in the conext of the Solar System requiring accurate integration of N-bodies undergoing close encounters and/or collisions. Standard integrators such as IAS15 and WHFast might be insufficient for these types of problems.\n", + "\n", + "In this example we investigate the primordial Earth embedded in a disk of planetesimals, integrating it for a short period of time using the MERCURIUS integrator. MERCURIUS is a hybrid integration scheme which combines the WHFAST and IAS15 algorithms in a similar way to the hybrid integrastor in the MERCURY package." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First let's choose the basic properties required for the MERCURIUS integrator. In particular, we are: \n", + "* setting planetesimals to *semi-active* mode, which means they can influence active bodies but not other semi-active bodies.\n", + "* merge any planetesimals that collide with a planets, conserving momentum and mass.\n", + "* remove particles from the similation which leave our pre-defined box.\n", + "* track the energy lost due to ejections or collisions. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "\n", + "#integrator options\n", + "sim.integrator = \"mercurius\"\n", + "sim.dt = 0.025*2.*np.pi # we're working in units where 1 year = 2*pi\n", + "sim.testparticle_type = 1\n", + "sim.ri_ias15.min_dt = 1e-6 # ensure that close encounters do not stall the integration \n", + "\n", + "#collision and boundary options\n", + "sim.collision = \"direct\"\n", + "sim.collision_resolve = \"merge\"\n", + "sim.collision_resolve_keep_sorted = 1\n", + "sim.track_energy_offset = 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that the setup is complete, it's time to add some particles! When using the MERCURIUS integrator it is important to add active bodies first and semi-active bodies later. The `N_active` variable separates massive bodies from semi-active/test bodies. Here, we add two active particles, the Sun and the Earth. Thus, `N_active` will be 2." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "sim.add(m=1.)\n", + "sim.add(m=3e-6,r=5e-5,a=1,e=0.05,f=np.pi)\n", + "sim.N_active = sim.N # sim.N= 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's create our planetesimal disk. First we define three different distribution functions - powerlaw, uniform and rayleigh." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def rand_powerlaw(slope, min_v, max_v):\n", + " y = np.random.uniform()\n", + " pow_max = pow(max_v, slope+1.)\n", + " pow_min = pow(min_v, slope+1.)\n", + " return pow((pow_max-pow_min)*y + pow_min, 1./(slope+1.))\n", + "\n", + "def rand_uniform(minimum, maximum):\n", + " return np.random.uniform()*(maximum-minimum)+minimum\n", + "\n", + "def rand_rayleigh(sigma):\n", + " return sigma*np.sqrt(-2*np.log(np.random.uniform()))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let's set up the basic properties of our planetesimal disk. For this simple example we are assuming that all planetesimals have the same mass and radius." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "N_pl = 8500 # Number of planetesimals\n", + "Mtot_disk = 10*sim.particles[1].m # Total mass of planetesimal disk\n", + "m_pl = Mtot_disk / float(N_pl) # Mass of each planetesimal\n", + "r_pl = 2e-5 # Radius of each planetesimal" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's add our planetesimals to the simulation!" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "np.random.seed(42) # by setting a seed we will reproduce the same simulation every time\n", + "while sim.N < (N_pl + sim.N_active):\n", + " a = rand_powerlaw(0, 0.99, 1.01)\n", + " e = rand_rayleigh(0.01)\n", + " inc = rand_rayleigh(0.005)\n", + " f = rand_uniform(-np.pi,np.pi) \n", + " p = rebound.Particle(simulation=sim,primary=sim.particles[0],m=m_pl, r=r_pl, a=a, e=e, inc=inc, Omega=0, omega=0, f=f)\n", + " # Only add planetesimal if it's far away from the planet\n", + " d = np.linalg.norm(np.array(p.xyz)-np.array(sim.particles[1].xyz))\n", + " if d>0.01: \n", + " sim.add(p)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We move to the COM frame to avoid having the simulation drive away from the origin. In addition, it is always good practice to monitor the change in energy over the course of a simulation, which requires us to calculate it before and after the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "sim.move_to_com()\n", + "E0 = sim.energy()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's quickly plot the location of the particles with matplotlib:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "coords = np.zeros((2,sim.N))\n", + "for i in range(sim.N):\n", + " coords[0][i], coords[1][i] = sim.particles[i].x, sim.particles[i].y\n", + "fig, ax = plt.subplots()\n", + "ax.axis('equal')\n", + "ax.scatter(coords[0],coords[1])\n", + "ax.scatter(sim.particles[1].x,sim.particles[1].y); # Planet" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let us simulate our system for 100 years, and check that our final relative energy error is small. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "times = np.linspace(0.,1000.,1000)\n", + "encounter_N = np.zeros(len(times))\n", + "totalN = np.zeros(len(times))\n", + "errors = np.zeros(len(times))\n", + "for i,t in enumerate(times):\n", + " sim.integrate(t,exact_finish_time=0)\n", + " totalN[i] = sim.N\n", + " encounter_N[i] = sim.ri_mercurius._encounter_N\n", + " errors[i] = abs((sim.energy() - E0)/E0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The default values in this notebook yields an error of $\\approx 10^{-8}$. The following plot shows the relative energy error, the number of particles within 3 Hill radii of the planet and the number of ejected/merged particles as a function of time. " + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(10,7))\n", + "ax = plt.subplot(311)\n", + "plt.yscale(\"log\")\n", + "plt.plot(times/(2.*np.pi), errors);\n", + "ax.set_ylabel(\"Relative energy error\")\n", + "ax = plt.subplot(312)\n", + "ax.set_ylabel(\"Current encounters\")\n", + "plt.plot(times/(2.*np.pi), encounter_N);\n", + "ax = plt.subplot(313)\n", + "ax.set_ylabel(\"Lost/merged particles\")\n", + "ax.set_xlabel(\"Time [orbits]\")\n", + "plt.plot(times/(2.*np.pi), -(totalN-N_pl-2));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us also plot the final positions of all particles. We can see that the planet stirred up the planetesimal disk." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "coords = np.zeros((2,sim.N))\n", + "for i in range(sim.N):\n", + " coords[0][i], coords[1][i] = sim.particles[i].x, sim.particles[i].y\n", + "fig, ax = plt.subplots()\n", + "ax.axis('equal')\n", + "ax.scatter(coords[0],coords[1])\n", + "ax.scatter(sim.particles[1].x,sim.particles[1].y); # Planet" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/RadialVelocity.ipynb b/rebound/source/docs/ipython_examples/RadialVelocity.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..aab2be45cc08e2b787468e7378de2b97a95dbff7 --- /dev/null +++ b/rebound/source/docs/ipython_examples/RadialVelocity.ipynb @@ -0,0 +1,326 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fitting Radial Velocity Data\n", + "This example shows how to fit a dynamical model of a star and two planets to a set of radial velocity observations using the N-body integrator REBOUND and MCMC sampler emcee." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, let's import the REBOUND, emcee, numpy, corner, and matplotlib packages." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import emcee # pip install emcee\n", + "import corner # pip install corner\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We start by creating some artifical radial velocity data. Naturally, we also use REBOUND for this." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.units = [\"msun\", \"m\", \"s\"] # Units of solar mass, meters, and seconds" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We add a star and two Jupiter mass planets on 21 and 30 day orbits. The inner planet has an eccentricity of 0.1 (here expressed in terms of h and k variables)." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "sim.add(m=1) #star\n", + "sim.add(m=1e-3, P=21.0*60*60*24, h=0.1, k=0.05) \n", + "sim.add(m=1e-3, P=30.0*60*60*24)\n", + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We simulate 30 randomly spaced observations over a 50 day interval and add some noise along the way. We assume the line of sight is along the x direction. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "N=30\n", + "times = np.sort(50*60*60*24*np.random.random(N)) # 30 randomly spaced observations\n", + "RVs = np.zeros(N)\n", + "for i, t in enumerate(times):\n", + " sim.integrate(times[i])\n", + " RVs[i] = sim.particles[0].vx # radial velocity of the host star\n", + "RVs += np.random.normal(size=N, scale=20) # add 20m/s Gaussian noise" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is how our artificial dataset looks like:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1)\n", + "ax.set_xlabel(\"time [days]\")\n", + "ax.set_ylabel(\"radial velocity [m/s]\")\n", + "ax.errorbar(times/(24*60*60), RVs, yerr=20, fmt=\"o\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we create a likelihood function. For simplicity, we assume a flat prior for all parameters. So effectively, our MCMC will sample the likelihood function and we will interpret this as our posterior. As part of an actual data reduction pipeline, you will probably have a more complicated model with physically motivated priors. At the very least, you should add some basic sanity checks to your prior. For example, the mass should never become negative. \n", + "\n", + "To further simplify things a little, we restrict the planetary system to always be in the x-y plane. This means we have 5 free parameters per planet, 2 positions, 2 velocities, and 1 mass. We will run the MCMC in a coordinate system where we use the period $P$, the orbital phase in terms of the mean longitude $l$, and $h$ and $k$. We use $h$ and $k$ instead of the eccentricity and the argument of periastron to avoid a coordinate singularity in the case of $e=0$. We consider the mass of the host star as fixed." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def setup_sim(params):\n", + " P1, P2, l1, l2, h1, h2, k1, k2, m1, m2 = params # unpack\n", + " sim = rebound.Simulation()\n", + " sim.units = [\"msun\", \"m\", \"s\"]\n", + " sim.add(m=1)\n", + " sim.add(m=m1, P=P1*60*60*24, h=h1, k=k1, l=l1)\n", + " sim.add(m=m2, P=P2*60*60*24, h=h2, k=k2, l=l2)\n", + " sim.move_to_com()\n", + " return sim\n", + "def log_likelihood(params, times, RVs):\n", + " ll = 0. # We use the log likelihood to avoid numerical issues with very small/large numbers\n", + " sigma = 20 # We assume the error bars are 30 m/s for all observations\n", + " sim = setup_sim(params)\n", + " for i, t in enumerate(times):\n", + " sim.integrate(times[i])\n", + " deltaRV = sim.particles[0].vx - RVs[i]\n", + " ll += -(deltaRV/sigma)**2\n", + " return ll" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we need to come up with some reasonable initial conditions. The closer we start to the correct solution, the faster the MCMC will converge. For this example, we'll start very close. Note that we should in principle also allow other parameters to vary. For example, the noise should be modelled self-consistently, rather than assuming Gaussian noise with a given strength. We should also allow for an arbitrary offset to the radial velocity in case the system is moving towards or away from us. We might also want to allow for a linear term in the radial velocity that can account for yet undetected perturbers further out." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "ndim, nwalkers = 5*2, 20\n", + "\n", + "# P1, P2, l1, l2, h1, h2, k1, k2, m1, m2\n", + "ic = [20.0, 31.0, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 1e-3, 1e-3] \n", + "ic = np.tile(ic,(20,1)) # copy initial conditions for each walker\n", + "ic += 0.05*np.random.random((20,10))*ic # slightly perturb initial conditions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can finally run the MCMC for 500 iterations. We have 20 walkers, so this will generate 10000 samples. This may take a minute or two." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "sampler = emcee.EnsembleSampler(nwalkers, ndim, log_likelihood, args=[times, RVs])\n", + "state = sampler.run_mcmc(ic, 500)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us check the convergence of the MCMC by plotting the log probability. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1)\n", + "ax.set_xlabel(\"iterations\")\n", + "ax.set_ylabel(\"log probability\")\n", + "ax.plot(sampler.flatlnprobability);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This plots gives us some convidence that we have converged. Let's make a corner plot, comparing the posterior samples to the true values which we used to setup our test system. We cut out the first quarter of the MCMC (the burn-in phase)." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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3/RJERERFYYUnTp1UlhYmKZMmaKnn35al19+uSZOnCin06ni4mJ9+umn6tatm5KSkiRJwcHBuuCCC3TBBRfogQceUI8ePTRs2DBNnTpVBw4cUK1atVSrVi3f6IbExERFRESU6QNRWFiorVu3qrCwUKGhoWrcuLGys7MVHx+voKAgSWUbdwMAAAAAAAAAzmzH/zV8nDSHw6GmTZtqw4YNys3NVcuWLRUeHi5J2rNnjy666CLNnz9fEydO1PXXX6/HH39c33zzjaT/NczOy8ur8PjBwcF6++239fTTT2v48OH6/PPP5XQ6VVRUpOHDh2vo0KFq3ry5/vznP2v16tVl9q1Tp46mTp2qyMhIXXvttfryyy/17bffKj8/X40bN1ZRUZH2799/1Pm3bdumOXPmaPr06Vq4cKFWrVqlnTt3KjMz86j6rLU6dOiQvF7v7/0oAQAAAAAAAAA1FIFElbDasmWL1qxZo59//lkZGRnKzc1VamqqevbsqfXr12vSpEm66qqr9PLLL6t9+/YaOnSoli9fLqfTqYKCAr3//vvas2ePrLWy1srj8aioqEgej0e33367xo8fr7vvvltvvvmmJGn9+vW66qqr9Mknn2jkyJG6/vrr9fnnn6tDhw76v//7P02fPl0HDhzQwYMHVatWLX3yySfKzs7W3Llz1bVrV+Xn5ys0NFT5+fkqLi6W0+nU/v379dlnn2nfvn2qU6eOWrdurV69eqlr165q1aqVb2SFtVbFxcXKzs5Wdna2cnJyfKFKaf2/XQAAAAAAAAAApzcCiSph1KRJE8XFxWnjxo3yeDzatm2bevbsqb179+qbb75R3759ZYxRRESEPvnkE4WGhuq6665TTk6Opk+fru+//16ff/75/45ojIwxeuGFF/Tuu+/qrrvu0rPPPqugoCB5PB7dfffd+u677/Tggw/qr3/9qx5++GHNmjVLf/3rX7Vq1Spddtll6tu3r6ZOnSprrdq0aaOJEydq69atGj16tJYtW6adO3eqXr16atSokRwOh3744QfNnj1bM2fOVGxsrNq1a6eOHTuqWbNmvppWrFihrKws5ebmau/evdq7d68kKSYmRhEREQH59AEAAAAAAAAAgVdjAwlzZEODasxaK7c7T1999ZU2b96s9evX68svv9SFF14oj8ej6dOn67zzziuzT1JSkj788ENt3rxZw4YN0x//+Ef16dNHV199dZnt3n//fT388MMaNGiQnn32WRljVFBQoEGDBmnmzJl65JFHdMMNN/i2r127tkaOHKlp06bpueeeU0ZGhoYMGaIRI0bI6/WqR48eeu211zR37lzNmjVLkZGRql27tq8nRK9evXTBBReoT58+cjgcioyM9PW1CA8P1969e/Xrr7/qu+++03PPPaeCggIlJCQoMjJSkZGRqiF/MgAAAAAAAACAH9S4QMIY01qSbA2Z58fj8SgzM0szZ85UaGiomjdvrmeeeUZRUVGaM2eO2rZtW+5+PXv21LPPPqspU6bozjvvVHx8vCIjI7V+/Xq9//77+stf/qLbbrtNvXr10vjx433BwJAhQ/TNN9/o8ccf19ChQ8s9ttPp1M0336wlS5bokUce0ZdffqmnnnpKkjRgwAC98MIL+vLLL/XPf/5TO3bs8O0XGxurgQMHqnbt2iouLpbH4/GtczgcatOmjc455xytXr1aP/30kz777DNFR0dX2IwbAAAAAAAAAHDmCA50ASfCGHOJpGeNMQOttRsDXc/xCAkJUXx8nLql9NEll1yiMWPGKD8/Xz/++KMaNWokt9td4b633Xab9u7dq5deekmTJk1SZGSkcnNzJZVMgXT55Zfr7bffVlhYmCTpl19+0VdffaUnn3xS11577TFrCw4O1n333aetW7dq3LhxuvHGG9WwYUPdeeed2rBhg958801dddVV+uWXX5SamqotW7Zo69atSk1NVVpamurWravnn39effv2VWRkpMLDw9WmTRuNHDlSTqdTf/7zn0/NhwgAAAAAAAAAqPFMDRloIGPMFZIeknS/tfYnY4w53lESxphbJN0iSY0bN+6Ulpbmx0rLuv+DBSoqKlLfhnnq2rWr+vfvr8LCQi1YsECS5Ha7KxxBYK31NZOeMGGC1q9fr86dO6tr165q2rSpbyqlUsOHD9fkyZOVlpamPXv2VFhTYWGhGjdu7Ps9PT1dnTp10tChQzVmzBjFxsYqOztbZ599tnbt2uXbLi4uTk2aNJHL5VKjRo302muv6dJLL9Vtt93mm8apIhVN1+TxeJSenq6kpCSFhoZWuH91YYxZYq3tXNH6zp0728WLF1dlSVXOGKP73p8vSRo97LxjbH1ix60p/x/5y7HuLwAAAAAAAKAmq/YjJI7oFTFKUs7hMCJR0lBjTLykTyRtstbmVHQMa+1bkt6SSh4Y+7vm38rOztaCbYtUWFioRYsWaeTIkSe0f+3atXXTTTcpLS1NLVu2lMPhUFFRUZltMjIy9Omnn+rmm29WTExMmUBi27ZtSkpKqjAUSEpK0pAhQzRhwgTdddddio2NVUxMjGbOnKn169crJSVFLpdLUVFRZUKHhg0b6v7779dFF12kPn36HHXcwsJC/frrr0pPT1fPnj0VHR191Dbp6enatGmTJOmss846oc8FAAAAAAAAAFBzVPtAonQUhDGmm6SfjTGfSYqVNEtSbUl3Snpb0k8BK/IYoqNj1LNdTxUVFamgoEBdu3ZVcXGxpJIRAr8d6VBq27ZtCg4O1urVq3XXXXdp+/btqlu3ri688EL17NlTf/zjHxUeHi5JevXVV+XxeDR8+HDl5ORo3bp1kqRNmzbpwQcf1A033KDLL79ckhQUFHRUOHDjjTfqww8/1DPPPKN///vfkqQmTZqoSZMmvm3y8vLKjGIYOXKkvvnmGz388MPq1auXzj777DLH3LVrl77//nvt3r1bbrdbl1xyyVHNrZOSksq8AgAAAAAAAABOTzWi27AxJthamyupq6R2kuZba5+x1t4qaZekYQEt8BiCg4PUpUsXzZgxQ5J0/vnny+FwyOFwyOl0Kjw8vNzFWquPPvpI1113nYqKivTII4+oQ4cOmjJliv7yl7+oWbNmGj58uD7++GO999576t27t1q0aCGHw6GYmBjFxMRoxowZstbqs88+870fHh6uiIiIMkuzZs103XXX6dNPP9X27dtljDlqKa25dAkODtb48eMVEhKiW265RV6vt8z6Bg0aqH379jp06JBiY2OVkZEht9td5pghISFKSUmpEdM1AQAAAAAAAABOXo0IJKy1RUeEEmdLevKIqZw2STpkjCl/mEE1sXXrVs2dO1cul0v169c/5vY5OTl64IEHNGrUKHXt2lVffPGFhg4dqhdffFELFizQa6+9pkGDBmnx4sUaOXKkdu3apVtuuaXMMfbv368ffvhBHTp0UE5OjiZNmlTpOf/2t79JksaMGXPc15WUlKSXX35ZP//8s5555hkVFRUpIyNDhYWFKiwsVFpamnJycrR27VplZmZW2mcCAAAAAAAAAHD6qjFPhw+HEsZaW2St9VprrTFmhKSRkt6x1hYHusbKuFwubd++XV27dj3mtqmpqera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TqdTV199tSZOnCin06mHH374qG1mz56tVq1aadu2bXrxxRfVqlWrMusvuOAC3XTTTerWrZvuv//+31U3AAAAAAAAAKDmO9YIiZsldTo8jVIvSY8ZY+48vO6UdSm2h5+MG2PCjDE3SRolabi1dvepOkdVi4iIUFRUlCQjj6dQH3zwgX7++edyt33kkUeUmZmp119/3dd8WpLmzp2rjz76SFdffbX69OlzSurq27evBg0apAkTJujll1+udNvExEQ98MADmjZtmmbOnFlm3dq1a9W+fXuFhYWVu29sbKxuv/12ffjhh2rRooXvfa/Xq127dunbb79VTk7O778gAAAAAAAAAECNEHyM9Q5r7SFJstamGmN6SfrMGJOsUxhIHMEraZekAdVtmqaKRhOUKioqkrVWeXl5Wrt2rZKSkhQTE6Pi4iKFh4erV69e8nq9Sk1NLbPfxIkTNWHCBN10002qVauWb/2OHTv0z3/+U8nJybr00ku1fv36Mvu1bNlSERERstZqxYoV8nq9CgsLU+vWrSVJmZmZFdbatWtX7d27V//85z8lSb179/atO3DggK/5tiT1799fb731lu655x59+eWXatOmjXJycpSWlqabb75ZDkdJpmWM0W8GupRRus7tdmvmzJlatmyZjDG67LLLKv1cK1Pe1FdHKq0NJ87lclXY6yQ5Odkv50xOTq7wHkpOTj7q3w4AAAAAAACAmuVYT2wzjDHnlP5yOJzoLyleUttTXYy11mOtnVrdwojjlZeXpwceeEDdunVT48aN1adPH+3cuVP5+QW69dZbNWrUqDLb5+TkaNSoUWrSpIlGjhzpe9/j8ei+++6TtVZ/+ctfyoya+C1jjJxOpyQpMjLyuOp0OBx68MEH1a5dOz3zzDOaNm2aCgsLy902NDRU999/vzZv3qxJkyZJKhkdIckXfpyIiIgI9enTR71791aPHj1OeH9UjbS0NFlry138FQykpqZWeM6KwhEAAAAAAAAANcexAolhKhmx4GOtLbLWDpPU029V1UBer1cPP/yw3n77bd18880aNWqUHA6H0tK2aenSpTr77LM1fvz4Mg/+H330Ue3evVtPPvlkmamPXnjhBa1atUrXXXedEhMTj3nuoKAgSccfSEglQUPpCIznnntO11xzjV555RWlp6cftW3v3r3VpUsXvfLKK9q3b5/WrFkj6diBRG5urn744Qfl5ub63nM4HGrQoIEuv/xyxcTEHHe9AAAAAAAAAICa7ViBRKak64wx44wxtxpjfFM8WWt/8m9pNct7772nN954Q3fffbfGjRunhx56SPPmzVPXrl3VvHkznXPOOXrvvfdUWFio8PBwPfnkk3rttdd03XXXqWPHjr7jbNmyRRMmTND111+v9u3bH9e5Sx/sR0REnFDNMTExeuqpp3TBBRcoJydHX3zxhe65556jejsYYzR48GAdPHhQEydO1MyZMxUREXHU1D0FBQVavXq1CgoKJEmLFi3SwoULtWjRohOq62QsXbpU/fv319KlS/1+LgAAAAAAAADAiTtWD4n3JXkkzZV0qaSzJd1Z6R5nIGutXnnlFbVv317PPPNMmXnwQ0NDVa9ePT33xRdyu9367rvvNG7cOP3www8aOnSo/vrXv5Y5VmmviGuuuUbbtm07rvPXrVtXdevWPeG6p0+frrFjx6qwsFAJCQnq1KmTOnTooOjo6DLbZWVlafTo0UpMTFS9evX08ccfq1+/fjp06JBq167t227jxo2+0RNt2rTRH/7wB0nyvfrT448/ruXLl+vxxx/XN9984/fzAQAAAAAAAABOzLECibOttW0lyRgzXtIv/i+p+vF6vcrLy5PT6TyqUbLb7dZ7772nNWvW6K233qqwKa+1VlOnTtVdd92lffv26c0339SNN96odevWldlu69atMsYoOTn5uAOJE1VUVKSxY8dq8uTJ6tChg+688041btxYxhgdOHCgzLaFhYW6++67lZWVpXfeeUePPfaYUlJSNHjwYO3bt69MINGsWbMyr5GRkerevbuysrIUHh6u4OCS263084yIiDhljadHjRqlxx9//Kg+HQAAAAAAAACA6uFYgYSn9AdrbVFFD9tPd3l5ecrOzpZ0dJ+GlStXavbs2apTp44GDRpU7v5ud74uv/xyTZ8+XR06dPAFAeVJTU1Vw4YNy/SUOJX27dunl19+WWlpaRo8eLBGjBjh60HxW9ZaPf3001qyZInGjBmj+fPna8OGDZoyZYpatWqlRo0aldk+LCxMbdq0KfNeVlaWdu0qaUNSr149SWU/z6ioqFNyXR07dmRkBAAAAAAAAABUY8cKJNobY7IP/2wkOQ//biRZa22N60rsdrvldrsVHh5+1Dqv11vuCIfw8HBZa+V0OpWfn69Nmzap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08UXX6ynnnpKa9euLfcYeXl5GjZsmIqKinTTTTdJkqKjoyVJ77//fplAJTQ0VNHR0UpKSlKjRo00f/589enTRw899JB+/fXXco/frl07dezY8ZQ3tT7VSqehys/Pl1TSM+Oll17Svn37fNsUFRUpIyNDRUVFgSoTAAAAAAAAAE471SqQMMacJellSQ9LmiApV9Inxphm1toi/a/eCGvtdmvtZGvttgCVK0nau3evunXrplmzZmnp0qXlbhMREaFWrVppypSTH8jRqVMnnXPOOQoOLmn7UVhYqLfeeksdO3bUU089pdzcXI0dO1bdunXTeeedpxdffFFbt26VJHk8Ht16661asWKFXn31VbVp00aS1KNHDy1evFi33nqrXnjhBX3zzTdav369cnJytHLlSj355JPavHmzJk+erPPPP18vvfSSWrVqpQsuuEAffPBBmWba4eHh6tKlS5nRI9XRhg0btGbNGm3ZskWS9OWXX+qee+7Rgw8+qN27d2vKlCnatm2bdu3apaysLGVlZendd99VVlZWaUBRk/quVMrlcskYU+6SnJwc6PIAAAAAAAAAnGaq28PVLEkzrLU/HO4fMU9SkaQJxphB1to0Y0xbSdcYY56RlG+ttVVVnMfjUVpamsLDw1WvXj0FBwfrwIEDOvvssxUdHa3nn39eEydOLHffyy67TM8//7z27NmjunXrHrV+165d+te//qXdu3era9euOv/88xUWFqbIyMgy2xUXF2vatGl66623tGvXLnXv3l0TJkzQueeeqz179mjy5Mn64osvNHr0aI0ePVrt2rVT7dq19eOPP+rZZ59V3759fccyxqhDhw567bXXyhy/tKm1VNLkul+/furXr5927dqliRMnavz48brhhhv04IMP6r333tMll1zyez9av/J4PEpPT1dSUpKv70VKSook6e2335Ykff/990pMTFRqaqouv/xyXXjhhYqLi9OECRM0c+ZMSVK/fv0kKSQQ1+APaWlpqsJ/PgAAAAAAAADOcNUikDDGtJYUL2m3pI7GmPustWMOrxstKUzSUElPqWTUxCvW2irtnmyt1c6dO7VmzRo5nU6FhoYqISFBzZs31x//+Eelp6fr/fff15NPPqkmTZocsZ/k9Rbr4osv1pgxYzR58mQNGTLEtz47O1vvvPOOxo4dq+LiYiUnJ+tf//qXpJKpk9q2basOHTqoY8eOysnJ0RtvvKGtW7eqZcuWGjdunC688EIZY1RQUKC6detqxIgRGjFihDZs2KBvvvlGkydP1o8//qh7771X119/vbxerwoLCytsPl1YWFjhKIfIyEjdcccd+stf/qK5c+fqvvvu06WXXqrbbrtNo0aNUp06dSr8/I4MOcpz5DRUx6uyh+ler9d3zPT0dG3evFmS1KRJE7Vp00Yej0fr16/XrFmz1L59e61YsUJbtmxRgwYNFBcXp8TEREnSFVdc4XuNjY2VJM8JFwoAAAAAAAAACPyUTcaYSyX9R9K9kh6Q9JCkPxtj7pAka61X0kJJDQ//vsVam1nVdTocDjVo0ECtW7fW2Wefrbi4ODkcDllrlZqaqpiYGAUFBenll19WUFCQbzFGCg4OVteuXZWSkqKZM2cqNjZWsbGxWrRokQYOHKinn35affr00cqVK7VmzRrt2rVLn332mW699VZ5vV6NHz9eI0eO1IMPPqjQ0FB98sknWr16tdq1a6dXX31VPXr0UP369TV48GDNmDFD4eHh6tSpk5544gktWbJEmZmZevbZZ1W/fn3Vr19fCQkJFU7V43A4KlxKH/AbY9SzZ0/9+OOPuvnmm/XGG2/o4osv1saNGys8blU78txJSUk666yzlJSUVOY63333XQUFBemjjz5SVFSUvF6vrrrqKnXp0sW3XXx8vG688UbFx8crJCREKhmxAwAAAAAAAAA4QQENJIwxvSS9JGmEtfYKSXUl5ahkNMTdxpi/HZ66qb6k5saYaBOIp9uHhYaGqlmzZkpKSlJRUZFWr16tJUuW6P3339cvv/yiNm3a6N1339XevXuP2tcYo8svv1w//PCDVqxYoeuuu05//OMfZa3VlClT9Pnnn/umEYqPj9eVV16pMWPGaPHixcrMzNTkyZM1adIkTZ06Venp6TrvvPPUrFkzPfbYY4qNjdXf/vY3rV27VoMGDVKjRo10zz33aPXq1ZKkWrVq+eXzcDqdGjt2rD7++GOlpaWpc+fOeu+99wIyDVBeXp6mTJmiRx55ROnp6b73CwoKtH79ejVs2LA0UJBUMhLkgw8+UL9+/dSsWTMNGDBA06dPV/v27RUREVHl9QMAAAAAAADA6S7QIyQyJN1qrf3FGFNPUidJj0m6RtIkSddJelPSg5LustbmVGXPiN8qKipSRkaGioqKtGnTJq1bt04REREaPny4+vXrp+eff15ut1sPPfRQaQPkMq688koVFRWpe/fu+v777/WPf/xD8+fPL9PX4bestVq/fr0WLFigcePGqWnTprrvvvtUXFys5557TqmpqZo7d67Gjh2rzZs368svv1Tv3r31+uuv65xzztF5552n7777zp8fi/r3768FCxboD3/4g2666SYNHz5cxcXF8nq9ys3Nldfr9ev5JWnNmjV6++239e233+rf//637/0NGzZo9erV2rBhQ5ntp0yZoj179ujmm2+WJA0ZMkQ5OTkaM2aMcnJy/F4vAAAAAAAAAJxpAtpDwlq7TtK6w7/eJOk1a+1TxpgRktpJGiYpXVJUIKZp+q2srCzt3r1bktS0aVPfa6dOnXT55ZdLkm644Qa99957ql+/vp566qky+3fq1ElvvPGGvv/+e40aNUoNGzZUcXHxUeex1mrFihX65JNP9Nlnnyk1NVUhISFq2bKl7rzzTt14441q3br1UVMhBQcH68orr9SVV16pPXv26M0339SECRM0cOBATZ48Wb169fLDp1KiYcOGmjFjhi6++GJNmjRJr7zyioKDg30P96Oiovx2bklq3bq1br75Zi1YsEAjRozwvV/axLr0tVTpKJbo6GhJUs+ePdWlSxc99dRTev7559W/f38NHjxY/fr1U3h4uF9rBwAAAAAAAIAzgQnggINKGWOmS3rUWrvkVB63c+fOdvHixSe8n7VWRUVFysrKUlxcnIKDy2Y5paMAiouLNXz4cH366af6+eef9fGaQhUXF+uf13Yo97jFxcWKjIyUJG3btk3vvvuuJk2apA0bNig4OFh9+vTRoEGDdOWVV2r//v3aunWrmjRpIpfLVSaQKC4uVmZmpuLj4xUUFKSioiIdOnRI8+bN09/+9jelpqZq0KBBevbZZ1WnTh0FBQWVW4/H46mwqXVeXl6ZaY9++/m43W65XC4NHDhQb775ptLT01WnTh0ZY7RgwQJ1797dFwD81qluam2trfSYBw8e1Nlnn63GjRtrzpw5MsbI6/VqwYIFmjRpkj7//HPt2bNH0dHRSk5O9u23evXqJdbazhUd92Tvr0Awxpz09Fr3f7BAkjR62HmnsqQKuVwupaWllbsuOTlZqampVVKHvxljKr2/AAAAAAAAgJos0FM2SZJ+2xfCGHO1pARJOwJTUfmCg4OVmJh4VBhxpPz8fD322GNKSEjQzTfffNwPfFNTU3X++efr//2//6eGDRvq//7v/zR9+nR9+eWXGjZsmGJjY1W3bl1FR0erbt26R+2fmZmpnTt3KjOzZCCJ2+2W2+3W+eef7+ut8NVXX+nss8/WmDFjVFBQcHIfQiVef/115eXl6Z577tGvv/6q119/XQ899JA+++wzzZ07V/PmzTvl5zxZkZGRevLJJ7Vw4UJ9/vnnkkoal3fr1k0vvfSSduzYoRkzZuj6669X8+bNfQsCIzU1VdbacpeKggoAAAAAAAAA1Uu1CCRK+0IYY8KMMTdJGiVpuLV2d2ArO36lD0edTqcaNWqkl19+WcuXL1d6erpvdEVFy759+9S/f38VFhbqP//5j7p3765nn31WXbt2VXBwsLxer9xut5YvXy5jjA4dOqTi4uIyD2Xj4+PVoEEDxcfHy1qr8PBwRUVFKTo6Wo0bN9Yll1yiX375Rf/3f/+nUaNGqXPnzpo6depRD3eLi4srrLOgoEAej6fcJTs7W+PGjVPfvn3Vpk0bpaWlae7cuZozZ45+/fVX9ejRQ927dw/I38Raq4yMDL300kvKyMiQtVZer1d/+tOf1LZtWz366KNyu93yer3yer3asmWLtm7dquTkZDVr1kyNGjXyLQAAAAAAAACAkxPQHhLl8EraJWmAtfbXQBdzpGNNKXTkFEjR0dG65pprNHDgQKWlpSkuLs43LdNv5efnq3///tq6daumTp0ql8uls846S/Xr11d4eLjvvFu2bPEdq127dnI4HGVqKiwsVGpqqmJiYuR0OhUSEuKbXql0dEL37t315Zdf6rvvvtPdd9+tgQMHql+/fho9erRatWolSQoNDa3wWqOjoyscHTJx4kTt3btXDzzwgBwOhy644AJt27ZNa9eu1R133CGXy1Xp53cyjneap8LCQo0bN06lUyndeeedvs/n2WefVb9+/TRlyhRdd911vn0KCgr06KOPavLkyae8bgAAAAAAAAA4E1WLERKlrLUea+3U6hZGnKzRo0crKChIGzZsLLd5tdfr1YgRIzRnzhy999576t27txo3bqyGDRsqLi6uzLZNmzZVs2bN1KJFCxUWFh51rJUrV2rp0qVauXLlUetat26t1q1b66yzztLq1at1wQUXaPny5Ro9erTmzp2rNm3aaMiQIVq/fv1JXafX69WLL76o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sqXWrVtX6fGzsrJ03XXXqV69emrZsiVTNeG4DRo0SHVq11HdunUr3KY0TCi9P51Op5YvX6577rlHffr00dixY9WqVStNnjxZu3btUv/+/bV3715lZWWpRYsWio2Nldvt1p49e7R48WK9+uqrWrhwoeLj47Vz506NGTOmzPRQAAAAAAAAAKo/AokAs9aWuzidTkVHRys8PFxer7fMkpeXp5yckm+o5+Xl+fYxxigiIkIul0tr166Vx+MpdykoKNANN9yg3bt3q0+fPrrzzjsD/TGgBklISFDDhg0UEhJS7r176NAh/fDDD9qzZ49vJM/mzZs1dOhQpaSkaMKECbLWyuPxqFOnTvrPf/6jNWvWaODAgdqyZYuvAXZYWJiysrKUnp6uvn37qnv37rrtttskHf3vBgAAAAAAAED1FxzoAlA+h8OhiIgISSUPX91ut5xOpzIzM/Xpp5+qV69eSk5OVmRkpByOsrlSu3bt9PXXX6uwsFAxMTFHHfv555/XjBkz9Nprr/ke8AJHqmz0gcPhkLVSUZFHXq9XwcFl/xtZsmSJfv75Z3k8HiUnJys7O1tXXXWVJOmLL75QnTp1ymzft29fvf322/rzn/+sOnXq6O2335YxRkFBQWrdurWcTqeaNm2qiy+++JRfJwAAAAAAAICqwwiJGiA3N1cZGRnKzc3VZ599ph9++EH//e9/yw0jJPlCiPKmbfrvf/+rp556Spdffrm6du2qZcuWKTs7W1u3blVhYaHfrwWnh6Iij/Lz8/XTTz8pPz/f977X61VycrJatWqlDh06yOv1avDgwdq0aZP+85//qGnTpuUeb/DgwRo7dqy++uorjRgxQtZa5efna8uWLUpJSVFYWJg8Ho+2bNlyzGbaAAAAAAAAAKonAoka5pprrtG5556rDh06KCsrS1lZWXrvvffKNBgubVD9+eefl5nO5ueff9bw4cN19tlnq3///po+fbrmzp2rqVOnauPGjdqxY0eVXw9qpuDgEBUUFOrjjz/WwoULfe+73W6FhoaqW7duio+P10svvaT//ve/euGFF9SzZ89Kj/m3v/1Nd911l77++mu9//77WrFihRYsWKANGzZIktLT07Vp0yalp6f79doAAAAAAAAA+AdTNtUApSMhnE6noqKidO+992rHjh3asmWLVq9erblz50qSbrjhBknS2WefrSFDhujl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7CCcEEIIIYQQQgghhBCiZpGARAUICgoiNDSUoKAgLBYLISEhdO7cmS+++AKj0cjff58AoF+/fjz88MN89tln3H333eTk5JR4znnz5vHee+9x0003sWXLFn7++Wf++OMPPv74Y9q0acP48eP5+++/Cx2jteb06dMAHD16lFWrVvHHH39gtVoJDg6mTp06WCwWTp48yZIlS8jMzKy8D0XUSCaTiTfffJPPP/+c6667jqlTp9KjRw82btzIjBkz6N69Oy1atOCpp55i27ZtGI1GTp06xVtvvVUkiGYwGLjxxhuLLWJ94sQJli1bxp49ey66z9999x0zZ85kwoQJDB06lA0bNrBhwwYgv3D3X3/95f4tWa1WMjIyLmgVkhBCCCGEEEIIIYQQompIQKICBAQE0KpVK/z8/LBarVgsFgwGA0FBQYSEhHD69Gn3hOnzzz/Pc889x/z587n66qtJSUkpcr6kpCReeuklunTpwkcffYSXlxcAL7/8Mtu3b+e+++5j3rx5REdHM3HiRJKTk7Hb7YwfP56JEycyYsQI/Pz8aNmyJX379iU4OBij0UhoaChKKfbt28fWrVvZuHFjlX5Oombw8fFh6NChfPbZZ3z00UccP36cXr168dBDD5GTk8P//vc//vjjD/766y/eeecdIiIi6Nev3wXVaWjdujVxcXG89957xW7/4osvuPrqqzlw4ECp50lLS2PChAm0a9eO4cOHExUVRbdu3bj88ssBOHToEHv37nWfx2Kx4O/vL4WrhRBCCCGEEEIIIYSogUquIitKlZOTw6FDh4iMjMRkMuHr60tWVpZ71YGvry8AISEhJCQksGbNGgYPHoxSikcffZSmTZsybtw4Ro0axeeff05kZKT73M899xw2m42pU6diMBjc57Tb7fj6+vLSSy9xzz33MGXKFGbMmMHs2bNp0qQJf/75J7fccguDBg0iPDzcXS/Cbrfj5eWF1WolOzubmJgYvLy86NatfEVgxT+D0+mkY8eOzJgxgwMHDtCmTRsGDRpERkYGiYmJpKWlYTAYOHbsWKEC0mVVUlAgNTWVCRMmkJaWxtq1a3njjTe46aabit336aefJjExkdtvv52dO3ficrno2bMnJpOJxMREIiIiAGjWrBmQv2qj4LcnhBBCCCGEEEIIIYSoWWSFRBm5XK5Cj8OHD3PgwAEOHz6My+VCa43Z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yJAhrFu3jiuvvJLnnnuO22+/nSuuuAKr1crkyZM5evQokZGRrF27lunTp/Of//yn0vrndDqJjY3F09OToKAgfHx8ADhw4AC7d+8GLjxt09m/8eJqcgghhBBCCCGEEEIIIc6vRgUktNZblVJ/Az8Dnc+8dlIp9S5Q+8zfu6uyTzabjZ07d9KmTZsSU8tYLBYcDgcZGRk4HA6sVisAPj4+GAwehfZNSEjg5MmT7N27l7i4OLy8vLjxxhtp2bIlXl5eNGnSBID4+HiOHj2K1rpCUzYppXjqqacAeOONN7j55puZNWsWmZmZpKWlceLECfLy8khLSyMtLY19+/axePFixo4dy8svvyxFgAXfffcd2dkWfHx8WbtvH23atGHWrFn07t2bKVOm8M477/Dxxx/z559/curUKU6cOEFkZCT79+9n1KhRPPzww+dv5CIkJydz+vRpAgMDMZvN7tebN29e6PlCVHV6KSGEEEIIIYQQQggh/olqTEBCKeWltbZrre9TSv2glFoHXKe1PgmEAJep/OrQurJWRhR32l27dvHnn3+ilCox/7xSipycHBITEwkLC8PX1xeXy3VWehftPnfbtm0xGo3UqVOHlStXMnDgQCA/L/9ll13mPme9evWA/NRPFe3coMQXX3xBQEAAJpMJLy8vfHx8MJlMuFwudu7cKcGIf6Fzfwtaa6xWKxaLhVGjRrH2wzV4e3sxdepUpk6dysCBA4mKiqJ79+488MADLF26lPnz5wPQokUL9u/fT5MmTfjll18qve8hISHu57PHrLe3d7kLWhsMBlkZIYQQQgghhBBCCCHERaoRAYkzxartZ/79JPAacC0wUyllB9qSH5yo1ATuBZOX2dnZbNmyhZiYGPcEZkkTmS6XC5vNRlBQEJA/CZqTk0NGRsZZqZoULpeL5ORkQkJC6NSpEwBjxowp1O7ZTCaTe7VERQsODgbgtddew8fHh2nTphETE0Pjxo2x2WzYbDasVitWq5Xnn3+eZ599VoIR/3JnpyyqW7cu9evXJykpidtvv517772X2bNnM2fOHD766CO+/vprbrvtNlasWMHbb7/N999/z6hRo/jll1947bXXyjWWSjvm3G0FAb+zuVwud0ClImuyCCGEEEIIIYQQQgghyq7aAxJnghGuM/+eBnTXWr8CrFJKRQEWIEVrfayq+rRlyxY2bdoEQO/e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v/12evTowcSJE1m2bBmHDh0iKCiI/Px8vvrqK9q3b68dY7fbSUlJJTMzk6SkJFq1akXDhg3L9WdHijuAoKAgevXqxZo1a1i1ahUGg4Fp06bRpUsXhgwZQs+ePfnll1949dVXsVgsvPfee9o+ZwclyhZHd3d311aDGI3GKvudEEIIIYQQQgghxH+VpGw6T5V9TmazmT179tCkSROngd+7311Dtqmk3P4+7npe6VuTW265hZYtWzJ79uxzpmxKSUnhjjvuICEhgc6dO/PEE0+QkpKCl5cXqqry1VdfsXLlShRFITo6mqZNm5Keno6vr2+F587IyCAmJqbCa8bHx1OnTh3t75SUFO3cY8aMIT4+np9++onXX3/dqVDz2Sskyjp06BADBgwgLS2NjIwMoHRmev369bUZ1IWFhXzwwQds3LiRW265hYceegir1UpmZiaBgYGVpt25GG+99RZPPvmk08qI3377jb59+3LzzTdTs2ZNlixZQlZWFr169aJu3brase+++66qqmqlo/fBwcHq4MGDgdI+88svv3DixAlq165NXFwc1atX59SpU1oanLJmzpzJmjVr6Ny5M3fccYeW6kVVVWw2G5mZmbi6urJ582Y6duyIt7d3pWljtmzZwt69e2natCktW7Zk165d/O9//2PVqlVkZ2dz44038tFHH1GzZs0K30dlKyQenreDXLO13Ov2ogJ+feMep4Hfs3Xp0oUnnniChQsXsnjxYm3ljsFgICgoiFq1ahEREUH16tUB+Pnnnzl69Cj9+/fn/fff184THx/P3XffTXZ2NgcOHEBRFMLCwrTtY8aM4bPPPuPkyZP4+PhoKyTOTh10LVKFncu1TqszcOBAfvjhB2699VZ+/PFH5s6dW2Eh95EjR7Jo0SLeeecd3njjDVq0aMGyZcu07Y70dR4eHhw4cIAmTZqwZ88eBg0ahKqq7N69m8DAwHLnVVWVvLw8hg0bxo8//ghAw4YNSU5O5ssvv6R58+bavo/O31VhX9RZiwhLXOb0WkX90mw2s2zZMoqKisjJycHNzY34+Hg6duxIaGgo27dvR1VVJkyYwAcffMCcOXMYNmyYlt5OVVW2bdvGjh07aN68Oa1bt8ZkMlWapqms/2Lfut7VqlWLhISECrc56pZURFI2ScomIYQQQgghhBAXRlZIXKI9e/awY8cOAKci1RUFIwDy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2LHsev8X4uLisdlsFc7urUpUVBSLFy9m2LBhDB8+nJtuuolVq1bh6urKqFGjmDx5MtWqVSt3nE6no27dutStW5eBAwfyxx9/0K9fP2644Qa+/PJL3nvvPX799VcKCwt588032bx5Mxs3bgSgR48el/RZiOtLVSl7IiIi+Oabb+jRowd33HEHq1evRq//+5Zwxx13MH36dJ566ikCAgIoKSnBbDaTmZlJel5pmpk33ljK9OnTadSokRYsuBDr1q1j+vTprFixAkVR6NOnD2PGjKFnz55OvxdVVbVVPo50NeLaOlc6KFdXV+rUqeP02rhx4/jxxx/56quvnGo2lD3mu+++o0OHDvTq1YtnnnkGg8FAamoqKSkppKamav8uLi4mLCyMGn2ewNXNlcmTlxAREUGHDh0ICAhg/vz5rF+/nk2bNmEymQCoW7cud911F88++yw1a9Ysd/1XX32VnTt38vnnn9OoUSNuuOEGfH196dixY4Xv0cfHhz59+ji95uXlpa2McHB3d8disXD06FGKi4tJSEggISEBgGbNmgHORawdafoqStdXUT2PczlzHssFHSSEEEIIIYQQQghxBUhA4jJ44IEHsNvtjBw5UnvNYDBQr149IiL2cuzYcY4fP+404HS+QkND+fbbbxk5ciRr167lvvvu45FHHsHb27vCYERZBw4cYMqUKSxZsoTatWuzdOlSPD09ue+++8jPz2fYsGG4u7vTtm1bAO1Z/HvodLoqi92Gh4fTpk0b/vjjD+Li4qhbt662zWAwMGnSJB5++GF69+7tdFzL4VMB+Przd7j55puZNWsWXl5e2O32827bvHnzGDVqFKGhodxxxx08+eSTNG9ecWqzsm2SlRHXh3P1rYp07dqV2NhY3n77be6///4KUz0FBASwdOlSunfvznPPPQeU1u0JDQ0lNDSUOnXq0KFDB9zc3EhKSiJbtZOXm8t7c97DYrGg1+sJCgoiJSWF2NhY7r//fjp27EinTp0ICwursF0lJSU8+eSTzJgxg3r16uHj40NISAi5ubkUFRVdUL+uTMeOHTGbzVSrVo2mTZty7NgxmjRpgpubW7mUaS4uLuVWRlyKM4FG62U7oRBCCCGEEEIIIcRFkoDEZRAREaGtjDibyVSIXu9yXoOo8+bNw8XFhaFDhzq97uvry8KFC8nPz9eCEEVFRZWeJz4+nmnT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Z2VlcfToUW0lhZeXF02bNtVem/NzVVFNSYMv53pTUcXvmYor/E6uQ15eXtrjdOTm5moP53el2Wxmw4YNdO7cWSvDydc1mUyV3sfc3Fy2bduGn58fubm56HQ6t6s6aquuDP5X9zeO1FchhBBCCCGEEOdDnRyQUFX1sKIoOaqqFimK8jrwOjAC0AGrAauqqispH5Sok5wrHkpLS10660wmE0FBQWRnZ3Pw4EGOHDnCP//8w9atW0lOTkav13PjjTcyevRoGjRogMlkomXLlhgMBpcZo/v27WPevHkUFBRgMpno1auX21BR4tJX3cqYI0eOsH//fhwOhzZQYDQaqVevHhkZGVXOBneqbadzixYtOHbsGAApKSn4+/sTHByMXq+noKCAo0ePkpCQQGhoqFbGjRs3sm7dOgB69ep1prehWjXNfq9JXelMvBCqeu3O0GDgGn6n4r2ubhXO6Q5oODua8/Ly+OabbzhU3BCdTqF+/ZvJzMx02bdp06Z07NgRT09PIiIiCAkJITw83G0dcOZLOXr0KP/88w8mkwmTyXRJdELXJc58El5eXpXqUEREBEajkZCQEG0/o9FITk5OrT67LVq0QK/XEx8fz5YtW8jMzERRFC0cU+/evYGq625FR44c4fDhwyQkJBAVFUVubi4lJSV4enqe1us+nckOVbVbNputVp+xUyX1VQghhBBCCCHE+VAnByQATgxGKCd+vgm8AlyjKMowYKCiKF2AIlVVHRe2pO5ZrVZSUlIoKiqirKyM/Px8AgICKCoqYvXq1UydOpWNGzeSlpaGwWCgd+/ePPbYYyQnJzN58mR+//13brrpJt577z2io6Mrhbhp0qQJAwcO5NixY3To0AGoPlSUuHRVtzImKioKgMDAQC3Renh4OBkZGRw9ehSofqWEu447h8OB3W4nOzubJk2a0LNnTz799FP69u1LWloaZrOZadOmMWjQIJo2bap1xBmNRo4fP05wcDA5OTno9Xq6du1Kp06dzvo9OZlz9ntNr7cq53rlVF1W1WuvGMKooor3un79+lWetzadwhU58wMEBgby8ssvM3PmTAC6jBmHj4831113HW3btqVNmzaEhYWxZMkS5s+fz+zZs5k+fTre3t707duXHj16cM8992jJjx0OB8XFxXh5eREeHk69evVwOByYTCYCAwO1lUan43KuN1WpOAv/5Drk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TIKCgli7di1r167lk08+Yf78+fTr149PPvlE6+grLi52e30PDw/Gjx/PlVdeyT333EPv3r2JjIwkKSmJNm3a8P3339OyZUuXY2JiYvjjjz/o168f1157LUuXLqVhw4badqvVSlJSEq1bt9ZWdxw9epTMzEwtzE9YWJi2v8ViYeHChXh4eJCdnc22bdvo1q0bzZs3d+mou9xnBztft8lkoqioqMqVEjfeeKPLT4AlS5awYsUKduzYwccff0xsbCy33HILkyZNYtu2bdSrV48dO3awevVqoqOj6dKli8vs7uzsbA4ePIiPjw9NmjQhPDzc7QoJp+nTp3PPPfdQr1495syZQ0BAQKVyHjt2jA9OhHCKjY2lWbNmzJkzh++//x4oT/zbvXt3evTowVVXXUWHDh2YMmUKV1xxBe+88w4jRowAoE+fPmfh7opT0blzZ+2ns706mcFgoFmzZvz3v//lzz//pFGjRqxZs4Zt27YxdepUunTpwqJFiyrllIDyyQSTJk3iwIEDfP755yxbtowXX3yRa665hr/++otff/2VZcuWkZ+fj8lkYsaMGbRq1Yr58+fTvXt3Jk6cyLBhw7RwTXl5eVqC6WnTpnH8uBG73a7V8fT0dA4eLF81ER4eriXwLioqYurUqdx2222Eh4dr+xcUFGiTCU5O2p2dnc3hw4c5cuQI1113HV5eXmRnZ7N48WJSUlLQ6/VSZ4UQQgghhBBCXHTqwtS4f4CFwChFUa5SVdWuqupUypNXR6iq+r6qqseqP8WF1aVLF9q2bYvJZDpvMeoVRSE+Pp7HH3+cefPmsWrVKurVq8fgwYO59957KSwsJDc3l61btxIXF6cl5RSXLmcor4oJeJ2zcIuLi13CdplMJiIjI7n11luJjIyksLCQHTt2kJmZSbdu3WjatCl///03d911F/Pmzas067g6w4YNY+PGjcTGxlJWVsaUKVPYuHEjzZs3d7t/69at+fPPP8nJyaFPnz4cPnxY25aUlMTmzZtJTEwEysORREREEB8fT0RERKXwJDt27CAtLY2ysjK2bNnCwoULmT59utucL5dzGDPn7Oji4uJqV0oEBwdz9913uwxm9u3bl65du7Jz505atWpFSEgIw4YNAyAvL4/IyEjKysrYtGkTf/75p/beVTxn48aNiYmJwWg0kpGRAfwbBscZJqmsrIynnnqK2267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Cwtd/h44uQ12OBwcP35cG6Coqm45HA7y8/O1JNfO/Y4ePcrLL7/Mm2++SWZmJmazWVspYTQapc6eJ40aNaqynlYVTk4IIYQQQgghRGV1ZkDC6UQOCfdToesIZ1z+isk3p02bxu7du89KyKbly5fTv39/Xn31VXx9fZk0aRJffvklDz/8MH/99RfPPfccR44cYfjw4Vx99dXMnTu30uxxX19fPv74Y/7880/S0tL473//y969e0lPTz/j8omLj7s66xQZGUlsbCxbt27lq6++4ssvv+SGG27QOuPccTgcHE1Lo1evXvz111+sWbOGW265hV9//ZVu3bpx/fXXM2/ePBYvXsyoUaNo3rw5//vf/wgLC+Ozzz5j+/btTJkyheTkZIYMGUJubq527o4dO7JlyxaWLFnCoEGD+P777+nQoQO9evVi6tSpFBcXU1ZWRkpKisRPv4CMRiMDBgxAURRtQCIrK4uUlBRycnLw8vIiKCiIwMBA7Zh58+bRtm1bvv/+e55++mm2bNnCs88+y5AhQ2jTpg2+vuWhb6xWKz/88AOfffYZO3furHLG/JQpU3A4VBo0aHBKZX/11Vfx8vLihRde4IYbbkBVVebMmXOad0KcSxXbrnnz5vHrr78yb948oqKiiIuLIyoqyiXkXHVsNhtz5sxh8ODBdO3alXnz5lW7f1BQEPXr12fjxo1VbncOprprWwEtn8oLL7zA//3f/1W7+sNqtXLo0CFtgNjpu+++47fffuOXX35hxowZ1eZ9EefOoUOHUFXV7SMlJeVCF08IIYQQQgghLhp1bkDiYuDl5aUlqnS69dZbiY6OPqMBic2bNzN06FBuvvlmcnNzee2115g5cyY9evTQZj16e3tz++2389tvv/H+++9TUFDA6NGjueqqq0hOTq50zquvvpoXXniBuXPnsnLlSvz9/U+7fOLiZTQasVqtbkN1eXh4EBMTg16v58CBA+Tm5vL8889Xe76MjExKS8uTDkN5aJMPPviAjRs38sYbb7Bv3z5uueUWbrrpJv755x8efPBBlixZwty5cxk+fDheXl7069dPG5QYNmyYy6CEoij06NGD7777joMHDzJu3DgyMjK44447aNSoER9++CGvv/46a9aswWw2VxnOSZwbFouF5cuXoygKTZs2ZdeuXZhMJpKSkli5ciWFhYXExcXRo0cPbeXYnXfe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FouFgoICDhw4wKFDh9iwYQNjx44lKyuLN954Q6vnVbV3x48fJyQkxKWNq/i48847ycvL48cff3Rb7xRF4fPPPyc/P58XXngBb29v/P39Kw1eOctbVFREYGAgaWlp5OTkcN1112n7HD58mM8//5yVK1dy+PBhjhw54jLBASq33T4+PnTp0gWLxcLRo0fJyso648+7EEIIIYQQQghxoVx2AxJWq5WSkhLt95SUFJ577jlSUlK055wd9na7HYvFwoEDB/D39yckJISAgADq16+vzcC22Wx8/vnnLF26lJ9++okOHTqwZcuWSiFvUlNTmTJlCsOGDSMhIeGUy/3YY4/Rv39/l+fMZjO//fYbN910U40hRpwDEsnJyad8bXHpMRqNzJgxg969e3PrrbfW6pj09HRmzpzJkCFDMBjKVzScyqxxVVV59dVXGT9+PPfeey8ff/yxS6x+u93Ogw8+yB9//EFAQAAvv/xypfMnJibSunVr7Xfn6iXnjOHo6Gji4uKIjo7WOgedHc8Xu5Pbrto4ePAgTzzxBAcOHKhx3y5dunDFFVdgt9tZs2YNy5YtY926dTUmDHcOjup0Om1QIjg4mKKiIsxmM8XFxURGRgKuKyRmzJjB9u3b+eqrr2pcGVHRnXfeyZ49e7BYLCdWSJye48ePA+UrJJwDEvn5+UB5x3J6ejrZ2dlER0fTpEkToqOjT/ta4vSEhIQQERFBWFiYtgqxc+fO6HQ61q1bx1NPPUWnTp1qPE9mZiYhISFVbu/SpQtt27bl008/rbJDv1WrVjz77LP8+OOPTJ8+nfT09EqDUs7yhoSEuLRFYWFhNG3alObNm9OyZUtCQkKwWCx4eHgQGBjoEv4uPz+fX3/9lby8PLf3o7i4mLfeeou5c+dSXFxc42sXQgghhBBCCCHqmstuQKK4uJj9+/drv3/22WcsXbqUzz77THvO2Unbu3dvtm/fTlJSUpVhYHJycujRowddunRh5MiRdOjQgYKCApdrAEyYMAFFUXjqqadOucwOh4P169cDrh16v//+O0VFRdx+++01nsPX15eoqCh27tx5ytcXlxaHw8GLL75IaWkpH330Ua1nen/++efYbDbuuOMOAGw2O/369ePOO++ssdNfVVXefvttbTDio48+chmMcDgcPProo/z666+89tprfP755+zdu5dvvvlG28dsNrN//36X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H374gbvvvpvx48dz6623sm7dOg4dOkSjRo0qnadNmza0bNmS6dOnn7XX8OGHH+Lr60tkZCR9+/blwQcf5IMPPmD+/PkcOHCA7777jujoaPr06QPArl27UFWVFi1aaO18VZz3pOKKi1NVUlKifYdYrVaSk5OxWCynfb5L2bx581i0aJFLnpHCwsJah2xKTExEVVXat29f476FhYUAtQ7ZBOW5dPR6HVA+CLB582b+/vtvNm/eXOkYg8FAQEAAu3fvprS0lNTU1GpX3wghhBBCCCGEEJeqOvu/YUVR/gN8D3Q/MShRfNIuBsBTUZThwAeA+VyVRafTabGg9+3bx86dO9m3bx9QHou/d+/eJCUl0bVrVy1pK8Avv/yCr68vRqORX375BS8vLwYOHEiXLl0YNGgQixcvZt26ddVee+fOnbRo0UJLnBkbG8vu3bu17U2bNiU5ObnKgY2VK1dy+PBhFixYwJw5c0hMTCQjI+OMkmiKi8s111xDr169uOaaayptczgc3HvvvSxbtow//vjDZVtiYiJff/01Dz74IO3atdOeX7FiBQEB/uh0rqFRPD09uemmm1i9ejV79+6tdK2oqCjS09NZunTpGb2ehx56iJSUFP7++2+CgoIICgrCYrFQUFAgHbtnqGKuiKoS7k6dOpVx48Zx6623uq1Ter2eL7/8kscee4y5c+cyceJEjh496nZAQlEUbrnlFv755x8OHjx4xuVfuXIlTz31FL169eLaa6+ltLSUWbNm8cwzz3D99dcTHx/PwoULGTVqlNYZvGfPHgBat26ttfNOqqpiNpu19jUrK4ujR4+SlZXl9vrOgbGqwveYzWZ2797Nzp07SU5O5quvvqJjx4689dZbZ/zaL0WDBg2if//+DBo0SHuuuLiYgoKCWg0KJSYmArVLaO1sO2oTbsuZr+HGG29k7759HDlyhLVr1+Lh4aGtxDhw4AClpaXaMQ6Hg8TERLZv387y5cs5dOiQ9neEEEIIIYQQQghxOamTAxKKojQF3gWCgEFAV+VEHAJFUZxlzgOeAh4GblBV9cD5KFuTJk1o2bIlTZo0ASAgIID//Oc/dOjQgY0bN5KUlKTte+WVV1JUVER+fj6tW7fGarUyb948/v77bxYuXEiDBg20uOxVady4MUlJSZSWllJSUkJqair16/8bqWrlypXEx8dXGaahVatWjBkz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h5deeol+/fqxbNkymVl5CSkuLsZut3PllVfy3Xff8dRTT6EoCkajkZ9++olu3bpxyy23uOQLAPjjjz945pln6NGjB19++SVvvvkmv/zyC3q9nhEjRrB7925WrVpFXFwc3bp14+eff8bf359169YRExPD888/X2WZNm7cyMSJE3n00UddEic7/fe//+WPP/7gkUceYfPmzdV2KDs5HA6sVisGg4G0tDSio6OrXIV0OXGuMNmwYQMFBQWkp6djsVh49913K83eDQgI4NNPP+U///kPe/bsAWDevHncd999tR6QuPLKK2nevDl///03Pj4+tGvXTtvm5+dX44DEgQMH2LFjB9dff73L8ykpKZUGuBYsWMB///tfre5eeeWVjB07lltuuQWz2YzJZMJsNrN27VrWrl2Lw+EgJCSE4OBggoODCQ0N1X5funQpy5YtA8pn4P/888+YzWZee+010tLSOHz4MHa7ndLSUvLy8rScQgEBAVxzzTXVvibnfUtNTZV6ecLBgwfZvHkzNpvNbQirivfLw8ODkpIS9u7dS9OmTfH09NTqUsUQWi1btuS+++7j888/p02bNtxzzz3VlqGqHBIAv/32Gzk5ucTExGgd3f7+/jzwwAOMGzeOxMRE+vbtS0REBPv27QP+zTXl/E52OBxs27aN/fv3Y7PZaNCgAcHBwRgMBu071vn3xNkaQNDpdJSWljJ79mwGDRpEYGDgWTlvXZGSkiIhqIQQQgghhBCiDqvtgESUqqrX1rzb5UlV1UqdHs5OB4PBQGBgIH+sW8ehQ4eIiYmp9lyKojB+/HjmzJnDihUrajUgURsVOxU/+OADCgsL+eCDD7Tn9+3bx5IlS1AUhRdffJEbbrgBKB8gmTZtGtu2bWPChAl069aNNWvWcPjwYVq0aHFWyiYuvH379rF582Y8PT1JSUnBbrdrHfzR0dE8+eSTvPzyy6Snp7uEtVm8eDE6nY7PPvsMk8lEVlYWVquVjh07EhgYSNOmTVm1apXWwf3rr78ydOhQfv75Z+666y63na5NmjQhPj6e999/3+2qHyd/f386dOjAokWLKCoqol69eto258CDl5eXS913zjTOysoiPT0doMrBvMuJTqfD19dXG1BITEzEaDRWml3uVFBQgMFg0Fa/OJMEO5OY15Q0WFEUnnvuOUaPHs0jjzziUqd27tzp8l6607Vr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ze7du/nll1/Ys2cPe/bswel0MnbsWCZOnMi4cePo37+/z/clOzubb7/9lq+//poffviBiooKoHbn0oABA0hOTmbQoEH634iICB56dwMAT/xmeIPvQ0MTtAUFBTzzzDO88sorVFVVce211/LII4/Qq1evZr2+U6ZMIS8vj+3bt/v8Tnu6JyTa22eiqI2B+xeuB+CZa8+td1lb/q5siaa+zwshhBBCiFOrPUxIfAl8qKrqm4qiGICxwAwgU1XV/yqKkgK4VFXdoiiKop5kg0/lhITdbqe0tJTg4GCsVitOp5NpD75OcJdgPv/b1T5vd8UVV7Bq1Sp2795NQECA12WeExJ11dTUUFRUxIoVK/RBs/z8fBRFYfjw4UybNo3JkyfrOaw/++wztm/fDsA555zDrFmzuPzyy5v9I1XUOhMmJMrLy/U41WIuNTWVP//5z9jtdlauXImqqgwaNIgrrriCK664wqvYd01NDQ+/txGA64YGUV5eTkBAAAEBAfj7++vxrygKe/bs4f333+f9998nMzMTPz8/ZsyYwZw5c/RColVVVTidTtxuN1VVVVRXV1NSUsKOHTvYvn0727dvJzU1VR/IsdlsvPLKK8ydOxeov+Le5XIRGhrKsGHDSElJYeTIkVx++eU+X4v2ttqzrQZfGhqIPHr0qD5o6pl65tNPP+Wtt95i7dq1HDx4sF7f1ZjGJiRqamq46KKLWLt2LWlpaV6521tjQiIrK4uPP/6Yp556ioISRGc9AAEAAElEQVSCAq688koee+wx+vTpQ3l5Oe+88w5Llixh5cqV+srgQYMG6YVvR40ape8IUVWV4uJivvnmG2bMmFGvAKyiKNTU1LB7926ysrKYMGFCg/25p/LycoqKili6dCl79+5l/PjxTJs2zef743ksN7Wi/UwZ2PP8ClBZWanvvtixYwdms7nR2Dp8+DAjR44kKCiI9evXc/jwYb766iu++uorrfA3CQkJTJ48GX9/f9xut76CXfs3QK9evUhOTiY5OZlX1xegKArPXFu7qt7tdpOens7GjRvZuHEjmzdvZuvWrVRUVNCjRw/WrVtHbGwsNTU1FBQUEBwcTE5ODrGxsXz00UcsW7aM8847j7lz5+o7JAoKChgwYADh4eEoiiL91gmy2+188803fPzxx3zzzTc4nU569erFLbfcwg033IDVauW///0vTz31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9u3897//5fbbbycpKYnS0lKCg4MZPHgwqqpis9lwOBxMnDiRs88+m/nz53P77bdjNBob7LO0mK0rJCSEAQMG8u5baVx00UUsXbqUwMBA7rjjDux2O2+88YY+EVZaWspf//pXbrzxRq86Ep73+/jjj1NUVMTTTz9NSEgIDz74YIPtacqJ5FuXPrt5Dh48yHPPPUf//v2ZMGEC0HCMnMxl2uW+FBYWkpmZSZcuXbjmmmv0iQfP99put+srybds2cIvv/xCaGgoKSkplJaWUlFRwZEjR0hKStLrYcCvu9O0Fenav00mk+z2OglVVVWkp6fXe70Bvf958cUXAXj++efZsmUL7777LtHR0Q3GgclkajR+GpsEURTFR99Qe18Wi6XRmG3oM9NzcsBisXDo0CGgtlZNQ/d3+PBh7HY7AwYMwM/Pj4EDBxIREYHZbCYlJQWDweC12MBXLSohhBBCCCGEaC5ZItyKXn31Vf7zn/9w8803c+edd7ZpW8LDwykoKABqf4Dv3LmTdevW4XA42rRdom2VlZWxZMkSyssbL8+iDdxff/31XHDBBdx9990YjUZ2796tX0dVVWbOnMnf//73JleLnwhVVXnvvfcYNGgQy5YtY8aMGXz11VcMGTIEg8FAz549yc3NJTU11Su2nU4nx44dIz8/X1+Z6nK5yM3NxWKxEBwcTGFhIfv27SMrK6vV230mUVUVu91OeXk5e/bsYefOnaxatYrVq1dz4403+hxkV1WVO+64g9DQUB577DFsNhvBwcFeBXm1PORZWVlccMEF7Nixg40bN55wO8PCwnj//ffZtGkTF110Ea+99hpffvkljz/+OP3799fbdcstt/DCCy8wceJEtm7d6vO+FEXhpZde4sorr+Shhx7i9ddfP+F2ac9T+t2TV1ZWxuLFi8nJyeFPf/oT/fr1IzMzk7///e9tNonzpz/9CZfLRZ8+faioqPD5XnvGf0pKCueeey4pKSnYbDZsNhvbtm1j27ZtpKene93OM3YaiiOtRk5juyWF9+uUnp5OWlpavdfbk8Fg4KWXXmLhwoVs3LiRs88+m++///40trj1eE64N5ayaefOnQB0796dmpoanE4nbrebkSNHEhQUREBAQIt2FWrHa3OLzQshhBBCCCE6F5mQaCWffPIJDz74IJdddhn//ve/23yVa2hoKPn5+UDttvuVK1ey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ePAgRqORPn36aHGQLRYLe/bs4ddff+XHH3/EaDRyxx138J///EfzaC0sLMTT09MmvnhaWhrTpk1j69atxMXFERYWxrZt29i6dSsXLlzA19e33ueLqCs4OzuzfPlyxo8fzzPPPMObb76JTqfjxIkTvPfee7z++utkZWWxceNGunbtWiNlMJvNpKamXvGdqjHiMzOzWLt2LbfffjtQJC+JiYlkZGQQFRXF0KFD8fLyKlW+nZ2dadeunSanxSlv3gY1j4QQAjc3N7766iu8vLzYsmULI0aM4NZbby31WJ1Oh5ubG0KUDH+hbpNcmeLPauTIkSxZsgSz2VxmmCshBHPmzMHHx4fbbruNtLQ0GjRoAJSUF29vb9auXcuMGTM4feYMQUGB/PHHHyxbtgxvb2+CgoK455576NSpE+vWrcPT07NmblZSLlxdXenRo4cW+kzNtaBSVt2z3m49s+FKbSVAo0aN+OWXX5gyZQobNmxg3LhxLF68mMWLF9OmTRs6duxI06ZN6dq1K23btsXNzY0ffviBo+dc0OkUPv74Yx544AHtfHl5eXz33XfcfPPNDBgwoNRwN2o4KknVsM4LZK1TqiuPz5VQ32NNxtw3Go1s3bqVEydO2M3n0K5dO6AopOwtt9xC27Zt+fzzz/nf7lT0enO526VbbrmF0NBQJk6cyMCBA/nhhx9scjcV5/PPP+fDDz/kkUce4bHHHqvczUkkEolEIpFI6jR10iAhhBCKouQA0xVFWSGEOKYoSi5wBzBCCPGWoijDgXDgpBAivswT1gGsP3RzcnKIiIigW7duODs722y7++67+eCDD3j22WfZvHmz3QEUs9nMzJkzcXJy4uuvv0ZRFO0cN910E5s2bWLs2LGMGjWK7777rkRokMuXL7Nr1y527tzJnj17iI2NJSsry2YfBwcHGjduzKOPPsprr70mjRHXGKq8xMfHExtblA++WbNmVgaHKx+r0rp1azZu3MjXX3/N3Llzue+++7jrrruYMGECer0ei8XCsWPH2LZtG3v27CExMREXFxd69erFu+++q4XCUONdf/PNNzz66KPceOONfPrppyQnJxMSEkKDBg14//33mTx5Mm3btqVHjx7k5eXRtWtXuzH9JZXH2dmZH3/8kdtvv51nnnmGDz/8kOHDhzNq1CiysrL47bffKm2MUOUnJyeH/fv307NnT5tk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u+mb8pleTDMx2WjUaOxdsIIVAUFARIrUGcrM3O8PvDcDzNAEae/veeYZmNvee+95z1vOec9h//79XHbZZVx99dWYTCZ++uknNm3axMiRI4Far9/NmzdjNBrrJHtNSkpi6dKlDBkyhIqKimblBbPVth0/fpxJkyaRm5vLm2++yTXXXMOWLVv405/+RL9+/Rg9ejQvvfQS+/btY/DgwWzevJk333yTzZs3M3LkSD744AMsFgtlZWWsWbNG6Jo2QtHxhYWFLV4F1NaJnleuXMlf/vIXrr76atLS0rjzzjv59NNPiYyM5L777uPUqVN1VmEDjBo1Cp1O16KwTSdPnsTNzQ1fX191Bc7VV18N/PE8cnNzL3hVXXx8PMOGDWPAgAGdJtzbhVBWVsaIESMoLi7mxx9/vODzybLMr7/+yvz58+nXrx8333wz27dvZ8GCBfz+++9kZmYyY8YMnn76aQ4fOUxNTdMR0b744guuvPJKBg4cyMqVK/H392fChAn07t2bUaNGNSuHRP1+T33i4+MZM2YMQ4YM6VSh/AQCgUAgELQvHWqQqGeMeA2IASYq22VZPirL8l5ZljM6qIgdguKlZG2QsA7fce211+Lg4MC3337bovNu2LCBESNGoNPp2LRpk1ga28NR8kbIsqx6LkHtJKyvr28zDBIyu3btatXy+xMnTrBhw4YGv4eFhVFcXFwnv4VAYAtZlrntttvIP5tPWFgY06dPZ9asWVRUVJCQkMAPP/xAREQEL7zwAsHBwcydO5ft27fj6OhYxwhXXV3N9ddfz6lTp/jf//6nhpxQCA4OZsiQIQ3iKY8YMQInJyd0Oh2nT58mNTWVu+66i/j4eEaMGEFCQoIankX53rhxI15eXkRERBAUFATU5hqwNgK7u7sTERFBUlISW7Zs4ffff+80iX87E9XV1VRWVgJNGyROnz6tTt5aoxgkrPNI7N69m2HDhpGSksLx48d55513iIqK4quvvmL27NnMmjWL0NBQVq5cybBhw9SJYut3Leg6yLJMRUUFsiyj0+mIiYnB2dmZf//735w9e5aFCxfi6enJV199xeWXX07fvn258847ue222xgxYgQHDx7kjTfe4NChQ1x77bV1vIO3bt3KN998w5YtW9TfNBoNsixTU1ND//79iYqKshu2yZqqqqo6k4f79u1j8uTJVFVVsW7dOh544AE+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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "corner.corner(sampler.flatchain[2500:], \n", + " labels = [\"P1\",\"P2\",\"l1\",\"l2\",\"h1\",\"h2\",\"k1\",\"k2\",\"m1\",\"m2\"], \n", + " truths = [21,30,0,0,0.1,0,0,0,1e-3,1e-3]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That's a pretty good recovery of the correct parameters (but to be fair, we started pretty close to them). Let's draw a few random samples from the posterior and plot the corresponding RV curves so we can compare our model to our data." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1)\n", + "ax.set_xlabel(\"time [days]\")\n", + "ax.set_ylabel(\"radial velocity [m/s]\")\n", + "\n", + "times_plot = np.linspace(0,times[-1],1000)\n", + "RVs_plot = np.zeros(len(times_plot))\n", + "Nplot = 20\n", + "indx = np.random.choice(7500, Nplot, replace=False)\n", + "for i in range(Nplot):\n", + " s = setup_sim(sampler.flatchain[2500+indx[i]]) # skipping burn-in\n", + " for j, t in enumerate(times_plot):\n", + " s.integrate(t)\n", + " RVs_plot[j] = s.particles[0].vx\n", + " ax.plot(times_plot/(24*60*60), RVs_plot, color=\"black\", alpha=0.13)\n", + " \n", + "ax.errorbar(times/(24*60*60), RVs, yerr=20, fmt=\"o\"); \n", + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.9" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/RealtimeVisualizations.ipynb b/rebound/source/docs/ipython_examples/RealtimeVisualizations.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..329ae41fdbefb451e93b40486c70d09452cf0d4b --- /dev/null +++ b/rebound/source/docs/ipython_examples/RealtimeVisualizations.ipynb @@ -0,0 +1,295 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Real-time Visualization Widget\n", + "\n", + "\n", + "REBOUND comes with built-in real-time 3D visualizations. This feature can be used without python. This notebookbook describes how you can access real time visualizations directly from a Jupyter notebooks. Under the hood, the code that is running is the same as the one providing OpenGL visualizations. \n", + "\n", + "Using the real-time visualization widget makes setting up a simulation and debugging it very interactive and intuitive. You immediately see if the particles are roughly in the place where you want them, doing roughly what you expect them to do.\n", + "\n", + "For this widget to work, you will need a browser that supports WebAssembly and WebGL. All modern browsers should have those features enabled by default.\n", + "\n", + "Let us start this demo by setting up an empty simulation and calling the `widget()` function on the simulation object. This will create a new widget and attach it to the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.widget(size=(400,400))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next up, lets add some particles to the simulation. The widget updates automatically when a particle gets added or removed. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "sim.add(m=1) # add a star" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(10):\n", + " sim.add(m=1e-3,a=0.4+0.1*i,inc=0.03*i,omega=5.*i) # Jupiter mass planets on close orbits\n", + "sim.move_to_com() # Move to the center of mass frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Drag the widget with your mouse or touchpad to look at the simulation from different angles. Keep the shift key pressed while you drag to zoom in or out. Try pressing the \"w\" button. This will toggle orbits on and off.\n", + "\n", + "Next, we will try to integrate the orbits forward in time. Because the planets are very massive and on close to each other, the system will go unstable very quickly. By default, REBOUND is using the IAS15 integrator which can resolve close encounter. During each close encounter the instantaneous orbits of the planets show in the widget will change rapidly. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrate(500)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The widget will remain open until you delete the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "del sim" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are some important things to understand regarding how these widgets work. We'll go over those next.\n", + "\n", + "### REBOUND is a web server!\n", + "REBOUND includes its own web server. The widget connects to this web server to get the visualization code (a version of REBOUND compiled to WebAssembly) and the simulation data itself (in the form of Simulationarchive binary data). \n", + "By default, the port the web server uses is 1234. You can start this webserver manually (without the widget) by running" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.start_server()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can then connect to the REBOUND webserver by opening a new browser window at http://localhost:1234 or http://127.0.0.1:1234. If you want to stop the server, but not delete the simulation, you can run:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "sim.stop_server()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Multiple simulations\n", + "\n", + "You can visualize multiple simulations at the same time. Each simulation needs to use have its port. For example:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim1 = rebound.Simulation()\n", + "sim1.start_server(port=1234)\n", + "sim2 = rebound.Simulation()\n", + "sim2.widget(port=1235, size=(200,200))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Simulation 1 is shown in the widget above. You can view simulation 2 by going to http://localhost:1235 or by opening another widget:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim2.widget(size=(200,200))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "del sim1, sim2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Visualizing simulations on a remote server\n", + "\n", + "Sometimes you might run a simulation on a remote server or computing cluster. When connecting to the remote server using ssh, you can forward the visualization ports the same way you would forward the port required for jupyter notebooks (8888 by default). REBOUND uses port 1234 by default, so you might want to enable port forwarding using \n", + "\n", + "```bash\n", + "ssh username@remotecomputer -L 1234:localhost:1234\n", + "```\n", + "\n", + "You can then connect to the visualization as usual, either using the widget you get with `sim.widget()` or by pointing your browser to http://localhost:1234." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Security and resource considerations\n", + "\n", + "The REBOUND web server provides a quick and easy way to visualize simulations. It is not intended to be exposed to the public internet because a malicious person might be able to gain access to your computer. \n", + "\n", + "The visualization uses a considerable amount of CPU resources. You might want to disable it if you no longer use it. \n", + "\n", + "Depending on your simulation (e.g. for simulations with a large number of particles), the communication between the REBOUND web server and your browser might use a lot of bandwidth. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/docs/ipython_examples/RemovingParticlesFromSimulation.ipynb b/rebound/source/docs/ipython_examples/RemovingParticlesFromSimulation.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..5f1dcf70e546520f1140a4d46c7a99e57e8697f8 --- /dev/null +++ b/rebound/source/docs/ipython_examples/RemovingParticlesFromSimulation.ipynb @@ -0,0 +1,296 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Removing particles from the simulation\n", + "\n", + "This tutorial shows the different ways to remove particles from a REBOUND simulation. Let us start by setting up a simple simulation with 10 bodies, and assign them unique hashes, so we can keep track of them (see [UniquelyIdentifyingParticlesWithHashes.ipynb](../UniquelyIdentifyingParticlesWithHashes))." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Particle hashes:[c_uint(0), c_uint(1), c_uint(2), c_uint(3), c_uint(4), c_uint(5), c_uint(6), c_uint(7), c_uint(8), c_uint(9)]\n" + ] + } + ], + "source": [ + "import rebound\n", + "import numpy as np\n", + "\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1., hash=0)\n", + "for i in range(1,10):\n", + " sim.add(a=i, hash=i)\n", + "sim.move_to_com()\n", + "\n", + "print(\"Particle hashes:{0}\".format([sim.particles[i].hash for i in range(sim.N)]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us add one more particle, this time with a custom name:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Particle hashes:[c_uint(0), c_uint(1), c_uint(2), c_uint(3), c_uint(4), c_uint(5), c_uint(6), c_uint(7), c_uint(8), c_uint(9), c_uint(4066125545)]\n" + ] + } + ], + "source": [ + "sim.add(a=10, hash=\"Saturn\")\n", + "print(\"Particle hashes:{0}\".format([sim.particles[i].hash for i in range(sim.N)]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let us run perform a short integration to isolate the particles that interest us for a longer simulation:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUQAAAE4CAYAAAAjCop8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsXXlcVFUbfi6gIgq44w6igru5byhk+/JlWVlpppVWX6XV\nV5m2ifW1mGWmla1qZeZnZmWLWtoMqAiioOIGigooiuz7Msv5/jj3zgKonPfeGQac5/eb3zDDvOec\nuXPvc895z/s+r8QYgxtuuOGGG4BHfQ/ADTfccMNV4CZEN9xwww0ZbkJ0ww033JDhJkQ33HDDDRlu\nQnTDDTfckOEmRDfccMMNGZoQoiRJX0uSlCVJ0iGb91pLkvSXJEnJkiRtkyTJX4u+3HDDDTccBa1m\niKsB3FTtvfkAtjPGQgH8A2CBRn254YYbbjgEklaB2ZIkBQL4jTE2SH59HEA4YyxLkqSOAPSMsT6a\ndOaGG2644QA40ofYgTGWBQCMsQsAOjiwLzfccMMN1XDmpoo7R9ANN9xwaXg5sO0sSZICbJbMF2v7\nkCRJbqJ0ww03HALGmCTyeS0JUZIfCjYDmAlgMYAZAH69lKFbYKImIiMjERkZWd/DuCLKTSb8lJ2N\nL8+fR3Rh4SU/d03Llgjz98c4Pz+M8/dHN29vUn+U42JiDMdKSxFdWIioggJEFRQgy2Co9bMSgGkB\nAXi8UyeM8/eHJAldT/WGhnK+OBOU304TQpQkaR2ACABtJUlKB7AQwLsAfpQk6REAaQCmaNGXG/UH\nxhj+KSjA22lp+KegoMb/OzZtinvbt8dd7dohzN8fTTxcI8zVU5IwoGVLDGjZEk926VLj/3kGAzbn\n5GBjdjb+yMvD2qwsrM3KsvvMvzt3xgvduiG4eXNnDduNeoAmhMgYm3qJf12vRftu1A8YY/gpOxuR\nZ87gSFmZ3f+CvL3xeKdOmNmxIzo2a1ZPI9QGbZo0wcxOnTCzUyfLe4wxxBYVYWVmJr7LysLKzEys\nzMy0/P/BgAC8GhiIUB+f+hiyGw6CZmE35AFIEqvvMbgi9Ho9IiIinN5vWkUF5p86hfUX7V2+E/z9\n8UpgIG5o3bpel5H1dVwAoMxkwueZmVh05gwKTSa7/73fsyfmdOmCpvU0K67P4+KqkCRJ2IfoJkQ3\n8E9+PqYdO4YLVVWW94K9vfFRr164rW3bBuNHczbKTSZ8ePYsXjl92u79f7Vti5UhIejSwGfODR1u\nQnSjzvgtJwcPHD2KUrPZ8t6cLl2wKCgIrZs0qceRNVzEFRVh7okT2FtcbHnv1jZt8EVoqJsc6wFu\nQnTjskgqKcHtSUlIr6y0vLcwMBALAgPRzEU2QBoL0ioq8Ojx49hhs/k0rUMHfBYSgpZejox2c0OB\nmxDdqIEioxGzk5OxITvb8t4r3btjYVCQy+wCN3akVVRg+rFj2GkTlrQ6NBQzOnZ0uyMcCDchumHB\nP/n5uO7gQcvr61q1wtq+fRv8jnBDx995ebjxkEUUCkNatsTWQYPQoWnTehxV44SbEK9yGMxmPHvy\nJD61CQ/ZMnAgbm7bth5H5UZtMJrNePn0aSzJyLC8t3XQINzUpk09jqpxwU2IVynyDAZEHDiApNJS\nAMB4f3/8PGAA2ro3RxoEogoKEHHggOX1y9274789eriX0yrhJsSrDKnl5RgQH48Keaf43eBgzOvW\nzX0hNVDkGQy4PSkJe4qKAADTAwKwKjQUXm5fLwluQrxKkFRSgkH79lle/9ivH+7p0MDU1bKzgUOH\ngKNHgWPH+OPoUeBirRogdYO3N9CtG3/06QOMHMkfoaFAAyIVo9mMmceP43v5WES0aoU/Bw5Ec0/P\neh5Zw4KbEBs5ksvK0GfvXsvrPUOGYLS/C1dmOHYMWLcO+PNPICGhbjZ+fkCHDkCbNvYPX1/AaAQq\nK4GqKuujsBA4exbIyABycurWh48PcMcd/HHLLUCrVvTv6EAwxvDK6dN4Jz0dAHBzmzbYPGCAOzqg\njnATYiNFWkUFgmJjLa9jhgzBGFciQqMR+Okn4LPPAL2+9s94ewMTJwLXXccfAwc6b9aWlwfs3w/E\nxgJ//QXs2lX755o3Bx5/HHjsMaBvX+eMrY5YePo03khLA8CX0mv69IGH2zVyWbgJsZGh1GTCoPh4\nnKqoAADsGDwYE1u3rudRgc/Gli8HPvgAqP7btWoFTJ3KH2PGuP5StaIC2L4dWLUK+Pnnmv/v3RuI\njATuuw+o5yUrYwxPnThhEZlYFBSE14OC6nVMrgw3ITYSMMYwKzkZqy5cAACs79cP99Wnj7C8nBPg\n/Pk1//foo8BzzwH9+zt/XI6CycRnksuXA1u32v+vd2/g3XeBu+4C6mmGZmIMkw8fxubcXADA9sGD\ncZ0r3ChdDG5CbARYe+ECph8/DgB4pksXLOvdu34GkpQEPPIIYLN5AwB45RVg3jzu67uaEBcHLFoE\nbNli//78+cCrrwItWjh9SHkGA7ru2YNyOcrg3Jgx6OwOvLfATYgNGBcqK9Fpzx4AwIAWLRA/dCi8\nnb1E27sXmD4dSEmxvnfrrcDixcCAAc4diyuDMWDtWu5rlN0ZAIApU4CVK/kmkBOxr6gII+RNqzva\ntsUvAwa4Q6/gJsQGCcYYZhw/ju9kheYjI0agnzNnGydP8t3WY8es7z32GCdBF919dTkcOsQ3Y2w2\nvvDcc8Dbb/PNJCfhw4wM/Cc1FYB7GQ24CbHBIaawEOMSEwEAbwQF4TVnOcgrK4EXXgA+/tj63jPP\nAG+9VS9Lv0aFxETg7rsBW43EH38E7rnHKd2XmUzotmcP8oxGtPHyQsaYMfC5SuMX3YTYQMAYw/jE\nROwuKkJTSULuuHHOkYSKiQHGjbO+HjIE2LQJcO9UOgZbt/I4RwW33srjMp0QMrUjPx/Xy+Ie3/Xp\ngwc7dnR4n64GNyE2AMQXFWGk7O/5vm9fTA0IcGyHjPHl74IF1vc2buSzGDecg7IyYPZsToYKdu4E\nwsIc2i1jDBEHDiC6sBB+np64OG7cVaV76SZEFwZjDLcmJWFrXh4kACXjxzt2KVNaCtx+uzVQOjQU\n+OcfoHNnx/XpxpWxbRtw883W1998Azz0kEO73FVQgPGyeMQfAwfi1qtE/chNiC6Kc5WV6CrvIH8d\nGopHbKq7aY7CQr4sPnKEv54zB/jww3oPKnajGtLTgaFDATmWEAsWcB+ug3aHTYyh3969SCkvxwhf\nX8QNHdrod6LdhOiC+CIzE4/LYSzZY8einaOEQHNygBEjgDNn+OuPPgLmznVMX25oh+Ji4Lbb+BIa\nAF5+mROjg/BzdjYmyzfLs2PGNOpaL25CdCGYGUOP2FikV1bi7nbtsNFRcXzFxcDgwdZdza+/5gHV\nLg6j2YiE8wnYlb4LB7MO4njOcRzPOY6iyiJV7XZq2QkDAwZiUIdBGBQwCCO7jERI2xDXnw0ZDNyv\n+9tv/PV77wEvvuiQrvINBrTZvRsA8GVICGY1UjeKmxBdBLZLZIflH5tMwL33WvNvv/+e5w+7EMzM\njL3n9uKnoz9h0/FNOJV/6oo2HVp0QM/WPdGxZUe0ad7G8mju1RwMDCazCSZmgsFkQH5FPrJKs3C+\n+DwulFxAWmEaSqpKrtjHmK5j8MCABzCl/xQEtHTwppYoKiqA668HZMLCqlXAww87pKu7Dx/Gppwc\n9PfxQdKIEa5/0xCEmxBdAL/m5ODOw4cBAEVhYfB1RDjNokVccAAAXn+dv65nMMYQnRaNlftW4n9H\n/lfrZ/q264vbQ27HtUHXYmy3sfD3dnz4CWMMpwtOY8epHdhxege2pW5DQUVBjc+18m6FZ0c9iyeG\nP+EaJFlcDIwaZQ2YT0pySLbQtrw83CzXeCkIC4N/I6oI6CbEesajx49j1YULGO3nhz1Dh2rfwc6d\nwIQJ/O9Jk7jkVj1tljDG8MeJP7AoahH2ZdrnOzfxaIJ/D/83Zg+bjQEdXDflr9JYib9S/8KqA6vw\ny/Ffavx/5jUzsTB8IYJaBTl/cArS0qxxop068bTKli017eJiVRUCYmIAAHuHDsWIRpKn7ibEeoKZ\nMXhFRYEBWN6rF+Z07aptB6WlXAU6Px9o0oSrTdeDHuKFkguYv30+vjn4jd37Y7uNxcLwhbgh+IYG\nv+wqqSrBqsRViNRHIr8i3+5/0wZOw+pJq9HEsx5q1WzezG+CAI8cWL5c0+bNjKH1rl0oMpmwJDgY\nL3Tvrmn79QE3IdYDioxG+MuCoweGD8dgje/eWLgQeOMN/vdffwE33KBt+1fAkYtHMHXTVBzKspbO\nDGoVhBW3rMBtvW9r8AR4JeSV5+GeDfdAd0Zn9353/+5IeCwBbX2cHNM3Z4415fLIEaBfP02bfzol\nBZ9kZuKWNm3w56BBmrbtbLgJ0ck4UVaGEFnSP2fcOG2r3NkulaZP5wG8TiKf1LxUPPjzg4g9axUr\nmDpwKpbcsASdfRvnjmRdsTJ+JZ7880m790Z1GQX9TD28vZwk5JCdzcssAPwGuW2bpufGhosXcd/R\no2jh4YHi8eMb7E3PTYhOxF95ebhJdkYbJkzQtjLa888DS5fyvzMzue/IwTCYDFiwYwE+2POB5b37\nB9yPj2/52PmzoAaCDUc24L6N99m9t+ymZXhm9DPOGcAXX3CVHYBnJIWHa9b0/uJiDN+/HwBQPn68\n86XoNICbEJ2Er8+fx6zkZAxq0QIHR4zQruHMTKBLF/73vHk8B9nB2Je5DyO/HAkG/hsM6DAAvz3w\nW/1uJDRA/Df6v3hN95rdezkv5jj+ZlJezm+YhYU8JfDPPzWbLZ6vrERnOXzswtixCHBUUoGD4CZE\nJ+DttDS8cvo0pgcE4FstCxEtXmyV6E9P55soDsSn8Z/iqT+fsrxePWk1Zl4z06F9Xg3ILctFuyXt\n7N7Tz9AjPEi72VutWLPGGq94+rRmCkblJhN85CyaU6NGoUfz5pq06wy4CdHBUBzO87t3xzvBwdo0\najRyheXiYi7M+vnn2rRbC0xmE2b9NgtrDqwBwLM6Yh6Ncc8GHYQ3o97E6/rXLa/fve5dvBT2kuM6\nzM0F2slk/OabvLSBBjAzBs+oKADA4REj0L+BaGa6CdGBmHz4MH7OycGyXr3wjFZhNYcP83KcALBn\nDzB6tDbtVoPBZMCUjVMssXb39b8P39z5DZp5Nd48VldC1JkoRHwTYXm9IGwB3r7ubcd1+NRTwKef\n8oqHlZWABsHWjDF4yKQYO3QoRjWAWEU3IToItx46hC15edrqF9pmm5SXO0Rq3mg2YtL6SfjzxJ8A\ngDkj5+Cjmz9qsLuGDR2n808jeLl1ZTF/3Hy8c/07juksIQEYNoz/nZoKaLSiCdi9GxcNBvwzeDCu\ndfESBW5CdAAmJSVhc24ufuzXD/doUQqUMe7fSU/nyfvvvae+zRpdMDy37Tl8FPcRAODlsJfx34n/\ndROhiyCtIA1BHwVZXn9757eYPni69h2VlVlLQqxZA8yYoUmzfffuxfGyMuwaMgTj6iFBoK6gECIY\nY/X64ENwTdydlMSg07EfLlzQpsHCQsY4JTIWHa1Nm9Xw+b7PGSLBEAk2fdN0ZjKbHNKPFjh+nLF5\n8xgLCrIeFq0eEycy9sUX/JC7KpJzki2/FSLBEjITHNPRpEn8oFx/vWZNdo+JYdDp2F4XPsAytwjx\nkXuGeAlMPXoUP1y8iLV9+2KaFsvkxEQuCAoAWVnWwFqNcCz7GPp9yrMWhnYait2P7HZeoPBlwBjP\nOnv+eb5yqyv8/YEePYDAQH6o2rYFmjYFqqq4hyE/n0tAnjoFyGWs64y77+YF8UJCxOwchT9S/sDt\nP9xueV3xSoX2/t0NG4D75JhJo1GTHPi2u3Yhz2hE4rBhuMbXV3V7WsM9Q9QIz584waDTsdWZmdo0\n+OWX/A7t6cmY0ahNmzIqDBWs3yf9LLOMM/lnNG1fFGfOMDZu3OVnb7fdxti2bYyZnDB5LSxk7PPP\nGevd+/JjevllxiorHT+ey+H5bc9bfsdHfnlE+w6OHbN+4bw8TZpsotcz6HTseGmpJu1pCRBmiG5C\nrIYVGRkMOh1bnJamTYPPP88P8/33a9OeDdYkrrFcQD8k/aB5+3VBSQknuNpIxs+PsfXrGTOb62Vo\nl0VJifWnqe3x+ef1My6jyWi3jE7KStK2g4IC65c8fFh1c2azmUGnY9Dp2MX6vqNUg5sQVeLnixcZ\ndDr2+PHj2jR4yy38EL/zjjbtySisKLRcMONXjXe6n/DgwdpJZNgwPkNsqPjjj0vPaCsqnDuW/Zn7\nLb9x7+W9tW3caLR+uc2bVTdnsiHFMo1XQGrgJkQViC0sZNDp2LWJido02KkTP7zr12vTnoyP4z62\nXCj7M/dr2vblcOpU7WShwfXkkjAYGHviiZrf9447+P+chdFfjbb83gfOH9C28bFj+Zdas0Z1U2VG\no4UUTS6yJHATIhGZFRUMOh1rvXOn+sZMJuvVs3u3+vZkVBorWdM3mzJEgk3+32RmdsJJZzBYrxnb\nx5EjDu/a5fDhhzWPw7ffOqfvE7kn7FYEmmLKFP5lPvhAdVMXKistpOgKcBMiAVUmk+VHVE0ytmR4\n4oQ2A2SM6U/rLRdE3Nk4zdq9FGJja17827c7vNsGAbOZsaeesj82fn7cJ+lo9P+kv+U8KKoo0q7h\nuXP5F1mwQHVTR0tKGHQ6dv0BjWezBLgJkQCFDEvV+j5s/TJabcgwxh7Y+ABDJFj799ozg8mxa7XX\nXrO/0KdMcc0NEVfBuXM1bxyHDjm2z+2p2y2kuCZxjXYN//e//AvMnq26qR+zshh0OvZ+eroGA6PD\nTYiCGLlvH4NOx06WlalryJYMMzI0GVu5odxy4n+691NN2rwU7rjD/qLW6x3aXaPEww/bH8NffnFc\nXwaTwXJu9Pyop3YNr1zJBz93ruqm5qSkMOh0bGd+vgYDo8FNiAJ458wZBp2O/Z6To64hWzI8d06T\nsSWeT7Sc8Ck5KZq0WR1mc814Qa3CLq9mfPut/TH99VfH9TXph0mW86TKWKVNo0uX8oG/8orqprrK\n2SwX6ikcx02IdURiURGDTseeSVFJNmaz5mzy6d5PLSe5o5bIDz1kf9EWFzukm6saf/9tf4y12K+r\nDb8n/245X45lH9Om0UWL+KDffVdVM7Yxis7YBKwONyHWAUp4gKTFTpivLz+Eqanq22KM3b/xfoZI\nsId/eViT9qrj00/tL1IXTkNtNPj9d/tjfv689n3kleVZSPG7g99p0+gLL/ABr1ihbmxVVQw6HesT\n5/jNwOpwE2IdoNyxDGrzxoYN44dv3z7VYzKbzazl2y0ZIsFWJaxS3V51pKTYX5Qa7vm4UUd88on1\n+Ddtqv1mldls1j7tb9YsPuDff1fVzLbcXAadji3XyL9eV7gJ8Qp48OhRBp2OpajNu7z3Xn7otm5V\nPaYKQ4XlRI4/F6+6PVvYrugBxv78U9PmVaOgoIC9+uqrDIDmj/79+7Nt27bV91esgbAw6++hckVa\nK9osbsMQCdbuvXbaNDhiBB+syjS/GfK1l+zEnGcKIV41aje7CwsRlpiIFb164Wk1itdK7ZNvvgEe\nekjVmAoqCtB6MRfZPP/8eXRs2VFVe7ZYtQp49FH+97/+xRVn6hMbN27EvffeK2QTFBSE3r17o2fP\nnggMDETTpk1RXl6OiooKZGdnIzExEfHx8RA5f9q3b489e/agZ8+eol9BM5SUALbiMLm5vIqEVnj0\n10ex6sAqAABbqMG1pehoXrwItG9Pb0avBwCYwsPh4QRtTrfazSVQKQdf+6vVIPznH363fO451WPK\nKMywzAyLK7Xb1aiqsp8V1oef0Gw2s7lz5152Bjdu3Dh2XKuc8cuMY9OmTczb2/uyY4mKinLoOC6F\n9eutv5MG4X92WBqz1HJ+qYZtwoGKHeNS2X/fz0n+RLiXzLWjRVQUg07HqtT4DTMy+OEKCVE9npSc\nFO3DJRhja9daz9vFizVrtk44efLkJQln9uzZrNKFlFBSUlKYj49PrWMNCwtjJmfoksmo7tbQ8ga2\nPmm95TxTvctbUmIdpAr8npPDoNOxTRcvqhtPHeAmxFqgyHntKSigN1JZaT0ZVJ5YtmSoZSiC7UWl\nNs68rkhNTa2VVB566KF6CbOg4syZM7V+j549ezqNHLdssf5+Kjd27aA7rdPufFMUPlQqbw+Lj2fQ\n6Vixg1Uy3IRYDTnylv99anXfNGIaR5DhmTPW4WmQYHBFmEwm5ufnV4M8/nS1HRsizGYzu/nmm2t8\nv7feesvhfdvG+Gt5WcRmxGp33inrfBWCkbbxiY6EmxCrQZODfv/9/DCdPKmqmdS8VM3JcPFi68Wj\noZZErdDr9TVIYvXq1Y7ttJ5hMplYUFBQje9d4WBxxGeftf6uWpXz2ZW2S7vzb+pUpnbn+bAsAvGR\nA0Nx3IRog+XyUvmIGhkSRTH0s89UjeViyUXNydDHx3rROHJ1Om/ePDsy8PX1daqPzVVw7NixGsR4\nwoF3IdvYUa0kNW2Xz6qhwarpLrmIm6OWzm5ClFFoMDDodOzOJBXy67m5/PAMGqRqLCWVJZaTUAtl\na4PBei5qvTNpiylTpthd/Cu0dGw1YJjNZhYQEOCUXWrbzd077tCmzc3HN2tDirbhDEQoS2dNssZq\ngZsQlQOhRf6kBtMvW1WSckM5fSwybOWmtmxR3VytmDp1qt3FnpDgoNKYjQAPPPCA3bE65CDtr5AQ\n1dxjh2V7ljFEgnVY0kFdQ0otiddeIzehKNX/LytL3VhqgUsSIoAzAA4CSASwt5b/a3oQlLoo8Wri\nF5SqSSoTTxUyzCtTX+EsKsp6UTgiH3bVqlV2F/fBgwe176SRYtasWXbHrkBNRMMl8M471t9fC4/F\no78+alFfV4X//IcP6hhdWGKIvOusOp22GlyVEE8BaH2Z/2t2AJQpeNCePfRGYmL4Yfn6a1VjGfHF\nCIZIsJO56jZjGGNs9WrrxaB1DZ+0tDS7i/nvv//WtoOrCBMnTrQ7llrjr7+s54EWGXChK0IZIsG+\n2PeFuoZUMrVRvm5H79e2RpCrEuJpAG0v83/NDsC9hw8z6HSsnMoaStyDj4+qcby8/WWGSLA/Uv5Q\n1Q5jjC1caD3ftIbtxfvqq69q38FVCLPZ7FDf64kT1vNBC8U5ZRVz9OJReiPFxXxAoaHkJr7KzGTQ\n6dgpDYNoXZUQTwFIABAPYHYt/9fky5+XC0W9paYOZq9e/JCoCKtQ9OkidZH0cch49FHHkOHGjRsd\nOpNxg7H09HS7Y1xert6HrCAvz3peqFUuslXJUeXnVnTO/vqL3ITWsYkUQnS4uIMkSZ0YY+clSWoP\n4G8ATzPGdtn8n2kxBiVxnEVE0Br4+Wdg8mRgyxbg5ptJTWSVZKHjBx0xrNMw7HtsH20cMh58EPj+\ne55Lf/GiqqbsINkk1Z84cQK9evXSrnECyspOIinpVpSXn9C03c6d/41evZbBw6Oppu2KYtq0aVi3\nbh0AYP78+XjnnXc0abe8HPDx4X+npgLBwfS2iiqL4P+uPwCoE4Po2BHIygKMRsDTU9g8pawMoXv3\n4rs+ffBgR/VCJxRxB6eq3UiStBBAMWNsqc17bOHChZbPREREIEKQ1KILChB+4ADihw7FcD8/8YEZ\njUCTJsDAgcChQ+L24DNtjzc8AADm1812xCOKhx8G1qwBAgOBM2fIzdghJiYG48aNAwB07doVGRkZ\n2jQsgJKSJOzbN0jIplWrifD1HY7mzYPh6ekPwISqqosoKzuGwsLdKCs7Wue2WrYcgqFDY51OkpWV\nlfD29ra8NplM8PDwUN1uVRXQrBn/+9QpoEcPelu70ndh/OrxaO3dGnkv5akb0JAhQEICqYnB8fE4\nVFoKc3i48DWk1+uhlydGALBo0SLXIkRJknwAeDDGSiRJagHgLwCLGGN/2XxG9QxR9ezwmmuAgwcB\ngwHw8iI10Wt5L6TmpyJvXh5aN29NGweA//wH+PBDfrM9f57cjB369u2L48ePA3DurNBoLMauXZe+\nQXl7B2PIkGg0a9bFIf1nZ/+CI0fuuuT/O3WajdDQLxzSd22YPHkyfv75ZwBAdHQ0xo8fr7pNW1I8\nf56fN1RM2zQN65LW4bPbPsPjwx+nNfLjj8CUKcDOnUBYmLB5pdkM7+hoPNW5Mz4OCaGNQYbLzRAl\nSeoB4GdwP4oXgO8ZY+9W+4wqQvz6/HnMSk7GuTFj0Fk5M0SQmAgMHQqsXw/cdx9pDCviVmDu1rnY\nPn07rgu+jtQGACxZAsybB3h4ACYTuRkLzGYzPG2WLs5YDVRUnEVsbLda/zd06F74+Y1w+Bguh9TU\necjIWFLj/ebNe2PkyGRVM/u64Ny5c+gq63GOHTsWu3fvVt1mZSWgTECLi4GWLeltSYv49896IQsd\nWnSgNdKiBVBWBpjNVi1FATxy/DhWX7iAqgkT0ETFTNrlCLFOA1BBiIwxeERFYUCLFkgaQbzQlB+M\nOIbM4kx0WdoF0wZOw9rJa2ljAPD771zIVcVQ7JCcnIw+ffoAAN588028+uqr6hu9BBhjiIqqeeJ2\n6jQLoaFfOqxftTAaS7Brl2+N94OD30P37i86tG9b4tXiGszPt4rMmkz8pkqBmZnh+Qa/iZL9iWVl\nnBRnzOC+H0Eo1/V1rVph+zXX0MaAq1Agdt7Jkww6HSujhtnMnct3xlSUItUiDerYMW13k9966y3L\n7uZJlaIUl0NhYTzT6WD3OHbsUYf150gYjeU1votOB2bWIN3yUpgxY4bldyrWoPShos6l9jzad24f\nQyRYv0/60Rt5+WU+kNxckvm7aWkMOh0rUJHnDFcMu7niAIi/nhKEPYmaLqXETj3zDM2eMXb3/+5m\niAS7UEyXJCkqsp7EWog0DB8+3HKROUqTMCNjWQ3iMJkcqwDjTOTm/l3j+1VWZjukr61bt1p+r/h4\n9TV1bDOa1GDMV2MYIsFi0mPojQCM8RUgzVynYz1UJFlcVYT4gjw7JKtgBwaqOmv2Z+5niAT7ZO8n\n5DYYs568akR5rG05NrbwzJl37Eji0CGNFAdcFCZTZS3EqL3Sc15enuV3+/7771W3t2QJP6cmTlTX\njmqFpp3Bufe2AAAgAElEQVQ7+UD++Ydk/rUcrJ1fRVOVpxBig/QhMsZ9DP9q2xabBw4U7/TkSaB3\nb74jds89wuaMWUNs1MRtKW6kI0eAfv3Izcht8cZ69OiBU6dOqWusGnJztyAp6VbL66CgNxEU5Dif\npCtCr7d3RU2YYICHBy0ioTbYboC9+OKLeO+991S1N2IEsG8fd+HNmEFrQ4mrBVSc5z4+PGiSyDOS\nXo/+Pj44PHKkuC3Bh6g+GKoeMF++4Df2709roHdv/kwgQwC4/6f7AQAFLxXQ+gePTAB4iI1WZPjQ\nQw9pSoZGYzH0eslChl27/gcREeyqI0MAiIhgCA83W15HRzepQZJq4OHhoayYsGTJEjyksqJjfDx/\nnjmTHssa0DIA9/XnkRfx5+JpjWRm8uelSy//uUtgea9eOFJWhhKjkda/KESnlFo/QFjeQadjt1DV\nWJQUI6Lar1IG4IOYD2j9M8b+/psPoUsXchMWQF5qLViwQH1jNrBdJu7c2UrTths6jMZSu+OTlfWj\npu0rv+k999yjqh3bAlaqlPDUbhyOHatqENDp2Mh9+8TtrgYfoqKEXUH1HQKM+fnRbJn6k6OiwnqS\nqoVy4SxdulR9YzKKivZX2yxxbCGghozs7F+r7UhrWTSM/7aTJ6uT5zp9Wv35lpyTzBAJNu7rcbQG\nlJOeuIH59pkzDDodqxS85imE2OCWzHNPnkSQtzeaUQKt1q/nzydoebMr4lYAANKfTSfZA9YA2rIy\nchMArMvkRYsW4bnnnlPXmAy9XsL+/cMAAKGhqxARwTT1kzU2tGt3ByIirL6xqCgPXLz4P03aZvLy\nedOmTXj55ZfJ7QQFAW+8wf9+6y1aGyFtQ9C2eVvsztiNggqCm6hZM2DaNOCjj0gZB/O7dwcAPJac\nLN63KEQZVOsHBG5durw8Bp2OnaOq0QCMdaCpBCvq19d9cx2tb8bY9Ol8CBs2kJtgjFlnD3PmzFHX\nkAyDochupuOGOIqLDznkGCq/9ZdffqmyHf6gFq2yVcUhQamHMGkSyVypvyICNPZdZlU5y+vW8bvU\nxYtcQkYQo78ajbhzcTC+ZoSnh7iSx6lTQM+ePFXaYBA2t8DHxwfl5eWYOHEiduzYQW9IxtmzH+Hk\nyWcBAIGBr6JHjzdVtymKkqQS7BukTh3IFlJTCeOLxsOjmfMXQLYbLePHl8PT0/syn64blNVAXFwc\nRhJ2WwFOh8qiinrJL961GPN3zKenqD7/PN9cIajhlJtM8Nm5E1+EhGB25851smnUqXvnKivRdc8e\n7BkyBKP9/SkdAZ06WXe9BKCk531x+xeYPWy2eN9QnSEIwF5KSovfzfbiDQsrhJcXQSmIgKQ7k5D7\na26dPus3xg/+Yf7wD/OH3xg/GAuNKNhRgJzfcpD3R91VWQZsHoB2/2pHHbIQTp16FenpfH06aNBW\ntGlzk6r2GGMWdZzCwkL4URSdAOzaBYwfz1NEN2+mjUXJdSaF4SisPGsW8KV4Smf73buRYzDUeULU\nqAlxUHw8kkpLabNDRYGDODtUdRIAuO464J9/gAMHgMGDSU1g69atuOWWW/g4NCZDWz+YI2DIN2B3\nm0uLGAxLHAbfa2rmFKtBytMpyPzk0je/CBahaX/VUVl5Dnv2cBGH9u3vQf/+P6pqr6CgAK1bcxUl\ns5kuL9e6NVBQAJw9C3QhiAwduHAAQz4fgtcnvI5F1y4Sb+C++4ANG0jCD6fLyxEcF4cDw4djcB0U\nLBotITLGA7Ff6tYN7/bsSemEO3YrKoRNk7KSMOizQdDN0CEiKELYPjOTn3gdOnDtTAqKiorgL8+K\n1f5ejJkRFcWXK82b98KoUdoKs9pCL+lrfT+sKAxevs7drMlan4VjDxyr8X6Pd3ogcH6gw/rV8sYT\nGxuLMWPGAFB3HqhdraiaIBgMQNOmwMKFQGSkeN96PVp7eSGvDtJijTYwe8W5cwCAtyiywElJ/PnA\nAVLfgz7jgqYUMgSsd2EqGQKwkGFRURG9EfBAa4UMg4MXO4QMKzMroZf09mToyWdkysPZZAgAAfcH\nWPofnTHa8v7pBadrjldD2JKg2kDu0aNH44knngAA9FMRza/T8WdqcELmf/jMe+pPU8WNmzQBxo0D\nFhFmlwCW9eqFfKMRJgdN5BrEDFHS69HGywu5BMFJNbfD6LRohK8Jx9Enj6Jv+77C9m++Cbz+Opf2\nuu02YXMAVof6tm3bcOONN9IaAVBVlYWYGJ6GNXjwP2jd+lpyW7Uhb1seDt1srzY+Ln8cmrRqomk/\nWiPjwwyk/ifV7r0Jhgnw8NJ2rqDlTFE5J3766SdMnjyZ2AZ/rqriHCVsL88SSerwJSWAry/f6Hzg\nASFTZbX4WmAg3riCRHijXDKfrahAt9hYJA0fjgGiypeKSNzPPwN33ik+NhVLAy129b766ivMnj0b\nvXr1wgli7CQAVFZmYs8ePlUdOfI4fHxCyW1VR/mpcsT1jLN7z9H+OUeg7EQZ9obstXtP6++xZ08Q\nKivTeNsakaLRaLQTAa4rbJW2KedncWUx/N71w/XB1+Pv6X+LN+DhoUQCCZv2jovDyfLyK+4nNMol\n8/1Hec0MYTIEgFtlQQICGSq5m4f/fVi8XwBt2/Jn6iq3rKwMs2fzHW01ZGgw5FrIcPToNM3IkJkZ\n9JLeSoY2y+KGCJ/ePohgERhfbpX110t66D30mvUxZswZtGjBd9XULp8vypXHvIglL5o2BZR06WM1\nXatXhG8zvgm2/dR2Uv/YK998CLV9tg7ibqzU8nJa35eByxPi7qIiPNCBKGUeGws88wzJdORXPN6r\nfwdxAYn8fP4YOJCvDCho0aIFAMCgImjRbK7E7t081GTUqFPw9u5ObssWe/vuRZRnlOV1BItAhDFC\nk7brG57enohgERgSM4S/wTgxFsWr898qGDHiALy9uS9cDSm2b98eTz31FADgHqJIyTff8GeqOzJ3\nHg+deuy3x8SNhw/nz9dfL2zas3lzAMADR+teYKyucGlC3CtPrz5V1GlEoPzaS2rWz7gSknN4ilD8\nbJrChyLlTizgh5deegkAsG7dOvIMAACio3lQ8LBh+9G8uYqSbDJMpSboJT3KjvO8w3H54xrsjPBK\n8B/jjwgWgY4Pc79rwsgEzTZeRo+2+izVkOLHH38MgPsSqRtucs0r/PSTuG2b5vxE/zKBWCbijTeA\nlBQegiOI6QEBiC8upvV7Gbi0D7FTTAwuVFXRYg9VbKb4vuOLkqoSku/wxAkgJARYsAB4+21hcxQX\nF1sCb9X8NsqF1rfvOgQEiDmua0PCuAQUxfCLzjvYG6NTR1/BovGAMYYoD+uMeGTySPiE+KhuV/mN\nWre+CYMHbyW1YTQa0UTeFaGeL2rCcE7nn0bw8mCsuGUFnh75tJix4mh//XXhXedCoxGtdu26bOnh\nRudDvFBVhVe6E5Z5eXIGQ3S0sGmZoQwlVSX49s5vxfsFJ0OARoYALGRoJtw1FSgXWocO0zQhQ72k\nt5BhWFHYVUWGAL+wIlgEOs7ks8W9oXuRNClJdbvKxkp+/jZkZ28iteHl5WURf3j6aUFCkrF/P39e\nsULctkdrvvKYs2WOuLEk8bg0RX1CAP7yyunuI0fE+70cRJOftX7gEuIOW3Jy6CUCbrqJUfWO7vjh\nDnIC++HDvFuqGte6desYALZixQpaA4yxgwdv1UxgwFhqZDroLA83HHNMlN/LYKAXmoLKOjpqJMJ+\nSPqBIRIsJSdF3DghgXecLV6zRikjcimgMYk7qF4u33MPT9kTNV0kYeY1M7F60mpSt4CKDAC5Aepv\nUlycYJHvUhvWURBdgAPhPJi985OdEfKJuqLhasAYw6HSUiQWF8Pfywtj/f0R0LRpvY0HsM/CUetH\nrarKQUwMTyml/m65ublo145voFHOn+PHgb59gY8/BuS9GiGoyl6RJOD224HffhMyqzCZ0HznTuwe\nMgRja9E3oCyZXVbs7kJVFZ6mJFselsNkPvtM2HTtIV5X+fPbPxe2VWTaFy8WNgUATJgwAQCQpSKl\nRSFDW6l7CjK/zETKYykAgNFnRsM7UL1iy5WwLS8PN1N3oaqhYsIEml6mACJYBKJ9omEuN0Mv6RFu\nDifnFzdt2g49e76P1NQXoNdLJFJsq8R5ATh58iR69eolZC+X8MbTT9MIcULgBESnRfNZluhxuPVW\nnr0gCG85/vKx5GRSzZXa4JIzxKSSEgzatw+FYWHwE91lveYa4OBB0jRNzV1OzeywqqoKzeQoWerv\nofgNhwzZDX//saQ2ACDlyRRkruSpWRMqJjhMQqvUZELLnTuv+DlfT0/8r18/3NymjeVCKzeZsDg9\nHYvS0urUF2mVUUccmXIE2T9mAwDGl46Hp494kLQC5Tfs3ftjdOlCYCWoW2Xs3g2EhQF//gnIOiJ1\nhslsgtebXpjSfwr+d4+gSG52Nk/2T0zk168A7jtyBBuys2v9jRtNpsqYhATEFhXRl8szZwKrxZa8\nRZVF8H/XHzse2oGJPSYK2VZUAM2bA3fdBWwi+MbVZh2kpr6IjIz3AUiIiKDPDm1ludTMeC4HRdOy\nOhYHB2MeZQNNoI8HAwLwXV/xFMwrIeODDKS+wENpworD4NWSvvBSSDE8nKZoM3v2bHz11VfYunUr\nbrpJXHZMzY1d9bK5f3/rCq+OUGQBz44Zgy5K6o2lyUZCiJJej5vbtMEWOSK9zjhwABgyhEdFt2ol\nZHr3hrux6dgm0o/Zvj2Qk0NSNLLIOt122234nbBsYMyEqCh+AarxG6a9lYbTr57m7WgcW5hWUYGg\n2Nga75vDHUO6togrKsLohIQa72s9a7TN5VZzM6moSENsbBAA+u+pZpb4ySd82UyRB/vp6E+458d7\ncPa5s+jiJ2g8dSrwww+0lZ1ejynt2+N/1apwNgpCVJRxD48Ygf5ytkad0a8fz0MiLpdv7Hkjtj24\nTdxWzV1V5UaKMqMYOzYLTZvSMnqyf8nGkbt4+IKWZJheUYHAakSYMnIkevuoj+GjYMT+/dhXLZhX\nS2I8u+IsTs49CUDdcYyObg6zuQI9e36Ibt2eFbb//PPP8cQTT2Dt2rWYNm2asH29zBIvXOACzmfO\nAIFicmyhcXFIqSW3uVHEIX4sS30JkyHAyXCquCRRah5f7qyZtEbY9oMP+HNe3cWbLciTje69915x\nYwDnzytuAU8yGZadKLOQYbgxnNRGbZD0ejsyNIeHg0VE1BsZAkD8sGFgERH4dcAAy3uSXn/JJbYo\nus7pioAHAwBcWguyLpgwgefopqbS9Lkef/xxAMCDDz5Islc8F06dK3XkMZ6YIx7PuFiWBdRicudy\nhDiPWmg9J4c/E7Z5Z/wyAwDQybeTsO0LL/BnWcxYCMrO4IYNG8SNASQnPwIAiIigF/FWFF7CCsMg\neapfvlYnGJNMhI5eGovgjnbtwCIisNRGbFjS6zURC+j7XV807cxDgtSQ4tCh/Hehpva9++67ALjS\nuiiU4nb/+Y94v0ef5PnFSVmEwPUxY4RDbwBgkhxutJUyK6kGlyNEAHihWzdxo4UL+XPXrsKmuzN2\n4+6+dwvbKauvpUuFTWGSyzFeI7irpmDnTq4aMWDAryR7wHrB9t/UH15+6iKwGGN2RLh5wACwiAh4\nuBARVsdz3brZLbN6xcVpMlsce866y79/1H5SG35+Iyx/G43iecpKPvwtotvFsJbKXbZM2NSiG6oI\nKwvhiy/4c0mJkJlys3359GnxPqvBpQjxfGUlAGABZbfx00+tmlsCOJnHfT4rb1spbBsqK2lRlIf7\nyw7g/fvFLxjGGEwmftK0a3eHeOewkqFnS0+0v0u8zowtPs/MhEeUNdeXRUTgX+2cU9BJC7CICJSO\nt8p+aUGKig+xeG8xihNoIgTh4fymuWsXoagagEmTJgGgxbZ+K2euajDpqjsUVwYhh3Biq1Y4IEik\ntcGlCHHZ2bMAgDaiEr6K74BwIOdumQsAaN9CnBTOnxc2sSBZXpd4EAKIo6K4zbhxOaS+c/+wVrwb\nXzz+Mp+8MiS9Hk+k8CDuz0NCHBrz50j4eHrajV3S63GktFRVmxOqeLD9/mG0WaIkWc+NkhJxXc5f\nfvkFANBR8c8JYPp0/kyJUjrwOM9wOlNwRtwYAOTcbBH8V1bPNqv0I7oUIb5PEIsEACh+kvvvFzbd\ncnILhnceLmx3kk8sLTqXIvj6668BAOcJjGo2W/2FTZqIz4gBIOl27t9Ru6NsO5Myh4fjsTrWy3Vl\nsIgI/Fv+HgPi4/GGkoJEgEcTDwS9GQSA7k9UQm/27RtIHocayDq0QhjckYvgjv6KIAKiOOUFMUZO\n3duickrrUoRoBvAI4W6Gt3gNXNEgwEojX6J/cusnwl0qEo0jRlz+c7Vh1qxZAGh37uhoPnueMEG8\ngiBgvTD7rlUXoGxLhq62aaIWn4aEIHXUKADAwjNnMD4xkdxW0KtBlr9z/6xbLerqaNqUnyclJeIb\nFSXyMvJOgmq84gVJTxc2BQBklRLSUGXfJ7Uq24fUSZUMlyFEgyx39TxlQ2X3bkA0iBvAsljuNR7Z\nRZs8yLpAOUGVXUAR2IYVeHg0u8wna0fO79YldsC0AGF7BdXJsDEiuHlzGOT88l2FhZigghSVmXjS\nbTTJsLFj+Upi3z7xc1xRXv/1V/HNN/nrg6LP/NqE1wAQQmEU3zNBPy+wWTPsKCgQtrOFyxDixmye\nD9qPEn8IkPwO83fMJ3WVKdc/r0Mqbg0Ml6XTlV1AESi+w7CwQvGOARz+F/dDqVkq1wsZlpRwqXlJ\n4o+VK50SJOfl4QFzOI/N3FlYiOcVPwkBwYvlsgEqVbcNBvEL/jl51+8iZf0LXpBKFJERkQCApXsI\nIRgeHsDy5cJmz1EmU9W7Vt2CRvhUYRlRKHduYl2J50aLbxGPG8efKVVRlc0UNfDyql0h+HI4eMNB\nALCInFLgFDJUSM/24esL7Nhh/cyTT/KLpvrnHDAmSZJglElx6dmz2EeU6u8+zxo5QQkgVhSMdu8W\nD3hdKseFBQSIrwq+/54/i4ZoesgbQi/8TfAJEusgPSy7oC5SGFyGyxDirsJCdKRo3ClLT0FRhPzy\nfADAvHHzhLuk+tnTZWfM9u3ilcpSU18EAFxzjbgKOADkb+fft8/qPiT7MTb5wJqToS2p1YZ583ii\nuKJjeqlaGlFR1nZGa6fq7SlJSJfbG5GQQM6IGJ3B27AtR1BX1JePVkn8mjnTiZ0++SR/Fiywpihj\nfadCQs9lCBEAZhDuYNiwgVTaTvEfdmxJmzE9K55iaok9vO6664RtuZoN0KqVeJiMskwbvGOwsC3A\na2PHyjMjzchQUcKofqEruei2j8WL7T/XsmXNzzBmfx7ExV2eZAXRzdsbbwYFAYBdzKUIvLtadSWr\nssRnMaNH8xvqgQPXCtt+8gnfOKRENgD8MhPFx7fwIljCNxBFy1GpgCWItQ2dEJXYoRmUHWYAePRR\nYZO3dr5F6kpZQhCK+Vk2VERhMvH1iqcnLUBXQeuJhPxCAN3knOR0rWZdkmQ/o3/+eSup9aHNYAHw\nIti1FT/XiBhflQkRoAdvh5v58jumY4ywrbc395EVFIj3/aQ86+pMCI2iaq8+OYL3+VXCV7QGCHHF\nPby9VQVouwQhRss7Q31FN1SUE//hh4X7NDETHhwknvyu5MuL6taWy06YtWvXCve5cycXRAgLyxe2\njW7Bl9hD44YK2wL2F343b5XK2QMG2BNTVBT/Dd9/X127teFSxKhyM8Z2hhxTKL65Zbv0ZWbxsfj4\n8CLKRqP6rIy6QtH4FM2MU77rY78T6jb37g3s2iVsNo2yyrSBSxDiOuLuF/bs4c+CITfKFP7J4U/S\n+iVguhz6T5FjUkDxI5nLuDPeb6T4RkyszQWveqksSYBthTTGrHEdjkR1YvTwAGqpvyECZZNlHDEU\nZ3wJd3tEeYovvUeO5Mdw1y5xN9H1clF40SWsoos4ZYpwl3TIsbqimNaBqz5RM1ZcghA359BS0LBm\nDcksJoMvV0Z3pS0BFywQt/mJUgkcQFUVD0fq1OlxYdvkx/mOdq9lYvU1FIyRL3gl9IQMWyKvbebm\nDDBmvciKilQtoT1tbClLZ88W9DIDaqAo3zxFKZoCYN8+cRvqNYa7ZbEVwXK8feRV5l5iNIBLEGKW\nwYD+FJ08IiF+tp8XoBKdcSkzeEVYRxS9CRGuMTH8jhcaKl406/wX3IHe9RlxBSDbC528w8lYTTKs\nT3z5pf0FpoIU1c6YhyXygmBxfeKEbVu35qUBTCaxbCWlPMXKleJCJh1ocpuWjRUlK6zOUKTZKLmx\noKfwuQQhAsBtBKUaGAzAjTcKmynV9UShuCqbCSaJnJVFK7Zs2ULqlwKtlNDJFz5jfHlq+9oVUN2P\nqIIU9bJ0G2WW6HsNX/KWJ4trMA4ezGd6O3c2F7al4n9y3ShZta7OGNaZE/+KveIbJACAjRtJZtsa\nOiHeSiFEQLw8mIxJoZOEbaiJCkruck8bQVIRSJJ4fKYS6zbBIO6nUy7wO6i/CeCaZGgLDUgx3KZu\nj5obkNmormysCJTlsuh4lfviqlW0fl/eIZ5JBoBUW93bwwNxl4pVvQJchhDH+ok7/QEAN99MMpvc\ndzKtPwK2bROv0wIAKSlPAwDGj6f5QwDAw4v+E/86kKiw4krL5MtBA1I8LYtAUGITlZIN0U1owfYU\nLJdT4t577z2SPUHhHwBgMIsFWQMABg4kKUvcRJGvl+EyhNhEVBcwlddBsai01hHlBr5E+VfIv8T6\nk/HmmyQzEjIzeTCtqJADM/ELvUmAoK4kYBEx6CbqF1DQUMhQge0YK8QVhIKa05etako2DBvGdziK\ni8W0FhX9zfnzaXn8lYKuQFUguMMA4MY2bchdugwhCkOZdQne2bef4mlzrZuL3UWUVOu5c4XMLFhG\n0WMnIsqLz1bGnhcvWL9TDrVJHzNGvONcG3mrhkCGCpQaEERyWyFnVmhVrKou8PXlvrn9+8W1PJ0N\nSnkOADSxAADjVYRVNXxCFIRCiKJQ+Ex0ZX/s2DEAwL///W9Sv56eLUl2gPjusEktiSnSTUp8qIZI\nL0yHtEiylLnUFLY1IAhL56cJdXwUjM3mN60D1x8gt+EsEASaAADPjibkuQLAWPmGLhh601dFZceG\nS4jx8SSznekEzS7QUvUAIDIyEgDQVFC4oqiIh2OMGqW+cE5d4SX7wSopAdO2ecQapPgp5Kc8ApcF\nXvJ/Xyd8rbo/rWa0ogHBTdvx86JghzodPxE8S0nEB6Dc0wU1FzCuG5eHOnLxyBU+WQ1KrM/x40Jm\nXoSyHApcghCDKSlh588D7cXroCReSEQTD3HfGhXUEqNJSbcDAJo2FSvWVJHG/WADNg+4wicvjaaU\nE0rJH1VJLJebBbKFDH9P/7vG+7N+mwVpkYRd6eKpXrUPQnyWWCXfRDyJwg8UtG1L84MvWrQIAJCq\n+OHrCKV+vKjmgrJS+fGo+I4xAFIKHxUuQYhDCWo1AABiCc/xgeoKKzkDBgMteyc2iAsxtPuXE6ve\nDaCTr4KMwowaRMgWMrsHAFwffL3de/kvWfO7x68er25JrYLMhTcFNUC/fvxmm5v7h5Cdn+z3mUPc\nMibmQ2DDEdrkALt30+wIcAlCDKHu1BEJcXQX2pKOKsbTEKBsCOQp6rciUHKUiYSSUZiB7stsBFRt\nCPBKaOXdCmwhw8k51iBRTfyMTtQfHH2Gn4/Zv2QL2Xl68pWVspoQBTVRgJpfcCznGM1QA1HlusIl\nCLEHVUWFSIgDOtBmNJOJoYv33XcfzbAe0JpaApaI2siQgp5tetrZkklRxfdZKadmrhfU4/MO5Of/\nkbsEfWxXC1SUbhCFaxAidYZIDBwObScWu6hgknhyCwDgoYceItkFBMygdehMKEvFw+J1gwFoQoa2\n0IQUiXhCloV54BhxJuRGTfj62odz1RHeRBeGaxAidYYoGO5gZnz7PqRtiJCdUqJBNCyqQg70jRDM\nBzbLUf2BgQRZHairm0KGrAYuAlvC0oIMa2tr0ErxSnX4W964aUSlVRssetGUmqiJBS5BiF1FB6+E\ny9vkktYFGYW8ZmvLpmKxfUly9UjR8KZYWWnaR9AwN/d32U5sJlt6rBQA0GuF2EmUL8dRzNOgahkF\nWpJh9TaTLhJKf8q6gW7UhI1ouBDa+4hHhAAgE2L3hkyIwmEeio9G8A6eUUQrYr1fLDvKAj0xcyEr\ni6bGc+Qe7oPyaikm591G3sVbLCo+Qa1gDuvs8JqOND8wpa/GCGrg/ogRI4h2JDMM7URTbEePHiSz\n7sRVp0sQojAuXCCZ5ZaJ+yIAXveIggSbSnUiEA2jUFB2tIxkR4YSmKZiIyLxcXoB+CvBETNPR6HN\nzbT8244dHyHZUQqdAWS3PXq1oc30qOrm7UQ3B2U4nBAlSbpZkqTjkiSlSJJETP6pBiohltMIUTBQ\n3oK0tDSSHWPOzKB3PpQZ25iuhHxpZ0NQAHDvUD4TyhVM5wh+lxeyF5XlatfuTqHPKxD1ayugZikG\ntCDWOmlJmwH7uOKmiiRJHgA+BnATgP4AHpAkSUVZNRmEXScAyCuniUYS+RdnqAWcrxLEPCpeec5p\nMBr5s2A1sRFy0PNjgrFzLQZy6fvyVDHBWD8/flMxmcRWBz2IS1FC0T4AQPsWRB8ikRCbC9ZpV+Do\nGeJIACcYY2mMMQOA9QCIwSs2IC7RCivEq6QBvAQHzY6uY+iGtui5XNA/SrygFGwSrBMkefBZc/42\nscqKSnB2efkJIbtOnToBEJ+RUpW1yJsqVEJ0xRkigC4AbHcyzsrv1QtMTFD/XEZpqcYDccNpUPyI\np/JP1fNI6oZ8nXipWUA81bOlTDRKedy6gqrj7NuMmJ7rZEIUrC7sGCiKMAD3bVD9G1eClwft6wqq\nD7nhBhmVZ53jP1YEF6qqqoTCwqghw2RBFQEG1uv1lsiOo8RZjKMJ8RyA7javu8rv2cGWEB0JT6l+\nypkXwAAAACAASURBVD+6UX/QqtiWs9DuTpooR5MmYnYGedPHX2WN6rrCpwlRo7Bduzqr4ttOphKL\ni/Hj++8Ld+foJXM8gF6SJAVKvFLS/QA2O7jPS4I6QxSM/3bDheDxBj/FK1917s59G8HNGAX+YWIE\npRB+kyZiu7iKf1tURJhaQoBUUwXgaWKCWqIAUElc1jmUEBljJgBPA/gLwBEA6xlj6hM9CQcIAJo3\noeVMy/5ngh3R0A3N0dRT8JyJkXfAv/1WyEwhqJUhYumhplLu3/YdLuZrMxguAgCaNhUrnFxYSNtg\nJJqhwiherwYAmRCriCsDh8chMsa2MsZCGWO9GWPvatIoUYerQwtatW1q7FVwcDDNsJHjh7t/AODi\nGSSKDNr06UJm78jZO/cKihcXRHPFbE9vMbeOoqzOI9zqjqNHjwp9XgGx3DE55I1MiK44Q3QYiITY\nsSXNTlZ1EkYvYh6mt3cQrcP6wmmxMgf3D7jfQQOxR30Q7ivysRBdiiY/QtP8KyjQkewOHjxIslOK\nrYniXFGNrYO6gbpkdtUZYl0g7PgOoEW9d2pJW8IKVjq1YOTIkSS79u3vIdl1/Q9tKvu4vLQvE8zK\nsMSDqpgJO4O0GkIKX9WFKpLdxYs0WX4qIRKTr3CumEiIpaWkaogVDXmGmK9kBdQVSnSoYHpUJ18a\nISo1k0R5+3qiakqnTrPl/sQIKvhtTkyFsWKOns9kxm+xk1aAiwJHk5RLL8c1RFUVjWj2ECsjCi4G\nLDhbdJZmmJ9PigYvFOUUGS5BiBmiW1dKFkG2mOR6a29eizmnTCyIVZE8Ej0ZestrbdEUPh8f7pDP\nyflVyM6jGf85k24nSF7VI7Qmr+i0aMvfJOJVlruvvKLRiFwPZ8/SCIroekR6IVEZKS+PRIgFDZkQ\nz1L38k+IpSspfp2kLDHCUK6Pv2sWfKtTf7///ruYoYwzZxaR7Iy5tJOBBMV9QRBTdYS6dXRaNMLX\nhGvSFv77X23aaUQgCqPTdCmBq5MQ0yuIW/JEP8ihrEMkOyKvYfXq1SS70lLaOJ0KqvKFDC1JsToZ\nOtt3qBTqqqDUtQbg1cYlEscui4oKmk+9pKoEQa2CxA2JhCjshpPhEoR4hJosfOAAyYx6t6ISIlUX\n0ZlYLZ/l8wRr9dqBqO5TnRQpxCgtkrQhQ2WmS/SxAUAzwTzac59xP+DoNGo1yJkku+HDh5Psxo4l\nmWFIxyHiRlfjDDFRKXIuCiIh7j9PlMBuAOgwlcdaiu7cz5R3mpdkEFTFlc0toqQUUJPA6kqMtX1O\nk5nhaBo5UXDi39z1I6p0XlrKcxx69VpG6ve5554j2VEJkaSOfv48KarkYhVt194l5ugHnEiIzTyb\n4cAFGpFS4OXlBSPhbhUQ8CCplEDftX1xcd1F7Bu8DyMOEfXeRWGbpvbPP8DEiaRmFCKzJTiR2aJq\nIlRmhzPEqx1+IQfozXJidtLhw3cAALy8xNL9Tsi+93vvvVfITrnHUkvOjO5KuMmkp1uV2QVwjrgv\n4RIzxDJKzFD//iRdxOuDab/m4MEkM7z11lsku5CQzwEAeXnbhOyUjZzSJHE3xBBZaulNytJXIX2i\nNL0tRArVUz5fK2x3XdesETZ/PCUFAPAlNWiVgPJyWr3id9/lCWNNBGX2lWJrooWmSqv4uRjWXbBs\npdkMZGQAhOJn54gzRJcgRBKIjuvretAu2BdeIJnh6aefBgCkCvrmPD25OsihQzfTOiYgQfYpvU4h\nRFtBVY3KdypEd6WHJlAuOhWFsyjI/JLPLIcfpPnzKFi1ahXJ7pdfaP1FpUUBICjeZGdzPUTBqpVl\nJhPKRZMMZDRcQryZRhTUGeKUKfxZNA5L0ZqbP38+qV8Kei3nKYNKWVIKSLJZtjYxLlweoDpsCZww\nG1F2l3cPEd80SHmMzyxbDqIJoQYEPEiyo2DjRprdtpNiqxwL0tOB7t2v/LlqyKysROeGXIaUhGuv\n5c+Cir8DOgwAAJzIFYthVNIpqby2kXo2EdB1Dk/hi+8XL2ybI4saeERF0To/wkuhWsQRXB3tbHQE\nVWonjnWStiAApKcvBgCEhtJCum688UZhm6QkkjsPW1O3ihsBZEI8W1kpXutdhssQ4nlRJ6ivLJMk\nmG6m+NjWH14v1p+M334jmZEwYgTfRSwq2ue0PtsSyzda0K+f9W+Nls4Ow4YN1oJlxNzXnrGxAIAw\nAhnm7+DlArrNE5+VnjrF78weghqf58+fBwB89tlnwn0CwMMPi9uk5KagdxuCQkpyMiAoowYAJ8rL\n0ZOQ/wy4ECFuz6fVksBW2t3nh8M/0Poj4IMPPiDZtWjBCxQmJIjvFvd4i4fA5PwmlqYIANvlHSRl\nKSgM25mWq5Lijh3Afffxv//5hzzOU3JSwU7Ccvng9TyxoOdiwQJYKjBD3kEXrbqn7FEQNuABAA8O\nIiztjx61v8HWESfLy9G7oRPi31RC/EO8qHto21AcyxHXqX30UWETAMAzzzwDAFhD2L2kIvBlvrY5\nfId4rtV1rVtb/jZQC8q4MinOm2eNHXn9dav7RRDKDeM6J0uqV1XxHP4+fdYI2/4tmn8qQ/H4iO4w\nm8x8c2PawGninRIJ8URjIMStFOXJ/v0BOdxBBFMHThXvC4AcrSCaQg1PeQf2YcJ6o1s3vr0tWndX\nLTLkwOSm0dFX+ORlUJ0URQ+cIyBJwJIl/O+VK4FFtHxxW2y/Rjzg+MC1PBaWsrscE8OD7zt2pE3X\n2guK1wLARx+RuoL+jB4A0LON4CzYZOJL5r59hfts8IQ43NcX2YJSXgCAmTNJ/T0y5BEAQJlBjGQU\n/7uy0nIGevbkF+/OnS2Ebcdk8iLmekkvbNvVprzaU4SbjgW2pBgSUr+zRdu+c3KAJ56gN6ViZxkA\nCvRcIZu6u0yBorq0a9cuYdu9e4EBA8T7/Drxa3EjgAsvtmtn3SuoI8yMIbW8HL0aMiFO7UCT9seD\nsl9CcEOmqx/fhf3+0PekbhMTxW3Wr+ebOKJ1cNWgWSfaTpsCJlcw+5Qqk2xpiHE/nQJJUi0KIQRJ\nsidDxoC2bcnNzThmdbdQdpYzlvH0yE6zxLNaKiv5cQsOfk/YdoIcuxtC2KgAgFdfFbf54fAPtIp7\nhw+TlsunKyrQrkkTtCQW+XIJQrxfJkThOghKKYHNtEJ+H8WJrwMGDSJ1hfvkaeVdd90lbBsczNfq\nFRXiecaDd/ANktiescK2APCm7DQib7AouPZa+9lip06cpBxZ9Prhh+2J0NtbdWiNmTF8m5UFwHrD\nEEXqczxIP/RL8ayWPXs4iXbv/qKwbQYlTx1WnYt7aELueH7M8+JG8fEAQXziQEkJriEWtwdchBA7\nyTFDf1Er2BDktUZ2GYkj2UeE7RTupSoHb9smHqTavftLAIDYWPGYrNYT+QZJxSmaxNqrNl501aQI\ncEKynR16enLSeukl9W0rUGaEtptYjAnHrNYGTzk+cxvxzpizme/6e/g499KrkreJ33tPfGapxN56\nCpY1L64sBgA8OeJJ4T4RFweMGiVsdrAxEKKC7y9eFDdq1QrYskXY7MWx4ndYwBqYStEvePbZZwEA\nZkfOimpBn294+A7FlwjYz4Q+Jiot2yEggBPU8ePW9957z0pkon7GwsJL2zKmelaowPaGcCNBkgoA\nDk/iu/4TSsVTT9PTeeH14cPFdTIVIYcXXxQ/76OjaeI/XyV8BYBQ3M1s5jNEQk2iAyUlGNxYCHE9\nhRDnzSP1NbnvZACA7jStahkl3Xfp0qUAgJmEzaCxY/ky7ejRB4RtOz5kPSFJKXkATOFca3DOyZPI\npCqcV0do6KUJy5bgrvSoHvayYIGmRAjYkyF1qXx4MifDDg/QfOanTnEya9lyoLDtZqJbSfmpKaG0\nC/ULSX3ixAn+mxL2Fg6WlGBwC/ENSAUuQ4hPdu5MNJSn44JOeg+5ju0r/4jXzVAiNUQnekqWzHff\nfSfcp1KI/OJFWobN6HR+i4/yoKXkeUgS9sg7ql327EGl1rNchcAYo+lcms1W+7ff1nRooXFxlr+p\nZAgAOT/z5XK/deKbBeXlpwAAHTs+ImxbKgswv/POO8K2y2SpRYoGYnFVMR4f9ri44d69pNlhTlUV\n8o1GBBN3mAEXIsS5cjV44UBgZZdvmbhI5thuY7HnrLgy8muv8Wd5BSyETz75BABQXFwsbNu3L8+u\nycoS3x337mYNoynaVyRsDwCj/f3xfk8eT+YdHU0uBn5FDB5sT5B1eTgonGdwfDxSZN+jGjJU3BWD\nttJ8j3Fx/Lj36SMexjJwIJ9RUgRGqLn7uWU8JfL18NfFjXfvJq3RY4uKMMrPDx4qzgWXIcRQWRVm\nU454qhkAYPFiYZO3J/KZhBJNX1cox3vFCuEu8aQ8ow0kZMkHBPAC78eO0RROIlgEACBhBL2kwfPd\nuuFFWRGmWXQ0soi6cw0Bkl6PQ/LsyhxOL1xVEF1g+bvNTeK+R4OBZ3E1aUKrR36auAOoeBwoJYHe\n3smvrc6+hJXfjh0kXc2YoiKM9fMT788GLkOICpZRnPZPPUXqKzyIn+Qr960UtlXkwKhuqnxiqmKP\nHrwSXE4OrcBLj7d5Dit1gwUA3uvZE+/IubAdY2KwSbAcbENAdZ+hpGLWcSCcuwCUG5Iodu/mJDpu\nnHjspl7+HgcIboiv5ckoJX95aexSNPEgCIWkp/NNMkIUeExhoWrFIZcixL4+PogtIiznlJAN4uxy\nzpY5wjbr1vHnuXPF+8uUA52//PJLYdvAQO7zPHz4X+IdAwhcYJ2ZFsaIFbS3xfzAQEuWxt1HjmgT\nkuMi0GIDRYFy4wn5jBYMXVXFN9M8PLyv8Mnaca2cpz2YIPk+ezZ/Fr0XKBt3X99ByFLZsYOHcAgW\n6jKYzdhXXIzRjWmG+DpFbA2winouFN/Vev+G90ldKjFZH38sbttJrrvx2GOPkfru3Zv7ITMyaCo6\nykwlcVwiedcZ4FkaVTbK5Q2dFA+VlGhKhieeteZud36ctmkYE8MjBCZMEI+hVPzUzz8vHhitZNJu\n2CBsinVJfLZAUrghLpcPlJSgR/Pm8CdmqChwKUKcIm+zRxUUXOGTtaBNG+DTT4XN5o7iU7ztp7YL\n2yoxrpQaWd9++y0A4MgR8eDwLl24HzI1lVjXAMCQGD67o+46K2ji4WFHHJJej2+cmZanESS9HoP3\ncd3JSW3bqibDirMVOPcRLy9KXSrn5/OQsLZt7yDZ+8mzpfffF7/pv/wyfxasQwUAmPnrTAAQdzMo\nKZ4EQvynoAARGqgOuRQhKrtDr5w6JW68fDl/FpzxNPHkfo4HfhKP71NiXAkpl5g+fToAYAAlYx7A\n0KFcDTsujiC8CcB/jD98h/PEeTX+RAUsIgJPd+kCAJh5/HiDmS3+nJ1tN9aqCRPwy0DxOL/qiO3G\nUyXHl4wnt3HwII/+HzjwV2FbJfi/A1En4P33gT59SKYwmo1YFEFQEUpI4DVUgoOFTf/Oy8MNNrJ1\nVLgUIQLASF9f7Kb4ER+QCY1QTf61Ca8hp4y4uw1eGIyCubIDMpuwKeHnx/M8y8tPwmgUD+EBgGHx\nwyx/7xuqXpV7Re/eNWaLrkqMBQYDJL0ek+UZelNJAouIQBNB31VtUG4woatC4dlCMN9NxsGDNwAA\n+vffRLJXBBzOnTsnbJuczJ8JlxJ+Oc4rUS0IW0Aw/gUg5PqXm0yIKy7WZIYoqfEhaQFJkpjtGLbn\n5eGGQ4dgCg8XjyeSJKBrV2GGMpgMaPrfpth470bc3e9uIdu0NC6auXYtMI2ggaksKyi/A2MmREVx\nn0lEBP13VC7gzk92RsgnNOd/dcQVFWF0gn14j9plqBY4V1mJrnvsY0+1HJdyLH36+GDkMfHgYoBr\nXypyb5TflTEGD5nYKedVhw684B2FGpQ62qRqiAMHAp9/LhwF/ldeHt44cwa7hg61H4skgTEmRCIu\nN0O8Xs4RJfmh5syxr69bRyjL5nt+FJfzUPaBHiQWP3tC1uSj3MklyROdO3P7U6fEM24UKD6uzE8z\nkfmFSqkvGaP8/MAiIiyB3IB1xnislF4NkIobDh6EpNfbkaFhwgSHkCEAMhkCVu3LCRNoMZ59ZVHV\nsjJxUWGDgZMhRRBWiecl7S6fPMk7Jgg6bM/Px/UaLJcBFyREBY9RREmV1CRCCUzlRzSajcK2ivuS\nwGlYuZLHQHaVM3VEERLC7dPT34bJRFdzCTfzmMyUx1NwfvV5cjvV8Xy3bmAREYi2UZXuFx9vIce0\nCpoKT13wWHKypR/bmj0sIgIsIgJeGiyPFdiSIXUTBQCSk3msS5cuc+FBiOMzGAxITk5G8+bN0ZyQ\nwjZrFn+eIx6Jhvd2813Gh68hVKL69VfgjjvEJXUA/Jmbi5uIYhvV4XJLZgB4/fRpvJmWRrt7SxLQ\npYvwTJExBo83PPDCmBew5MYlpG55O8KmiIyMxKJFixAXF4eRhBxOtUssBeYqM6Kb8ZIBXeZ2Qe+P\naBs2V8Ll/Iq/DBiASbalQQUQnpiI6MLaYyuXBAfjBUJJy7pAKzKsqrqImBiejUL9HRUXjNFotJSu\nELMHJk8GfvqJ0PciCW2bt0XOPII/fuxYrkB7661CZifKyjA+MRGZY8fWcLFRlswuSYjlJhN8du7E\nvmHDMExQQhwvvsi3yAjfa/Bng3Eo6xDJ/3HbbcCffwKlpYAPQSBYjS8RANLS3sbp06/Ax6c/Ro4U\nLyylgDFmCcXxHeWLYbHDrmChDt337EGGVuo51fDrgAG4g0iudYVWZAgAej0/B8LDjZAkcTI7d+4c\nunbtivDwcEuGigiWLQOee47LRnoLxoGfzj+N4OXBSPp3kqX2eZ1x8iQnxHPnAMEyuO+np+NEeTk+\nD60ptttoCBHgs4jhvr6IHyZ4QVZUAM2bAzodIDjDPFt0Ft0+7IbExxNxTUexwkGMWYPrKYc0KioK\nERERWLJkCV54gRZfqFxQAwf+ibZtbyG1YWlLwwtdBAnFxRi2f7+wXUtPTxSEhcHTSTVbzAYzopvy\n2bRHcw9MKBPXN7SF8tv17/8z2re/k9SG2puqJPG6bYcJ99Ney3shNT+VtpkSGQnk5Vl9TwIIS0jA\nK4GBuKWWkhAUQgRjrF4ffAg1MTkpiUGnq/V/VwTAWLNmNNNIMJ+3fEi2oaG866oqkjkDwAAwk8lE\na4AxptOB6XRgRmMJuQ1LW9BZHm5Ykb0523Jcjtx/RHV7yclPMp0OLCamK7mNb775hgFg33//Pcl+\n1Sp+7ubliduazCaGSLBF+kXixmYzYz17MrZ3r7DphcpK5h8dzSoucb3I3CLERy67qfL/9s48rKpq\n/ePfxaSiCIoKIqIpiqiZlWOmUpZT5VDdbjfHbLC8eX+aDdeGK2WZaWq3TMvMrubUYGo5a4qCoDiC\nyiAiCAIyj+fAmfb7+2OdUUE9e+8DB9if59mP52zc71pnD+9ew/t+12pjHJWoGcnvvuPKlgb7VGwA\n4MfxP0KtU0Oltb9c09pD9nY3TFQYU17EjP2YePhhnuUTGSl9NbcwCkOTIL68QwSLQMUFESk5DYyo\nVlHmta77J/RHzy0iovKtKC2NQXY2z7AaPFhcQCsRmRegf+EFcUvszpjB46HFTNb+5wiX+PpgmIhV\nqGJieDdZxPopOwoKMKp1azSRcXLMaR1iOw8PAMA/EhLsP9iUlW4SLrSD6X2nAwCe+cW+eESAdzlC\nQ7lWqRg/3rx5c0ydOhUAcNJKlNQe3Ny80bv3nwAs3TApDL42GPfu5Zkbp/ucliWrpT4iaAREsAjo\nS3gUQhiFoXmoeGVmgMt6nTvHY+6GDxevLWmKOSwSuSaRKeP1tMjY/E8jP0X/gP5m0WW72LABmDJF\nlJ7l5txc/EPsip01YW+TUu4NNXSZiYheSkwU320ODeV9ABH8c/c/CeEgQRDsPlYQLKqlYoGx6yyF\npKSZ5u6zHAiCYNOFVqeqZbFbHzg7/Kz5dx/zOiaLTUHQm6+PTlci2s6xY8cIAE2bNk1kPfi92q+f\nuPK3XthKCAcVVxbbf3BZGVGrVkSZmXYfeq2yknwjI2vsLhM1sC4zAKwIDgbAsx7sZvdu/q+IeMb/\njuZRqR8ctr8LwBhgbOSJXpnPtFykFA2+kJBv0aQJj22MiZEebsIYQxiFof2rXKnnZNeTDb61WJle\niQgWgdKjPJRnSMEQDC0Tn5tsgojMGUb9+1+Em5s4DT8iMq+1/D/rFQbtwCRfFxkp6nA8v+15eLp7\nwqepiLS5jRv58rQiYnC35OXhmbZtZe0uA07cZQYAL6OUz1MXLth/sFHAVIxyhquLK4Z1GoZFUeLW\n5li/nv8rIkcdAA/SnmxMfdmzZ484I7CMSWk0mThzxv4MgOoI+S4Eww0W9egIFoFTfU/JYttZICJE\nsAicvIcPW7h4uiCMwuDuK0LwtBqOHuWPXe/ef6B5816i7Zi6ynliFmcDD69ZuRKYOVPcuHdMJs/6\niXstzv6DiYBvvhEt7rwxNxeT/MQpiN8Op3aIALC4Sxfk63TiQgm+/poHaIuQud87iS9t+lmk/Qvz\nAJYlgTfZv/wJAMtCVE888QSqJGRzmAJ8y8tjcfasiJWCqoG58NbiA7E8d1QVp0IEi0DK7JQ7HOn8\nRLAIG0m0MAoTtWRojfaN47ohIevQpo04kV8A+Nq4fsWCBQvQtm1bUTZMoj6r7ReMBwA8tI7fT8Gt\ng+0/+NgxPthuFLC1h7iKCpTq9XhYojp2dThtHKIJIoLL0aNY3KUL3hWTacAYV8IxSVzbwdAfhyIq\nI0pcbBWkZa8AQGVlJTyNUd5Sr5PpQWza9B4MGiRCXu02pL6TisyllhlS97buGJI3RNYyHIlBZUBk\nC9s+40P5D8GjjYdsZfBuMm9/hISsRfv2L4m2ZQrANtkVQ1wc0Lcv8NtvwDP2zx8i8lokhv1vGBJm\nJSC0baj9Bp57Dhg2DHjjDbsPfePyZbRxd0e4qRdYAw0qMNuaDtHRyNZqxaXyTZ7Mm2kifmelrhKe\nizyx8JGFokIKbtwA2rfnajhixxP37NmDJ554Av369cOpU9K6ptazzlJS/Goi44sMXH3b1tkOyhhk\ns+KfM5H+cTrSF6Tb7BtSOATureXpGpswGCoRGclfbKGhm+HnZ7/2pgkii5KNIAiix5mlvqwlqdpc\nuwY88AB/KOyU/FcZDOgYE4O4fv3Q8Q79/AahdlMdB43rQWSK6TquW8f/FSHf0cy9GcI6h+HDIx+K\nehP7+/O3cHq6uIXtAWDs2LEYPnw4Tp8+jTVr1ogzYiQsjODuzsMU5AjJuZmgt4IQRmG4//j95n0n\ngk4ggkUggkWADHX78gWAirgKc32sneFwYTgfJ5TZGVZWppqdYd++xyQ5Q8Aybnj16lXRztC0ooBY\nYfODqQcBAJffECHAAvDU2pdfttsZAsDPeXkY4u19R2colnrRQgR4Kl9PT09cEiF+gOBgIDVV1OtQ\na9CiySdNMPW+qVg/Yb39ZUP625jb4EaSk5PN4p9iSUycitxcPkY5dGglXF0d14I7de8pqC7eGpQZ\n8mMI2k9v77ByTRARYjrGQJt16zjyvbvvhe/YW1O+5CIn50ckJ/OF5QcPvo4mTTpIsjds2DBERkZi\n+fLlmDt3rigbubn8RT13LrB8ubh6sI8YPFw9oPlARA56Xh6X4k5I4BWxk0FnzuCDTp3w5F3kqDfY\nLjMAfJyejgXp6dAPH25/vqqp7/r776IUeeftn4flJ5ZD9Z4Knu72KzfExPDc9TFjuACEGKy7SiqV\nyjy2KJa8vN+QkMAXzOjbNxI+Pg9LsncniAgnu55EVVrNrfw++/qIWrfYhKATcGXOFWSvqlnTMWRd\nCNq/6HhHfOLEPaiqSgcADBumg4uLtMWPli9fjnnz5mHIkCGIiooSbUfqy/mL6C/w9sG3kf92Ptp4\nihDOeP99nrcsYibnfHk5xl28iLRBg+7KBzRoh2iaXPm/Dh3wZTcRslStWgElJaLvBPYRQ3ff7kh+\nI1nU8W3b8lVSL18GxFQfAEpKStDKmFslZfzIhFZbgOhoPkPp4/MI+vY9LMmePagSVDjVy/HhOs37\nNEe/s/3AXGtH9IFIwNGjltRLOcZqIyIizMuJSnle588HFi8Grl61RKXZg0ACXD92xWNdHsPBKQft\nN1BWxmPRYmNFxaRNT0xEiKcn5t/l6pwN2iECwKPnz+NISYm4yRVTK1HktNrmC5sx6fdJSH4jGd19\nxXVZ5eg6Jycno4dx9R+5rp31eKIcrRmxkIGQsTgDaR/YPwPl6u2Ke3feC5/h0tfVEEtBwS7zetmB\ngXMRHCyyT2pFYmIiehpXMZNyvVNSgO7d+fihiEX4AADjtozDn5f/hO5DHdzE3COLFgGXLomKRcvW\naND71ClcGTgQre9SIqzBO8QyvR7eUVH4tWdPPCsmh9HXlzfXJbQSAZEza+CL9/TowYNgK8WLW2P/\n/v0YPXo0r4tM1+/KlXm4fp0/wMHBXyMw0P5wiMaM9UtFjvFCALhx44Z5DW8pPQKSKE0HWKTxljy2\nBG8Pedt+A8XF3CNHRQHVaBfeifeuXkW5wYCv7eheNdhZZhMt3dzgAuBvYgQfAD6QCwC//irq8Gtz\nrgEAVsSsEHV8SAgwbRqXbFy7VpQJAMCoUaOw3pgOI7XbbCI4eBmGDOHiAFeuzEZEBIMg6GSx3ZAp\nLNx9SziTHM4wNzfX7AyrqqokXedexmSYGsTE74qOKzoCgDhnCPC++sSJopyhymDA9zk5mCNymQ27\nsDf5We4NdooYJFZUEI4coROlpXYdZ8bfX5LywlObnyKEgyp1laJtmMQfbtwQbYKIiFatWiWLEMTN\nxMU9YRYeiI9/SlbbDQWDQWs+R0eOgMrKzshmOycnx3xdy8vLJdlavZrfa/v2ibfx3envCOGgywWX\nxRm4fl20iAMR0deZmTTxwgW7j4MIcYd65xCJiHDkiHgVnJIS/rP/8x9RhwuCQAgHtVnSRlz5Pib9\npgAAIABJREFURGQwWJyiCEEdG5YvX+4Qp6jXq2we+Ly8bbLar89ERweZz0tsbB9Zbaenp8vmDBMS\n+D02aZJ4G1W6KkI4KOx/YeKNvPoq0dtviyvfYKCO0dGiGkCNxiGeLSsjHDlCcWJvmGee4T9dpxN1\n+OGrhwnhoG0J4p1EUpLFKUplw4YN5odIjGTZ7Sgo2GXjGMvL42S1X59ITJxhcy70evG9hOqIjY01\nX8eKCmmK52q1PPeX1yIvQjjIIIhUcU9KImrThqiwUNThq69fp9Fx4u65RuMQiSS2Ek1NtEceEXc8\nEd276l5COKhKVyXaxpdf8moMGybahJk9e/aYHya1Wn6twsuX37BxBqWlJ2Uvw1m5dOl5m9+uUiXL\nXsa2bdvM10+v10uyZa3JqdGIt7MpfhMhHBR1LUp8RUaOJPriC1GHawwGCoqOppgScXqRjcohHi8p\nIRw5Qgli36Qmb5SbK+pwvUFPCAf5LPYRV76RgQN5NZYtk2SGiIji4+PND1Vqaqp0g9Vw8eKzNs4h\nI2OFQ8qpawRBoIiIJja/taQkxiFlzZw5U9ZhD9PaPhkZ4m1UaCoI4aCH1z0s3sj27VyoWeQiQ99m\nZdGo8+dFF9+oHCKRxFYiEUntUxxNP0oIB31/5nvxdbCqxjEZxJhLSkrMD5fYBYfuhitX3rVxFkeO\ngAwG8a1lZ6GkJPqW36VSJTmsPHd3dwJAzZo1k8Xe9On8XvrrL2l2EA7RqvFExPvsnTsTHTwo6vAq\ng4E6RUdTtMjWIZGTOUQACwBcB3DWuI2u4f+J/sHnjGOJkcUi5MuJiM6e5adg61bRdRi/ZTwhHJRd\nli3aBpHFKaakSDJDREQGg8HsFIcMGSLd4G0oLT11iwO5cGGi7GOZjkSjyb3lN3AHL3L5xLugsrLS\nfI1mzZoli81ly/g99O230ux88NcHhHBQ3A0J48Xh4UTPPiv68BUZGTRW5NihCWd0iG/exf+T9qOl\nthLvu4+kTLAQWd6mUtDrLU4xL0+SKTMDBw40P3Q6Cb/vbhAEgc6dG3GLUzl+3J90OmmzpY6guPhY\ntU4wL+93h5d95MgR83XZv3+/LDY3beL3zr/+Jc3OhdwLhHDQOwfeEW8kNZXI15fo2jVRhxdrtdQ2\nKoouSJxlF+MQHZapwhhbAKCCiJbd4f+RlDpkVFWh04kTOPfgg+jr5WW/Ab2eL4P44IOilx3LU+XB\n7ws/PN7lcRyYckCUDQBQq4HmxoXcysoAMT/nZjZu3IgpU6YAAA4dOoQRIpZUsBdB0CI2tgeqqm5N\nwfP2fhj33rsbbm72Sz9JobQ0GufOVS9a27XrCnTsOKdW6hEWFoajR7kitxwiHQCwaxfw1FPAhAnA\n9u3i7egFPdwX8rQ4sdlYIOLLdoweDbzzjigT/05NRYFOh7XGFFWxOFXqntEhTgdQCuA0gHlEdEus\nvFSHCABfXb+OfUVF2NOnjzgDmzcDkyYB588DRu1Fu00Yc53XT1iPqfdNFVcP8MxCX6MilUoFyPC8\noLy8HC2N2nPdu3dHcrI4gQqxZGWtRkrKrBr/zpgHunX7Gv7+L8LFRZoeoUaTg/T0cOTk3F47csCA\ny/D0FKmyIYKCggKz1L+c1+DgQWDkSGDIEJ4VJwWPhR7QCTpUvl+Jpm4iJeHWrOFpWNHRgJv9+c4Z\nVVW4//RpxPfvjw5Nmoirg5Fad4iMsYMArFd6YeBdgfcBnABQQETEGPsEQHsiukU3XQ6HqBUE9D51\nCiuCg/GEr0h9O1NqlCCIWiMWAMZvHY8/kv/A5Tcuo5uv+IctOxvoYMz+kqulCFj09AAgLi4OfcS+\nQCRSXByBuDj719IQi7f3MPTu/Tvc3R2nfXg7Zs+ejZUrVwIAIiMj8fDD8kit7d/PG2J9+wLnzkmz\nNfPPmVhzdg3OvHoGD7R/QJyRjAze04qIsOQL2snUxEQENWmCT8Su0GaFU7UQbQphrBOAP4nolieQ\nMUYLFiwwfw8LC0OYCDWbfYWFmH3lCi727y9uacKyMsDbGwgLA44csf94IyYBCM0HGni4il+TwyTO\nAwD5+cBd6GHeFdZqOf7+/sjJyZHHsAyo1Vdw/foKZGd/B8Bg17HNmoUgMHA2/Pymws1NpjeIRDIz\nMxFktQ6QHJJtJnbs4KnB/ftzNS0p7EzaiQk/T8CXo77E/w36P3FGiICxY3lT9QP7l9sAgKiSEjyf\nkIDEAQPMK27aQ0REBCIiIszfP/roI7sdoiMnVfytPs8FsLmG/ydp4NSacfHxtCg9XbyBDRv4yHRE\nhGgTplQnqZMsREQFBZaJFik/qzoGDx5sHthft26dvMYbOYIgUGBgoPn8/iU1BuYmvv2W3xOPPSbd\nVlpxGiEcNHjtYGmG1q4l6ttXdMyhzmCgPrGxtFVkXHB1wMlmmTcAiAdwHsAOAH41/D/ZTkCqWk2+\nkZGUUSkhpap1a8mzzlcKrxDCQb1X9RZfDyMVFRanGBkp2ZwN+fn55ocWDgzmbkwsXrzYfD579Ogh\nu/358/m9MGOGdFvlmnJ5Xt6m9DwRAgwm/puZSY+eOydruJZTOcS7roDMogQfXr1Kz168KN6ARsNP\nS/v2kupxMPUgIRz0+q7XJdkhsg3J+eYbyeZuwToXGjKICjRGdu3aZXMOi8XGxt6Gxx/n98DChdJt\nGQSD2Rlq9BLy+6qqeMtw9WrRJm5oNNQmKkp81lkNKA6RiNR6PXU7cYJ25OeLN/LXX/zUfPWVpLqs\niFlBCAetOb1Gkh0TJqf4lIMUuV555RWbh1qqwEBj4Pjx4zbnLCpKZN7vbbB+If72mzw2Tc4wXyXh\nOSEimjOHaOJESbJNL1y6RO9cuSKtHtWgOEQjR4uLqcPx41QscjyDiCw5UMnSEvmnbp9KCAftTNop\nyY6JXr0sD4cjEASBBg0aZPOQFxQUOKaweszPP/9sc45+/90xAd15eZbrHR8vj83eq3oTwkEXcsV3\ncYmIaNcuoo4dRSvZEBHtzM+nrjExpJIoaFEdikO04rXkZHolSWIOqulOlHixhv84nBAOOpp+VFp9\njHz6qaVqRUWymKyWESNG2Dz0R4/KU//6zPTp023OyY4dOxxW1oEDlussIaXXhhHrRxDCQQdTxeUY\nm0lPJ/LzI5JwTxRrtdTh+HGKcMDwApHiEG0o1emoY3Q0HZbiMVQqfoqaN5dcn+CvggnhoLPZZyXb\nIuLj16aH5ZdfZDFZIx9++KGNE3j00UclS1TVJ9LS0mx+PwCKjY11aJkzZvBrGxoqXUTYxPO/PU8I\nB/2eILE1q1IR3X+/ZImmGYmJNEtiD+x2KA7xJnYVFNA9MTFUKiWP9+RJfprekZDbaaTpJ00J4aDz\nOeIljazR6SxOMTBQFpO3JSoq6hbHsGrVKscXXAdoNBoK42uImrf27dtTpZQIhrugvNxyTVfIqKw2\n88+ZhHDQ/879T5ohQeAS3JMmSfLU+wsLqVN0NJU5MMdecYjV8GpSEk1LSJBm5OOP+anaKW0cUBAE\ncvvYjRAOOpV1SlqdrBgzxvIQXb8um9kaEQSB/v73v9/iHD///PN6pXJzM+Xl5TRgwIBbftfevXtr\npfwdOyzXUQ7VIxOTf59MCAetPLlSurHly/msskol2kSBVkuB0dF0UMLY492gOMRqqDDOOv8iNeDz\noYdku1O9P/MmhIOOZxyXbMvEuXOWh+nVV2Uze0dUKlW1TqRz58506dKl2quISDZt2nRL3QHQ8uXL\na60OOh1RcDC/dn37ytdFJiIat2UcIRy09sxa6cYOHeLjhmlpok0IgkATL1ygN+X0+DWgOMQaOFla\nSu2iouh6lUQBU5PHkfB2NNFhWQdCOGhvinytD2vpeED6qn72YjAY6M0336zWwQCgb775pk7HHnNz\nc23UqW/edu3aVet12r/fcr3kLn7ouqGEcNCWC1ukG7twgahtW6LDhyWZWZOVRX1PnaIqg8g1WuxA\ncYi3YWFaGo04d470Ul6/Wq3l7pXhNd5/TX9COOjbUxIVPW9i925LNSUsGyOZvLw8GjNmTI0OCAB1\n796dFi5cSFdkikMzGAwUHR1NM2bMuG25AGjp0qV15qDVai4ZCPAcAClrn9yMIAjmXogs4V7Xr/Pw\nmo0bJZlJUqkcEoBdE4pDvA06g4GGnz1L4RKa+0RElJ3NT5u7uyz1mrFjBiEcNHffXFnsmRAEopYt\nLY5R4otdNg4dOmSTR11b26xZsyhXxjxZKZiGpAHeC5UTjV5jDro+eV2GhcBKS4n69CFatEiSmUq9\nnu4/dYpW18YgtxHFId6BnKoqCjh+nPZLHcw9f56fut7Sc5WJiJZELSGEg4b9KMPyezeRnGx5+ABJ\nMbQOxWAwUGRkJH344Yc0cuRIatmy5V07u6CgIBo/fjytWbOGrtfiA2cvkZGW6/CPf8g7VkhEVKAq\nMDvDayXi1Kpt0Gp5vuBrr0mu7EuJifT3ixdrddJNcYh3QURxMflFRUkTgCCypPeNHy9LvXYk7pAn\nt7QGliyxdYyNKIywzklLsz33jmionsg8Yb5/yqrKpBvU64mef57niUoMjVmbnU2hJ09SuYOXsbgZ\nxSHeJZ+lp9OgM2dII3Vgd/NmfgrnzJGlXimFKfK+4ath0CDLgyln0K/CreTl8XkI0/mOjnZMOcui\nl5mXxBW9oLw1BgPRtGlEI0YQSWw4nCkrozZRUZRYB3nxikO8SwyCQOPi42lmUpL0JvwXX/DT+J//\nyFI3tVZtdoqSMwpqwHpuCCDq3p0/AwrykJPDJ0pM5/fXXx1X1pAfhsimqkRE/A352mtEQ4dy7TkJ\nFGq1dE9MjPSQN5EoDtEOSnU66nXyJH2VmSnd2IIF/FS+9550W0ZMN/rYTWNls3kzlZW2jhHgmRIK\n4khIsD2XP/3kuLLyVfnyvzgFgfd2Bg7kkykS0BgMFHbuHL3lABWbu0VxiHZyVa0mv6go6ZMsRFyk\nDiB66y3ptoysP7/efNMXVzomAZ6ItxhNurim7aQME5SNhZ9+sj13jg5n3JawzXxf5JTnyGNUEIjm\nzeOR4RIVQwRBoJcSE2lcfLy0MDeJKA5RBEeLi6ldVBQlyRBsTYsXk5xjikREmaWZ5pt/64Wtstmt\niZdesn24J05UutPVUVBANHKk5Tx5eBA5OjFHEARzsPXgtYPlm7HV63l604ABsoQhfJGRQffFxtb6\nJMrNKA5RJGuzsyn4xAnKlSM61jSmOHWqdFtGBEGgwWsHE8JBgcsDSWdw/I126BDd0p3eIkPCQ31G\nr7eVXjNdZgfrPRCRZQF5hIM2x2+Wz7BWy2eTH3mEqEz67PTO/HwKOH5cehSHDCgOUQLvp6ZSv9On\n5XmrrVnDT23fvtJtWWFalkBObcU7YTAQTZhg6wS6dCE6caJWiq9z9HquZ2D9+728iGJiaq8OJpFh\nhINKq6SN7dmgVhM9+STfZHBgMSUl1CYqik5KHH+UC8UhSsA07jHq/HnSytFHtE5SlXEcRaPXUKvF\nrQjhoK7/7UpavQRVcDvJyyOaPNnWObi48JUWpIiTOxtZWRbBdOtt48baDVOybhUuiVoir/HCQqJh\nw3jrUIaLd6migvyiomiPE6mrKw5RIjqDgZ6Mj6cpCQlkkOPOj4+3PE1ShSVuYmfSTvPD8lOcA6cz\na6Cy0jK5br2FhvKudR0PH9lFXp5lNTvrrWNHPkFS2/MCeoOeBq0dZL6+eRV58hZw5QqPtXrrLVkG\niDMqK6ljdDT9lCPTBI9MKA5RBlR6PQ0+c4bmpqTIM2htyn0GiDIypNuz4uYH53pp3aWtxcTwdYJv\ndioA0ZQpfEzSGbJjSkqIvvvONkDdeps7l0jK+mRS2XJhi/l6ShZzrY6oKCJ/f0mr5FlToNVSj5Mn\nabnM97YcKA5RJoq0Wup76hT9OzVVHqeoVlueuN27pdu7ifgb8eaHaMgPQ2pl0uVOXLxI9PLL1Tsd\ngMjNjWjUKKJPPiGKiJAc9mZGEIgyM3kw9Ny5XJegpjp07szHBx20pIddJOYnmq9hr296OWYoZMsW\nnjojk+BtkVZLDxqfE2dEcYgykq/RUO/YWFpw9ap8Rh98kJ/yt9+Wz6YVq0+tNj9UH0d87JAypHDt\nGp+EDwur2Uk5YmvVig+V/fqr8wWel1WVmbUxEQ5KKXSAcKpez8cEgoKI4uJkMVms1VL/06fl60k5\nADEOkfHj6g7GGNV1HWoiT6vF8PPnMdXPD/M7dZLH6KefAh98AHTqBKSlAYzJY9eIQAIm/jwRfyT/\nAQD47snv8OqDr8pahiMwGIArV4DkZCA1lZ+a3FwgLw8oLwcqKwGNBnB1BdzdAS8voFUrwNcX6NgR\nCAoCQkKAXr2Atm1lP62yo9FrMHLjSBy7dgwA8Ptzv2Ni6ET5C8rPB154ARAEYOtWfnIkUqbXY2Rc\nHAa1bIkVwcFgTnqyGWMgIrsqpzjEO5Cj0WD4+fOY4e+Pf8vlFI8eBcLC+Odr1/jTLDMV2goM/mEw\nLuZdBAD8/OzPeK7Xc7KXo2AfekGPZ395FjuTdwIAFj26CPOHzndMYbGxwN/+xh3iwoWAm5tkk+V6\nPUbFx+NBLy985cTOEBDnEJUu812QVVVFPU+epPlyjSkS8dF9U5/uW3kVs63JV+VTmyVtzF2yr09+\n7bCyFGqmQlNhXp8b4aB3D77ruK6mIPBJk7ZtiX6XTyCkwNhNfj052Wm7ydZA6TI7jgKtFqPi4zHE\n2xtfBgfDRa434/PPAz//DHTpAqSkAC4u8ti9iQJ1AR764SGkFKUAAN4c9CaWjlwKF+aY8hQ42eXZ\nGPD9AGSVZwEA3h3yLj4b8ZnjWlaXL/Oxg6Ag4MAB/lkGsjQajIyLw1O+vvisSxenbhmaULrMDqZU\nr8cT8fHo5umJtSEhcJXrpjh0CHj8cf75/HngvvvksVsNap0a47aMw19pfwEAQnxDcGjqIQS2DHRY\nmY2RHUk7MPFny5jgmifX4JUHX3Fsoe+8Ayxdyj+XlADe3rKYTa2sxONxcXi1fXv5ho1qAcUh1gIq\ngwFPX7yIZi4u2NyzJzxdXeUxXF4OtGzJPz/9NLBtmzx2a4CI8Gnkp/jwyIfmfT+M+wEv9n2xXrz9\nnRGVVoWX/3wZWy9uNe+LfDESDwc97NiCS0r4DBMAzJ8PLFokm+kLFRUYEx+PDzp1wmsdOshmtzZQ\nHGItoRUEvJKcjCS1Gn/eey/aeXjIZ3zlSmD2bP45MRHo0UM+2zVwKusUBq4dCAK/DgFeAdg7aS/6\n+PVxeNn1HSLC6tOr8c89/zTve6r7U9j09CZ4NfFyfAUWL+ZOEOBDLsHBspk+UFSEyYmJ+Co4GM/7\n+clmt7ZQHGItQkQIT0/Hxtxc7OnTByGenvIZLy4GWrfmn597jodL1EKrzSAYsPDYQnx09CPzvkGB\ng/Dj+B/Ro43jHXN9gYiw9eJWTN4+GQIJAAA3Fzfsm7QPI7qMqJ1KZGZaohMmTwZ++klW82uzs/F+\nWhp+7dULw3x8ZLVdWygOsQ5Yl5OD965exa+9emGo3DfO0qV8XAgA9u4FRo+W1/5tyFPl4bVdr2F7\n0nbzvp5te+Kbsd8grHNYrdXDWdAatFgZuxLzDsyz2b9s5DLMGTSndienXn4Z+OEH/jktDejcWTbT\nAhF3hHl52NOnD7rL+aKvZRSHWEeYuhYL77kHMwMC5DWuVvMZ6Nxc/r24GKjlN3ahuhBz9s/BxviN\nNvtnD5iN94e+D78W9a87dTdEZ0Zj3oF5OHH9hM3+NU+uwUsPvFT7M/T791teiuHhwIIFspqv0Ovx\nYnIysjUa7OzdG23kHAqqAxSHWIdcVqsx4eJFDPP2xlfdusFD7vCZmBjgoYf455kzgdWr6yQdwyAY\nsO7cOszdPxcqncrmb1Pvm4q3H3obvdv1rvV6SUUv6LEtYRuWRC/B2ZyzNn8b3mk4lj6+FP079K+b\nymVnA6YJDR8fID1dthlkE1fUaky8dAn9vbywqls3NJVrsrAOURxiHVOm12NKYiKK9Hr81qsX/Bzx\nhp07F/jyS/75m2+AWbPkL8MOiiqLsOrUKnwW9RnUOvUtf3+x74t44d4XMKzTMHi4OkeLo6iyCNsT\nt2N93HpEZkTe8vd+Af3wzkPv4OnQp+HqUoeOQa8HHnuMZzYBwJkzwAMPyF7M3sJCTEtKwkedO+O1\ngIAGE2WgOEQnQCDCx+np+OHGDWwODZV/XBHgSb3DhwMnT/LvBw5Y4hjrGINgwOG0w1h3fp1N+MnN\nhLYJxcDAgRjYgW+92vWSzWEWqAtwJvsMTmefxumc04jOjEaeKq/a/+vfwh/T75uO6X2nI6SNPEHM\nkiHivYDvv+ffHfTiE4jwWUYGVmVl4eeePfFwPZ08qQnFIToRewoLMSMpCbMDAzE/KEi+zBZr8vL4\nTKNGw7+fOAEMHCh/OTJQqC7E3it78eflP7EnZQ8qtBW1Wn5om1CM7TYWY7uNxcNBDztNa9UGIh5C\n8/nn/PtLLwFr1jgkeylXq8WUxESoDQb80qsXApo0kb2MukZxiE7G9aoqvJCYiKYuLvgpNNQxXWgA\nuHAB6GMVM3jkiEU8op6gNWiRUZqBtOI0pJWkIa04DfnqfFRoK1ChrYBKp0KlrhLuru5o5tYMzdyb\noZlbM7Ru1hodW3ZEJ59OCPIOQmefzgjwCqhfKYlEwCefAP/5D/8+cSLwyy+yiDFUx4GiIkxPSsJL\n7dtjQadOcHNQumhdozhEJ0QvCPjo2jWsy8nBuh49MMoUX+gIEhOBnj0t33fvBsaOdVx5CtLQ6YBp\n04AtW/j3YcP48IeDWms6QcCHaWnYmJuLDaGheNSU3dJAURyiE/NXcTFeTErCE76+WNqlC1o46O0P\ngAsKduvGWx4A8N57XP6pgbYE6h1FRcCjjwJxcfz7lCk8rtDd3WFFXlKpMC0xEe08PPC/Hj3kza5y\nUsQ4ROUJqSVGtGqF+H79UGkwoO/p04gqKXFcYV27ckHQvDw+K7loEVdWHTAAKCx0XLkKt+fAAR4q\n5evLneGiRfw6bdjgMGeoFwR8npGB4efO4dWAAOyWO9W0gaG0EOuAHfn5eD0lBZP9/PBR587yCUTU\nhCBwle7PPrPsW78emDrVseUq8MD6V14BNm+27PvzT+DJJx1edLJajWmJiWju6oofQkLQuVkzh5fp\nTChd5npEvlaLf125gtiyMqzu3h0jHTm2aI211BjAW5O7dtWKiESjgYi/cF580bJv7FjuFGUOqK4O\njSDgi8xMrMjMxMf33IPXAgIcE+Xg5CgOsR6yt7AQs1JS8FDLllgeHOy4meib0ev5rKZ1q3HMGOC7\n7/giJQr2c+AAMG6cJQwKAH77DXjmmVqrQkRxMV5PSUG3Zs3wdbdu6NS0aa2V7WwoDrGeojIY8HF6\nOn68cQML77kHL7dvL5/47N2QmckH9k0ZEQAwdCgf6O/WrfbqUd8g4iozM2cCVVWW/cuWAXPm1Ook\nVp5Wi7dSU3G0pARfdeuG8W3a1FrZzoriEOs5cRUVmJ2SglK9Hl8GB+ORugiLyMoCXn+dj3OZaNqU\nP+SvvOLQmdB6QVERF1b4+mvb/fPn8xZ3LbfINIKAlVlZWJyRgWl+fgjv3NmxEQz1CMUhNgCICNvy\n8/H21au4v0ULLO3aFV3rajC8oIAHDP/3v7b7Bw4E3n2Xdw8bgAjAbSksBFas4MvHWtOmDc8imTCh\nTkQ2iAjbCwrwTmoqenh64ouuXdGjefNar4czozjEBkSVwYAV169jWWYmpvn7499BQWhb1+ESsbFc\nn9G6aw3wQOJ583i+bT2TmbfBYAD27ePjqNYtZBPz5gFvvQX4+9d+3aw4XVaGeampKNbrsaxrVzxe\nWxNy9QzFITZAbmg0+DQjA5tzczGrQwfMCwyEj7N0W8+f562nDRuq//uECXxN4DFjgBYtardut4MI\nuHgR+OMPvsXG3vp/vLy4g3/zTaBdu9qvYzXEVVRgQVoaTpeXY0HnzphR22PN9QzFITZg0isr8fG1\na9hVWIg3AwPxRocOzjdWpNPxsJ5Nm/h2Ox55BLj/fiA0lG89e1oWSpICEe/mJiZyR2fa0tNrPqZV\nK2DGDD5GKtOynXKSoFIhPD0dkaWleLdjR8wMCECzhj5UIQOKQ2wEJKvVWJCWhsMlJZgVEIDZgYHw\ndZYWY01UVXGpssOH+RYVVft18PEB+vfnMZjjxjml47uZc+XlWJKZib+Ki/FWx474Z4cOaK44wrtG\ncYiNiMtqNZZmZmJbfj6m+/vjzcBABNbnmDMirgydlMQnc4qK+FZczLfSUj7D7eFhu7VowSXQTFtg\nIO/u1lOICIdLSvB5RgYSVCrMCQzEqwEBaOlsvYF6gOIQGyFZGg1WZGbixxs38ISvL97o0AEDTOs7\nK9QbtIKAbfn5WJaZCZUg4J2OHTHJz0/+pSgaEYpDbMQU63RYd+MGvsnKQlt3d7zRoQOea9cOTZQH\nyqnJqKrCmuxsrM3JQa/mzfGvwEA85evbKFPt5EZxiAowEGFPYSFWZmXhfEUFpvv740V/fyVGzYkw\nEOFQcTG+zc7G0ZISTPbzw+sBAQhVrpGsKA5RwYZktRo/5OTgp9xcdG7aFC/6++Pv7drBWxmPqhMS\nVCqsv3EDG3Nz0d7DA68EBGBSu3bOFy3QQFAcokK16AUB+4uL8WNODg4VF2N069Z4rl07jGndWgnf\ncDDZGg1+y8/Hhhs3kKPVYrKfH6b6+6OX0hp0OIpDVLgjBVotthUU4Je8PJwpL8fo1q3xN6NzdLgu\nYyMhvbISvxcUYFt+PhLVajzh64vJfn54rFUrJZC6FlEcooJd5Gm12F5QgF/z8hBbXo7hPj4Y27o1\nxvr6NmrZKHsxEOFUWRn2FRVhV2Ehrmk0GO/ri2fatsWIVq2UmeI6QnGICqIp0ulwoKgIu4uKsK+o\nCH7u7hjj64sRPj4Y4u0NL2Wcy4YsjQaHiouxr6gIB4uKENCkCUa3bo0xrVtjqLd3g112p7+gAAAF\nvElEQVTJrj5R6w6RMfYsgHAAoQD6E9FZq7/NBzADgB7A/xHRgRpsKA7RyTAQ4XR5OfYUFiKipARn\nysvRq3lzDPfxwXAfHwxp2dJ58qlrASJCSmUlIktLEVlSgmOlpSjT6xHm44Mxvr4Y1apV/Q6Kb6DU\nhUMMASAA+A7AWyaHyBgLBbAZQH8AgQAOAehWnedTHGL1REREIMxJ1lauNBhwsqwMR0tLcbSkBLFl\nZQho0gT9vbzQz8sL/b28cL+XV62klTn6vBARMjUanCkvx9mKCpwpL8eZ8nI0cXHBUG9vDPPxwVBv\nb/Tw9HSqWEFnul+cBTEOUVI/iIiSjQXfXOh4AFuJSA8gnTGWAmAAgJNSymtMONMN3szVFWGtWiHM\nKL6gFwQkqdU4XV6O0+Xl2JqXhwsqFQI8PBDavDl6enqip/Hf7p6esob5yHVeBCJc12iQpFbbbBdU\nKrgCeNDLCw96eWFmQAAeaNECHZ28BehM90t9xlEDQx0AxFh9zzLuU2gAuLm4oHeLFujdogWmt28P\ngDvJq1VVuKRSIUGtxoGiIqzIzMSVykq4MYZOTZuis3ELatoUfu7uaOvhgbbu7mhn/CxHVg0RoVSv\nR4FOhwKdDoV6PW5otcisqkKGRoNMjQYZVVXI1GjQys0NPTw90cPTE6GenpjYpg16Nm+OAA8P3PqO\nV2gM3NEhMsYOAvCz3gWAALxPRNWoaCo0RtxcXNDd2CKcaLWfiFCk1+NaVRXSq6pwzbidKS9Hvk6H\nfK0WeUbn5cYYmru6ormLC//X1RWeLi5wZQwMvAt09cYNRMfFwUCESkHgm8GASkGAWhBQotfD08UF\nbdzd4evujjZGhxvUtCkeatkSQU2bIqhJE3Rs2lRRjlG4BVlmmRljRwDMsxpD/DcAIqLPjd/3AVhA\nRLd0mRljygCigoKCQ6jVMcSbsC74DwCbGGMrwLvKwQCqkSW2v8IKCgoKjkLSoA1jbAJjLBPAIAC7\nGGN7AYCIEgD8AiABwB4As5SpZAUFBWenzgOzFRQUFJyFOgunZ4w9yxi7yBgzMMYeuOlv8xljKYyx\nRMbYyLqqY13DGFvAGLvOGDtr3EbXdZ3qCsbYaMZYEmPsMmPs3bquj7PAGEtnjMUxxs4xxqodlmoM\nMMZ+YIzlMsbirfa1YowdYIwlM8b2M8a872SnLvOLLgCYCMBmTUtjUPdz4NkvYwCsqibOsTGxnIge\nMG776roydQFjzAXASgCjAPQC8A/GWI+6rZXTIAAII6L7iWhAXVemDvkR/P6w5t8ADhFRCIDDAObf\nyUidOUQiSiaiFNhOxgBWQd1ElA7AFNTdWGnMLwMTAwCkENE1ItIB2Ap+nyjw+6PRJ04TURSA4pt2\njwew3vh5PYAJd7LjjCeyA4BMq++NPaj7DcbYecbY2rtp8jdQbr4nrqNx3xPWEICDjLFTjLFX6roy\nTkY7IsoFACK6AeCOC2w7VMJECeq+M7c7RwBWAfiYiIgx9gmA5QBeqv1aKjgxQ4gohzHWFtwxJhpb\nSwq3cscZZIc6RCJ6XMRhWQA6Wn0PNO5rkNhxjr4H0FhfIlkAgqy+N+h7wh6IKMf4bz5jbDv48ILi\nEDm5jDE/IspljPkDyLvTAc7SZb45qPt5xpgHY+we3Caou6FjvIgmngZwsa7qUsecAhDMGOvEGPMA\n8Dz4fdKoYYx5MsZaGD83BzASjfceAbgfudmXTDd+ngZg550M1JnqJ2NsAoCvAbQBD+o+T0RjiCiB\nMWYK6tahcQd1L2GM9QWfSUwHMLNuq1M3EJGBMfYGgAPgL/EfiCixjqvlDPgB2G5Mf3UDsKkm3dGG\nDmNsM4AwAL6MsQwACwAsBvArY2wGgGvg0Su3t9N4fY2CgoKCLc7SZVZQUFCocxSHqKCgoGBEcYgK\nCgoKRhSHqKCgoGBEcYgKCgoKRhSHqKCgoGBEcYgKCgoKRhSHqKCgoGDk/wEvBCQDApwH0QAAAABJ\nRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "Noutputs = 1000\n", + "xs = np.zeros((sim.N, Noutputs))\n", + "ys = np.zeros((sim.N, Noutputs))\n", + "times = np.linspace(0.,50*2.*np.pi, Noutputs, endpoint=False)\n", + "for i, time in enumerate(times):\n", + " sim.integrate(time)\n", + " xs[:,i] = [sim.particles[j].x for j in range(sim.N)]\n", + " ys[:,i] = [sim.particles[j].y for j in range(sim.N)]\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig,ax = plt.subplots(figsize=(15,5))\n", + "for i in range(sim.N):\n", + " plt.plot(xs[i,:], ys[i,:])\n", + "ax.set_aspect('equal')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "At this stage, we might be interested in particles that remained within some semimajor axis range, particles that were in resonance with a particular planet, etc. Let's imagine a simple (albeit arbitrary) case where we only want to keep particles that had $x < 0$ at the end of the preliminary integration. Let's first print out the particle hashes and x positions." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hash\t\tx\n", + "c_uint(0)\t0.0\n", + "c_uint(1)\t0.9510565162930091\n", + "c_uint(2)\t-1.0717399536588612\n", + "c_uint(3)\t-2.2765351809117464\n", + "c_uint(4)\t0.15703926303973234\n", + "c_uint(5)\t-4.897155109586999\n", + "c_uint(6)\t-4.824394540939856\n", + "c_uint(7)\t-2.2862837234997975\n", + "c_uint(8)\t2.111033731282993\n", + "c_uint(9)\t5.290067270630363\n", + "c_uint(4066125545)\t-8.776421396714463\n" + ] + } + ], + "source": [ + "print(\"Hash\\t\\tx\")\n", + "for i in range(sim.N):\n", + " print(\"{0}\\t{1}\".format(sim.particles[i].hash, xs[i,-1]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that 4066125545 is the hash corresponding to the string \"Saturn\" we added above. We can use the `remove()` function to filter out particles. As an argument, we pass the corresponding index in the particles array." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of particles after cut = 7\n", + "Hashes of remaining particles = [c_uint(0), c_uint(2), c_uint(3), c_uint(5), c_uint(6), c_uint(7), c_uint(4066125545)]\n" + ] + } + ], + "source": [ + "for i in reversed(range(1,sim.N)):\n", + " if xs[i,-1] > 0:\n", + " sim.remove(i)\n", + "print(\"Number of particles after cut = {0}\".format(sim.N))\n", + "print(\"Hashes of remaining particles = {0}\".format([p.hash for p in sim.particles]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By default, the `remove()` function removes the `i`-th particle from the `particles` array, and shifts all particles with higher indices down by 1. This ensures that the original order in the `particles` array is preserved. Note that this is helpful for example if you use an integrator such as WHFast which uses Jacobi coordinates.\n", + "\n", + "By running through the planets in reverse order, we are guaranteed that when a particle with index `i` gets removed, the particle replacing it doesn't need to also be removed (we already checked it).\n", + "\n", + "If you have many particles and many removals (or you don't care about the ordering), you can save the reshuffling of all particles with higher indices with the flag `keep_sorted=0`:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of particles after cut = 6\n", + "Hashes of remaining particles = [c_uint(0), c_uint(2), c_uint(4066125545), c_uint(5), c_uint(6), c_uint(7)]\n" + ] + } + ], + "source": [ + "sim.remove(2, keep_sorted=0)\n", + "print(\"Number of particles after cut = {0}\".format(sim.N))\n", + "print(\"Hashes of remaining particles = {0}\".format([p.hash for p in sim.particles]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the order of the `particles` array has changed.\n", + "\n", + "Because in general particles can change positions in the `particles` array, a more robust way of referring to particles (rather than through their index) is through their hash, which won't change. You can pass `sim.remove` either the hash directly, or if you pass a string, it will be automatically converted to its corresponding hash:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of particles after cut = 5\n", + "Hashes of remaining particles = [c_uint(0), c_uint(2), c_uint(5), c_uint(6), c_uint(7)]\n" + ] + } + ], + "source": [ + "sim.remove(hash=\"Saturn\")\n", + "print(\"Number of particles after cut = {0}\".format(sim.N))\n", + "print(\"Hashes of remaining particles = {0}\".format([p.hash for p in sim.particles]))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "If you try to remove a particle with an invalid index or hash, an exception is thrown, which might be caught using the standard python syntax:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A runtime error occured: Particle to be removed not found in simulation. Did not remove particle.\n" + ] + } + ], + "source": [ + "try:\n", + " sim.remove(hash=\"Planet 9\")\n", + "except RuntimeError as e:\n", + " print(\"A runtime error occured: {0}\".format(e))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/rebound/source/docs/ipython_examples/Resonances_of_Jupiters_moons.ipynb b/rebound/source/docs/ipython_examples/Resonances_of_Jupiters_moons.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..a2834a557da99b161c8ac54a0fc7bb5899d98382 --- /dev/null +++ b/rebound/source/docs/ipython_examples/Resonances_of_Jupiters_moons.ipynb @@ -0,0 +1,496 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Resonances of Jupiter's moons, Io, Europa, and Ganymede\n", + "\n", + "Example provided by Deborah Lokhorst. In this example, the four Galilean moons of Jupiter are downloaded from HORIZONS and their orbits are integrated forwards in time. This is a well-known example of a 1:2:4 resonance (also called Laplace resonance) in orbiting bodies. We calculate the resonant arguments see them oscillate with time. We also perform a Fast Fourier Transform (FFT) on the x-position of Io, to look for the period of oscillations caused by the 2:1 resonance between Io and Europa." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us first import REBOUND, numpy and matplotlib. We then download the current coordinates for Jupiter and its moons from the NASA HORIZONS database. We work in units of AU, days and solar masses." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Jupiter'... \n", + "Found: Jupiter Barycenter (5) (chosen from query 'Jupiter')\n", + "Searching NASA Horizons for 'Io'... \n", + "Found: Io (501) (chosen from query 'Io')\n", + "Searching NASA Horizons for 'Europa'... \n", + "Found: Europa (502) (chosen from query 'Europa')\n", + "Searching NASA Horizons for 'Ganymede'... \n", + "Found: Ganymede (503) \n", + "Searching NASA Horizons for 'Callisto'... \n", + "Found: Callisto (504) \n" + ] + } + ], + "source": [ + "import rebound\n", + "import numpy as np\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "\n", + "sim = rebound.Simulation()\n", + "sim.units = ('AU', 'days', 'Msun')\n", + "\n", + "# We can add Jupiter and four of its moons by name, since REBOUND is linked to the HORIZONS database.\n", + "labels = [\"Jupiter\", \"Io\", \"Europa\",\"Ganymede\",\"Callisto\"]\n", + "sim.add(labels)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us now calculate the mean motions and periods of the inner three moons." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "n_i (in rad/days) = 3.547, 1.768, 0.879\n", + "P_i (in days) = 1.771, 3.553, 7.149\n" + ] + } + ], + "source": [ + "os = sim.orbits()\n", + "print(\"n_i (in rad/days) = %6.3f, %6.3f, %6.3f\" % (os[0].n,os[1].n,os[2].n))\n", + "print(\"P_i (in days) = %6.3f, %6.3f, %6.3f\" % (os[0].P,os[1].P,os[2].P))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "We can see that the mean motions of each moon are twice that of the moon inner to it and the periods of each moon are half that of the moon inner to it. This means we are close to a 4:2:1 resonance." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's move to the center of mass (COM) frame and plot the orbits of the four moons around Jupiter:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim.move_to_com()\n", + "op = rebound.OrbitPlot(sim, unitlabel=\"[AU]\", color=True, periastron=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that REBOUND automatically plots Jupiter as the central body in this frame, complete with a star symbol (not completely representative of this case, but it'll do).\n", + "\n", + "We can now start integrating the system forward in time. This example uses the symplectic Wisdom-Holman type `whfast` integrator since no close encounters are expected. The timestep is set to 5% of one of Io's orbits." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrator = \"whfast\"\n", + "sim.dt = 0.05 * os[0].P # 5% of Io's period\n", + "Nout = 100000 # number of points to display\n", + "tmax = 80*365.25 # let the simulation run for 80 years\n", + "Nmoons = 4" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similar to as was done in the Fourier analysis & resonances example, we set up several arrays to hold values as the simulation runs. This includes the positions of the moons, eccentricities, mean longitudes, and longitude of pericenters." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "x = np.zeros((Nmoons,Nout))\n", + "ecc = np.zeros((Nmoons,Nout))\n", + "longitude = np.zeros((Nmoons,Nout))\n", + "varpi = np.zeros((Nmoons,Nout))\n", + "\n", + "times = np.linspace(0.,tmax,Nout)\n", + "ps = sim.particles\n", + "\n", + "for i,time in enumerate(times):\n", + " sim.integrate(time)\n", + " # note we use integrate() with the default exact_finish_time=1, which changes the timestep near \n", + " # the outputs to match the output times we want. This is what we want for a Fourier spectrum, \n", + " # but technically breaks WHFast's symplectic nature. Not a big deal here.\n", + " os = sim.orbits()\n", + " for j in range(Nmoons):\n", + " x[j][i] = ps[j+1].x \n", + " ecc[j][i] = os[j].e\n", + " longitude[j][i] = os[j].l\n", + " varpi[j][i] = os[j].Omega + os[j].omega" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we plot the eccentricities as a function of time, one can see that they oscillate significantly for the three inner moons, which are in resonance with each other. Contrasting with these large oscillations, is the smaller oscillation of the outer Galilean moon, Callisto, which is shown for comparison. The three inner moons are in resonance, 1:2:4, but Callisto is not quite in resonance with them, though it is expected to migrate into resonance with them eventually.\n", + "\n", + "Also visible is the gradual change in eccentricity as a function of time: Callisto's mean eccentricity is decreasing and Ganymede's mean eccentricity is increasing. This is a secular change due to the interactions with the inner moons." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "plt.plot(times,ecc[0],label=labels[1])\n", + "plt.plot(times,ecc[1],label=labels[2])\n", + "plt.plot(times,ecc[2],label=labels[3])\n", + "plt.plot(times,ecc[3],label=labels[4])\n", + "ax.set_xlabel(\"Time (days)\")\n", + "ax.set_ylabel(\"Eccentricity\")\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can plot their x-locations as a function of time as well, and observe their relative motions around Jupiter." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Y7OysjL6XRAEo21lN/N6vR4AkJubi65du+LEiRNGr7/++stwM36vWrVqIT8/HxqN5rFiu3z5Mrp06YLGjRvjp59+QmJiIubNmwcARmUNHToU8fHxAEqGEQwePNgQd3h4OJKTk/HJJ5+goKAAffv2Re/evY3qycjIgJub22PFRkREZI6YGCAiIqJKFx4ejjNnzsDX1xcNGjQwetnZ2d33Pc899xwA4OzZs4ZtQUFB0Gq1SExMNGxLSkpCZmam4ffExETo9Xp89dVXaNGiBQICAnDjxo1y5b/66qu4cuUKYmNjcfbsWQwcONBov1qtRr9+/bB48WKsXr0aP/30EzIyMgz7T58+jbCwsCf5OIiIiMwKEwNERERU6UaOHImMjAy8/PLLOHLkCC5evIgtW7Zg8ODB0Ol0932Pm5sbwsPDsW/fPsO2wMBAdOzYEW+++SYOHTqExMREDB06FCqVynBMgwYNUFxcjDlz5uDSpUtYtmwZFi5cWK58Z2dn9OzZE++++y6ioqJQp04dw75Zs2bhhx9+wPnz5/Hnn39izZo18PT0NBqysHfvXkRFRZng0yEiIpIWEwNERERU6by9vbF//37odDpERUUhJCQE48aNg5OTE2SyB1+ODB06tNxyhHFxcfD29sa///1v9OzZE2+88YbRBIWhoaGYNWsWPvvsMzRq1AgrVqwwWmrwbkOGDIFGo8Hrr79utN3BwQGff/45mjRpgqZNm+Ly5cv47bffDLEeOHAAWVlZ5YYXEBERVUeCKIqi1EEQERER3U9BQQECAwOxevVqREZGmrz8ZcuW4e2338aNGzegVCor/L5+/fohNDQUH3zwgcljIiIiqmpcrpCIiIjMlkqlwtKlS3Hr1i2Tlpufn4+UlBTMnDkTb7755mMlBTQaDUJCQvD222+bNCYiIiKpsMcAERERWZyPPvoIM2bMQOvWrbFhwwbY29tLHRIREZFkmBggIiIiIiIismCcfJCIiIiIiIjIgjExQERERERERGTBmBggIiIiIiIismBMDBARERERERFZMCYGiIiIiIiIiCwYEwNEREREREREFoyJASIiIiIiIiILxsQAERERERERkQVjYoCIiIiIiIjIgv0/9KUGomNWW5gAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "plt.plot(times,x[0],label=labels[1])\n", + "plt.plot(times,x[1],label=labels[2])\n", + "plt.plot(times,x[2],label=labels[3])\n", + "plt.plot(times,x[3],label=labels[4])\n", + "ax.set_xlim(0,0.2*365.25)\n", + "ax.set_xlabel(\"Time (days)\")\n", + "ax.set_ylabel(\"x locations (AU)\")\n", + "ax.tick_params()\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Resonances are identified by looking at the resonant arguments, which are defined as: \n", + " $$ \\theta = (p + q)\\lambda_{\\rm out} - p \\lambda_{\\rm in} - q \\omega_{\\rm out/in}$$\n", + " where $\\lambda_{\\rm out}$ and $\\lambda_{\\rm in}$ are the mean longitudes of the outer and inner bodies, respectively,\n", + " and $\\omega_{\\rm out}$ is the longitude of pericenter of the outer/inner body.\n", + " The ratio of periods is defined as : $$P_{\\rm in}/P_{\\rm out} ~= p / (p + q)$$\n", + "\n", + " If the resonant argument, $\\theta$, oscillates but is constrained within some range of angles, then \n", + " there is a resonance between the inner and outer bodies. We call this libration of the angle $\\theta$. \n", + " The trick is to find what the values of q and p are. For our case, we can easily see that \n", + " there are two 2:1 resonances between the moons, so their resonant arguments would follow \n", + " the function:\n", + " $$\\theta = 2 \\lambda_{\\rm out} - \\lambda_{\\rm in} - \\omega_{\\rm out}$$\n", + "\n", + " To make the plotting easier, we can borrow this helper function that puts angles into 0 to 360 degrees \n", + " from another example (Fourier analysis & resonances), and define a new one that puts angles\n", + " into -180 to 180 degrees." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def zeroTo360(val):\n", + " while val < 0:\n", + " val += 2*np.pi\n", + " while val > 2*np.pi:\n", + " val -= 2*np.pi\n", + " return (val*180/np.pi)\n", + "\n", + "def min180To180(val):\n", + " while val < -np.pi:\n", + " val += 2*np.pi\n", + " while val > np.pi:\n", + " val -= 2*np.pi\n", + " return (val*180/np.pi)\n", + "\n", + "# We can calculate theta, the resonant argument of the 1:2 Io-Europa orbital resonance,\n", + "# which oscillates about 0 degrees:\n", + "theta = [min180To180(2.*longitude[1][i] - longitude[0][i] - varpi[0][i]) for i in range(Nout)]\n", + "\n", + "# There is also a secular resonance argument, corresponding to the difference in the longitude of perihelions:\n", + "# This angle oscillates around 180 degs, with a longer period component.\n", + "theta_sec = [zeroTo360(-varpi[1][i] + varpi[0][i]) for i in range(Nout)]\n", + "\n", + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "ax.plot(times,theta) \n", + "ax.plot(times,theta_sec) # secular resonance argument\n", + "ax.set_xlim([0,20.*365.25])\n", + "ax.set_ylim([-180,360.])\n", + "ax.set_xlabel(\"time (days)\")\n", + "ax.set_ylabel(r\"resonant argument $\\theta_{2:1}$\")\n", + "ax.plot([0,100],[180,180],'k--')\n", + "ax.plot([0,100],[0,0],'k--')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Io, Europa and Ganymede are in a Laplace 1:2:4 resonance,\n", + "which additionally has a longer period libration argument that depends on all three of \n", + "their mean longitudes, that appears slightly in the other resonant arguments:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "thetaL = [zeroTo360(-longitude[0][i] + 3.*longitude[1][i] - 2.*longitude[2][i]) for i in range(Nout)]\n", + "\n", + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "\n", + "ax.plot(times,thetaL)\n", + "ax.set_ylim([0,360.])\n", + "ax.set_xlabel(\"time (days)\")\n", + "ax.set_ylabel(r\"libration argument $\\theta_{2:1}$\")\n", + "ax.plot([0,200],[180,180],'k--')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For completeness, let's take a brief look at the Fourier transforms of the x-positions\n", + "of Io, and see if it has oscillations related to the MMR.\n", + "We are going to use the scipy Lomb-Scargle periodogram function, \n", + "which is good for non-uniform time series analysis. Therefore, \n", + "if we used the IAS15 integrator, which has adaptive timesteps, \n", + "this function would still work." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "from scipy import signal\n", + "Npts = 3000\n", + "\n", + "# look for periodicities with periods logarithmically spaced between 0.01 yrs and 100 yrs\n", + "logPmin = np.log10(0.001*365.25)\n", + "logPmax = np.log10(10.*365.25)\n", + "\n", + "# set up a logspaced array from 0.01 to 100 yrs\n", + "Ps = np.logspace(logPmin,logPmax,Npts)\n", + "# calculate an array of corresponding angular frequencies\n", + "ws = np.asarray([2*np.pi/P for P in Ps])\n", + "\n", + "# calculate the periogram (for Io) (using ws as the values for which to compute it)\n", + "periodogram = signal.lombscargle(times,x[0],ws)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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XKHPP/88bFnPnj1VUlJyxm2tWrVKP/3pTzVs2DBddtlliouL05EjR8LatGnTRkVFRXr11Vc1f/583XfffWH3WywWXXPNNfrFL36hTz75RE6nU//zP/9j3r9lyxY5HA5ddtllTT4OAABaCnoYAACAJl166aUaNWqURo8erZkzZ+qKK67Q4cOHtXz5cl1++eW69dZbz2o7CQkJeuihh/Tzn/9caWlp6tixo2bMmKGamhqNGTNGkvSTn/xEM2fO1M9//nM98MAD2rBhg+bPn9/ktocMGaIFCxaELXv00Ud17733qn///rrmmmv02muvaevWrbrkkkvMNt26ddNf/vIX9e/fX263Wz//+c/NIQQne+CBB3TbbbcpEAjonnvuMZeXlJRo+fLluvnmm5WRkaGSkhIdPnxYPXv2NNt8+OGHGjx4cKPbBQCgpaKHAQAAOCuvvvqqRo8erccff1zdu3dXUVGR1q1bp44dO57Tdp5//nkNHz5cd999t6688kp9+eWXevfdd5WamipJ6tixo/77v/9bixcvVt++fTV37lw999xzTW531KhR2rp1q3bs2GEuGzFihJ555hlNmDBB/fr10zfffKOHHnoobL0//vGPOnbsmK688krdfffd5lc+nqqwsFDt2rXTkCFDwiZXTEpK0sqVKzVs2DBdeumlevrppzVz5kzdcsstZps33nhDDz744Dk9TwAARJvFOPk7fwAAAL7Dfv7zn8vtduv3v/99s2+7urpa7du316uvvqof/vCHZ73eP/7xDz3++OPatGlT2DAPAABaOnoYAACAfxmTJ09Wp06dFAwGm22bwWBQhw4d0q9+9SulpKTojjvuOKf1PR6PXn31VcICAMB3Dj0MAAAAzmD37t3Kzc1Vhw4dNH/+fN10003RLgkAgIuCwAAAAAAAAERgSAIAAAAAAIhAYAAAAAAAACIQGAAAAAAAgAgEBgAAAAAAIAKBAQAAAAAAiEBgAAAAAAAAIhAYAAAAAACACAQGAAAAAAAgwv8P97bmuGSfiEcAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "\n", + "# Since the computed periodogram is unnormalized, taking the value A**2*N/4, \n", + "# we renormalize the results by applying these functions inversely to the output:\n", + "ax.set_xscale('log')\n", + "ax.set_xlim([10**logPmin,10**logPmax])\n", + "ax.set_xlabel(\"Period (days)\")\n", + "ax.set_ylabel(\"Power\")\n", + "ax.plot(Ps,np.sqrt(4*periodogram/Nout))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first spike at about 2 days is caused by the motion of Io around Jupiter\n", + "in its orbit.\n", + "\n", + "The other spikes, corresponding to oscillations with periods of around 1 year, \n", + "are caused by the MMR of the moons. The largest spike at ~1.3 years is the from \n", + "the 1:2 resonance of the two inner moons, Io and Europa." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/Rotations.ipynb b/rebound/source/docs/ipython_examples/Rotations.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..b9694b445a639d330ed819bf7d7cd44c471d2f5d --- /dev/null +++ b/rebound/source/docs/ipython_examples/Rotations.ipynb @@ -0,0 +1,525 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ba32220e", + "metadata": {}, + "source": [ + "# Rotations\n", + "\n", + "This gives an introduction to REBOUND's built-in rotations framework, with a focus on rotations typically encountered in celestial mechanics.\n", + "\n", + "REBOUND has a general `Rotation` class. This is implemented used quaternions. However, you don't need to understand anything about quaternions in order to use it. Let's create a rotation that rotates counterclockwise by 45 degrees around the z axis [0,0,1]" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "e12cb8f6", + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "\n", + "rot = rebound.Rotation(angle=np.radians(45), axis=[0,0,1])" + ] + }, + { + "cell_type": "markdown", + "id": "178b4821", + "metadata": {}, + "source": [ + "Alternatively, you can create the same rotation with the shorthand:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "127d5b0f", + "metadata": {}, + "outputs": [], + "source": [ + "rot = rebound.Rotation(angle=np.radians(45), axis=\"z\")" + ] + }, + { + "cell_type": "markdown", + "id": "e34d9a17", + "metadata": {}, + "source": [ + "A rotation can act on various objects. For example, we can act on three vector:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "b060b7d4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[0.0, 1.4142135623730951, 1.0]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "result = rot*[1,1,1]\n", + "result" + ] + }, + { + "cell_type": "markdown", + "id": "9b8ebb1e", + "metadata": {}, + "source": [ + "We can also get the inverse of any rotation object and undo the previous rotation:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c35dd4cd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[1.0, 1.0, 1.0]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rot.inverse()*result" + ] + }, + { + "cell_type": "markdown", + "id": "63020a64", + "metadata": {}, + "source": [ + "We can chain rotations. Here we first rotate around z axis by 90 degrees, then around the x axis by 90 degrees. Note that the order matters, just like when multiplying matricies." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "e9308e6a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[-0.9999999999999996, -0.9999999999999998, 1.0000000000000004]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "r1 = rebound.Rotation(angle=np.radians(90), axis=\"z\")\n", + "r2 = rebound.Rotation(angle=np.radians(90), axis=\"x\")\n", + "r2*r1*[1,1,1]" + ] + }, + { + "cell_type": "markdown", + "id": "3f09f64f", + "metadata": {}, + "source": [ + "# Orbits in three dimensions\n", + "The `Rotation` class offers constructors that are useful when working with orbital elements. \n", + "Suppose we create a simulation with a planet on an inclined orbit, and one in the xy plane:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "b27861bd", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "Omega = np.radians(10) # Ascending node\n", + "inc = np.radians(20) # Inclination\n", + "omega = np.radians(30) # Longitude of periastron\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1) # central object\n", + "sim.add(a=1, e=0.01, Omega=Omega, inc=inc, omega=omega) # inclined orbit\n", + "sim.add(a=1, e=0.01) # orbit in the xy plane, periastron on the x axis\n", + "rebound.OrbitPlotSet(sim);" + ] + }, + { + "cell_type": "markdown", + "id": "d24c647e", + "metadata": {}, + "source": [ + "We can create a rotation that moves the orbit in the xy plane into the orbital plane defined by Omega, inc, and omega:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "0a11f675", + "metadata": {}, + "outputs": [], + "source": [ + "rot = rebound.Rotation.orbit(Omega=Omega, inc=inc, omega=omega)" + ] + }, + { + "cell_type": "markdown", + "id": "2f033e3b", + "metadata": {}, + "source": [ + "After applying this rotation to the second planet, the two planets are on identical inclined orbits (the plot only shows one planet because the particles are at the same location):" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "7d686778", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim.particles[2].rotate(rot)\n", + "rebound.OrbitPlotSet(sim);" + ] + }, + { + "cell_type": "markdown", + "id": "f553db19", + "metadata": {}, + "source": [ + "# Rotating to a reference frame align with a planet's orbit\n", + "\n", + "Let's construct a simplified Solar System to demonstrate a different use case of this constructor." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "f9d937a2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Sun'... \n", + "Found: Sun (10) \n", + "Searching NASA Horizons for 'Jupiter'... \n", + "Found: Jupiter Barycenter (5) (chosen from query 'Jupiter')\n", + "Searching NASA Horizons for 'Saturn'... \n", + "Found: Saturn Barycenter (6) (chosen from query 'Saturn')\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "date = \"2023-01-01 00:00\"\n", + "sim.add('Sun')\n", + "sim.add('Jupiter')\n", + "sim.add('Saturn', hash='Saturn')\n", + "sim.move_to_com()\n", + "ps = sim.particles" + ] + }, + { + "cell_type": "markdown", + "id": "5f99aae1", + "metadata": {}, + "source": [ + "The reference axes used in the above simulation uses the ecliptic as a reference plane (this is what the NASA Horions query returns by default).\n", + "\n", + "Suppose we want to construct a rotation from these reference axes to reference axes aligned with Saturn's orbit (where the new z direction is along the orbit normal, and x direction is toward pericenter). This is the inverse of what the `to_orbital` constructor returns:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "71dd8e16", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[-5.755225420998638, -7.967620173574598, -5.440092820663267e-15]" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rot = rebound.Rotation.orbit(Omega=ps['Saturn'].Omega, inc=ps['Saturn'].inc, omega=ps['Saturn'].omega)\n", + "\n", + "rot.inverse() * ps['Saturn'].xyz" + ] + }, + { + "cell_type": "markdown", + "id": "bedf73d8", + "metadata": {}, + "source": [ + "When we act our rotation on Saturn's xyz position (in our original coordinate system, in AU), we see we get a vector with vanishing z component (good since Saturn should be in its own orbital plane!), and that Saturn is a bit past apocenter (both x and y are negative).\n", + "\n", + "If we want to get the direction toward Saturn's pericenter in our ecliptic coordinate system, we can use" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "89779f01", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[-0.03324223170028384, 0.9993183366324941, -0.016056652878168994]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rot*[1,0,0]" + ] + }, + { + "cell_type": "markdown", + "id": "09739283", + "metadata": {}, + "source": [ + "# Invariable plane" + ] + }, + { + "cell_type": "markdown", + "id": "4d2be7c4", + "metadata": {}, + "source": [ + "Now say we realize that the ecliptic plane should have very little to do with the dynamics of Saturn and Jupiter, and we want to rotate into the invariable plane, where the z direction points along the total angular momentum. We can do:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "0c3c39ef", + "metadata": {}, + "outputs": [], + "source": [ + "rot = rebound.Rotation.to_new_axes(newz=sim.angular_momentum())" + ] + }, + { + "cell_type": "markdown", + "id": "88919802", + "metadata": {}, + "source": [ + "We could also have passed a `newx` vector perpendicular to newz in order to specify the new x direction. If we don't, it defaults sensibly to the line of nodes at the intersection between our reference plane (here the ecliptic) and our new reference plane (perpendicular to newz, here the invariable plane)--specifically the $z \\times newz$ direction.\n", + "\n", + "We can now, e.g., get Saturn's position (or any other vector) in our new coordinate system:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "bf693526", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[-7.549431805655818, -6.293586822293665, -0.04934773414991059]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rot*ps['Saturn'].xyz" + ] + }, + { + "cell_type": "markdown", + "id": "f020014f", + "metadata": {}, + "source": [ + "However, we might also want to rotate our entire Simulation into this new coordinate system, so the z axis is always a physically meaningful direction. We can do that simply with:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "ce9d96b3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[8.371971695560277e-05, 2.4357882968012634e-05, 0.0030550235653400053]\n", + "[0.0, -3.3881317890172014e-20, 0.0030562675410134763]\n" + ] + } + ], + "source": [ + "print(sim.angular_momentum())\n", + "sim.rotate(rot)\n", + "print(sim.angular_momentum())" + ] + }, + { + "cell_type": "markdown", + "id": "97edf2b3", + "metadata": {}, + "source": [ + "We see that before rotating our Simulation, the angular momentum was almost, but not quite along the z direction (the ecliptic is of course close to the invariable plane!), but after the rotation, the x and y components are at the level of the machine precision." + ] + }, + { + "cell_type": "markdown", + "id": "1a30caee", + "metadata": {}, + "source": [ + "# Technical Detail: Copies vs in-place rotations\n", + "\n", + "There are two ways to apply a rotation to a `Particle`, a `Vec3D`, or a `Simulation`. \n", + "\n", + "We can act (using the multiply operator `*`) a `Rotation` on ab object. As a general rule, `Rotation` * `object` always returns a copy. For example:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "11d99b73", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(8.148225160959612, -7.549431805655818)" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ecliptic_saturn = rot.inverse() * sim.particles['Saturn']\n", + "ecliptic_saturn.x, sim.particles['Saturn'].x" + ] + }, + { + "cell_type": "markdown", + "id": "2ac2f7a9", + "metadata": {}, + "source": [ + "In the above case, the `ecliptic_saturn` particle is a copy. The original Saturn particle in the Simulation is unchanged. \n", + "\n", + "On the other hand, if we call the `rotate` method on a REBOUND object such as `Vec3d`, `Particle`, or `Simulation`. then the object is updated in-place. For example, if we wanted to update Saturn with a rotated position (and velocity) in our simulation, we could do:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "e9a1ccd1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(8.148225160959612, 8.148225160959612)" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles['Saturn'].rotate(rot.inverse())\n", + "ecliptic_saturn.x, sim.particles['Saturn'].x" + ] + }, + { + "cell_type": "markdown", + "id": "2ac88909", + "metadata": {}, + "source": [ + "Now we see that the two yield the same x value, since we've actually updated the positions of the particle in our simulation. \n", + "\n", + "In most use cases, we probably want to rotate a Simulation in place with `sim.rotate(rot)`. Note that if we do `rot*sim` we get back a shallow copy that doesn't keep any of our function pointers (see `sim.copy()`)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8f57cb68", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/rebound/source/docs/ipython_examples/SaturnsRings.ipynb b/rebound/source/docs/ipython_examples/SaturnsRings.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..275f2aeeebc53f3901597eac4e6e6a10376cab78 --- /dev/null +++ b/rebound/source/docs/ipython_examples/SaturnsRings.ipynb @@ -0,0 +1,369 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Simulating Saturn's rings\n", + "\n", + "In this example, we will simulate a small patch of Saturn's rings. The simulation is similar to the C example in `examples/shearing_sheet`.\n", + "\n", + "We first import REBOUND and numpy, then create an instance of the Simulation class to work with." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "sim = rebound.Simulation()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next up, setting up several constants. We will be simulating a shearing sheet, a box with shear-periodic boundary conditions. This is a local approximation which makes the approximation that the epicyclic frequency $\\Omega$ is the same for all particles. \n", + "\n", + "We work with a value of $\\Omega$ that corresponds to a semi-major axis of $a\\sim 130000$ km. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "OMEGA = 0.00013143527 # [1/s]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we need to let REBOUND know about $\\Omega$. Within REBOUND $\\Omega$ is used by the integrator SEI, the Symplectic Epicycle Integrator (see Rein and Tremaine 2012)." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "sim.ri_sei.OMEGA = OMEGA" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let us define the surface density of the ring and the particle density." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "surface_density = 400. # kg/m^2\n", + "particle_density = 400. # kg/m^3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The gravitational constant in SI units is" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "sim.G = 6.67428e-11 # N m^2 / kg^2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We choose a timestep of 1/1000th of the orbital period." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "sim.dt = 1e-3*2.*np.pi/OMEGA" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We enable gravitational softening to smear out any potential numerical artifacts at very small scales." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "sim.softening = 0.2 # [m]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next up, we configure the simulation box. By default, REBOUND used no boundary conditions, but here we have shear periodic boundaries and a finite simulation domain, so we need to let REBOUND know about the simulation boxsize (note that it is significantly smaller than $a$, so our local approximation is very good. In this example we'll work in SI units." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "boxsize = 200. # [m]\n", + "sim.configure_box(boxsize)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Because we have shear-periodic boundary conditions, we use ghost boxes to simulate the gravity of neighbouring ring patches. The more ghostboxes we use, the smoother the gravitational force across the boundary. Here, two layers of ghost boxes in the x and y direction are enough (this is a total of 24 ghost boxes). We don't need ghost boxes in the z direction because a ring is a two-dimensional system." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "sim.N_ghost_x = 2\n", + "sim.N_ghost_y = 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now setup which REBOUND modules we want to use for our simulation. Besides the SEI integrator and the shear-periodic boundary conditions mentioned above, we select the tree modules for both gravity and collisions. This speeds up the code from $O(N^2)$ to $O(N \\log(N))$ for large numbers of particles $N$." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrator = \"sei\"\n", + "sim.boundary = \"shear\"\n", + "sim.gravity = \"tree\"\n", + "sim.collision = \"tree\"\n", + "sim.collision_resolve = \"hardsphere\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When two ring particles collide, they loose energy during their bounce. We here use a velocity dependent Bridges et al. coefficient of restitution. It is implemented as a python function (a C implementation would be faster!). We let REBOUND know which function we want to use by setting the `coefficient_of_restitution` function pointer in the simulation instance. " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def cor_bridges(r, v):\n", + " eps = 0.32*pow(abs(v)*100.,-0.234)\n", + " if eps>1.:\n", + " eps=1.\n", + " if eps<0.:\n", + " eps=0.\n", + " return eps\n", + "sim.coefficient_of_restitution = cor_bridges" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To initialize the particles, we will draw random numbers from a power law distribution." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "def powerlaw(slope, min_v, max_v):\n", + " y = np.random.uniform()\n", + " pow_max = pow(max_v, slope+1.)\n", + " pow_min = pow(min_v, slope+1.)\n", + " return pow((pow_max-pow_min)*y + pow_min, 1./(slope+1.))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can finally add particles to REBOUND. Note that we initialize particles so that they have initially no velocity relative to the mean shear flow." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "total_mass = 0.\n", + "while total_mass < surface_density*(boxsize**2):\n", + " radius = powerlaw(slope=-3, min_v=1, max_v=4) # [m] \n", + " mass = particle_density*4./3.*np.pi*(radius**3)\n", + " x = np.random.uniform(low=-boxsize/2., high=boxsize/2.)\n", + " sim.add(\n", + " m=mass,\n", + " r=radius,\n", + " x=x,\n", + " y=np.random.uniform(low=-boxsize/2., high=boxsize/2.),\n", + " z=np.random.normal(),\n", + " vx = 0.,\n", + " vy = -3./2.*x*OMEGA, \n", + " vz = 0.)\n", + " total_mass += mass" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To see what is going on in our simulation, we create a function to plot the current positions of particles and call it once to visualise the initial conditions." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.patches as patches\n", + "def plotParticles(sim):\n", + " fig = plt.figure(figsize=(8,8))\n", + " ax = plt.subplot(111,aspect='equal')\n", + " ax.set_ylabel(\"radial coordinate [m]\")\n", + " ax.set_xlabel(\"azimuthal coordinate [m]\")\n", + " ax.set_ylim(-boxsize/2.,boxsize/2.)\n", + " ax.set_xlim(-boxsize/2.,boxsize/2.)\n", + "\n", + " for i, p in enumerate(sim.particles):\n", + " circ = patches.Circle((p.y, p.x), p.r, facecolor='darkgray', edgecolor='black')\n", + " ax.add_patch(circ)\n", + "\n", + "plotParticles(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now integrate for one orbital period $P=2\\pi/\\Omega$." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrate(2.*np.pi/OMEGA)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The integration takes a few seconds, then we can visualise the final particle positions." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plotParticles(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Within just one orbital period, one can already see structure appearing on a scale close to the Toomre critical wavelength. The simulation will eventually settle down in a turbulent state where clumps constantly form, but then get destroyed again after a short time. Permanent clumping cannot occur because particles are inside the Roche limit." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.2" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/Simulationarchive.ipynb b/rebound/source/docs/ipython_examples/Simulationarchive.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..8ef7d75cdf5efb2dbb91c7cd6539d7e073204fdf --- /dev/null +++ b/rebound/source/docs/ipython_examples/Simulationarchive.ipynb @@ -0,0 +1,489 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Simulationarchive\n", + "A Simulationarchive (Rein & Tamayo 2017) is useful when one runs long simulations. With the Simulationarchive, one can easily take snapshots of the simulation, and then later restart and analyze it. Since Spring 2018, the default Simulationarchive version is 2. Version 2 works with all integrators and very few restrictions that apply (you need to be careful when using function pointers)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To illustrate the Simulationarchive, let us setup a simulation of a two planet system and turn on the Simulationarchive. This is done with the following code:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:43.938569Z", + "start_time": "2023-09-24T21:28:43.859966Z" + } + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-3, a=1.)\n", + "sim.add(m=1e-3, a=1.9)\n", + "sim.move_to_com()\n", + "sim.dt = sim.particles[1].P*0.05 # timestep is 5% of orbital period\n", + "sim.integrator = \"whfast\"\n", + "sim.save_to_file(\"archive.bin\",interval=1e3,delete_file=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first argument of `save_to_file` is the path and name of the binary file to write to, the `interval` argument specifies the interval at which snapshots of the simulation are saved (in whichever code units you work). The smaller the interval, the larger the file size, but the faster the access. The `delete_file=True` flag makes REBOUND delete the file if it already exists." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now integrate the simulation forward in time. This should take a few seconds." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.235981Z", + "start_time": "2023-09-24T21:28:43.946068Z" + } + }, + "outputs": [], + "source": [ + "sim.integrate(1e6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now delete the simulation. Note that we could also have run the simulation using the C version of REBOUND. This might be useful if one wants to run a long simulation on a cluster and doesn't want to bother with installing python. In C, one can initialize the Simulationarchive with (you need to delete the file manually if it already exists):\n", + "```c\n", + "struct reb_simulation* sim = reb_simulation_create();\n", + "...\n", + "reb_simulation_save_to_file_interval(\"archive.bin\",1e3);\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.238423Z", + "start_time": "2023-09-24T21:28:45.236970Z" + } + }, + "outputs": [], + "source": [ + "del sim" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now look at the Simulationarchive. You could do this at a later time, on a different computer, with a different version of REBOUND and it will still work. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.241941Z", + "start_time": "2023-09-24T21:28:45.239853Z" + } + }, + "outputs": [], + "source": [ + "sa = rebound.Simulationarchive(\"archive.bin\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's first print the number of snapshots and the time of the first and last snapshot in the archive:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.244521Z", + "start_time": "2023-09-24T21:28:45.242817Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of snapshots: 1001\n", + "Time of first and last snapshot: 0.0, 1000000.0\n" + ] + } + ], + "source": [ + "print(\"Number of snapshots: %d\" % len(sa))\n", + "print(\"Time of first and last snapshot: %.1f, %.1f\" % (sa.tmin, sa.tmax))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can access each snapshot by indexing the Simulationarchive. This returns a REBOUND simulation object that corresponds to that time. Everything is accurate down to the last bit. That means one could use this simulation object and restart the simulation, the final coordinates of the planets will be exactly the same as in the original simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.247607Z", + "start_time": "2023-09-24T21:28:45.245577Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "500000.311856871 \n" + ] + } + ], + "source": [ + "sim = sa[500]\n", + "print(sim.t, sim.particles[1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One can also step through every simulation in the archive using the generator functionality, for example to store the eccentricity of the inner planet as a function of time:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.279895Z", + "start_time": "2023-09-24T21:28:45.249146Z" + } + }, + "outputs": [], + "source": [ + "eccentricities = np.zeros(len(sa))\n", + "for i, sim in enumerate(sa):\n", + " eccentricities[i] = sim.particles[1].e" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we want to access a simulation at a specific time, such as in-between snapshots, one can use the `getSimulation()` function:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.283178Z", + "start_time": "2023-09-24T21:28:45.280710Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12000.226030496653\n" + ] + } + ], + "source": [ + "sim = sa.getSimulation(12345.6)\n", + "print(sim.t)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By default, the function returns a simulation that corresponds to the snapshot that is nearby. To get closer to the requested time, one can use the `mode` attribute:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.287145Z", + "start_time": "2023-09-24T21:28:45.284245Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12345.628564279925\n" + ] + } + ], + "source": [ + "sim = sa.getSimulation(12345.6, mode=\"close\")\n", + "print(sim.t)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the above code, REBOUND looks up a nearby snapshot and then integrates the simulation forward in time to get close to the request time. As one can see, with `mode=\"close\"`, one gets a simulation very close to the request time, but it is still slightly off. This is because `WHFast` uses a fixed timestep. If we want to reach the requested time exactly, we have to change the timestep. Changing a timestep in a symplectic integrator can cause problems, but if one really wants to get a simulation object at the exact time (for example to match observations), then the `mode=\"exact\"` flag does that." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.291778Z", + "start_time": "2023-09-24T21:28:45.289450Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12345.6\n" + ] + } + ], + "source": [ + "sim = sa.getSimulation(12345.6, mode=\"exact\")\n", + "print(sim.t)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Requesting a simulation at any time between `tmin` and `tmax` only takes a few seconds at most (keep in mind, REBOUND integrates the simulation from the nearest snapshot to the requested time). To analyze a large simulation, you might want to do this in parallel. We will use the multiprocess module. If the following code throws you an ImportError, install the module with `pip install multiprocess`. In the following example, we calculate the distance between the two planets at 432 times in the interval $[t_{min},t_{max}]$." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.375397Z", + "start_time": "2023-09-24T21:28:45.292750Z" + } + }, + "outputs": [], + "source": [ + "from multiprocess import Pool\n", + "import rebound\n", + "def thread_init(*rest):\n", + " global sat\n", + " sat = rebound.Simulationarchive(\"archive.bin\")\n", + "def analyze(t):\n", + " sim = sat.getSimulation(t,mode=\"close\")\n", + " d12 = sim.particles[1] - sim.particles[2]\n", + " return np.sqrt(d12.x*d12.x+d12.y*d12.y+d12.z*d12.z)\n", + "with Pool(initializer=thread_init) as pool:\n", + " times = np.linspace(sa.tmin, sa.tmax, 432)\n", + " distances = pool.map(analyze,times)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that in the above example, we use an initializer function so that each thread has its own Simulationarchive." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Note\n", + "\n", + "Since Spring 2018, the `Simulationarchive` object always returns a new `Simulation` object when you request a simulation from the archive. In earlier versions, it kept a reference to one `Simulation` object internally, updated it when a new time was requested, and then returned a reference." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Manual Snapshots\n", + "\n", + "With the new version of the simulationarchive you can also add snapshots manually, giving you further control beyond the automated options used above. This can be useful to save snapshots when particular conditions like collisions or ejections occur. Here we give an example that saves logarithmically spaced snapshots" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.379855Z", + "start_time": "2023-09-24T21:28:45.376748Z" + } + }, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-3, a=1.)\n", + "sim.add(m=1e-3, a=1.9)\n", + "sim.move_to_com()\n", + "sim.dt = sim.particles[1].P*0.05 # timestep is 5% of orbital period\n", + "sim.integrator = \"whfast\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now iterate over an array of logarithmically spaced times, and save a snapshot after each using the manual `save_to_file` function. If no file with that filename exists, it will create a new one first. Note that if it doesn't already exist, it will always *append* a snapshot to the file, so you need to delete any existing file when starting a new simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.646365Z", + "start_time": "2023-09-24T21:28:45.380871Z" + } + }, + "outputs": [], + "source": [ + "filename = 'testsa.bin'\n", + "\n", + "# remove files if it exists\n", + "try:\n", + " import os\n", + " os.remove(filename) \n", + "except:\n", + " pass\n", + "\n", + "Nout = 1000\n", + "times = np.logspace(0, 4, Nout)*sim.particles[1].P\n", + "for i, time in enumerate(times):\n", + " sim.integrate(time, exact_finish_time=0) # need outputs on the nearest WHFast timesteps to the times we pass to get symplectic behavior\n", + " sim.save_to_file(filename)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now plot the energy error at each of the snapshots" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:46.199232Z", + "start_time": "2023-09-24T21:28:45.647329Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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s5AgRBCEa3z44YeQJAlHjhxx/dqSJEGSJHTu3NnyuUTu44UXXrB8rUsuuSTY7q1bt1o6F0EQbEgQIgjCES655BL8/ve/Dzl24YUXoqamBikpKZ60admyZdi9e7cr15o+fXrItf70pz9h2LBhhs6xatUqbNq0yeaWEQShhKrPEwThGgkJCejVq5dn1+/cuTN69Ohh6RwnT54U+l5iYiISExMtXatLly44evSopXMQBKENaYQIgrCdmTNn4qOPPsLjjz8eNO1UVlaGmZRk89Fbb72FgQMHIikpCT/96U9x/PhxvPjii8jKykJqaipuv/12NDc3B89/4sQJzJ07F71790ZycjJGjRqFDz/80FRb//a3v6F///5ISEjAwIED8fLLL4d8LkkS/va3v2Hy5MlITk7Ggw8+GPxs48aNGDp0KNq3b48LLrgAX3zxRfAzpWnshRdewP33349t27YF++OFF15AIBDAn/70J2RmZqJdu3ZIT0/H7bffbuo+CIIwB2mECIKwnccffxy7d+/G4MGD8ec//xkA0L17d1RWVoZ99/jx43jiiSfw6quv4ocffsDUqVNx9dVXo3PnznjnnXfwzTffYNq0aRgzZgymT58OALj11lvx1Vdf4dVXX0V6ejpWr16NiRMnory8HOecc45wO1evXo3f/e53WLx4MSZMmIC33noLs2bNQp8+fZCfnx/83p/+9CcsXLgQixcvRps2bfDNN98AAO644w48/vjj6NWrF+666y5ceeWV2L17N9q2bRtynenTp+OLL77A2rVr8d577wEAUlJSsHLlSvzP//wPXn31VZx33nnYv38/tm3bZqivCYKwBglCBEHYTkpKChISEpCUlKRrCjt58mRQKwMAP/3pT/Hyyy/jwIED6NChA7Kzs5Gfn48PPvgA06dPR1VVFZYtW4aqqiqkp6cDAObOnYu1a9di2bJleOihh4Tb+cgjj2DmzJm45ZZbAABz5szBJ598gkceeSREEJoxYwZmzZoV/FsWhO677z785Cc/AQC8+OKL6NOnD1avXo2f//znIddJTExEhw4d0KZNm5D+qKqqQq9evTBhwgS0bdsWmZmZGDlypHD7CYKwDpnGCILwlKSkpKAQBAA9e/ZEVlYWOnToEHLs4MGDAIDy8nI0NzdjwIAB6NChQ/DfRx99hL179xq69o4dOzBmzJiQY2PGjMGOHTtCjo0YMYL5+9GjRwf/v0uXLhg4cGDYb7X42c9+hsbGRpx11lmYPXs2Vq9ejVOnThm4A4IgrEIaIYIgPEVtRpIkiXmspaUFAHDs2DHEx8dj8+bNiI+PD/meUniyk+TkZEfOm5GRgV27duG9997Dv//9b9xyyy3461//io8++iisDwiCcAbSCBEE4QgJCQkhDs52kZubi+bmZhw8eBBnn312yD+jEWnnnnsuNm7cGHJs48aNyM7OFvr9J598Evz/uro67N69G+eeey7zu7z+SExMxJVXXoknnngCH374IT7++GOUl5cbuAuCIKxAGiGCIBwhKysLn376KSorK9GhQwd06dLFlvMOGDAA1157La677jo8+uijyM3NxaFDh7Bu3ToMHToUkyZNEj7XHXfcgZ///OfIzc3FhAkT8Oabb2LVqlVBh2Y9/vznP6Nr167o2bMn7r77bnTr1g1TpkxhfjcrKwsVFRXYunUr+vTpg44dO2L58uVobm7GqFGjkJSUhH/84x9ITExE3759he+BIAhrkEaIIAhHmDt3LuLj45GdnY3u3bujqqrKtnMvW7YM1113Hf7whz9g4MCBmDJlCsrKypCZmWnoPFOmTMHjjz+ORx55BOeddx6effZZLFu2DJdcconQ7xcuXIjf/e53GD58OPbv348333wTCQkJzO9OmzYNEydORH5+Prp3747ly5ejc+fOWLJkCcaMGYOhQ4fivffew5tvvomuXbsaug+CIMwjBQKBgNeNIAiCcBpJkrB69WquxsavVFZWol+/ftiyZYvhzNQEQehDGiGCIGKGa665Bn369PG6GcIUFBTgvPPO87oZBBHVkEaIIIiYYM+ePQCA+Ph49OvXz+PWiFFdXY3GxkYAQGZmJtfsRhCEeUgQIgiCIAgiZiHTGEEQBEEQMQsJQgRBEARBxCwkCBEEQRAEEbOQIEQQBEEQRMxCghBBEARBEDELCUIEQRAEQcQsJAgRBEEQBBGzkCBEEARBEETM8v8BQsb+6FnfUSkAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sa = rebound.Simulationarchive(filename)\n", + "sim0 = sa[0]\n", + "P = sim0.particles[1].P\n", + "E0 = sim.energy()\n", + "\n", + "Eerr = np.zeros(Nout)\n", + "for i, sim in enumerate(sa):\n", + " E = sim.energy()\n", + " Eerr[i] = np.abs((E-E0)/E0)\n", + "\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.plot(times/sim0.particles[1].P, Eerr, '.')\n", + "ax.set_xscale('log'); ax.set_yscale('log')\n", + "ax.set_xlabel('time [orbits]'); ax.set_ylabel('relative energy error');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One can also add manual snapshots when using automated intervals." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/SimulationarchiveRestart.ipynb b/rebound/source/docs/ipython_examples/SimulationarchiveRestart.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..99e77eeee7be23e383a7871a4aa55a41ecfcc5f0 --- /dev/null +++ b/rebound/source/docs/ipython_examples/SimulationarchiveRestart.ipynb @@ -0,0 +1,197 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Using the Simulationarchive to restart a simulation\n", + "The Simulationarchive (SA) is a binary file that can be used to restart a simulation. This can be useful when running a long simulation. REBOUND can restart simulation *exactly* (bit by bit) when using a SA. There are some restriction to when a SA can be used. Please read the corresponding paper (Rein & Tamayo 2017) for details. \n", + "\n", + "We first setup a simulation in the normal way. " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "\n", + "sim = rebound.Simulation()\n", + "sim.integrator = \"whfast\"\n", + "sim.dt = 2.*3.1415/365.*6 # 6 days in units where G=1\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-3,a=1.)\n", + "sim.add(m=5e-3,a=2.25)\n", + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We then initialize the SA and specify the output filename and output cadence. We can choose the output interval to either correspond to constant intervals in walltime (in seconds) or simulation time. Here, we choose walltime. To choose simulation time instead replace the `walltime` argument with `interval`." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "sim.save_to_file(\"simulationarchive.bin\", walltime=1.,delete_file=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we can run the simulation forward in time. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrate(2e5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Depending on how fast your computer is, the above command may take a couple of seconds. Once the simulation is done, we can delete it from memory and load it back in from the SA. You could do this at a later time. Note that this will even work if the SA file was generated on a different computer with a different operating system and even a different version of REBOUND. See Rein & Tamayo (2017) for a full discussion on machine independent code." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time after loading simulation 175478.9\n" + ] + } + ], + "source": [ + "sim = None\n", + "sim = rebound.Simulation(\"simulationarchive.bin\")\n", + "print(\"Time after loading simulation %.1f\" %sim.t)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we want to integrate the simulation further in time and append snapshots to the same SA, then we need to call the `save_to_file` method again (this is a fail-safe mechanism to avoid accidentally modifying a SA file). Note that we set the `delete_file` flag to `False`. Otherwise, we would create a new empty SA file. This outputs a warning because the file already exists (which is ok since we want to append that file)." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rein/git/rebound/rebound/simulation.py:525: RuntimeWarning: File in use for Simulationarchive already exists. Snapshots will be appended.\n", + " warnings.warn(msg[1:], RuntimeWarning)\n" + ] + } + ], + "source": [ + "sim.save_to_file(\"simulationarchive.bin\", walltime=1.,delete_file=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's integrate the simulation further in time. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrate(sim.t+2e5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we repeat the process, one can see that the SA binary file now includes the new snapshots from the restarted simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time after loading simulation 352418.7\n" + ] + } + ], + "source": [ + "sim = None\n", + "sim = rebound.Simulation(\"simulationarchive.bin\")\n", + "print(\"Time after loading simulation %.1f\" %sim.t)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A few things to note when restarting a simulation from a SA: \n", + "- If you used any additional forces or post-timestep modifications in the original simulation, then those need to be restored after loading a simulation from a SA. A RuntimeWarning may be given related to this indicating the need to reset function pointers after creating a reb_simulation struct with a binary file.\n", + "- If you use the symplectic WHFast integrator with the safe mode turned off, then the simulation will be in an unsynchronized state after reloading it. If you want to generate an output, then the simulation needs to be synchronized beforehand. See the WHFast tutorial on how to do that.\n", + "- If you use the symplectic WHFast integrator with the safe mode turned off in order to combine kepler steps (see the Advanced WHFast tutorial), but want to preserve bitwise reproducibility when integrating to different times in the simulation or to match Simulationarchive snapshots, you need to manually set sim.ri_whfast.keep_unsynchronized = 1. This ensures that the integration state does not change depending on if and when you generate outputs.\n", + "- For reproducibility, the Simulationarchive does not output snapshots at the *exact* intervals specified, but rather at the timestep in the integration directly following each interval. This means that if you load from a Simulationarchive and want to reproduce the state in a snapshot later on, you have to pass `exact_finish_time=0` in a call to `sim.integrate`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/rebound/source/docs/ipython_examples/Starman.ipynb b/rebound/source/docs/ipython_examples/Starman.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..3249f3583f86c305008d9fb3d4bdeb2e0c910387 --- /dev/null +++ b/rebound/source/docs/ipython_examples/Starman.ipynb @@ -0,0 +1,353 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Starman" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook integrates the orbit of Elon Musk's Tesla and Starman. " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We start by querying NASA Horizons for the Solar System planets around the time of the orbit injection. " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Sun'... \n", + "Found: Sun (10) \n", + "Searching NASA Horizons for 'Mercury'... \n", + "Found: Mercury Barycenter (199) (chosen from query 'Mercury')\n", + "Searching NASA Horizons for 'Venus'... \n", + "Found: Venus Barycenter (299) (chosen from query 'Venus')\n", + "Searching NASA Horizons for 'Earth'... \n", + "Found: Earth-Moon Barycenter (3) (chosen from query 'Earth')\n", + "Searching NASA Horizons for 'Mars'... \n", + "Found: Mars Barycenter (4) (chosen from query 'Mars')\n", + "Searching NASA Horizons for 'Jupiter'... \n", + "Found: Jupiter Barycenter (5) (chosen from query 'Jupiter')\n", + "Searching NASA Horizons for 'Saturn'... \n", + "Found: Saturn Barycenter (6) (chosen from query 'Saturn')\n", + "Searching NASA Horizons for 'Uranus'... \n", + "Found: Uranus Barycenter (7) (chosen from query 'Uranus')\n", + "Searching NASA Horizons for 'Neptune'... \n", + "Found: Neptune Barycenter (8) (chosen from query 'Neptune')\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add([\"Sun\",\"Mercury\",\"Venus\",\"Earth\",\"Mars\",\"Jupiter\",\"Saturn\",\"Uranus\",\"Neptune\"],date=\"2018-02-10 00:00\")\n", + "sim.save_to_file(\"ss.bin\", delete_file=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We stored the simulation to a binary file. This allows us to reload it quickly to play around with things without having to query NASA Horizons too often.\n", + "\n", + "Next up, we add the tesla to the simulation. As the orbital parameters are also in [NASA Horizons](https://ssd.jpl.nasa.gov/horizons_batch.cgi?batch=1&COMMAND=-143205&CENTER=%27500@10%27&MAKE_EPHEM=YES&TABLE_TYPE=ELEMENTS&START_TIME=2018-05-01&STOP_TIME=%272018-05-01+00:00:01%27&OUT_UNITS=AU-D&REF_PLANE=ECLIPTIC&REF_SYSTEM=J2000&TP_TYPE=ABSOLUTE&ELEM_LABELS=YES&CSV_FORMAT=NO&OBJ_DATA=YES), we can simply add it (and ignore the fact that the particle is set to no mass):" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'SpaceX Roadster'... \n", + "Found: SpaceX Roadster (spacecraft) (-143205) \n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rein/git/rebound/rebound/horizons.py:172: RuntimeWarning: Warning: Mass cannot be retrieved from NASA HORIZONS. Set to 0.\n", + " warnings.warn(\"Warning: Mass cannot be retrieved from NASA HORIZONS. Set to 0.\", RuntimeWarning)\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation(\"ss.bin\")\n", + "sim.add(\"SpaceX Roadster\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's calculate the characteristic energy." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "c3 = 11.867700 (km^2/s^2)\n" + ] + } + ], + "source": [ + "tesla = sim.particles[-1]\n", + "earth = sim.particles[3]\n", + "r=np.linalg.norm(np.array(tesla.xyz) - np.array(earth.xyz))\n", + "v=np.linalg.norm(np.array(tesla.vxyz) - np.array(earth.vxyz))\n", + "energy = 0.5*v*v-earth.m/r\n", + "c3 = 2.*energy*887.40652 # from units where G=1, length=1AU to km and s\n", + "print(\"c3 = %f (km^2/s^2)\" % c3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That seems about right! So let's look at the orbit. It starts at Earth's orbit, crosses that of Mars and then enters the asteroid belt." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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x7777su1115LMpmsdtGyuuGGGzjppJPw+/00NDRUuzhjfO9732PJkiV4vV6OP/54XnjhhWoXKatnnnmG97///SxcuBBN03j44YerXaScbrzxRo499ljq6upobW3lggsuYN26ddUuVlbf//73Ofzww0cmpZ944ok8+uijU/Jc8j6o3Ex5H8zZIFkrS2+tXbsWx3G49dZbWbNmDd/+9rf5wQ9+wL/8y79Uu2hZJZNJLrzwQi699NJqF2WM++67jyuuuIJrr72Wv/zlLxxxxBG85z3vYdeuXdUu2gSRSIQjjjiC733ve9UuSkFPP/00l112Gc899xwrV64klUpxzjnnEIlEql20Cdrb27npppt4+eWXeemllzjjjDP44Ac/yJo1ayb9ueR9ULkZ8z6YhLzjs8IjjzyiNE1TyWSy2kUp6Oabb1b77LNPtYuR15133qlCoVC1izHiuOOOU5dddtnIY9u21cKFC9WNN95YxVIVBqiHHnqo2sUo2q5duxSgnn766WoXpSiNjY3qtttum7Lry/tgclTzfTBna5KjFbv01kwxMDBAU1NTtYtRM5LJJC+//DJnnXXWyDZd1znrrLN49tlnq1iy2SezHN1Mf33ats3PfvYzIpHInMnaJe+D8szpIPm1r32NQCDAvHnz2LJlC4888ki1i1TQ+vXr+e53v8vnP//5ahelZvT09GDbNm1tbWO2t7W10dXVVaVSzT6O4/ClL32Jk08+mUMPPbTaxcnqtddeIxgM4vF4+MIXvsBDDz3EwQcfXO1iTQt5H5RnVgXJK6+8Ek3T8t7Wrl07cvxXv/pV/vrXv/K73/0OwzD45Cc/WdwinFUoK8D27ds599xzufDCC/nsZz87LeUst6xi7rnssst4/fXX+dnPflbtouR0wAEHsHr1ap5//nkuvfRSLr74Yt54442izpX3wdxUEwnOizXVS29NplLLumPHDk4//XROOukkfvjDH05x6cYqtawzTXNzM4Zh0N3dPWZ7d3c38+fPr1KpZpfLL7+cX//61zzzzDO0t7dXuzg5ud1uli1bBsDy5ct58cUX+c53vsOtt95a8Fx5H8xNsypI1tLSW6WUdfv27Zx++uksX76cO++8s+AioZOtkr/rTOB2u1m+fDmrVq3iggsuANL/36tWreLyyy+vbuFqnFKKL37xizz00EM89dRT7LPPPtUuUkkcxyn6PS/vg7lpVgXJYtXS0lvbt2/ntNNOY/HixXzrW99i9+7dI/tm4re/LVu20Nvby5YtW7Btm9WrVwOwbNkygsFg1cp1xRVXcPHFF3PMMcdw3HHHccsttxCJRPj0pz9dtTLlEg6HWb9+/cjjjRs3snr1apqamujs7KxiySa67LLLuPfee3nkkUeoq6sb6dsKhUL4fL4ql26sq666ivPOO4/Ozk6Ghoa49957eeqpp3j88ccn/bnkfVC5GfM+qMqY2ip79dVX1emnn66ampqUx+NRS5YsUV/4whfUtm3bql20Ce68804FZL3NRBdffHHWsj755JPVLpr67ne/qzo7O5Xb7VbHHXeceu6556pdpKyefPLJrH/Diy++uNpFmyDXa/POO++sdtEmuOSSS9TixYuV2+1WLS0t6swzz1S/+93vpuS55H1QuZnyPpClsoQQQogcZtXoViGEEGIySZAUQgghcpAgKYQQQuQgQVIIIYTIQYKkEEIIkYMESSGEECIHCZJCCCFEDhIkhRBCiBwkSAohhBA5SJAUQgghcpAgKYQQQuQgQVLMert372b+/Pn8x3/8x8i2P//5z7jdblatWlXFkgkxvTZt2pR1sejTTjut2kWbsebkUllibmlpaeGOO+7gggsu4JxzzuGAAw7goosu4vLLL+fMM8+sdvGEmDYdHR3s3Llz5HFXVxdnnXUWp5xyShVLNbPJKiBizrjssst44oknOOaYY3jttdd48cUX8Xg81S6WEFURj8c57bTTaGlp4ZFHHpn2xdxrhQRJMWfEYjEOPfRQtm7dyssvv8xhhx1W7SIJUTUf//jHeeWVV3juueeoq6urdnFmLPnqIOaMDRs2sGPHDhzHYdOmTdUujhBVc/311/P444/zy1/+UgJkAVKTFHNCMpnkuOOO48gjj+SAAw7glltu4bXXXqO1tbXaRRNiWv3iF7/gYx/7GI8++qj0yRdBgqSYE7761a/ywAMP8MorrxAMBjn11FMJhUL8+te/rnbRhJg2r7/+OscffzxXXHEFl1122ch2t9tNU1NTFUs2c0mQFLPeU089xdlnn82TTz7Ju971LiA9FP6II47gpptu4tJLL61yCYWYHnfddRef/vSnJ2w/9dRTeeqpp6a/QDVAgqQQQgiRgwzcEUIIIXKQICmEEELkIEFSCCGEyEGCpBBCCJGDBEkhhBAiBwmSQgghRA4SJIUQQogcJEgKIYQQOUiQFEIIIXKQICmEEELkIEFSCCGEyOH/B/DWahS2sZ9aAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "rebound.OrbitPlotSet(sim, color=True, xlim=[-3,3], ylim=[-3,3]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And then integrate it forward in time. Here, we use the hybrid integrator TRACE. You can experiment with other integrators which might be faster, but since this is an eccentric orbit, you might see many close encounters, so you either need a non-symplectic integrator such as IAS15 or a hybrid integrator such as TRACE." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# integrate\n", + "sim.dt = sim.particles[1].P/60. # small fraction of Mercury's period\n", + "sim.integrator = \"trace\" \n", + "N = 1000\n", + "times = np.linspace(0.,2.*np.pi*1e5,N)\n", + "a = np.zeros(N)\n", + "e = np.zeros(N)\n", + "for i,t in enumerate(times):\n", + " sim.integrate(t,exact_finish_time=0)\n", + " orbit = sim.particles[-1].orbit(primary=sim.particles[0])\n", + " a[i] = orbit.a\n", + " e[i] = orbit.e" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's plot the orbital parameters!" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAywAAAJaCAYAAADNgsP1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hTZfsH8G9Gk850D0oXu4wChUKZClK2KKKCiIIirp+o2NfFqyK+vgoqbhE3qK+AoICKiiJ7r1L2Kp1073SmTXJ+f6Q5bbpbkiYt38919SI5eXLOk/bQnvs8z30/EkEQBBAREREREdkgqbU7QERERERE1BAGLEREREREZLMYsBARERERkc1iwEJERERERDaLAQsREREREdksBixERERERGSzGLAQEREREZHNYsBCREREREQ2S27tDrRXer0eaWlpcHFxgUQisXZ3iIiIiIiumyAIKCoqgr+/P6RS2xjbYMDSSmlpaQgMDLR2N4iIiIiIzC4lJQUBAQHW7gYABiyt5uLiAsDww1SpVFbuDRERERHR9VOr1QgMDBSvdW0BA5ZWMk4DU6lUDFiIiIiIqEOxpZQH25iYRkREREREVA8GLEREREREZLMYsBARERERkc1iwEJERERERDaLAQsREREREdksBixERERERGSzGLDcgHR6AXklFdbuBhERERFRkxiw3IAe+e44Br2+HRcz1NbuChERERFRo2w+YNm7dy+mTZsGf39/SCQSbNmypdH2+/fvx8iRI+Hp6QkHBweEhobi/fffN2mzdOlSSCQSk6/Q0FALfgrbsuNiFgBg/dEUK/eEiIiIiKhxNr/SfUlJCQYMGID58+djxowZTbZ3cnLCwoUL0b9/fzg5OWH//v149NFH4eTkhEceeURs17dvX/zzzz/ic7nc5r8VZqe0s/l4lYiIiIhucDZ/lT558mRMnjy52e3Dw8MRHh4uPg8JCcGmTZuwb98+k4BFLpfDz8/PrH1tDyq0evGxg53Mij0hIiIiImpah7/FfvLkSRw8eBA333yzyfYrV67A398fXbt2xZw5c5CcnNzofjQaDdRqtclXe5RfWp1sbyfr8D9+IiIiImrnOuwVa0BAAJRKJSIiIvDEE09gwYIF4muRkZFYs2YNtm3bhlWrViEhIQGjR49GUVFRg/tbtmwZXF1dxa/AwMC2+Bhml1OsER+XVeis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ZGQgIyMDhYWFYptnn30We/bsQWJiIg4ePIg77rgDMpkMs2fPvu7P3tFJJBIMCfGAk7L5swllUgmmhBkqsv1zIdNSXSMiIiKiDsgiAcsPP/yAL7/8Ev/6178gl8sxe/ZsfPXVV1iyZAkOHz7con0dP34c4eHhYkni6OhohIeHY8mSJQCA9PR0kwpfX3zxBbRaLZ544gl06tRJ/Hr66afFNteuXcPs2bPRq1cvzJw5E56enjh8+DC8vb3N8OmpPt19nAEAeSUVVu4JEREREbUnFkm6z8jIQFhYGADA2dlZHN249dZb8corr7RoX2PGjIEgCA2+vmbNGpPnu3fvbnKf69evb1Ef6Po5M/GeiIiIiFrBIiMsAQEBSE9PBwB069YNf//9NwDg2LFjUCqbXw6XOg5jwMLFI4mIiIioJSwSsNxxxx3YsWMHAODJJ5/EK6+8gh49emDu3LmYP3++JQ5JNs7F3lApjCMsRERERNQSFpkStnz5cvHxrFmzEBwcjIMHD6JHjx6YNm2aJQ5JNs642n0xR1iIiIiIqAUsErDUNmzYMAwbNqwtDkU2qnpKWKWVe0JERERE7UmbLxxJNybnqhGWkgoddPqGiygQEREREdXEgIXahHONdVtKKjgtjIiIiIiahwELtQl7OxkUMsPpxjwWIiIiImouswcsOp0Oe/fuRUFBgbl3Te2ccVoYK4URERERUXOZPWCRyWSYMGEC8vPzzb1raue4FgsRERERtZRFpoT169cP8fHxltg1tWOsFEZERERELWWRgOW///0vnn32WWzduhXp6elQq9UmX3RjcuGUMCIiIiJqIYuswzJlyhQAwG233QaJRCJuFwQBEokEOp3OEoclG8fFI4mIiIiopSwSsOzatcsSu6V2zjgljCMsRERERNRcFglYbr75Zkvslto5Y5UwJt0TERERUXNZJGABgIKCAnz99de4cOECAKBv376YP38+XF1dLXVIsnHOSjsADFiIiIiIqPksknR//PhxdOvWDe+//z7y8vKQl5eH9957D926dUNMTIwlDkntQHXSPauEEREREVHzWGSE5ZlnnsFtt92GL7/8EnK54RBarRYLFizAokWLsHfvXksclmwcq4QRERERUUtZJGA5fvy4SbACAHK5HM8//zwiIiIscUhqB7hwJBERERG1lEWmhKlUKiQnJ9fZnpKSAhcXF0sc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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(9,7))\n", + "ax = plt.subplot(211)\n", + "ax.set_xlim([0,np.max(times)/2./np.pi])\n", + "ax.set_xlabel(\"time [yrs]\")\n", + "ax.set_ylabel(\"semi-major axis [AU]\")\n", + "plt.plot(times/2./np.pi,a)\n", + "ax = plt.subplot(212)\n", + "ax.set_xlim([0,np.max(times)/2./np.pi])\n", + "ax.set_xlabel(\"time [yrs]\")\n", + "ax.set_ylabel(\"eccentricity\")\n", + "plt.plot(times/2./np.pi,e);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To check the sensitivity of the integrations, let us perturb the initial orbit by a small factor equal to the confidence interval posted by Bill Gray (https://projectpluto.com/temp/spacex.htm#elements). Instead of just integrating one particle at a time, we here add 10 test particles. We also switch to the high precision IAS15 integrator to get the most reliable result." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation(\"ss.bin\")\n", + "Ntesla = 10\n", + "for i in range(Ntesla):\n", + " sim.add(primary=sim.particles[0],\n", + " M=(tesla.M+0.0013*np.random.normal()) *np.pi/180.,\n", + " a=(tesla.a+0.000273*np.random.normal()),\n", + " omega = (tesla.omega+0.00059*np.random.normal()) *np.pi/180.,\n", + " Omega = (tesla.Omega+0.0007*np.random.normal()) *np.pi/180.,\n", + " e = (tesla.e+0.00015*np.random.normal()),\n", + " inc = (tesla.inc+0.0007*np.random.normal()) *np.pi/180.)\n", + "sim.N_active = 9 # Sun + planets" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's integrate this..." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "sim.dt = sim.particles[1].P/60. # small fraction of Mercury's period\n", + "sim.integrator=\"ias15\" \n", + "N = 1000\n", + "times = np.linspace(0.,2.*np.pi*1e3,N)\n", + "a_log = np.zeros((N,Ntesla))\n", + "e_log = np.zeros((N,Ntesla))\n", + "for i,t in enumerate(times):\n", + " sim.integrate(t,exact_finish_time=0)\n", + " for j in range(Ntesla):\n", + " orbit = sim.particles[9+j].orbit(primary=sim.particles[0])\n", + " a_log[i][j] = orbit.a\n", + " e_log[i][j] = orbit.e" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When plotting the semi-major axis and eccentricity of all orbits, note that their kicks are correlated. This is because they are all due to close encounters with the Earth. This fast divergence means that we cannot predict the trajectory for more than a hundred years without knowing the precise initial conditions and all the non-gravitational effects that might be acting on a car in space." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(9,7))\n", + "ax = plt.subplot(211)\n", + "ax.set_xlim([0,np.max(times)/2./np.pi])\n", + "ax.set_xlabel(\"time [yrs]\")\n", + "ax.set_ylabel(\"semi-major axis [AU]\")\n", + "for j in range(Ntesla):\n", + " plt.plot(times/2./np.pi,a_log[:,j])\n", + "ax = plt.subplot(212)\n", + "ax.set_xlim([0,np.max(times)/2./np.pi])\n", + "ax.set_xlabel(\"time [yrs]\")\n", + "ax.set_ylabel(\"eccentricity\")\n", + "for j in range(Ntesla):\n", + " plt.plot(times/2./np.pi,e_log[:,j])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/docs/ipython_examples/Testparticles.ipynb b/rebound/source/docs/ipython_examples/Testparticles.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..aaeaec4de4dd81b7ba4a35efac9f02e5d5e2d3bf --- /dev/null +++ b/rebound/source/docs/ipython_examples/Testparticles.ipynb @@ -0,0 +1,374 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Test particles\n", + "In this tutorial, we run a simulation with many test particles. A simulation with test particles can be much faster, because it scales as $\\mathcal{O}(N)$ compared to a simulation with massive particles, which scales as $\\mathcal{O}(N^2)$. \n", + "\n", + "There are two types of test particles implemented in REBOUND. We first talk about *real* test particle, i.e. particles which have no mass and therefore do not perturb any other particle. In REBOUND, these are referred to as type 0. \n", + "\n", + "Let's first set up two massive particles in REBOUND, move to the center of mass frame, and choose WHFast as the integrator." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-3, a=1, e=0.05)\n", + "sim.move_to_com()\n", + "sim.integrator = \"whfast\"\n", + "sim.dt = 0.05" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t3.15.0\n", + "REBOUND built on: \tFeb 8 2021 15:12:45\n", + "Number of particles: \t2\n", + "Selected integrator: \twhfast\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.050000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we'll add the test particles. We just set the mass to zero. Note that we give the `add()` function no `m` argument and it therefore sets the mass is zero. We randomize the true anomaly of the particles and place them outside the massive planet.\n", + "\n", + "The test-particles must be added after all massive planets have been added." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "N_testparticle = 1000\n", + "a_initial = np.linspace(1.1, 3, N_testparticle)\n", + "for a in a_initial:\n", + " sim.add(a=a,f=np.random.rand()*2.*np.pi) # mass is set to 0 by default, random true anomaly " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we set the `N_active` variable of REBOUND to the number of active particles in our simulation. Here, we have two active (massive) particles, the star and the planet." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "sim.N_active = 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let's do the simulation. We will run it for 200 orbits of the planet which, in our units of $G=1$, is $t_{\\rm max} = 200\\cdot2\\pi$. While we run the simulation, we'll keep store the position of all test particles 10 times during the interval." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "rebound/simulation.py:716: RuntimeWarning: WHFast convergence issue. Timestep is larger than at least one orbital period.\n", + " warnings.warn(msg[1:], RuntimeWarning)\n" + ] + } + ], + "source": [ + "t_max = 200.*2.*np.pi\n", + "N_out = 10\n", + "xy = np.zeros((N_out, N_testparticle, 2))\n", + "times = np.linspace(0, t_max, N_out)\n", + "for i, time in enumerate(times):\n", + " sim.integrate(time)\n", + " for j, p in enumerate(sim.particles[2:]):\n", + " xy[i][j] = [p.x, p.y]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now plot the test particles' positions." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(5,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlim([-3,3])\n", + "ax.set_ylim([-3,3])\n", + "plt.scatter(xy[:,:,0],xy[:,:,1],marker=\".\",linewidth=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One can see that some particles changed their orbits quite significantly, while others seem to stay roughly on circular orbits. To investigate this a bit further, we now calculate and plot the relative change of the test particles' semi-major axis over the duration of the simulation. We'll plot it as a function of the initial period ratio $r=P_{\\rm test particle}/P_{\\rm planet}$ for which we make use of Kepler's law, $P = 2\\pi\\sqrt{a^3/GM}$." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "orbits = sim.orbits()[1:]\n", + "a_final = [o.a for o in orbits]\n", + "fig = plt.figure(figsize=(15,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_yscale('log')\n", + "ax.set_xlabel(r\"period ratio $r$\")\n", + "ax.set_ylabel(\"relative semi-major axis change\")\n", + "plt.plot(np.power(a_initial,1.5),(np.fabs(a_final-a_initial)+1.0e-16)/a_initial,marker=\".\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Very close to the planet test particles change their semi-major axis by order unity. These particles have a close encounter with the planet and get scattered.\n", + "\n", + "We also see two peaks at $r=2$ and $r=3$. These correspond to mean motion resonances. We can also see the mean motion resonances by plotting the eccentricities of the particles. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "e_final = np.array([o.e for o in orbits])\n", + "fig = plt.figure(figsize=(15,5))\n", + "ax = plt.subplot(111)\n", + "#ax.set_ylim([0,1])\n", + "ax.set_yscale('log')\n", + "ax.set_xlabel(r\"period ratio $r$\")\n", + "\n", + "ax.set_ylabel(\"final eccentricity\")\n", + "plt.plot(np.power(a_initial,1.5),e_final+1.0e-16,marker=\".\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once again, we see peaks at $r=2$ and $r=3$, corresponding to the 2:1 and 3:1 mean motion resonance. You can even see a hint of an effect at $r=4$, the 4:1 mean motion resonance." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the above example, the planet did not change its semi-major axis as the test particles have zero mass and do not affect any other particles. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0000000000000027\n" + ] + } + ], + "source": [ + "print(sim.orbits()[0].a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us change this assumption by allow the test particles to have a small mass and influence the planet. Test particles do still not influence other test particles. This setup is referred to as type 1 in REBOUND." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-3, a=1, e=0.05)\n", + "sim.move_to_com()\n", + "sim.integrator = \"whfast\"\n", + "sim.dt = 0.05\n", + "N_testparticle = 1000\n", + "a_initial = np.linspace(1.1, 3, N_testparticle)\n", + "for a in a_initial:\n", + " sim.add(a=a,f=np.random.rand()*2.*np.pi, m=1e-7)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As above, we set `N_active` to the number of massive bodies. We also set the `testparticle_type` to 1, which allows interactions between test particles and massive particles, but not between test particles themselves. This is similar to what MERCURY calls small bodies." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "sim.N_active = 2\n", + "sim.testparticle_type = 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we integrate this simulation forwards in time and output the semi-major axis of the planet, we can see that it changed slightly from the initial $a=1$ due to interactions with the test particles. " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.9977589957255236\n" + ] + } + ], + "source": [ + "sim.integrate(t_max)\n", + "print(sim.orbits()[0].a)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.1+" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/TransitTimingVariations.ipynb b/rebound/source/docs/ipython_examples/TransitTimingVariations.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..e739cc62f9d9aed431467ca82591fcec3cfefb7a --- /dev/null +++ b/rebound/source/docs/ipython_examples/TransitTimingVariations.ipynb @@ -0,0 +1,176 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Calculating Transit Timing Variations (TTV) with REBOUND\n", + "The following code finds the transit times in a two planet system. The transit times of the inner planet are not exactly periodic, due to planet-planet interactions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, let's import the REBOUND and numpy packages." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's set up a coplanar two planet system." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1)\n", + "sim.add(m=1e-5, a=1,e=0.1,omega=0.25)\n", + "sim.add(m=1e-5, a=1.757)\n", + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We're now going to integrate the system forward in time. We assume the observer of the system is in the direction of the positive x-axis. We want to measure the time when the inner planet transits. In this geometry, this happens when the y coordinate of the planet changes sign. Whenever we detect a change in sign between two steps, we try to find the transit time, which must lie somewhere within the last step, by bisection. " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "N=174\n", + "transittimes = np.zeros(N)\n", + "p = sim.particles\n", + "i = 0\n", + "while i0.: # sign changed (y_old*y<0), planet in front of star (x>0)\n", + " while t_new-t_old>1e-7: # bisect until prec of 1e-5 reached\n", + " if y_old*(p[1].y-p[0].y)<0.:\n", + " t_new = sim.t\n", + " else:\n", + " t_old = sim.t\n", + " sim.integrate( (t_new+t_old)/2.)\n", + " transittimes[i] = sim.t\n", + " i += 1\n", + " sim.integrate(sim.t+0.05) # integrate 0.05 to be past the transit " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we do a linear least square fit to remove the linear trend from the transit times, thus leaving us with the transit time variations." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "A = np.vstack([np.ones(N), range(N)]).T\n", + "c, m = np.linalg.lstsq(A, transittimes, rcond=-1)[0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let us plot the TTVs." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(10,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlim([0,N])\n", + "ax.set_xlabel(\"Transit number\")\n", + "ax.set_ylabel(\"TTV [hours]\")\n", + "plt.scatter(range(N), (transittimes-m*np.array(range(N))-c)*(24.*365./2./np.pi));" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.1+" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/UniquelyIdentifyingParticlesWithHashes.ipynb b/rebound/source/docs/ipython_examples/UniquelyIdentifyingParticlesWithHashes.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..8dd51f9b02ca09fc01092c482a4157e85ef1deb5 --- /dev/null +++ b/rebound/source/docs/ipython_examples/UniquelyIdentifyingParticlesWithHashes.ipynb @@ -0,0 +1,548 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Uniquely Identifying Particles With Hashes\n", + "\n", + "In many cases, one can just identify particles by their position in the particle array, e.g. using ``sim.particles[5]``. However, in cases where particles might get reordered in the particle array finding a particle might be difficult. This is why we added a *hash* attribute to particles.\n", + "\n", + "In REBOUND particles might get rearranged when a tree code is used for the gravity or collision routine, when particles merge, when a particle leaves the simulation box, or when you manually remove or add particles. In general, therefore, the user should not assume that particles stay at the same index or in the same location in memory. The reliable way to access particles is to assign them hashes and to access particles through them. Assigning hashes make ``sim.particles`` to behave like Python's `dict` while keeping list-like integer-based indexing at the same time.\n", + "\n", + "**Note**: When you don't assign particles a hash, they automatically get set to 0. The user is responsible for making sure hashes are unique, so if you set up particles without a hash and later set a particle's hash to 0, you don't know which one you'll get back when you access hash 0. See [Possible Pitfalls](#Possible-Pitfalls) below.\n", + "\n", + "In this example, we show the basic usage of the *hash* attribute." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1., hash=999)\n", + "sim.add(a=0.4, hash=\"mercury\")\n", + "sim.add(a=1., hash=\"earth\")\n", + "sim.add(a=5., hash=\"jupiter\")\n", + "sim.add(a=7.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now not only access the Earth particle with:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[2]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "but also with" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[\"earth\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can access particles with negative indices like a list. We can get the last particle with" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[-1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also set hash after particle is added." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[-1].hash = 'pluto'\n", + "sim.particles['pluto']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Details" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We usually use strings as hashes, however, under the hood hash is an unsigned integer (`c_uint`). There is a function `rebound.hash` that calculates actual hash of a string." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "c_uint(1424801690)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from rebound import hash as h\n", + "h(\"earth\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The same function can be applied to integers. In this case it just casts the value to the underlying C datatype (`c_uint`)." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "c_uint(999)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h(999)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "c_uint(4294967294)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h(-2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When we above set the hash to some value, REBOUND converted this value to an unsigned integer using the same `rebound.hash` function." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "c_uint(999)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[0].hash # particle was created with sim.add(m=1., hash=999)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "c_uint(1424801690)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[2].hash \n", + "# particle was created with sim.add(a=1., hash=\"earth\")\n", + "# so the hash is the same as h(\"earth\") above" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When we use string as an index to access particle, function `rebound.hash` is applied to the index and a particle with this hash is returned. On the other hand, if we use integer index, it is not treated as a hash, REBOUND just returns a particle with given position in array, i.e. `sim.particles[0]` is the first particle, etc.\n", + "\n", + "We can access particles through their hash directly. However, to differentiate from passing an integer index, we have to first cast the hash to the underlying C datatype by using `rebound.hash` manually." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[h(999)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which corresponds to `particles[0]` as it should. `sim.particles[999]` would try to access index 999, which doesn't exist in the simulation, and REBOUND would raise an AttributeError." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The hash attribute always returns the appropriate unsigned integer ctypes type. (Depending on your computer architecture, `ctypes.c_uint32` can be an alias for another `ctypes` type).\n", + "\n", + "So we could also access the earth with:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[h(1424801690)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The numeric hashes could be useful in cases where you have a lot of particles you don't want to assign individual names, but you still need to keep track of them individually as they get rearranged:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(1,100):\n", + " sim.add(m=0., a=i, hash=i)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "95.0" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[99].a" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "98.99999999999999" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[h(99)].a" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Possible Pitfalls\n", + "The user is responsible for making sure the hashes are unique. If two particles share the same hash, you could get either one when you access them using their hash (in most cases the first hit in the `particles` array). Two random strings used for hashes have a $\\sim 10^{-9}$ chance of clashing. The most common case is setting a hash to 0:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1., hash=0)\n", + "sim.add(a=1., hash=\"earth\")\n", + "sim.add(a=5.)\n", + "sim.particles[h(0)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we expected to get back the first particle, but instead got the last one. This is because we didn't assign a hash to the last particle and it got automatically set to 0. If we give hashes to all the particles in the simulation, then there's no clash:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1., hash=0)\n", + "sim.add(a=1., hash=\"earth\")\n", + "sim.add(a=5., hash=\"jupiter\")\n", + "sim.particles[h(0)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Due to details of the `ctypes` library, comparing two `ctypes.c_uint32` instances for equality fails:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h(32) == h(32)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You have to compare the value" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h(32).value == h(32).value" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "See the docs for further information: https://docs.python.org/3/library/ctypes.html" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/Units.ipynb b/rebound/source/docs/ipython_examples/Units.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..71980e17413fa6d14600adca73a862c531a05d71 --- /dev/null +++ b/rebound/source/docs/ipython_examples/Units.ipynb @@ -0,0 +1,208 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Unit convenience functions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For convenience, REBOUND offers simple functionality for converting units. One implicitly sets the units for the simulation through the values used for the initial conditions, but one has to set the appropriate value for the gravitational constant `G`, and sometimes it is convenient to get the output in different units.\n", + "\n", + "The default value for `G` is 1, so one can:\n", + "\n", + "a) use units for the initial conditions where `G=1` (e.g., AU, $M_\\odot$, yr/$2\\pi$)\n", + "\n", + "b) set `G` manually to the value appropriate for the adopted initial conditions, e.g., to use SI units," + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import math\n", + "sim = rebound.Simulation()\n", + "sim.G = 6.674e-11" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "c) set rebound.units:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "G = 39.476926421373.\n" + ] + } + ], + "source": [ + "sim.units = ('yr', 'AU', 'Msun')\n", + "print(\"G = {0}.\".format(sim.G))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you set the units, REBOUND converts `G` to the appropriate value for the units passed (must pass exactly 3 units for mass length and time, but they can be in any order). Note that if you are interested in high precision, you have to be quite particular about the exact units. \n", + "\n", + "As an aside, the reason why `G` differs from $4\\pi^2 \\approx 39.47841760435743$ is mostly that we follow the convention of defining a \"year\" as 365.25 days (a Julian year), whereas the Earth's sidereal orbital period is closer to 365.256 days (and at even finer level, Venus and Mercury modify the orbital period). `G` would only equal $4\\pi^2$ in units where a \"year\" was exactly equal to one orbital period at $1 AU$ around a $1 M_\\odot$ star.\n", + "\n", + "**Adding particles**\n", + "\n", + "If you use `sim.units` at all, you need to set the units before adding any particles. You can then add particles in any of the ways described in [WHFast.ipynb](../WHFast). You can also add particles drawing from the horizons database (see [Churyumov-Gerasimenko.ipynb](../Churyumov-Gerasimenko)). If you don't set the units ahead of time, HORIZONS will return initial conditions in units of AU, $M_\\odot$ and yrs/$2\\pi$, such that `G=1`. \n", + "\n", + "Above we switched to units of AU, $M_\\odot$ and yrs, so when we add Earth:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Earth'... Found: Target body name: Earth-Moon Barycenter (3).\n", + "v = 6.370350510017522\n" + ] + } + ], + "source": [ + "sim.add('Earth')\n", + "ps = sim.particles\n", + "import math\n", + "print(\"v = {0}\".format(math.sqrt(ps[0].vx**2 + ps[0].vy**2 + ps[0].vz**2)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "we see that the velocity is correctly set to approximately $2\\pi$ AU/yr.\n", + "\n", + "If you'd like to enter the initial conditions in one set of units, and then use a different set for the simulation, you can use the sim.convert_particle_units function, which converts both the initial conditions and `G`. Since we added Earth above, we restart with a new `Simulation` instance; otherwise we'll get an error saying that we can't set the units with particles already loaded:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t3.15.0\n", + "REBOUND built on: \tFeb 8 2021 15:12:45\n", + "Number of particles: \t2\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.units = ('m', 's', 'kg')\n", + "sim.add(m=1.99e30)\n", + "sim.add(m=5.97e24,a=1.5e11)\n", + "\n", + "sim.convert_particle_units('AU', 'yr', 'Msun')\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We first set the units to SI, added (approximate values for) the Sun and Earth in these units, and switched to AU, yr, $M_\\odot$. You can see that the particle states were converted correctly--the Sun has a mass of about 1, and the Earth has a distance of about 1.\n", + "\n", + "Note that when you pass orbital elements to sim.add, you *must* make sure `G` is set correctly ahead of time (through either 3 of the methods above), since it will use the value of `sim.G` to generate the velocities:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "G = 1.0\n", + "---------------------------------\n", + "REBOUND version: \t3.15.0\n", + "REBOUND built on: \tFeb 8 2021 15:12:45\n", + "Number of particles: \t2\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "print(\"G = {0}\".format(sim.G))\n", + "sim.add(m=1.99e30)\n", + "sim.add(m=5.97e24,a=1.5e11)\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The orbital speed of Earth is $\\sim 3\\times 10^4$ m/s, but since we didn't correctly set `G` ahead of time, we get $\\sim 3\\times 10^9$ m/s, so the Earth would fly off the Sun in this simulation." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.1+" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/User_Defined_Collision_Resolve.ipynb b/rebound/source/docs/ipython_examples/User_Defined_Collision_Resolve.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..ff3285f6662e1cca0f97273e82bff25974559841 --- /dev/null +++ b/rebound/source/docs/ipython_examples/User_Defined_Collision_Resolve.ipynb @@ -0,0 +1,192 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# User Defined Rebound Collision Resolutions\n", + "\n", + "In the [CloseEncounter](https://rebound.hanno-rein.de/ipython_examples/CloseEncounters/) example, we discuss methods for resolving collisions in REBOUND through exceptions and the use of the `sim.collision_resolve = \"merge\"` method.\n", + "\n", + "Using the same 3-Body setup, let us explore how to define and implement the same collision resolution function in python and pass it to the `sim.collision_resolve` function pointer." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "def setupSimulation():\n", + " ''' Setup the 3-Body scenario'''\n", + " sim = rebound.Simulation()\n", + " sim.integrator = \"ias15\" # IAS15 is the default integrator, so we don't need this line\n", + " sim.add(m=1.)\n", + " sim.add(m=1e-3, a=1., r=np.sqrt(1e-3/3.)) # we now set collision radii!\n", + " sim.add(m=5e-3, a=1.25, r=1.25*np.sqrt(5e-3/3.))\n", + " sim.move_to_com()\n", + " return sim" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To reiterate the previous method, let's run the built-in `merge` collision resolution method" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Particles in the simulation at t= 0.0: 3\n", + "System Mass: [1.0, 0.001, 0.005]\n", + "Particles in the simulation at t= 100.0: 2\n", + "System Mass: [1.0, 0.006]\n" + ] + } + ], + "source": [ + "sim = setupSimulation()\n", + "sim.collision = \"direct\"\n", + "sim.collision_resolve = \"merge\" # Built in function\n", + "\n", + "print(\"Particles in the simulation at t=%6.1f: %d\"%(sim.t,sim.N))\n", + "print(\"System Mass: {}\".format([p.m for p in sim.particles]))\n", + "sim.integrate(100.)\n", + "print(\"Particles in the simulation at t=%6.1f: %d\"%(sim.t,sim.N))\n", + "print(\"System Mass: {}\".format([p.m for p in sim.particles]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see above that two particles merged into one with a combined mass of 0.006.\n", + "\n", + "Let's now try to implement this collision function ourselves!\n", + "\n", + "To do this, we need to write a function which we can pass to `sim.collision_resolve`. In this case let's define `my_merge`. \n", + "\n", + "Now, whenever a collision occurs, REBOUND will pass our function two parameters:\n", + "\n", + " - `sim_pointer`: a pointer to the simulation object which the collision occurred in.\n", + " - Because it is a ctypes pointer, you will need to use the `.contents` attribute to access the simulation object\n", + " - `collision`: this structure contains the attributes .p1 and .p2 which are the indices of the two particles involved in the collision\n", + "\n", + "Using these inputs, we can define the necessary logic to handle the collision. The return value of our function determines how REBOUND proceeds afterwards:\n", + "\n", + " - 0: Simulation continues without changes\n", + " - 1: remove p1 from simulation\n", + " - 2: remove p2 from simulation\n", + "\n", + "Let us look at how this information can be used to implement the logic of the `merge` method for colliding particles in a totally inelastic collision." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def my_merge(sim_pointer, collided_particles_index):\n", + "\n", + " sim = sim_pointer.contents # retreive the standard simulation object\n", + " ps = sim.particles # easy access to list of particles\n", + "\n", + " i = collided_particles_index.p1 # Note that p1 < p2 is not guaranteed. \n", + " j = collided_particles_index.p2 \n", + "\n", + " # This part is exciting! We can execute additional code during collisions now!\n", + " op = rebound.OrbitPlot(sim, xlim = (-1.3, 1.3), ylim = (-1.3, 1.3), color=['blue', 'green'])\n", + " op.ax.set_title(\"Merging particle {} into {}\".format(j, i))\n", + " op.ax.text(ps[1].x, ps[1].y, \"1\"); \n", + " op.ax.text(ps[2].x, ps[2].y, \"2\")\n", + " # So we plot the scenario exactly at the timestep that the collision function is triggered\n", + "\n", + " # Merging Logic \n", + " total_mass = ps[i].m + ps[j].m\n", + " merged_planet = (ps[i] * ps[i].m + ps[j] * ps[j].m)/total_mass # conservation of momentum\n", + "\n", + " # merged radius assuming a uniform density\n", + " merged_radius = (ps[i].r**3 + ps[j].r**3)**(1/3)\n", + "\n", + " ps[i] = merged_planet # update p1's state vector (mass and radius will need corrections)\n", + " ps[i].m = total_mass # update to total mass\n", + " ps[i].r = merged_radius # update to joined radius\n", + "\n", + " return 2 # remove particle with index j" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can set our new collision resolution function in the simulation object." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim = setupSimulation()\n", + "sim.collision = \"direct\"\n", + "ps = sim.particles\n", + "sim.collision_resolve = my_merge # user defined collision resolution function\n", + "sim.integrate(100.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that we were not only able to resolve the collision, but also to run additional code during the collision, in this case to make a plot, which can be very useful for debugging or logging. Now that you know the basics, you can expand the scenario here and resolve collisions according to the astrophysical problem you are working on." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/VariationalEquations.ipynb b/rebound/source/docs/ipython_examples/VariationalEquations.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..0d9d50729581d5c712b7973003089d4c9bd609c4 --- /dev/null +++ b/rebound/source/docs/ipython_examples/VariationalEquations.ipynb @@ -0,0 +1,303 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Variational Equations\n", + "For a complete introduction to variational equations, please read the paper by Rein and Tamayo (2016).\n", + "\n", + "For this tutorial, we work with a two planet system. We vary the initial semi-major axis $a$ of the outer planet. Because the planets interact with each other, the final $x$-position of the inner planet at the end of the simulation will depend on the initial semi-major axis of the outer planet. We run the simulation once for a fixed $a_0$ and then use first and second order variational equations to predict the final position of the outer planet for different $a$s in a neighbourhood of $a_0$. \n", + "\n", + "To do that, let us first import REBOUND, numpy and matplotlib." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib.ticker import FormatStrFormatter" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before using variational equations, let us define a function that calculates the final position of the inner planet as a function of $a$ in the brute-force way:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def run_sim(a):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.)\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1)\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=a)\n", + " \n", + " sim.integrate(2.*np.pi*10.)\n", + " return sim.particles[1].x" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll use this function to create a list of *true* final positions to which we later compare our results." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "N=400\n", + "x_exact = np.zeros((N))\n", + "a_grid = np.linspace(1.4,1.7,N)\n", + "for i,a in enumerate(a_grid):\n", + " x_exact[i] = run_sim(a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Running a simulation with variational equations is very easy. We start by creating a simulation and add the three particles (the star and two planets) just as before. Note that the `vary` convenience function we use below only accepts heliocentric coordinates, so we explicitly tell REBOUND that the star is the primary when adding particles to the simulation. \n", + "\n", + "We then add variational particles to the simulation. We vary one parameter ($a$) and thus need only one set of first order variational equations. The second order variational equations depend on the first order ones. Thus, when initializing them, one has to pass the set of first order variational equations using the 'first_order' parameter.\n", + "\n", + "After adding a variation, one must always initialize it. We do this below with REBOUND's `vary()` convenience function, which makes varying orbital parameters particularly easy. Alternatively, one can also initialize the variational particles directly, e.g. using `var_da.particles[1].x = 1`. Note that variations are implemented as particles, but you they really represent derivatives of a particle's coordinates with respect to some initial parameter. For more details, see Rein and Tamayo (2016).\n", + "\n", + "The function below does all that and returns the final position of the inner planet, as well as the first and second derivatives of the position with respect to $a$. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def run_sim_var(a):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.)\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1)\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=a)\n", + " var_da = sim.add_variation()\n", + " var_dda = sim.add_variation(order=2, first_order=var_da)\n", + " var_da.vary(2, \"a\")\n", + " var_dda.vary(2, \"a\")\n", + " \n", + " sim.integrate(2.*np.pi*10.)\n", + " return sim.particles[1].x, var_da.particles[1].x, var_dda.particles[1].x" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now use the variational equations to predict the final position of the inner particle. Note that we only run one simulation, at $a_0=1.56$." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "a_0 = 1.56\n", + "x, dxda, ddxdda = run_sim_var(a_0)\n", + "x_1st_order = np.zeros(N)\n", + "x_2nd_order = np.zeros(N)\n", + "for i,a in enumerate(a_grid):\n", + " x_1st_order[i] = x + (a-a_0)*dxda\n", + " x_2nd_order[i] = x + (a-a_0)*dxda + 0.5*(a-a_0)*(a-a_0)*ddxdda" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the figure below, we plot the final position as a function of the initial semi-major axis. The black line corresponds to the true final position as calculated by the brute-force approach. The dashed and dotted lines correspond to the approximations using first and second order variational equations. As one can see, the second order approximation is very accurate within a neighbourhood of $a_0$. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjQAAAFzCAYAAAApPpNKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAACVJUlEQVR4nOzdd1hT5/vH8XfYKIoDBQcq4t4T1Na9Wuuete5WrdZtnVXraJXWWrfWPat11FFbq1Vx7wHuLSpUBReiiKzw/P7I1/ykLgiBE+B+XVeukpOTk0+OKbl5zjN0SimFEEIIIUQqZqV1ACGEEEKIpJKCRgghhBCpnhQ0QgghhEj1pKARQgghRKonBY0QQgghUj0paIQQQgiR6klBI4QQQohUTwoaIYQQQqR6NloHSA3i4uK4e/cumTJlQqfTaR1HCCGESDWUUjx79ozcuXNjZZV87ShS0CTA3bt3cXd31zqGEEIIkWoFBQWRN2/eZDu+FDQJkClTJsDwj5E5c2aN04jU7M4dKFECChaEkyfB2lrrREKAUvDDD3DpEkyfDtmyaZ1IpIR7z+7x69lfGVx1MNZWyffL6OnTp7i7uxu/S5OLFDQJ8PIyU+bMmaWgEUmSKROEh0PGjFonESI+Hx+tE4iUFBUbRdf1XTn671Ge8pQZH89I9tdM7i4b0ilYiBSk00kxI4TQXv9t/Tn671GyOGShv3d/reOYhRQ0QgiRzoWEQFSU1ilESllwagEL/BagQ8dvrX7DM5un1pHMQgoaIVLYsWPw2WcwfLjWSYQw6N7d0HL4669aJxHJ7UjQEfr+3ReAiXUm8lGhjzROZD5S0AiRwkJD4bff4K+/tE4ihEFQEOj1kC+f1klEcrr37B6t1rUiJi6GVsVbMeLDEVpHMivpFCxECqtQwTCipHRprZMIYeDvD/fuyeimtO5MyBmeRD6hRI4SLG22NM3Nq6ZTSimtQ1i6p0+f4uzsTFhYmIxyEkIIkWr53/PHyc6JwtkLp9hrptR3qLTQCCGEEGlYbFwsNlaGr/vyucprnCb5SB8aITTw7BkcPQqnT2udRKR3v/wCffrAwYNaJxHJ4fid4xSbXYxj/x7TOkqyk4JGCA3MmwdVqxr60gihpc2bYe5cuHxZ6yTC3ELCQ2i5tiU3Qm/w85GftY6T7OSSkxAaKFkScucGZ2etk4j0rndvKF8ePvhA6yTCnGL0MbT9vS13nt2haPaiLGq6SOtIyU46BSeAdAoW5qaUYdZgIYRIDgO2DWDm8ZlkssvE8R7HKeZSTLMsKfUdKpechNCAFDNCiOSy4swKZh6fCcDKFis1LWZSkhQ0QgiRTt28CVeuQGys1kmEuZwOPs2Xf30JwLc1vqVZsWYaJ0o5Jhc0L168ICIiwnj/9u3bTJ8+nR07dpglmBBp3eLF4O0NP6f9vnrCQk2dCsWKwTffaJ1EmEvBrAX5qNBHNC7SmLG1xmodJ0WZ3Cm4WbNmtGzZkl69evHkyRO8vb2xtbXl4cOHTJ06ld69e5szpxBpzuPHcPw4FCigdRKRXsXGQoYMhk7qIm3IbJ+ZDW03EBkbiZUufV2EMfnd+vn5Ub16dQB+//13XF1duX37NitWrGDmzJkmHXP//v00adKE3Llzo9Pp2Lx583ufs3fvXipUqIC9vT2FChVi2bJlr+0zZ84cChQogIODA97e3hw/ftykfEKYU7NmsG4dTJqkdRKRXv3yi2FOpPbttU6ijbi4OJ48ecLt27c5e/Ys586d4/LlywQEBBAcHExsKroWt//2fl6O8bHSWZHBNoPGiVKeyS00ERERZMqUCYAdO3bQsmVLrKysqFKlCrdv3zbpmM+fP6ds2bJ8/vnntGzZ8r3737x5k08++YRevXqxatUqfH196d69O7ly5aJhw4YArF27lsGDBzNv3jy8vb2ZPn06DRs25MqVK+TMmdOknEKYQ5EihpsQWrKyAjs7rVMkr9jYWE6fPs2hQ4e4dOkS165d4+rVq9y5c4d3DfTV6XTkzJkTNzc3ChYsSPHixSlevDglS5akVKlS2NrapuC7eLvfzv3GZxs/o2OZjixvvjzdtcwYKROVLl1azZgxQwUGBqrMmTOrw4cPK6WUOnnypHJ1dTX1sEaA2rRp0zv3GTZsmCpZsmS8be3atVMNGzY03vfy8lJ9+vQx3tfr9Sp37tzKx8cnwVnCwsIUoMLCwhL8HCGEENq5deuW+vnnn1XDhg2Vk5OTAsx6c3R0VNWrV1dDhw5Vf/31lwoPD9fkfZ6+d1o5fu+oGIf6Ztc3mmR4n5T6DjW5hebbb7/ls88+Y9CgQdStW5eqVasChtaa8uVTZq2II0eOUK9evXjbGjZsyMCBAwGIjo7m1KlTjBw50vi4lZUV9erV48iRI289blRUFFFRUcb7T58+NW9wIf7n6lVDP5oSJQyrcAuRUlasgF9/NVxu6tZN6zTm8ezZM3777TeWLFnCsWPvnurfxcUFDw8PsmbNirOzM5kzZ0an0xETE0N0dDTPnj0jJCSEe/fuvfHy04sXLzhw4AAHDhzgp59+wtbWlg8//JCGDRvSsGFDypYtm+yrWT+KeESLtS14EfuCjwp9xITaE5L19SydyQVN69at+fDDD7l37x5ly5Y1bq9bty4tWrQwS7j3CQ4OxtXVNd42V1dXnj59yosXLwgNDUWv179xn8vvmOfbx8eH8ePHJ0tmIV41fbqhH8OwYVLQiJR1+DDs3AmVK2udJOkCAwOZOnUqixYt4vnz5689nitXLmrUqEGNGjWoUKECRYoUIVu2bAk+vl6v5+bNm1y+fJlLly7h7+/P0aNHuXnzpnGfmJgY9uzZw549exgxYgT58+endevWtGnTBi8vL7MXN/o4Pe03tOfmk5sUzFqQ1S1XY21lbdbXSG1MLmgCAwNxd3fHzc0t3vbKlSsTFBSU5GBaGjlyJIMHDzbef/r0Ke7u7homEmlVlSpw/jzkz691EpHe9OkDlSoZlj1Irf7991/GjRvH8uXLX2tBKVu2LG3atKFly5YUK1YsSQWFtbU1hQoVolChQjRu3Ni4PSQkhEOHDrFz507++eefeAXO7du3+fnnn/n5559xd3endevWdO7cmXLlypmc41Wjdo9iZ8BOMthmYFO7TWR1zGqW46ZmJhc0Hh4e3Lt377WOtY8fP8bDwwO9Xp/kcO/j5uZGSEhIvG0hISFkzpwZR0dHrK2tsba2fuM+/y3EXmVvb4+9vX2yZBbiVZ07G25CpLTSpQ231Cg8PJyJEycyffp0IiMjjdsdHR3p1KkTPXv2pGLFismew9XVlZYtW9KyZUuUUty4cYN//vmHLVu24Ovra/weDAoKYtq0aUybNo0yZcrQpUsXOnTo8NrVg4S68fj/F5tc0nQJZVzLmO09pWYmd4VWSr2x4g0PD8fBwSFJoRKqatWq+Pr6xtu2c+dOY38eOzs7KlasGG+fuLg4fH19jfsIIYRIPbZs2UKJEiX44YcfjMWMs7MzY8aM4fbt28yfPz9Fipn/0ul0FCpUiD59+vDPP/8QEhLCkiVLaNSoUbzRUGfPnuXrr78mT548NG7cmA0bNhATE5Oo1/LM5snOTjv5vvb3tCvVztxvJdVK9OKULy/FzJgxgx49epAhw/+Pddfr9Rw7dgxra2sOHTqU6DDh4eFcv34dgPLlyzN16lRq165NtmzZyJcvHyNHjuTOnTusWLECMAzbLlWqFH369OHzzz9n9+7d9O/fn61bt8Ybtt2lSxfmz5+Pl5cX06dPZ926dVy+fDnB1bEsTimSm1Kg14ONyW2mQiRcQABcugRly0LevFqnSZjQ0FC++uor1qxZY9xmZ2dH3759+eabb8iePbuG6d4tNDSUtWvXsnz5co4ePfra466urnz++ef06NEDDw8PDRImrxT7Dk3ssKhatWqpWrVqKZ1Op6pVq2a8X6tWLdWgQQPVs2dPdfXqVZOGXO3Zs+eNw+O6dOmilFKqS5cuqmbNmq89p1y5csrOzk4VLFhQLV269LXjzpo1S+XLl0/Z2dkpLy8vdfTo0UTlkmHbIjkNH65UtmxKzZ2rdRKRXkyZohQo1aaN1kkSZs+ePSpv3rzxvhfq16+vrl27pnW0RLt8+bL65ptvlLu7+2vfdTqdTjVs2FBt3LhRRUdHx3terD5W9dnaR128f1Gj5KZLqe9Qk+eh6dq1q3r69Kk5s1gsKWhEcho2zPDl0ru31klEejFvnlKlSys1aZLWSd4tLi5O+fj4KCsrK+OXfpYsWdTKlStVXFyc1vGSRK/Xqx07dqjWrVsrGxub14qbXLlyqdGjR6tbt24ppZQa5TtKMQ7l+pOreh79XOP0iZNS36GJuuQ0ePBgvvvuOzJmzMigQYPe2Wt86tSpiWwrslxyyUkkp5s3ISzMsEhgCnU/E8LihYeH07lzZzZt2mTcVqdOHZYtW5bmRp0GBwezdOlSFi5cGG+kFBj65pT/rDx+hf0AWNVyFZ+V/kyLmCZLqe/QRF2x9/f3N3ZeOn369Fv3S+7JhIRIS9LgJXMhkiQkJIRPPvmEU6dOAYbvlLFjxzJmzBisrNLetP5ubm6MHDmS4cOHs3PnTubPn8+WLVvQ6/UoF4VfPkMxk/FsRi5EX+Cm08002dcmqRLdKTg9khYaIYRIGVevXuWjjz4ytlQ4OzuzevVqGjVqpHGylHXv3j3mLp7LD49/INY5Fm4CK4E4w+P169enZ8+eNG3aFDsLX4wrpb5DzVLqKkNfHHMcSoh0adcuGDcO/Py0TiLSus2boWBBGDJE6ySvO3bsGB988IGxmHF3d+fQoUPprpgBcHVz5bTnaWKdY8lhl4NPIj7Bxur/L6rs3LmTNm3akDdvXoYNG8bVq1c1TGsZklTQLF68mFKlSuHg4ICDgwOlSpVi0aJF5somRLqxaBGMH28obIRITmfOGPptPXyodZL4Xq7N9/B/wUqXLs2RI0coWbKkxsm0ER4dztOop9hb27Otyzb+WvcXQUFB+Pj4ULBgQeN+Dx484KeffqJo0aLUrl2blStXEh4ermFy7Zh8yenbb79l6tSp9OvXzzhJ3ZEjR5g9ezaDBg1iwoS0s0iWXHISyW3ZMti/H9q2hY8+0jqNSMtCQw1FjbOz5Sx7cPz4cerXr29cCLh27dps2rQJZ2dnjZNpK0Yfw6l7p6iSt0q87XFxcezZs4cFCxawadOm1ybmy5AhA82bN6djx47Ur18fG40nuEqp71CTC5ocOXIwc+ZM2rdvH2/7b7/9Rr9+/YxVdlogBY0QQiSPU6dOUbduXcLCwgCoV68eW7ZswdHRUeNk2ngW9YxM9pkSvP+DBw9YsWIFCxYseONlpxw5cvDpp5/Spk0bqlWrhrV1yi9gafF9aGJiYqhUqdJr2ytWrPjaImFCCCHEf50/f5769esbi5natWvzxx9/pNti5mnUU7wXeTNw+0Bi9AlbDiFHjhx8/fXXXL58mYMHD9KrV694K4k/ePCAWbNmUaNGDXLnzk3Pnj3Ztm0bUVFRyfU2NGNyC02/fv2wtbV9bb6ZIUOG8OLFC+bMmWOWgJZAWmhESnn8GOztIWNGrZOItOjaNdi6Fby8oFo1bbPcvXuXKlWqEBQUBED16tXZtm0bGdPphz9OxdFqXSs2X95Mnkx58PvSj5wZc77/iW8QHR3N9u3b+fXXX9myZcsbi5dMmTLxySef8NFHH1G/fn1y586d1LfwVhZ5yenlOk4AsbGxLFu2jHz58lGliuH63rFjxwgMDKRz587MmjXL/Gk1IgWNSAlNmsBff8HatYa+NEKY2/z50KsXNGwI27drlyM8PJwaNWrg7+8PQKVKldi9ezeZMiX8UktaM3H/REbvGY2dtR37u+7HO6+3WY4bFhbGli1b2LRpE9u3b+fFixdv3K9kyZI0aNCAunXrUrVq1XitPEllsRPrverliqY3btwAwMXFBRcXFy5cuGCmeEKkH25uhv/evq1tDpF25c0LzZvDBx9olyE2NpZ27doZv08KFCjAX3/9la6Lmb+v/c2YPWMAmNtortmKGTDM49OpUyc6depEREQE//zzD5s2beLPP//kyZMnxv0uXLjAhQsXmDZtGgDFixenWrVqVKtWjYoVK1KsWDHs7e3Nlis5yMR6CSAtNCIlhISAoyPIR0ykZX379jV2SciSJQuHDx+mePHiGqfSzvXH16m0oBJhUWH0qtiLXxr/kiKvGxMTw9GjR9mxYwc7d+7kxIkTxMXFvXV/GxsbihYtSpkyZShVqhSenp54eHhQsGBBsmfP/s4VAizyktNLMTExfPTRR8ybN4/ChQsnRy6LIgWNEEIk3bJly+jWrRsAtra27Ny5k5o1a2qcSjuxcbGUn1+e8/fPU829Gnu67MHOWptZf0NDQ9m9ezeHDh3i0KFD+Pn5JXiAj5OTE3nz5iVHjhzGm4uLC5kyZSJDhgzodDr69etnmQUNGHpWHz58WAoaIYRIBaKjQSlDp3Mt+Pv7U61aNSIjIwFYunQpXbt21SaMBdl0aRMjfEewt8tecmXKpXUcoxcvXnDy5EmOHj3K2bNnOXv2LJcuXXptzpvEsNiCZtCgQdjb2/PDDz+YO5PFkYJGpJR58+DgQRg2DMqU0TqNSEu2bIFWrQx9aNavT9nXfvz4MZUqVTIuadCrVy9++SVlLq2kBrFxsfGWNbBU0dHRXL16lYsXL3Lz5s14t3v37r13hmKL6hT8qtjYWJYsWcKuXbuoWLHia0Pt/jucWwjxfps3wz//QPXqUtAI87p4EWJjDf20UlJcXBwdO3Y0FjNeXl5Mnz49ZUNYmIOBB8nvnB93Z3eAVFHMANjZ2VGqVClKlSr1xsdfvHjBw4cPefDgAQ8fPuT58+dERETw8OFDBg4cmOz5TG6hqV279tsPqtOxe/duk0NZGmmhESll9Wq4dcswhLt0aa3TiLREKfj3X4iJMSxOmVJ+/PFHRowYARhGwvr5+eHu7p5yASxMQGgAlRZUwsbKhr1d91IiRwmtIyU7i+4UnN5IQSOEEInn5+dHlSpViImJQafTsWPHDurVq6d1LM08j35OtSXVOBtyFu883uzrug97G8seCm0OFjkPzX89efKExYsXc+nSJcAwMc/nn3+e7hcUE0KI9C4iIoLPPvvM2Il0+PDh6bqYUUrR/c/unA05i2tGVza03ZAuipmUZPJaTidPnsTT05Np06bx+PFjHj9+zNSpU/H09MTPz8+cGYVIVyIi4NgxwzIIQpjDxYvQt6/hkmZKGTp0KFeuXAGgQoUKjB8/PuVe3AJNPTKVNefXYGNlw/o268mTOY/WkdIckwuaQYMG0bRpU27dusXGjRvZuHEjN2/epHHjxinS+UeItKp2bahSBXx9tU4i0orDh2HOHFi2LGVeb+vWrcydOxcAR0dHVq1ahZ2dNvOrWIJdAbsYtmsYANMbTqd6/uoaJ0qbTL7kdPLkSRYuXIiNzf8fwsbGhmHDhr1xFW4hRMKUKWPoGPyeEZBCJFjZsjB0KBQpkvyvFRoaSvfu3Y33f/75Z4oVK5b8L2zBfjj4A3Eqjq7luvJV5a+0jpNmmVzQZM6cmcDAwNc+qEFBQel6TQ4hkmr2bFi4UOsUIi2pXNlwSwlDhgwhODgYgEaNGtGrV6+UeWELtqX9Fn44+AMjPxz5ziUCRNKYfMmpXbt2fPHFF6xdu5agoCCCgoJYs2YN3bt3p3379ubMKES6YuHrvwnxVr6+vixZsgSATJkyMX/+fPkCBzLYZmBC7Qk42qbwJEDpjMktNFOmTEGn09G5c2fjeg+2trb07t07XcweLIQQqUF4ONy9C56eYG2dfK8TERFBz549jfcnT55M3rx5k+8FLdzMYzN5GvWUb6p/g5XO5LYDkQhJnocmIiKCGzduAODp6UmGDBnMEsySyDw0IqWNGwfbtsHkyZCO1+4TZrB1KzRuDJUqwYkTyfc6Q4cOZcqUKQDUqFGDPXv2YGWVPr/I997aS70V9dArPZvbbaZZsWZaR9JUqpiHBiBDhgyUlilNhTCr8+fh+HE4eVIKGpE0ISGG5Q6Ss0Own5+fcbkbe3t7Fi5cmG6LmcCwQNqub4te6elYpiNNizbVOlK6kToWkBAinenTB9q2hQ8+0DqJSO0+/xy6dIFnz5Ln+HFxcfTp04e4uDgAxo4dS5GUGE5lgV7EvKDl2pY8iHhAebfyzG8sfYhSkhQ0QligdyyVJkSiWVtDlizJc+wVK1Zw9OhRAIoXL86QIUOS54UsnFKK3lt7c+reKbI7Zmdju41ksE17XTAsWfpsExRCCJFkT548Yfjw4cb7s2bNwtbWVsNE2pl7Yi7LzyzHSmfF2tZrKZClgNaR0h2LK2jmzJlDgQIFcHBwwNvbm+PHj79135iYGCZMmICnpycODg6ULVuW7du3x9tHr9czZswYPDw8cHR0xNPTk++++w5Zk1NYusuXYdUqCArSOolIrU6ehAYNDJ3Lk8O4ceO4f/8+AK1bt6Zu3brJ80KpgIONA3bWdkyuN5m6BdPvedCUsiBr1qxRdnZ2asmSJerChQuqR48eKkuWLCokJOSN+w8bNkzlzp1bbd26Vd24cUPNnTtXOTg4KD8/P+M+EydOVNmzZ1d//fWXunnzplq/fr1ycnJSM2bMSHCusLAwBaiwsLAkv0chEqp2baVAqSVLtE4iUqvZsw2foU8+Mf+xz549q6ytrRWgHB0d1e3bt83/IqnM5QeXVVxcnNYxLE5KfYeaNGz74cOHLFmyhCNHjhhnhHRzc6NatWp07dqVHDlymFRceXt7U7lyZWbPng0YOpu5u7vTr18/RowY8dr+uXPnZtSoUfTp08e4rVWrVjg6OvLrr78C0LhxY1xdXVm8ePFb93kfGbYttDBmDOzZAwMHQuvWWqcRqdGNG4Y1wXLlgiZNzHdcpRR16tRh7969AHz//feMGjXKfC+QSkTFRvE85jnZHLNpHcWipdR3aKIvOZ04cYIiRYowc+ZMnJ2dqVGjBjVq1MDZ2ZmZM2dSrFgxTp48megg0dHRnDp1Kt7y8lZWVtSrV48jR4688TlRUVE4ODjE2+bo6MjBgweN96tVq4avry9Xr14F4MyZMxw8eJCPP/74rVmioqJ4+vRpvJsQKe277+DgQSlmhOk8PaFnT/MWMwB//fWXsZgpWLAgX3/9tXlfIJXot60fFRdU5HTwaa2jCEwY5dSvXz/atGnDvHnzXhuOppSiV69e9OvX761FyNs8fPgQvV6Pq6trvO2urq5cvnz5jc9p2LAhU6dOpUaNGnh6euLr68vGjRvR6/XGfUaMGMHTp08pVqwY1tbW6PV6Jk6cSIcOHd6axcfHJ90vdS+EEG8SGxsbryPw5MmTX/vDMj1YcGoBC/0WokNHSHiI1nEEJrTQnDlzhkGDBr1xbL1Op2PQoEGcPn3aHNnea8aMGRQuXJhixYphZ2dH37596datW7wJndatW8eqVatYvXo1fn5+LF++nClTprB8+fK3HnfkyJGEhYUZb0HSK1NoSCl4pUYXIkHu3TPMEnzvnnmPu2TJEi5dugRA1apVadmypXlfIBU4EnSEvn/3BWBS3Uk0LNRQ40QCTCho3Nzc3jny6Pjx46+1siSEi4sL1tbWhITEr3RDQkJwc3N743Ny5MjB5s2bef78Obdv3+by5cs4OTlRsGBB4z5Dhw5lxIgRfPrpp5QuXZpOnToxaNAgfHx83prF3t6ezJkzx7sJoYXevcHFBf76S+skIrX55x/DkgfmXCs4PDycb7/91nj/5Zp+6cm9Z/dota4VMXExtC7RmuEfDH//k0SKSPQlpyFDhtCzZ09OnTpF3bp1jcVLSEgIvr6+LFy40LieR2LY2dlRsWJFfH19ad68OWDoFOzr60vfvn3f+VwHBwfy5MlDTEwMGzZsoG3btsbHIiIiXpuC29ra2jirpRCWLDISHj8Gf39olr6XgxGJZG0NJUtC5crmO+bPP/9s/KOzZcuWVKtWzXwHTwWi9dG0Xt+ae+H3KJmjJEubLU13BZ1FM2Vo1Jo1a5S3t7eysbFROp1O6XQ6ZWNjo7y9vdXatWtNHnK1Zs0aZW9vr5YtW6YuXryoevbsqbJkyaKCg4OVUkp16tRJjRgxwrj/0aNH1YYNG9SNGzfU/v37VZ06dZSHh4cKDQ017tOlSxeVJ08e47DtjRs3KhcXFzVs2LAE55Jh20Ir588rdeqUUi9eaJ1EpFbmGkV87949lTFjRgUoGxsbdeXKFfMcOBUZs3uMYhzK2cdZXX14Ves4qUZKfYeatPRBu3btaNeuHTExMTx8+BAwXDJK6gyR7dq148GDB3z77bcEBwdTrlw5tm/fbmwFCgwMjNfaEhkZyejRowkICMDJyYlGjRqxcuVKsrwyx/esWbMYM2YMX331Fffv3yd37tx8+eWX8ZpNhbBUJUtqnUCkduZqQJg4cSLPnz8H4Msvv0yX6zUNrDKQk3dP0terL4WzF9Y6jvgPk+aheZegoCDGjh3LkiVLzHlYTck8NEKI9CwwMJDChQsTHR1NhgwZuHnzJjlz5tQ6liaUUnKZKZEsdh6a93n8+PE7RxAJIRJnzx4YPx5SaPCgSAM2bDDMQTNypHmO9/333xMdHQ3AgAED0lUxExIewvLT//+dJsWM5Ur0JactW7a88/GAgACTwwghXjdvHqxbB46OUK6c1mlEauDnBwEB8L8eAUkSEBDA0qVLAcicOXO6Wk07Rh9Dm/VtOBB4gMCwQMbUHKN1JPEOiS5omjdvjk6ne+fijlLBCmE+H39sKGZKl9Y6iUgthgyBOnUge/akH2vChAnExsYCMGjQILJlSz/T/H+942sOBB4gk10m2pZs+/4nCE0lug9Nnjx5mDt3Ls3eMob09OnTVKxYMd5svamd9KERQqRHly9fpmTJksTFxZE1a1Zu3ryJs7Oz1rFSxIozK+iyuQsAf3z6B02LNtU4UeplsX1oKlasyKlTp976+Ptab4QQQqQO48ePN87ZNXTo0HRTzJy6e4ov//oSgLE1x0oxk0ok+pLT0KFDjUP33qRQoULs2bMnSaGEEK979AisrCBrVq2TCEvm7w/79kH16lCxounHuXLlCmvXrgUM03L069fPTAkt24PnD2i5riWRsZE0LtKYb2vKFB+pRaJbaKpXr85HH3301sczZsxIzZo1kxRKCBHfl18alkBIQ7MhiGTy558waBBMn5604/zwww/G1vYhQ4bg5OSU9HCpgO9NX4LCgiiSvQi/tvgVK53ZBwOLZGLSxHpCiJSVL5/hv4GB2uYQlq9YMcMyGXXrmn6MW7du8euvvwKQJUsWevfubaZ0lu/TUp+SxSEL+Zzz4eyQPi6xpRVS0AiRCvTuDX36wCuTYAvxRm3bGm5JMXnyZOPIpgEDBqSLwRCvTpj3UaG3X4UQlkva0oRIBbJlk2JGpIx79+4ZZ3p3cnKif//+GidKfv73/Km6uCoBoTKPWmomBY0QQqQRT59CVFTSjvHzzz8T9b+D9O7dO83PO/Mw4iEt1rbg2J1jjNo9Sus4IgmkoBEilfjzT+jYEVat0jqJsFTTpoGTE4wxcULbR48eMW/ePADs7e0ZPHiwGdNZnti4WNpvaM/tsNsUzFqQuY3mah1JJIFJBU1MTAx169bl2rVr5s4jhHgLf39DMfPPP1onEZbqyhWIjYUcOUx7/uzZs43TcnTv3h03NzczprM8o3xHsStgFxlsM7C53WayOsqcCKmZSZ2CbW1tOXv2rLmzCCHeoVEjwzw0MiuCeJtVq8DHBzJmTPxzX7x4wezZswGwtrZm6NChZk5nWdZdWMfkw5MBWNpsKaVdZW2R1M7kS04dO3Zk8eLF5swihHiHSpVg9GjDhGlCvIlOB/nzG+YsSqzly5fz8H+rWbZt25b8+fObOZ3lOBdyjm5/dANgWLVhsk5TGmHysO3Y2FiWLFnCrl27qFixIhn/8yfB1KlTkxxOCCFE8tPr9fF+Z6f1FbWzOmalVM5SONs7M6nuJK3jCDMxuaA5f/48FSpUAODq1avxHpPVtoVIHlFRcOaMrL4tXrdkiaGfVbt28OGHiXvun3/+aewTWadOHePv9rQqb+a87O+6nxexL7C2stY6jjATkwsaWa9JiJT3ww8wbhx06gQrVmidRliSjRth61YoUiTxBc1PP/1k/Dkt9525+OAiJXKUAMDexh57G3uNEwlzStKw7QMHDtCxY0eqVavGnTt3AFi5ciUHDx40SzghRHyVKhn6R5jS6VOkbT17wuDBUKtW4p53+PBhDh8+DECpUqVo2LCh+cNZgA0XN1Bqbim+8f3GuEaVSFtMLmg2bNhAw4YNcXR0xM/PzzgRU1hYGJMmyTVJIZLDxx/D/fvwyy9aJxGWpmlT+PnnxF+K/Pnnn40/DxkyJE12Gbhw/wJdNndBoYiMjUyT71EkoaD5/vvvmTdvHgsXLsTW1ta4/YMPPsDPz88s4YQQ8VlZGUayCGEON2/eZPPmzQDkypWL9u3baxsoGTyJfEKLtS14HvOc2gVqM7n+ZK0jiWRickFz5coVatSo8dp2Z2dnnjx5kpRMQgghEuH8ebh6FeLiEve8uXPnEve/J/Xp0wc7O7tkSKedOBVHx40dufb4Gvmc87G29VpsrGRN5rTK5ILGzc2N69evv7b94MGDFCxYMEmhhBBvt2sXVKliWAZBCIDhw6FoUfjfqgUJ8vz5cxYtWgQYljno2bNnMqXTzvi949l6bSsONg5sareJHBlNnEJZpAomFzQ9evRgwIABHDt2DJ1Ox927d1m1ahVDhgyhd+/e5swohHiFjQ0cOwYHDmidRFgKa2uwtzd0Gk+oVatWGVvT27dvTw5T10uwUBfuX2DC/gkALGi8gAq50vZQdJGEYdsjRowgLi6OunXrEhERQY0aNbC3t2fIkCH069fPnBmFEK+oVMkwxX3lylonEZZiyxaIiTH0sUoIpRQzZ8403k+Lv7NL5izJqparOBN8hk5lO2kdR6QAnUri+LXo6GiuX79OeHg4JUqUwMnJyVzZLMbTp09xdnYmLCyMzJkzax1HCCGSZPfu3dStWxcwDOSQqTZEckqp71CTLzkFBgailMLOzo4SJUrg5eVlLGYCAwPNFlAIIYR5vdo6079/fw2TmFecimPsnrEEhwdrHUVowOSCxsPDgwcPHry2/dGjR3h4eCQplBDi3R4/ht9+gwULtE4itNasmWF+ojNnErb/zZs32bJlCwB58uShRYsWyZguZU3cP5EJ+yfwwZIPiIqN0jqOSGEmFzRKqTdOThQeHo6Dg0OSQgkh3u3aNfjsMxg1CmTS0/QrJgZ27oTt2yGhv3bnzJljnCn3q6++ijePWGq29epWxu4dC8Co6qNkWYN0KNGdggcPHgwYFqAcM2YMGTJkMD6m1+s5duwY5cqVM1tAIcTrypaFatWgQgXDgpXyN0T6ZGUF+/fDiRNQuPD79w8PD483VLtHjx7JnDBlXHt0jQ4bO6BQ9K7Um8/Lf651JKGBRLXQnD17lhMnTuDv749SinPnzuHv72+8Xb58mbJly7Js2TKTA82ZM4cCBQrg4OCAt7c3x48ff+u+MTExTJgwAU9PTxwcHChbtizbt29/bb87d+7QsWNHsmfPjqOjI6VLl+bkyZMmZxRCaw4OcOgQzJolxUx6Zm1tGPXWu3fCRjitWrWKsLAwIO0M1X4W9Yzma5sTFhVGNfdqTP9outaRhEYS1UJTvnx57t27R86cOfHw8GDNmjW4u7ubLczatWsZPHgw8+bNw9vbm+nTp9OwYUOuXLlCzpw5X9t/9OjR/PrrryxcuJBixYrxzz//0KJFCw4fPkz58uUBCA0N5YMPPqB27dps27aNHDlycO3aNbJmzWq23EIIYemUUvzyyiJgaWGotlKKbn904+KDi+RyysXvbX7HzjptzXYsEkElQrZs2dTRo0eVUkpZWVmp+/fvJ+bp7+Xl5aX69OljvK/X61Xu3LmVj4/PG/fPlSuXmj17drxtLVu2VB06dDDeHz58uPrwww+TlCssLEwBKiwsLEnHEcLc4uKUCg7WOoXQyuzZSm3bplRExPv3PXLkiAIUoLy9vZM/XAq4H35fFZtdTNlOsFWHAw9rHUe8RUp9hyaqhaZVq1bUqFGD3LlzA1CpUiWsra3fuG9AQECiCqvo6GhOnTrFyJEjjdusrKyoV68eR44ceeNzoqKiXuuA7OjoGG9OhS1bttCwYUPatGnDvn37yJMnD1999dU7rx1HRUUZVw8Hwxh6ISxNYCBUrAgvXkBYmOHyg0g/nj2Dfv0MncLv3gVHx3fvP++VdRF69eqVzOlSRo6MOTjW/RhHgo5Q1b2q1nGExhJV0CxYsICWLVty/fp1+vfvT48ePciUKZNZgjx8+BC9Xo+rq2u87a6urly+fPmNz2nYsCFTp06lRo0aeHp64uvry8aNG9Hr9cZ9AgIC+OWXXxg8eDDffPMNJ06coH///tjZ2dGlS5c3HtfHx4fx48eb5X0JkVzy5oXoaMMtICBhnUJF2vHsGXToAEFBkCvXu/cNDQ1l7dq1AGTJkoW2bdumQMLkE6OPwdbaMDors31mGhZqqHEiYQkSPcrpo48+AuDUqVMMGDDAbAWNKWbMmEGPHj0oVqwYOp0OT09PunXrxpIlS4z7xMXFUalSJSZNmgQY+gGdP3+eefPmvbWgGTlypHE0FxhaaMzZV0gIc7CygiNHoGBB6RicHuXODStXJmzfFStWEBkZCUDnzp3jjU5NbZ5HP6f60up0KtOJgVUGvnH6EJE+mTwPzdKlS81azLi4uGBtbU1ISEi87SEhIbi5ub3xOTly5GDz5s08f/6c27dvc/nyZZycnOKt9p0rVy5KlCgR73nFixd/52zG9vb2ZM6cOd5NCEtUooQUM+LdlFLxLjd9+eWXGqZJGqUUX2z5Av9gf3489COPXzzWOpKwICYvTvnSxYsXCQwMJDo6Ot72pk2bJuo4dnZ2VKxYEV9fX5o3bw4YWld8fX3p27fvO5/r4OBAnjx5iImJYcOGDfGaUz/44AOuXLkSb/+rV6+SP3/+ROUTQghL8uQJZMny/v32799vvGxfo0aN1/7AS01+PvIzay+sxcbKht/b/k72DNm1jiQsiMkFTUBAAC1atODcuXPodDrjzJMvm/9e7ceSUIMHD6ZLly5UqlQJLy8vpk+fzvPnz+nWrRtgaCrNkycPPj4+ABw7dow7d+5Qrlw57ty5w7hx44iLi2PYsGHGYw4aNIhq1aoxadIk2rZty/Hjx1mwYAELZM54kQbExYGPDxw9CitWgMxGkD4EBxv6zRQrBmfPwrsm+50/f77x59TcOrMrYBfDdw0HYMZHM/gw34caJxIWx9ThUY0bN1bNmjVTDx48UE5OTurixYvqwIEDysvLS+3fv9/kYVezZs1S+fLlU3Z2dsrLy8s4TFwppWrWrKm6dOlivL93715VvHhxZW9vr7Jnz646deqk7ty589ox//zzT1WqVCllb2+vihUrphYsWJCoTDJsW1iyQoWUAqW2b9c6iUgp27cb/s1LlXr3fiEhIcrW1lYBysXFRUVGRqZMQDMLeBygsv2YTTEO1W1zNxUXF6d1JJEIKfUdqlPKtJVgXFxc2L17N2XKlMHZ2Znjx49TtGhRdu/ezddff42/v79ZCy8tpdTS50KYYs4ciI2FFi0gXz6t04iU8ugR3LsHpUq9fZ/JkyczfLihVWPo0KFMnjw5hdKZT1RsFFUWV+F08Gkq5a7EgW4HcLCRjmOpSUp9h5rcKViv1xs7Bbu4uHD37l0A8ufP/1qfFSFE8unTBwYMkGImvcme/d3FTFxcXLzLTT179kyBVOZnZ21Ht3LdyOWUi41tN0oxI97K5D40pUqV4syZM3h4eODt7c3kyZOxs7NjwYIF8UYZCSGESHm7d+82TnBar149ChUqpHEi0+h0Ovp79+eL8l+Q0S6j1nGEBTO5hWb06NHExcUBMGHCBG7evEn16tX5+++/mTlzptkCCiHeLywMdu6E/8x6INKgs2ehUydDJ/B3eXU+rtTYOuN/z5+wyDDjfSlmxPuY3IfmTR4/fkzWrFnT3ERH0odGWLoaNeDAAVi6FLp21TqNSE4zZsDAgfDJJ/DXX2/eJzQ0lFy5chEVFUX27Nm5c+cO9vb2KZozKQLDAqm0oBJZHbOyo+MO8meRaTZSs5T6Dk3yPDSvypYtmzkPJ4RIoCpV4M4dMGG2BJHK1KwJY8cahmy/zapVq4zr0XXq1ClVFTMvYl7Qcm1LHkQ8IG/mvOTMmFPrSCKVMGsLTVolLTTC0un1sjil+H8VKlQwjjQ9e/YspUuX1jhRwiil6PZHN5afWU52x+yc7HmSAlkKaB1LJJHFj3ISQlgOKWbES/7+/sZipnLlyqmmmAGYe2Iuy88sx0pnxdrWa6WYEYkiBY0QaYy0uaZd167ByZMQE/P2fV7tDPzFF1+kQCrzOHD7AAP/GQjA5HqTqVuwrraBRKpjckETGBjIm65WKaXeufCjECJ5LFgAxYsblkIQadMvv0DlyjB48Jsfj4yMZNWqVQA4Ojry6aefpmA60ymlGLxjMLFxsXxa6lMGV33LGxTiHUwuaDw8PHjw4MFr2x8/foyHh0eSQgkhEi8qCi5fNox2EmmTlZVhvS5v7zc/vnnzZkJDQwFo3bo1zs7OKZjOdDqdjr/a/0XPCj1Z1GRRmhspK1KGyaOclFJv/NCFh4fj4CAzOQqR0po1g/z5oVo1rZOI5DJlCkye/PbRbIsXLzb+nJouNwG4Orkyv8n89+8oxFskuqAZ/L+2Tp1Ox5gxY8iQIYPxMb1ez7FjxyhXrpzZAgohEiZfPln+ID2wsjLc/uvWrVv4+voC4OnpSY0aNVI4WeIt8luEvbU9ncp20jqKSAMSXdC87D2vlOLcuXPY2dkZH7Ozs6Ns2bIMGTLEfAmFEEKgFLzrSsyyZcuM/Ro///xzi79sczjoMF9t/YqYuBhyZcpFvYL1tI4kUrlEFzR79uwBoFu3bsycOdO4QKUQQnv37sGWLYYvv169tE4jzKljR7h1C77/HmrXjv+YXq9n6dKlAFhZWdGlS5eUD5gId5/dpdW6VsTExdC6RGvqesiIJpF0JncKXrp0KadPn6Zjx45Uq1aNO3fuALBy5UoOHjxotoBCiIS7cMFQyPzwg9ZJhDkpZVir6/BheKVR3Gj37t3G0aUfffQRefLkSeGECRetj6b1utYEhwdTMkdJljZbavGtSSJ1MLmg2bBhAw0bNsTR0RE/Pz/jNNthYWFMmjTJbAGFEAnn7Q1160LnzhAbq3UaYU5HjhjW6qpU6fXHUlNn4AHbBnDk3yNkccjC5k8342TnpHUkkUaYvPRB+fLlGTRoEJ07dyZTpkycOXOGggUL4u/vz8cff0xwcLC5s2pGlj4QQliq0NBQ3NzciI6OJkeOHPz777/x+jZakkV+i+jxZw906Pjrs79oVLiR1pFECrD4pQ+uXLnyxl70zs7OPHnyJCmZhBBCJNC6deuIjo4GoEOHDhZbzADce3YPgO9qfyfFjDA7kwsaNzc3rl+//tr2gwcPUrBgwSSFEkIkTWwsXLyodQphLmPHwvr18OLF64+tWLHC+LOldwYeU3MMhz4/xMjqI7WOItIgkyfW69GjBwMGDGDJkiXodDru3r3LkSNHGDJkCGPGjDFnRiFSPaUUt2/f5tChQwQFBREaGkpUVBRubm7kzZsXLy8vChcubJbOkY8fG+ajefECnjwBGYiYut29CxMmGOaeCQ0FR8f/f+z69escPnwYgNKlS1O2bFmNUr5djD4GvdLjYGOYcLWau8z8KJKHyQXNiBEjiIuLo27dukRERFCjRg3s7e0ZMmQI/fr1M2dGIVKtgIAAFi5cyOrVq9+7xpmHhwdNmzalb9++FCpUyOTXzJYNXFwMxcy1a1ChgsmHEhZAr4e+feHRI/hv94OVK1caf+7cubNFjhYa/M9gjt45ysa2G3F3dtc6jkjDTO4U/FJ0dDTXr18nPDycEiVK4OSU9nqsS6dgkVg3btxg2LBhbNy4MdHP1el0NG/enEmTJlGsWDGTXv/OHciV680zyoq0IS4uDk9PT27duoWVlRVBQUHkzp1b61jxLDu9jG5/dAPgz/Z/0rhIY40TCS2k1HeoyS00L9nZ2VGiRAlzZBEi1Xvx4gXjxo1j2rRpxMTEGLfb2NhQs2ZNqlevTpkyZciaNSu2trbcu3eP69evs2vXLg4cOEB0dDRKKTZt2sRff/3F8OHD+eabb3B89TpDAljwNCTCTA4dOsStW7cAqF+/vsUVMyfvnqTXX4bZHcfVHCfFjEh2SSpofH198fX15f79+8TFxcV7bMmSJUkKJkRqc+nSJdq1a8e5c+eM29zc3Ojfvz/dunXDzc3trc8dMWIEoaGhzJ8/n5kzZ3Lv3j1iYmL4/vvv2bhxI5s2baJIkSIp8TaEBYmIgOBg8PB4fdmDVzsDd+7cOYWTvduD5w9oubYlUfoomhRpwpia0q9SJD+TG6THjx9PgwYN8PX15eHDh4SGhsa7CZGerF27looVKxqLGXt7e0aNGsXVq1cZOXLkO4uZl7JmzcqIESO4ceMG33zzDba2tgBcvHiRypUrs2XLlkRlmjwZPvgAjh9P/PsRlmHvXvD0hP/OkPHixQvWrVsHgJOTE82bN0/xbG8TGxdL29/bEvQ0iCLZi7CyxUqsdHLtU6QAZSI3Nze1YsUKU5+eqoSFhSlAhYWFaR1FWJi4uDg1ZcoUBRhvJUuWVOfPn0/ysc+fP69KliwZ79hz585N8PObN1cKlPLxSXIUoZE5c5SytVWqa9f429esWWP8THTr1k2bcG/xza5vFONQTpOc1IX7F7SOIyxASn2Hmlw2R0dHU62aDL8T6ZdSiiFDhsRbXb5bt24cP36ckiVLJvn4JUuW5OjRo7Rt29a47auvvmLKlCkJen7v3rB4MXTokOQoQiNffWUYrfbftbks+XJT9wrdKedWjuXNl1Mih/SvFCnH5FFOw4cPx8nJKV3MOSOjnMR/KaUYPnw4P/30k3HbhAkTGD16tNmHziql+Oabb/jhlW+1H374geHDh5v1dUTqEBwcTN68edHr9eTLl4+bN29iZWHD2WLjYrGxSvKYE5FGWPwop8jISBYsWMCuXbsoU6aM8Xr/S1OnTk1yOCEs1fjx443FjE6nY8GCBXTv3j1ZXkun0+Hj44OTkxOjR48GDJ2I3dzcLH5mWGF+q1evRq/XA9CpUyeLKGYeRjzE754fDTwbAEgxIzRh8qfu7NmzlCtXDoDz58/He8wSJ3cSwlzmzZvH+PHj491PrmLmVaNGjcLKyopvvvkGMKyqnDNnTj7++OO3PufhQ0PH0qxZDatwi9Rj6lTDv12vXtDolWWPLO1yU2xcLJ/+/im7b+5m7idz6VWpl9aRRHqVrD10TDR79myVP39+ZW9vr7y8vNSxY8feum90dLQaP368KliwoLK3t1dlypRR27Zte+v+Pj4+ClADBgxIcB7pFCxe2rFjh7K2tjZ2yJw2bVqKvn5cXJzq27ev8fWdnJzUpUuX3rr/lCmGjsGffJKCIYVZ1Kpl+LebN+//t50+fdr4b1+lShXtwr1i6I6hinGojBMzqnMh57SOIyyQxXcKTi5r165l8ODBjB07Fj8/P8qWLUvDhg25f//+G/cfPXo08+fPZ9asWVy8eJFevXrRokUL/P39X9v3xIkTzJ8/nzJlyiT32xBp0KVLl2jTpo2xuX/o0KEMHDgwRTPodDqmT59Oq1atAAgPD6dFixY8ffr0jfvXrg2lS4MFLvEj3mPqVPjpJ2jY8P+3/XepA62tPb+Wnw4bLr0ubbaUUjlLaZxIpGdJXvrg4sWLBAYGGpevf6lp06YmHc/b25vKlSsze/ZswDC9t7u7O/369WPEiBGv7Z87d25GjRpFnz59jNtatWqFo6Mjv/76q3FbeHg4FSpUYO7cuXz//feUK1eO6dOnJyiTdAoW4eHhVK5cmcuXLwPQrFkzNmzYgLW1tSZ5nj9/TtWqVY3z3rRo0YINGzbI5d40LDY2Fnd3d4KDg7G1tSU4OJhs2bJpludsyFmqLq5KREwEwz8Yzg/1fnj/k0S6ZPGdggMCAmjRogXnzp1Dp9Pxsi56+Qv15V+xiREdHc2pU6cYOfL/l5a3srKiXr16HDly5I3PiYqKwsHBId42R0dHDh48GG9bnz59+OSTT6hXrx7ff//9O3NERUURFRVlvP+2v35F+qCU4ssvvzQWM2XKlOHXX3/VrJgByJgxI5s2baJSpUo8efKETZs2MWvWLPr3769ZJpG8du3aRXBwMABNmjTRtJh5/OIxLda2ICImggaeDZhYZ6JmWYR4yeRLTgMGDMDDw4P79++TIUMGLly4wP79+6lUqRJ79+416ZgPHz5Er9fj6uoab7urq6vxf+T/atiwIVOnTuXatWvExcWxc+dONm7cyL1794z7rFmzBj8/P3x8fBKUw8fHB2dnZ+PN3V1WiE3PXq6WDZApUyZ+//13i1iE1dPTM14r5LBhw17roP+SUvCWq7bCAi1cCLt3wyt/V1lUZ+A159cQEBqARxYPfmv1G9ZW2hX3QhiZ2vkme/bs6syZM0oppTJnzqwuX76slFLK19dXlStXzqRj3rlzRwHq8OHD8bYPHTpUeXl5vfE59+/fV82aNVNWVlbK2tpaFSlSRH311VfKwcFBKaVUYGCgypkzpzGrUkrVrFnznZ2CIyMjVVhYmPEWFBQknYLTqYsXLyoHBwdjR8x169ZpHek1AwYMMOYrU6aMioyMjPd4QIBSefIolTWrUnq9RiFFgj1/bpgdGJS6ds2wLSwszPg5zJ49u4qKitI2pFJq4amF6vS901rHEKmAxXcK1uv1ZMqUCQAXFxfu3r0LQP78+bly5YpJx3RxccHa2pqQkJB420NCQt66Fk6OHDnYvHkzz58/5/bt21y+fBknJycKFiwIwKlTp7h//z4VKlTAxsYGGxsb9u3bx8yZM7GxsXnjpTF7e3syZ84c7ybSn5iYGDp16kRkZCRguGzZpk0bjVO97ocffqBUKUNnzLNnz/Ltt9/Ge9zdHcLCIDwcbtzQIqFIjLAwaNMGvLwM6zgB/P7778bPYfv27bGzs9MwoUH3Ct0p6ya9zYXlMLmgKVWqFGfOnAEMHXknT57MoUOHmDBhgrGYSCw7OzsqVqyIr6+vcVtcXBy+vr5UrVr1nc91cHAgT548xMbGsmHDBpo1awZA3bp1OXfuHKdPnzbeKlWqRIcOHTh9+rSm/SCEZfv+++85deoUAMWKFYs3K7AlcXBwYPXq1cYvuSlTpuDn52d83MYGDhwwTKFfuLBGIUWC5coFq1bBsWP/v8K2JVxuunD/Ai3WtuBRxCNNXl+I9zK1aWf79u1qw4YNSimlrl27pooWLap0Op1ycXFRu3btMrnJaM2aNcre3l4tW7ZMXbx4UfXs2VNlyZJFBQcHK6WU6tSpkxoxYoRx/6NHj6oNGzaoGzduqP3796s6deooDw8PFRoa+tbXeN8lp/+SeWjSn5MnTxrnm7GxsVEnTpzQOtJ7ff/998ZLT+XKlVPR0dFaRxJmcPPmTeO/a7FixVRcXFyKZwh9EaoKzyysGIfqsqlLir++SN1S6jvU5FFODV+ZHKFQoUJcvnyZx48fkzVr1iQNHW3Xrh0PHjzg22+/JTg4mHLlyrF9+3ZjR+HAwMB4U31HRkYyevRoAgICcHJyolGjRqxcuZIsWbKYnEGkb7GxsfTo0cN4OXLMmDFUqlRJ41TvN2zYMNauXWtskZw6daqs95TKREUZLg1mz/7/217t+N25c+cUH5ofp+LouLEj1x5fI79zfqY0SNjiqEKktETNQzN48OAEHzgtreUk89CkL1OnTuXrr78GDEO0T548+dpaZZbqxIkTVKlShbi4OBwcHLh06RIFChQADCtvb9oEY8aAt7e2OcWb/fMPfPQRNG4Mf/5pmDKgaNGiXLt2DZ1Ox61bt8iXL1+KZhq7ZywT9k/AwcaBQ58fokKuCin6+iL1s8h5aN40++6byOReIrW6ffu2cQX5l4tOppZiBqBy5cr079+f6dOnExkZyddff82GDRsA2LEDtm41dDaVgsYy/W+eRFxcDP89duwY165dA6B27dopXsz8cfkPJuyfAMCCxgukmBEWLVEFzZ49e5IrhxCaU0rRp08fIiIiAPjqq6/wToXf/OPHj+e3334jJCSEjRs3snPnTurXr0+3blC5suGvf2GZhgyBTp3gxQvDfS07A19+eJlOmzoB0N+rP53KdkrR1xcisZK89AHw2izBaY1cckof1q9fT9u2bQHDkhqXLl1Ktf/eK1asoEuXLoBhhNaZM2csYqivSLioqChy5cpFaGgoGTJkIDg42DhVRko4f/88TX9riruzO7s67cLWOvW0VArLklLfoUlanHLx4sWUKlUKBwcHHBwcKFWqFIsWLTJXNiFSzPPnzxk0aJDx/qxZs1JtMQPQsWNH41QHly9fZt68eRonEom1detWQkNDAWjZsmWKFjMApXKW4mTPk/ze5ncpZkSqYHJB8+233zJgwACaNGnC+vXrWb9+PU2aNGHQoEGvTewlhKX78ccfuXPnDgCffPIJLVq00DhR0lhZWTFr1izj/e+++46nT58SGWmYUn/bNg3DiTcaPRq6doWTJw33tbrcdO/Z/y8bk80xGzky5kix1xYiSUwd7+3i4qJWr1792vbVq1er7Nmzm3pYiyTz0KRtt27dMk4rb2trq65evap1JLNp3769cQ6TUaNGqd9+M0ypX7as1snE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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(6,4))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlim(a_grid[0],a_grid[-1])\n", + "ax.set_ylim(np.min(x_exact),np.max(x_exact)*1.01)\n", + "ax.set_xlabel(\"initial semi-major axis of the outer planet\")\n", + "ax.set_ylabel(\"$x$ position of inner planet after 10 orbits\")\n", + "ax.plot(a_grid, x_exact, \"-\", color=\"black\", lw=2)\n", + "ax.plot(a_grid, x_1st_order, \"--\", color=\"green\")\n", + "ax.plot(a_grid, x_2nd_order, \":\", color=\"blue\")\n", + "ax.plot(a_0, x, \"ro\",ms=10);" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "For chaotic systems, the coordinates of variational particles grow exponentially. Very quickly, one might run into numerical issues because the finite range of floating point numbers prevents us from working with number larger than $\\approx10^{308}$. REBOUND (as of version 3.21) automatically rescales first order variational variables when coordinates become larger than $10^{100}$. This is possible because first order variational equations (in contrast to second order ones) are linear.\n", + "\n", + "Consider the following chaotic planetary system:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.) # Star\n", + "sim.add(m=0.000954, a=5.204, M=0.600, omega=0.257, e=0.048) # planet 1\n", + "sim.add(m=0.000285, a=7.2, M=0.871, omega=1.616, e=0.12) # planet 2\n", + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us add a first order set of variational equations:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "v = sim.add_variation()\n", + "v.particles[1].x = 1 " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we integrate this forward in time, keeping track of the x coordinate of the variational particle as well as the `lrescale` parameter in the `reb_variational_configuration` struct `v`. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrator = \"whfast\"\n", + "sim.dt = 5.0\n", + "times = np.linspace(0,1e6,1000)\n", + "xs = np.zeros(len(times))\n", + "lrescale = np.zeros(len(times))\n", + "\n", + "for i in range(len(times)):\n", + " sim.integrate(times[i], exact_finish_time=0)\n", + " xs[i] = v.particles[1].x\n", + " lrescale[i] = v.lrescale" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then use `lrescale` to extend our integration beyond what would normally be possible using standard floating point numbers. The `lrescale` parameter is the logarithm of all rescalings that have been applied to the variational particles. Note that we need to do all the calculations in log space because the values are too big for floating point numbers." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "log_xs = np.log(np.abs(xs)) + lrescale\n", + "log10_xs = log_xs/np.log(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "ax.set_ylabel(\"$|x|$\")\n", + "ax.set_xlabel(\"time [orbits]\")\n", + "ax.plot(times/sim.particles[1].P, np.log10(np.abs(xs)), label= \"actual x coordinate of variational particle \\n (not taking rescaling into account)\")\n", + "ax.plot(times/sim.particles[1].P, log10_xs, label= \"x coordinate of variational particle \\n (rescaling taken into account)\")\n", + "plt.axhline(y=308, color='k', linestyle='--', label = \"maximum range of floating point numbers\")\n", + "ax.yaxis.set_major_formatter(FormatStrFormatter('$10^{%.f}$'))\n", + "ax.legend(loc=\"upper left\");" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/VariationalEquationsWithChainRule.ipynb b/rebound/source/docs/ipython_examples/VariationalEquationsWithChainRule.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..0a1d20d4e2a3294ca887b1494cfd8bbd773b84e1 --- /dev/null +++ b/rebound/source/docs/ipython_examples/VariationalEquationsWithChainRule.ipynb @@ -0,0 +1,395 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Using Variational Equations With the Chain Rule\n", + "\n", + "For a complete introduction to variational equations, please read the paper by Rein and Tamayo (2016).\n", + "\n", + "Variational equations can be used to calculate derivatives in an $N$-body simulation. More specifically, given a set of initial conditions $\\alpha_i$ and a set of variables at the end of the simulation $v_k$, we can calculate all first order derivatives\n", + "$$\\frac{\\partial v_k}{\\partial \\alpha_i}$$\n", + "as well as all second order derivates\n", + "$$\\frac{\\partial^2 v_k}{\\partial \\alpha_i\\partial \\alpha_j}$$\n", + "\n", + "For this tutorial, we work with a two planet system. \n", + "\n", + "We first chose the semi-major axis $a$ of the outer planet as an initial condition (this is our $\\alpha_i$). At the end of the simulation we output the velocity of the star in the $x$ direction (this is our $v_k$). \n", + "\n", + "To do that, let us first import REBOUND and numpy." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function takes $a$ as a parameter, then integrates the two planet system and returns the velocity of the star at the end of the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def calculate_vx(a):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.) # star\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1) # inner planet\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=a) # outer planet\n", + " sim.integrate(2.*np.pi*10.) # integrate for ~10 orbits\n", + " return sim.particles[0].vx # return star's velocity in the x direction" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0004924175842478658" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "calculate_vx(a=1.5) # initial semi-major axis of the outer planet is 1.5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we run the simulation again, with a different initial $a$, we get a different velocity:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.000750246684761206" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "calculate_vx(a=1.51) # initial semi-major axis of the outer planet is 1.51" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We could now run many different simulations to map out the parameter space. This is a very simple example of a typical use case: the fitting of a radial velocity datapoint. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "However, we can be smarter than simple running an almost identical simulation over and over again by using variational equations. These will allow us to calculate the *derivate* of the stellar velocity at the end of the simulation. We can take derivative with respect to any of the initial conditions, i.e. a particle's mass, semi-major axis, x-coordinate, etc. Here, we want to take the derivative with respect to the semi-major axis of the outer planet. The following function does exactly that:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def calculate_vx_derivative(a):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.) # star\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1) # inner planet\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=a) # outer planet\n", + " \n", + " v1 = sim.add_variation() # add a set of variational particles\n", + " v1.vary(2,\"a\") # initialize the variational particles \n", + " \n", + " sim.integrate(2.*np.pi*10.) # integrate for ~10 orbits\n", + " return sim.particles[0].vx, v1.particles[0].vx # return star's velocity and its derivative" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note the two new functions. `sim.add_variation()` adds a set of variational particles to the simulation. All variational particles are by default initialized to zero. We use the `vary()` function to initialize them to a variation that we are interested in. Here, we initialize the variational particles corresponding to a change in the semi-major axis, $a$, of the particle with index 2 (the outer planet). " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(0.0004924175842478302, 0.026958628196580445)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "calculate_vx_derivative(a=1.5) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use the derivative to construct a Taylor series expansion of the velocity around $a_0=1.5$:\n", + "$$v(a) \\approx v(a_0) + (a-a_0) \\frac{\\partial v}{\\partial a}$$" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.000762003866214\n" + ] + } + ], + "source": [ + "a0=1.5\n", + "va0, dva0 = calculate_vx_derivative(a=a0) \n", + "def v(a):\n", + " return va0 + (a-a0)*dva0\n", + "print(v(1.51))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Compare this value with the explicitly calculate one above. They are almost the same! But we can do even better, by using second order variational equations to calculate second order derivatives." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def calculate_vx_derivative_2ndorder(a):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.) # star\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1) # inner planet\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=a) # outer planet\n", + " \n", + " v1 = sim.add_variation() \n", + " v1.vary(2,\"a\") \n", + " \n", + " # The following lines add and initialize second order variational particles\n", + " v2 = sim.add_variation(order=2, first_order=v1) \n", + " v2.vary(2,\"a\") \n", + " \n", + " sim.integrate(2.*np.pi*10.) # integrate for ~10 orbits\n", + " # return star's velocity and its first and second derivatives\n", + " return sim.particles[0].vx, v1.particles[0].vx, v2.particles[0].vx " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using a Taylor series expansion to second order gives a better estimate of `v(1.51)`. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.000755071182773\n" + ] + } + ], + "source": [ + "a0=1.5\n", + "va0, dva0, ddva0 = calculate_vx_derivative_2ndorder(a=a0) \n", + "def v(a):\n", + " return va0 + (a-a0)*dva0 + 0.5*(a-a0)**2*ddva0\n", + "print(v(1.51))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Now that we know how to calculate first and second order derivates of positions and velocities of particles, we can simply use the chain rule to calculate more complicated derivates. For example, instead of the velocity $v_x$, you might be interested in the quantity $w\\equiv(v_x - c)^2$ where $c$ is a constant. This is something that typically appears in a $\\chi^2$ fit. The chain rule gives us:\n", + "$$ \\frac{\\partial w}{\\partial a} = 2 \\cdot (v_x-c)\\cdot \\frac{\\partial v_x}{\\partial a}$$\n", + "The variational equations provide the $\\frac{\\partial v_x}{\\partial a}$ part, the *ordinary* particles provide $v_x$." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1.039395710603212, -0.05496905171588172)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def calculate_w_derivative(a):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.) # star\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1) # inner planet\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=a) # outer planet\n", + " \n", + " v1 = sim.add_variation() # add a set of variational particles\n", + " v1.vary(2,\"a\") # initialize the variational particles \n", + " \n", + " sim.integrate(2.*np.pi*10.) # integrate for ~10 orbits\n", + " \n", + " c = 1.02 # some constant\n", + " w = (sim.particles[0].vx-c)**2\n", + " dwda = 2.*v1.particles[0].vx * (sim.particles[0].vx-c)\n", + " \n", + " return w, dwda # return w and its derivative\n", + "calculate_w_derivative(1.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similarly, you can also use the chain rule to vary initial conditions of particles in a way that is not supported by REBOUND by default. For example, suppose you want to work in some fancy coordinate system, using $h\\equiv e\\sin(\\omega)$ and $k\\equiv e \\cos(\\omega)$ variables instead of $e$ and $\\omega$. You might want to do that because $h$ and $k$ variables are often better behaved near $e\\sim0$. In that case the chain rule gives us:\n", + "$$\\frac{\\partial p(e(h, k), \\omega(h, k))}{\\partial h} = \\frac{\\partial p}{\\partial e}\\frac{\\partial e}{\\partial h} + \\frac{\\partial p}{\\partial \\omega}\\frac{\\partial \\omega}{\\partial h}$$\n", + "where $p$ is any of the particles initial coordinates. In our case the derivates of $e$ and $\\omega$ with respect to $h$ are:\n", + "$$\\frac{\\partial \\omega}{\\partial h} = -\\frac{k}{e^2}\\quad\\text{and}\\quad \\frac{\\partial e}{\\partial h} = \\frac{h}{e}$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With REBOUND, you can easily implement this. The following function calculates the derivate of the star's velocity with respect to the outer planet's $h$ variable." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(-0.0006022810748296454, 0.002107215810994136)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def calculate_vx_derivative_h():\n", + " h, k = 0.1, 0.2\n", + " e = float(np.sqrt(h**2+k**2))\n", + " omega = np.arctan2(k,h)\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.) # star\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1) # inner planet\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1.5, e=e, omega=omega) # outer planet\n", + " \n", + " v1 = sim.add_variation() \n", + " dpde = rebound.Particle(simulation=sim, particle=sim.particles[2], variation=\"e\")\n", + " dpdomega = rebound.Particle(simulation=sim, particle=sim.particles[2], m=1e-3, a=1.5, e=e, omega=omega, variation=\"omega\")\n", + " v1.particles[2] = h/e * dpde - k/(e*e) * dpdomega\n", + " \n", + " sim.integrate(2.*np.pi*10.) # integrate for ~10 orbits\n", + " # return star's velocity and its first derivatives\n", + " return sim.particles[0].vx, v1.particles[0].vx\n", + "calculate_vx_derivative_h()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that in the above function, there are expressions such as `h/e * dpde`. `h/e` is just a number, but `dpde` is actually a particle structure. REBOUND multiplies each cartesian component of that particle with the number `h/e`. Similarly, the particles are subtracted componentwise when using the `-` operator.\n", + "\n", + "We can use the `v1.particles[i] = ...` syntax to directly set a variational particle's initial conditions. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/WHFast.ipynb b/rebound/source/docs/ipython_examples/WHFast.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..879a2b3adf51e0d3d0ab514df2c21c7cac77c4c8 --- /dev/null +++ b/rebound/source/docs/ipython_examples/WHFast.ipynb @@ -0,0 +1,554 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# WHFast tutorial\n", + "\n", + "This tutorial is an introduction to the python interface of WHFast, a fast and unbiased symplectic Wisdom-Holman integrator. This integrator is well suited for integrations of planetary systems in which the planets stay roughly on their orbits. If close encounters and collisions occur, then WHFast is not the right integrator. The WHFast method is described in detail in Rein & Tamayo (2015).\n", + "\n", + "This tutorial assumes that you have already installed REBOUND." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**First WHFast integration**\n", + "\n", + "You can enter all the commands below into a file and execute it all at once, or open an interactive shell).\n", + "\n", + "First, we need to import the REBOUND module (make sure you have enabled the virtual environment if you used it to install REBOUND)." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we create a REBOUND simulation instance. This object encapsulated all the variables and functions that REBOUND has to offer. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we can add particles. We'll work in units in which $G=1$ (see [Units.ipynb](../Units) for using different units). The first particle we add is the central object. We place it at rest at the origin and use the convention of setting the mass of the central object $M_*$ to 1:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "sim.add(m=1.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's look at the particle we just added:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "print(sim.particles[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "The output tells us that the mass of the particle is 1 and all coordinates are zero. \n", + "\n", + "The next particle we're adding is a planet. We'll use Cartesian coordinates to initialize it. Any coordinate that we do not specify in the `sim.add()` command is assumed to be 0. We place our planet on a circular orbit at $a=1$ and give it a mass of $10^{-3}$ times that of the central star." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "sim.add(m=1e-3, x=1., vy=1.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Instead of initializing the particle with Cartesian coordinates, we can also use orbital elements. By default, REBOUND (as well as WHFast internally) will use Jacobi coordinates, i.e. REBOUND assumes the orbital elements describe the particle's orbit around the center of mass of all particles added previously. Our second planet will have a mass of $10^{-3}$, a semimajoraxis of $a=2$ and an eccentricity of $e=0.1$ (note that you shouldn't change G after adding particles this way, see [Units.ipynb](../Units)):" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "sim.add(m=1e-3, a=2., e=0.1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have added two more particles, let's have a quick look at what's in this simulation by using" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t3.4.0\n", + "REBOUND built on: \tMay 31 2017 11:53:50\n", + "Number of particles: \t3\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see that REBOUND used the `ias15` integrator as a default. Next, let's tell REBOUND that we want to use `WHFast` instead. We'll also set the timestep. In our system of units, an orbit at $a=1$ has an orbital period of $T_{\\rm orb} =2\\pi \\sqrt{\\frac{a^3}{GM}}= 2\\pi$. So a reasonable timestep to start with would be $dt=10^{-3}$ (see Rein & Tamayo 2015 for some discussion on timestep choices)." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "sim.integrator = \"whfast\"\n", + "sim.dt = 1e-3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`whfast` refers to the 2nd order symplectic integrator WHFast described by Rein & Tamayo (2015). By default, no symplectic correctors are used, but they can be easily turned on (see [Advanced Settings for WHFast](../AdvWHFast)). \n", + "\n", + "We are now ready to start the integration. Let's integrate the simulation for one orbit, i.e. until $t=2\\pi$. Because we use a fixed timestep, rebound would have to change it to integrate exactly up to $2\\pi$. \n", + "\n", + "**Note: The default is for sim.integrate to simulate up to exactly the time you specify. This means that in general it has to change the timestep close to the output time to match things up. A changing timestep breaks WHFast's symplectic nature, so when using WHFast, you typically want to pass the `exact_finish_time = 0` flag, which will instead integrate up to the timestep which is nearest to the endtime that you have passed to `sim.integrate`.**" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrate(6.28318530717959, exact_finish_time=0) # 6.28318530717959 is 2*pi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once again, let's look at what REBOUND's status is" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t3.4.0\n", + "REBOUND built on: \tMay 31 2017 11:53:50\n", + "Number of particles: \t3\n", + "Selected integrator: \twhfast\n", + "Simulation time: \t6.2839999999992369e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see the time has advanced to $t=2\\pi$ and the positions and velocities of *all* particles have changed. If you want to post-process the particle data, you can access it in the following way:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.003326154866766361 0.009674635911450204 0.0005194654213133196 0.0012200269278386914\n", + "1.0032694180883746 0.0366289427053581 -0.024395944012027243 0.9999782071644221\n", + "-1.5284252838557046 1.496351615582015 -0.4950694773013606 -0.4364888285516785\n" + ] + } + ], + "source": [ + "particles = sim.particles\n", + "for p in particles:\n", + " print(p.x, p.y, p.vx, p.vy)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `particles` object is an array of pointers to the particles. This means you can call `particles = sim.particles` before the integration and the contents of `particles` will be updated after the integration. If you add or remove particles, you'll need to call `sim.particles` again." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Visualization with matplotlib**\n", + "\n", + "Instead of just printing boring numbers at the end of the simulation, let's visualize the orbit using matplotlib (you'll need to install numpy and matplotlib to run this example, see [Installation](../Installation)).\n", + "\n", + "We'll use the same particles as above. As the particles are already in memory, we don't need to add them again. Let us plot the position of the inner planet at 100 steps during its orbit. First, we'll import numpy and create an array of times for which we want to have an output (here, from $T_{\\rm orb}$ to $2 T_{\\rm orb}$ (we have already advanced the simulation time to $t=2\\pi$)." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "torb = 2.*np.pi\n", + "Noutputs = 100\n", + "times = np.linspace(torb, 2.*torb, Noutputs)\n", + "x = np.zeros(Noutputs)\n", + "y = np.zeros(Noutputs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we'll step through the simulation. Rebound will integrate up to `time`. Depending on the timestep, it might overshoot slightly. If you want to have the outputs at exactly the time you specify, you can set the `exact_finish_time=1` flag in the `integrate` function (or omit it altogether, 1 is the default). However, note that changing the timestep in a symplectic integrator could have negative impacts on its properties." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "for i,time in enumerate(times):\n", + " sim.integrate(time, exact_finish_time=0)\n", + " x[i] = particles[1].x\n", + " y[i] = particles[1].y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's plot the orbit using matplotlib." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUwAAAEzCAYAAABaGjpLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VPW9//HXJ3uAJOxJIAn7DioaFoG61KVIrVitFe2idUFb7Xa7edv7895fa/fb9tdWrxaXutxWrbZUqihq1aIiSED2RUPYspAEAgkhe/L9/ZHBppCQQ2YyZyZ5Px+PeeTMmW/m+8lJ8p6zfc8x5xwiItK5GL8LEBGJFgpMERGPFJgiIh4pMEVEPFJgioh4pMAUEfEo6MA0s2wze93MtpnZVjP7ajttzMx+Y2b5ZrbJzM4Otl8RkXCLC8F7NAHfcM6tN7MUYJ2ZveKc29amzWXAuMBjFnB/4KuISNQIeg3TOVfinFsfmD4KbAeGn9BsIfC4a7Ua6G9mmcH2LSISTiHdh2lmI4HpwJoTXhoO7G/zvJCTQ1VEJKKFYpMcADPrB/wZ+JpzriqI91kMLAbo27fvORMnTgxRhSIirdatW3fQOTfkdL8vJIFpZvG0huUfnHN/aadJEZDd5nlWYN5JnHNLgCUAubm5Li8vLxQlioh8yMz2duX7QnGU3ICHge3OuV920GwZ8PnA0fLZQKVzriTYvkVEwikUa5hzgc8Bm81sQ2Ded4EcAOfcA8ByYAGQD9QAXwhBvyIiYRV0YDrn3gKskzYOuCPYvkRE/KSRPiIiHikwRUQ8UmCKiHikwBQR8UiBKSLikQJTRMQjBaaIiEcKTBERjxSYIiIeKTBFRDxSYIqIeKTAFBHxSIEpIuKRAlNExCMFpoiIRwpMERGPFJgiIh4pMEVEPFJgioh4pMAUEfFIgSki4pECU0TEIwWmiIhHCkwREY8UmCIiHoUkMM3sETMrM7MtHbx+gZlVmtmGwOPuUPQrIhJOcSF6n0eBe4HHT9HmTefc5SHqT0Qk7EKyhumcWwlUhOK9REQiVTj3YZ5rZhvN7EUzmxLGfkVEQiJUm+SdWQ+McM5Vm9kC4K/AuPYamtliYDFATk5OmMoTEelcWNYwnXNVzrnqwPRyIN7MBnfQdolzLtc5lztkyJBwlCci4klYAtPMMszMAtMzA/0eCkffIiKhEpJNcjN7ErgAGGxmhcB/AvEAzrkHgE8BXzSzJqAWWOScc6HoW0QkXEISmM656zp5/V5aTzsSEYlaGukjIuKRAlNExCMFpoiIRwpMERGPFJgiIh4pMEVEPFJgioh4pMAUEfFIgSki4pECU0TEIwWmiIhHCkwREY8UmCIiHikwRUQ8UmCKiHikwBQR8UiBKSLikQJTRMQjBaaIiEcKTBERjxSYIiIeKTBFRDxSYIqIeKTAFBHxSIEpIuJRSALTzB4xszIz29LB62ZmvzGzfDPbZGZnh6JfEZFwCtUa5qPA/FO8fhkwLvBYDNwfon5FRMImLhRv4pxbaWYjT9FkIfC4c84Bq82sv5llOudKQtG/9Gx1jc0UHq6hpLKOIzWNHKlt5MixBiprG2lqcbS44w+IizH6JcbRLymOlMQ4UpLiyUhLYnj/ZNJTk0iI014o6bqQBKYHw4H9bZ4XBuYpMOVDtQ3NbD9QxdaiSrYUVVFwsJp9FTWUVtW32z45PpaEuBhiDGLMMIOGphaONTTT3OJOam8GQ1MSGTW4LxMzUpmUmcLEjFTGp6eQnBDb3T+e9ADhCkzPzGwxrZvt5OTk+FyNdKfK2kZWFxxiVf5B1uyu4P3SoxzPuYF9Exg7tB/njRtCzsA+ZA/sw7D+yQzsG09acgJpyfEdri0656hvauFoXROVtY0cqKyjuLKW4iO1FB2uJb+8mj/l7aemoRloXSudlpXGrFGDmDV6ILkjBpCSFB+uxSBRJFyBWQRkt3meFZh3EufcEmAJQG5u7smrCRLV8suqeXFzCa9uL2VzUSUtrnVNMXfkAC6dnM7U4WlMHZ5GZloSZtalPsyMpPhYkuJjGZKSyNih/U5q09Li2H+4hu0lR9lYeIR3d1fw8FsFPPCPXcTGGDNHDuSSyelcMjmd7IF9gv2xpYew1t2KIXij1n2Yzzvnprbz2seBO4EFwCzgN865mZ29Z25ursvLywtJfeKfgvJqlm0sZvnmEt4vrQbg7Jz+zBs3hLljBjE9Z0BE7FusbWhm/b7DvJ1/kFe3l35Y66TMVBaeNYyrpg9naGqSz1VKKJjZOudc7ml/XygC08yeBC4ABgOlwH8C8QDOuQesdVXhXlqPpNcAX3DOdZqECszoVd/UzIqtpfxxzV5WF1RgBjNGDmTB1AzmT80kIy3yg2fPwWO8sq2UF7eUsH7fEWJjjAsnDOGa3Gw+OnEo8bH+h7x0ja+B2V0UmNGn/Gg9v397N0+t3U/FsQayByazaEYOnzoni/QoXjvbVV7Ns+sK+fO6QsqO1pOZlsRNc0exaGa29ndGIQWm+KrwcA0PrizgqbX7aWhu4dLJ6Xxm1gjmjR1MTEzX9kVGoqbmFt7YWc7Db+3mnYJDpCTGcd2sHG6eNyqqPxB6GwWm+KK0qo5fvfI+z64rxAyump7FbeePZvSQkw+09DSbCo/w4Ju7Wb65hPhY48Y5o/ji+WNI66M1zkinwJSwOlbfxJKVBSxZWUBTSwufmTWCxeeNZlj/ZL9LC7t9h2r45Ss7eW5jMSmJcXzxgrF8Ye5IkuJ1bmekUmBKWDjnWPpeET9+cQflR+v5+BmZfOdjE8kZpFNvthVX8fMVO3h9Zzk5A/vw/YVTuGDCUL/LknYoMKXb7a+o4btLN/PmBwc5K7s//+fyyZwzYoDfZUWcVfkH+Y/ntlBQfowF0zK4+/IpUXFWQG+iwJRu09zi+P3bu/nFy+8TY3DXZRP5zKwRPepgTqjVNzXz4MoCfvtaPvGxMfznJybzqXOyunwyvoSWAlO6RWlVHV97agPvFBzioolD+cGVU3vlfsqu2neohm89u5E1uytYMC2DH145jQF9E/wuq9framBG3FhyiRyv7Sjlm89sorahmZ9/6gytIXVBzqA+/PHW2Tz4ZgG/eHkn6/Ye5pefPou5Ywf7XZp0gYYqyEmaWxw/Xr6dmx7NIz01ib99eR7X5GYrLLsoNsa4/fwxLP3SXPolxvG5h9ewZOUuInnrTtqnwJR/cbSukVseW8vvVhbw2dk5LP3SnHYvXiGnb+rwNJbdOY/5UzP40fIdfPWpDdQGrpgk0UGb5PKh/RU13PzYWnaVH+OeK6fy2dkj/C6px+mbGMd915/N/7yxi/9+eSf5ZdU8cuMMHUWPElrDFAA2F1ay8L63Ka2q54mbZiosu5GZcceFY3nkhhnsPXSMq+9fRUF5td9liQcKTGHtngquf3A1yfGxLP3SHObogERYXDhxKE8tPpe6xmaueeAdNhdW+l2SdEKB2cu9+UE5n3/4XYakJPLM7ef2ijHgkWRaVhrP3H4uSfGxLFryDmsKDvldkpyCArMX+8f75dz8aB4jBvXh6dvO1fmVPhk9pB9//uIcMtKSuOnRtazfd9jvkqQDCsxeat3eCm57Io+xQ/vx1OLZDElJ9LukXi0jLYk/3jqbwSmJ3PDIu2wp0uZ5JFJg9kLbS6r4wu/XkpGaxGM3zaR/H408iQTpqUn84ZZZpCbF87mH1/BB6VG/S5ITKDB7mcLDNXz+kXfpkxDHEzfP0pplhMka0Ic/3jqLuNgYvvDoWg5Wt3+LYfGHArMXqWlo4tbH11HX2MwTN8/U3RAj1IhBfXno87kcrK5n8eN51DXq5PZIocDsJZxzfOuZTew8UMVvr5vOuPQUv0uSUzgzuz+//PRZrN93hG8/u0nDKCOEArOXuO/1fF7YXMJdl03URW2jxIJpmXzrYxNYtrGYh97c7Xc5ggKzV1i16yC/eOV9rjxrGLd+ZLTf5chp+NIFY/jYlHR++tIONuw/4nc5vZ4Cs4c7UtPAvz29kVGD+vKjq6bpikNRxsz42dVnkp6axJ1/XE9lbaPfJfVqCswezDnHd5du5mB1Pb9eNJ0+CbrWSjRK6xPPb6+fzoHKOr67dLPf5fRqCswe7M/ri1i++QDfuHQC07LS/C5HgnB2zgC+fsl4XthUwoubS/wup9cKSWCa2Xwz22lm+WZ2Vzuv32hm5Wa2IfC4JRT9SscqjjVwzwvbyB0xgMXnab9lT3DbeaOZOjyV//PcViprtGnuh6AD08xigfuAy4DJwHVmNrmdpk87584KPB4Ktl85tR8v3051XRM/umoasbpZWY8QFxvDT68+g8M1rR+GEn6hWMOcCeQ75wqccw3AU8DCELyvdNGagkM8s66QW88bzXidb9mjTBmWxm3njeaZdYW8s0tXNgq3UATmcGB/m+eFgXknutrMNpnZs2aWHYJ+pR3NLY67n9tK1oBkvvLRcX6XI93gKxeNY1haEj9cvo2WFp3QHk7hOujzN2Ckc+4M4BXgsY4amtliM8szs7zy8vIwlddzLH2viJ2lR/nugkkkJ8T6XY50g6T4WL49fyJbiqpY+l6R3+X0KqEIzCKg7RpjVmDeh5xzh5xzx68i8BBwTkdv5pxb4pzLdc7lDhkyJATl9R71Tc386pX3OSMrjcumZvhdjnSjK84cxplZafx8xU7dSC2MQhGYa4FxZjbKzBKARcCytg3MLLPN0yuA7SHoV07wv6v3UXSklu/Mn6gT1Hu4mBjjPy6fzIGqOp5YvcfvcnqNoAPTOdcE3AmsoDUI/+Sc22pm3zezKwLNvmJmW81sI/AV4MZg+5V/VdfYzP1v5DNv7GDm6p48vcKMkQOZO3YQD765W1c0CpOQ7MN0zi13zo13zo1xzv0wMO9u59yywPS/O+emOOfOdM5d6JzbEYp+5Z+WvlfEweoG7rhwrN+lSBjdccFYyo/W8+y6Qr9L6RU00qcHaGlxPPRmAVOHpzJ79EC/y5EwOnfMIM7K7s8D/9hFU3OL3+X0eArMHuD1nWXsKj/GrR8ZrX2XvYyZ8aULxlB4uJaXt5X6XU6Pp8DsAR5dtYdhaUksmJbZeWPpcS6alM7w/sk8+e4+v0vp8RSYUa74SC1v5R/kmtxs4mP16+yNYmOMa2dk8+YHB9l76Jjf5fRo+g+LckvfK8I5uPrsLL9LER99Ojeb2BjjyXf3d95YukyBGcWcczy7rpBZowaSM0g3NOvNMtKSuHDCUJa+V6jhkt1IgRnFNhVWsvvgMa1dCgCfODOT0qp63tt/2O9SeiwFZhR7dXspMQaXTE73uxSJAB+dOJSE2BiWbz7gdyk9lgIzir2yrZTcEQMZ0DfB71IkAqQkxXPe+MG8uLlEt+XtJgrMKFV4uIYdB45y8WTdMlf+af7UTIor69haXOV3KT2SAjNKvb6z9dJ3H52ozXH5p4+Ma72OgC4u3D0UmFFq7e4K0lMTGTOkr9+lSARJT01i9JC+rNp10O9SeiQFZpTK21NB7siBGgopJ5kzZhDv7q6gUWPLQ06BGYWKj9RSXFlH7ogBfpciEWjOmMEca2hmS1Gl36X0OArMKLRub+t5drkjdGUiOdmZ2f0B2KIDPyGnwIxCOw5UERdjTMjQHSHlZMPSkkhLjmdbsdYwQ02BGYU+KK1m5OC+JMTp1ycnMzOmDEtlm9YwQ07/cVEov6ya8en9/C5DItjkzFR2HDiqiwqHmAIzytQ3NbPn0DHGDtXmuHRs9JB+1De1UHq0vvPG4pkCM8oUHa6lxcFIXZ1ITmH4gGSg9e9FQkeBGWXKAmsM6alJPlcikSwrEJiFh2t8rqRnUWBGmeOBOTQl0edKJJIN7681zO6gwIwyZVV1AAxRYMopJMXHkpYcT3m19mGGkgIzylQcayAuxkhLjve7FIlwlbWNPP7OXr/L6FEUmFGmrrGF5PhYjSEX8UFIAtPM5pvZTjPLN7O72nk90cyeDry+xsxGhqLf3qi+qZnEeH3Oifgh6P88M4sF7gMuAyYD15nZ5BOa3Qwcds6NBX4F/DTYfnur+qYWEuNi/S5DpFcKxarKTCDfOVfgnGsAngIWntBmIfBYYPpZ4CLTNmWXNDS1EB+rRSedGzW4L+mpOjgYSqEIzOFA25shFwbmtdvGOdcEVAKDQtB3rxMXYzTrfi3iQdaAZIYFTi+S0Ii4nWFmttjM8swsr7y83O9yIk5ifAx1jRofLJ2raWimb0Kc32X0KKEIzCIgu83zrMC8dtuYWRyQBrR70xHn3BLnXK5zLnfIkCEhKK9nSYyLpa6x2e8yJAocq2+iT4L2d4dSKAJzLTDOzEaZWQKwCFh2QptlwA2B6U8BrzndB7RLkuJjqdcapnhwrKGJfolawwyloJemc67JzO4EVgCxwCPOua1m9n0gzzm3DHgYeMLM8oEKWkNVuiA1OY6G5hZqGproo80tOYXquib6KjBDKiRL0zm3HFh+wry720zXAdeEoq/ebmhK60U3yqrqGTlY/wzSvrrGZg7XNOooeYhF3EEfObXj/wBlus6hnEJJZes1BzLTdJQ8lBSYUeb4GmZp4CIcIu0pOdJ6laLM/roMYCgpMKPM8X+AQl22S06hOLCGOUxrmCGlwIwyqUnxDE1JJL+s2u9SJILll1UTH2s6cT3EFJhRaHx6Ch+UHfW7DIlgOw5UMXZoiu4sGmJamlFoXHo/8suqaWnRqazSvu0lVUzSfetDToEZhSakp1DT0Mx+3a9F2nH4WAOlVfVMzFRghpoCMwqdldMfgHV7D/tciUSiDfuPADB1WJrPlfQ8CswoNH5oCilJcazdo8CUk60uOERCbAzTcwb4XUqPo8CMQjExRu6IAazdU+F3KRKBVu+u4MzsNJJ14Y2QU2BGqdyRA8kvq+ag7goobVTXN7GlqJLZo3W52e6gwIxS541rvfTdGzt1zVD5p7fzD9Lc4jh3jAKzOygwo9TU4amkpyby6rZSv0uRCLJi6wHSkuOZMXKg36X0SArMKGVmXDwpnZUflOuCwgJAY3MLr24r5eJJ6cTH6l+7O2ipRrGLJ6dT09DMql0H/S5FIsCaggqq6pr42JR0v0vpsRSYUWzOmEGkJcez9L1iv0uRCPC3jcX0SYjlvPG6tUt3UWBGscS4WBaeNYwVWw9QWdvodznio+r6Jv62qZjLz8gkKV6nE3UXBWaUu+acbBqaWvjbRq1l9mbPbyympqGZRTNz/C6lR1NgRrmpw1OZkJ7CM3n7O28sPdZTa/czPr0f07P7+11Kj6bAjHJmxvWzcthYWMm6vRr50xttKjzChv1HuHZGDmbmdzk9mgKzB7gmN4u05HiWrCzwuxTxwQP/2EVKUhyfzs3yu5QeT4HZA/RJiONzs0fw8rZSdh885nc5EkYF5dW8uOUAnz93BClJ8X6X0+MpMHuIG+aMJD4mRmuZvcySlQXEx8Zw45xRfpfSKygwe4ghKYlcOyObZ/L2s0drmb3C3kPH+PP6Qj6dm8WQFN1/PBwUmD3Ily8aS3xsDL945X2/S5Ew+PmKncTFxPDlj47zu5ReI6jANLOBZvaKmX0Q+NruFUvNrNnMNgQey4LpUzo2NCWJm+eN4m8bi9lSVOl3OdKNNuw/wvObSrj1I6NIT9W9x8Ml2DXMu4C/O+fGAX8PPG9PrXPurMDjiiD7lFNYfP5oBvSJ54cvbMc53SStJ3LO8aPl2xncL4HF54/xu5xeJdjAXAg8Fph+DLgyyPeTIKUmxfNvl07gnYJDPLdBo396or+sL+Ld3RV8/ZLx9EuM87ucXiXYwEx3zpUEpg8AHV0mJcnM8sxstZkpVLvZZ2bmcFZ2f37w/DaO1DT4XY6E0KHqeu55YRvnjBjAdTM0DDLcOg1MM3vVzLa081jYtp1r3f7raBtwhHMuF7ge+H9m1uF2hJktDoRrXnm5ribeFTExxo+vmsaR2kZ++tIOv8uREPrB89uorm/ix1dNIyZGo3rCrdPAdM5d7Jyb2s7jOaDUzDIBAl/LOniPosDXAuANYPop+lvinMt1zuUOGaLLVHXVpMxUbpk3iiff3c/K9/XB0xO8tqOUv24o5ovnj2F8uu457odgN8mXATcEpm8AnjuxgZkNMLPEwPRgYC6wLch+xYOvXzKe8en9+MYzGzmkm6VFtbKqOr71zCYmZqTwpQvH+l1OrxVsYP4EuMTMPgAuDjzHzHLN7KFAm0lAnpltBF4HfuKcU2CGQVJ8LL9eNJ3K2ka+/ewmHTWPUi0tjq//aQPHGpq49/rput6lj4I6xOacOwRc1M78POCWwPQqYFow/UjXTcpM5a75E/n+89t4dNUevjBXQ+iizf3/2MXb+Yf4yVXTGDtUm+J+0kifXuALc0dy8aSh/PCF7br/T5R5Y2cZv3h5Jx8/I5NrZ2T7XU6vp8DsBcyMX117FiMH9+WOP6xnf0WN3yWJB/llR/nyH99jQkYqP7v6DF3rMgIoMHuJlKR4Hvp8Li0Obnksj+r6Jr9LklM4fKyBmx/LIzE+hoduyKWvTlCPCArMXmTk4L7cd/3Z5JdXc/sT66hv0v3MI1FtQzOLn8ij5Egdv/tcLsP7J/tdkgQoMHuZeeMG87Orz+Ct/IN89ckNNDW3+F2StFHf1Mxt/7uOvL2H+cWnz+ScEe1ez0Z8osDsha4+J4u7L5/MS1sP8O9/2azTjSJEU3MLX31yAyvfL+cnV03jE2cO87skOYF2jPRSN80bRWVtI7/++wfExRr3XDmNWA21801jcwvffGYjL209wN2XT+ZajROPSArMXuxrF4+jxTl++1o+1fXN/PLTZxIfq42OcKtrbOaOP6zn7zvK+M78idw0T+fKRioFZi9mZnzj0gn0TYzjJy/uoKa+ifs+c7ZGkoRRVV0jtzyWx9o9Fdxz5VQ+O3uE3yXJKWh1Qrj9/DHcc+VUXttZxmceWkP5UY07D4fiI7Us+t1q1u89zK8XTVdYRgEFpgDw2dkjuO/6s9laXMmV973NtuIqv0vq0fL2VHDFvW+xr6KGh27I5Qod4IkKCkz50IJpmTx7+xyaWxxX37+Kl7aUdP5NctqeXruP6x5cTb/EOP56xxwumDDU75LEIwWm/Iupw9NYdudcJmSkcPv/rue/lm2lrlEnuIfCsfomvvXMRr7z583MHj2I5+6Yp4tpRBkFppxkaGoST982m5vmjuLRVXv45P+sIr+s2u+yotrG/Uf4+G/e5Nn1hdx54Vh+f+MM0vrE+12WnCYFprQrMS6Wuz8xmUduzKW0qo5P/PYtHlu1h+YWneR+OhqbW7jv9Xyuvn8V9U0tPHnrbL75sQnE6fStqGSRPMojNzfX5eXl+V1Gr1dWVcc3n93EyvfLmZ7Tn59cdQYTMrQp2Zn1+w7z3b9sZseBoyyYlsGPP3mG1iojhJmtC9xn7PS+T4EpXjjn+OuGIn7w/Haqahu57fzR3HHhWPok6FTeE1XWNvLzFTv4w5p9pKck8X8XTuFjUzL8Lkva6Gpg6q9dPDEzPjk9i/PHD+WeF7Zx3+u7eCavkH+7ZDzX5GZrWCWtF8544p293Pt6PlW1jdw4ZyTfuHSC7h3eg2gNU7okb08FP1q+nfX7jjA+vR/fmT+Rj04c2isvctvS4li2sZj/fnknhYdrmTd2MHddNpGpw9P8Lk06oE1yCTvnHC9tOcBPX9rBnkM1TM5M5YsXjGHBtMxescZZ39TMc+8V87uVu9hVfowpw1K567KJfGScbg8d6RSY4puGphb+uqGIB/6xi4LyY4wY1IdbPzKaK6cP75Gbo5U1jTy1dh+PvL2b0qp6JmemcvsFY7h8WiYxveCDoidQYIrvWlocL28r5f438tlYWEnfhFiuOGsYi2bkcEZWWlRvrjvnWF1QwdNr9/HilgPUN7UwZ8wgbj9/DB8ZNziqf7beSIEpEcM5x3v7j/Dkmn08v6mE2sZmJmak8IkzhzF/agZjhvTzu0RPnHNsLznKiq0HeG5DEXsO1ZCSFMeVZw3n2hnZ2kcZxRSYEpGq6hp5bkMxf1lfyHv7jgAwPr0f86dmcv74IZyRlRZR1+Csb2pmw74j/H1HGS9tOcC+ihrMYNaogVw7I5v5UzJJTtDl76KdAlMiXkllLSu2HODFLQdYu6eCFgd9E2KZOWogc8YM5uwR/ZmUmRrWczur6hrZVlzFu7srWF1wiHV7D1Pf1EJ8rDF37GDmT8ng4snpDO6XGLaapPv5Ephmdg3wX8AkYKZzrt10M7P5wK+BWOAh59xPvLy/ArPnqjjWwJqCQ7y96yCrdh2ioPwYAGYwanBfpgxLY2JGCtkD+5A9IJnsgX0Y1DehS/sKW1oc5dX1FB6uofBwLXsO1rCtpJLtJUfZF7hHuxlMykhl9uhBnDtmELNGDyQ1SaNyeiq/AnMS0AL8Dvhme4FpZrHA+8AlQCGwFrjOObets/dXYPYepVV1bCqsZGtxJVuLq9hWXEXRkdp/aZMUH8PAPgmkJseTmhxPWnI8yfGxHM9QA1ocVNc3cbSukaN1TRyta6L8aD0Nbe6OaQYjB/VlcmYqk4elMikzhbNzBtC/T0IYf2Lxky8jfZxz2wOdn6rZTCDfOVcQaPsUsBDoNDCl90hPTeKSyUlcMjn9w3nV9U2ta4UVtew/XEPR4VoO1zRSVddIZW0j+ytqPrz03PGPfQP6JcWRkhhPzsA+pCTFMyQlkeEDksnqn0zWgGSGD0jWkE7pknD81QwH9rd5XgjMCkO/EuX6JcYxMSOViRmpfpciAngITDN7FWjvygHfc849F+qCzGwxsBggJ0e3GhWRyNFpYDrnLg6yjyIgu83zrMC8jvpbAiyB1n2YQfYtIhIy4TgBbi0wzsxGmVkCsAhYFoZ+RURCKqjANLNPmlkhcC7wgpmtCMwfZmbLAZxzTcCdwApgO/An59zW4MoWEQm/YI+SLwWWtjO/GFjQ5vlyYHkwfYmI+C1yxqSJiEQ4BaaIiEcKTBERjxSYIiIeKTBFRDxSYIqIeKTAFBHxSIEpIuKRAlNExCMFpoiIRwpMERGPFJgiIh4pMEVEPFJgioh4pMAUEfFIgSki4pECU0TEIwWmiIhHCkwREY8UmCIiHikwRUQ8UmCKiHikwBQR8UiBKSLikQJTRMRiezKkAAAG/klEQVSjoALTzK4xs61m1mJmuadot8fMNpvZBjPLC6ZPERG/xAX5/VuAq4DfeWh7oXPuYJD9iYj4JqjAdM5tBzCz0FQjIhLBwrUP0wEvm9k6M1scpj5FREKq0zVMM3sVyGjnpe85557z2M8851yRmQ0FXjGzHc65lR30txhYDJCTk+Px7UVEul+ngemcuzjYTpxzRYGvZWa2FJgJtBuYzrklwBKA3NxcF2zfIiKh0u2b5GbW18xSjk8Dl9J6sEhEJKoEe1rRJ82sEDgXeMHMVgTmDzOz5YFm6cBbZrYReBd4wTn3UjD9ioj4Idij5EuBpe3MLwYWBKYLgDOD6UdEJBJopI+IiEcKTBERjxSYIiIeKTBFRDxSYIqIeKTAFBHxSIEpIuKRAlNExCMFpoiIRwpMERGPFJgiIh4pMEVEPFJgioh4pMAUEfFIgSki4pECU0TEIwWmiIhHCkwREY8UmCIiHikwRUQ8UmCKiHikwBQR8UiBKSLikQJTRMQjBaaIiEdBBaaZ/dzMdpjZJjNbamb9O2g338x2mlm+md0VTJ8iIn4Jdg3zFWCqc+4M4H3g309sYGaxwH3AZcBk4DozmxxkvyIiYRdUYDrnXnbONQWergay2mk2E8h3zhU45xqAp4CFwfQrIuKHUO7DvAl4sZ35w4H9bZ4XBuaJiESVuM4amNmrQEY7L33POfdcoM33gCbgD8EWZGaLgcWBp/VmtiXY9wyBwcBBv4sIUC3tUy3tUy3tm9CVb+o0MJ1zF5/qdTO7EbgcuMg559ppUgRkt3meFZjXUX9LgCWB985zzuV2VmN3i5Q6QLV0RLW0T7W0z8zyuvJ9wR4lnw98G7jCOVfTQbO1wDgzG2VmCcAiYFkw/YqI+CHYfZj3AinAK2a2wcweADCzYWa2HCBwUOhOYAWwHfiTc25rkP2KiIRdp5vkp+KcG9vB/GJgQZvny4HlXehiSRdLC7VIqQNUS0dUS/tUS/u6VIu1v9tRREROpKGRIiIeRVRgRspQSzO7xsy2mlmLmXV4VM/M9pjZ5sD+2y4ddQthLd0+/NTMBprZK2b2QeDrgA7aNQeWyQYzC+kBvs5+TjNLNLOnA6+vMbORoez/NGu50czK2yyLW7qpjkfMrKyjU/Cs1W8CdW4ys7O7ow6PtVxgZpVtlsnd3VRHtpm9bmbbAv8/X22nzekvF+dcxDyAS4G4wPRPgZ+20yYW2AWMBhKAjcDkENcxidbztN4Ack/Rbg8wuJuXSae1hGOZBPr5GXBXYPqu9n4/gdequ2lZdPpzAl8CHghMLwKe9rGWG4F7u/PvI9DPecDZwJYOXl9A66ASA2YDa3ys5QLg+TAsk0zg7MB0Cq1Dt0/8/Zz2comoNUwXIUMtnXPbnXM7Q/meXeWxlnANP10IPBaYfgy4shv6OBUvP2fbGp8FLjIz86mWsHDOrQQqTtFkIfC4a7Ua6G9mmT7VEhbOuRLn3PrA9FFaz9A5cYThaS+XiArME0TDUEsHvGxm6wIjlPwSrmWS7pwrCUwfANI7aJdkZnlmttrMQhmqXn7OD9sEPnwrgUEhrOF0agG4OrC596yZZbfzejhE0v8MwLlmttHMXjSzKd3dWWC3zHRgzQkvnfZyCeq0oq4I91DLYOrwYJ5zrsjMhtJ6LuqOwCesH7WExKlqafvEOefMrKNTLEYElsto4DUz2+yc2xXqWqPA34AnnXP1ZnYbrWu+H/W5Jr+tp/Xvo9rMFgB/BcZ1V2dm1g/4M/A151xVsO8X9sB0YR5q2dU6PL5HUeBrmZktpXUz7bQDMwS1hGSZdFaLmZWaWaZzriSw6VLWwXscXy4FZvYGrZ/uoQhMLz/n8TaFZhYHpAGHQtD3adfinGvb70O07gP2Q8j+PoLVNrScc8vN7H/MbLBzLuRjzM0sntaw/INz7i/tNDnt5RJRm+QWRUMtzayvmaUcn6b1gJVfFwoJ1zJZBtwQmL4BOGnt18wGmFliYHowMBfYFqL+vfycbWv8FPBaBx+83V7LCfvDrqB1P5oflgGfDxwVng1Uttm1ElZmlnF8n7KZzaQ1g0L+gRbo42Fgu3Pulx00O/3l0t1Hq07zyFY+rfsUNgQex492DgOWn3B0631a11q+1w11fJLW/Rn1QCmw4sQ6aD06ujHw2NoddXitJRzLJNDHIODvwAfAq8DAwPxc4KHA9Bxgc2C5bAZuDnENJ/2cwPdp/ZAFSAKeCfwtvQuM7sa/185q+XHgb2Mj8DowsZvqeBIoARoDfys3A7cDtwdeN1ov4r0r8Dvp8MyPMNRyZ5tlshqY0011zKP1GMOmNnmyINjlopE+IiIeRdQmuYhIJFNgioh4pMAUEfFIgSki4pECU0TEIwWmiIhHCkwREY8UmCIiHv1/dklIGL+hxyoAAAAASUVORK5CYII=", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(5,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlim([-2,2])\n", + "ax.set_ylim([-2,2])\n", + "plt.plot(x, y);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Hurray! It worked. The orbit looks like it should, it's an almost perfect circle. There are small perturbations though, induced by the outer planet. Let's integrate a bit longer to see them. " + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "Noutputs = 1000\n", + "times = np.linspace(2.*torb, 20.*torb, Noutputs)\n", + "x = np.zeros(Noutputs)\n", + "y = np.zeros(Noutputs)\n", + "for i,time in enumerate(times):\n", + " sim.integrate(time, exact_finish_time=0)\n", + " x[i] = particles[1].x\n", + " y[i] = particles[1].y\n", + " \n", + "fig = plt.figure(figsize=(5,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlim([-2,2])\n", + "ax.set_ylim([-2,2])\n", + "plt.plot(x, y);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Oops! This doesn't look like what we expected to see (small perturbations to an almost circular orbit). What you see here is the barycenter slowly drifting. Some integration packages require that the simulation be carried out in a particular frame, but WHFast provides extra flexibility by working in any inertial frame. If you recall how we added the particles, the Sun was at the origin and at rest, and then we added the planets. This means that the center of mass, or barycenter, will have a small velocity, which results in the observed drift. There are multiple ways we can get the plot we want to.\n", + "1. We can calculate only relative positions.\n", + "2. We can add the particles in the barycentric frame.\n", + "3. We can let REBOUND transform the particle coordinates to the barycentric frame for us.\n", + "\n", + "Let's use the third option (next time you run a simulation, you probably want to do that at the beginning)." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So let's try this again. Let's integrate for a bit longer this time." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "times = np.linspace(20.*torb, 1000.*torb, Noutputs)\n", + "for i,time in enumerate(times):\n", + " sim.integrate(time, exact_finish_time=0)\n", + " x[i] = particles[1].x\n", + " y[i] = particles[1].y\n", + " \n", + "fig = plt.figure(figsize=(5,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlim([-1.5,1.5])\n", + "ax.set_ylim([-1.5,1.5])\n", + "plt.scatter(x, y, marker='.', color='k', s=1.2);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That looks much more like it. Let us finally plot the orbital elements as a function of time." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "times = np.linspace(1000.*torb, 9000.*torb, Noutputs)\n", + "a = np.zeros(Noutputs)\n", + "e = np.zeros(Noutputs)\n", + "for i,time in enumerate(times):\n", + " sim.integrate(time, exact_finish_time=0)\n", + " a[i] = sim.particles[2].a\n", + " e[i] = sim.particles[2].e\n", + " \n", + "fig = plt.figure(figsize=(15,5))\n", + "\n", + "ax = plt.subplot(121)\n", + "ax.set_xlabel(\"time\")\n", + "ax.set_ylabel(\"semi-major axis\")\n", + "plt.plot(times, a);\n", + "\n", + "ax = plt.subplot(122)\n", + "ax.set_xlabel(\"time\")\n", + "ax.set_ylabel(\"eccentricity\")\n", + "plt.plot(times, e);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The semimajor axis seems to almost stay constant, whereas the eccentricity undergoes an oscillation. Thus, one might conclude the planets interact only secularly, i.e. there are no large resonant terms." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Speeding things up and extra accuracy**\n", + "\n", + "There are several performance enhancements one can make to WHFast. However, each one has pitfalls that an inexperienced user can unwittingly fall into. We therefore chose safe default settings that make the integrator difficult to misuse. **This makes the default WHFast substantially slower and less accurate than it can be**, so anyone looking to use it more seriously should check out its advanced settings in [Advanced Settings for WHFast](../AdvWHFast)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Common mistakes with WHFast**\n", + "\n", + "If you're getting odd output, check the following:\n", + "\n", + "1. The Wisdom-Holman algorithm assumes that the gravitational force on a planet from the central body dominates that from all other particles. Therefore, if you have close approaches (that violate this approximation), you will get spurious results. REBOUND provides a high order integrator for close approaches. You can try it with `sim.integrator = \"ias15\"`. You can also check for close approaches following [Close Encounters](../CloseEncounters).\n", + "\n", + "2. A symplectic scheme requires a constant timestep to guarantee some of its symmetry properties. So if you call `sim.integrate(time)`, and `time` is not a multiple of `sim.dt`, your last timestep will be different (in order to reach `time` exactly). Therefore, if you need equally spaced outputs, you can make your output times be multiples of `sim.dt`, or if it doesn't matter, you can pass an optional flag like this: `sim.integrate(time, exact_finish_time=0)`, which will integrate to the nearest timestep. \n", + "\n", + "3. If you're somehow modifying particles or adding forces, you should make sure to read [Advanced Settings for WHFast](../AdvWHFast)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/docs/ipython_examples/ipynb2py.py b/rebound/source/docs/ipython_examples/ipynb2py.py new file mode 100644 index 0000000000000000000000000000000000000000..f96f3585e36063ff57b4c94d70e863fbb304fe68 --- /dev/null +++ b/rebound/source/docs/ipython_examples/ipynb2py.py @@ -0,0 +1,24 @@ +import json +import sys +exec("import matplotlib as mpl") +exec("mpl.use(\"Agg\")") + +if len(sys.argv)!=2: + print("Usage: ipynb2py.py FILENAME") + exit(1) +with open(sys.argv[1]) as data_file: + ipynb = json.load(data_file) + +code = "" +for c in ipynb["cells"]: + if c["cell_type"] == "code": + source = c["source"] + for s in source: + if s[0] != "%": + code += s.rstrip('\n')+"\n" +import socket +try: + exec(code) +except socket.error: + print("A socket error occured. This is most likely due to a timeout in the NASA Horizons connections. We catch this exception here and ignore is.") + pass diff --git a/rebound/source/docs/javascripts/config.js b/rebound/source/docs/javascripts/config.js new file mode 100644 index 0000000000000000000000000000000000000000..06dbf38bfd362b300ea18ab6bf8556a08f5e751c --- /dev/null +++ b/rebound/source/docs/javascripts/config.js @@ -0,0 +1,16 @@ +window.MathJax = { + tex: { + inlineMath: [["\\(", "\\)"]], + displayMath: [["\\[", "\\]"]], + processEscapes: true, + processEnvironments: true + }, + options: { + ignoreHtmlClass: ".*|", + processHtmlClass: "arithmatex" + } +}; + +document$.subscribe(() => { + MathJax.typesetPromise() +}) diff --git a/rebound/source/docs/make_docs.bash b/rebound/source/docs/make_docs.bash new file mode 100644 index 0000000000000000000000000000000000000000..cb2578be24ed71c1d956e084e3db91b5a918090d --- /dev/null +++ b/rebound/source/docs/make_docs.bash @@ -0,0 +1,64 @@ +#!/bin/bash +if [ -f documentation_lock.txt ]; then + echo "Documentation update already in progress. Exiting." + exit +fi +touch documentation_lock.txt + +git pull + +repository_head=` git rev-parse HEAD` +documentation_head=$( documentation_head.txt +rm documentation_lock.txt + +exit diff --git a/rebound/source/docs/miscellaneous.md b/rebound/source/docs/miscellaneous.md new file mode 100644 index 0000000000000000000000000000000000000000..33091562c07a53a6a43563fd1d1d590b26408a82 --- /dev/null +++ b/rebound/source/docs/miscellaneous.md @@ -0,0 +1,29 @@ +# Miscellaneous tools + +## Modulo two pi +The following function takes the modulo of angle (in radians). +The result is in the range $[0, 2\pi]$. + +=== "C" + ```c + double f = reb_mod2pi(7.); // returns 0.7168 = 7 - 2*pi + ``` + +=== "Python" + ```python + f = rebound.mod2pi(7.) // returns 0.7168 = 7 - 2*pi + ``` +## Hash function +REBOUND comes with its own hash function. +It converts a string to an integer. +This is used in various parts of the code, mostly to add a more convenient way to refer to particles. +You can call REBOUND's hash function manually: +=== "C" + ```c + uint32_t hash = reb_hash("test string"); + ``` + +=== "Python" + ```python + hash = rebound.hash("test string") + ``` diff --git a/rebound/source/docs/mpi.md b/rebound/source/docs/mpi.md new file mode 100644 index 0000000000000000000000000000000000000000..ea96fd80660cc35d1ede07d9be7cffc8c5034f98 --- /dev/null +++ b/rebound/source/docs/mpi.md @@ -0,0 +1,62 @@ +# MPI (Message Passing Interface) + +!!! info inline end Python + Only the C version of REBOUND supports MPI. The python version of REBOUND does not support MPI. + + +REBOUND supports parallelization on distributed memory systems with MPI (Message Passing Interface). +This can be useful to accelerate simulations but it only makes sense if certain conditions are met: + +- A large number of particles (at least a few thousand) is needed for the parallelization to provide a speed-up. If the number of particles is too small, then the parallelization will slow down the simulation because the communication will be the new bottleneck. +- Only simulations that use a tree code can be parallelized. The tree is used for the domain decomposition. + + +Use cases where MPI might be a good way to speed up simulations are: + +- [A self-gravitating disk](../c_examples/selfgravity_disc_mpi/) +- [A shearing sheet simulation](../c_examples/shearing_sheet_mpi/) of self-gravitating or collisional particles (e.g. to simulate Saturn's Rings) + +## Basic Workflow +The basic workflow when using MPI is as follows. You need to enable MPI and choose the appropriate compiler for MPI in the Makefile of the problem directory: + +``` +export MPI=1 +export CC=mpicc +``` + +After creating the simulation structure, you need to initialize the tree structure: + +``` c +struct reb_simulation* r = reb_simulation_create(); +r->gravity = REB_GRAVITY_TREE; +r->collision = REB_COLLISION_TREE; +// other configuration options +reb_simulation_configure_box(r, boxsize, 2, 2, 1); +``` + +The number of root trees needs to be an integer multiple of the number of MPI processes. +In this example, 2 root boxes are used in the x and y directions and 1 in the z direction. +Thus you can use 1, 2, or 4 MPI processes. + +The combined size of the trees should be large enough to contain all your particles. +After the tree has been initialized, you need to initialize MPI: + +``` c +reb_mpi_init(r); +``` + +You can now add particles and integrate the simulation. +Once the simulation is done terminates the MPI execution environment and cleanup the memory used by the simulation with: + +``` c +reb_mpi_finalize(r); +reb_simulation_free(r); +``` + +How to submit and run parallel jobs depends on your computing cluster. Please contact your cluster administrator if you have questions about this. + +## Support +In general, using REBOUND with MPI requires a lot more work on the user's side to make thing work. +Many features are currently not compatible with MPI, or require some extra thought, for example binary input/output and Simulationarchives. +If you would like to use a features with MPI that is currently not supported, or you have any other questions regarding MPI and REBOUND, please [open an issue on GitHub](https://github.com/hannorein/rebound/issues). + diff --git a/rebound/source/docs/namingconvention.md b/rebound/source/docs/namingconvention.md new file mode 100644 index 0000000000000000000000000000000000000000..119603b34ac830db8fc83f1a52a4e0f9313cff11 --- /dev/null +++ b/rebound/source/docs/namingconvention.md @@ -0,0 +1,20 @@ +# Naming Convention + +Starting with REBOUND version 4.0 we try to keep all variable, structure, class, and function names adhere to a naming convention which is outlined in this document. +We do this because this will make it easier to users to understand what a variable or function does. +There is some tension between the C and python side but this document provides a clear map to translate a name from c to python and vice versa. + + +- On the python side, we should follow [PEP8](https://peps.python.org/pep-0008/#function-and-variable-names). +- For both python and C, function names and variables use lowercase, with words separated by underscores as necessary to improve readability. +- Structure names in C start with the prefix `reb_` followed by small letters, words are separated by underscores as necessary to improve readability, e.g. `reb_hash_pointer_pair `. +- Structures in c do not use typedef. They are always referred to `struct`, e.g. `struct reb_simulation`. +- Python class names use the `CapWords` convention and ignore the `reb_` prefix of the corresponding c structure. For example: `reb_simulation` <-> `Simulation`, `reb_simulationarchive` <-> `Simulationarchive`, `reb_hash_pointer_pair` <-> `HashPointerPair` +- Function names in C start with the main object they operate on. For example `reb_simulation_move_to_com()` operates on the `reb_simulation` object. +- These functions often translate to instance method in python. In that case the object the function operates on is class object. For example the C function `reb_simulation_move_to_com()` becomes the instance method `rebound.Simulation.move_to_com()` in python. +- Function names only include a verb if the function changes the state of an object. For example: `reb_simulation_move_to_com` changes the simulation by moving the center of mass frame and therefore includes the verb move. `reb_simulation_com` on the other hand simply calculates the center of mass and does not change the simulation. The name does therefore not include a verb. There are cases where it does not make sense to enforce this rule. +- Function names try to avoid using "set" and "get". For example, instead of `reb_get_com()` we use `reb_simulation_com()`. +- Variables describing memory allocation counts have names starting with `N_allocated`. For example: `N_allocated_collisions`. +- Functions that are related to memory management use the following verbs: `create` allocates and initializes an object. `free` frees the memory of an object (and all the objects it owns). `init` does not allocated an object itself, but merely initializes it with default values. +- As with all functions those related to memory allocation also start with the object they operate on, then followed by the verb. For example: `reb_simulation_create()`. +- Simulationarchive is one word. All functions related to a Simulationarchive in C use `_simulationarchive_` and `Simulationarchive` in python (not `SimulationArchive`). diff --git a/rebound/source/docs/orbitalelements.md b/rebound/source/docs/orbitalelements.md new file mode 100644 index 0000000000000000000000000000000000000000..ebbd5660ef2a082e37d8e7889d8831bd6fbf8a5e --- /dev/null +++ b/rebound/source/docs/orbitalelements.md @@ -0,0 +1,116 @@ +# Orbital elements + +This section discusses orbital parameters. +We focus on the implementation and conventions in REBOUND. + + +The following image illustrated the most important angles used. +In REBOUND the reference direction is the positive x direction, the reference plane +is the xy plane. + +![Orbital elements](img/orbit.png "Image from Wikipedia. CC-BY-SA-3.") + +## Orbit structure + +Variable name | Description +--------------- | ------------ +`d` | radial distance from reference +`v` | velocity relative to central object's velocity +`h` | specific angular momentum +`P` | orbital period (negative if hyperbolic) +`n` | mean motion (negative if hyperbolic) +`a` | semi-major axis +`e` | eccentricity +`inc` | inclination +`Omega` | longitude of ascending node +`omega` | argument of pericenter +`pomega` | longitude of pericenter +`f` | true anomaly +`M` | mean anomaly +`E` | Eccentric anomaly. Because this requires solving Kepler's equation it is only calculated when needed in python and never calculated in C. To get the eccentric anomaly in C, use the function `double reb_M_to_E(double e, double M)` +`l` | mean longitude = Omega + omega + M +`theta` | true longitude = Omega + omega + f +`T` | time of pericenter passage +`rhill` | Hill radius, $r_{\rm hill} =a\sqrt[3]{\frac{m}{3M}}$ +`pal_h` | Cartesian component of the eccentricity, $h = e\cdot \sin(pomega)$ +`pal_k` | Cartesian component of the eccentricity, $k = e\cdot \cos(pomega)$ +`pal_ix` | Cartesian component of the inclination $i_x = 2\cdot \sin(i/2)\cdot \cos(\Omega)$ +`pal_iy` | Cartesian component of the inclination $i_y = 2\cdot \sin(i/2)\cdot \sin(\Omega)$ + +!!! Important + All angles in REBOUND are in radians. + Variables which have length, time or velocity units use code units. + +### Particle to orbit + +The following function allows you to calculate the orbital elements of a particle. + +=== "C" + ```c + struct reb_simulation* r = create_simulation(); + reb_simulation_add_fmt(r, "m", 1.); // star + reb_simulation_add_fmt(r, "a e", 1., 0.1); // planet + struct reb_orbit o = reb_orbit_from_particle(r->G, r->particles[1], r->particles[0]); + printf("a=%f e=%f\n", o.a, o.e); + ``` + The last argument of the `reb_orbit_from_particle` function is the primary particle, i.e. the star or the center of mass. +=== "Python" + ```python + sim = rebound.Simulation() + sim.add(m=1) # star + sim.add(a=1, e=0.1) # planet + o = sim.particles[1].orbit(primary=sim.particles[0]) + print(o.a, o.e) + ``` + If `primary` is not given, Jacobi coordinates are used. + + You can also calculate the orbits of all particles in the simulation. + ```python + sim = rebound.Simulation() + sim.add(m=1) # star + sim.add(a=1, e=0.1) # planet + sim.add(a=2, e=0.1) # planet + orbits = sim.orbits() + for o in orbits: + print(o.a, o.e) + ``` + + +## Conversion functions +### True anomaly + +The following function returns the true anomaly $f$ for a given eccentricity $e$ and mean anomaly $M$: +=== "C" + ```c + double f = reb_M_to_f(0.1, 1.); // e=0.1, M=1.0 + ``` + +=== "Python" + ```python + f = rebound.M_to_f(0.1, 1.0) # e=0.1, M=1.0 + ``` + + +The following function returns the true anomaly $f$ for a given eccentricity $e$ and eccentric anomaly $E$: +=== "C" + ```c + double f = reb_E_to_f(0.1, 1.); // e=0.1, E=1.0 + ``` + +=== "Python" + ```python + f = rebound.E_to_f(0.1, 1.0) # e=0.1, E=1.0 + ``` + +### Eccentric anomaly + +The following function returns the eccentric anomaly $E$ for a given eccentricity $e$ and mean anomaly $M$: +=== "C" + ```c + double f = reb_M_to_E(0.1, 1.); // e=0.1, M=1.0 + ``` + +=== "Python" + ```python + f = rebound.M_to_E(0.1, 1.0) # e=0.1, M=1.0 + ``` diff --git a/rebound/source/docs/particleoperators.md b/rebound/source/docs/particleoperators.md new file mode 100644 index 0000000000000000000000000000000000000000..48bbd4a09b616245842b5853e2e23e67bc31e118 --- /dev/null +++ b/rebound/source/docs/particleoperators.md @@ -0,0 +1,76 @@ +# Operators + +## Adding, subtracting, multiplying particles +REBOUND allows you to multiply particles with scalars. +In the code blow, the particle's position and velocity coordinates, and its mass are all multiplied by a constant. + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_add_fmt(r, "m x vx", 1., 1., 1.); + reb_particle_imul(&(r->particles[0]), 2.); + ``` +=== "Python" + ```python + sim = rebound.Simulation() + sim.add(m=1., x=1., vx=1.) + sim.particles[0] *= 2. + ``` +You can also add or subtract particles from each other. +This will add or subtract the particles' position, velocity and mass from each other. + +=== "C" + ```c + struct reb_particle p1 = {.m=1., .x=1, .vx=1}; + struct reb_particle p2 = {.m=2., .x=2, .vx=2}; + reb_particle_iadd(&p1, &p2); // p1.m, p1.x, p1.vx will now all be 3. p2 remains unchanged. + reb_particle_isub(&p1, &p2); // p1.m, p1.x, p1.vx will be 1. + ``` +=== "Python" + ```python + p1 = rebound.Particle(m=0., x=1., vx=1.) + p2 = rebound.Particle(m=0., x=1., vx=1.) + p1 += p2 # p1.m, p1.x, p1.vx will now all be 3. p2 remains unchanged. + p1 -= p2 # p1.m, p1.x, p1.vx will be 1. + ``` + +In all the C functions, the first particle gets modified in place. +In python, one can also use the multiply, add, and subtract operations to create new particles. +The following operations do not affect the original particles `p1` and `p2`. + +```python +p1 = rebound.Particle(m=0., x=1., vx=1.) +p2 = rebound.Particle(m=0., x=1., vx=1.) +p3 = p1 + p2 # p3 is a new particle +p4 = p1 + p2 # p4 is a new particle +p5 = 2.*p1 # p5 is a new particle +``` + +!!! Tip + These particle operations can be very helpful when initializing particles. + For example, you can create initialize two particles using orbital parameters and then easily create another particle exactly in between these two particles. + ```python + sim = rebound.Simulation() + sim.add(m=1) # star + sim.add(a=1) # planet 1 + sim.add(a=2, f=0.1) # planet 2 + p_middle = (p1+p2)/2. # exactly in between the two planets + ``` + +The distance between two particles in 3D space is often required in various calculations. +REBOUND has a convenience function for that: + +=== "C" + ```c + struct reb_particle p1 = {.m=1., .x=1, .vx=1}; + struct reb_particle p2 = {.m=2., .x=2, .vx=2}; + double distance = reb_particle_distance(&p1, &p2); + ``` +=== "Python" + In python this is implemented using the power operator (`**`): + ```python + p1 = rebound.Particle(m=0., x=1., vx=1.) + p2 = rebound.Particle(m=0., x=1., vx=1.) + distance = p1 ** p2 + ``` + diff --git a/rebound/source/docs/particles.md b/rebound/source/docs/particles.md new file mode 100644 index 0000000000000000000000000000000000000000..8495b93bcf16e91f3878c95a2dbba598fbc606f2 --- /dev/null +++ b/rebound/source/docs/particles.md @@ -0,0 +1,66 @@ +# Particle structure +A particle is represented by the `reb_particle` structure in C. +The python class `Particle` is an abstraction of the `reb_particle` structure in C. +We will refer to both the C structure and the python object interchangeably as the *particle structure* and *particle object*. + +The particle object contains the following variables which can be directly manipulated: + +`#!c double m` +: mass + +`#!c double r` +: physical radius of the particle + +`#!c double x, y, z, vx, vy, vz` +: position and velocity coordinates + +`#!c uint32_t hash` +: integer or hash value used to identify the particle + +You can create a particle object which is not part of a REBOUND simulation. +=== "C" + ```c + struct reb_particle p = {.m=1., x=0., vy=0.}; + ``` + +=== "Python" + ```python + p = rebound.Particle(m=1., x=0., vy=0.) + ``` + +However, in most cases you will work with particles which have been added to a REBOUND simulation. +You then access the particle using the simulation's `particles` array: + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... setup simulation, add particles ... + r->particles[0].x = 1; + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + # ... setup simulation, add particles ... + sim.particles[0].x = 1 + ``` + +Alternatively you can assign a hash value to particles and access them using the following syntax: +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_add_fmt(r, "m", 1.); + r->particles[0].hash = reb_hash("star"); + reb_simulation_add_fmt(r, "a", 1.); + r->particles[1].hash = reb_hash("planet1"); + struct reb_particle* p = reb_simulation_particle_by_hash(r, reb_hash("planet1")); + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.add(m=1., hash="star") + sim.add(a=1., hash="planet1") + p = sim.particles["planet1"] + ``` + diff --git a/rebound/source/docs/quickstart_firstexample.md b/rebound/source/docs/quickstart_firstexample.md new file mode 100644 index 0000000000000000000000000000000000000000..22dafe601f69d80ae7a5155feaeaf36d1cc87d88 --- /dev/null +++ b/rebound/source/docs/quickstart_firstexample.md @@ -0,0 +1,122 @@ +# Your first REBOUND simulation + +If you have successfully [installed REBOUND](quickstart_installation.md), then you are now ready to run your first simulation. +On this page, we'll walk you through one simple example, line by line. + +## Python version + +There are different ways to run python code: + +- interactively, by using the python interpreter +- by executing a python script +- by using a Jupyter notebook + +All of these methods work with REBOUND. +Choose whichever you are most comfortable with. + +We start by importing REBOUND: + +```python +import rebound +``` + +To run an N-body simulation, we need to create a simulation object first: + +```python +sim = rebound.Simulation() +``` + +Then, we [add particles](addingparticles.md) to the simulation: + +```python +sim.add(m=1.) # Central object +sim.add(m=1e-3, a=1., e=0.1) # Jupiter mass planet +sim.add(a=1.4, e=0.1) # Massless test particle +``` + +We are working in units where $G=1$. [Click here](units.md#using-g1) to learn more about what these units mean. +Now we can integrate the particles forward in time using the default integrator ([IAS15](integrators.md#ias15)) for 100 time units: + +```python +sim.integrate(100.) +``` + +Finally, let us output the Cartesian coordinates and the orbital parameters at the end of the simulation: + +```python +for p in sim.particles: + print(p.x, p.y, p.z) +for o in sim.orbits(): + print(o) +``` + +As a next step, have a look at the examples and tutorials in the `python_examples` and `ipython_examples` directories. + +## C version + +A very short example is provided in the `examples/simplest/` directory. +Go to this directory with + +```bash +cd examples/simplest/ +``` + +Then have a look at the source code in the `problem.c` file. First, we include the REBOUND header file which contains all the public function prototype and datatype definitions for REBOUND: + +```c +#include "rebound.h" +``` + +In the main function, we first create a REBOUND simulation with + +```c +struct reb_simulation* r = reb_simulation_create(); +``` + +This function has now allocated memory for the simulation and initialized all the variables in the simulation to their default values. +We can then [add particles](addingparticles.md) to the simulation: + +```c +reb_simulation_add_fmt(r, "m", 1.); // Central object +reb_simulation_add_fmt(r, "m a e", 1e-3, 1., 0.1); // Jupiter mass planet +reb_simulation_add_fmt(r, "a e", 1.4, 0.1); // Massless test particle +``` + +We are working in units where $G=1$. [Click here](units.md#using-g1) to learn more about what these units mean. +We then integrate the simulation for 100 time units with the default integrator ([IAS15](integrators.md#ias15)): + +```c +reb_simulation_integrate(r,100.); +``` + +After the integration is done, we can output the Cartesian coordinates and the orbital parameters: + +```c +for (int i=0; iN; i++){ + struct reb_particle p = r->particles[i]; + printf("%f %f %f\n", p.x, p.y, p.z); +} +struct reb_particle primary = r->particles[0]; +for (int i=1; iN; i++){ + struct reb_particle p = r->particles[i]; + struct reb_orbit o = reb_orbit_from_particle(r->G, p, primary); + printf("%f %f %f\n", o.a, o.e, o.f); +} +``` + +To compile the example, simple type + +```bash +make +``` + +into a terminal window while you're in the `examples/simplest/` directory. Then run the simulation with + +=== "Linux/Mac" + ```bash + ./rebound + +=== "Windows" + ```bash + rebound.exe + ``` diff --git a/rebound/source/docs/quickstart_installation.md b/rebound/source/docs/quickstart_installation.md new file mode 100644 index 0000000000000000000000000000000000000000..8967a3e9532a01cd7fc039456a1b87a85a899eeb --- /dev/null +++ b/rebound/source/docs/quickstart_installation.md @@ -0,0 +1,166 @@ +# Installation + +![type:video](https://www.youtube.com/embed/_7Y3YLKyxWA) + +## Choosing between C and Python + +You can use either C or Python when working with REBOUND. +Which programming language you want to use depends on your preference and your specific application. In short: + +- If you want to set up a planetary system, visualize data with matplotlib, and integrate your simulation with one of the built-in integrators then use the Python version. It's quick and easy to use. +- If you want to run large simulations with millions of particles, develop your own integrator, use the distributed tree code with MPI, OpenMP parallelization, or OpenGL visualization, then use the C version. C gives you the best performance and direct access to all the REBOUND internals. + +!!! Note + All the computationally expensive parts of REBOUND are written in C. So even if you use the Python version, your simulation will run very efficiently. + If you want to extend REBOUND, for example to include an additional non-gravitational force, you can do that in both C or Python. However, for complicated force routines, a C implementation of your function would most likely be significantly faster. + + +## Installation via pip +!!! info inline end "Python Wheels" + Starting with REBOUND version 3.28, we provide Python Wheels for REBOUND. + This makes installing REBOUND easier on a wide variety of systems. + For optimal performance, you can compile REBOUND yourself with optimizations flags that specifically target your system. + + +If you just want to try out REBOUND or don't plan to modify it in any way, then the easiest way to install the python version of REBOUND is [pip](https://pypi.org) (the Package Installer for Python). Simply type the following command into a terminal: + +```bash +pip install rebound +``` + +If you have trouble installing a package with pip, consider using a [virtual environment](https://docs.python.org/3/tutorial/venv.html). +Also, make sure your version of pip is not too old. You can update pip with pip itself: +```bash +pip install --upgrade pip +``` + +## Installation via git + +We use the [git](https://git-scm.com) as a version control system for REBOUND. +If you want to use the C version of REBOUND or plan to make any modifications to REBOUND, you can clone the repository to your computer. +Make sure you have git installed, then type the following command in a terminal: + +``` bash +git clone https://github.com/hannorein/rebound +``` + +This will create a new directory names `rebound/` which contains all the source code, examples, and documentation. +To use the python version of REBOUND, go to the `rebound/` directory, then install REBOUND with +```bash +pip install -e . +``` +You should now be able to import REBOUND from python. + +## Compiling the C version of REBOUND + +### Examples + +If you look at any of the examples in the `examples/` sub-directories, you'll see one +`problem.c` file and one `Makefile`. All the REBOUND code itself is in the +`src/` directory. This setup keeps the different projects nicely separated from the shared REBOUND code. +To compile one of the examples, go to the example's directory and type `make`. +This triggers the following tasks: + +1. The Makefile in the example directory sets up various environment variables. These + determine settings like compiler optimization flags and which + libraries are included (see below). +2. Next, the Makefile in the `src/` directory gets called. This compiles + the entire REBOUND code into a shared library. +3. It then creates a symbolic link from the current directory to the + location of the shared library in the `src/` directory. (On Windows + the Makefile simply copies the shared library instead of making a symbolic link) +4. Finally, it compiles your own code, the `problem.c` file and links it to the REBOUND shared library. + +You can execute your program with `./rebound` (or `rebound.exe` on Windows). +After you edit either the `problem.c` file or any file in the `src/` directory, you can simply type `make` again to recompile your program. +If you change any of the environment variables, clean the build directory first, by executing `make clean`. + +### Your own project + +The easiest way to start working on your own problem is to simply copy an example directory that is somewhat similar to what you want to do. +This way, all your project's source and data files will be in one directory, separate from the main REBOUND source files in `src/`. + +Alternatively, you can also install the shared REBOUND library in a global directory (e.g. `/usr/lib/`) and the header file in `/usr/include/`. +Doing so will allow you (and any other users on your system) to use REBOUND from any directory. +However, doing so requires root access and some knowledge on how Unix systems work. +By simply replicating and modifying one of the examples, you'll avoid these complications. + +### Possible issues during compilation + +The way we've designed REBOUND should make the compilation process extremely easy. +You do not need to install any additional libraries (although you might want to, see below), and you do not need root access. +You might nevertheless run into problems. Some of the most common issues are: + +- **Missing compilers.** Make sure you have a C compiler installed. If + you are using a Mac, install the Xcode package which you can + download for free on the App Store. Make sure the command line tools + are installed. if you are on Windows, make sure you install the + compilers that come with Visual studio (`cl.exe`) and have them available + in your current command prompt (use the *Developer Command Prompt for VS*). +- **Missing glfw3 library.** You can compile REBOUND with support for + real-time OpenGL visualizations. This is an optional feature that + requires the glfw3 library. If you are on a Mac, then the easiest + way to install the glfw3 library is with homebrew: + `brew tap homebrew/versions && brew install glfw3`. If you are on + Linux, you can install it with your package manager, for example + with `sudo apt-get install libglfw3-dev`. Alternatively, you can + disable the OpenGL visualization in the Makefile by setting + `OPENGL=0`. Then, execute `make clean` and try compiling the program + again. Note that on some systems the `glfw` library is called + `glfw3` instead. In that case, change `-lglfw` to `-lglfw3` + in the file `src/Makefile.defs`. +- **Compiler optimizations.** By default, REBOUND does not use the + compiler flag `-march=native` which tries to optimize the + code for the native architecture. If you want to have the + most optimized code, add the `-march=native` or `-mtune=native` flag + in the file `src/Makefile.defs`. If you use the python version, you + can add compiler flags to `setup.py`. This might improve performance + significantly. +- **Floating point contractions.** Some compilers (e.g. clang) optimize code by + contracting certain floating point operations (e.g. a multiplication + and an addition become one fused multiply-add instruction). This improves performance but might prevent you from + reproducing results exactly. You can turn off fused multiply-add instruction with the + `-ffp-contract=off` compiler flag. If you use the python version, you can set the + `FFP_CONTRACT_OFF` environment variable before installing REBOUND. + + +## Running REBOUND on Windows + +There are several ways to run REBOUND on Windows. + +### Python +You can install the python version of REBOUND using pip: +```bash +pip install -e . +``` +This will download the latest python wheel and install it on your system. + +### Windows Subsystem for Linux (WSL) +You can run the C-version of REBOUND using the Windows Subsystem for Linux (WSL). +You will need `make` and a compiler, such as `gcc`. These can be installed within WSL with the following command: +```bash +sudo apt-install make gcc +``` +Then, you can follow the above instructions for Linux. Start by download REBOUND, for example using git: +```bash +git clone https://github.com/hannorein/rebound +``` +Then, compile and run a simple C-example with the following commands: +```bash +cd rebound/examples/simplest +make +./rebound +``` + +### Native Windows Builds +!!! note inline end Note + The native Windows support for REBOUND is relatively new. Several features are currently not supported on native Windows builds: OpenMP, MPI, OpenGL, and AVX512. Please [file a bug report on github](https://github.com/hannorein/rebound/issues) if you require any of these featured or if you encounter any other problems. + +Since version 3.28, you can also run REBOUND natively on Windows. You need to install make and enable the Microsoft Visual Studio compiler. Once you have downloaded the source code of REBOUND, open the Developer Command Prompt for VS or the Windows PowerShell on your system and go to the REBOUND source code. Then, compile and run a simple C-example with the following commands: +```bash +cd examples +cd simplest +make +rebound.exe +``` + diff --git a/rebound/source/docs/quickstart_whereto.md b/rebound/source/docs/quickstart_whereto.md new file mode 100644 index 0000000000000000000000000000000000000000..d6b422b35e4938f69e3aa29af833504520da0c79 --- /dev/null +++ b/rebound/source/docs/quickstart_whereto.md @@ -0,0 +1,10 @@ +# Where to go from here +In addition to reading the [API section](api.md), you can learn most about REBOUND by looking at some of the [example problems](examples.md). +The C examples are located in the `examples/` directory. +The python and iPython examples are located in the `python_examples/` and `ipython_examples/` directories respectively. + +You might also want to have a look at the `rebound.h` file in the `src/` directory which contains the precise function prototypes and structure definitions. + +If you run into a problem or can't find an answer in this documentation, [open an issue](https://github.com/hannorein/rebound/issues) on GitHub or e-mail one of the [contributors](/#contributors). +We'll do our best to help you quickly. + diff --git a/rebound/source/docs/removingparticles.md b/rebound/source/docs/removingparticles.md new file mode 100644 index 0000000000000000000000000000000000000000..b045c137577e72f18d31728f017f0d9a77d4b330 --- /dev/null +++ b/rebound/source/docs/removingparticles.md @@ -0,0 +1,77 @@ +# Removing particles + +## Removing all particles + +You can remove all particles with the following code: + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... add particles ... + reb_simulation_remove_all_particles(r); + ``` +=== "Python" + ```python + sim = rebound.Simulation() + # ... add particles ... + del sim.particles + ``` +## Remove particle by index +Each particle in a REBOUND simulation can be uniquely identified with its position in the `particles` array, it's **index**. +You can remove a particle using this index as shown in the following code: +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_add_fmt(r, "m", 1.); // star, index=0 + reb_simulation_add_fmt(r, "a", 1.); // planet 1, index=1 + reb_simulation_add_fmt(r, "a", 2.); // planet 2, index=2 + reb_simulation_remove_particle(r, 1, 1); // removes planet 1 (index 1) + ``` + The first argument of `reb_simulation_remove_particle` is the simulation from which you want to remove the particle. + The second argument is the index of the particle. + The third argument determines if you want to keep the particle array sorted. + In most cases you want to (set the argument to 1). + For simulation with many particles (millions), this might be slow. In that case set this argument to 0. + + The function returns 1 if the particle was successfully removed, and 0 if the index was out of range. + +=== "Python" + ```python + sim = rebound.Simulation() + sim.add(m=1.) // star, index=0 + sim.add(a=1.) // planet 1, index=1 + sim.add(a=2.) // planet 2, index=2 + sim.remove(1) + ``` + The `remove` function accepts an optional argument `keep_sorted`. + It determines if you want to keep the particle array sorted. + In most cases you want to (set the argument to `True`, the default). + For simulation with many particles (millions), this might be slow. In that case set this argument to `False`. + +## Remove particle by hash +In addition to the index, you can also identify particles by hash. +This is useful when you want to make sure you can uniquely identify particles in simulations where you constantly add or remove particles. +If a particle has a hash, you can remove it as shown here: + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_add_fmt(r, "m", 1.); + r->particles[0].hash = reb_hash("star"); + reb_simulation_add_fmt(r, "a", 1.); + r->particles[1].hash = reb_hash("planet1"); + reb_simulation_add_fmt(r, "a", 2.); + r->particles[2].hash = reb_hash("planet2"); + reb_simulation_remove_particle_by_hash(r, reb_hash("planet1"), 1); + ``` + The syntax of the function is the same as for `reb_simulation_remove_particle` except you pass the hash instead of the index. + +=== "Python" + ```python + sim = rebound.Simulation() + sim.add(m=1., hash="star") + sim.add(a=1., hash="planet1") + sim.add(a=2., hash="planet2") + sim.remove(hash="planet1") + ``` + diff --git a/rebound/source/docs/requirements.txt b/rebound/source/docs/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..85e35953a1401de3a4d8beddf924962d1252f630 --- /dev/null +++ b/rebound/source/docs/requirements.txt @@ -0,0 +1,5 @@ +mkdocs-material +mkdocs-jupyter==0.24.7 +#git+git://github.com/hannorein/mkdocs-jupyter +mkdocs-simple-hooks +mkdocs-video diff --git a/rebound/source/docs/simulation.md b/rebound/source/docs/simulation.md new file mode 100644 index 0000000000000000000000000000000000000000..ce339a18b463096bb75286b906b6ae94916f2d89 --- /dev/null +++ b/rebound/source/docs/simulation.md @@ -0,0 +1,66 @@ +# Life cycle + +These pages describe the C structure `reb_simulation` and the python class `rebound.Simulation`. +Because the python class is an abstraction of the C structure, we describe their common features in one place. +We will refer to both the C structure and the python object interchangeably as the *simulation structure* and *simulation object*. +The simulation structure contains all the configuration, status and particle data of one REBOUND simulation. +It's the one structure you will work with most when using REBOUND. + + + +=== "C" + The `reb_simulation_create()` function allocate memory for a `reb_simulation` structure and also initialize all variables to their default value. + If you want to avoid a memory leak, you need to free the simulation when you no longer need it. + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... do work ... + reb_simulation_free(r); + ``` + The call to `reb_simulation_free()` frees all data associated with the simulation such as particles. + It will also free the memory for the simulation structure itself. + +=== "Python" + When you create a new object of the class `rebound.Simulation`, REBOUND will allocate memory for the object and also initialize all variables to their default value. + + Python automatically releases all the memory after the last reference to the object is gone: + ```python + sim = rebound.Simulation() + # ... do work ... + sim = None # This will allow python to free the memory + ``` + In general, you do not need to do this manually. + Python will loose the last reference to the simulation object at the end of the current variable scope (e.g. function). + + !!! Danger + The following code keeps a pointer to the `particles` array after the last reference to the simulation is gone. + Because the memory associated with the `particles` array is freed when the simulation is freed, this will lead to a segmentation fault. + + ```python + sim = rebound.Simulation() + sim.add(m=1) + particles = sim.particles + sim = None # free simulation + print(sim.particles) # segmentation fault + ``` + +There are several instances where you need to initialize a simulation's root boxes: + +- If you use a tree code for collision detection or for calculating gravity. +- If you want to use open, periodic or shear-periodic boundary conditions. + +Initializing root boxes is done after the simulation is created: +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + double size = 100.; + reb_simulation_configure_box(r, size, 1, 2, 3); + ``` +=== "Python" + ```python + sim = rebound.Simulation() + size = 100. + sim.configure_box(size, 1, 2, 3); + ``` +In the above example, there is one root box in the x direction, there are two in the y direction, and three in the z direction. +In most cases you want exactly one root box in each direction. + diff --git a/rebound/source/docs/simulationarchive.md b/rebound/source/docs/simulationarchive.md new file mode 100644 index 0000000000000000000000000000000000000000..202f51b422b54e0a466fe5b90dc81515499bf9bb --- /dev/null +++ b/rebound/source/docs/simulationarchive.md @@ -0,0 +1,107 @@ +# Simulationarchive + +The concepts behind the Simulationarchive are described in detail in [Rein & Tamayo 2017](https://ui.adsabs.harvard.edu/abs/2017MNRAS.467.2377R/abstract). +Further examples of how to work with the Simulationarchive are provided in an [iPython](ipython_examples/Simulationarchive.ipynb) and [C example](c_examples/simulationarchive.md). + +## Creating Simulationarchive snapshots + +The following code shows how to manually append a Simulationarchive snapshot to a file. +If the file does not exist yet, the function outputs a new binary file. +If the file already exists, the function will append a Simulationarchive snapshot to the existing file. + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... work on simulation ... + reb_simulation_save_to_file(r, "archive.bin"); + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + # ... work on simulation ... + sim.save_to_file("archive.bin") + ``` + You can pass the optional argument `delete_file=True` to delete the file if it already exists. + By default, the function appends a snapshot to existing files. + +Instead of manually outputting each snapshot, you can also automate this process as shown below. + +### Regular time intervals +The following code automatically creates a Simulationarchive snapshot at regular intervals. +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... work on simulation ... + reb_simulation_save_to_file_interval(r, "archive.bin", 10.); + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + # ... work on simulation ... + sim.save_to_file("archive.bin", interval=10.) + ``` + +### Regular number of timesteps +The following code automatically creates a Simulationarchive snapshot after a fixed number of timesteps. +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... work on simulation ... + reb_simulation_save_to_file_step(r, "archive.bin", 100); + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + # ... work on simulation ... + sim.save_to_file("archive.bin", step=100) + ``` +!!! Info + This method is in general more reliable than the interval method. + The reason is that the number of timesteps is an integer value whereas the time is a floating point number. + If you run long simulations, you might encounter issues with finite floating point precision. + This only affects very high accuracy simulation where you want to make sure the outputs occur exactly at the right timestep. + + +### Regular wall-time intervals +The following code automatically creates a Simulationarchive snapshot after a fixed wall-time. +This is particularly useful for creating restart files when running long simulations. +The wall-time is given in seconds. +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... work on simulation ... + reb_simulation_save_to_file_walltime(r, "archive.bin", 120.); // 2 minutes between snapshots + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + # ... work on simulation ... + sim.save_to_file("archive.bin", walltime=120) # 2 minutes + ``` + +## Reading Simulationarchives + +### Reading one snapshot +The following example shows how to read in a specific snapshot of a Simulationarchive. +If you pass a negative number for the snapshot, it will wrap around to the end of the Simulationarchive. +For example, the last snapshot in the file would have the index `-1`, the second to last `-2`, and so on. +=== "C" + ```c + struct reb_simulationarchive* archive = reb_simulationarchive_create_from_file("archive.bin"); + struct reb_simulation* r = reb_simulation_create_from_simulationarchive(archive, 12); // snapshot with index 12 + reb_simulationarchive_free(archive); + // ... work on simulation ... + ``` + +=== "Python" + ```python + sim = rebound.Simulation("archive.bin", snapshot=12) + # ... work on simulation ... + ``` + In python, `snapshot=-1` is the default. + Thus, `#!python sim = rebound.Simulation("archive.bin")` will create a new simulation from the last snapshot in the archive. + diff --git a/rebound/source/docs/simulationbinaryfiles.md b/rebound/source/docs/simulationbinaryfiles.md new file mode 100644 index 0000000000000000000000000000000000000000..8d9357529bf13cd746b4e142f524f9becb5553fd --- /dev/null +++ b/rebound/source/docs/simulationbinaryfiles.md @@ -0,0 +1,36 @@ +# Saving simulations to disk +You can use binary files to save simulations to a file and then later restore them from this file. +All the particle data and the current simulation states are saved. +Below is an example on how to work with binary files. + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... setup simulation ... + reb_simulation_integrate(r, 10); // integrate + reb_simulation_save_to_file(r, "snapshot.bin"); + reb_simulation_free(r); + + struct reb_simulation* r2 = reb_simulation_create_from_file("snapshot.bin", 0); + reb_simulation_integrate(r2, 20); // continue integration + reb_simulation_free(r2); + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + // ... setup simulation ... + sim.integrate(10) + sim.save_to_file("snapshot.bin") + sim = None # Remove reference, allow python to release memory + + sim2 = rebound.Simulation("snapshot.bin") + sim2.integrate(2) # continue integration + sim2 = None + ``` + +Rather than using one file for one snapshot of a simulation, you can also use a [Simulationarchive](simulationarchive.md). +A Simulationarchive is a collection of simulation snapshots stored in one binary file. + + + diff --git a/rebound/source/docs/simulationdiagnostics.md b/rebound/source/docs/simulationdiagnostics.md new file mode 100644 index 0000000000000000000000000000000000000000..7e86c9ea744d2ee0cc22ce14382a50849da351b5 --- /dev/null +++ b/rebound/source/docs/simulationdiagnostics.md @@ -0,0 +1,55 @@ +# Diagnostics + +## Energy +You can calculate the total energy (kinetic plus potential energy) of a simulation using the following function: + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + double energy = reb_simulation_energy(r); + ``` +=== "Python" + ```python + sim = rebound.Simulation() + energy = sim.energy() + ``` + +## Angular momentum +You can calculate the angular momentum of a simulation using the following function: + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + struct reb_vec3d angular_momentum = reb_simulation_angular_momentum(r); + ``` +=== "Python" + ```python + sim = rebound.Simulation() + Lx, Ly, Lz = sim.angular_momentum() + ``` + +## Center-of-mass +You can calculate the center-of-mass of a simulation using the functions below. +The return value is particle object with mass, position, and velocity reflecting those of the center-of-mass. + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... setup simulation ... + struct reb_particle com = reb_simulation_com(r); + ``` + You can also return the center-of-mass for particles with indices in a given range. + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... setup simulation ... + struct reb_particle com = reb_simulation_com_range(r, 6, 9); + ``` + In the above example, the particles 6, 7, and 8 are included in the calculation. + +=== "Python" + ```python + sim = rebound.Simulation() + # ... setup simulation ... + com = sim.com() + ``` + diff --git a/rebound/source/docs/simulationoperators.md b/rebound/source/docs/simulationoperators.md new file mode 100644 index 0000000000000000000000000000000000000000..b28148a871df0e3c24b226bec5f8cdfacceeda1a --- /dev/null +++ b/rebound/source/docs/simulationoperators.md @@ -0,0 +1,93 @@ +# Operators + +## Copying simulations +REBOUND makes it very easy to copy a simulation. +This can be very helpful in many cases. +For example, you can keep a record of your initial conditions by simply making a copy of the simulation before you start any integration. + + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + struct reb_simulation* r_copy = reb_simulation_copy(r); + ``` +=== "Python" + ```python + r = rebound.Simulation() + r_copy = r.copy() + ``` +!!! Info + The above function calls create a deep copy of the simulation. + All the data in the simulation is duplicated, including the particle data. + If you use function pointer in the original simulation, you will need to manually reset them. + +## Adding, subtracting, multiplying simulations +REBOUND allows you to manipulate entire simulations with 'arithmetic' operations. +For example: + +=== "C" + ```c + struct reb_simulation* r1 = reb_simulation_create(); + struct reb_simulation* r2 = reb_simulation_create(); + // ... setup simulations ... + reb_simulation_isub(r1, r2); + reb_simulation_iadd(r1, r2); + ``` +=== "Python" + ```python + r1 = rebound.Simulation() + r2 = rebound.Simulation() + # ... setup simulations ... + r1 -= r2 + r1 += r2 + ``` + +In the above example, each particle in `r2` is subtracted from the corresponding particle in `r1`, in the sense described above (element-wise position, velocity and mass), then the operation is reversed in the next line when the simulation are added together. +This feature can come in very handy when you want to compare two different simulations. +For example, you can run two simulations with different timesteps and then subtract the simulation from each other after the integration to how much of a difference the timestep makes. +These operations will fail if the number of particles are not the same in `r1` and `r2`. + +You can also multiply a simulation with two scalars, one for the position and one for the velocity coordinates. +This can come in handy when re-scaling a simulation + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... setup simulation ... + reb_simulation_imul(r, 2., 3.,); + ``` +=== "Python" + ```python + r = rebound.Simulation() + # ... setup simulation ... + r.multiply(2., 3.) + ``` +In the above the position coordinates of all particles are multiplied by 2, all velocity coordinates are multiplied by 3. + +## Comparing simulations +You can compare if simulations are equal to each other using the following syntax: +=== "C" + ```c + struct reb_simulation* r1 = reb_simulation_create(); + struct reb_simulation* r2 = reb_simulation_create(); + // ... setup simulations ... + if (reb_simulation_diff(r1, r2, 2)){ + // Simulations are NOT equal + } + ``` + For debugging purposes, it can be useful to print out the differences. + This is done by passing `1` as the last argument: + ```c + struct reb_simulation* r1 = reb_simulation_create(); + struct reb_simulation* r2 = reb_simulation_create(); + // ... setup simulations ... + reb_simulation_diff(r1, r2, 1); // prints out diferences + ``` +=== "Python" + ```python + r1 = rebound.Simulation() + r2 = rebound.Simulation() + # ... setup simulations ... + if r1 == r2: + print("Simulations are equal") + ``` diff --git a/rebound/source/docs/simulationreferenceframes.md b/rebound/source/docs/simulationreferenceframes.md new file mode 100644 index 0000000000000000000000000000000000000000..182d8beb375810aeb864e8de1ef94cbd299cff30 --- /dev/null +++ b/rebound/source/docs/simulationreferenceframes.md @@ -0,0 +1,47 @@ +# Moving reference frames +Compared to other N-body codes, REBOUND does not use a predefined coordinate system. +It works in any inertial frame. +This makes setting up simulations and interpreting outputs more intuitive. +However, one often wants to move to a specific coordinate system. +REBOUND has several built-in functions to do that. + +## Heliocentric frame +Here is how you can move the simulation to the heliocentric frame. +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... setup simulation ... + reb_simulation_move_to_hel(r); + ``` +=== "Python" + ```python + r = rebound.Simulation() + # ... setup simulation ... + r.move_to_hel() + ``` +This moves all particles in the simulation by the same amount so that afterwards, the particle with index 0 is located at the origin. +Note that as the integration progresses, it is not guaranteed that the particle with index 0 remains at the origin. +Most likely, it will drift away from the origin. +Therefore, if you require outputs in the heliocentric frame, call `move_to_hel` before you create an output. +Variational equations are not affected by this operation. + +## Center-of-mass frame +You can also move a simulation to the center-of-mass frame, the inertial frame where the center-of-mass is at the origin. +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... setup simulation ... + reb_simulation_move_to_com(r); + ``` +=== "Python" + ```python + r = rebound.Simulation() + # ... setup simulation ... + r.move_to_com() + ``` +!!! Important + If you are not in the center-of-mass frame, the center-of-mass will and all the particles will slowly drift away from the origin. + This has important consequences for long-term integrations. + If the particles are far away from the origin, you might increase the numerical errors due to finite floating point precision. + By moving to the center-of-mass frame after setting up all the particles, you avoid these issues. + diff --git a/rebound/source/docs/simulationtimestepping.md b/rebound/source/docs/simulationtimestepping.md new file mode 100644 index 0000000000000000000000000000000000000000..4694286d336c84d5caf98a161572c297fb91355f --- /dev/null +++ b/rebound/source/docs/simulationtimestepping.md @@ -0,0 +1,106 @@ +# Timestepping + +## Integrate +In most cases, you will want to integrate your simulation to a given time. +This could be the time at which you want to create the next output, or a very long time into the future, if you are waiting for an exception to happen (close encounter, ejection, etc). + +In those cases use this syntax: +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... setup simulation, set timestep ... + reb_simulation_integrate(r, 100.); // integrate until t=100. + ``` + If you want to integrate indefinitely, you can use + ```c + reb_simulation_integrate(r, INFINITY); + ``` +=== "Python" + ```python + sim = rebound.Simulation() + sim.integrate(100.) # integrate until t=100. + ``` + +The integrate function will integrate the simulation until it reaches exactly the time requested. +In most cases the time requested will not be an exact multiple of the timestep, so the timestep will have to be reduced during the last timestep. +After the requested time has been reached, the timestep will be reverted back to its original value. + +There are cases where you don't want to reduce the timestep, for example in long term integrations with symplectic integrators. +In those cases, you can ask REBOUND to integrate up to a given time and overshoot the requested time by a fraction of the timestep. +This allows REBOUND to maintain a constant timestep throughout the integration. +The following code shows you how to do that. +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... setup simulation, set timestep ... + r->exact_finish_time = 0; + reb_simulation_integrate(r, 100.); // integrate until t=100. or a bit further + ``` +=== "Python" + ```python + sim = rebound.Simulation() + # ... setup simulation, set timestep ... + sim.integrate(100., exact_finish_time=0) # integrate until t=100. or a bit further + ``` + +If you want to stop a current integration after the current timestep, for example from within the heartbeat function, you can call: +=== "C" + ```c + reb_simulation_stop(r); + ``` +=== "Python" + sim.stop() + ``` + +Note that you might need to manually synchronize the simulation afterwards if you have safe mode turned off. + + +## Single step + +Rather than integrating up to a fixed time, you can also advance the simulation by a single timestep: +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... setup simulation, set timestep ... + reb_simulation_step(r); + ``` +=== "Python" + ```python + sim = rebound.Simulation() + # ... setup simulation, set timestep ... + sim.step() + ``` + +## Multiple steps +And finally, you can ask REBOUND to advance the simulation by a finite number of steps. +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... setup simulation, set timestep ... + reb_simulation_steps(r, 100); // 100 steps + ``` +=== "Python" + ```python + sim = rebound.Simulation() + # ... setup simulation, set timestep ... + sim.steps(100) # 100 steps + ``` + +## Synchronizing +Depending on the `safe_mode` flag, some integrators perform optimizations which effectively leave a timestep unfinished. +You can manually 'synchronize' the simulation by calling + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... setup simulation ... + reb_synchronize(r); + ``` +=== "Python" + ```python + sim = rebound.Simulation() + # ... setup simulation ... + sim.synchronize() + ``` + +See the [discussion on integrators](integrators.md) for more information about the `safe_mode` and synchronizing simulations. diff --git a/rebound/source/docs/simulationvariables.md b/rebound/source/docs/simulationvariables.md new file mode 100644 index 0000000000000000000000000000000000000000..99f5bb7de67054732d9a37aeb3769f7a9edca646 --- /dev/null +++ b/rebound/source/docs/simulationvariables.md @@ -0,0 +1,314 @@ +# Variables +The following example shows how to access variables in the simulation structure. +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->G = 1.0; // Set the gravitational constant + printf("%f\n", r->t); // print current simulation time + ``` + +=== "Python" + ```python + sim = rebound.Simulation() + sim.G = 1.0 # Set the gravitational constant + print(sim.t) # print current simulation time + ``` + +Below, we list the important variables in the simulation structure. +To keep the documentation concise, variables which are only intended for internal use are not documented here. + +## Timestepping + +`#!c double t` +: Current simulation time. The default value is 0. The value increases if a simulation is integrated forward in time ($dt>0$). See also the [discussion on units](units.md). + +`#!c double dt` +: This is the current timestep. The default is 0.001. + Make sure to set the timestep to a small fraction (a few percent) of the shortest dynamical timescale in the problem. + Adaptive integrators such as [IAS15](../integrators/#ias15) will use this value as their initial guess during the first timestep. + In subsequent timesteps, adaptive integrators will change this value. + See also the [discussion on units](units.md). + +`#!c double dt_last_done` +: REBOUND sets this variable to the last timestep used. Do not set this variable manually. + +`#!c unsigned long long steps_done` +: Number of timesteps completed. + +`#!c int exact_finish_time` +: If this variable is set to 1 (default), then REBOUND will integrate the simulation exactly up to the requested time. + Unless the requested time is a multiple of the timestep, REBOUND will need to reduce the timestep to achieve this. + Set this variable to 0 and REBOUND will not reduce the timestep and will instead overshoot the integration by a fraction of one timestep. + + === "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_LEAPFROG; // uses fixed timestep + r->dt = 10; + r->exact_finish_time = 0; + reb_simulation_integrate(r, 15); + printf("%f\n", r->t); // will print 20 + + r->exact_finish_time = 1; // default + reb_simulation_integrate(r, 25); + printf("%f\n", r->t); // will print 25 + ``` + + === "Python" + In python, you do not need to set this flag in the simulation structure. + Instead, you pass it as an argument when calling `integrate()`: + ```python + sim = rebound.Simulation() + sim.integrator = "leapfrog" # uses fixed timestep + sim.dt = 10 + sim.integrate(15, exact_finish_time=0) + print(sim.t) # will print 20 + + sim.integrate(25, exact_finish_time=1) + print(sim.t) # will print 25 + ``` + +`#!c double walltime` +: This variable keeps track of the wall-time (in seconds) used by REBOUND for this simulation. + This is counting only the integration itself and not the visualization, heartbeat function, etc. + +`#!c void (*heartbeat) (struct reb_simulation* r)` +: The `heartbeat` function pointer is called at the beginning of the simulation and at the end of each timestep. + You can use this function to keep track of your simulation, terminate it, or output data. + + === "C" + ```c + void heartbeat(struct reb_simulation* r){ + printf("%f\n",r->t); + } + int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + r->heartbeat = heartbeat; + // ... + } + ``` + + === "Python" + ```python + def heartbeat(sim_pointer): + sim = sim_pointer.contents + print(sim.t) + + sim = rebound.Simulation() + sim.heartbeat = heartbeat + # ... + ``` + +`#!c void (*pre_timestep_modifications) (struct reb_simulation* const r)` + +`#!c void (*post_timestep_modifications) (struct reb_simulation* const r)` +: Similar to the heartbeat function, these function pointers allow you to make changes before and after each timestep. + These pointers are also used by REBOUNDx. + +## Gravity + +`#!c double G` +: Gravitational constant. By default, this value is 1. + If $G=1$, then an orbit with semi-major axis $a=1$ has a period of $P=2\pi$. + See also the [discussion on units](units.md). + +`#!c double softening` +: This is the gravitational softening parameter. + The gravitational force of a particle in the $x$ direction is calculated as + $F_x = -x \frac{G m_1 m_2}{(x^2 +y^2 +z^2 + b^2)^{3/2}}$, where $b$ is the gravitational softening parameter. + This can be used to remove strong force gradients on small scales, e.g. during close encounters. + The default is 0 (no softening). + +`#!c double opening_angle2` +: This variable determines the accuracy of the gravity calculation when the tree bases gravity routine is used. + It is the square of the cell opening angle $\theta$. + See [Rein & Liu](https://ui.adsabs.harvard.edu/abs/2012A%26A...537A.128R/abstract) for a discussion of the tree code. + +`#!c unsigned int force_is_velocity_dependent` +: If this variable is set to 0 (default), then the force can not contain velocity dependent terms. + Setting this to 1 is slower but allows for velocity dependent forces (e.g. drag force). + Note that gravitational forces alone are not velocity dependent. + +`#!c unsigned int gravity_ignore_terms` +: This variable determines if the gravity form the central object is included in the gravity calculation. + In general the integrators will set this variable automatically and nothing needs to be changed by the user. + Possible values are: + + - 0 include all terms + - 1 ignore terms not required for WHFast with Jacobi coordinates + - 2 ignore terms not required for WHFast with democratic heliocentirc coordinates + +`#!c void (*additional_forces) (struct reb_simulation* const r)` +: This function allows the user to add additional (non-gravitational) forces. + + !!! Todo + Add examples. + +## Particles + +`#!c struct reb_particle* particles` +: All particles are stored in this array. + A particle is represented by the `reb_particle` structure in C. + The python class `Particle` is an abstraction of the `reb_particle` structure in C. + + The following example changes a particle's x coordinate: + + === "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + // ... setup simulation, add particles ... + r->particles[0].x = 1; + ``` + + === "Python" + ```python + sim = rebound.Simulation() + # ... setup simulation, add particles ... + sim.particles[0].x = 1 + ``` + + The memory for this array is managed by REBOUND. + To add and remove particles, don't modify this array directly. + Instead use the `_add` and `_remove` functions. + + The order in which particles are added matters in multiple situation: + + - When test particles are used, active particles need to be added before test particles. + - When integrating systems with the WHFast integrator, the central object needs to be added first. + - When Jacobi coordinates are used, then the particles needs to be added from the inside out (star, inner planet, outer planet). + +`#!c int N` +: Current number of particles in this REBOUND simulation. + This number includes all active, test, and variational particles. + The simulation stops when this number is 0 and there are no more particles in the simulation. + The default is 0. + +`#!c int N_active` +: This is the number of active particles in the simulation. + Only active particles contribute to the force in the gravity calculation. + The default is -1 which means the number of active particles is equal to the number of particles, `N`. + Particles with an index larger or equal than `N_active` are considered test-particles. + + The following example sets up a simulation with two active particles and one massless test-particle. + === "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_add_fmt(r, "m", 1.0); + reb_simulation_add_fmt(r, "m a", 1e-3, 1.0); + reb_simulation_add_fmt(r, "m a", 0.0, 2.0); + r->N_active = 2; + ``` + + === "Python" + ```python + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3, a=1) + sim.add(m=0, a=2) + sim.N_active = 2 + ``` + +`#!c int testparticle_type` +: This determines the type of the particles with `index >= N_active`. + REBOUND supports two different test-particle types: + + - If this variable is set to 0, then test particle does not influence any other particle (default). + - If this variable is set to 1, then active particles (those with `index < N_active`) feel test-particles (similar to MERCURY's small particles). + + Test-particles never feel each other. + +`#!c int N_var` +: Total number of variational particles. Default: 0. + +`#!c int N_var_config` +: Number of variational particle configurations. Default: 0. + + +## Collisions + + +`#!c enum REB_COLLISION_RESOLVE_OUTCOME (*collision_resolve) (struct reb_simulation* const r, struct reb_collision)` +: This is a function pointer which determines how a collision is resolved. By default, it is NULL, assuming hard sphere model. + A return value of type `REB_COLLISION_RESOLVE_OUTCOME_REMOVE_NONE` (=0) indicates that both particles remain in the simulation. A return value of `REB_COLLSION_RESOLVE_OUTCOME_REMOVE_P1`/`REB_COLLSION_RESOLVE_OUTCOME_REMOVE_P2` (=1/2) indicates that particle 1/2 should be removed from the simulation. A return value of `REB_COLLISION_RESOLVE_OUTCOME_REMOVE_BOTH` (=3) indicates that both particles should be removed from the simulation. + See [the discussion on collisions](collisions.md#resolving-collisions) for more information on how to use this function pointer. + +`#!c int track_energy_offset` +: Set this variable to 1 to track energy change during collisions and ejections (default: 0). + This is helpful if you want to keep track of an integrator's accuracy and physical collisions do not conserve energy. + +`#!c double energy_offset` +: Energy offset due to collisions and ejections (only calculated if `track_energy_offset=1`). + +`#!c int collision_resolve_keep_sorted` +: If set to 1, then particles are kept sorted when a particle is removed during a collision. + +`#!c double minimum_collision_velocity` +: When collisions are resolved with the hard sphere collision resolve function, then the post impact velocity between the two particles will be at least as large as this value. Default 0. Setting this to a value larger than zero might prevent particles sinking into each other. + +`#!c double collisions_plog` +: This variable keeps track of momentum exchange during collisions. This can be used to calculate collisional viscosity in ring systems. + +`#!c long collisions_log_n` +: This variable keeps track of the number of collisions that have occurred. This can be used to calculate statistical quantities of collisional systems. + +`#!c double (*coefficient_of_restitution) (const struct reb_simulation* const r, double v)` +: This is a callback function which gets called when a hard-sphere collision occurs and the coefficient of restitution is required. + By default, this function pointer is NULL and a coefficient of restitution of 1 is assumed. + The impact velocity of the collision is given to allow for velocity dependent coefficients of restitution. + +## Miscellaneous + +`#!c enum REB_STATUS status` +: This variable indicates the current status of the simulation. By setting this to 1, one can force a graceful exit at the end of the next timestep. + +`#!c double exit_max_distance` +: The integration will stop if any particle is further away from origin than this value. + +`#!c double exit_min_distance` +: The integration will stop if any two particles come closer together than this value. + +`#!c double usleep` +: Sleep this number of microseconds after each timestep. This can be useful for slowing down the simulation, for example for rendering visualizations. + +`#!c int N_ghost_x, N_ghost_y, N_ghost_z` +: Number of ghost-boxes in x, y, and z directions. + +`#!c unsigned int rand_seed` +: Seed for random number generators. This will be automatically initialized to a random number based on the current time and the process id. However, it can also be set manually to make the simulation reproducible and always return the same sequence of random numbers. + + +## Module selection + +The following variables in the simulation structure determine which modules are selected. +The [gravity solvers](gravity.md), [collision detection algorithms](collisions.md), [boundary conditions](boundaryconditions.md), and [integration methods](integrators.md) are explained in detail on their own pages. + +`#!c enum visualization` + +`#!c enum collision` + +`#!c enum integrator` + +`#!c enum boundary` + +`#!c enum gravity` + +## Integrator configuration + +The following variables in the simulation structure contain the configuration for the individual integrators. +They are described on their own [separate page](integrators.md). + +`#!c struct reb_integrator_sei ri_sei` + +`#!c struct reb_integrator_whfast ri_whfast` + +`#!c struct reb_integrator_saba ri_saba` + +`#!c struct reb_integrator_ias15 ri_ias15` + +`#!c struct reb_integrator_mercurius ri_mercurius` + +`#!c struct reb_integrator_janus ri_janus` + +`#!c struct reb_integrator_eos ri_eos` + + diff --git a/rebound/source/docs/units.md b/rebound/source/docs/units.md new file mode 100644 index 0000000000000000000000000000000000000000..d07d112438b9ac57b236ff19432d34c6ca3b12c3 --- /dev/null +++ b/rebound/source/docs/units.md @@ -0,0 +1,75 @@ +# Units +## Using G=1 +By default, REBOUND simulations use units in which $G=1$. +That might be confusing at first if you're used to working in SI units. +The reason for setting $G=1$ is that gravity is scale-free. +Imagine a simulation with two particles orbiting each other. +For REBOUND, it doesn't matter if this is a planet orbiting a star, a moon orbiting a planet, or a spacecraft orbiting a moon. +It is only a matter of interpreting the simulation. + +As an example, suppose we use $G=1$, have a central object of mass $M$, and a test particle orbiting on a circular orbit at a distance $a=1$. +This scenario can be setup with the following code: +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_add_fmt("m", 1.); + reb_simulation_add_fmt("a", 1.); + ``` +=== "Python" + ```python + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(a=1.) + ``` +The orbital period of this binary is given by + +$$ +P = 2\pi\sqrt{\frac{a^3}{GM}} = 2\pi +$$ + +We can confirm this by calculating the orbital period with REBOUND: +=== "C" + ```c + struct reb_orbit o = reb_orbit_from_particle(r->G, r->particles[1], r->particles[0]); + printf("P=%f\n", o.P); + ``` +=== "Python" + ```python + print(sim.particles[1].P) + ``` +If we interpret the central object as the sun, and the test particle as the Earth, then $M=1$ corresponds to one solar mass and $a=1$ corresponds to one astronomical unit. +We know that the Earth takes one year for one orbit around the sun. +Thus, one year corresponds to $2\pi$ in these units. + +An alternative interpretation of the same REBOUND simulation could be the following. +Suppose the central object is the Earth. +Then $M=1$ corresponds to one Earth mass. +If we consider the test particle to be the International Space Station, then $a=1$ corresponds to $6790{\rm km}$ ($420{\rm km}$ above MSL). +The orbit of the particle still has a period of $2\pi$ in our units, but this would now correspond to 92.8 minutes. + +!!! Info + One advantage of keeping $G=1$ is that you can choose units where all number in REBOUND have a magnitude of around one, as in the example above. + If you where to choose other units involving centimetres or seconds, then you would have to deal with very large or very small numbers. + +## Changing G +If you prefer to change the value of $G$, you can! +The following example sets $G$ to its value in SI units: +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + r->G = 6.6743e-11; // m^3 / kg s^2 + ``` +=== "Python" + ```python + sim = rebound.Simulation() + sim.G = 6.6743e-11 # m^3 / kg s^2 + ``` +From now on, all quantities that have unit of length (semi-major axis, particle radius, etc) need to be specified (and will be output) in meters. +All quantities that have units of time (timestep, orbital period, etc) need to be specified in seconds. +All quantities that have units of mass need to be specified in kg. +All quantities that have units of velocity need to be specified in meters per second. +And so on. + +## Convenience methods in python +The python version of REBOUND comes with its own set of convenience functions for changing the system of units. +Check out the [iPython example](ipython_examples/Units.ipynb). diff --git a/rebound/source/docs/visualization.md b/rebound/source/docs/visualization.md new file mode 100644 index 0000000000000000000000000000000000000000..47596f257811ab0ea5c55cfb0fa0ba72bc481b96 --- /dev/null +++ b/rebound/source/docs/visualization.md @@ -0,0 +1,136 @@ +# Visualization + +Starting with version 4, REBOUND includes new real-time interactive 3D visualizations. +The code for these visualization is built-upon the previous OpenGL visualizations that came with the C version of REBOUND. +However, the new visualization feature has several advantages + +- There are zero dependencies. No need to install GLFW or other libraries. +- The visualizations work on Linux, MacOS, Windows, including mobile devices. +- The visualizations work both for the C and python version of REBOUND. +- You can use visualizations for simulation running on remote servers. + +This page describes how to use these visualizations and the technology that makes this possible behind the scenes. + +## Basic idea + +Getting 3D visualization work out of the box on a wide variety of platforms is difficult. +To circumvent most of the issues, REBOUND uses an un-conventional approach: it allows you to use your web browser. +Web browsers have the advantage of being readily available on all operating systems. +And because they implement open standards (HTML, JS, WebAssembly, WebGL) they are unlikely to break compatibility with REBOUND any time soon. + +To get data from a simulation to a web browser, **REBOUND comes with its own built-in web server!** +In fact, every simulation can have its own web server. +After starting a web server, it sits idle in a separate thread until you decide to use it. +When a simulation is deallocated, the server is stopped. + +The following code shows how to start the server: + +=== "C" + ```c + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_start_server(r, 1234); + + ``` +=== "Python" + ```python + sim = rebound.Simulation() + sim.start_server(port=1234) + ``` + +By default, the server opens port 1234 on your computer. +Now all you have to do to see the visualization is to open your browser and go to [http://localhost:1234/](http://localhost:1234/) or [http://127.0.0.1:1234/](http://127.0.0.1:1234/). + +!!! warning "Security Warning" + When using this visualization feature REBOUND opens a network port on your computer. + The traffic over this port is unencrypted. + Anyone with access to the port can see your simulation data, control the simulation, and very likely do other bad things. + It is therefore highly recommended to *not* expose this port to the network or the internet. + Luckily, modern operating systems do not allow remote access to this port and are secure by default but you might need to be careful if running REBOUND on a server. + To access a simulation running on a remote server, use an SSH tunnel (see below). + +When you open the page the REBOUND web server accepts your request and serves you a `rebound.html` file which includes all the code required to visualize a simulation using WebGL. +The cool thing is, the visualization code is just REBOUND itself, compiled to WebAssembly using emscripten. +So the visualization that you see in your web browser is exactly the same as the one you see when compiling REBOUND with the `OPENGL=1` option but without all the hassles associated with using OpenGL/glut/GLFW libraries. + +You can generate (compile) a `rebound.html` file yourself. The code for that is in the directory `web_client/`. +But to do that you would need to download and install emscripten. +To help you out when connection to the REBOUND web server, REBOUND first looks for a `rebound.html` file in the current directly. +If it doesn't find it, then it downloads a pre-compiled file from GitHub. +This should work seamlessly in the background, so you might not even notice. + +Now, after REBOUND served the visualization code to your web browser, it needs to be able to send simulation data to the browser. +This is done by packing up the simulation as binary data in the form of a Simulationarchive. +This data is then sent to your browser via HTTP whenever your browser requests a new frame for the visualization. +This can be up to 60 times per second. +The REBOUND version running in your browser then reconstructs the full simulation using the Simulationarchive data. + +You can also send simple commands back from the browser to the server. +For example, by pressing the space bar you can pause and un-pause the integration. +You can press `q` to terminate the integration. +Commands that only affect the visualization (for example you can press `w` to show/hide orbits) are not sent back to the main simulation on the server. +For all keyboard commands available, press `h`. A help window will show up on screen. + + +## Widget in Jupyter notebooks +Instead of opening a new browser window for the visualization, you can also include a visualization widget in your Jupyter notebook. + +```python +sim = rebound.Simulation() +sim.widget(size=(400,400)) +``` + +This automatically starts the web server and the shows an iframe in your current notebook. +The iframe is simply showing the contents of http://localhost:1234. +You can connect multiple browser windows to the same simulation. +So in addition to having the widget directly in your notebook, you can also go to [http://localhost:1234](http://localhost:1234) to see the visualization. + + + +## Multiple simulations +You can visualize multiple simulations at the same time. +For that to work, each simulation needs to have its own port. +Make sure you close the server if you want to re-use the port the server is using for another simulation. + +=== "C" + ```c + reb_simulation_stop_server(r); // This stops the server. + reb_simulation_free(r); // This also stops the server if it's still running. + ``` + +=== "Python" + ```python + sim.stop_server(port=1234) # This stops the server. + del sim # This also stops the server if it's still running. + ``` + +## Connecting to remote servers + +Sometimes you might run a simulation on a remote server or computing cluster. +When connecting to the remote server using ssh, you can forward the port used for visualization. +REBOUND uses port 1234 by default, so you might want to enable port forwarding using + +```bash +ssh username@remotecomputer -L 1234:localhost:1234 +``` + +You can then connect to the visualization as usual by pointing your browser to http://localhost:1234. + +## Disabling web server + +Although REBOUND is compiled with the web server capability by default, no web server is started until you call `reb_simulation_start_server()` or `sim.start_sever()`. +You can also disable the web server capability completely if you want. +To do that set `export SERVER=0` in the Makefile. + +## Security and resource considerations +The built-in REBOUND web server provides a quick and easy way to visualize simulations. +It is not intended to be exposed to the public internet because someone might be able to gain access to your computer. + +Note that the visualization uses a considerable amount of CPU resources. You might want to disable it (stop the server) if you no longer use it. + +!!! info inline end "Future optimizations" + There are in principle better ways to stream data from a server to a client, for example using WebSockets. + A future version of REBOUND might optimize the CPU and bandwidth usage. + +Depending on your simulation (e.g. for simulations with a large number of particles), the communication between the REBOUND web server and your browser might use a lot of bandwidth and a lot of HTTP requests (up to 60 requests per second). + + diff --git a/rebound/source/examples/J2/Makefile b/rebound/source/examples/J2/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/J2/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/J2/plot.plt b/rebound/source/examples/J2/plot.plt new file mode 100644 index 0000000000000000000000000000000000000000..835734e31a261f6fd415fcf758edf6c578cd1271 --- /dev/null +++ b/rebound/source/examples/J2/plot.plt @@ -0,0 +1,16 @@ +#!/bin/gnuplot +set key top left +set xlabel "time [years]" +set ylabel "pericenter [deg]" +set autoscale xfix +set yrange [0:360] +mod360(x) = (x>360.)?mod360(x-360.):((x<0.)?mod360(x+360.):x) +n0 = 792.4350417074*0.534683065002063 +wdot = -n0*(3./2.*16298e-6/3./3.) +set ytics 90 + +plot \ +"a.txt" u ($1/2./pi):(mod360($4/pi*180)) w p t "simulation", \ +mod360(wdot*(x*2.*pi)/pi*180.) w l t "linear theory" + +pause -1 diff --git a/rebound/source/examples/J2/problem.c b/rebound/source/examples/J2/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..88e1fe49b328a0f3222544d7f11d1c91bd9e845d --- /dev/null +++ b/rebound/source/examples/J2/problem.c @@ -0,0 +1,118 @@ +/** + * J2 precession + * + * This example presents an implementation of the J2 gravitational moment. + * The equation of motions are integrated with the 15th order IAS15 + * integrator. The parameters in this example have been chosen to + * represent those of Saturn, but one can easily change them or even + * include higher order terms in the multipole expansion. Implementation + * assumes that Saturn's spin axis is along the z axis of the simulation. + * For arbitrary orientations and adding J4 contributions, use the + * gravitational_harmonics implementation in REBOUNDx. + */ +#include +#include +#include +#include "rebound.h" + +const double J2planet = 16298e-6; // J2 of Saturn (Murray and Dermott p 531) +const double Mplanet = 0.00028588598; // mass of Saturn in solar masses +const double Rplanet = 0.00038925688; // radius of Saturn in AU + +const double tmax = 1e2; // Maximum integration time + +void heartbeat(struct reb_simulation* r); +void force_J2(struct reb_simulation* r); + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the visualization web server. + // Point your browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->integrator = REB_INTEGRATOR_IAS15; + r->dt = 1e-6; // initial timestep + r->N_active = 2; // only the star and the planet are massive. + + // Planet + struct reb_particle planet = {0}; + planet.m = Mplanet; + reb_simulation_add(r, planet); + + struct reb_particle p = {0}; // test particle + double a = Rplanet*3.; // small distance from planet (makes J2 important) + double e = 0.1; + double v = sqrt((1.+e)/(1.-e)*r->G*planet.m/a); // setup eccentric orbit (ignores J2) + p.x = (1.-e)*a; + p.vy = v; + p.vz = v/10; + p.x += planet.x; p.y += planet.y; p.z += planet.z; + p.vx += planet.vx; p.vy += planet.vy; p.vz += planet.vz; + reb_simulation_add(r, p); + + reb_simulation_move_to_com(r); + + remove("a.txt"); // delete previous output + + // Setup callback functions + r->heartbeat = heartbeat; + r->additional_forces = force_J2; + + reb_simulation_integrate(r, tmax); + + reb_simulation_free(r); +} + +void force_J2(struct reb_simulation* r){ + if (J2planet==0 || r->particles[0].m == 0) return; + // Star + const struct reb_particle planet = r->particles[0]; // cache + const int N = r->N; +#pragma omp parallel for + for (int i=1;iparticles[i]; // cache + const double prx = p.x-planet.x; + const double pry = p.y-planet.y; + const double prz = p.z-planet.z; + const double pr2 = prx*prx + pry*pry + prz*prz; // distance^2 relative to planet + const double fac = -3.*r->G*J2planet*planet.m*Rplanet*Rplanet/2./pow(pr2,3.5); + + const double pax = fac*prx*(prx*prx + pry*pry - 4.*prz*prz); + const double pay = fac*pry*(prx*prx + pry*pry - 4.*prz*prz); + const double paz = fac*prz*(3.*(prx*prx + pry*pry) - 2.*prz*prz); + + r->particles[i].ax += pax; + r->particles[i].ay += pay; + r->particles[i].az += paz; + + const double mfac = r->particles[i].m/r->particles[0].m; + + r->particles[0].ax -= mfac*pax; + r->particles[0].ay -= mfac*pay; + r->particles[0].az -= mfac*paz; + } +} + +void heartbeat(struct reb_simulation* r){ + if(reb_simulation_output_check(r, 4000.*r->dt)){ // output something to screen + reb_simulation_output_timing(r, tmax); + } + if(reb_simulation_output_check(r,M_PI*2.*0.01)){ // output some orbital parameters to file + FILE* f = fopen("a.txt","ab"); + const struct reb_particle planet = r->particles[0]; + const int N = r->N; + for (int i=1;iG, r->particles[i],planet); + // compare against orbit-average analytic expressions + + double omegadot = 3.*o.n*J2planet*(Rplanet/o.a)*(Rplanet/o.a) / (1-o.e*o.e) / (1-o.e*o.e); + double Omegadot = -3./2.*o.n*J2planet*(Rplanet/o.a)*(Rplanet/o.a) / (1-o.e*o.e) / (1-o.e*o.e); + fprintf(f,"%.15e\t%.15e\t%.15e\t%.15e\t%.15e\n",r->t,o.omega,omegadot*r->t, o.Omega, Omegadot*r->t); + // can check that omega precesses and Omega regresses + } + fclose(f); + } +} + diff --git a/rebound/source/examples/Makefile b/rebound/source/examples/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..dda280e746b27fcd1f0f9be9cd1caab714e5a102 --- /dev/null +++ b/rebound/source/examples/Makefile @@ -0,0 +1,30 @@ +ifndef OS + OS=$(shell uname) +endif +MPIEXAMPLES := shearing_sheet_mpi/. selfgravity_disc_mpi/. mpi_unittests/. +WHFAST512EXAMPLES := whfast512_unittests/. whfast512_solar_system/. whfast512_2_planets/. shearing_sheet_server/. +ifneq ($(OS), Windows_NT) +SUBDIRS := $(filter-out $(WHFAST512EXAMPLES) $(MPIEXAMPLES),$(wildcard */.)) +else +SUBDIRS := $(filter-out openmp/. $(WHFAST512EXAMPLES) $(MPIEXAMPLES),$(wildcard */.)) +endif +MPISUBDIRS := $(filter $(MPIEXAMPLES),$(wildcard */.)) + +all: $(SUBDIRS) +$(SUBDIRS): + @echo "Trying to compile example $(subst /.,,$@):" + $(MAKE) -s -C $@ clean + $(MAKE) OPENGL=0 -j -s -C $@ + @echo "\033[1A\033[55CSuccess." + +mpi: $(MPISUBDIRS) +$(MPISUBDIRS): + @echo "Trying to compile MPI example $(subst /.,,$@):" + $(MAKE) -s -C $@ clean + $(MAKE) OPENGL=0 -j -s -C $@ + @echo "\033[1A\033[55CSuccess." + +.PHONY: all $(SUBDIRS) + +.PHONY: mpi $(MPISUBDIRS) + diff --git a/rebound/source/examples/animation_saturns_rings/Makefile b/rebound/source/examples/animation_saturns_rings/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/animation_saturns_rings/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/animation_saturns_rings/problem.c b/rebound/source/examples/animation_saturns_rings/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..6ea9dae86b6487a2357f44017f778c20236dfc5a --- /dev/null +++ b/rebound/source/examples/animation_saturns_rings/problem.c @@ -0,0 +1,97 @@ +/** + * Animation of the Saturn's Rings + * + * This examples show how to use display_settings to + * programmatically change the visualization of a + * REBOUND simulation. Here, we visualize a simulation of + * Saturn's rings and rotate the viewwing angle programatically. + * To understand what a 4x4 view matrix is, you can read + * up on linear algebra for computer graphics, specifically + * the Model-View-Projection (MVP) paradigm. + * + */ +#include +#include +#include +#include "rebound.h" + +double coefficient_of_restitution_bridges(const struct reb_simulation* const r, double v); + +// The heartbeat function is called once a timestep +void heartbeat(struct reb_simulation* const r){ + // Construct a rotation. + struct reb_vec3d axis = {.y=1., .z=0.2}; + struct reb_rotation rot = reb_rotation_init_angle_axis(0.003, axis); // small increment every timestep + + // Convert quaternion to rotation matrix + struct reb_mat4df rm = reb_rotation_to_mat4df(rot); + + // Apply incremental rotation to view matrix. + r->display_settings->view = reb_mat4df_multiply(rm, r->display_settings->view); +} + + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + + // The heartbeat function handles the visualization in this example. + r->heartbeat = heartbeat; + + // Setup problem. For more details, see the shearing sheet example. + r->opening_angle2 = .5; + r->integrator = REB_INTEGRATOR_SEI; + r->boundary = REB_BOUNDARY_SHEAR; + r->gravity = REB_GRAVITY_TREE; + r->collision = REB_COLLISION_TREE; + r->collision_resolve = reb_collision_resolve_hardsphere; + r->coefficient_of_restitution = coefficient_of_restitution_bridges; + r->ri_sei.OMEGA = 0.00013143527; // 1/s + r->minimum_collision_velocity = r->ri_sei.OMEGA*0.001; + r->G = 6.67428e-11; // N / (1e-5 kg)^2 m^2 + r->softening = 0.1; // m + r->dt = 1e-3*2.*M_PI/r->ri_sei.OMEGA; // s + + reb_simulation_configure_box(r, 100, 2, 2, 1); // 100m box + r->N_ghost_x = 2; r->N_ghost_y = 2; r->N_ghost_z = 0; + + // Add all ring paricles + double mass = 0; + while(mass < 400*r->boxsize.x*r->boxsize.y){ // 400kg/m^2 surface density + struct reb_particle pt = {0}; + pt.x = reb_random_uniform(r, -r->boxsize.x/2.,r->boxsize.x/2.); + pt.y = reb_random_uniform(r, -r->boxsize.y/2.,r->boxsize.y/2.); + pt.z = reb_random_normal(r, 1.); // m + pt.vy = -1.5*pt.x*r->ri_sei.OMEGA; + double radius = reb_random_powerlaw(r, 1., 4.,-3); + pt.r = radius; // m + double particle_mass = 400.0*4./3.*M_PI*radius*radius*radius; // 400kg/m^3 particle density + pt.m = particle_mass; // kg + reb_simulation_add(r, pt); + mass += particle_mass; + } + + // Normally the visualization settings are determined by the + // user interface. If we add the display_settings struct to + // the simulation itself, it will overwrite any change the + // user has made and allows us to programatically change any + // settings such as the orientation, zoom, etc. + reb_simulation_add_display_settings(r); + + // This allows you to connect to the simulation using + // a web browser. Simply go to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Integrate forever + reb_simulation_integrate(r, INFINITY); + reb_simulation_free(r); +} + +// This example is using a custom velocity dependend coefficient of restitution +double coefficient_of_restitution_bridges(const struct reb_simulation* const r, double v){ + // assumes v in units of [m/s] + double eps = 0.32*pow(fabs(v)*100.,-0.234); + if (eps>1) eps=1; + if (eps<0) eps=0; + return eps; +} + diff --git a/rebound/source/examples/animation_solar_system/Makefile b/rebound/source/examples/animation_solar_system/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/animation_solar_system/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/animation_solar_system/problem.c b/rebound/source/examples/animation_solar_system/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..12f475920fd1acfb729f5dcb8c24324c0d1df495 --- /dev/null +++ b/rebound/source/examples/animation_solar_system/problem.c @@ -0,0 +1,211 @@ +/** + * Animation of the Solar System + * + * This examples show how to use display_settings to + * programmatically change the visualization of a + * REBOUND simulation. This can be used to render movies. + * To understand what a 4x4 view matrix is, you can read + * up on linear algebra for computer graphics, specifically + * the Model-View-Projection (MVP) paradigm. + * + */ +#include "rebound.h" +#include +#include + +struct reb_mat4df view0; // Initial view matrix +double dt0; // Initial timestep + +double inflate_size = 5; // Inflate particle sizes + +// Quadratic ease in/out function for smooth animations +double ease_in_out(double x){ + if (x<0.0) x=0.0; + if (x>1.0) x=1.0; + return x < 0.5 ? 2.0*x*x : 1.0-(2.0-2.0* x)*(1.0-1.0*x); +} + +// Heartbeat function changes the display settings every timestep +// The following animations play in this order: +// - Zoom in +// - Rotation around the x axis +// - Slowing down of simulation +// - Combined zoom in on Earth and rotation +void heartbeat(struct reb_simulation* const r){ + // Construct a 90 rotation around the x axis + struct reb_vec3d a = {.x=1.}; // x axis + struct reb_rotation rot_x = reb_rotation_init_angle_axis(M_PI_2, a); // pi/2 = 90 degrees + + // We start from the original view matrix view0, but we could also + // apply consequitive changes to the current view matrix stored in + // r->display_settings->view + struct reb_mat4df view = view0; + + if (r->t < 2.*2.*M_PI){ // First 2 years + + // Slerp (interpolate) between no rotation (identity) and a rotation around the x axis + float t = ease_in_out(r->t/(2.*2.*M_PI)); // runs from 0 to 1 + struct reb_rotation rot_slerp = reb_rotation_slerp(reb_rotation_identity(), rot_x, t); + + // Convert rotation quaternion to 4d rotation matrix and then + // operate the rotation matrix on the view matrix. + struct reb_mat4df rm = reb_rotation_to_mat4df(rot_slerp); + view = reb_mat4df_multiply(rm, view); + + }else if (r->t > 2.*2.*M_PI && r->t < 4.*2.*M_PI){ // Year 2 to 4 + // Show orbits as wires + r->display_settings->wire = 1; + + // Increase length of trail to 64 + r->display_settings->breadcrumbs = 64; + + // Apply same rotation matrix as before + struct reb_mat4df rm = reb_rotation_to_mat4df(rot_x); + view = reb_mat4df_multiply(rm, view); + + // Also apply a zoom operation + float t = ease_in_out(((r->t/(2.*M_PI) - 2.0)/2.0)); // runs from 0 to 1 + float s = 1.+30.0*t; // zoom factor + view = reb_mat4df_scale(view, s,s,s); // zoom in + + }else if (r->t > 4.*2.*M_PI && r->t < 5.*2.*M_PI){ // Year 4 to 5 + + + // Reduce timestep + r->dt = dt0/10.0; + // Hide wires + r->display_settings->wire = 0; + if (r->N==9){ + // Add moon (these are not exact parameters, just for illustration) + struct reb_particle e = r->particles[3]; + reb_simulation_add_fmt(r, "a m r primary", 0.0025695553, 3.6943033e-08, 1.1617812e-05*inflate_size, e); + } + + // Get Earth-Moon Barycenter + struct reb_particle em_com = reb_particle_com_of_pair(r->particles[3], r->particles[9]); + + // Apply same rotation and zoom as before (we could cache this) + struct reb_mat4df rm = reb_rotation_to_mat4df(rot_x); + view = reb_mat4df_multiply(rm, view); + view = reb_mat4df_scale(view, 31.,31.,31.); + + // slowly zoom in + float ts = ease_in_out((r->t/(2.*M_PI) - 4.0)); // runs from 0 to 1 + float s = 1.+500.0*ts*ts; // zoom factor + view = reb_mat4df_scale(view, s,s,s); // second zoom operation + + // slowly move earth to center + float tm = ease_in_out((r->t/(2.*M_PI) - 4.0)*3.); // runs from 0 to 1 + view = reb_mat4df_translate(view, -tm*em_com.x, -tm*em_com.y, -tm*em_com.z); // translate view + + }else{ // Continue until forever + + // Get Earth-Moon Barycenter + struct reb_particle em_com = reb_particle_com_of_pair(r->particles[3], r->particles[9]); + + // Apply same rotation, zoom, and keep centered on earth + struct reb_mat4df rm = reb_rotation_to_mat4df(rot_x); + view = reb_mat4df_multiply(rm, view); + view = reb_mat4df_scale(view, 31.,31.,31.); // We could combine the zoom operations + view = reb_mat4df_scale(view, 500.,500.,500.); + view = reb_mat4df_translate(view, -em_com.x, -em_com.y, -em_com.z); // translate view + + // Show real size of particles + r->display_settings->spheres = 1; + // Hide planet trails + r->display_settings->breadcrumbs = 0; + + } + + // Store the view matrix + r->display_settings->view = view; +} + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + + // Solar System initial conditions from NASA Horizons + // Units are solar mass, AU, years/2pi. + reb_simulation_add_fmt(r, "m r x y z vx vy vz", 0.9999999999950272, 0.0046524726, + -0.007784066163300598, -0.003160235321847074, 0.0002085198739177632, + 0.00029808520873668176, -0.0003933583120820104, -3.0307129383172144e-06); + reb_simulation_add_fmt(r, "m r x y z vx vy vz", 1.6601208254808336e-07, 1.6313735e-05, + -0.0197573020117554, -0.4659490539727674, -0.036512748618975056, + 1.3072205503890428, 0.04106840511679157, -0.11649038132810724); + reb_simulation_add_fmt(r, "m r x y z vx vy vz", 2.447838287784771e-06, 4.0453784e-05, + -0.31310669579085715, -0.6609240473612075, 0.008792509815427053, + 1.058788984690766, -0.5006529730168531, -0.06794916369487035); + reb_simulation_add_fmt(r, "m r x y z vx vy vz", 3.0404326489511185e-06, 4.2587571e-05, + -0.7304336184787301, 0.6677833148611707, 0.0001754893039781267, + -0.6964579069368259, -0.7370893850360778, 4.193835863036079e-05); + reb_simulation_add_fmt(r, "m r x y z vx vy vz", 3.2271560828978514e-07, 2.2702195e-05, + 0.22987379117805698, -1.4195661773490975, -0.035304801938727, + 0.833220942267478, 0.2040504545094634, -0.01614911011819359); + reb_simulation_add_fmt(r, "m r x y z vx vy vz", 0.0009547919099366768, 0.0004778945, + 3.278533805383686, 3.7537759447476775, -0.08892301493418556, + -0.3352619068991809, 0.3093717438204439, 0.006217554149365762); + reb_simulation_add_fmt(r, "m r x y z vx vy vz", 0.0002858856700231729, 0.0004028667, + 9.053130670591704, -3.529112154855013, -0.2990863565225466, + 0.09969170490350149, 0.30152611855823136, -0.009212249609912534); + reb_simulation_add_fmt(r, "m r x y z vx vy vz", 4.366249613200406e-05, 0.00017085136, + 12.148791396671397, 15.380702941916812, -0.10026566241603418, + -0.18110086740935336, 0.1310657378884879, 0.00283290820462697); + reb_simulation_add_fmt(r, "m r x y z vx vy vz", 5.151383772628957e-05, 0.00016553712, + 29.840954544603573, -1.6778892885804566, -0.6531621601938832, + 0.00903845442721642, 0.18328001746914682, -0.003982606081774178); + + reb_simulation_move_to_com(r); + + // Inflate sized for illustration + for(int i=0;iN;i++){ + r->particles[i].r *= inflate_size; + } + + // We use the WHFast integrator and a fixed timestep of 2 days + r->integrator = REB_INTEGRATOR_WHFAST; + r->dt = 2./365.25 *2.0*M_PI; + + + // Starting the REBOUND visualization server. This + // allows you to visualize the simulation by pointing + // your web browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Normally the visualization settings are determined by the + // user interface. If we add the display_settings struct to + // the simulation itself, it will overwrite any change the + // user has made and allows us to programatically change any + // settings such as the orientation, zoom, etc. + reb_simulation_add_display_settings(r); + + // Initially, rotate to an edge on view + struct reb_vec3d a = {.x=1.}; // x axis + struct reb_rotation rot_x = reb_rotation_init_angle_axis(M_PI_2, a); // pi/2 = 90 degrees + struct reb_mat4df rm = reb_rotation_to_mat4df(rot_x); + r->display_settings->view = reb_mat4df_multiply(rm, r->display_settings->view); + + // Store initial view matrix and timestep so we can use it as a reference + view0 = r->display_settings->view; + dt0 = r->dt; + + // The heartbeat function is called once per timestep and handles the + // scripted view changes + r->heartbeat = heartbeat; + + // Show particles as points (not as spheres with their real size) + r->display_settings->spheres = 0; + // Show orbits as planes + r->display_settings->wire = 2; + // Show 4 past particle positions + r->display_settings->breadcrumbs = 4; + + // Slow the simulation down to at most 120 timesteps per second. + r->usleep = 8333; + + // Then keep running forever. + reb_simulation_integrate(r, INFINITY); + + // Cleanup + reb_simulation_free(r); +} + diff --git a/rebound/source/examples/api/Makefile b/rebound/source/examples/api/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..c4652ace88e24b10d3d2eaf70ebbe288d794089c --- /dev/null +++ b/rebound/source/examples/api/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=0# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/api/problem.c b/rebound/source/examples/api/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..f82d93a08c8c3794be93066b93e959ce818b229b --- /dev/null +++ b/rebound/source/examples/api/problem.c @@ -0,0 +1,62 @@ +/** + * REBOUND API without simulations + * + * REBOUND is a shared library. This means you can not only run full simulations + * from your program, but also use internal functions from REBOUND in your + * own programs. Here we demonstrate some common use cases: We use a Kepler + * solver to move a planet along it's orbit. And we calculate orbital elements + * for a pair of particles. Note that we never initialize a simulation. + * + * + */ +#include "rebound.h" +#include +#include + +int main(int argc, char* argv[]) { + // Let's use the WHFAST's built-in Kepler solver to move a single particle + // along its Keplerian orbit. This solver is very fast and accurate for + // eccentric as well as hyperbolic orbits. + + // We define a massless particle on a circular orbit: + struct reb_particle p = {.x=1,.vy=1}; + printf("Initial position: %f %f %f\n", p.x, p.y, p.z); + + // Now we move the particle forward along it's orbit. + // The central object is at the coordinate origin and has a mass of 1.0. + double G = 1.0; // Working in units where G=1, but you can choose other units if you prefer. + double GM = G*1.0; // The gravitational parameter (G*mass); + double dt = M_PI; // Time interval, here: half an orbital period + reb_whfast_kepler_solver(NULL, &p, GM, 0, dt); + // We pass NULL to indicate that particle p is not part of a REBOUND simulation + // The second argument can be a pointer to a list of particles. Here we just use the 0th entry. + + // The particle is now on the opposite site of the primary. + printf("Final position: %f %f %f\n", p.x, p.y, p.z); + + + // Let's use the built-in coordinate transformations tools in REBOUND + // to calculate a particle's orbital parameters. These routines are well + // tested and work in all edge cases. + + // We define the primary with respect to which we will calculate the orbital + // parameters. This could be an actual particle (e.g. the Sun in the Solar System) + // or a virtual partical, for example when calculating Jacobi coordinates. + struct reb_particle primary = {.m=1}; // Particle with mass 1, at origin, at rest + int err = 0; // Error code. + struct reb_orbit o = reb_orbit_from_particle_err(G, p, primary, &err); + + // Checking if an error occured. + // This can happen if the primary has no mass or if the particles are on top of each other. + if (err){ + printf("An error occured during orbit calculation.\n"); + } + + // Printing out some parameters (see rebound.h for all parameters) + printf("Semi-major axis: %f\nEccentricity: %f\nInclination: %f\n", o.a, o.e, o.inc); + + // We can also for example calculate the eccentric anomaly for a given eccentricity and mean anomaly + printf("Eccentric anomaly: %f\n", reb_M_to_E(o.e, o.M)); + +} + diff --git a/rebound/source/examples/arbitrary_ode/Makefile b/rebound/source/examples/arbitrary_ode/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/arbitrary_ode/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/arbitrary_ode/problem.c b/rebound/source/examples/arbitrary_ode/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..846e330c03e5bea687e732db52fcf52e76acb0ea --- /dev/null +++ b/rebound/source/examples/arbitrary_ode/problem.c @@ -0,0 +1,52 @@ +/** + * Integrating arbitrary ODEs + * + * This examples shows how to integrate arbitrary ODEs + * with REBOUND. In this case we couple a harmonic + * oscillator to an N-body simulation and drive it using + * the orbital phase of a planet. + * + */ +#include "rebound.h" +#include +#include + +const double k = 1.; // Constants for the Harmonic Oscillator +const double m = 1.; + +void derivatives(struct reb_ode* const ode, double* const yDot, const double* const y, const double t){ + const double omega = sqrt(k/m); + struct reb_orbit o = reb_orbit_from_particle(ode->r->G, ode->r->particles[1], ode->r->particles[0]); + double forcing = sin(o.f); + yDot[0] = y[1]; + yDot[1] = -omega*omega*y[0] + forcing; +} + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + + reb_simulation_add_fmt(r, "m", 1.); // Central object + reb_simulation_add_fmt(r, "m a e", 1e-3, 1., 0.1); // Jupiter mass planet + reb_simulation_move_to_com(r); + + r->integrator = REB_INTEGRATOR_BS; // Bulirsch-Stoer integrator + r->ri_bs.eps_rel = 1e-8; // Relative tolerance + r->ri_bs.eps_abs = 1e-8; // Absolute tolerance + r->dt = 1e-2; + + struct reb_ode* ho = reb_ode_create(r,2); // Add an ODE with 2 dimensions + ho->derivatives = derivatives; // Right hand side of the ODE + ho->y[0] = 1; // Initial conditions + ho->y[1] = 0; + + while(r->t<10){ + reb_simulation_integrate(r, r->t + 0.3); + printf("y(%.5f) \t = %.5f \n",r->t, ho->y[0]); + } + + + reb_ode_free(ho); + reb_simulation_free(r); + +} + diff --git a/rebound/source/examples/bouncing_balls/Makefile b/rebound/source/examples/bouncing_balls/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/bouncing_balls/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/bouncing_balls/problem.c b/rebound/source/examples/bouncing_balls/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..fa8c53fc481c3f26b62cadef7cfccb671974ffff --- /dev/null +++ b/rebound/source/examples/bouncing_balls/problem.c @@ -0,0 +1,47 @@ +/** + * Bouncing balls + * + * This example is a simple test of collision detection + * methods. + */ +#include +#include +#include +#include "rebound.h" + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the visualization web server. + // Point your browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->integrator = REB_INTEGRATOR_LEAPFROG; + r->gravity = REB_GRAVITY_BASIC; + r->collision = REB_COLLISION_DIRECT; + r->collision_resolve = reb_collision_resolve_hardsphere; + r->usleep = 1000; // Slow down integration (for visualization only) + r->dt = 1e-2; + + reb_simulation_configure_box(r, 3.0, 1, 1, 1); + + // Initial conditions + { + struct reb_particle p = {0}; + p.x = 1; p.y = 1; p.z = 1; + p.m = 1; + p.r = 0.1; + reb_simulation_add(r, p); + } + { + struct reb_particle p = {0}; + p.x = -1; p.y = -1; p.z = -1; + p.m = 1; + p.r = 0.1; + reb_simulation_add(r, p); + } + + reb_simulation_integrate(r, INFINITY); +} + diff --git a/rebound/source/examples/bouncing_balls_corners/Makefile b/rebound/source/examples/bouncing_balls_corners/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/bouncing_balls_corners/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/bouncing_balls_corners/problem.c b/rebound/source/examples/bouncing_balls_corners/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..3cdb44ba61ea6ea1fadec8b767c76265a528e10d --- /dev/null +++ b/rebound/source/examples/bouncing_balls_corners/problem.c @@ -0,0 +1,93 @@ +/** + * Bouncing balls at corner + * + * This example tests collision detection methods across box boundaries. + * There are four particles, one in each corner. To see the ghost boxes in OpenGL + * press `g` while the simulation is running. + */ +#include +#include +#include +#include "rebound.h" + +extern double coefficient_of_restitution; +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the visualization web server. + // Point your browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup modules and constants + r->integrator = REB_INTEGRATOR_LEAPFROG; + r->gravity = REB_GRAVITY_BASIC; + r->collision = REB_COLLISION_TREE; + r->collision_resolve = reb_collision_resolve_hardsphere; + r->dt = 1e-3; + r->boundary = REB_BOUNDARY_PERIODIC; + r->usleep = 1000; // Slow down integration (for visualization only) + reb_simulation_configure_box(r,3.,1,1,1); + + // Initial conditions + int problem_id = 1; + if (argc>1){ + problem_id = atoi(argv[1]); + } + struct reb_particle p = {0}; + + switch (problem_id){ + case 1: // Multiple instantaneous collisions across boundaries + r->N_ghost_x = 1; r->N_ghost_y = 1; r->N_ghost_z = 0; + p.x = 1; p.y = 1; p.z = 0; + p.m = 1; + p.r = 0.1; + reb_simulation_add(r,p); + p.x = -1; p.y = -1; p.z = 0; + p.m = 1; + p.r = 0.1; + reb_simulation_add(r,p); + p.x = 1; p.y = -1; p.z = 0; + p.m = 1; + p.r = 0.1; + reb_simulation_add(r,p); + p.x = -1; p.y = 1; p.z = 0; + p.m = 1; + p.r = 0.1; + reb_simulation_add(r,p); + break; + case 2: // Multiple instantaneous collisions with different sizes + r->N_ghost_x = 0; r->N_ghost_y = 0; r->N_ghost_z = 0; + p.x = 0; p.y = 0; p.z = 0; + p.m = 1; + p.r = 0.5; + reb_simulation_add(r,p); + p.x = 1; p.y = 1; p.z = 0; + p.m = 0.008; + p.r = 0.1; + reb_simulation_add(r,p); + p.x = -1; p.y = -1; p.z = 0; + p.m = 0.008; + p.r = 0.1; + reb_simulation_add(r,p); + p.x = 1; p.y = -1; p.z = 0; + p.m = 0.008; + p.r = 0.3; + reb_simulation_add(r,p); + p.x = -1; p.y = 1; p.z = 0; + p.m = 0.008; + p.r = 0.2; + reb_simulation_add(r,p); + p.x = 0; p.y = 0; p.z = 1.3; + p.m = 0.008; + p.r = 0.1; + reb_simulation_add(r,p); + p.x = 0; p.y = 0; p.z =-1.3; + p.m = 0.008; + p.r = 0.05; + reb_simulation_add(r,p); + break; + } + + reb_simulation_integrate(r,INFINITY); +} + diff --git a/rebound/source/examples/bouncing_string/Makefile b/rebound/source/examples/bouncing_string/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/bouncing_string/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/bouncing_string/problem.c b/rebound/source/examples/bouncing_string/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..3e8e69e3744080af17fe8f9cc4555a288056da3d --- /dev/null +++ b/rebound/source/examples/bouncing_string/problem.c @@ -0,0 +1,47 @@ +/** + * A string of solid spheres bouncing + * + * This example tests collision detection methods. + * The example uses a non-square, rectangular box. 10 particles are placed + * along a line. All except one of the particles are at rest initially. + */ +#include +#include +#include +#include "rebound.h" + +int main(int argc, char* argv[]){ + struct reb_simulation* const r = reb_simulation_create(); + + // Start the visualization web server. + // Point your browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup modules and constants + r->dt = 1e-3; + r->integrator = REB_INTEGRATOR_LEAPFROG; + r->boundary = REB_BOUNDARY_PERIODIC; + r->collision = REB_COLLISION_DIRECT; + r->collision_resolve = reb_collision_resolve_hardsphere; + r->gravity = REB_GRAVITY_NONE; + r->usleep = 5000; // Slow down integration (for visualization only) + + reb_simulation_configure_box(r,10.,3,1,1); // boxsize 10., three root boxes in x direction, one in y and z + r->N_ghost_x = 1; + r->N_ghost_y = 1; + r->N_ghost_z = 0; + + // Initial conditions + for(int i=0;i<10;i++){ + struct reb_particle p = {0}; + p.x = -r->boxsize.x/2.+r->boxsize.x*(double)i/10.; p.y = 0; p.z = 0; + p.m = 1; + p.r = 1; + reb_simulation_add(r, p); + } + + // Give one particle a kick + r->particles[0].vx = 20; + + reb_simulation_integrate(r,INFINITY); +} diff --git a/rebound/source/examples/circumplanetarydust/Makefile b/rebound/source/examples/circumplanetarydust/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/circumplanetarydust/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/circumplanetarydust/plot.plt b/rebound/source/examples/circumplanetarydust/plot.plt new file mode 100644 index 0000000000000000000000000000000000000000..f5e81cd248e6216814bfe688523e76c958024056 --- /dev/null +++ b/rebound/source/examples/circumplanetarydust/plot.plt @@ -0,0 +1,19 @@ +#!/bin/gnuplot +set key top left +set xlabel "time [years]" +set ylabel "semimajor axis [AU]" +set multiplot layout 2,1 +beta = 0.01 +set lmargin 12 +k = 2.497557889905430e-03*beta*4./3. +a(t) = 0.001*sqrt(1.-k*t) +set st d l +set autoscale xfix +set xtics 1000 + +plot "a.txt" u ($1/2./pi):($2) notit + +set ylabel "semimajor axis error [AU]" +plot "a.txt" u ($1/2./pi):(abs($2-a($1/2./pi))) notit + +pause -1 diff --git a/rebound/source/examples/circumplanetarydust/problem.c b/rebound/source/examples/circumplanetarydust/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..ec735ca57bd6b87158d093c31992c7505bfedce1 --- /dev/null +++ b/rebound/source/examples/circumplanetarydust/problem.c @@ -0,0 +1,130 @@ +/** + * Radiation forces on circumplanetary dust + * + * This example shows how to integrate circumplanetary + * dust particles using the IAS15 integrator. + * The example sets the function pointer `additional_forces` + * to a function that describes the radiation forces. + * The example uses a beta parameter of 0.01. + * The output is custom too, outputting the semi-major axis of + * every dust particle relative to the planet. + */ +#include +#include +#include +#include "rebound.h" + +void force_radiation(struct reb_simulation* r); +void heartbeat(struct reb_simulation* r); + +double betaparticles = 0.01; // Beta parameter, defined as the ratio of radiation pressure over gravity. +double tmax = 1e6; + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the visualization web server. + // Point your browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->integrator = REB_INTEGRATOR_IAS15; + r->dt = 1e-4; // Initial timestep. + r->N_active = 2; // Only the star and the planet are massive. + r->additional_forces = force_radiation; + r->heartbeat = heartbeat; + r->usleep = 5000; // Slow down integration (for visualization only) + + // Star + struct reb_particle star = {0}; + star.m = 1.; + reb_simulation_add(r, star); + + + // planet + struct reb_particle planet = {0}; + planet.m = 1e-3; + planet.x = 1; + planet.vy = sqrt(r->G*(star.m+planet.m)/planet.x); + reb_simulation_add(r, planet); + + + + // Dust particles + while(r->N<3){ // Three particles in total (star, planet, dust particle) + struct reb_particle p = {0}; + p.m = 0; // massless + double _r = 0.001; // distance from planet planet + double v = sqrt(r->G*planet.m/_r); + p.x = _r; + p.vy = v; + p.x += planet.x; p.y += planet.y; p.z += planet.z; + p.vx += planet.vx; p.vy += planet.vy; p.vz += planet.vz; + reb_simulation_add(r, p); + } + + reb_simulation_move_to_com(r); + + remove("a.txt"); + + reb_simulation_integrate(r, tmax); +} + +void force_radiation(struct reb_simulation* r){ + struct reb_particle* particles = r->particles; + const struct reb_particle star = particles[0]; // cache + const int N = r->N; + const double G = r->G; +#pragma omp parallel for + for (int i=0;iparticles; + const struct reb_particle planet = particles[1]; + const double G = r->G; + const double t = r->t; + const int N = r->N; + for (int i=2;i +#include +#include +#include "rebound.h" + +void heartbeat(struct reb_simulation* r); + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the visualization web server. + // Point your browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + r->dt = 0.01*2.*M_PI; // initial timestep + r->integrator = REB_INTEGRATOR_IAS15; + r->heartbeat = heartbeat; + r->usleep = 10000; // Slow down integration (for visualization only) + + // Add star + struct reb_particle star = {0}; + star.m = 1; + reb_simulation_add(r, star); + + // Add planets + int N_planets = 7; + for (int i=0;i +#include +#include +#include "rebound.h" + +void heartbeat(struct reb_simulation* r); + +double e_init; // initial energy + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the visualization web server. + // Point your browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + r->dt = 0.0012*2.*M_PI; + r->integrator = REB_INTEGRATOR_MERCURIUS; + r->ri_mercurius.r_crit_hill = 3; // By default the switching radius is three times the hill radius + r->heartbeat = heartbeat; + + struct reb_particle star = {0}; + star.m = 1; + reb_simulation_add(r, star); + + // Add planets + int N_planets = 3; + for (int i=0;it, fabs((e-e_init)/e_init)); + fclose(f); + } +} + diff --git a/rebound/source/examples/closeencounter_record/Makefile b/rebound/source/examples/closeencounter_record/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/closeencounter_record/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/closeencounter_record/problem.c b/rebound/source/examples/closeencounter_record/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..fafbd448659d5d409d5b551d7cfb1dbd3935d8f1 --- /dev/null +++ b/rebound/source/examples/closeencounter_record/problem.c @@ -0,0 +1,84 @@ +/** + * Detect and record close encounters + * + * This example integrates a densely packed planetary system + * which becomes unstable on a timescale of only a few orbits. + * The example is identical to the `close_encounter` sample, except that + * the collisions are recorded and written to a file. What kind of collisions + * are recorded can be easily modified. It is also possible to implement some + * additional physics whenever a collision has been detection (e.g. fragmentation). + * The collision search is by default a direct search, i.e. O(N^2) but can be + * changed to a tree by using the `collisions_tree.c` module. + */ +#include +#include +#include +#include "rebound.h" + +// Define our own collision resolve function, which will only record collisions but not change any of the particles. +enum REB_COLLISION_RESOLVE_OUTCOME collision_record_only(struct reb_simulation* const r, struct reb_collision c){ + double delta_t = 2.*M_PI; + struct reb_particle* particles = r->particles; + const double t = r->t; + + // only record a maximum of one collision per year per particle + if ( particles[c.p1].last_collision+delta_t < t && particles[c.p2].last_collision+delta_t < t ){ + particles[c.p1].last_collision = t; + particles[c.p2].last_collision = t; + printf("\nCollision detected.\n"); + FILE* of = fopen("collisions.txt","a+b"); // open file for collision output + fprintf(of, "%e\t", t); // time + fprintf(of, "%e\t", (particles[c.p1].x+particles[c.p2].x)/2.); // x position + fprintf(of, "%e\t", (particles[c.p1].y+particles[c.p2].y)/2.); // y position + fprintf(of, "\n"); + fclose(of); // close file + } + return REB_COLLISION_RESOLVE_OUTCOME_REMOVE_NONE; +} + + +void heartbeat(struct reb_simulation* r){ + if (reb_simulation_output_check(r, 10.*2.*M_PI)){ + reb_simulation_output_timing(r, 0); + } +} + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the visualization web server. + // Point your browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + r->dt = 0.1*2.*M_PI; // initial timestep + r->integrator = REB_INTEGRATOR_IAS15; + r->collision = REB_COLLISION_DIRECT; + r->collision_resolve = collision_record_only; // Set function pointer for collision recording. + r->heartbeat = heartbeat; + r->usleep = 10000; // Slow down integration (for visualization only) + + struct reb_particle star = {0}; + star.m = 1; + star.r = 0; // Star is pointmass + reb_simulation_add(r, star); + + // Add planets + int N_planets = 7; + for (int i=0; i +#include +#include +#include "rebound.h" + +void additional_forces(struct reb_simulation* const r); +void heartbeat(struct reb_simulation* const r); + +double tmax = 40.; + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the visualization web server. + // Point your browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->dt = 1e-4; // initial timestep. + r->integrator = REB_INTEGRATOR_IAS15; + r->gravity = REB_GRAVITY_NONE; + + // Setup callback function for velocity dependent forces. + r->additional_forces = additional_forces; + r->force_is_velocity_dependent = 1; + // Setup callback function for outputs. + r->heartbeat = heartbeat; + // Slow down integration (for visualization only) + r->usleep = 10000; + + struct reb_particle p = {0}; + p.m = 0; // massless + p.x = 1; + p.vx = -1; + reb_simulation_add(r, p); + + // Delete previous output + remove("r.txt"); + + // Do the integration + reb_simulation_integrate(r, tmax); +} + +void additional_forces(struct reb_simulation* const r){ + // Simplest velocity dependent drag force. + double dragcoefficient = 1; + struct reb_particle* const particles = r->particles; + const int N = r->N; + for (int i=0;idt)){ + reb_simulation_output_timing(r, tmax); + } + // Output the particle position to a file every timestep. + const struct reb_particle* const particles = r->particles; + FILE* f = fopen("r.txt","ab"); + fprintf(f,"%e\t%e\t%e\n",r->t,particles[0].x, particles[1].vx); + fclose(f); +} diff --git a/rebound/source/examples/eccentric_orbit/Makefile b/rebound/source/examples/eccentric_orbit/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/eccentric_orbit/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/eccentric_orbit/problem.c b/rebound/source/examples/eccentric_orbit/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..2a5ae7f973b770a1572510b44f903210d0fb535a --- /dev/null +++ b/rebound/source/examples/eccentric_orbit/problem.c @@ -0,0 +1,59 @@ +/** + * Highly eccentric orbits + * + * This example uses the IAS15 integrator to simulate + * a very eccentric planetary orbit. The integrator + * automatically adjusts the timestep so that the pericenter passages + * are resolved with high accuracy. + */ +#include +#include +#include +#include "rebound.h" + +double timescale; // orbital timescale +void heartbeat(struct reb_simulation* r); + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the visualization web server. + // Point your browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->G = 1; // Gravitational constant + r->integrator = REB_INTEGRATOR_IAS15; + r->heartbeat = heartbeat; + r->ri_ias15.adaptive_mode = 2; // Improved timestep criterion + + double e_testparticle = 1.-1e-7; + double mass_scale = 1.; // Some integrators have problems when changing the mass scale, IAS15 does not. + double size_scale = 1.; // Some integrators have problems when changing the size scale, IAS15 does not. + + struct reb_particle star = {0}; + star.m = mass_scale; + reb_simulation_add(r, star); + + struct reb_particle planet; + planet.m = 0; + planet.x = size_scale*(1.-e_testparticle); + planet.vy = sqrt((1.+e_testparticle)/(1.-e_testparticle)*mass_scale/size_scale); + reb_simulation_add(r, planet); + + reb_simulation_move_to_com(r); + + // initial timestep + r->dt = 1e-13*sqrt(size_scale*size_scale*size_scale/mass_scale); + // calculate orbital timescale + timescale = 2.*M_PI*sqrt(size_scale*size_scale*size_scale/mass_scale); + + reb_simulation_integrate(r, INFINITY); +} + +void heartbeat(struct reb_simulation* r){ + if(reb_simulation_output_check(r,timescale/0.1)){ // outputs to the screen every 0.1 orbits + reb_simulation_output_timing(r, 0); + } +} + diff --git a/rebound/source/examples/frequency_analysis/Makefile b/rebound/source/examples/frequency_analysis/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..c4652ace88e24b10d3d2eaf70ebbe288d794089c --- /dev/null +++ b/rebound/source/examples/frequency_analysis/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=0# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/frequency_analysis/problem.c b/rebound/source/examples/frequency_analysis/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..21e842c822fd9fb8e1184f3d676ae353609ba2d8 --- /dev/null +++ b/rebound/source/examples/frequency_analysis/problem.c @@ -0,0 +1,90 @@ +/** + * Frequency Analysis + * + * This example demonstrates how to use REBOUND's built-in + * frequency analysis tools to perform a Modified Fourier + * Transform or a Frequency Modified Fourier Transform. + */ + +#include "rebound.h" +#include +#include +#include +#include + +// Secular modes for Jupiter. Taken from Laskar (1990). +double nu5[] = {4.2488163, 28.2206942, 3.0895148, 52.1925732, 27.0613982, 29.3799573, 28.8679427, 27.5734578, 5.4070444, 0.6671228}; // frequency, "/yr +double A5[] = {44119.0e-6, 15750.0e-6, 1800.0e-6, 516.0e-6, 183.0e-6, 178.0e-6, 107.0e-6, 95.0e-6, 62.0e-6, 58.0e-6}; // amplitude +double phi5[] = {30.676, 308.112, 121.362, 45.551, 218.696, 217.460, 32.614, 43.733, 116.984, 74.116}; // phase, deg + +int main(int argc, char* argv[]) { + // Check all 3 types of frequency analysis implemented + for (enum REB_FREQUENCY_ANALYSIS_TYPE type=0;type<3;type++){ + // Create artificial test signal based on Laskar (1990) model. + int Nsamples = 32768; + int nfreq = 10; + double* input = calloc(Nsamples*2, sizeof(double)); + double datasep = 120000.0/365.25*2.0*M_PI; // 120000 days in units of year/2pi + for (int i=0; i max_nu_error) max_nu_error = nu_error; + double A_error = fabs((output[1*nfreq+i]-A5[i])/A5[i]); // relative amplitude error + if (A_error > max_A_error) max_A_error = A_error; + double phi_error = output[2*nfreq+i]/M_PI*180.0 - phi5[i]; + if (phi_error<-180.0) phi_error+= 360.0; + if (phi_error>180.0) phi_error-= 360.0; + phi_error = fabs(phi_error); + if (phi_error > max_phi_error) max_phi_error = phi_error; + } + printf("Flag %d\n", type); + printf("Max frequency error: %e \"/year\n", max_nu_error); + printf("Max relative amplitude error: %e\n", max_A_error); + printf("Max phase error: %e deg\n", max_phi_error); + switch (type){ + case REB_FREQUENCY_ANALYSIS_MFT: + // Least accurate but fastest. + assert(max_nu_error<3e-4); + assert(max_A_error<2e-3); + assert(max_phi_error<5e-1); + break; + case REB_FREQUENCY_ANALYSIS_FMFT: + assert(max_nu_error<4e-6); + assert(max_A_error<1e-5); + assert(max_phi_error<6e-3); + break; + case REB_FREQUENCY_ANALYSIS_FMFT2: + // Most accurate but slowest. + assert(max_nu_error<2e-8); + assert(max_A_error<3e-7); + assert(max_phi_error<4e-5); + break; + } + free(input); + free(output); + } +} + diff --git a/rebound/source/examples/granulardynamics/Makefile b/rebound/source/examples/granulardynamics/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/granulardynamics/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/granulardynamics/problem.c b/rebound/source/examples/granulardynamics/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..eff19a61a164e7cff9a0074ce4de145d7e7b4735 --- /dev/null +++ b/rebound/source/examples/granulardynamics/problem.c @@ -0,0 +1,147 @@ +/** + * Granular dynamics + * + * This example is about granular dynamics. No gravitational + * forces are present in this example. Two boundary layers made of + * particles simulate shearing walls. These walls are heating + * up the particles, create a dense and cool layer in the middle. + */ +#include +#include +#include +#include "rebound.h" + +enum REB_COLLISION_RESOLVE_OUTCOME collision_resolve_hardsphere_withborder(struct reb_simulation* r, struct reb_collision c); +void heartbeat(struct reb_simulation* r); +int N_border; + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the visualization web server. + // Point your browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup modules and constants + r->dt = 1e-1; + r->gravity = REB_GRAVITY_NONE; + r->integrator = REB_INTEGRATOR_LEAPFROG; + r->collision = REB_COLLISION_TREE; + r->boundary = REB_BOUNDARY_PERIODIC; + // Override default collision handling to account for border particles + r->collision_resolve = collision_resolve_hardsphere_withborder; + r->heartbeat = heartbeat; + reb_simulation_configure_box(r, 20., 1, 1, 4); + + r->N_ghost_x = 1; r->N_ghost_y = 1; r->N_ghost_z = 0; + + double N_part = 0.00937*r->boxsize.x*r->boxsize.y*r->boxsize.z; + + // Add Border Particles + double radius = 1; + double mass = 1; + double border_spacing_x = r->boxsize.x/(floor(r->boxsize.x/radius/2.)-1.); + double border_spacing_y = r->boxsize.y/(floor(r->boxsize.y/radius/2.)-1.); + struct reb_particle pt = {0}; + pt.r = radius; + pt.m = mass; + pt.hash = 1; + for(double x = -r->boxsize.x/2.; xboxsize.x/2.-border_spacing_x/2.;x+=border_spacing_x){ + for(double y = -r->boxsize.y/2.; yboxsize.y/2.-border_spacing_y/2.;y+=border_spacing_y){ + pt.x = x; + pt.y = y; + + // Add particle to bottom + pt.z = -r->boxsize.z/2.+radius; + pt.vy = 1; + reb_simulation_add(r, pt); + + // Add particle to top + pt.z = r->boxsize.z/2.-radius; + pt.vy = -1; + reb_simulation_add(r, pt); + } + } + + N_border = r->N; + + // Add real particles + while(r->N-N_borderboxsize.x/2.,r->boxsize.x/2.); + pt.y = reb_random_uniform(r, -r->boxsize.y/2.,r->boxsize.y/2.); + pt.z = 0.758*reb_random_uniform(r, -r->boxsize.z/2.,r->boxsize.z/2.); + pt.vx = reb_random_normal(r, 0.001); + pt.vy = reb_random_normal(r, 0.001); + pt.vz = reb_random_normal(r, 0.001); + pt.r = radius; // m + pt.m = 1; + pt.hash = 2; + reb_simulation_add(r, pt); + } + + reb_simulation_integrate(r, INFINITY); +} + +void heartbeat(struct reb_simulation* r){ + if (reb_simulation_output_check(r, 10.*r->dt)){ + reb_simulation_output_timing(r, 0); + } +} + +enum REB_COLLISION_RESOLVE_OUTCOME collision_resolve_hardsphere_withborder(struct reb_simulation* r, struct reb_collision c){ + const double t = r->t; + struct reb_particle* particles = r->particles; + struct reb_particle p1 = particles[c.p1]; + struct reb_particle p2 = particles[c.p2]; + struct reb_vec6d gb = c.gb; + double m21 = p1.m / p2.m; + double x21 = p1.x + gb.x - p2.x; + double y21 = p1.y + gb.y - p2.y; + double z21 = p1.z + gb.z - p2.z; + double rp = p1.r+p2.r; + if (rp*rp < x21*x21 + y21*y21 + z21*z21) return 0; + double vx21 = p1.vx + gb.vx - p2.vx; + double vy21 = p1.vy + gb.vy - p2.vy; + double vz21 = p1.vz + gb.vz - p2.vz; + if (vx21*x21 + vy21*y21 + vz21*z21 >0) return 0; // not approaching + // Bring the to balls in the xy plane. + // NOTE: this could probabely be an atan (which is faster than atan2) + double theta = atan2(z21,y21); + double stheta = sin(theta); + double ctheta = cos(theta); + double vy21n = ctheta * vy21 + stheta * vz21; + double y21n = ctheta * y21 + stheta * z21; + + // Bring the two balls onto the positive x axis. + double phi = atan2(y21n,x21); + double cphi = cos(phi); + double sphi = sin(phi); + double vx21nn = cphi * vx21 + sphi * vy21n; + + // Coefficient of restitution + double eps = 0.15; + double dvx2 = -(1.0+eps)*vx21nn/(1.0+m21) ; + + // Now we are rotating backwards + double dvx2n = cphi * dvx2; + double dvy2n = sphi * dvx2; + double dvy2nn = ctheta * dvy2n; + double dvz2nn = stheta * dvy2n; + + // Applying the changes to the particles. + // Do not change border particles. + if (p2.hash!=1){ + particles[c.p2].vx -= m21*dvx2n; + particles[c.p2].vy -= m21*dvy2nn; + particles[c.p2].vz -= m21*dvz2nn; + particles[c.p2].last_collision = t; + } + if (p1.hash!=1){ + particles[c.p1].vx += dvx2n; + particles[c.p1].vy += dvy2nn; + particles[c.p1].vz += dvz2nn; + particles[c.p1].last_collision = t; + } + return REB_COLLISION_RESOLVE_OUTCOME_REMOVE_NONE; // Do not remove any particle from simulation. +} diff --git a/rebound/source/examples/heartbeat/Makefile b/rebound/source/examples/heartbeat/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..7bb91dee7e5b86930318728bcb928652aecb13b4 --- /dev/null +++ b/rebound/source/examples/heartbeat/Makefile @@ -0,0 +1,34 @@ +export OPENGL=0 +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/heartbeat/problem.c b/rebound/source/examples/heartbeat/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..0d59480b828c0c8a22b06c9cb8d8397572e2ecae --- /dev/null +++ b/rebound/source/examples/heartbeat/problem.c @@ -0,0 +1,34 @@ +/** + * How to use a heartbeat function + * + * We first create a REBOUND simulation, then we add + * two particles and integrate the system for 100 time + * units. We output the current time at every timestep. + */ +#include "rebound.h" +#include +#include + +void heartbeat(struct reb_simulation* r){ + // This function gets called after every timestep. + // Here, we simply print out the current simulation time. + printf("%f\n",r->t); +} + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + r->dt = 0.1; + r->heartbeat = heartbeat; + r->exact_finish_time = 1; // Finish exactly at tmax in reb_simulation_integrate(). Default is already 1. + + struct reb_particle p1 = {0}; // always initizialize a struct with this syntax to ensure all variables are set to 0. + p1.m = 1.; + reb_simulation_add(r, p1); // reb_simulation_add makes a copy of the particle and adds it to the simulation. + + reb_simulation_add_fmt(r, "a e", 1., 0.); // We can also add a particle using the reb_simulation_add_fmt function. + + reb_simulation_integrate(r,100.); + + reb_simulation_free(r); +} + diff --git a/rebound/source/examples/high_order_symplectic/Makefile b/rebound/source/examples/high_order_symplectic/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..7bb91dee7e5b86930318728bcb928652aecb13b4 --- /dev/null +++ b/rebound/source/examples/high_order_symplectic/Makefile @@ -0,0 +1,34 @@ +export OPENGL=0 +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/high_order_symplectic/problem.c b/rebound/source/examples/high_order_symplectic/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..390f08cc59273c21a4906894bc0564f25b2cab85 --- /dev/null +++ b/rebound/source/examples/high_order_symplectic/problem.c @@ -0,0 +1,112 @@ +/** + * High Order Symplectic Integrators + * + * This example uses a high order symplectic integrators + * WHCKL and SABA(10,6,4) to integrate all planets of the Solar System. + */ +#include +#include +#include +#include "rebound.h" + +double ss_pos[10][3] = +{ + {3.256101656448802E-03 , -1.951205394420489E-04 , -1.478264728548705E-04}, + {-1.927589645545195E-01 , 2.588788361485397E-01 , 3.900432597062033E-02 }, + {-5.976537074581466E-01 , 3.918678996109574E-01 , 3.990356741282203E-02 }, + {-7.986189029000561E-01 , -6.086873314992410E-01 , -1.250824315650566E-04}, + {7.897942807177173E-01 , 1.266671734964037E+00 , 7.092292179885432E-03 }, + {-4.314503046344270E+00 , 3.168094294126697E+00 , 8.331048545353310E-02 }, + {-4.882304833383455E+00 , -8.689263067189865E+00 , 3.453930436208210E-01 }, + {1.917757033372740E+01 , 5.671738750949031E+00 , -2.273858614425555E-01}, + {2.767031517959636E+01 , -1.150331645280942E+01 , -4.008018419157927E-01}, + {7.765250227278298E+00 , -3.190996242617413E+01 , 1.168394015703735E+00 }, + +}; +double ss_vel[10][3] = +{ + {3.039963463108432E-06 , 6.030576499910942E-06 , -7.992931269075703E-08}, + {-2.811550184725887E-02, -1.586532995282261E-02, 1.282829413699522E-03 }, + {-1.113090630745269E-02, -1.703310700277280E-02, 4.089082927733997E-04 }, + {1.012305635253317E-02 , -1.376389620972473E-02, 3.482505080431706E-07 }, + {-1.135279609707971E-02, 8.579013475676980E-03 , 4.582774369441005E-04 }, + {-4.555986691913995E-03, -5.727124269621595E-03, 1.257262404884127E-04 }, + {4.559352462922572E-03 , -2.748632232963112E-03, -1.337915989241807E-04}, + {-1.144087185031310E-03, 3.588282323722787E-03 , 2.829006644043203E-05 }, + {1.183702780101068E-03 , 2.917115980784960E-03 , -8.714411604869349E-05}, + {3.112825364672655E-03 , 1.004673400082409E-04 , -9.111652976208292E-04}, +}; + +double ss_mass[10] = +{ + 1.988544e30, + 3.302e23, + 48.685e23, + 6.0477246e24, + 6.4185e23, + 1898.13e24, + 5.68319e26, + 86.8103e24, + 102.41e24, + 1.4639248e+22, +}; + +struct reb_simulation* create_sim(){ + // Setup constants + struct reb_simulation* r = reb_simulation_create(); + r->dt = 4; // in days + r->G = 1.0e-34; // in AU^3 / kg / day^2. + + // Initial conditions (from NASA Horizons) + for (int i=0;i<10;i++){ + struct reb_particle p = {0}; + p.x = ss_pos[i][0]; p.y = ss_pos[i][1]; p.z = ss_pos[i][2]; + p.vx = ss_vel[i][0]; p.vy = ss_vel[i][1]; p.vz = ss_vel[i][2]; + p.m = ss_mass[i]; + reb_simulation_add(r, p); + } + + return r; +} + +int main(int argc, char* argv[]){ + double tmax = 1e5; // 1e5 days ~ 273 years + + // Run the simulation with the WHCKL method. + { + struct reb_simulation* r = create_sim(); + r->integrator = REB_INTEGRATOR_WHFAST; + r->ri_whfast.safe_mode = 0; // Turn off safe mode (Need to call reb_simulation_synchronize() before outputs). + r->ri_whfast.corrector = 17; // 17th order symplectic corrector + r->ri_whfast.kernel = REB_WHFAST_KERNEL_LAZY; // Using the lazy implementers method which supports additional forces + double e_init = reb_simulation_energy(r); + reb_simulation_integrate(r, tmax); + double e = reb_simulation_energy(r); + printf("Relative energy error WHCKL: %e\n", fabs((e_init-e)/e_init)); + } + + // Run the same simulation with the SABA(10,6,4) method. + // Note that this method has 8 force evaluations per timestep and is therefore + // quite a bit slower for a fixed timestep. + { + struct reb_simulation* r = create_sim(); + r->integrator = REB_INTEGRATOR_SABA; + r->ri_saba.type = REB_SABA_10_6_4; // Chooses the type of SABA integrator. + r->ri_saba.safe_mode = 0; // Turn off safe mode. + double e_init = reb_simulation_energy(r); + reb_simulation_integrate(r, tmax); + double e = reb_simulation_energy(r); + printf("Relative energy error SABA(10,6,4): %e\n", fabs((e_init-e)/e_init)); + } + // Run the same simulation with the standard WH method. + { + struct reb_simulation* r = create_sim(); + r->integrator = REB_INTEGRATOR_WHFAST; // All WHFast settings default to the standard WH method + r->ri_whfast.safe_mode = 0; // Turn off safe mode. + double e_init = reb_simulation_energy(r); + reb_simulation_integrate(r, tmax); + double e = reb_simulation_energy(r); + printf("Relative energy error WH: %e\n", fabs((e_init-e)/e_init)); + } +} + diff --git a/rebound/source/examples/kozai/Makefile b/rebound/source/examples/kozai/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/kozai/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/kozai/plot.plt b/rebound/source/examples/kozai/plot.plt new file mode 100644 index 0000000000000000000000000000000000000000..720d4fddedbd748e745843c1b58454e39987ed6a --- /dev/null +++ b/rebound/source/examples/kozai/plot.plt @@ -0,0 +1,21 @@ +#!/bin/gnuplot +set key top left +set xlabel "time [{/Symbol W}^{-1}]" +set multiplot +set lmargin 14 +set rmargin 4 +set size 1,0.5 + +set ylabel "1-eccentricity" +set origin 0,0.5 +set logscale y +set yrange [1e-5:1.3] +plot "< awk '{if(NR%2==1) print $0;}' orbits.txt" u 1:(1-$3) notit w l + +set ylabel "inclination [deg]" +set origin 0,0 +unset logscale y +set yrange [*:*] +plot "< awk '{if(NR%2==1) print $0;}' orbits.txt" u 1:($4/pi*180.) notit w l + +pause -1 diff --git a/rebound/source/examples/kozai/problem.c b/rebound/source/examples/kozai/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..1420eabd0cbec5e18dc6eb619d03afb0f7e9875a --- /dev/null +++ b/rebound/source/examples/kozai/problem.c @@ -0,0 +1,68 @@ +/** + * Kozai cycles + * + * This example uses the IAS15 integrator to simulate + * a Lidov Kozai cycle of a planet perturbed by a distant star. + * The integrator automatically adjusts the timestep so that + * even very high eccentricity encounters are resolved with high + * accuracy. + */ +#include +#include +#include +#include "rebound.h" + +void heartbeat(struct reb_simulation* r); + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the visualization web server. + // Point your browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->dt = M_PI*1e-2; // initial timestep + r->integrator = REB_INTEGRATOR_IAS15; + r->heartbeat = heartbeat; + + // Initial conditions + + struct reb_particle star = {0}; + star.m = 1; + reb_simulation_add(r, star); + + // The planet (a zero mass test particle) + struct reb_particle planet = {0}; + double e_testparticle = 0; + planet.m = 0.; + planet.x = 1.-e_testparticle; + planet.vy = sqrt((1.+e_testparticle)/(1.-e_testparticle)); + reb_simulation_add(r, planet); + + // The perturber + struct reb_particle perturber = {0}; + perturber.x = 10; + double inc_perturber = 89.9; + perturber.m = 1; + perturber.vy = cos(inc_perturber/180.*M_PI)*sqrt((star.m+perturber.m)/perturber.x); + perturber.vz = sin(inc_perturber/180.*M_PI)*sqrt((star.m+perturber.m)/perturber.x); + reb_simulation_add(r, perturber); + + reb_simulation_move_to_com(r); + + remove("orbits.txt"); // delete previous output file + + reb_simulation_integrate(r, INFINITY); + + reb_simulation_free(r); +} + +void heartbeat(struct reb_simulation* r){ + if(reb_simulation_output_check(r, 20.*M_PI)){ // outputs to the screen + reb_simulation_output_timing(r, 0); + } + if(reb_simulation_output_check(r, 12.)){ // outputs to a file + reb_simulation_output_orbits(r, "orbits.txt"); + } +} diff --git a/rebound/source/examples/megno/Makefile b/rebound/source/examples/megno/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/megno/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/megno/problem.c b/rebound/source/examples/megno/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..484316a76434e32e775e70df330560bbfd7ab623 --- /dev/null +++ b/rebound/source/examples/megno/problem.c @@ -0,0 +1,80 @@ +/** + * The chaos indicator MEGNO + * + * This example uses the IAS15 or WHFAST integrator + * to calculate the MEGNO of a two planet system. + */ +#include +#include +#include +#include "rebound.h" + +const double ss_pos[3][3] = +{ + {-4.06428567034226e-3, -6.08813756435987e-3, -1.66162304225834e-6 }, // Sun + {+3.40546614227466e+0, +3.62978190075864e+0, +3.42386261766577e-2 }, // Jupiter + {+6.60801554403466e+0, +6.38084674585064e+0, -1.36145963724542e-1 }, // Saturn +}; +const double ss_vel[3][3] = +{ + {+6.69048890636161e-6, -6.33922479583593e-6, -3.13202145590767e-9 }, // Sun + {-5.59797969310664e-3, +5.51815399480116e-3, -2.66711392865591e-6 }, // Jupiter + {-4.17354020307064e-3, +3.99723751748116e-3, +1.67206320571441e-5 }, // Saturn +}; + +const double ss_mass[3] = +{ + 1.00000597682, // Sun + inner planets + 1./1047000.355, // Jupiter + 1./3501000.6, // Saturn +}; + +double tmax = 1e9; + +void heartbeat(struct reb_simulation* const r); + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + + // Start the visualization web server. + // Point your browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->dt = 10; // initial timestep (in days) + //r->integrator = IAS15; + r->integrator = REB_INTEGRATOR_WHFAST; + const double k = 0.01720209895; // Gaussian constant + r->G = k*k; // These are the same units that mercury6 uses + + // Initial conditions + for (int i=0;i<3;i++){ + struct reb_particle p = {0}; + p.x = ss_pos[i][0]; p.y = ss_pos[i][1]; p.z = ss_pos[i][2]; + p.vx = ss_vel[i][0]; p.vy = ss_vel[i][1]; p.vz = ss_vel[i][2]; + p.m = ss_mass[i]; + reb_simulation_add(r, p); + } + reb_simulation_move_to_com(r); + // Add megno particles + reb_simulation_init_megno(r); // N = 6 after this function call. + // The first half of particles are real particles, the second half are particles following the variational equations. + + // Set callback for outputs. + r->heartbeat = heartbeat; + + reb_simulation_integrate(r, tmax); +} + +void heartbeat(struct reb_simulation* const r){ + if (reb_simulation_output_check(r, 100.*362.)){ + // Output the time and the MEGNO to the screen and a file every 100 years. + FILE* f = fopen("Y.txt","a+b"); + fprintf(f," %.20e %.20e\n",r->t, reb_simulation_megno(r)); + printf(" t= %.2e MEGNO = %.2e\n",r->t, reb_simulation_megno(r)); + fclose(f); + } +} + +void problem_finish(){ +} diff --git a/rebound/source/examples/mergers/Makefile b/rebound/source/examples/mergers/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/mergers/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/mergers/problem.c b/rebound/source/examples/mergers/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..86a4a5bf4e7ce331d3669dcb3a668724183d87fd --- /dev/null +++ b/rebound/source/examples/mergers/problem.c @@ -0,0 +1,57 @@ +/** + * Colliding and merging planets + * + * This example integrates a densely packed planetary system + * which becomes unstable on a timescale of only a few orbits. The IAS15 + * integrator with adaptive timestepping is used. The bodies have a finite + * size and merge if they collide. Note that the size is unphysically large + * in this example. + */ +#include +#include +#include +#include "rebound.h" + +void heartbeat(struct reb_simulation* r); + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the visualization web server. + // Point your browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + r->dt = 0.01*2.*M_PI; // initial timestep + r->integrator = REB_INTEGRATOR_IAS15; + r->collision = REB_COLLISION_DIRECT; + r->collision_resolve = reb_collision_resolve_merge; // Choose merger collision routine. + r->heartbeat = heartbeat; + + struct reb_particle star = {0}; + star.m = 1; + star.r = 0.1; + reb_simulation_add(r, star); + + // Add planets + int N_planets = 7; + for (int i=0;i +#include +#include +#include +#include +#include +#include "rebound.h" +#include "tools.h" + +void print_N(struct reb_simulation* r){ + int N_to_send; + N_to_send = 0; + for (int i=0; impi_num;i++){ + N_to_send += r->N_particles_send[i]; + } + printf("Node %d: N = %d (+%d to send)\n", r->mpi_id, r->N, N_to_send); +} + +void test_twobody(){ + struct reb_simulation* const r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_LEAPFROG; + r->gravity = REB_GRAVITY_TREE; + r->boundary = REB_BOUNDARY_OPEN; + r->opening_angle2 = 1.5; + r->G = 1; + r->dt = 0.1; + reb_simulation_configure_box(r,30,2,2,1); + + printf("MPI init...\n"); + reb_mpi_init(r); + if (r->mpi_id==0){ + reb_simulation_add_fmt(r, "m y hash", 2., 4.0, reb_hash("star1")); + } + struct reb_particle com = reb_simulation_com(r); // Need to call this on all machines. + assert(com.y==4.0); + if (r->mpi_id==0){ + reb_simulation_add_fmt(r, "m a e primary hash", 1., 1., 0.1, com, reb_hash("star2")); + } + + printf("Moving to com...\n"); // Will also distribute particles + reb_simulation_move_to_com(r); + print_N(r); + + printf("Checking com ...\n"); + com = reb_simulation_com(r); + assert(fabs(com.x)<1e-15); + assert(fabs(com.y)<1e-15); + assert(fabs(com.z)<1e-15); + assert(fabs(com.vx)<1e-15); + assert(fabs(com.vy)<1e-15); + assert(fabs(com.vz)<1e-15); + + printf("Checking energy...\n"); + double energy = reb_simulation_energy(r); + printf("energy = %.20f\n", energy); + assert(fabs(energy+1.0)<1e-15); + + printf("Starting the integration...\n"); + reb_simulation_integrate(r, 10.); + + printf("Checking conservation of orbital elements...\n"); + struct reb_particle star1 = reb_simulation_particle_by_hash_mpi(r, reb_hash("star1")); + struct reb_particle star2 = reb_simulation_particle_by_hash_mpi(r, reb_hash("star2")); + struct reb_orbit o = reb_orbit_from_particle(r->G, star2, star1); + + assert(fabs(o.a-1.)<1e-3); + assert(fabs(o.e-0.1)<1e-2); + + printf("Checking input/output...\n"); + + com = reb_simulation_com(r); // Need to call this on all machines. + if (r->mpi_id==0){ + for (int i=0; i<10; i++){ + reb_simulation_add_fmt(r, "m a primary hash", 0.0001, 2.0+0.1*i, com, i); + } + } + reb_simulation_steps(r, 1); + { + // Delete any previous files + char filename[1024]; + sprintf(filename, "out.bin_%d", r->mpi_id); + remove(filename); + } + reb_simulation_save_to_file(r, "out.bin"); + reb_simulation_steps(r, 1); + reb_simulation_save_to_file(r, "out.bin"); + reb_simulation_steps(r, 10); + + struct reb_simulationarchive* sa = reb_simulationarchive_create_from_file("out.bin"); + assert(sa->nblobs==2); + struct reb_simulation* r2 = reb_simulation_create_from_simulationarchive(sa,-1); + reb_simulation_steps(r2, 10); + + assert(r->N == r2->N); + assert(r->t == r2->t); + + // Order of particles will be different. Need to compare them by hash + for(int i=0; i<10; i++){ + struct reb_particle p1 = reb_simulation_particle_by_hash_mpi(r, i); + struct reb_particle p2 = reb_simulation_particle_by_hash_mpi(r2, i); + assert(p1.x==p2.x); + assert(p1.y==p2.y); + assert(p1.z==p2.z); + } + + + printf("Cleanup...\n"); + reb_mpi_finalize(r); + reb_simulation_free(r); + reb_simulation_free(r2); +} + +int main(int argc, char* argv[]){ + test_twobody(); +} + diff --git a/rebound/source/examples/ode_affecting_nbody/Makefile b/rebound/source/examples/ode_affecting_nbody/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/ode_affecting_nbody/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/ode_affecting_nbody/problem.c b/rebound/source/examples/ode_affecting_nbody/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..1d03400ecb7e37e635e1ce9661e4fd82e6875557 --- /dev/null +++ b/rebound/source/examples/ode_affecting_nbody/problem.c @@ -0,0 +1,65 @@ +/** + * ODE affecting N-body simulation + * + * This examples shows how to integrate arbitrary ODEs + * and add a back-reaction to N-body particles via an + * additional_forces function. + * + */ +#include "rebound.h" +#include +#include + +const double k = 1.; // Constants for the Harmonic Oscillator +const double m = 1.; + +struct reb_ode* ho; + +void ode_derivatives(struct reb_ode* const ode, double* const yDot, const double* const y, const double t){ + const double omega = sqrt(k/m); + struct reb_orbit o = reb_orbit_from_particle(ode->r->G, ode->r->particles[1], ode->r->particles[0]); + double forcing = sin(o.f); + yDot[0] = y[1]; + yDot[1] = -omega*omega*y[0] + forcing; +} + +void additional_forces(struct reb_simulation* r){ + struct reb_particle* const particles = r->particles; + const double coupling = 1e-4; + // The harmonic oscillator is forcing the planet in the x direction. + // Note: We are using the variable y1 in the ODE sruct. + // This is the current state of the ODE during the timestep. + // The variable y is only updated at the end of a successful timestep. + particles[1].ax += coupling*ho->y1[0]; +} + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + + reb_simulation_add_fmt(r, "m", 1.); // Central object + reb_simulation_add_fmt(r, "m a e", 1e-3, 1., 0.1); // Jupiter mass planet + reb_simulation_move_to_com(r); + + r->integrator = REB_INTEGRATOR_BS; // Bulirsch-Stoer integrator + r->ri_bs.eps_rel = 1e-8; // Relative tolerance + r->ri_bs.eps_abs = 1e-8; // Absolute tolerance + r->dt = 1e-2; + + ho = reb_ode_create(r,2); // Add an ODE with 2 dimensions + ho->derivatives = ode_derivatives; // Right hand side of the ODE + ho->y[0] = 1; // Initial conditions + ho->y[1] = 0; + + r->additional_forces = additional_forces; + + while(r->t<10){ + reb_simulation_integrate(r, r->t + 0.3); + printf("y(%.5f) \t = %.5f \n",r->t, ho->y[0]); + } + + + reb_ode_free(ho); + reb_simulation_free(r); + +} + diff --git a/rebound/source/examples/openmp/Makefile b/rebound/source/examples/openmp/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..7375a2c797bc0db5092c20d6bba8860dddeed193 --- /dev/null +++ b/rebound/source/examples/openmp/Makefile @@ -0,0 +1,51 @@ +# Turninng on OpenMP +# On Mac OSX, we can use the CLANG compiler. But it requires some additional +# flags (see Makefile.defs in src/ directory). You also need to install the +# OpenMP library with homebrew: +# brew install libomp +# Alternatively use a compiler which supports OpenMP out of the box (gcc) and +# uncomment the following line: +#export CC=gcc + +ifeq ($(shell $(CC) -v 2>&1 | grep -c "clang"), 1) +export OPENMPCLANG=1 +else +export OPENMP=1 +endif + + +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/openmp/problem.c b/rebound/source/examples/openmp/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..5083501a8538d7934f494b03b9d135e3dc75be1b --- /dev/null +++ b/rebound/source/examples/openmp/problem.c @@ -0,0 +1,93 @@ +/** + * OpenMP example. + * + * A self-gravitating disc is integrated using + * the leap frog integrator and direct summation. + * Shared memory parallelization using OpenMP + * is enabled in the Makefile. + * + * Note that you need a compiler which supports + * OpenMP to run this example. By default, the + * OSX compilers from Apple do currently not + * support OpenMP. You can install the GNU + * C compilers easily with homebrew. Look at the + * Makefile of this example to see how you can setup + * the parameters to compile REBOUND on both OSX + * and Linux. + */ +#include +#include +#include +#include +#include +#include +#include "rebound.h" +#include "tools.h" +#include "output.h" + + +void run_sim(){ + struct reb_simulation* const r = reb_simulation_create(); + // Setup constants + r->integrator = REB_INTEGRATOR_LEAPFROG; + r->gravity = REB_GRAVITY_BASIC; + r->boundary = REB_BOUNDARY_OPEN; + r->opening_angle2 = 1.5; // This constant determines the accuracy of the tree code gravity estimate. + r->G = 1; + r->softening = 0.02; // Gravitational softening length + r->dt = 3e-2; // Timestep + const double boxsize = 10.2; + reb_simulation_configure_box(r,boxsize,1,1,1); + + // Setup particles + double disc_mass = 2e-1; // Total disc mass + int N = 200; // Number of particles + // Initial conditions + struct reb_particle star = {0}; + star.m = 1; + reb_simulation_add(r, star); + for (int i=0;iG*mu/a); + pt.vx = vkep * sin(phi); + pt.vy = -vkep * cos(phi); + pt.vz = 0; + pt.m = disc_mass/(double)N; + reb_simulation_add(r, pt); + } + + reb_simulation_integrate(r, 1.0); + reb_simulation_free(r); +} + +int main(int argc, char* argv[]){ + // Get the number of processors + int np = omp_get_num_procs(); + // Set the number of OpenMP threads to be the number of processors + omp_set_num_threads(np); + + + // First, run it with the OpenMP turned on. + struct timeval tim; + gettimeofday(&tim, NULL); + double timing1 = tim.tv_sec+(tim.tv_usec/1000000.0); + run_sim(); + + // Reduce the number of threads to 1 and run again. + gettimeofday(&tim, NULL); + double timing2 = tim.tv_sec+(tim.tv_usec/1000000.0); + omp_set_num_threads(1); + run_sim(); + gettimeofday(&tim, NULL); + double timing3 = tim.tv_sec+(tim.tv_usec/1000000.0); + + // Output speedup + printf("\n\nOpenMP speed-up: %.3fx (perfect scaling would give %dx)\n",(timing3-timing2)/(timing2-timing1),np); +} + diff --git a/rebound/source/examples/orbital_elements/Makefile b/rebound/source/examples/orbital_elements/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/orbital_elements/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/orbital_elements/problem.c b/rebound/source/examples/orbital_elements/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..874de4b96f45e8689c29f4d75c993d49d955b557 --- /dev/null +++ b/rebound/source/examples/orbital_elements/problem.c @@ -0,0 +1,72 @@ +/** + * Orbital Elements + * + * This is a simple overview of the helper functions in REBOUND + * for using orbital elements. For an in-depth discussion and + * examples, see ipython_examples/OrbitalElements.ipynb. The + * C function calls are more explicit (see below), but the numerical + * issues and conventions are the same in Python and C. + */ +#include +#include +#include +#include "rebound.h" + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + struct reb_particle p; + p.m = 1.; + reb_simulation_add(r, p); + + // Adding a particle with orbital elements requires the following 7 things + // There's more flexibility in python for passing different orbital elements + // for edge cases. The user has to calculate these manually in C and pass + // the elements below + + struct reb_particle primary = r->particles[0]; + double m = 0.; + double a = 0.1; + double e = 0.2; + double inc = 0.3; + double Omega = 0.4; + double omega = 0.5; + double f = 0.6; + + struct reb_particle p2 = reb_particle_from_orbit(r->G, primary, m, a, e, inc, Omega, omega, f); + reb_simulation_add(r,p2); + + struct reb_orbit o= reb_orbit_from_particle(r->G, r->particles[1], r->particles[0]); + + printf("a = %.16e\n", o.a); + printf("e = %.16e\n", o.e); + printf("inc = %.16e\n", o.inc); + printf("Omega = %.16e\n", o.Omega); + printf("omega = %.16e\n", o.omega); + printf("f = %.16e\n", o.f); + + // There are also versions of the two functions above that let you pass an error integer pointer + // to diagnose / catch errors. You can find error codes in the documentation for the functions + // at https://rebound.hanno-rein.de/ + + int err = 0; + e = 1.001; + + p2 = reb_particle_from_orbit_err(r->G, primary, m, a, e, inc, Omega, omega, f, &err); + if(err == 3){ // error code for bound orbit with e > 1 + e = 1.-1.e-15; // set to just less than 1 + p2 = reb_particle_from_orbit_err(r->G, primary, m, a, e, inc, Omega, omega, f, &err); + } + reb_simulation_add(r,p2); + + o= reb_orbit_from_particle(r->G, r->particles[2], r->particles[0]); + + printf("\n\na = %.16e\n", o.a); + printf("e = %.16e\n", o.e); + printf("inc = %.16e\n", o.inc); + printf("Omega = %.16e\n", o.Omega); + printf("omega = %.16e\n", o.omega); + printf("f = %.16e\n", o.f); + + reb_simulation_free(r); +} diff --git a/rebound/source/examples/outer_solar_system/Makefile b/rebound/source/examples/outer_solar_system/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..b67fc4d9df80bb5232338801ce6037198a418358 --- /dev/null +++ b/rebound/source/examples/outer_solar_system/Makefile @@ -0,0 +1,35 @@ +export OPENGL=1# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/outer_solar_system/problem.c b/rebound/source/examples/outer_solar_system/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..ebe4ee08dc8bb3c7832c613a7090ec7c5cc15d80 --- /dev/null +++ b/rebound/source/examples/outer_solar_system/problem.c @@ -0,0 +1,110 @@ +/** + * Outer Solar System + * + * This example uses the IAS15 integrator + * to integrate the outer planets of the solar system. The initial + * conditions are taken from Applegate et al 1986. Pluto is a test + * particle. This example is a good starting point for any long term orbit + * integrations. + * + * You probably want to turn off the visualization for any serious runs. + * Go to the makefile and set `OPENGL=0`. + * + * The example also works with the WHFAST symplectic integrator. We turn + * off safe-mode to allow fast and accurate simulations with the symplectic + * corrector. If an output is required, you need to call reb_simulation_synchronize() + * before accessing the particle structure. + */ +#include +#include +#include +#include "rebound.h" + +double ss_pos[6][3] = + { + {-4.06428567034226e-3, -6.08813756435987e-3, -1.66162304225834e-6}, // Sun + {+3.40546614227466e+0, +3.62978190075864e+0, +3.42386261766577e-2}, // Jupiter + {+6.60801554403466e+0, +6.38084674585064e+0, -1.36145963724542e-1}, // Saturn + {+1.11636331405597e+1, +1.60373479057256e+1, +3.61783279369958e-1}, // Uranus + {-3.01777243405203e+1, +1.91155314998064e+0, -1.53887595621042e-1}, // Neptune + {-2.13858977531573e+1, +3.20719104739886e+1, +2.49245689556096e+0} // Pluto +}; +double ss_vel[6][3] = + { + {+6.69048890636161e-6, -6.33922479583593e-6, -3.13202145590767e-9}, // Sun + {-5.59797969310664e-3, +5.51815399480116e-3, -2.66711392865591e-6}, // Jupiter + {-4.17354020307064e-3, +3.99723751748116e-3, +1.67206320571441e-5}, // Saturn + {-3.25884806151064e-3, +2.06438412905916e-3, -2.17699042180559e-5}, // Uranus + {-2.17471785045538e-4, -3.11361111025884e-3, +3.58344705491441e-5}, // Neptune + {-1.76936577252484e-3, -2.06720938381724e-3, +6.58091931493844e-4} // Pluto +}; + +double ss_mass[6] = + { + 1.00000597682, // Sun + inner planets + 1. / 1047.355, // Jupiter + 1. / 3501.6, // Saturn + 1. / 22869., // Uranus + 1. / 19314., // Neptune + 0.0 // Pluto +}; + +double tmax = 7.3e8; + +void heartbeat(struct reb_simulation* const r); + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + + // This allows you to connect to the simulation using + // a web browser by pointing it to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + const double k = 0.01720209895; // Gaussian constant + r->dt = 40; // in days + r->G = k * k; // These are the same units as used by the mercury6 code. + r->ri_whfast.safe_mode = 0; // Turn of safe mode. Need to call reb_simulation_synchronize() before outputs. + r->ri_whfast.corrector = 11; // Turn on symplectic correctors (11th order). + + // Setup callbacks: + r->heartbeat = heartbeat; + r->force_is_velocity_dependent = 0; // Force only depends on positions. + r->integrator = REB_INTEGRATOR_WHFAST; + //r->integrator = REB_INTEGRATOR_IAS15; + + // Initial conditions + for (int i = 0; i < 6; i++) { + struct reb_particle p = {0}; + p.x = ss_pos[i][0]; + p.y = ss_pos[i][1]; + p.z = ss_pos[i][2]; + p.vx = ss_vel[i][0]; + p.vy = ss_vel[i][1]; + p.vz = ss_vel[i][2]; + p.m = ss_mass[i]; + reb_simulation_add(r, p); + } + + reb_simulation_move_to_com(r); + + r->N_active = r->N - 1; // Pluto is treated as a test-particle. + + double e_initial = reb_simulation_energy(r); + + // Start integration + reb_simulation_integrate(r, INFINITY); // Runs forever + //reb_simulation_integrate(r, tmax); // Integrates only to tmax + + double e_final = reb_simulation_energy(r); + printf("\nDone. Final time: %.4f. Relative energy error: %e\n", r->t, fabs((e_final - e_initial) / e_initial)); + + // Cleanup + reb_simulation_free(r); +} + +void heartbeat(struct reb_simulation* const r) { + if (reb_simulation_output_check(r, 40000000.)) { + reb_simulation_output_timing(r, tmax); + } +} diff --git a/rebound/source/examples/overstability/Makefile b/rebound/source/examples/overstability/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/overstability/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/overstability/problem.c b/rebound/source/examples/overstability/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..4ecea1f2446b3d8d9bf62abede46dc5593f6d73e --- /dev/null +++ b/rebound/source/examples/overstability/problem.c @@ -0,0 +1,71 @@ +/** + * Overstability in Saturn Rings + * + * A narrow box of Saturn's rings is simulated to study the viscous + * overstability. Collisions are resolved using the plane-sweep method. + * + * It takes about 30 orbits for the overstability to occur. You can + * speed up the calculation by turning off the visualization. Just press + * `d` while the simulation is running. Press `d` again to turn it back on. + * + * You can change the viewing angle of the camera with your mouse or by pressing + * the `r` key. + */ +#include +#include +#include +#include "rebound.h" + +extern double OMEGA; +extern double OMEGAZ; + +double coefficient_of_restitution(const struct reb_simulation*r, double v){ + return 0.5; +} + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // This allows you to connect to the simulation using + // a web browser by pointing it to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->ri_sei.OMEGA = 1.; + r->ri_sei.OMEGAZ = 3.6; + r->dt = 2e-3*2.*M_PI; + double particle_r = 1; + double tau = 1.64; + r->coefficient_of_restitution = coefficient_of_restitution; + r->integrator = REB_INTEGRATOR_SEI; + r->collision = REB_COLLISION_TREE; + r->collision_resolve = reb_collision_resolve_hardsphere; + r->gravity = REB_GRAVITY_NONE; + r->boundary = REB_BOUNDARY_SHEAR; + + reb_simulation_configure_box(r,1.,200,5,20); + r->N_ghost_x = 1; r->N_ghost_y = 1; r->N_ghost_z = 0; + + // Initial conditions + double _N = tau * r->boxsize.x * r->boxsize.y/(M_PI*particle_r *particle_r); + while (r->N<_N){ + struct reb_particle p; + p.x = ((double)rand()/(double)RAND_MAX-0.5)*r->boxsize.x; + p.y = ((double)rand()/(double)RAND_MAX-0.5)*r->boxsize.y; + p.z = 10.0*((double)rand()/(double)RAND_MAX-0.5)*particle_r; + p.vx = 0; + p.vy = -1.5*p.x; // shear + p.vz = 0; + p.ax = 0; p.ay = 0; p.az = 0; + p.m = 1.; + p.r = particle_r; + reb_simulation_add(r, p); + } + reb_simulation_integrate(r,INFINITY); +} + +void heartbeat(struct reb_simulation* r){ + if (reb_simulation_output_check(r,2.*M_PI)){ + reb_simulation_output_timing(r,0); + } +} diff --git a/rebound/source/examples/planetary_migration/Makefile b/rebound/source/examples/planetary_migration/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/planetary_migration/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/planetary_migration/problem.c b/rebound/source/examples/planetary_migration/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..871cdf6d9727657ffbdbdfb5878c9d38b98603bd --- /dev/null +++ b/rebound/source/examples/planetary_migration/problem.c @@ -0,0 +1,130 @@ +/** + * Planetary migration in the GJ876 system + * + * This example applies dissipative forces to two + * bodies orbiting a central object. The forces are specified + * in terms of damping timescales for the semi-major axis and + * eccentricity. This mimics planetary migration in a protostellar disc. + * The example reproduces the study of Lee & Peale (2002) on the + * formation of the planetary system GJ876. For a comparison, + * see figure 4 in their paper. The IAS15 or WHFAST integrators + * can be used. Note that the forces are velocity dependent. + * Special thanks goes to Willy Kley for helping me to implement + * the damping terms as actual forces. + */ +#include +#include +#include +#include "rebound.h" + +double* tau_a; /**< Migration timescale in years for all particles */ +double* tau_e; /**< Eccentricity damping timescale in years for all particles */ +double tmax; + +void migration_forces(struct reb_simulation* r); +void heartbeat(struct reb_simulation* r); + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the REBOUND visualization server. This + // allows you to visualize the simulation by pointing + // your web browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->integrator = REB_INTEGRATOR_WHFAST; + //r->integrator = REB_INTEGRATOR_IAS15; + r->dt = 1e-2*2.*M_PI; // in year/(2*pi) + r->additional_forces = migration_forces; //Set function pointer to add dissipative forces. + r->heartbeat = heartbeat; + r->force_is_velocity_dependent = 1; + tmax = 2.0e4*2.*M_PI; // in year/(2*pi) + + // Initial conditions + // Parameters are those of Lee & Peale 2002, Figure 4. + struct reb_particle star = {0}; + star.m = 0.32; // This is a sub-solar mass star + reb_simulation_add(r, star); + + struct reb_particle p1 = {0}; // Planet 1 + p1.x = 0.5; + p1.m = 0.56e-3; + p1.vy = sqrt(r->G*(star.m+p1.m)/p1.x); + reb_simulation_add(r, p1); + + struct reb_particle p2 = {0}; // Planet 2 + p2.x = 1; + p2.m = 1.89e-3; + p2.vy = sqrt(r->G*(star.m+p2.m)/p2.x); + reb_simulation_add(r, p2); + + tau_a = calloc(sizeof(double),r->N); + tau_e = calloc(sizeof(double),r->N); + + tau_a[2] = 2.*M_PI*20000.0; // Migration timescale of planet 2 is 20000 years. + tau_e[2] = 2.*M_PI*200.0; // Eccentricity damping timescale is 200 years (K=100). + + reb_simulation_move_to_com(r); + + remove("orbits.txt"); // delete previous output file + + reb_simulation_integrate(r, tmax); +} + +void migration_forces(struct reb_simulation* r){ + const double G = r->G; + const int N = r->N; + struct reb_particle* const particles = r->particles; + struct reb_particle com = particles[0]; // calculate migration forces with respect to center of mass; + for(int i=1;ivx-com.vx; + const double dvy = p->vy-com.vy; + const double dvz = p->vz-com.vz; + + if (tau_a[i]!=0){ // Migration + p->ax -= dvx/(2.*tau_a[i]); + p->ay -= dvy/(2.*tau_a[i]); + p->az -= dvz/(2.*tau_a[i]); + } + if (tau_e[i]!=0){ // Eccentricity damping + const double mu = G*(com.m + p->m); + const double dx = p->x-com.x; + const double dy = p->y-com.y; + const double dz = p->z-com.z; + + const double hx = dy*dvz - dz*dvy; + const double hy = dz*dvx - dx*dvz; + const double hz = dx*dvy - dy*dvx; + const double h = sqrt ( hx*hx + hy*hy + hz*hz ); + const double v = sqrt ( dvx*dvx + dvy*dvy + dvz*dvz ); + const double r = sqrt ( dx*dx + dy*dy + dz*dz ); + const double vr = (dx*dvx + dy*dvy + dz*dvz)/r; + const double ex = 1./mu*( (v*v-mu/r)*dx - r*vr*dvx ); + const double ey = 1./mu*( (v*v-mu/r)*dy - r*vr*dvy ); + const double ez = 1./mu*( (v*v-mu/r)*dz - r*vr*dvz ); + const double e = sqrt( ex*ex + ey*ey + ez*ez ); // eccentricity + const double a = -mu/( v*v - 2.*mu/r ); // semi major axis + const double prefac1 = 1./(1.-e*e) /tau_e[i]/1.5; + const double prefac2 = 1./(r*h) * sqrt(mu/a/(1.-e*e)) /tau_e[i]/1.5; + p->ax += -dvx*prefac1 + (hy*dz-hz*dy)*prefac2; + p->ay += -dvy*prefac1 + (hz*dx-hx*dz)*prefac2; + p->az += -dvz*prefac1 + (hx*dy-hy*dx)*prefac2; + } + } + com = reb_particle_com_of_pair(com,particles[i]); + } +} + +void heartbeat(struct reb_simulation* r){ + if(reb_simulation_output_check(r, 20.*M_PI)){ + reb_simulation_output_timing(r, tmax); + } + if(reb_simulation_output_check(r, 40.)){ + reb_simulation_synchronize(r); + reb_simulation_output_orbits(r,"orbits.txt"); + reb_simulation_move_to_com(r); + } +} diff --git a/rebound/source/examples/planetesimal_disk_migration/Makefile b/rebound/source/examples/planetesimal_disk_migration/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/planetesimal_disk_migration/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/planetesimal_disk_migration/problem.c b/rebound/source/examples/planetesimal_disk_migration/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..add2c8fde565a58111622c5fe0c4139152d5bb76 --- /dev/null +++ b/rebound/source/examples/planetesimal_disk_migration/problem.c @@ -0,0 +1,139 @@ +/** + * Planetesimal Disk Migration + * + * This example integrates a star, 2 planet, N-planetesimal disk system, with the + * outer planet at the inner edge of the planetesimal disk. The planet in the system + * migrates on a very slow timescale and one needs to run the simulation for roughly + * 10^5 dynamical timescales to see the effect. + * + * The ideal integrator choice for this problem is MERCURIUS due to the large + * number of close encounters. + */ + +#include +#include +#include +#include +#include "rebound.h" + +void heartbeat(struct reb_simulation* r); +double E0; + +enum REB_COLLISION_RESOLVE_OUTCOME reb_collision_resolve_merge_pass_through(struct reb_simulation* const r, struct reb_collision c); + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the REBOUND visualization server. This + // allows you to visualize the simulation by pointing + // your web browser to http://localhost:1234 + // The particles are tiny in this example. To see them + // on the screen press `s` to change their plotting style. + reb_simulation_start_server(r, 1234); + + + // Simulation Setup + r->integrator = REB_INTEGRATOR_MERCURIUS; + r->heartbeat = heartbeat; + // Test particle type 1 allows massive particles to feel the gravity of testparticles. + // However, test particles will not feel the gravity from other test particles. + r->testparticle_type = 1; + + // Collisions + r->collision = REB_COLLISION_DIRECT; + r->collision_resolve = reb_collision_resolve_merge_pass_through; + r->track_energy_offset = 1; + r->collision_resolve_keep_sorted = 1; + + // Boundaries + r->boundary = REB_BOUNDARY_OPEN; + const double boxsize = 6; + reb_simulation_configure_box(r,boxsize,2,2,1); + + srand(12); + double m_earth = 3.003e-6; + double m_neptune = 5.1e-4; + double a_scat_planet = 1; + double a_mig_planet = 1.67; + r->dt = 6.283*pow(a_scat_planet,1.5)/50; + + // Star + struct reb_particle star = {0}; + star.m = 1; + star.r = 0.005; // Radius of particle is in AU! + reb_simulation_add(r, star); + + // Planet 1 - inner massive planet to scatter planetesimals out + { + double a=a_scat_planet, m=m_neptune, e=0, inc=reb_random_normal(r, 0.00001); + struct reb_particle p = {0}; + p = reb_particle_from_orbit(r->G, star, m, a, e, inc, 0, 0, 0); + p.r = 0.000467; + reb_simulation_add(r, p); + } + + // Planet 2 - outer smaller planet to migrate in the disk + { + double a=a_mig_planet, m=2.3*m_earth, e=0, inc=reb_random_normal(r, 0.00001); + struct reb_particle p = {0}; + p = reb_particle_from_orbit(r->G, star, m, a, e, inc, 0, 0, 0); + p.r = 0.0000788215; + reb_simulation_add(r, p); + } + + r->N_active = r->N; + + // Planetesimal disk parameters + double total_disk_mass = 2.3*10*m_earth; + int N_planetesimals = 2500; + double planetesimal_mass = total_disk_mass/N_planetesimals; + double amin = a_mig_planet-0.02, amax = a_mig_planet + 1; //planet at inner edge of disk + double powerlaw = 1; + + // Generate Planetesimal Disk + while(r->NN_active){ + struct reb_particle pt = {0}; + double a = reb_random_powerlaw(r, amin,amax,powerlaw); + double e = reb_random_rayleigh(r, 0.005); + double inc = reb_random_rayleigh(r, 0.005); + double Omega = reb_random_uniform(r, 0,2.*M_PI); + double apsis = reb_random_uniform(r, 0,2.*M_PI); + double phi = reb_random_uniform(r, 0,2.*M_PI); + pt = reb_particle_from_orbit(r->G, star, r->testparticle_type?planetesimal_mass:0., a, e, inc, Omega, apsis, phi); + pt.r = 0.00000934532; + reb_simulation_add(r, pt); + } + + reb_simulation_move_to_com(r); + E0 = reb_simulation_energy(r); + + // Integrate! + reb_simulation_integrate(r, INFINITY); + reb_simulation_free(r); +} + +enum REB_COLLISION_RESOLVE_OUTCOME reb_collision_resolve_merge_pass_through(struct reb_simulation* const r, struct reb_collision c){ + // This function passes the collision to the default merging routine. + // If a merger occured, that routine will return a value other than 0. + // This function then outputs some information about the merger. + enum REB_COLLISION_RESOLVE_OUTCOME result = reb_collision_resolve_merge(r, c); + if (result!=REB_COLLISION_RESOLVE_OUTCOME_REMOVE_NONE){ + printf("A merger occured! Particles involved: %d, %d.\n",c.p1,c.p2); + } + return result; +} + +void heartbeat(struct reb_simulation* r){ + if (reb_simulation_output_check(r, 100.*r->dt)){ + //relative energy error + double E = reb_simulation_energy(r); + double relE = fabs((E-E0)/E0); + + //get orbital elements + struct reb_particle p = r->particles[2]; + struct reb_particle star = r->particles[0]; + struct reb_orbit o = reb_orbit_from_particle(r->G,p,star); + + printf("a2=%f,dE=%e,N=%d\n",o.a,relE,r->N); + } +} diff --git a/rebound/source/examples/prdrag/Makefile b/rebound/source/examples/prdrag/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/prdrag/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/prdrag/plot.plt b/rebound/source/examples/prdrag/plot.plt new file mode 100644 index 0000000000000000000000000000000000000000..bd7f175a0e3e6f41fc082ad2201aea87a3a86ef6 --- /dev/null +++ b/rebound/source/examples/prdrag/plot.plt @@ -0,0 +1,21 @@ +#!/bin/gnuplot +set key top left +set xlabel "time [years]" +set multiplot layout 2,1 +beta = 0.01 +set lmargin 12 +k = 2.497557889905430e-03*beta +a(t) = sqrt(1.-k*t) +set st d l +set autoscale xfix +set xtics 10000 + +set ytics 0.1 +set ylabel "semimajor axis [AU]" +plot "radius.txt" u ($1/2./pi):($2) notit + +set ytics 1e-4 +set ylabel "semimajor axis error [AU]" +plot "radius.txt" u ($1/2./pi):($2-a($1/2./pi)) notit + +pause -1 diff --git a/rebound/source/examples/prdrag/problem.c b/rebound/source/examples/prdrag/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..4fba62db40c3058564a8ada43c5667730fe442d3 --- /dev/null +++ b/rebound/source/examples/prdrag/problem.c @@ -0,0 +1,104 @@ +/** + * Radiation forces + * + * This example provides an implementation of the + * Poynting-Robertson effect. The code is using the IAS15 integrator + * which is ideally suited for this velocity dependent force. + */ +#include +#include +#include +#include "rebound.h" + +void radiation_forces(struct reb_simulation* r); +void heartbeat(struct reb_simulation* r); + +double betaparticles = 0.01; // beta parameter, defined as the ratio of radiation pressure over gravity +double tmax = 1e5; + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the REBOUND visualization server. This + // allows you to visualize the simulation by pointing + // your web browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // setup constants + r->dt = 1e-3; // initial timestep + r->integrator = REB_INTEGRATOR_IAS15; + r->ri_ias15.epsilon = 1e-4; // accuracy parameter + r->N_active = 1; // the star is the only massive particle + r->force_is_velocity_dependent = 1; + r->additional_forces = radiation_forces; // setup callback function for velocity dependent forces + r->heartbeat = heartbeat; + + // star is at rest at origin + struct reb_particle star = {0}; + star.m = 1.; + reb_simulation_add(r, star); + + // dust particles are initially on a circular orbit + while(r->N<2){ + struct reb_particle p = {0}; + p.m = 0; // massless + double a = 1.; // a = 1 AU + double v = sqrt(r->G*(star.m*(1.-betaparticles))/a); + double phi = reb_random_uniform(r, 0,2.*M_PI); // random phase + p.x = a*sin(phi); p.y = a*cos(phi); + p.vx = -v*cos(phi); p.vy = v*sin(phi); + reb_simulation_add(r, p); + } + + remove("radius.txt"); // remove previous output + + reb_simulation_integrate(r, tmax); +} + +void radiation_forces(struct reb_simulation* r){ + struct reb_particle* particles = r->particles; + const int N = r->N; + const struct reb_particle star = particles[0]; // cache +#pragma omp parallel for + for (int i=0;iG*star.m/(pr*pr); + + // Equation (5) of Burns, Lamy, Soter (1979) + particles[i].ax += F_r*((1.-rdot/c)*prx/pr - prvx/c); + particles[i].ay += F_r*((1.-rdot/c)*pry/pr - prvy/c); + particles[i].az += F_r*((1.-rdot/c)*prz/pr - prvz/c); + } +} + +void heartbeat(struct reb_simulation* r){ + if(reb_simulation_output_check(r, 400.)){ // print some information to screen + reb_simulation_output_timing(r, tmax);; + } + if(reb_simulation_output_check(r, M_PI*2.*1000.)){ // output radial distance every 1000 years + FILE* f = fopen("radius.txt","ab"); + struct reb_particle* particles = r->particles; + const struct reb_particle star = particles[0]; + const int N = r->N; + for (int i=1;it,pr); + } + fclose(f); + } +} diff --git a/rebound/source/examples/profiling/Makefile b/rebound/source/examples/profiling/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..57b98416e3084ce5039699702f3d8394304f8778 --- /dev/null +++ b/rebound/source/examples/profiling/Makefile @@ -0,0 +1,36 @@ +export PROFILING=1 +export OPENGL=1 +export SERVER=0 +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/profiling/problem.c b/rebound/source/examples/profiling/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..a6adbac6f4df531a13a1fb721f736ff80b781cb4 --- /dev/null +++ b/rebound/source/examples/profiling/problem.c @@ -0,0 +1,98 @@ +/** + * Profiling the shearing sheet example + * + * This example demonstrates how to use the profiling tool that + * comes with REBOUND to find out which parts of your code are + * slow. To turn on this option, simple set `PROFILING=1` in + * the Makefile. Make sure to run `make clean` before compiling + * this example. + * Note that enabeling this option makes REBOUND not thread-safe. + */ +#include +#include +#include +#include "rebound.h" + +double coefficient_of_restitution_bridges(const struct reb_simulation* const r, double v); +void heartbeat(struct reb_simulation* const r); + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + + // Setup constants + r->opening_angle2 = .5; // This determines the precission of the tree code gravity calculation. + r->integrator = REB_INTEGRATOR_SEI; + r->boundary = REB_BOUNDARY_SHEAR; + r->gravity = REB_GRAVITY_TREE; + r->collision = REB_COLLISION_TREE; + r->collision_resolve = reb_collision_resolve_hardsphere; + double OMEGA = 0.00013143527; // 1/s + r->ri_sei.OMEGA = OMEGA; + r->G = 6.67428e-11; // N / (1e-5 kg)^2 m^2 + r->softening = 0.1; // m + r->dt = 1e-3 * 2. * M_PI / OMEGA; // s + r->heartbeat = heartbeat; // function pointer for heartbeat + // This example uses two root boxes in the x and y direction. + // Although not necessary in this case, it allows for the parallelization using MPI. + // See Rein & Liu for a description of what a root box is in this context. + double surfacedensity = 400; // kg/m^2 + double particle_density = 400; // kg/m^3 + double particle_radius_min = 1; // m + double particle_radius_max = 4; // m + double particle_radius_slope = -3; + double boxsize = 100; // m + if (argc > 1) { // Try to read boxsize from command line + boxsize = atof(argv[1]); + } + reb_simulation_configure_box(r, boxsize, 2, 2, 1); + r->N_ghost_x = 2; + r->N_ghost_y = 2; + r->N_ghost_z = 0; + + // Initial conditions + printf("Toomre wavelength: %f\n", 4. * M_PI * M_PI * surfacedensity / OMEGA / OMEGA * r->G); + // Use Bridges et al coefficient of restitution. + r->coefficient_of_restitution = coefficient_of_restitution_bridges; + // When two particles collide and the relative velocity is zero, the might sink into each other in the next time step. + // By adding a small repulsive velocity to each collision, we prevent this from happening. + r->minimum_collision_velocity = particle_radius_min * OMEGA * 0.001; // small fraction of the shear accross a particle + + // Add all ring paricles + double total_mass = surfacedensity * r->boxsize.x * r->boxsize.y; + double mass = 0; + while (mass < total_mass) { + struct reb_particle pt = {0}; + pt.x = reb_random_uniform(r, -r->boxsize.x / 2., r->boxsize.x / 2.); + pt.y = reb_random_uniform(r, -r->boxsize.y / 2., r->boxsize.y / 2.); + pt.z = reb_random_normal(r, 1.); // m + pt.vy = -1.5 * pt.x * OMEGA; + double radius = reb_random_powerlaw(r, particle_radius_min, particle_radius_max, particle_radius_slope); + pt.r = radius; // m + double particle_mass = particle_density * 4. / 3. * M_PI * radius * radius * radius; + pt.m = particle_mass; // kg + reb_simulation_add(r, pt); + mass += particle_mass; + } + reb_simulation_integrate(r, INFINITY); +} + +// This example is using a custom velocity dependend coefficient of restitution +double coefficient_of_restitution_bridges(const struct reb_simulation* const r, double v) { + // assumes v in units of [m/s] + double eps = 0.32 * pow(fabs(v) * 100., -0.234); + if (eps > 1) + eps = 1; + if (eps < 0) + eps = 0; + return eps; +} + +void heartbeat(struct reb_simulation* const r) { + if (reb_simulation_output_check(r, 1e-3 * 2. * M_PI / r->ri_sei.OMEGA)) { + reb_simulation_output_timing(r, 0); + //reb_output_append_velocity_dispersion("veldisp.txt"); + } + if (reb_simulation_output_check(r, 2. * M_PI / r->ri_sei.OMEGA)) { + //reb_simulation_output_ascii("position.txt"); + } +} diff --git a/rebound/source/examples/reb_add_fmt/Makefile b/rebound/source/examples/reb_add_fmt/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..2029e848a93020d78dc2796b3c9b96ec652deb31 --- /dev/null +++ b/rebound/source/examples/reb_add_fmt/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0 +export SERVER=0 +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/reb_add_fmt/problem.c b/rebound/source/examples/reb_add_fmt/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..f99943d6b17ec7d46b9eb0792d4a2a8f3b89f20b --- /dev/null +++ b/rebound/source/examples/reb_add_fmt/problem.c @@ -0,0 +1,76 @@ +/** + * Example usage of reb_simulation_add_fmt() + * + * The reb_simulation_add_fmt() function can be used to add a particle + * to the simulation by specifying the particle's coordinates + * in a variety of formats. + */ +#include "rebound.h" +#include +#include + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + + // Central object at origin with mass=1 + reb_simulation_add_fmt(r, "m", 1.); + + // Massless particle on circular orbit with a=1 + reb_simulation_add_fmt(r, "a", 1.); + + // A Jupiter mass planet with a=2 and e=0.1 + reb_simulation_add_fmt(r, "m a e", 1e-3, 2., 0.1); + + // By default Jacobi coordinates are used, here we use + // heliocentric coordinates by specifying the primary. + reb_simulation_add_fmt(r, "a e primary", 0.1, 0.3, r->particles[0]); + + // The function supports any arbitrary combination of + // orbital parameters as long as it's physically meaningful. + reb_simulation_add_fmt(r, "a e omega", 3., 0.1, M_PI); + reb_simulation_add_fmt(r, "a e pomega", 4., 0.1, M_PI/2.); + reb_simulation_add_fmt(r, "P h k", 365.25, 0.01, 0.02); + + // Non-physical parameter combinations raise errors + reb_simulation_add_fmt(r, "a e", -1., 0.1); + reb_simulation_add_fmt(r, "a e", -1., 0.1); + + // Cartesian coordinates are supported as well + reb_simulation_add_fmt(r, "m x vy", 1e-3, 9., 0.3); + + /** Supported parameters are: + * m: Mass (Default: 0) + * x, y, z: Positions in Cartesian coordinates (Default: 0) + * vx, vy, vz: Velocities in Cartesian coordinates (Default: 0) + * primary: Primary body for converting orbital elements to cartesian (Default: center of mass of the particles in the passed simulation, i.e., this will yield Jacobi coordinates as one progressively adds particles) + * a: Semimajor axis (a or P required if passing orbital elements) + * P: Orbital period (a or P required if passing orbital elements) + * e: Eccentricity (Default: 0) + * inc: Inclination (Default: 0) + * Omega: Longitude of ascending node (Default: 0) + * omega: Argument of pericenter (Default: 0) + * pomega: Longitude of pericenter (Default: 0) + * f: True anomaly (Default: 0) + * M: Mean anomaly (Default: 0) + * E: Eccentric anomaly (Default: 0) + * l: Mean longitude (Default: 0) + * theta: True longitude (Default: 0) + * T: Time of pericenter passage + * h: h variable, see Pal (2009) for a definition (Default: 0) + * k: k variable, see Pal (2009) for a definition (Default: 0) + * ix: ix variable, see Pal (2009) for a definition (Default: 0) + * iy: iy variable, see Pal (2009) for a definition (Default: 0) + * r: Particle radius + * + * Note that it is important to pass floating point numbers and not integers to reb_simulation_add_fmt(). + * For example: + * reb_simulation_add_fmt(r, "a", 1) + * will lead to undefined behaviour. Instead, use + * reb_simulation_add_fmt(r, "a", 1.0) + */ + + // Run a test simulation + reb_simulation_move_to_com(r); + reb_simulation_integrate(r,100.); +} + diff --git a/rebound/source/examples/removing_particles_from_simulation/Makefile b/rebound/source/examples/removing_particles_from_simulation/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..2029e848a93020d78dc2796b3c9b96ec652deb31 --- /dev/null +++ b/rebound/source/examples/removing_particles_from_simulation/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0 +export SERVER=0 +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/removing_particles_from_simulation/problem.c b/rebound/source/examples/removing_particles_from_simulation/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..56172882a690c457c37c36a9dc1540c90660b1e7 --- /dev/null +++ b/rebound/source/examples/removing_particles_from_simulation/problem.c @@ -0,0 +1,81 @@ +/** + * Removing particles from simulations + * + * This example demonstrates different + * options for removing particles from the simulation. + */ +#include +#include +#include +#include "rebound.h" + +void print_hashes(struct reb_simulation* r){ + printf("hashes = "); + for (int i=0;iN;i++){ + printf("%u ", r->particles[i].hash); + } + printf("\n"); +} + + +int main(int argc, char* argv[]){ + // Note that when using a tree (for gravity calculation or collision search), you need + // to call reb_simulation_update_tree(r) after removing particles. Only then is the particle + // removed. This helps avoiding to rebuild the tree multiple times if more than one + // particle is removed at the same time. + struct reb_simulation* r = reb_simulation_create(); + + for (int i=0;i<9;i++){ + struct reb_particle p = {0}; + p.hash = i; + reb_simulation_add(r, p); + } + + struct reb_particle p = {0}; + p.hash = reb_hash("Planet 9"); + reb_simulation_add(r, p); + + printf("Initial hashes:\n"); + print_hashes(r); + + int success; + int keep_sorted = 0; + printf("\nTry to remove index 3 (4th particle)...\n"); + success = reb_simulation_remove_particle(r, 3, keep_sorted); + if (success){ + printf("Particle successfully removed\n"); + } + print_hashes(r); + printf("Because keep_sorted = 0, last particle replaced removed particle and indices got scrambled:\n\n"); + + keep_sorted = 1; + printf("Try to remove index 6 (7th particle) while preserving the order with keep_sorted=1...\n"); + success = reb_simulation_remove_particle(r, 6, keep_sorted); + if (success){ + printf("Particle successfully removed\n"); + } + print_hashes(r); + + printf("\nWe can also remove particles by the hashes we assign them (this is robust to particles switching indices in the particles array during the simulation).\n"); + printf("Try to remove Planet 9...\n"); + success = reb_simulation_remove_particle_by_hash(r, reb_hash("Planet 9"), keep_sorted); + if (success){ + printf("Particle successfully removed\n"); + } + print_hashes(r); + + printf("\nFinally, we can remove particles by their hash directly.\n"); + success = reb_simulation_remove_particle_by_hash(r, 1, keep_sorted); + if (success){ + printf("Particle successfully removed\n"); + } + print_hashes(r); + + printf("\nAlso, if we try to remove an index > N, we get an error and no particle is removed:\n"); + printf("Try to remove index 15...\n"); + success = reb_simulation_remove_particle(r, 15, keep_sorted); + if (success){ + printf("Particle successfully removed\n"); + } +} + diff --git a/rebound/source/examples/restarting_simulation/Makefile b/rebound/source/examples/restarting_simulation/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/restarting_simulation/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/restarting_simulation/problem.c b/rebound/source/examples/restarting_simulation/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..fe5bc1018faccc16a2bc3bc52623e08c385b3619 --- /dev/null +++ b/rebound/source/examples/restarting_simulation/problem.c @@ -0,0 +1,58 @@ +/** + * Restarting simulations + * + * This example demonstrates how to restart a simulation + * using a binary file. A shearing sheet ring simulation is used, but + * the same method can be applied to any other type of simulation. + */ +#include +#include +#include +#include "rebound.h" + +void heartbeat(struct reb_simulation* const r); + +int main(int argc, char* argv[]){ + { + printf("Running simulation until t=1.\n"); + struct reb_simulation* r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_SEI; + r->collision = REB_COLLISION_DIRECT; + r->collision_resolve = reb_collision_resolve_hardsphere; + r->boundary = REB_BOUNDARY_SHEAR; + r->ri_sei.OMEGA = 1.; + r->dt = 1e-4*2.*M_PI; + r->exact_finish_time = 1; // Finish exactly at tmax in reb_simulation_integrate(). Default is already 1. + r->N_ghost_x = 1; r->N_ghost_y = 1; r->N_ghost_z = 0; + reb_simulation_configure_box(r,2.,1,1,1); + + while (r->N<50){ + struct reb_particle p = {0}; + p.x = ((double)rand()/(double)RAND_MAX-0.5)*r->boxsize.x; + p.y = ((double)rand()/(double)RAND_MAX-0.5)*r->boxsize.y; + p.z = 0.1*((double)rand()/(double)RAND_MAX-0.5)*r->boxsize.z; + p.vy = -1.5*p.x*r->ri_sei.OMEGA; + p.m = 0.0001; + p.r = 0.1; + reb_simulation_add(r, p); + } + r->heartbeat = heartbeat; + reb_simulation_integrate(r,1.); + printf("Saving simulation to binary file and freeing up memory.\n"); + reb_simulation_save_to_file(r, "restart.bin"); + reb_simulation_free(r); + r = NULL; + } + { + printf("Creating simulation from binary file and integrating until t=2.\n"); + struct reb_simulation* r = reb_simulation_create_from_file("restart.bin", 0); + // Need to reset function pointers + r->heartbeat = heartbeat; + reb_simulation_integrate(r,2.); + printf("Done.\n"); + } +} + +void heartbeat(struct reb_simulation* const r){ + // Dummy. +} diff --git a/rebound/source/examples/restricted_threebody/Makefile b/rebound/source/examples/restricted_threebody/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/restricted_threebody/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/restricted_threebody/problem.c b/rebound/source/examples/restricted_threebody/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..9265c337d11edc935e1507b12c60dc4c370974cc --- /dev/null +++ b/rebound/source/examples/restricted_threebody/problem.c @@ -0,0 +1,75 @@ +/** + * Restricted three body problem. + * + * This example simulates a disk of test particles around + * a central object, being perturbed by a planet. + * It uses the heliocentric version of WHFast. + */ +#include +#include +#include +#include "rebound.h" + +void heartbeat(struct reb_simulation* r); + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the REBOUND visualization server. This + // allows you to visualize the simulation by pointing + // your web browser to http://localhost:1234 + // You can turn orbits on and off by pressing `w`. + reb_simulation_start_server(r, 1234); + + // Setup constants + r->integrator = REB_INTEGRATOR_WHFAST; + r->ri_whfast.coordinates = REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC; + r->boundary = REB_BOUNDARY_OPEN; + r->softening = 1e-6; + r->dt = 1.0e-2*2.*M_PI; + r->N_active = 2; // Only the star and the planet have non-zero mass + r->heartbeat = heartbeat; + + reb_simulation_configure_box(r,8.,1,1,1); // Box with size 8 AU + + // Initial conditions for star + struct reb_particle star = {0}; + star.m = 1; + reb_simulation_add(r, star); + + // Initial conditions for planet + double planet_e = 0.; + struct reb_particle planet = {0}; + planet.x = 1.-planet_e; + planet.vy = sqrt(2./(1.-planet_e)-1.); + planet.m = 1e-2; + reb_simulation_add(r, planet); + reb_simulation_move_to_com(r); + + while(r->N<10000){ + double x = ((double)rand()/(double)RAND_MAX-0.5)*8.; + double y = ((double)rand()/(double)RAND_MAX-0.5)*8.; + double a = sqrt(x*x+y*y); + double phi = atan2(y,x); + if (a<.1) continue; + if (a>4.) continue; + + double vkep = sqrt(r->G*star.m/a); + struct reb_particle testparticle = {0}; + testparticle.x = x; + testparticle.y = y; + testparticle.z = 1.0e-2*x*((double)rand()/(double)RAND_MAX-0.5); + testparticle.vx = -vkep*sin(phi); + testparticle.vy = vkep*cos(phi); + reb_simulation_add(r, testparticle); + } + + reb_simulation_integrate(r, INFINITY); +} + +void heartbeat(struct reb_simulation* r){ + if (reb_simulation_output_check(r, 20.*M_PI)){ + reb_simulation_output_timing(r, 0); + reb_simulation_output_orbits(r, "orbit.txt"); + } +} diff --git a/rebound/source/examples/rotations/Makefile b/rebound/source/examples/rotations/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..8f82bb283f8f253b605dfad95227e9a2a605629a --- /dev/null +++ b/rebound/source/examples/rotations/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0 +export SERVER=1 +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/rotations/problem.c b/rebound/source/examples/rotations/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..e8fd2711cf53727f47cd6114b0e8da96e27e7fd1 --- /dev/null +++ b/rebound/source/examples/rotations/problem.c @@ -0,0 +1,82 @@ +/** + * Using rotations in REBOUND + * + * A simple example showing how to use the built-in rotations framework in REBOUND. See also Rotations.ipynb for more details + */ +#include "rebound.h" +#include +#include + +int main(int argc, char* argv[]) { + // REBOUND provides a reb_rotation struct. + // Internally, it is implemented using quaternions but + // you don't need to understand how quaternions work! + // Simply put: this struct can rotate a vector or an + // entire simulation. + + // The following example rotates the vector v around the + // x axis by 90 degrees: + struct reb_vec3d axis = {.x = 1, .y = 0, .z = 0}; + struct reb_rotation r1 = reb_rotation_init_angle_axis(M_PI/2.0, axis); + + struct reb_vec3d v = {.x = 1, .y = 2, .z = 3}; + struct reb_vec3d v_rotated = reb_vec3d_rotate(v, r1); + printf("v_rotated = %.5f %.5f %.5f\n", v_rotated.x, v_rotated.y, v_rotated.z); + + + // You can rotate a particle (its position and velocity) + struct reb_particle p = {.m=1, .x=1, .vy=1}; + reb_particle_irotate(&p, r1); // irotate means rotate in place + + // You can also rotate all the particles in a simulation: + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_add_fmt(r, "m", 1.); // Central object + reb_simulation_add_fmt(r, "m a e", 1e-3, 1., 0.1); // Jupiter mass planet + reb_simulation_irotate(r, r1); + reb_simulation_free(r); + + // You can chain rotations by multiplying them together. + // Note that the order of rotations matters, just like + // the order matters when multiplying together two matricies. + struct reb_vec3d axis_y = {.y = 1,}; + struct reb_rotation r2 = reb_rotation_init_angle_axis(M_PI/2.0, axis_y); + struct reb_rotation r_combined = reb_rotation_mul(r2, r1); + v_rotated = reb_vec3d_rotate(v, r_combined); // equal to applying r1 first, then r2 + + // You can easily calculate the inverse of rotations. + struct reb_rotation r_inverse = reb_rotation_inverse(r_combined); + v_rotated = reb_vec3d_rotate(v, r_inverse); + + // For celestial mechanics, we provide a special init method that + // uses the ascending node, inclination and longitude of periastron. + // Applying this method to an orbit in the xy plane with the + // pericenter on the x axis gives the same result as initializing an + // particle with orbital parameters the "normal way". + double Omega = 0.12; + double inc = 0.223; + double omega = 0.345; + struct reb_rotation r_orbit = reb_rotation_init_orbit(Omega, inc, omega); + + r = reb_simulation_create(); + reb_simulation_add_fmt(r, "m", 1.); // Central object + reb_simulation_add_fmt(r, "a e", 1., 0.001); // orbit in the xy plane + reb_simulation_add_fmt(r, "a e Omega inc omega ", 1., 0.001, Omega, inc, omega); // 3d orbit + reb_particle_irotate(&r->particles[1], r_orbit); + printf("particle[1] = %.5f %.5f %.5f %.5f %.5f %.5f\n", r->particles[1].x, r->particles[1].y, r->particles[1].z, r->particles[1].vx, r->particles[1].vy, r->particles[1].vz); + printf("particle[2] = %.5f %.5f %.5f %.5f %.5f %.5f\n", r->particles[2].x, r->particles[2].y, r->particles[2].z, r->particles[2].vx, r->particles[2].vy, r->particles[2].vz); + reb_simulation_free(r); + + + // REBOUND also comes with a built-in constructor that generates a rotation + // which rotates a given vector to a new vector. For example: + struct reb_vec3d v1 = {.x = 1, .y = 0, .z = 0}; + struct reb_vec3d v2 = {.x = 4, .y = 5, .z = 6}; + + struct reb_rotation r3 = reb_rotation_init_from_to(v1, v2); + v_rotated = reb_vec3d_rotate(v1, r3); + + v2 = reb_vec3d_normalize(v2); // for easy comparison + printf("v2 = %.5f %.5f %.5f\n", v2.x, v2.y, v2.z); + printf("v_rotated = %.5f %.5f %.5f\n", v_rotated.x, v_rotated.y, v_rotated.z); +} + diff --git a/rebound/source/examples/screenshots/Makefile b/rebound/source/examples/screenshots/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/screenshots/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/screenshots/problem.c b/rebound/source/examples/screenshots/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..e722d98a0202fd7644ebd1c7c9947b541ef22906 --- /dev/null +++ b/rebound/source/examples/screenshots/problem.c @@ -0,0 +1,65 @@ +/** + * Screenshots + * + * This example shows how to take a screenshot of a REBOUND + * simulation at the beginning of the simulation and once + * every 400 timesteps during the integration. You need to + * compile REBOUND with SERVER=1 and connect a webbrowser + * to the simulation. Only then can you take screenshots. + * You might also be interested in the examples: + * 1) animation_saturns_rings and + * 2) animation_solar_system. + * They show how one can programatically change the + * visualization. You can combine this with taking + * screenshots if you want to record animations of REBOUND + * simulations. + * + */ +#include +#include +#include +#include "rebound.h" + +void heartbeat(struct reb_simulation* const r){ + if (r->steps_done%400==0){ // Every 400 timesteps + int id = r->steps_done/400; + char filename[1024]; + sprintf(filename, "screenshot_%05d.png", id); + if (reb_simulation_output_screenshot(r, filename)){ + printf("Screenshot saved: %s\n", filename); + } + } +} + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_WHFAST; + r->heartbeat = heartbeat; + + // Initial conditions + reb_simulation_add_fmt(r, "m", 1.); // star + reb_simulation_add_fmt(r, "m a", 1e-3, 1.); // planet 1 + reb_simulation_add_fmt(r, "m a", 1e-3, 2.); // planet 2 + reb_simulation_move_to_com(r); + + // Start the web server. Make sure you point your + // webbrowser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Manually take a screenshot of the initial conditions. + // The program will pause here until you connect a + // webbrowser and a screenshot can be taken. + reb_simulation_output_screenshot(r, "screenshot_initial.png"); + printf("Screenshot saved: screenshot_initial.png\n"); + + // Start integration. + reb_simulation_integrate(r, 10); + + // Manually take a screenshot of the final simulation + reb_simulation_output_screenshot(r, "screenshot_final.png"); + printf("Screenshot saved: screenshot_final.png\n"); + + // Cleanup + reb_simulation_free(r); +} + diff --git a/rebound/source/examples/secular_frequencies/Makefile b/rebound/source/examples/secular_frequencies/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..c4652ace88e24b10d3d2eaf70ebbe288d794089c --- /dev/null +++ b/rebound/source/examples/secular_frequencies/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=0# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/secular_frequencies/problem.c b/rebound/source/examples/secular_frequencies/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..3c3d0562f40dd804f441612a3cc7d5019bc5231b --- /dev/null +++ b/rebound/source/examples/secular_frequencies/problem.c @@ -0,0 +1,105 @@ +/** + * Secular Frequencies + * + * This example integrates the outer Solar System and then performs a + * frequency analysis using the Frequency Modified Fourier Transform + * to determine the secular frequencies (g-modes). + */ +#include +#include +#include +#include "rebound.h" + +double ss_pos[6][3] = + { + {-4.06428567034226e-3, -6.08813756435987e-3, -1.66162304225834e-6}, // Sun + {+3.40546614227466e+0, +3.62978190075864e+0, +3.42386261766577e-2}, // Jupiter + {+6.60801554403466e+0, +6.38084674585064e+0, -1.36145963724542e-1}, // Saturn + {+1.11636331405597e+1, +1.60373479057256e+1, +3.61783279369958e-1}, // Uranus + {-3.01777243405203e+1, +1.91155314998064e+0, -1.53887595621042e-1}, // Neptune + {-2.13858977531573e+1, +3.20719104739886e+1, +2.49245689556096e+0} // Pluto +}; +double ss_vel[6][3] = + { + {+6.69048890636161e-6, -6.33922479583593e-6, -3.13202145590767e-9}, // Sun + {-5.59797969310664e-3, +5.51815399480116e-3, -2.66711392865591e-6}, // Jupiter + {-4.17354020307064e-3, +3.99723751748116e-3, +1.67206320571441e-5}, // Saturn + {-3.25884806151064e-3, +2.06438412905916e-3, -2.17699042180559e-5}, // Uranus + {-2.17471785045538e-4, -3.11361111025884e-3, +3.58344705491441e-5}, // Neptune + {-1.76936577252484e-3, -2.06720938381724e-3, +6.58091931493844e-4} // Pluto +}; + +double ss_mass[6] = + { + 1.00000597682, // Sun + inner planets + 1. / 1047.355, // Jupiter + 1. / 3501.6, // Saturn + 1. / 22869., // Uranus + 1. / 19314., // Neptune + 0.0 // Pluto +}; + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + const double k = 0.01720209895; // Gaussian constant + r->dt = 120; // Timestep is 120 days. + r->G = k * k; // These are the same units as used by the mercury6 code. + r->integrator = REB_INTEGRATOR_WHFAST; + + // Initial conditions + for (int i = 0; i < 6; i++) { + struct reb_particle p = {0}; + p.x = ss_pos[i][0]; + p.y = ss_pos[i][1]; + p.z = ss_pos[i][2]; + p.vx = ss_vel[i][0]; + p.vy = ss_vel[i][1]; + p.vz = ss_vel[i][2]; + p.m = ss_mass[i]; + reb_simulation_add(r, p); + } + + reb_simulation_move_to_com(r); + + int Nsamples = 2048; // Number of samples. Must be a power of two. + // Choose a larger number for better accuracy, e.g. 32768. + double* inp = malloc(sizeof(double)*2*Nsamples); + // Start integration + for (int i=0; iG, r->particles[1], r->particles[0]); + // Store complex eccentricity in array + inp[i*2+0] = o.e*cos(o.pomega); + inp[i*2+1] = o.e*sin(o.pomega); + } + + // Perform frequency analysis + int nfreq = 5; + double datasep = 120000.0/365.25*2.0*M_PI; // sampling interval in units of year/2pi + double minfreq = 60.0/1296000.0*datasep; // min/max frequenxy 60"/year + double* out = malloc(sizeof(double)*3*nfreq); + // The next command performs the actual Frequency Modified Fourier Transform (FMFT). + // Other options are MFT (faster) and FMFT2 (more accurate). + // See Sidlichovsky and Nesvorny (1996) for more details: + // https://ui.adsabs.harvard.edu/abs/1996CeMDA..65..137S/abstract + int error = reb_frequency_analysis(out, nfreq, -minfreq, minfreq, REB_FREQUENCY_ANALYSIS_FMFT, inp, Nsamples); + if (error){ + printf("An error occured during the frequency analysis.\n"); + } + + // Output the nfreq most dominate modes + for (int i=0; i +#include +#include +#include +#include "rebound.h" + + +void heartbeat(struct reb_simulation* const r); + +int main(int argc, char* argv[]){ + struct reb_simulation* const r = reb_simulation_create(); + + // Start the REBOUND visualization server. This + // allows you to visualize the simulation by pointing + // your web browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->integrator = REB_INTEGRATOR_LEAPFROG; + r->gravity = REB_GRAVITY_TREE; + r->boundary = REB_BOUNDARY_OPEN; + r->opening_angle2 = 1.5; // This constant determines the accuracy of the tree code gravity estimate. + r->G = 1; // Gravitational constant + r->softening = 0.02; // Gravitational softening length + r->dt = 3e-2; // Timestep + const double boxsize = 10.2; + reb_simulation_configure_box(r,boxsize,1,1,1); + + // Setup particles + double disc_mass = 2e-1; // Total disc mass + int N = 10000; // Number of particles + // Initial conditions + struct reb_particle star = {0}; + star.m = 1; + reb_simulation_add(r, star); + for (int i=0;iG*mu/a); + pt.vx = vkep * sin(phi); + pt.vy = -vkep * cos(phi); + pt.vz = 0; + pt.m = disc_mass/(double)N; + reb_simulation_add(r, pt); + } + + r->heartbeat = heartbeat; + reb_simulation_integrate(r, INFINITY); +} + +void heartbeat(struct reb_simulation* const r){ + if (reb_simulation_output_check(r,10.0*r->dt)){ + reb_simulation_output_timing(r,0); + } +} diff --git a/rebound/source/examples/selfgravity_disc_mpi/Makefile b/rebound/source/examples/selfgravity_disc_mpi/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..970016aec0cf5f8ac3a2faf15230466807c13caa --- /dev/null +++ b/rebound/source/examples/selfgravity_disc_mpi/Makefile @@ -0,0 +1,37 @@ +export OPENGL=0 +export SERVER=0 +export MPI=1 +export CC=mpicc +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/selfgravity_disc_mpi/problem.c b/rebound/source/examples/selfgravity_disc_mpi/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..30881ddf413184fcb009be265dd192e8c6c62991 --- /dev/null +++ b/rebound/source/examples/selfgravity_disc_mpi/problem.c @@ -0,0 +1,94 @@ +/** + * Self-gravitating disc with MPI + * + * A self-gravitating disc is integrated using + * the leap frog integrator. Collisions are not resolved. + * This program makes use of MPI. Note that you need + * to have MPI compilers (mpicc) installed. The code is using + * four root boxes to distribute to particles to one, two + * or four MPI nodes. How to efficiently run this code on + * large clusters goes beyond this simple example and + * almost certainly requires experimentation. + */ +#include +#include +#include +#include +#include +#include "rebound.h" +#include "tools.h" +#include "output.h" + + +void heartbeat(struct reb_simulation* const r); + +int main(int argc, char* argv[]){ + struct reb_simulation* const r = reb_simulation_create(); + // Setup constants + r->integrator = REB_INTEGRATOR_LEAPFROG; + r->gravity = REB_GRAVITY_TREE; + r->boundary = REB_BOUNDARY_OPEN; + r->opening_angle2 = 1.5; // This constant determines the accuracy of the tree code gravity estimate. + r->G = 1; + r->softening = 0.02; // Gravitational softening length + r->dt = 3e-2; // Timestep + const double boxsize = 10.2; + // Setup root boxes for gravity tree. + // Here, we use 2x2=4 root boxes (each with length 'boxsize') + // This allows you to use up to 4 MPI nodes. + reb_simulation_configure_box(r,boxsize,2,2,1); + + // Initialize MPI + // This can only be done after reb_simulation_configure_box. + reb_mpi_init(r); + + // Setup particles only on master node + // In the first timestep, the master node will + // distribute particles to other nodes. + // Note that this is not the most efficient method + // for very large particle numbers. + double disc_mass = 2e-1/r->mpi_num; // Total disc mass + int N = 10000/r->mpi_num; // Number of particles + // Initial conditions + struct reb_particle star = {0}; + star.m = 1; + if (r->mpi_id==0){ + reb_simulation_add(r, star); + } + for (int i=0;iG*mu/a); + pt.vx = vkep * sin(phi); + pt.vy = -vkep * cos(phi); + pt.vz = 0; + pt.m = disc_mass/(double)N; + reb_simulation_add(r, pt); + } + r->heartbeat = heartbeat; + +#ifdef OPENGL + // Hack to artificially increase particle array. + // This cannot be done once OpenGL is activated. + r->N_allocated *=8; + r->particles = realloc(r->particles,sizeof(struct reb_particle)*r->N_allocated); +#endif // OPENGL + + // Start the integration + reb_simulation_integrate(r, INFINITY); + + // Cleanup + reb_mpi_finalize(r); + reb_simulation_free(r); +} + +void heartbeat(struct reb_simulation* const r){ + if (reb_simulation_output_check(r,10.0*r->dt)){ + reb_simulation_output_timing(r,0); + } +} diff --git a/rebound/source/examples/selfgravity_plummer/Makefile b/rebound/source/examples/selfgravity_plummer/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/selfgravity_plummer/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/selfgravity_plummer/problem.c b/rebound/source/examples/selfgravity_plummer/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..63b1e40764ad9388b0b3a67ab69014bb6db62158 --- /dev/null +++ b/rebound/source/examples/selfgravity_plummer/problem.c @@ -0,0 +1,53 @@ +/** + * A self-gravitating Plummer sphere + * + * A self-gravitating Plummer sphere is integrated using + * the leap frog integrator. Collisions are not resolved. Note that the + * fixed timestep might not allow you to resolve individual two-body + * encounters. An alternative integrator is IAS15 which + * comes with adaptive timestepping. + */ +#include +#include +#include +#include "rebound.h" + +void heartbeat(struct reb_simulation* r); + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Start the REBOUND visualization server. This + // allows you to visualize the simulation by pointing + // your web browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup system characteristics + int _N = 100; // Number of particles + double G = 1; // Gravitational constant + double M = 1; // Total mass of the cluster + double R = 1; // Radius of the cluster + double E = 3./64.*M_PI*M*M/R; // Energy of the cluster + double r0 = 16./(3.*M_PI)*R; // Chacateristic length scale + double t0 = r->G*pow(M,5./2.)*pow(4.*E,-3./2.)*(double)_N/log(0.4*(double)_N); // Rellaxation time + printf("Characteristic size: %f\n", r0); + printf("Characteristic time (relaxation): %f\n", t0); + + // Setup constants + r->G = G; + r->integrator = REB_INTEGRATOR_LEAPFROG; + r->dt = 2e-5*t0; // timestep + r->softening = 0.01*r0; // Softening parameter + r->heartbeat = heartbeat; + + reb_simulation_configure_box(r, 20.*r0, 1, 1, 1); + reb_simulation_add_plummer(r, _N, M, R); // Adds particles + reb_simulation_move_to_com(r); + reb_simulation_integrate(r, INFINITY); +} + +void heartbeat(struct reb_simulation* r){ + if (reb_simulation_output_check(r, 10.0*r->dt)){ + reb_simulation_output_timing(r, 0); + } +} diff --git a/rebound/source/examples/shearing_sheet/Makefile b/rebound/source/examples/shearing_sheet/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/shearing_sheet/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/shearing_sheet/problem.c b/rebound/source/examples/shearing_sheet/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..9220f7c81fb9709754fcb9f504ed424426ad4c16 --- /dev/null +++ b/rebound/source/examples/shearing_sheet/problem.c @@ -0,0 +1,107 @@ +/** + * Shearing sheet (Hill's approximation) + * + * This example simulates a small patch of Saturn's + * Rings in shearing sheet coordinates. If you have OpenGL enabled, + * you'll see one copy of the computational domain. Press `g` to see + * the ghost boxes which are used to calculate gravity and collisions. + * Particle properties resemble those found in Saturn's rings. + */ +#include +#include +#include +#include "rebound.h" + +double coefficient_of_restitution_bridges(const struct reb_simulation* const r, double v); +void heartbeat(struct reb_simulation* const r); + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + + // This allows you to connect to the simulation using + // a web browser. Simply go to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->opening_angle2 = .5; // This determines the precission of the tree code gravity calculation. + r->integrator = REB_INTEGRATOR_SEI; + r->boundary = REB_BOUNDARY_SHEAR; + r->gravity = REB_GRAVITY_TREE; + r->collision = REB_COLLISION_TREE; + r->collision_resolve = reb_collision_resolve_hardsphere; + double OMEGA = 0.00013143527; // 1/s + r->ri_sei.OMEGA = OMEGA; + r->G = 6.67428e-11; // N / (1e-5 kg)^2 m^2 + r->softening = 0.1; // m + r->dt = 1e-3*2.*M_PI/OMEGA; // s + r->heartbeat = heartbeat; // function pointer for heartbeat + // This example uses two root boxes in the x and y direction. + // Although not necessary in this case, it allows for the parallelization using MPI. + // See Rein & Liu for a description of what a root box is in this context. + double surfacedensity = 400; // kg/m^2 + double particle_density = 400; // kg/m^3 + double particle_radius_min = 1; // m + double particle_radius_max = 4; // m + double particle_radius_slope = -3; + double boxsize = 100; // m + if (argc>1){ // Try to read boxsize from command line + boxsize = atof(argv[1]); + } + reb_simulation_configure_box(r, boxsize, 2, 2, 1); + r->N_ghost_x = 2; + r->N_ghost_y = 2; + r->N_ghost_z = 0; + + // Initial conditions + printf("Toomre wavelength: %f\n",4.*M_PI*M_PI*surfacedensity/OMEGA/OMEGA*r->G); + // Use Bridges et al coefficient of restitution. + r->coefficient_of_restitution = coefficient_of_restitution_bridges; + // When two particles collide and the relative velocity is zero, the might sink into each other in the next time step. + // By adding a small repulsive velocity to each collision, we prevent this from happening. + r->minimum_collision_velocity = particle_radius_min*OMEGA*0.001; // small fraction of the shear accross a particle + + + // Add all ring paricles + double total_mass = surfacedensity*r->boxsize.x*r->boxsize.y; + double mass = 0; + while(massboxsize.x/2.,r->boxsize.x/2.); + pt.y = reb_random_uniform(r, -r->boxsize.y/2.,r->boxsize.y/2.); + pt.z = reb_random_normal(r, 1.); // m + pt.vx = 0; + pt.vy = -1.5*pt.x*OMEGA; + pt.vz = 0; + pt.ax = 0; + pt.ay = 0; + pt.az = 0; + double radius = reb_random_powerlaw(r, particle_radius_min,particle_radius_max,particle_radius_slope); + pt.r = radius; // m + double particle_mass = particle_density*4./3.*M_PI*radius*radius*radius; + pt.m = particle_mass; // kg + reb_simulation_add(r, pt); + mass += particle_mass; + } + reb_simulation_integrate(r, INFINITY); + reb_simulation_free(r); +} + +// This example is using a custom velocity dependend coefficient of restitution +double coefficient_of_restitution_bridges(const struct reb_simulation* const r, double v){ + // assumes v in units of [m/s] + double eps = 0.32*pow(fabs(v)*100.,-0.234); + if (eps>1) eps=1; + if (eps<0) eps=0; + return eps; +} + +void heartbeat(struct reb_simulation* const r){ + if (reb_simulation_output_check(r, 1e-1*2.*M_PI/r->ri_sei.OMEGA)){ + reb_simulation_output_timing(r, 0); + //reb_output_append_velocity_dispersion("veldisp.txt"); + } + if (reb_simulation_output_check(r, 2.*M_PI/r->ri_sei.OMEGA)){ + //reb_simulation_output_ascii("position.txt"); + } +} + diff --git a/rebound/source/examples/shearing_sheet_2/Makefile b/rebound/source/examples/shearing_sheet_2/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/shearing_sheet_2/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/shearing_sheet_2/problem.c b/rebound/source/examples/shearing_sheet_2/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..88670cb818b9328fd9701a7edaeee5571ec32086 --- /dev/null +++ b/rebound/source/examples/shearing_sheet_2/problem.c @@ -0,0 +1,192 @@ +/** + * Shearing sheet (Akihiko Fujii) + * + * This example is identical to the shearing_sheet + * example but uses a different algorithm for resolving individual + * collisions. In some cases, this might give more realistic results. + * Particle properties resemble those found in Saturn's rings. + * + * In this collision resolve method, particles are displaced if they + * overlap. This example also shows how to implement your own collision + * routine. This is where one could add fragmentation, or merging of + * particles. + */ +#include +#include +#include +#include "rebound.h" + +enum REB_COLLISION_RESOLVE_OUTCOME collision_resolve_hardsphere_pullaway(struct reb_simulation* r, struct reb_collision c); + +double coefficient_of_restitution_bridges(const struct reb_simulation* const r, double v); +void heartbeat(struct reb_simulation* const r); + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + + // Start the REBOUND visualization server. This + // allows you to visualize the simulation by pointing + // your web browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->opening_angle2 = .5; // This determines the precission of the tree code gravity calculation. + r->integrator = REB_INTEGRATOR_SEI; + r->boundary = REB_BOUNDARY_SHEAR; + r->gravity = REB_GRAVITY_TREE; + r->collision = REB_COLLISION_TREE; + r->collision_resolve = collision_resolve_hardsphere_pullaway; + double OMEGA = 0.00013143527; // 1/s + r->ri_sei.OMEGA = OMEGA; + r->G = 6.67428e-11; // N / (1e-5 kg)^2 m^2 + r->softening = 0.1; // m + r->dt = 1e-3*2.*M_PI/OMEGA; // s + r->heartbeat = heartbeat; // function pointer for heartbeat + // This example uses two root boxes in the x and y direction. + // Although not necessary in this case, it allows for the parallelization using MPI. + // See Rein & Liu for a description of what a root box is in this context. + double surfacedensity = 400; // kg/m^2 + double particle_density = 400; // kg/m^3 + double particle_radius_min = 1; // m + double particle_radius_max = 4; // m + double particle_radius_slope = -3; + double boxsize = 100; // m + if (argc>1){ // Try to read boxsize from command line + boxsize = atof(argv[1]); + } + reb_simulation_configure_box(r, boxsize, 2, 2, 1); + r->N_ghost_x = 2; + r->N_ghost_y = 2; + r->N_ghost_z = 0; + + // Initial conditions + printf("Toomre wavelength: %f\n",4.*M_PI*M_PI*surfacedensity/OMEGA/OMEGA*r->G); + // Use Bridges et al coefficient of restitution. + r->coefficient_of_restitution = coefficient_of_restitution_bridges; + // When two particles collide and the relative velocity is zero, the might sink into each other in the next time step. + // By adding a small repulsive velocity to each collision, we prevent this from happening. + r->minimum_collision_velocity = particle_radius_min*OMEGA*0.001; // small fraction of the shear accross a particle + + + // Add all ring paricles + double total_mass = surfacedensity*r->boxsize.x*r->boxsize.y; + double mass = 0; + while(massboxsize.x/2.,r->boxsize.x/2.); + pt.y = reb_random_uniform(r, -r->boxsize.y/2.,r->boxsize.y/2.); + pt.z = reb_random_normal(r, 1.); // m + pt.vy = -1.5*pt.x*OMEGA; + double radius = reb_random_powerlaw(r, particle_radius_min,particle_radius_max,particle_radius_slope); + pt.r = radius; // m + double particle_mass = particle_density*4./3.*M_PI*radius*radius*radius; + pt.m = particle_mass; // kg + reb_simulation_add(r, pt); + mass += particle_mass; + } + reb_simulation_integrate(r, INFINITY); +} + +// This example is using a custom velocity dependend coefficient of restitution +double coefficient_of_restitution_bridges(const struct reb_simulation* const r, double v){ + // assumes v in units of [m/s] + double eps = 0.32*pow(fabs(v)*100.,-0.234); + if (eps>1) eps=1; + if (eps<0) eps=0; + return eps; +} + +void heartbeat(struct reb_simulation* const r){ + if (reb_simulation_output_check(r, 1e-3*2.*M_PI/r->ri_sei.OMEGA)){ + reb_simulation_output_timing(r, 0); + //reb_output_append_velocity_dispersion("veldisp.txt"); + } + if (reb_simulation_output_check(r, 2.*M_PI/r->ri_sei.OMEGA)){ + //reb_simulation_output_ascii("position.txt"); + } +} + +// Function written by Akihiko Fujii +enum REB_COLLISION_RESOLVE_OUTCOME collision_resolve_hardsphere_pullaway(struct reb_simulation* r, struct reb_collision c){ + struct reb_particle* particles = r->particles; + struct reb_particle p1 = particles[c.p1]; + struct reb_particle p2 = particles[c.p2]; + struct reb_vec6d gb = c.gb; + double x21 = p1.x + gb.x - p2.x; + double y21 = p1.y + gb.y - p2.y; + double z21 = p1.z + gb.z - p2.z; + double _r = sqrt(x21*x21 + y21*y21 + z21*z21); + /* double r21 = sqrt(x21*x21 + y21*y21 + z21*z21); */ + double rp = p1.r+p2.r; + + if (rp*rp < x21*x21 + y21*y21 + z21*z21) return 0; + + double vx21 = p1.vx + gb.vx - p2.vx; + double vy21 = p1.vy + gb.vy - p2.vy; + double vz21 = p1.vz + gb.vz - p2.vz; + + if (vx21*x21 + vy21*y21 + vz21*z21 >0) return 0; // not approaching + + // Bring the to balls in the xy plane. + // NOTE: this could probabely be an atan (which is faster than atan2) + double theta = atan2(z21,y21); + double stheta = sin(theta); + double ctheta = cos(theta); + double vy21n = ctheta * vy21 + stheta * vz21; + double y21n = ctheta * y21 + stheta * z21; + + // Bring the two balls onto the positive x axis. + double phi = atan2(y21n,x21); + double cphi = cos(phi); + double sphi = sin(phi); + double vx21nn = cphi * vx21 + sphi * vy21n; + double vy21nn = -sphi* vx21 + cphi * vy21n; + + // Coefficient of restitution + double eps= r->coefficient_of_restitution(r, vx21nn); + double dvx2 = -(1.0+eps)*vx21nn; + double dvy2 = (_r/rp-1.)*vy21nn; + + double minr = (p1.r>p2.r)?p2.r:p1.r; + double maxr = (p1.rminimum_collision_velocity; + mindv *= 1.-(_r - maxr)/minr; + if (mindv>maxr*r->minimum_collision_velocity)mindv = maxr*r->minimum_collision_velocity; + if (dvx2t; + particles[c.p2].x -= p1pf*dxx2n; + particles[c.p2].y -= p1pf*dxy2nn; + particles[c.p2].z -= p1pf*dxz2nn; + + + particles[c.p1].vx += p2pf*dvx2n; + particles[c.p1].vy += p2pf*dvy2nn; + particles[c.p1].vz += p2pf*dvz2nn; + particles[c.p1].x += p2pf*dxx2n; + particles[c.p1].y += p2pf*dxy2nn; + particles[c.p1].z += p2pf*dxz2nn; + + particles[c.p1].last_collision = r->t; + + return REB_COLLISION_RESOLVE_OUTCOME_REMOVE_NONE; // Do not remove any particle +} + diff --git a/rebound/source/examples/shearing_sheet_diagnostics/Makefile b/rebound/source/examples/shearing_sheet_diagnostics/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/shearing_sheet_diagnostics/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/shearing_sheet_diagnostics/problem.c b/rebound/source/examples/shearing_sheet_diagnostics/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..7d6b0193c00115eb54bcc25126ee1656869e7f4d --- /dev/null +++ b/rebound/source/examples/shearing_sheet_diagnostics/problem.c @@ -0,0 +1,172 @@ +/** + * Shearing sheet with diagnostics + * + * This example simulates a small patch of Saturn's + * Rings in shearing sheet coordinates. It also calculated + * various quantities which can be used as diagnostics for + * dynamical models of the rings. Diagnostics include + * the midplane filling factor, the mean normal optical + * depth, the velocity dispersion tensor, the + * translational viscosity and the collisional viscosity. + */ + +#include +#include +#include +#include "rebound.h" + +// This example is using a custom velocity dependend coefficient of restitution +double coefficient_of_restitution_bridges(const struct reb_simulation* const r, double v){ + // assumes v in units of [m/s] + double eps = 0.32*pow(fabs(v)*100.,-0.234); + if (eps>1) eps=1; + if (eps<0) eps=0; + return eps; +} + +void heartbeat(struct reb_simulation* const r); + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + + // Start the REBOUND visualization server. This + // allows you to visualize the simulation by pointing + // your web browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->opening_angle2 = .5; // This determines the precission of the tree code gravity calculation. + r->integrator = REB_INTEGRATOR_SEI; + r->boundary = REB_BOUNDARY_SHEAR; + r->gravity = REB_GRAVITY_TREE; + r->collision = REB_COLLISION_TREE; + r->collision_resolve = reb_collision_resolve_hardsphere; + double OMEGA = 0.00013143527; // 1/s + r->ri_sei.OMEGA = OMEGA; + r->G = 6.67428e-11; // N / (1e-5 kg)^2 m^2 + r->softening = 0.1; // m + r->dt = 1e-3*2.*M_PI/OMEGA; // s + r->heartbeat = heartbeat; // function pointer for callbacks after every timestep + // This example uses two root boxes in the x and y direction. + // Although not necessary in this case, it allows for the parallelization using MPI. + // See Rein & Liu for a description of what a root box is in this context. + double surfacedensity = 400; // kg/m^2 + double particle_density = 400; // kg/m^3 + double particle_radius_min = 1; // m + double particle_radius_max = 4; // m + double particle_radius_slope = -3; + double boxsize = 100; // m + reb_simulation_configure_box(r, boxsize, 2, 2, 1); + r->N_ghost_x = 2; + r->N_ghost_y = 2; + r->N_ghost_z = 0; + + // Use Bridges et al coefficient of restitution. + r->coefficient_of_restitution = coefficient_of_restitution_bridges; + // When two particles collide and the relative velocity is zero, the might sink into each other in the next time step. + // By adding a small repulsive velocity to each collision, we prevent this from happening. + r->minimum_collision_velocity = particle_radius_min*OMEGA*0.001; // small fraction of the shear accross a particle + + + // Add all ring paricles + double total_mass = surfacedensity*r->boxsize.x*r->boxsize.y; + double mass = 0; + while(massboxsize.x/2.,r->boxsize.x/2.); + pt.y = reb_random_uniform(r, -r->boxsize.y/2.,r->boxsize.y/2.); + pt.z = reb_random_normal(r, 1.); // m + pt.vx = 0; + pt.vy = -1.5*pt.x*OMEGA; + pt.vz = 0; + pt.ax = 0; + pt.ay = 0; + pt.az = 0; + double radius = reb_random_powerlaw(r, particle_radius_min,particle_radius_max,particle_radius_slope); + pt.r = radius; // m + double particle_mass = particle_density*4./3.*M_PI*radius*radius*radius; + pt.m = particle_mass; // kg + reb_simulation_add(r, pt); + mass += particle_mass; + } + reb_simulation_integrate(r, INFINITY); +} + +double mean_normal_geometric_optical_depth(const struct reb_simulation* const r){ + double area = 0.; + for (int i=0;iN;i++){ + struct reb_particle p = r->particles[i]; + area += M_PI*p.r*p.r; + } + return area/(r->boxsize.x*r->boxsize.y); +} + +double midplane_fillingfactor(const struct reb_simulation* const r){ + double area = 0.; + for (int i=0;iN;i++){ + struct reb_particle p = r->particles[i]; + double R2 = p.r*p.r-p.z*p.z; + if (R2>0.){ + area += M_PI*R2; + } + } + return area/(r->boxsize.x*r->boxsize.y); +} + +struct reb_vec3d velocity_dispersion(const struct reb_simulation* const r){ + // Algorithm with reduced roundoff errors (see wikipedia) + // Note: Average velocities relative to shear (stored in A) are not returned + struct reb_vec3d A = {.x=0, .y=0, .z=0}; + struct reb_vec3d Q = {.x=0, .y=0, .z=0}; + for (int i=0;iN;i++){ + struct reb_vec3d Aim1 = A; + struct reb_particle p = r->particles[i]; + A.x = A.x + (p.vx-A.x)/(double)(i+1); + A.y = A.y + (p.vy+1.5*r->ri_sei.OMEGA*p.x-A.y)/(double)(i+1); + A.z = A.z + (p.vz-A.z)/(double)(i+1); + Q.x = Q.x + (p.vx-Aim1.x)*(p.vx-A.x); + Q.y = Q.y + (p.vy+1.5*r->ri_sei.OMEGA*p.x-Aim1.y)*(p.vy+1.5*r->ri_sei.OMEGA*p.x-A.y); + Q.z = Q.z + (p.vz-Aim1.z)*(p.vz-A.z); + } + Q.x = sqrt(Q.x/(double)r->N); + Q.y = sqrt(Q.y/(double)r->N); + Q.z = sqrt(Q.z/(double)r->N); + + // Return velocity dispersion in xx, yy, zz + return Q; +} + +double translational_viscosity(const struct reb_simulation* const r){ + double Wxy = 0.; + for (int i=0;iN;i++){ + struct reb_particle p = r->particles[i]; + double vx = p.vx; + double vy = p.vy+1.5*r->ri_sei.OMEGA*p.x; + Wxy += vx*vy; + } + return 2./3.*Wxy/r->N/r->ri_sei.OMEGA; +} + +double collisional_viscosity(const struct reb_simulation* const r){ + // This is a time average! + // To reset, set r->collisions_plog equal to 0. + double Mtotal = 0.; + for (int i=0;iN;i++){ + Mtotal += r->particles[i].m; + } + return 2./3./r->ri_sei.OMEGA/Mtotal/r->t* r->collisions_plog; +} + +void heartbeat(struct reb_simulation* const r){ + if (reb_simulation_output_check(r, 1e-3*2.*M_PI/r->ri_sei.OMEGA)){ + printf("Midplane FF= %5.3f\t",midplane_fillingfactor(r)); + printf("Mean normal tau= %5.3f \t",mean_normal_geometric_optical_depth(r)); + struct reb_vec3d Q = velocity_dispersion(r); + printf(",,= %5.3e %5.3e %5.3e\t",Q.x, Q.y, Q.z); + printf("nu_trans= %5.3e\t",translational_viscosity(r)); + printf("nu_col= %5.3e\t",collisional_viscosity(r)); + + printf("\n"); + } +} + diff --git a/rebound/source/examples/shearing_sheet_mpi/Makefile b/rebound/source/examples/shearing_sheet_mpi/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..6b77e7b38012cf1172c2dbc616531a8b9614c1bb --- /dev/null +++ b/rebound/source/examples/shearing_sheet_mpi/Makefile @@ -0,0 +1,33 @@ +export OPENGL=0 +export SERVER=0 +export MPI=1 +export CC=mpicc +include ../../src/Makefile.defs + +all: librebound + @echo "" + @echo "Compiling problem file ..." + $(CC) -I../../src/ -Wl,-rpath,./ $(OPT) $(PREDEF) problem.c -L. -lrebound $(LIB) -o rebound + @echo "" + @echo "REBOUND compiled successfully." + +librebound: + @echo "Compiling shared library librebound.so ..." + $(MAKE) -C ../../src/ + @-rm -f librebound.so + @ln -s ../../src/librebound.so . + +clean: + @echo "Cleaning up shared library librebound.so ..." + @-rm -f librebound.so + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-rm -vf rebound + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/shearing_sheet_mpi/problem.c b/rebound/source/examples/shearing_sheet_mpi/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..17b16fd9625e079bf8f6bc191db88f54393aa777 --- /dev/null +++ b/rebound/source/examples/shearing_sheet_mpi/problem.c @@ -0,0 +1,122 @@ +/** + * Shearing sheet with MPI + * + * This example simulates a small patch of Saturn's + * Rings in shearing sheet coordinates. The code can use MPI + * to distribute the work of the gravity and collision modules + * to other nodes. You can enable OpenGL with MPI, but this + * is a feature that might not work in all environments. + * You can turn on OpenGL in the Makefile. + * How to configure and submit an MPI job varies significantly + * depending on your cluster architecture. To test MPI on your + * local computer, simply type make && mpirun -np 4 rebound. + */ +#include +#include +#include +#include +#include "rebound.h" + +double coefficient_of_restitution_bridges(const struct reb_simulation* const r, double v); +void heartbeat(struct reb_simulation* const r); + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + // Setup constants + r->opening_angle2 = .5; // This determines the precission of the tree code gravity calculation. + r->integrator = REB_INTEGRATOR_SEI; + r->boundary = REB_BOUNDARY_SHEAR; + r->gravity = REB_GRAVITY_TREE; + r->collision = REB_COLLISION_TREE; + r->collision_resolve = reb_collision_resolve_hardsphere; + double OMEGA = 0.00013143527; // 1/s + r->ri_sei.OMEGA = OMEGA; + r->G = 6.67428e-11; // N / (1e-5 kg)^2 m^2 + r->softening = 0.1; // m + r->dt = 1e-3*2.*M_PI/OMEGA; // s + r->heartbeat = heartbeat; // function pointer for heartbeat + // This example uses two root boxes in the x and y direction. + // Although not necessary in this case, it allows for the parallelization using MPI. + // See Rein & Liu for a description of what a root box is in this context. + double surfacedensity = 400; // kg/m^2 + double particle_density = 400; // kg/m^3 + double particle_radius_min = 1; // m + double particle_radius_max = 4; // m + double particle_radius_slope = -3; + double boxsize = 100; // m + if (argc>1){ // Try to read boxsize from command line + boxsize = atof(argv[1]); + } + // Setup 2x2 root boxes. + // This allows you to use up to 4 MPI nodes. + reb_simulation_configure_box(r, boxsize, 2, 2, 1); + // Initialize MPI (this only works after reb_simulation_configure_box) + reb_mpi_init(r); + r->N_ghost_x = 2; + r->N_ghost_y = 2; + r->N_ghost_z = 0; + + // Initial conditions + printf("Toomre wavelength: %f\n",4.*M_PI*M_PI*surfacedensity/OMEGA/OMEGA*r->G); + // Use Bridges et al coefficient of restitution. + r->coefficient_of_restitution = coefficient_of_restitution_bridges; + // When two particles collide and the relative velocity is zero, the might sink into each other in the next time step. + // By adding a small repulsive velocity to each collision, we prevent this from happening. + r->minimum_collision_velocity = particle_radius_min*OMEGA*0.001; // small fraction of the shear accross a particle + + + // Add all ring paricles + double total_mass = surfacedensity*r->boxsize.x*r->boxsize.y/r->mpi_num; + double mass = 0; + while(massboxsize.x/2.,r->boxsize.x/2.); + pt.y = reb_random_uniform(r, -r->boxsize.y/2.,r->boxsize.y/2.); + pt.z = reb_random_normal(r, 1.); // m + pt.vx = 0; + pt.vy = -1.5*pt.x*OMEGA; + pt.vz = 0; + pt.ax = 0; + pt.ay = 0; + pt.az = 0; + double radius = reb_random_powerlaw(r, particle_radius_min,particle_radius_max,particle_radius_slope); + pt.r = radius; // m + double particle_mass = particle_density*4./3.*M_PI*radius*radius*radius; + pt.m = particle_mass; // kg + reb_simulation_add(r, pt); + mass += particle_mass; + } +#ifdef OPENGL + // Hack to artificially increase particle array. + // This cannot be done once OpenGL is activated. + r->N_allocated *=8; + r->particles = realloc(r->particles,sizeof(struct reb_particle)*r->N_allocated); +#endif // OPENGL + + // Start the integration + reb_simulation_integrate(r, INFINITY); + + // Cleanup + reb_mpi_finalize(r); + reb_simulation_free(r); +} + +// This example is using a custom velocity dependend coefficient of restitution +double coefficient_of_restitution_bridges(const struct reb_simulation* const r, double v){ + // assumes v in units of [m/s] + double eps = 0.32*pow(fabs(v)*100.,-0.234); + if (eps>1) eps=1; + if (eps<0) eps=0; + return eps; +} + +void heartbeat(struct reb_simulation* const r){ + if (reb_simulation_output_check(r, 1e-3*2.*M_PI/r->ri_sei.OMEGA)){ + reb_simulation_output_timing(r, 0); + //reb_output_append_velocity_dispersion("veldisp.txt"); + } + if (reb_simulation_output_check(r, 2.*M_PI/r->ri_sei.OMEGA)){ + //reb_simulation_output_ascii("position.txt"); + } +} + diff --git a/rebound/source/examples/simplest/Makefile b/rebound/source/examples/simplest/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/simplest/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/simplest/problem.c b/rebound/source/examples/simplest/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..231d5be474342ef4ef9299ec8c4573846e22be27 --- /dev/null +++ b/rebound/source/examples/simplest/problem.c @@ -0,0 +1,46 @@ +/** + * A very simple test problem + * + * We first create a REBOUND simulation, then we add + * two particles and integrate the system until infinity. + * You can cancel the simulation by pressing CTRL-C + * or `q` when the visualization is enabled. + */ +#include "rebound.h" +#include +#include + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + + // Starting the REBOUND visualization server. This + // allows you to visualize the simulation by pointing + // your web browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + reb_simulation_add_fmt(r, "m", 1.); // Central object + reb_simulation_add_fmt(r, "m a e", 1e-3, 1., 0.1); // Jupiter mass planet + reb_simulation_add_fmt(r, "a e", 1.4, 0.1); // Massless test particle + + // First integrate for 100 time units. + reb_simulation_integrate(r,100.); + + // Then output some coordinates and orbital elements. + for (int i=0; iN; i++){ + struct reb_particle p = r->particles[i]; + printf("%f %f %f\n", p.x, p.y, p.z); + } + struct reb_particle primary = r->particles[0]; + for (int i=1; iN; i++){ + struct reb_particle p = r->particles[i]; + struct reb_orbit o = reb_orbit_from_particle(r->G, p, primary); + printf("%f %f %f\n", o.a, o.e, o.f); + } + + // Then keep running forever. + reb_simulation_integrate(r, INFINITY); + + // Cleanup + reb_simulation_free(r); +} + diff --git a/rebound/source/examples/simulationarchive/Makefile b/rebound/source/examples/simulationarchive/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/simulationarchive/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/simulationarchive/problem.c b/rebound/source/examples/simulationarchive/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..a739861b67791cab42736a8b8707dcde3ef7c37a --- /dev/null +++ b/rebound/source/examples/simulationarchive/problem.c @@ -0,0 +1,62 @@ +/** + * Simulationarchive + * + * This example shows how to use the Simulationarchive. + * We integrate a two planet system forward in time using + * the WHFast integrator. The simulation can be interrupted + * at any time. On the next run, the program will try to reload + * the latest data from the Simulationarchive. + */ + +#include +#include +#include +#include +#include "rebound.h" + + +int main(int argc, char* argv[]) { + char* filename = "simulationarchive.bin"; + + // Trying to open a Simulationarchive file + struct reb_simulationarchive* sa = reb_simulationarchive_create_from_file(filename); + if (sa==NULL){ + printf("Can not open file.\n"); + } + // Get a simulation from the file (if possible, otherwise NULL is returned) + struct reb_simulation* r = reb_simulation_create_from_simulationarchive(sa,-1); + // Whenever you've opened a Simulationarchive and don't need it anymore, close it. + reb_simulationarchive_free(sa); + // Check if we were successful + if (r==NULL){ + printf("No simulationarchive found. Creating new simulation.\n"); + r= reb_simulation_create(); + reb_simulation_add_fmt(r, "m", 1.0); // star + reb_simulation_add_fmt(r, "m a e", 1e-3, 1.0, 0.01); // planet 1 + reb_simulation_add_fmt(r, "m a e", 1e-3, 2.3, 0.01); // planet 2 + reb_simulation_move_to_com(r); + r->dt = 6./365.25*2.*M_PI; // 6 days in units where G=1 + r->ri_whfast.safe_mode = 0; // The Simulationarchive works with both safe_mode on and off + r->ri_whfast.corrector = 5; + r->integrator = REB_INTEGRATOR_WHFAST; + }else{ + printf("Found simulationarchive. Loaded snapshot at t=%.16f.\n",r->t); + } + + // Automatically create a snapshot every 100 time units + reb_simulation_save_to_file_interval(r,filename,100.); + // Alternatively, you can also create a snapshot every 5 seconds (walltime) + //reb_simulation_save_to_file_walltime(r,filename,5.); + + // Run the integration (this will be very quick in this example) + reb_simulation_integrate(r, r->t+2000); // integrate (a little further than where we currently are) + printf("Final time: %f\n",r->t); + + // You can also manually append a snapshot + reb_simulation_save_to_file(r,filename); + + // Free the simulation to free up memory + reb_simulation_free(r); +} + + diff --git a/rebound/source/examples/simulationarchive_fields/Makefile b/rebound/source/examples/simulationarchive_fields/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..c4652ace88e24b10d3d2eaf70ebbe288d794089c --- /dev/null +++ b/rebound/source/examples/simulationarchive_fields/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=0# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/simulationarchive_fields/problem.c b/rebound/source/examples/simulationarchive_fields/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..197c79b40758659d924f65947119427332ffec19 --- /dev/null +++ b/rebound/source/examples/simulationarchive_fields/problem.c @@ -0,0 +1,255 @@ +/** + * Simulationarchive Fields + * + * This program outputs all fields of a Simulationarchive + * in human readable form. Note that the output can be extensive + * for large files. This is only intended for debugging and to + * illustrate the nature of the binary file system. + * + */ +#include +#include +#include +#include "rebound.h" + +#define ifprintf(...) if (blob_index==blob_requested || blob_requested == -1) {printf(__VA_ARGS__);} +#define CASE(DT) {\ + case DT:\ + ifprintf("\tdtype: " #DT "\n");\ + break;\ +} + +// Old 16 bit offsets. Used only to read old files. +struct reb_simulationarchive_blob16 { + int32_t index; + int16_t offset_prev; + int16_t offset_next; +}; + +void print_particle(struct reb_particle v, char* padding){ + printf("%sx=%.16g y=%.16g z=%.16g\n", padding, v.x, v.y, v.z); + printf("%svx=%.16g vy=%.16g vz=%.16g\n", padding, v.vx, v.vy, v.vz); + printf("%sax=%.16g ay=%.16g az=%.16g\n", padding, v.ax, v.ay, v.az); + printf("%sm=%.16g r=%.16g\n", padding, v.m, v.r); + printf("%slast_collision=%.16g hash=%d\n", padding, v.last_collision, v.hash); +} + +int main(int argc, char* argv[]) { + if (argc<2 || argc > 3){ + printf("Usage: rebound filename [snapshot]\n"); + printf("If snapshot is not given, then all snapshots are dumped.\n"); + return 1; + } + int32_t blob_index = 0; + int32_t blob_requested = -1; + if (argc==3){ + blob_requested = atoi(argv[2]); + } + + FILE* sa = fopen(argv[1], "rb"); + if (!sa){ + printf("Error opening file \"%s\"\n", argv[1]); + return 1; + } + + + int uses32bitoffsets = 1; + struct reb_binary_field field = {0}; + struct reb_simulationarchive_blob blob = {0}; + struct reb_binary_field_descriptor fd_header = reb_binary_field_descriptor_for_name("header"); + struct reb_binary_field_descriptor fd_particles = reb_binary_field_descriptor_for_name("particles"); + struct reb_binary_field_descriptor fd_ri_whfast_p_jh = reb_binary_field_descriptor_for_name("ri_whfast.p_jh"); + struct reb_binary_field_descriptor fd_end = reb_binary_field_descriptor_for_name("end"); + + + printf("==== START OF FILE ====\n"); + do{ + ifprintf("==== START OF BLOB[%d] ====\n", blob_index); + do{ + int didReadField = (int)fread(&field,sizeof(struct reb_binary_field),1,sa); + if (!didReadField){ + printf("ERROR. Unable to read from file.\n"); + return 1; + } + struct reb_binary_field_descriptor fd = reb_binary_field_descriptor_for_type(field.type); + if (field.type == fd_end.type){ + ifprintf("FIELD\n"); + ifprintf("\tname: %s\n", fd.name); + ifprintf("\ttype: %d\n", fd.type); + ifprintf("\tsize: %llu bytes\n", field.size); + }else if (field.type == fd_header.type){ + // Input header. + const int64_t bufsize = 64 - sizeof(struct reb_binary_field); + char readbuf[64]; + fread(readbuf,sizeof(char),bufsize,sa); + printf("HEADER\n"); + // Finding version_major/version_minor version + int c1=0, c2=0, c3=0; + for (int c=0; c\n"); + break; + } + + switch (fd.dtype){ + case REB_DOUBLE: + { + double v; + fread(&v,field.size,1,sa); + ifprintf("\tvalue: %.16g\n",v); + } + break; + case REB_INT: + { + int v; + fread(&v,field.size,1,sa); + ifprintf("\tvalue: %d\n",v); + } + break; + case REB_UINT: + { + unsigned int v; + fread(&v,field.size,1,sa); + ifprintf("\tvalue: %d\n",v); + } + break; + case REB_UINT32: + { + uint32_t v; + fread(&v,field.size,1,sa); + ifprintf("\tvalue: %d\n",v); + } + break; + case REB_INT64: + { + int64_t v; + fread(&v,field.size,1,sa); + ifprintf("\tvalue: %lld\n",v); + } + break; + case REB_UINT64: + { + uint64_t v; + fread(&v,field.size,1,sa); + ifprintf("\tvalue: %llu\n",v); + } + break; + case REB_VEC3D: + { + struct reb_vec3d v; + fread(&v,field.size,1,sa); + ifprintf("\tvalue: x=%.16g y=%.16g z=%.16g\n",v.x, v.y, v.z); + } + break; + case REB_PARTICLE: + { + struct reb_particle v; + fread(&v,field.size,1,sa); + print_particle(v, "value:\t"); + print_particle(v, "\t\t"); + } + break; + case REB_POINTER: + if (field.type == fd_particles.type || field.type == fd_ri_whfast_p_jh.type){ + ifprintf("\tvalue: \n"); + int N = field.size/sizeof(struct reb_particle); + struct reb_particle* vp = malloc(field.size); + if (blob_index==blob_requested || blob_requested == -1) { + fread(vp,field.size,1,sa); + for (int i=0; i\n"); + fseek(sa,field.size,SEEK_CUR); + } + break; + default: + ifprintf("\tvalue: \n"); + fseek(sa,field.size,SEEK_CUR); + break; + } + + } + }while(field.type!=fd_end.type); + int r3=0; + if (uses32bitoffsets){ + r3 = fread(&blob, sizeof(struct reb_simulationarchive_blob), 1, sa); + }else{ + // Workaround for versions < 3.18 + struct reb_simulationarchive_blob16 blob16 = {0}; + r3 = fread(&blob16, sizeof(struct reb_simulationarchive_blob16), 1, sa); + blob.index = blob16.index; + blob.offset_prev = blob16.offset_prev; + blob.offset_next = blob16.offset_next; + } + if (!r3){ + printf("ERROR. Unable to read next blob from file.\n"); + return 1; + } + ifprintf("BLOB[%d]\n", blob_index); + ifprintf("\tindex: %d\n", blob.index); + ifprintf("\toffset_prev: %d bytes\n", blob.offset_prev); + ifprintf("\toffset_next: %d bytes\n", blob.offset_next); + blob_index++; + }while(blob.offset_next!=0); + printf("==== END OF FILE ====\n"); + + fclose(sa); + return 0; +} diff --git a/rebound/source/examples/simulationarchive_viewer/Makefile b/rebound/source/examples/simulationarchive_viewer/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..b67fc4d9df80bb5232338801ce6037198a418358 --- /dev/null +++ b/rebound/source/examples/simulationarchive_viewer/Makefile @@ -0,0 +1,35 @@ +export OPENGL=1# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/simulationarchive_viewer/problem.c b/rebound/source/examples/simulationarchive_viewer/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..af8e570546a08f0e7d2c192dfda35b31808f1b73 --- /dev/null +++ b/rebound/source/examples/simulationarchive_viewer/problem.c @@ -0,0 +1,102 @@ +/** + * Simulationarchive Viewer + * + * This example allows you load in a Simulationarchive and visualize it. + * You can use the keyboard to step through the individual snapshots. + * It work with the web-based visualization as well as with OpenGL. + * + */ +#include +#include +#include +#include "rebound.h" + +struct reb_simulationarchive* sa; +void heartbeat(struct reb_simulation* const r); + +int64_t current_snapshot = 0; + +int key_callback(struct reb_simulation* r, int key){ + switch (key){ + case 262: // right arrow + current_snapshot++; + break; + case 263: // left arrow + current_snapshot--; + break; + case 268: // home + current_snapshot = 0; + break; + case 269: // end + current_snapshot = sa->nblobs - 1; + break; + case 266: // page up + current_snapshot -= 10; + break; + case 267: // page down + current_snapshot += 10; + break; + default: // unknown key + return 0; // check default keys + } + + // Update simulation + if (current_snapshot < 0){ + current_snapshot = 0; + } + if (current_snapshot >= sa->nblobs){ + current_snapshot = sa->nblobs - 1; + } + r->status = REB_STATUS_SUCCESS; // will trigger reb_simulation_integrate to exit + return 1; +} + +int main(int argc, char* argv[]) { + if (argc!=2){ + printf("Usage: rebound simulationarchive.bin\n"); + return 1; + } + sa = reb_simulationarchive_create_from_file(argv[1]); + if (!sa){ + printf("Error loading Simulationarchive from file `%s`.\n",argv[1]); + return 1; + } + + printf("Simulationarchive loaded from file `%s`.\n",argv[1]); + printf("Number of snapshots: %lld.\n", sa->nblobs); + printf("You can step through the Simulationarchive using the following keys in the visualization window:\n"); + printf(" Right arrow: jump to next snapshot\n"); + printf(" Left arrow: jump to previous snapshot\n"); + printf(" Page down: jump 10 snapshots foward\n"); + printf(" Page up: jump 10 snapshots backward\n"); + printf(" Home key: jump to first snapshot\n"); + printf(" End key: jump to last snapshot\n\n"); + + while(1){ + printf("Loading snapshot %lld.\n", current_snapshot); + struct reb_simulation* r = reb_simulation_create_from_simulationarchive(sa, current_snapshot); + if (!r){ + printf("Error loading Simulation from Simulationarchive.\n"); + return 1; + } + + r->key_callback = key_callback; + r->status = REB_STATUS_PAUSED; + + // This allows you to connect to the simulation using + // a web browser by pointing it to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Not actually integrating because simulation is paused. + reb_simulation_integrate(r, INFINITY); + + if (r->status > 0){ // quit + reb_simulation_free(r); + break; + } + + reb_simulation_free(r); + } + reb_simulationarchive_free(sa); + return 0; +} diff --git a/rebound/source/examples/solar_system/Makefile b/rebound/source/examples/solar_system/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/solar_system/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/solar_system/problem.c b/rebound/source/examples/solar_system/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..1920dbc8eeb5c6833786a24ca8c090bd6f8bdc47 --- /dev/null +++ b/rebound/source/examples/solar_system/problem.c @@ -0,0 +1,101 @@ +/** + * Solar System + * + * This example integrates all planets of the Solar + * System. The data comes from the NASA HORIZONS system. + */ +#include +#include +#include +#include "rebound.h" + +double ss_pos[10][3] = +{ + {3.256101656448802E-03 , -1.951205394420489E-04 , -1.478264728548705E-04}, + {-1.927589645545195E-01 , 2.588788361485397E-01 , 3.900432597062033E-02 }, + {-5.976537074581466E-01 , 3.918678996109574E-01 , 3.990356741282203E-02 }, + {-7.986189029000561E-01 , -6.086873314992410E-01 , -1.250824315650566E-04}, + {7.897942807177173E-01 , 1.266671734964037E+00 , 7.092292179885432E-03 }, + {-4.314503046344270E+00 , 3.168094294126697E+00 , 8.331048545353310E-02 }, + {-4.882304833383455E+00 , -8.689263067189865E+00 , 3.453930436208210E-01 }, + {1.917757033372740E+01 , 5.671738750949031E+00 , -2.273858614425555E-01}, + {2.767031517959636E+01 , -1.150331645280942E+01 , -4.008018419157927E-01}, + {7.765250227278298E+00 , -3.190996242617413E+01 , 1.168394015703735E+00 }, + +}; +double ss_vel[10][3] = +{ + {3.039963463108432E-06 , 6.030576499910942E-06 , -7.992931269075703E-08}, + {-2.811550184725887E-02, -1.586532995282261E-02, 1.282829413699522E-03 }, + {-1.113090630745269E-02, -1.703310700277280E-02, 4.089082927733997E-04 }, + {1.012305635253317E-02 , -1.376389620972473E-02, 3.482505080431706E-07 }, + {-1.135279609707971E-02, 8.579013475676980E-03 , 4.582774369441005E-04 }, + {-4.555986691913995E-03, -5.727124269621595E-03, 1.257262404884127E-04 }, + {4.559352462922572E-03 , -2.748632232963112E-03, -1.337915989241807E-04}, + {-1.144087185031310E-03, 3.588282323722787E-03 , 2.829006644043203E-05 }, + {1.183702780101068E-03 , 2.917115980784960E-03 , -8.714411604869349E-05}, + {3.112825364672655E-03 , 1.004673400082409E-04 , -9.111652976208292E-04}, +}; + +double ss_mass[10] = +{ + 1.988544e30, + 3.302e23, + 48.685e23, + 6.0477246e24, + 6.4185e23, + 1898.13e24, + 5.68319e26, + 86.8103e24, + 102.41e24, + 1.4639248e+22, +}; + +void heartbeat(struct reb_simulation* r); +double e_init; +double tmax; + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Starting the REBOUND visualization server. This + // allows you to visualize the simulation by pointing + // your web browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->dt = 4; // in days + tmax = 7.3e10; // 200 Myr + r->G = 1.4880826e-34; // in AU^3 / kg / day^2. + r->ri_whfast.safe_mode = 0; // Turn off safe mode. Need to call reb_simulation_synchronize() before outputs. + r->ri_whfast.corrector = 11; // 11th order symplectic corrector + r->integrator = REB_INTEGRATOR_WHFAST; + r->heartbeat = heartbeat; + r->exact_finish_time = 1; // Finish exactly at tmax in reb_simulation_integrate(). Default is already 1. + //r->integrator = REB_INTEGRATOR_IAS15; // Alternative non-symplectic integrator + + // Initial conditions + for (int i=0;i<10;i++){ + struct reb_particle p = {0}; + p.x = ss_pos[i][0]; p.y = ss_pos[i][1]; p.z = ss_pos[i][2]; + p.vx = ss_vel[i][0]; p.vy = ss_vel[i][1]; p.vz = ss_vel[i][2]; + p.m = ss_mass[i]; + reb_simulation_add(r, p); + } + reb_simulation_move_to_com(r); + e_init = reb_simulation_energy(r); + remove("energy.txt"); + reb_simulation_integrate(r, tmax); +} + +void heartbeat(struct reb_simulation* r){ + if (reb_simulation_output_check(r, 10000.)){ + reb_simulation_output_timing(r, tmax); + reb_simulation_synchronize(r); + FILE* f = fopen("energy.txt","ab"); + double e = reb_simulation_energy(r); + fprintf(f,"%e %e\n",r->t, fabs((e-e_init)/e_init)); + fclose(f); + } +} + diff --git a/rebound/source/examples/solar_system_with_testparticles/Makefile b/rebound/source/examples/solar_system_with_testparticles/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/solar_system_with_testparticles/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/solar_system_with_testparticles/problem.c b/rebound/source/examples/solar_system_with_testparticles/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..2f359e96e6e06dd70a49514acad5e9a00dc2dfdb --- /dev/null +++ b/rebound/source/examples/solar_system_with_testparticles/problem.c @@ -0,0 +1,57 @@ +/** + * Solar System with test particles + * + * This example integrates all planets of the Solar + * System and 10000 test particles. The initial data comes + * from the NASA HORIZONS system and was saved to + * a binary file beforehand. The integrator used is WHFast + * with a 4 day timestep. Note that close encounters are + * not resolved. The OpenMP speedup you get depends on the + * compiler and CPU that you are using. + */ +#include +#include +#include +#include "rebound.h" + +void heartbeat(struct reb_simulation* r); + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create_from_file("ss-2023-11-12.bin", 0); + + // Starting the REBOUND visualization server. This + // allows you to visualize the simulation by pointing + // your web browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->dt = 4./365.25*2.*M_PI; // 4days + r->integrator = REB_INTEGRATOR_WHFAST; + r->ri_whfast.coordinates = REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC; + r->heartbeat = heartbeat; + r->N_active = r->N; + + // Test Particles + for (int i=0;i<10000;i++){ + double a = reb_random_uniform(r, 0.4,20.); + double e = reb_random_uniform(r, 0.01,0.2); + double omega = reb_random_uniform(r, 0.,2.*M_PI); + double f = reb_random_uniform(r, 0.,2.*M_PI); + struct reb_particle p = reb_particle_from_orbit(1.,r->particles[0],0.,a,e,0.,0.,omega,f); + reb_simulation_add(r, p); + } + reb_simulation_move_to_com(r); + + // Integrate forever + reb_simulation_integrate(r, INFINITY); + + // cleanup + reb_simulation_free(r); +} + +void heartbeat(struct reb_simulation* r){ + if (reb_simulation_output_check(r, 100.)){ + reb_simulation_output_timing(r, INFINITY); + } +} + diff --git a/rebound/source/examples/solar_system_with_testparticles/ss-2023-11-12.bin b/rebound/source/examples/solar_system_with_testparticles/ss-2023-11-12.bin new file mode 100644 index 0000000000000000000000000000000000000000..a97ecffbedbfb5354684864aa068a476976208ce --- /dev/null +++ b/rebound/source/examples/solar_system_with_testparticles/ss-2023-11-12.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa57e6f4648e9d3133fa45606587468f48395679fb00401686b15e97457c57ca +size 4348 diff --git a/rebound/source/examples/spreading_ring/Makefile b/rebound/source/examples/spreading_ring/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/spreading_ring/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/spreading_ring/problem.c b/rebound/source/examples/spreading_ring/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..3bdbe7722eb1ab15f7c830b34b2770555dce36f6 --- /dev/null +++ b/rebound/source/examples/spreading_ring/problem.c @@ -0,0 +1,73 @@ +/** + * Spreading ring + * + * A narrow ring of collisional particles is spreading. + * An error message will alert you to the fact that we + * do not take the mass of particles into account when + * calculating mutual gravity. However, we use the mass + * during the collision resolve phase. Thus you can ignore + * the warning in this case. + */ +#include +#include +#include +#include "rebound.h" + +void heartbeat(struct reb_simulation* r); + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Starting the REBOUND visualization server. This + // allows you to visualize the simulation by pointing + // your web browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + // Setup constants + r->integrator = REB_INTEGRATOR_LEAPFROG; + r->collision = REB_COLLISION_TREE; + r->collision_resolve = reb_collision_resolve_hardsphere; + r->boundary = REB_BOUNDARY_OPEN; + r->G = 1; + r->N_active = 1; + r->softening = 0.01; + r->dt = 1e-3; + r->heartbeat = heartbeat; + + double boxsize = 4.8; + reb_simulation_configure_box(r, boxsize, 1, 1, 1); + + // Setup particles + int _N = 1000; + // Initial conditions + struct reb_particle star = {0}; + star.m = 1; + star.r = 0.01; + reb_simulation_add(r, star); + + while(r->N<_N){ + struct reb_particle pt = {0}; + double a = reb_random_powerlaw(r, boxsize/2.9,boxsize/3.1,.5); + double phi = reb_random_uniform(r, 0,2.*M_PI); + pt.x = a*cos(phi); + pt.y = a*sin(phi); + pt.z = a*reb_random_normal(r, 0.0001); + double vkep = sqrt(r->G*star.m/a); + pt.vx = vkep * sin(phi); + pt.vy = -vkep * cos(phi); + pt.m = 0.0001; + pt.r = .3/sqrt((double)_N); + reb_simulation_add(r, pt); + } + + reb_simulation_integrate(r, INFINITY); + + // Cleanup + reb_simulation_free(r); +} + +void heartbeat(struct reb_simulation* r){ + if (reb_simulation_output_check(r, 0.0*r->dt)){ + reb_simulation_output_timing(r, 0); + } +} diff --git a/rebound/source/examples/star_of_david/Makefile b/rebound/source/examples/star_of_david/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/star_of_david/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/star_of_david/problem.c b/rebound/source/examples/star_of_david/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..d4d4934e008dd48befb132eb0b9558710ee6c677 --- /dev/null +++ b/rebound/source/examples/star_of_david/problem.c @@ -0,0 +1,54 @@ +/** + * Star of David + * + * This example uses the IAS15 integrator + * to integrate the "Star od David", a four body system consisting of two + * binaries orbiting each other. Note that the time is running backwards, + * which illustrates that IAS15 can handle both forward and backward in time + * integrations. The initial conditions are by Robert Vanderbei. + */ +#include +#include +#include +#include "rebound.h" + + +int main(int argc, char* argv[]){ + struct reb_simulation* r = reb_simulation_create(); + + // Starting the REBOUND visualization server. This + // allows you to visualize the simulation by pointing + // your web browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + r->integrator = REB_INTEGRATOR_IAS15; + r->dt = -1; + r->usleep = 10000; // Slowing down integrator (for visualization only) + + struct reb_particle p = {0}; + p.m = 1.; + p.z = 0.; + p.vz = 0.; + + p.x = -1.842389804706855; p.y = -1.063801316823613; + p.vx = -0.012073765486548; p.vy = 0.021537467220014; + reb_simulation_add(r, p); + + p.x = -0.689515464218133; p.y = -0.398759403276399; + p.vx = 0.637331229856386; p.vy = -1.103822313621890; + reb_simulation_add(r, p); + + p.x = 0.689515464218133; p.y = 0.398759403276399; + p.vx = -0.637331229856386; p.vy = 1.103822313621890; + reb_simulation_add(r, p); + + p.x = 1.842389804706855; p.y = 1.063801316823613; + p.vx = 0.012073765486548; p.vy = -0.021537467220014; + reb_simulation_add(r, p); + + reb_simulation_move_to_com(r); + + reb_simulation_integrate(r, INFINITY); + + reb_simulation_free(r); +} diff --git a/rebound/source/examples/thermalhysteresis/Makefile b/rebound/source/examples/thermalhysteresis/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/thermalhysteresis/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/thermalhysteresis/problem.c b/rebound/source/examples/thermalhysteresis/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..006886dc186cc6b88922cd54416c63ec66618c2d --- /dev/null +++ b/rebound/source/examples/thermalhysteresis/problem.c @@ -0,0 +1,419 @@ +/** + * Thermal Hysteresis + * + * This example can be used as a starting point to reproduce + * the results of Larue, Latter, and Rein (2022). + */ + +#include +#include +#include +#include "rebound.h" + + +// Structure to store simulation parameters and output data +// Having this structure and setting it as r->extras allows +// us to avoid having any global variables. +struct collisions_log { + int Nslices; + int Nsamples; // Samples to avergae over (since last output) + double lastsample; + double twarmup; + int isHot; // Used during warmup + double tau; + double* plog; + double* Elog; + long* Nlog; + double* T; + double* qNL; + double* qL; + double* nuT; + double* nuC; +}; + +// The "realistic" coefficient of restitution. See Eq (2). Contains code for warmup. +double eps_realistic(const struct reb_simulation* const r, double v, double x){ + struct collisions_log* log = (struct collisions_log* )r->extras; + v = fabs(v); + double vc = 5.; + double offset = 0; + if (vttwarmup){ + if (!log->isHot){ + eps *= r->t/log->twarmup; + } + } + if (eps>1) eps=1; + if (eps<0) eps=0; + return eps; +} + +// A custom collision resolve routine. Needed because coefficient of resitution +// depends on position and because of extra logging. +enum REB_COLLISION_RESOLVE_OUTCOME collision_resolve(struct reb_simulation* const r, struct reb_collision c){ + struct reb_particle* const particles = r->particles; + struct reb_particle p1 = particles[c.p1]; + struct reb_particle p2 = particles[c.p2]; + struct reb_vec6d gb = c.gb; + double x21 = p1.x + gb.x - p2.x; + double y21 = p1.y + gb.y - p2.y; + double z21 = p1.z + gb.z - p2.z; + double rp = p1.r+p2.r; + double oldvyouter; + struct reb_particle old1 = p1; + struct reb_particle old2 = p2; + if (x21>0){ + oldvyouter = p1.vy; + }else{ + oldvyouter = p2.vy; + } + if (rp*rp < x21*x21 + y21*y21 + z21*z21) return 0; + double vx21 = p1.vx + gb.vx - p2.vx; + double vy21 = p1.vy + gb.vy - p2.vy; + double vz21 = p1.vz + gb.vz - p2.vz; + if (vx21*x21 + vy21*y21 + vz21*z21 >0) return 0; // not approaching + // Bring the to balls in the xy plane. + double theta = atan2(z21,y21); + double stheta = sin(theta); + double ctheta = cos(theta); + double vy21n = ctheta * vy21 + stheta * vz21; + double y21n = ctheta * y21 + stheta * z21; + + // Bring the two balls onto the positive x axis. + double phi = atan2(y21n,x21); + double cphi = cos(phi); + double sphi = sin(phi); + double vx21nn = cphi * vx21 + sphi * vy21n; + + // Determine coefficient of restitution + double eps = eps_realistic(r, vx21nn, (p1.x + gb.x + p2.x)/2.); + + double dvx2 = -(1.0+eps)*vx21nn; + double minr = (p1.r>p2.r)?p2.r:p1.r; + double maxr = (p1.rminimum_collision_velocity; + double _r = sqrt(x21*x21 + y21*y21 + z21*z21); + mindv *= 1.-(_r - maxr)/minr; + if (mindv>maxr*r->minimum_collision_velocity)mindv = maxr*r->minimum_collision_velocity; + if (dvx2t; + const double p1pf = p2.m/(p1.m+p2.m); + particles[c.p1].vx += p1pf*dvx2n; + particles[c.p1].vy += p1pf*dvy2nn; + particles[c.p1].vz += p1pf*dvz2nn; + particles[c.p1].last_collision = r->t; + + struct reb_particle new1 = particles[c.p1]; + struct reb_particle new2 = particles[c.p2]; + new1.vy += 1.5*r->ri_sei.OMEGA*new1.x; + new2.vy += 1.5*r->ri_sei.OMEGA*new2.x; + old1.vy += 1.5*r->ri_sei.OMEGA*old1.x; + old2.vy += 1.5*r->ri_sei.OMEGA*old2.x; + + // Logging + struct collisions_log* log = (struct collisions_log* )r->extras; + double xmid = (p1.x+p2.x)/2.; + int i = ((int)floor((xmid/r->boxsize.x+0.5)*log->Nslices))%log->Nslices; + double E1 = 0.5*(old1.vx*old1.vx + old1.vy*old1.vy + old1.vz*old1.vz); + double E2 = 0.5*(old2.vx*old2.vx + old2.vy*old2.vy + old2.vz*old2.vz); + double E1p = 0.5*(new1.vx*new1.vx + new1.vy*new1.vy + new1.vz*new1.vz); + double E2p = 0.5*(new2.vx*new2.vx + new2.vy*new2.vy + new2.vz*new2.vz); + double E1s = E1 - 0.5*(E1+E2); + double E2s = E2 - 0.5*(E1+E2); + double E1sp = E1p - 0.5*(E1p+E2p); + double E2sp = E2p - 0.5*(E1p+E2p); + double dE1s = E1sp - E1s; + double dE2s = E2sp - E2s; + if (x21>0){ + log->Elog[i] += fabs(x21)*dE1s; + log->plog[i] += -fabs(x21)*(oldvyouter-particles[c.p1].vy) * p1.m; + }else{ + log->Elog[i] += fabs(x21)*dE2s; + log->plog[i] += -fabs(x21)*(oldvyouter-particles[c.p2].vy) * p2.m; + } + log->Nlog[i]++; + return REB_COLLISION_RESOLVE_OUTCOME_REMOVE_NONE; +} + +double midplane_fillingfactor(const struct reb_simulation* const r){ + double area = 0.; + for (int i=0;iN;i++){ + struct reb_particle p = r->particles[i]; + double R2 = p.r*p.r-p.z*p.z; + if (R2>0.){ + area += M_PI*R2; + } + } + return area/(r->boxsize.x*r->boxsize.y); +} + +struct reb_vec3d velocity_dispersion(const struct reb_simulation* const r, double xmin, double xmax){ + // Algorithm with reduced roundoff errors (see wikipedia) + struct reb_vec3d A = {.x=0, .y=0, .z=0}; + struct reb_vec3d W = {.x=0, .y=0, .z=0}; + int Ncounted = 0; + for (int i=0;iN;i++){ + struct reb_vec3d Aim1 = A; + struct reb_particle p = r->particles[i]; + if (p.x>xmin && p.xri_sei.OMEGA*p.x-A.y)/(double)(Ncounted+1); + A.z = A.z + (p.vz-A.z)/(double)(Ncounted+1); + W.x = W.x + (p.vx-Aim1.x)*(p.vx-A.x); + W.y = W.y + (p.vy+1.5*r->ri_sei.OMEGA*p.x-Aim1.y)*(p.vy+1.5*r->ri_sei.OMEGA*p.x-A.y); + W.z = W.z + (p.vz-Aim1.z)*(p.vz-A.z); + Ncounted++; + } + } + W.x = sqrt(W.x/(double)Ncounted); + W.y = sqrt(W.y/(double)Ncounted); + W.z = sqrt(W.z/(double)Ncounted); + + // Return velocity dispersion in xx, yy, zz + return W; +} + +void heartbeat(struct reb_simulation* const r){ + if (reb_simulation_output_check(r, 1e-3*2.*M_PI/r->ri_sei.OMEGA)){ + reb_simulation_output_timing(r, 0); + //reb_output_append_velocity_dispersion("veldisp.txt"); + } + return; + struct collisions_log* log = (struct collisions_log* )r->extras; + + // Calculate quantities for each slice + int Nslices = log->Nslices; + for (int i=0;iboxsize.x/2. + r->boxsize.x * i /Nslices; + double xmax = xmin + r->boxsize.x /Nslices; + double sigma = 1./((xmax - xmin) * r->boxsize.y); + struct reb_vec3d W = velocity_dispersion(r,xmin,xmax); + double _T = 1./3.*(W.x*W.x+ W.y*W.y+ W.z*W.z)/(r->ri_sei.OMEGA*r->ri_sei.OMEGA); + log->T[i] += _T; + + // qL + double u_x = 0; + double u_y = 0; + double u_z = 0; + double Wxy = 0; + int _N=0; + for (int j=0;jN;j++){ + struct reb_particle p = r->particles[j]; + if (p.x>xmin && p.xri_sei.OMEGA*p.x; + double vz = p.vz; + u_x += vx; + u_y += vy; + u_z += vz; + Wxy += vx*vy; + _N ++; + } + } + sigma *= _N; + u_x /= _N; + u_y /= _N; + u_z /= _N; + Wxy /= _N; + double _qL=0; + for (int j=0;jN;j++){ + struct reb_particle p = r->particles[j]; + if (p.x>xmin && p.xri_sei.OMEGA*p.x - u_y; + double cz = p.vz - u_z; + double c2 = cx*cx + cy*cy + cz*cz; + _qL += 0.5*c2*cx; + } + } + log->qL[i] += sigma * _qL / _N; + + // qNL + double dt = r->t-log->lastsample; + if (dt>0.5e-4*2.*M_PI/r->ri_sei.OMEGA){ + log->qNL[i] += sigma*log->Elog[i] /(dt*_N); + } + log->Elog[i] = 0; + + // nuT + log->nuT[i] += 2./3. * Wxy / r->ri_sei.OMEGA; + + // nuC + if (dt>0.5e-4*2.*M_PI/r->ri_sei.OMEGA){ + log->nuC[i] += 2.*log->plog[i] /(3.0*r->ri_sei.OMEGA*_N*dt); + } + log->plog[i] = 0; + + } + log->lastsample = r->t; + log->Nsamples ++; + + // Save output 10 times per orbit + if (reb_simulation_output_check(r,0.1*2.*M_PI/r->ri_sei.OMEGA)){ + char buf[256]; + sprintf(buf,"out_tau%.1f_hot%d/out.txt",log->tau,log->isHot); + FILE* f = fopen(buf,"a+"); + fprintf(f, "%5.3f\t",r->t/(2.*M_PI/r->ri_sei.OMEGA)); // 0 + double FF = midplane_fillingfactor(r); + fprintf(f, "%5.7f\t",FF); // 1 + + for (int i=0;iT[i]/log->Nsamples); // 2 (c^2) + fprintf(f, "%5.3f\t", log->qL[i]/log->Nsamples); // 3 + fprintf(f, "%5.3f\t", log->qNL[i]/log->Nsamples); // 4 + fprintf(f, "%5.3f\t", log->nuT[i]/log->Nsamples); // 5 + fprintf(f, "%5.3f\t", log->nuC[i]/log->Nsamples); // 6 + log->T[i] = 0; + log->qL[i] = 0; + log->qNL[i] = 0; + log->nuT[i] = 0; + log->nuC[i] = 0; + } + log->Nsamples = 0; + fprintf(f, "\n"); + fclose(f); + } + + // On screen update every 10 orbit + if (reb_simulation_output_check(r,10.*2.*M_PI/r->ri_sei.OMEGA)){ + printf("tau = %.3f\t t = %.2f\n", log->tau, r->t/(2.*M_PI/r->ri_sei.OMEGA)); + } +} + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + + // Starting the REBOUND visualization server. This + // allows you to visualize the simulation by pointing + // your web browser to http://localhost:1234 + reb_simulation_start_server(r, 1234); + + const double OMEGA = 1; + r->opening_angle2 = .5; + r->integrator = REB_INTEGRATOR_SEI; + r->boundary = REB_BOUNDARY_SHEAR; + r->gravity = REB_GRAVITY_NONE; + r->collision = REB_COLLISION_LINETREE; + r->collision_resolve = collision_resolve; + r->ri_sei.OMEGA = OMEGA; + r->ri_sei.OMEGAZ = OMEGA; + r->dt = 1e-2*2.*M_PI/OMEGA; + r->heartbeat = heartbeat; + double boxsize = 200; + reb_simulation_configure_box(r, boxsize, 8, 1, 1); + r->N_ghost_x = 1; + r->N_ghost_y = 1; + r->N_ghost_z = 0; + + r->minimum_collision_velocity = OMEGA*0.001; // small fraction of the shear accross a particle + + // Setup memory for logging. + struct collisions_log* log= malloc(sizeof(struct collisions_log)); + + // Read in command line arguments to overwrite defaults: tau, hot, tmax + log->tau = 0.1; + if (argc>1){ + log->tau = atof(argv[1]); + } + log->isHot = 0; + if (argc>2){ + log->isHot = atoi(argv[2]); + } + double tmax = 200; // in orbits + if (argc>3){ + tmax = atof(argv[3]); + } + + + + // Add all ring paricles + double area = 0.; + while (log->tau> area/(r->boxsize.x*r->boxsize.y)){ + struct reb_particle pt = {0}; + double fac = 1; + pt.x = reb_random_uniform(r, -r->boxsize.x/2.,r->boxsize.x/2.); + if (log->isHot && pt.x > 0){ + fac = 20; + } + pt.y = reb_random_uniform(r, -r->boxsize.y/2.,r->boxsize.y/2.); + pt.vx = fac*reb_random_normal(r, 1.)*OMEGA; + pt.vy = -1.5*pt.x*OMEGA+fac*reb_random_normal(r, 1.)*OMEGA; + double a = fac*0.1*reb_random_normal(r, 1.)*OMEGA; + double f = reb_random_uniform(r, 0,2.*M_PI); + pt.z = a*cos(f); + pt.vz = -a*sin(f); + pt.r = 1.; + pt.m = 1.; + reb_simulation_add(r, pt); + area += M_PI*pt.r*pt.r; + } + + r->extras = log; + log->Nslices = 1; + log->lastsample = 0; + log->Nsamples = 0; + log->twarmup = 20 * 2.*M_PI/OMEGA; + log->T = malloc(sizeof(double)*log->Nslices); + log->qNL = malloc(sizeof(double)*log->Nslices); + log->qL = malloc(sizeof(double)*log->Nslices); + log->nuT = malloc(sizeof(double)*log->Nslices); + log->nuC= malloc(sizeof(double)*log->Nslices); + log->plog = malloc(sizeof(double)*log->Nslices); + log->Elog = malloc(sizeof(double)*log->Nslices); + log->Nlog = malloc(sizeof(long)*log->Nslices); + for (int i=0;iNslices;i++){ + log->T[i] = 0; + log->qNL[i] = 0; + log->qL[i] = 0; + log->nuT[i] = 0; + log->nuC[i] = 0; + log->plog[i] = 0; + log->Elog[i] = 0; + log->Nlog[i] = 0; + } + + // Prepare output directories + char buf[256]; + sprintf(buf,"rm -fr out_tau%.1f_hot%d",log->tau,log->isHot); + system(buf); + sprintf(buf,"mkdir out_tau%.1f_hot%d",log->tau,log->isHot); + system(buf); + + // Integrate + reb_simulation_integrate(r, tmax*2.*M_PI/OMEGA); + + // Final output + sprintf(buf,"out_tau%.1f_hot%d/final.txt",log->tau,log->isHot); + reb_simulation_output_ascii(r, buf); + + // Cleanup + free(log->T); + free(log->qNL); + free(log->qL); + free(log->nuT); + free(log->nuC); + free(log->plog); + free(log->Elog); + free(log->Nlog); + free(log); + reb_simulation_free(r); + +} + diff --git a/rebound/source/examples/uniquely_identifying_particles_with_hashes/Makefile b/rebound/source/examples/uniquely_identifying_particles_with_hashes/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/uniquely_identifying_particles_with_hashes/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/uniquely_identifying_particles_with_hashes/problem.c b/rebound/source/examples/uniquely_identifying_particles_with_hashes/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..32fcebccdc0621ab873b50444c151c7a2f7ae973 --- /dev/null +++ b/rebound/source/examples/uniquely_identifying_particles_with_hashes/problem.c @@ -0,0 +1,98 @@ +/** + * How to use hashes to identify particles + * + * This example shows how to assign hashes to particles + * and how to access particles using hashes. + */ +#include +#include +#include +#include "rebound.h" + +int main(int argc, char* argv[]){ + /* Several events can make particles move around in memory. This means the user should not assume they can always refer to + * the same particle through r->particles[index] or through a pointer to the particle that is set at the beginning of the + * simulation. The reliable way to access particles is through hashes.*/ + + struct reb_simulation* r = reb_simulation_create(); + + struct reb_particle p = {0}; + p.m = 1.; + p.hash = reb_hash("Sun"); + reb_simulation_add(r, p); + + printf("We can now reference the particle like this: m=%f, or like this: m=%f\n", r->particles[0].m, reb_simulation_particle_by_hash(r, reb_hash("Sun"))->m); + + for (int i=1; i <= 200; i++){ + struct reb_particle tp = {0}; + tp.x = i; // put particles progressively farther away + tp.hash = i; + reb_simulation_add(r, tp); + // ... initialize rest of particle variables. + } + + /* The advantage of hashes is that if particles are ejected or otherwise removed from the simulation (or you are using + * the tree code), the indices in the particles array will get scrambled. Accessing particles through their hash + * guarantees you get back the particle you intended. + */ + + printf("r->particles[200] hash=%u, x=%f\n", r->particles[200].hash, r->particles[200].x); + + reb_simulation_remove_particle_by_hash(r, reb_hash("Sun"), 0); + + /* The remove function has moved particles[200] to index 0:*/ + + printf("r->particles[0] hash=%u, x=%f\n", r->particles[0].hash, r->particles[0].x); + + /* Rather than worry about the internals of what the remove function, the tree code etc. do, we can get it by hash. + * When you are not sure, assigning particles hashes and accessing them through them is always safe. + * We can use reb_hash for a string, or just pass an unsigned integer we assigned directly.*/ + + struct reb_particle* last = reb_simulation_particle_by_hash(r, 200); + + printf("Using hash: hash=%u, x=%f\n\n", last->hash, last->x); + + /* Note that if the particle is not found in the simulation, reb_simulation_particle_by_hash returns a NULL pointer. + * This allows you to check if particles are still in the simulation when you don't know ahead of time, but means that if you + * mistakenly access a removed particle, you'll get a segmentation fault.*/ + + struct reb_particle* sunptr = reb_simulation_particle_by_hash(r, reb_hash("Sun")); + + if (sunptr == NULL){ + printf("Whoops! Already removed particle.\n"); + } + else{ + printf("Mass = %f\n\n", sunptr->m); // would cause segmentation fault in this case + } + + /* The user is responsible for making sure the hashes don't clash. If two particles share the same hash, reb_simulation_particle_by_hash + * could return either particle. 2 hashes generated with the reb_hash hash function have a ~1e-9 chance of clashing. + * The most common case is assigning a hash of 0: + */ + + reb_simulation_free(r); + r = reb_simulation_create(); + + struct reb_particle sun = {0}; + sun.m = 1.; + sun.hash = 0; + reb_simulation_add(r, sun); + + struct reb_particle earth = {0}; + earth.x = 1.; + earth.vy = 1.; + reb_simulation_add(r, earth); + + printf("Sun's x position = %f\n", reb_simulation_particle_by_hash(r, 0)->x); + + /* The above line prints x=1 for the Sun's x position, which is not what we wanted. The problem is we also set earth's hash to 0 + * when we initialized the structure to {0}! We can use the 0 hash as long as we make sure we assign the hashes of all particles in the simulation: + */ + + r->particles[1].hash = reb_hash("earth"); + printf("Sun's x position = %f\n", reb_simulation_particle_by_hash(r, 0)->x); + + + reb_simulation_free(r); +} + diff --git a/rebound/source/examples/variational_equations/Makefile b/rebound/source/examples/variational_equations/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..13e9a36a337c0e93c37ee68d8d2fcc6358dcdaf7 --- /dev/null +++ b/rebound/source/examples/variational_equations/Makefile @@ -0,0 +1,35 @@ +export OPENGL=0# Set this to 1 to enable OpenGL +export SERVER=1# Set this to 1 to enable the visualization web server +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/variational_equations/problem.c b/rebound/source/examples/variational_equations/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..124010fdc7be14e93ef6ea7e158a9d0cafdf5acd --- /dev/null +++ b/rebound/source/examples/variational_equations/problem.c @@ -0,0 +1,121 @@ +/** + * Variational Equations + * + * This example shows how to use first and second + * order variational equations. + * See also https://github.com/hannorein/rebound/blob/master/ipython_examples/VariationalEquations.ipynb and Rein and Tamayo (2016). + */ +#include "rebound.h" +#include +#include + +// This function creates a simulation with one star, one planet and one test particle. +struct reb_simulation* create_sim(){ + struct reb_simulation* r = reb_simulation_create(); + r->integrator = REB_INTEGRATOR_IAS15; // First and second order variational equations supported in IAS15. + // r->integrator = REB_INTEGRATOR_BS; // First and second order variational equations supported in BS. + // r->integrator = REB_INTEGRATOR_WHFAST; Only first order variational equations supported in WHFast. + struct reb_particle star = {0.}; + star.m = 1; + reb_simulation_add(r, star); + struct reb_particle planet = reb_particle_from_orbit(1.,star,1e-3,1.,0.,0.,0.,0.,0.); + reb_simulation_add(r, planet); + struct reb_particle testparticle = reb_particle_from_orbit(1.,star,0.,1.7,0.1,0.2,0.3,0.4,0.5); + reb_simulation_add(r, testparticle); + return r; +} + +int main(int argc, char* argv[]) { + struct reb_simulation* r; + int var_i, var_ii; + + // We first integrate the vanilla simulation forward in time and look at the position of the testparticle at the end of the simulation. + r = create_sim(); + reb_simulation_integrate(r,100.); + printf("Position of testparticle at t=100: %.8f %.8f\n",r->particles[2].x,r->particles[2].y); + reb_simulation_free(r); + + // Next, we shift the planet's initial x coordinate by a small amount and integrate the system again up til t=100. + double DeltaX = 0.001; + printf("\nShifting planet's x coordinate by %f.\n", DeltaX); + r = create_sim(); + r->particles[1].x += DeltaX; + reb_simulation_integrate(r,100.); + printf("Position of testparticle at t=100 in shifted simulation: %.8f %.8f\n",r->particles[2].x,r->particles[2].y); + reb_simulation_free(r); + + // Instead of shifting the initial x coordinate, we can also use variational equations. + r = create_sim(); + var_i = reb_simulation_add_variation_1st_order(r, -1); // The -1 means we vary a particle which is not a testparticle and therefore can influence other particles + + // By default all components of variational particles are initialized to zero. + // We are interested in shifting the planet's x coordinates and thus initialize the x coordinate of the variational particle to 1. + r->particles[var_i+1].x = 1.; + reb_simulation_integrate(r,100.); + // After the integration ran, we can estimate where the test particle would have been had we shifted the inner planet's initial x coordinate. + printf("Position of testparticle at t=100 using 1st order var. eqs.: %.8f %.8f\n",r->particles[2].x+DeltaX*r->particles[var_i+2].x,r->particles[2].y+DeltaX*r->particles[var_i+2].y); + reb_simulation_free(r); + + // Better yet, we can use second order variational particles. + r = create_sim(); + var_i = reb_simulation_add_variation_1st_order(r, -1); + var_ii = reb_simulation_add_variation_2nd_order(r, -1, var_i, var_i); + r->particles[var_i+1].x = 1.; + reb_simulation_integrate(r,100.); + printf("Position of testparticle at t=100 using 2nd order var. eqs.: %.8f %.8f\n",r->particles[2].x+DeltaX*r->particles[var_i+2].x+DeltaX*DeltaX/2.*r->particles[var_ii+2].x,r->particles[2].y+DeltaX*r->particles[var_i+2].y+DeltaX*DeltaX/2.*r->particles[var_ii+2].y); + reb_simulation_free(r); + + + // We now do the same as above, but vary the testparticle's position + printf("\nShifting testparticle's x coordinate by %f.\n", DeltaX); + r = create_sim(); + r->particles[2].x += DeltaX; + reb_simulation_integrate(r,100.); + printf("Position of testparticle at t=100 in shifted simulation: %.8f %.8f\n",r->particles[2].x,r->particles[2].y); + reb_simulation_free(r); + + r = create_sim(); + var_i = reb_simulation_add_variation_1st_order(r, 2); // The 2 corresponds to the index of the testparticle that we vary. + r->particles[var_i].x = 1.; + reb_simulation_integrate(r,100.); + printf("Position of testparticle at t=100 using 1st order var. eqs.: %.8f %.8f\n",r->particles[2].x+DeltaX*r->particles[var_i].x,r->particles[2].y+DeltaX*r->particles[var_i].y); + reb_simulation_free(r); + + r = create_sim(); + var_i = reb_simulation_add_variation_1st_order(r, 2); + var_ii = reb_simulation_add_variation_2nd_order(r, 2, var_i, var_i); + r->particles[var_i].x = 1.; + reb_simulation_integrate(r,100.); + printf("Position of testparticle at t=100 using 2nd order var. eqs.: %.8f %.8f\n",r->particles[2].x+DeltaX*r->particles[var_i].x+DeltaX*DeltaX/2.*r->particles[var_ii].x,r->particles[2].y+DeltaX*r->particles[var_i].y+DeltaX*DeltaX/2.*r->particles[var_ii].y); + reb_simulation_free(r); + + + // Instead of varying cartesian coordinates, we can also vary orbital elements. + printf("\nShifting planet's semi-major axis by %f.\n", DeltaX); + r = create_sim(); + r->particles[2] = reb_particle_from_orbit(1.,r->particles[0],0.,1.7+DeltaX,0.1,0.2,0.3,0.4,0.5); + reb_simulation_integrate(r,100.); + printf("Position of testparticle at t=100 in shifted simulation: %.8f %.8f\n",r->particles[2].x,r->particles[2].y); + reb_simulation_free(r); + + r = create_sim(); + var_i = reb_simulation_add_variation_1st_order(r, 2); + // The function that sets up the variational particle gets the same orbital parameters as the original particle. + r->particles[var_i] = reb_particle_derivative_a(1.,r->particles[0],r->particles[2]); + reb_simulation_integrate(r,100.); + printf("Position of testparticle at t=100 using 1st order var. eqs.: %.8f %.8f\n",r->particles[2].x+DeltaX*r->particles[var_i].x,r->particles[2].y+DeltaX*r->particles[var_i].y); + reb_simulation_free(r); + + r = create_sim(); + var_i = reb_simulation_add_variation_1st_order(r, 2); + var_ii = reb_simulation_add_variation_2nd_order(r, 2, var_i, var_i); + // first derivative with respect to a + r->particles[var_i] = reb_particle_derivative_a(1.,r->particles[0],r->particles[2]); + // second derivative with respect to a + r->particles[var_ii] = reb_particle_derivative_a_a(1.,r->particles[0],r->particles[2]); + reb_simulation_integrate(r,100.); + printf("Position of testparticle at t=100 using 2nd order var. eqs.: %.8f %.8f\n",r->particles[2].x+DeltaX*r->particles[var_i].x+DeltaX*DeltaX/2.*r->particles[var_ii].x,r->particles[2].y+DeltaX*r->particles[var_i].y+DeltaX*DeltaX/2.*r->particles[var_ii].y); + reb_simulation_free(r); + + +} diff --git a/rebound/source/examples/whfast512_2_planets/Makefile b/rebound/source/examples/whfast512_2_planets/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..ab234bd8ac1a52b6eaf7a07a6b552844c39ea847 --- /dev/null +++ b/rebound/source/examples/whfast512_2_planets/Makefile @@ -0,0 +1,37 @@ +export AVX512=1 +export OPENGL=0 +export SERVER=0 +export OPT=-march=native +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/whfast512_2_planets/problem.c b/rebound/source/examples/whfast512_2_planets/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..cdb12e515b7d61ad0bc6e6943a29055cb463f0f0 --- /dev/null +++ b/rebound/source/examples/whfast512_2_planets/problem.c @@ -0,0 +1,137 @@ +/** + * Integrating a two planet system with WHFast512 + * + * This example integrates four two-planets systems + * using the WHFast512 integrator. Note that you need + * a CPU which support AVX512 instructions to run + * this example. + */ +#include +#include +#include +#include +#include +#include "rebound.h" + +// Initial conditions for the Sun, Mercury, and Venus +// from NASA horizons +double all_ss_pos[3][3] = { + {-0.008816286905115728, -0.0010954664916791675, 0.0002143249385447027}, + {-0.05942272929227954, -0.46308699693348293, -0.032897989948949075}, + {-0.7276101005375593, 0.006575003332463933, 0.041795901908847084}, +}; + +double all_ss_vel[3][3] = { + {0.00014315746073017681, -0.0004912441820893999, 8.127678560998346e-07}, + {1.2978664284760637, -0.09524541469911743, -0.12677574364801253}, + {-0.019239782390457125, -1.1813975672919448, -0.01509392594251431}, +}; + +double all_ss_mass[3] = { + 0.9999999999950272, + 1.6601208254808336e-07, + 2.447838287784771e-06, +}; + +struct reb_simulation* setup_single(){ + struct reb_simulation* r = reb_simulation_create(); + for (int i = 0; i < 3; i++){ + struct reb_particle p = { + .m = all_ss_mass[i], + .x = all_ss_pos[i][0], .y = all_ss_pos[i][1], .z = all_ss_pos[i][2], + .vx = all_ss_vel[i][0], .vy = all_ss_vel[i][1], .vz = all_ss_vel[i][2] + }; + reb_simulation_add(r, p); + } + reb_simulation_move_to_com(r); + return r; +} + +double run(int use_whfast512){ + struct timeval time_beginning; + struct timeval time_end; + double tmax = 2.*M_PI*1e5; // 100 kyr + + // We integrate four 2 planet systems in parallel. + // To do that, simply add all the planet to one simulation + // so that the order of particles is: + // Star 1 + // Planet 1 + // Planet 2 + // Star 2 + // Planet 1 + // Planet 2 + // Star 3 + // Planet 1 + // Planet 2 + // Star 4 + // Planet 1 + // Planet 2 + + if (use_whfast512){ + gettimeofday(&time_beginning,NULL); + // One simulation with all 4x2 = 8 planets. + struct reb_simulation* r = reb_simulation_create(); + r->exact_finish_time = 0; + r->dt = 5.0/365.25*2*M_PI; // 5 days + r->G = 1.; + r->force_is_velocity_dependent = 0; + // Tell WHFast512 how many systems we are integrating in parallel. + // This parameter can be either 1, 2, or 4. + r->ri_whfast512.N_systems = 4; + for (int s = 0; s < 4; s++){ + struct reb_simulation* r_single = setup_single(); + // We're adding a small perturbation to each simulation so they are + // not all exactly the same. In principle the simulations can be + // completely different, the only thing that needs to be the same + // is the timestep. + r_single->particles[1].x += 1e-14*s; + for (int i=0; iN; i++){ + reb_simulation_add(r, r_single->particles[i]); + } + reb_simulation_free(r_single); + } + r->integrator = REB_INTEGRATOR_WHFAST512; + int err = reb_simulation_integrate(r, tmax); + if (err>0){ + printf("An error occured during the integration.\n"); + exit(EXIT_FAILURE); + } + reb_simulation_free(r); + gettimeofday(&time_end,NULL); + }else{ + // Without WHFast512 we need to integrate 4 simulations one after the other + gettimeofday(&time_beginning,NULL); + for (int s = 0; s < 4; s++){ + struct reb_simulation* r = setup_single(); + r->exact_finish_time = 0; + r->dt = 5.0/365.25*2*M_PI; // 5 days + r->G = 1.; + r->force_is_velocity_dependent = 0; + r->integrator = REB_INTEGRATOR_WHFAST; + r->ri_whfast.coordinates = REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC; + r->particles[1].x += 1e-14*s; + int err = reb_simulation_integrate(r, tmax); + if (err>0){ + printf("An error occured during the integration.\n"); + exit(EXIT_FAILURE); + } + reb_simulation_free(r); + } + gettimeofday(&time_end,NULL); + } + + double walltime = time_end.tv_sec-time_beginning.tv_sec+(time_end.tv_usec-time_beginning.tv_usec)/1e6; + double gypday = 1e-9*(tmax/M_PI/2.)/walltime*86400; + printf("walltime= %.2fs (time required to integrate to 5 Gyr= %.2fdays)\n", walltime, 5./gypday); + return walltime; +} + +int main(int argc, char* argv[]) { + printf("Integrating for 100 kyr with WHFast512:\n"); + double w1= run(1); + printf("Integrating for 100 kyr with WHFast:\n"); + double w0= run(0); + printf("\nSpeedup: %.2fx\n", w0/w1); + return EXIT_SUCCESS; +} diff --git a/rebound/source/examples/whfast512_solar_system/Makefile b/rebound/source/examples/whfast512_solar_system/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..ab234bd8ac1a52b6eaf7a07a6b552844c39ea847 --- /dev/null +++ b/rebound/source/examples/whfast512_solar_system/Makefile @@ -0,0 +1,37 @@ +export AVX512=1 +export OPENGL=0 +export SERVER=0 +export OPT=-march=native +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/whfast512_solar_system/problem.c b/rebound/source/examples/whfast512_solar_system/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..c2f60ada65d56ca5a3d6a419763438c0145f9f1d --- /dev/null +++ b/rebound/source/examples/whfast512_solar_system/problem.c @@ -0,0 +1,134 @@ +/** + * Solar System with WHFast512 + * + * This example integrates the Solar System using + * the WHFast512 integrator. Note that you need a + * CPU which support AVX512 instructions to run + * this example. + */ +#include +#include +#include +#include +#include +#include "rebound.h" + +// Initial conditions for the Solar System +// from NASA horizons +double all_ss_pos[9][3] = { + {-0.008816286905115728, -0.0010954664916791675, 0.0002143249385447027}, + {-0.05942272929227954, -0.46308699693348293, -0.032897989948949075}, + {-0.7276101005375593, 0.006575003332463933, 0.041795901908847084}, + {-0.5789530452882667, -0.8361530119313055, 0.0002611520181901174}, + {-1.45202492400084, 0.827519404194876, 0.052981833432457694}, + {4.492983939852296, 2.0661626247490354, -0.10909246996001629}, + {8.4974210980544, -4.8620394993693585, -0.2537835862373596}, + {12.959111916929283, 14.760785302864473, -0.1130656917933948}, + {29.787987348666505, -2.51460654509393, -0.6347108842010732} +}; + +double all_ss_vel[9][3] = { + {0.00014315746073017681, -0.0004912441820893999, 8.127678560998346e-07}, + {1.2978664284760637, -0.09524541469911743, -0.12677574364801253}, + {-0.019239782390457125, -1.1813975672919448, -0.01509392594251431}, + {0.8098712561282222, -0.5682496529341624, 2.6169897281383047e-05}, + {-0.37436417754222295, -0.6365841544564991, -0.004143932260467942}, + {-0.18818907783656452, 0.41919544951404614, 0.0024710497024424977}, + {0.14292308496870448, 0.2808676923735748, -0.010574288572728728}, + {-0.1734971049470612, 0.14019515029516152, 0.0027683484887051457}, + {0.014142947617173336, 0.18292110872737416, -0.004092845767710294} +}; + +double all_ss_mass[9] = { + 0.9999999999950272, + 1.6601208254808336e-07, + 2.447838287784771e-06, + 3.0404326489511185e-06, + 3.2271560828978514e-07, + 0.0009547919099366768, + 0.0002858856700231729, + 4.366249613200406e-05, + 5.151383772628957e-05 +}; + +// Implementation of the GR force for WHFast. +// (WHFast512 comes with built-in support) +void gr_force(struct reb_simulation* r){ + double C2 = 10065.32 * 10065.32; + struct reb_particle* particles = r->particles; + const struct reb_particle source = particles[0]; + const double prefac1 = 6.*(r->G*source.m)*(r->G*source.m)/C2; + for (int i=1; iN; i++){ + const struct reb_particle p = particles[i]; + const double dx = p.x - source.x; + const double dy = p.y - source.y; + const double dz = p.z - source.z; + const double r2 = dx*dx + dy*dy + dz*dz; + const double prefac = prefac1/(r2*r2); + + particles[i].ax -= prefac*dx; + particles[i].ay -= prefac*dy; + particles[i].az -= prefac*dz; + particles[0].ax += p.m/source.m*prefac*dx; + particles[0].ay += p.m/source.m*prefac*dy; + particles[0].az += p.m/source.m*prefac*dz; + } +} + + +double run(int use_whfast512){ + struct timeval time_beginning; + struct timeval time_end; + + struct reb_simulation* r = reb_simulation_create(); + // Setup constants + r->dt = 5.0/365.25*2*M_PI; // 5 days + r->G = 1.; + r->exact_finish_time = 0; + r->force_is_velocity_dependent = 0; + if (use_whfast512){ + r->integrator = REB_INTEGRATOR_WHFAST512; + r->ri_whfast512.gr_potential = 1; + }else{ + r->integrator = REB_INTEGRATOR_WHFAST; + r->ri_whfast.coordinates = REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC; + r->ri_whfast.safe_mode = 0; + r->additional_forces = gr_force; + } + + // Initial conditions + for (int i = 0; i < 9; i++) { + struct reb_particle p = { + .m = all_ss_mass[i], + .x = all_ss_pos[i][0], .y = all_ss_pos[i][1], .z = all_ss_pos[i][2], + .vx = all_ss_vel[i][0], .vy = all_ss_vel[i][1], .vz = all_ss_vel[i][2] + }; + reb_simulation_add(r, p); + } + + reb_simulation_move_to_com(r); + + + gettimeofday(&time_beginning,NULL); + double tmax = 2.*M_PI*1e6; // 1 Myr + int err = reb_simulation_integrate(r, tmax); + if (err>0){ + printf("An error occured during the integration.\n"); + exit(EXIT_FAILURE); + } + gettimeofday(&time_end,NULL); + + double walltime = time_end.tv_sec-time_beginning.tv_sec+(time_end.tv_usec-time_beginning.tv_usec)/1e6; + double gypday = 1e-9*(tmax/M_PI/2.)/walltime*86400; + printf("walltime= %.2fs (time required to integrate to 5 Gyr= %.2fdays)\n", walltime, 5./gypday); + return walltime; +} + +int main(int argc, char* argv[]) { + printf("Integrating for 1 Myr with WHFast512:\n"); + double w1= run(1); + printf("Integrating for 1 Myr with WHFast:\n"); + double w0= run(0); + printf("\nSpeedup: %.2fx\n", w0/w1); + return EXIT_SUCCESS; +} diff --git a/rebound/source/examples/whfast512_solar_system/run.sh b/rebound/source/examples/whfast512_solar_system/run.sh new file mode 100644 index 0000000000000000000000000000000000000000..40dc6735cf283a78b93dcdf1c2731c68b17dadce --- /dev/null +++ b/rebound/source/examples/whfast512_solar_system/run.sh @@ -0,0 +1,55 @@ +#!/bin/bash +#SBATCH --nodes=1 +#SBATCH --cpus-per-task=80 +#SBATCH --time=1:00:00 +#SBATCH --job-name=rebound_benchmark +#SBATCH --output=/scratch/r/rein/rein/output.txt +#SBATCH --mail-type=FAIL + +rsync -ua --progress --exclude=".*" $HOME/git/rebound $SCRATCH/rebound + +cd $SCRATCH/rebound/rebound/examples/avx512_performance + +module load intel +make clean +make -j 40 + +rm output100_*.txt + + +for gr in {0..0} +do + for faster in {0..1} + do + for N in {1..8} + do + for i in {0..79} + do + ./rebound $gr $faster $N $i & + done + wait + done + done +done + +module unload intel +module load gcc +make clean +make -j 40 + + +for gr in {0..0} +do + for faster in {0..1} + do + for N in {1..8} + do + for i in {0..79} + do + ./rebound $gr $faster $N $i & + done + wait + done + done +done + diff --git a/rebound/source/examples/whfast512_unittests/Makefile b/rebound/source/examples/whfast512_unittests/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..ab234bd8ac1a52b6eaf7a07a6b552844c39ea847 --- /dev/null +++ b/rebound/source/examples/whfast512_unittests/Makefile @@ -0,0 +1,37 @@ +export AVX512=1 +export OPENGL=0 +export SERVER=0 +export OPT=-march=native +include ../../src/Makefile.defs + +# CCPROBLEM is defined in Makefile.defs to allow for +# a compact cross platform Makefile +.PHONY: all librebound +all: problem.c librebound + @echo "Compiling $< ..." + $(CCPROBLEM) + @echo "" + @echo "Compilation successful. To run REBOUND, execute the file '$(EXEREBOUND)'." + @echo "" + +librebound: + @echo "Compiling shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ + @-$(RM) $(LIBREBOUND) + @$(LINKORCOPYLIBREBOUND) + @echo "" + +clean: + @echo "Cleaning up shared library $(LIBREBOUND) ..." + $(MAKE) -C ../../src/ clean + @echo "Cleaning up local directory ..." + @-$(RM) $(LIBREBOUND) + @-$(RM) $(EXEREBOUND) + +rebound_webgl.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL enabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_webgl.html -o rebound_webgl.html + +rebound_console.html: problem.c + @echo "Compiling problem.c with emscripten (WebGL disabled)..." + emcc -O3 -I../../src/ ../../src/*.c problem.c -DSERVERHIDEWARNING -sSTACK_SIZE=655360 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sSINGLE_FILE -sEXPORTED_RUNTIME_METHODS="callMain" --shell-file ../../web_client/shell_rebound_console.html -o rebound_console.html diff --git a/rebound/source/examples/whfast512_unittests/problem.c b/rebound/source/examples/whfast512_unittests/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..de00934b7226f157a4d0ce16aa36545d28b3ffcf --- /dev/null +++ b/rebound/source/examples/whfast512_unittests/problem.c @@ -0,0 +1,354 @@ +/** + * Unit tests for WHFast512 + * + * This file contains units tests for WHFast512. + * Note that these are not run automatically + * because GitHub's CI does not support AVX5212. + */ + +#include +#include +#include +#include +#include +#include +#include "rebound.h" + +double all_ss_pos[9][3] = { + {-0.008816286905115728, -0.0010954664916791675, 0.0002143249385447027}, + {-0.05942272929227954, -0.46308699693348293, -0.032897989948949075}, + {-0.7276101005375593, 0.006575003332463933, 0.041795901908847084}, + {-0.5789530452882667, -0.8361530119313055, 0.0002611520181901174}, + {-1.45202492400084, 0.827519404194876, 0.052981833432457694}, + {4.492983939852296, 2.0661626247490354, -0.10909246996001629}, + {8.4974210980544, -4.8620394993693585, -0.2537835862373596}, + {12.959111916929283, 14.760785302864473, -0.1130656917933948}, + {29.787987348666505, -2.51460654509393, -0.6347108842010732} +}; + +double all_ss_vel[9][3] = { + {0.00014315746073017681, -0.0004912441820893999, 8.127678560998346e-07}, + {1.2978664284760637, -0.09524541469911743, -0.12677574364801253}, + {-0.019239782390457125, -1.1813975672919448, -0.01509392594251431}, + {0.8098712561282222, -0.5682496529341624, 2.6169897281383047e-05}, + {-0.37436417754222295, -0.6365841544564991, -0.004143932260467942}, + {-0.18818907783656452, 0.41919544951404614, 0.0024710497024424977}, + {0.14292308496870448, 0.2808676923735748, -0.010574288572728728}, + {-0.1734971049470612, 0.14019515029516152, 0.0027683484887051457}, + {0.014142947617173336, 0.18292110872737416, -0.004092845767710294} +}; + +double all_ss_mass[9] = { + 0.9999999999950272, + 1.6601208254808336e-07, + 2.447838287784771e-06, + 3.0404326489511185e-06, + 3.2271560828978514e-07, + 0.0009547919099366768, + 0.0002858856700231729, + 4.366249613200406e-05, + 5.151383772628957e-05 +}; + +struct reb_simulation* setup_sim(int N){ + struct reb_simulation* r = reb_simulation_create(); + // Setup constants + r->dt = 4.0/365.25*2*M_PI; //6 days + r->G = 1.; + r->exact_finish_time = 0; + r->force_is_velocity_dependent = 0; + + // Initial conditions + for (int i = 0; i < N; i++) { + struct reb_particle p = {0}; + p.x = all_ss_pos[i][0]; + p.y = all_ss_pos[i][1]; + p.z = all_ss_pos[i][2]; + p.vx = all_ss_vel[i][0]; + p.vy = all_ss_vel[i][1]; + p.vz = all_ss_vel[i][2]; + p.m = all_ss_mass[i]; + reb_simulation_add(r, p); + } + reb_simulation_move_to_com(r); + return r; +} + +void gr_force(struct reb_simulation* r){ + double C2 = 10065.32 * 10065.32; + struct reb_particle* particles = r->particles; + const struct reb_particle source = particles[0]; + const double prefac1 = 6.*(r->G*source.m)*(r->G*source.m)/C2; + for (int i=1; iN; i++){ + const struct reb_particle p = particles[i]; + const double dx = p.x - source.x; + const double dy = p.y - source.y; + const double dz = p.z - source.z; + const double r2 = dx*dx + dy*dy + dz*dz; + const double prefac = prefac1/(r2*r2); + + particles[i].ax -= prefac*dx; + particles[i].ay -= prefac*dy; + particles[i].az -= prefac*dz; + particles[0].ax += p.m/source.m*prefac*dx; + particles[0].ay += p.m/source.m*prefac*dy; + particles[0].az += p.m/source.m*prefac*dz; + } +} + +int test_basic(){ + struct reb_simulation* r = setup_sim(9); + struct reb_simulation* r512 = reb_simulation_copy(r); + + r512->integrator = REB_INTEGRATOR_WHFAST512; + r512->ri_whfast512.gr_potential = 0; + r->integrator = REB_INTEGRATOR_WHFAST; + r->ri_whfast.coordinates = REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC; + r->ri_whfast.safe_mode = 0; + + double tmax = 1e2; + if (reb_simulation_integrate(r, tmax)>0) return 0; + if (reb_simulation_integrate(r512, tmax)>0) return 0; + + for (int i=0;iN;i++){ + if (fabs(r->particles[i].x - r512->particles[i].x)>1e-11){ + printf("Accuracy not met in basic test.\n"); + printf("%.16e\n",fabs(r->particles[i].x - r512->particles[i].x)); + return 0; + } + } + + reb_simulation_free(r); + reb_simulation_free(r512); + return 1; +} + +int test_number_of_planets(){ + // Different numbers of planets + for (int gr=0; gr<=1; gr++){ + for (int p=2; p<=9; p++){ + struct reb_simulation* r = setup_sim(p); + struct reb_simulation* r512 = reb_simulation_copy(r); + + r512->integrator = REB_INTEGRATOR_WHFAST512; + r512->ri_whfast512.gr_potential = gr; + if (gr) { + r->additional_forces = gr_force; + } + r->integrator = REB_INTEGRATOR_WHFAST; + r->ri_whfast.coordinates = REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC; + r->ri_whfast.safe_mode = 0; + + double tmax = 1e2; + if (reb_simulation_integrate(r, tmax)>0) return 0; + if (reb_simulation_integrate(r512, tmax)>0) return 0; + + for (int i=0;iN;i++){ + double prec = gr?1e-9:1e-11; + if (fabs(r->particles[i].x - r512->particles[i].x)>prec){ + printf("Accuracy not met in number_of_planets test with %d particles (gr = %d).\n", p, gr); + printf("%.16e\n",fabs(r->particles[i].x - r512->particles[i].x)); + return 0; + } + } + + reb_simulation_free(r); + reb_simulation_free(r512); + } + } + return 1; +} + +int test_N_systems(int N_systems, int planets){ + for (int gr=0; gr<=1; gr++){ + struct reb_simulation* r_single = setup_sim(planets+1); + r_single->integrator = REB_INTEGRATOR_WHFAST512; + r_single->ri_whfast512.gr_potential = gr; + struct reb_simulation* r_many = reb_simulation_copy(r_single); + r_many->ri_whfast512.N_systems = N_systems; + for (int i=1; iN; j++){ + reb_simulation_add(r_many, r_single->particles[j]); + } + } + + double tmax = 1e2; + if (reb_simulation_integrate(r_single, tmax)>0) return 0; + if (reb_simulation_integrate(r_many, tmax)>0) return 0; + + assert(r_single->t == r_many->t); + assert(N_systems*r_single->N == r_many->N); + + for (int i=0; iN; j++){ + int equal = r_single->particles[j].x == r_many->particles[r_single->N*i+j].x; + if (! equal){ + printf("Simulation with N_systems>1 not giving same results as simulation with N_systems=1 (gr=%d).\n", gr); + return 0; + } + } + } + } + + return 1; +} + +int test_com(){ + struct reb_simulation* r512 = setup_sim(9); + + r512->integrator = REB_INTEGRATOR_WHFAST512; + r512->ri_whfast512.gr_potential = 0; + + double tmax = 1e5; + if (reb_simulation_integrate(r512, tmax)>0) return 0; + struct reb_particle com = reb_simulation_com(r512); + assert(fabs(com.x)<1e-14); + assert(fabs(com.y)<1e-14); + assert(fabs(com.z)<1e-14); + + reb_simulation_free(r512); + return 1; +} + +int test_twobody(){ + struct reb_simulation* r512 = reb_simulation_create(); + r512->exact_finish_time = 0; + r512->integrator = REB_INTEGRATOR_WHFAST512; + r512->ri_whfast512.gr_potential = 0; + reb_simulation_add_fmt(r512, "m", 1.0); + reb_simulation_add_fmt(r512, "a", 1.0); + + double tmax = 10.*M_PI*2.; + r512->dt = tmax / 128; + if (reb_simulation_integrate(r512, tmax)>0) return 0; + assert(fabs(r512->particles[1].x-1.0)<2e-15); + assert(fabs(r512->particles[1].y)<2e-13); + assert(fabs(r512->particles[1].z)==0.0); + + reb_simulation_free(r512); + return 1; +} + +int test_gr(){ + struct reb_simulation* r = setup_sim(9); + struct reb_simulation* r512 = reb_simulation_copy(r); + + r512->integrator = REB_INTEGRATOR_WHFAST512; + r512->ri_whfast512.gr_potential = 1; + r->integrator = REB_INTEGRATOR_WHFAST; + r->ri_whfast.coordinates = REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC; + r->ri_whfast.safe_mode = 0; + r->additional_forces = gr_force; + + double tmax = 1e2; + if (reb_simulation_integrate(r, tmax)>0) return 0; + if (reb_simulation_integrate(r512, tmax)>0) return 0; + + for (int i=0;iN;i++){ + if (fabs(r->particles[i].x - r512->particles[i].x)>1e-9){ + printf("Accuracy not met in GR test.\n"); + printf("%.16e\n",fabs(r->particles[i].x - r512->particles[i].x)); + return 0; + } + } + + reb_simulation_free(r); + reb_simulation_free(r512); + return 1; +} + +int test_restart(){ + struct reb_simulation* r512 = setup_sim(9); + r512->integrator = REB_INTEGRATOR_WHFAST512; + r512->exact_finish_time = 0; + r512->ri_whfast512.gr_potential = 1; + r512->ri_whfast512.keep_unsynchronized = 1; + + double tmax = 1e2; + double tmaxfinal = 4.*tmax; + + struct reb_simulation* r512c = reb_simulation_copy(r512); + if (reb_simulation_integrate(r512c, tmaxfinal)>0) return 0; + + if (reb_simulation_integrate(r512, tmax)>0) return 0; + if (reb_simulation_integrate(r512, 2.*tmax)>0) return 0; + remove("test.bin"); + reb_simulation_save_to_file(r512, "test.bin"); + if (reb_simulation_integrate(r512, 3.*tmax)>0) return 0; + if (reb_simulation_integrate(r512, tmaxfinal)>0) return 0; + + struct reb_simulation* r512c2 = reb_simulation_create_from_file("test.bin", 0); + if (r512c2 == NULL) return 0; + if (reb_simulation_integrate(r512c2, 3.*tmax)>0) return 0; + if (reb_simulation_integrate(r512c2, tmaxfinal)>0) return 0; + + for (int i=0;iN;i++){ + assert(r512->t == r512c->t); + assert(r512->particles[i].m == r512c->particles[i].m); + assert(r512->particles[i].x == r512c->particles[i].x); + assert(r512->particles[i].vx == r512c->particles[i].vx); + assert(r512->t == r512c2->t); + assert(r512->particles[i].x == r512c2->particles[i].x); + assert(r512->particles[i].m == r512c2->particles[i].m); + assert(r512->particles[i].vx == r512c2->particles[i].vx); + } + + reb_simulation_free(r512); + reb_simulation_free(r512c); + reb_simulation_free(r512c2); + return 1; +} + +// Only needed for unit testing +void reb_integrator_whfast512_synchronize_fallback(struct reb_simulation* const r); + +int test_synchronization_fallback(){ + remove("test.bin"); + struct reb_simulation* r512 = setup_sim(9); + + r512->integrator = REB_INTEGRATOR_WHFAST512; + r512->ri_whfast512.gr_potential = 1; + reb_simulation_save_to_file_interval(r512, "test.bin", 1.0); + if (reb_simulation_integrate(r512, 2.5)>0) return 0; + reb_simulation_free(r512); + + struct reb_simulation* r1 = reb_simulation_create_from_file("test.bin", 1); + struct reb_simulation* r2 = reb_simulation_create_from_file("test.bin", 1); + assert(r1->ri_whfast512.is_synchronized == 0); + assert(r2->ri_whfast512.is_synchronized == 0); + reb_simulation_synchronize(r1); + reb_integrator_whfast512_synchronize_fallback(r2); + assert(r1->ri_whfast512.is_synchronized == 1); + assert(r2->ri_whfast512.is_synchronized == 1); + + for (int i=0;iN;i++){ + double dx = fabs(r1->particles[i].x - r2->particles[i].x); + double dvx = fabs(r1->particles[i].vx - r2->particles[i].vx); + if (dx>1e-15 || dvx>1e-15){ + printf("Accuracy not met in synchronization fallback test.\n"); + printf("i=%i diff_x=%.16e diff_vx=%.16e\n",i,dx, dvx); + return 0; + } + } + + reb_simulation_free(r1); + reb_simulation_free(r2); + return 1; +} + +int main(int argc, char* argv[]) { + assert(test_basic()); + assert(test_number_of_planets()); + assert(test_N_systems(2,1)); + assert(test_N_systems(2,2)); + assert(test_N_systems(2,3)); + assert(test_N_systems(2,4)); + assert(test_N_systems(4,1)); + assert(test_N_systems(4,2)); + assert(test_restart()); + assert(test_com()); + assert(test_twobody()); + assert(test_gr()); + assert(test_synchronization_fallback()); + printf("All tests passed.\n"); +} diff --git a/rebound/source/ipython_examples/AdvWHFast.ipynb b/rebound/source/ipython_examples/AdvWHFast.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..d29ae810ce809ab2f6d6c2130145359a44a334c6 --- /dev/null +++ b/rebound/source/ipython_examples/AdvWHFast.ipynb @@ -0,0 +1,440 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "# Advanced settings for WHFast: Extra speed, accuracy, and additional forces\n", + "\n", + "There are several performance enhancements one can make to WHFast. However, each one has pitfalls that an inexperienced user can unwittingly fall into. We therefore chose safe default settings that make the integrator difficult to misuse. **This makes the default WHFast substantially slower and less accurate than it can be**. Here we describe how to alter the integrator settings to improve WHFast's performance.\n", + "\n", + "**TL;DR**\n", + "\n", + "As long as \n", + "\n", + "1. you don't add, remove or otherwise modify particles between timesteps\n", + "2. you get your outputs by passing a list of output times ahead of time and access the `particles` pointer between calls to `sim.integrate()` (see, e.g., the Visualization section of [WHFast.ipynb](../WHFast))\n", + "\n", + "you can set `sim.ri_whfast.safe_mode = 0` to get a substantial performance boost. Under the same stipulations, you can set `sim.ri_whfast.corrector = 11` to get much higher accuracy, at a nearly negligible loss of performance (as long as there are many timesteps between outputs).\n", + "\n", + "If you want to modify particles, or if the code breaks with these advanced settings, read below for details, and check out the Common mistake with WHFast section at the bottom of [WHFast.ipynb](../WHFast)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "**The Wisdom-Holman algorithm**\n", + "\n", + "In order to understand and apply the various integrator flags, we need to first understand the Wisdom-Holman scheme (see, e.g., Wisdom & Holman 1991, or Rein & Tamayo 2015 for more details).\n", + "\n", + "The Wisdom-Holman algorithm consists of alternating *Keplerian* steps that evolve particles on their two-body Keplerian orbits around the star with *interaction* steps that apply impulses to the particles' velocities from the interactions between bodies. The basic algorithm for a single timestep $dt$ is a Leapfrog Drift-Kick-Drift scheme with an *interaction* kick over the full $dt$ sandwiched between half timesteps of *Keplerian* drift:\n", + "\n", + "$H_{Kepler}(dt/2)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt/2)$\n", + "\n", + "Timesteps like the one above are then concatenated over the full integration:\n", + "\n", + "$H_{Kepler}(dt/2)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt/2)$ $H_{Kepler}(dt/2)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt/2)$ ... $H_{Kepler}(dt/2)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt/2)$" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "**Combining Kepler steps and synchronizing**\n", + "\n", + "It turns out that Kepler steps take longer than interaction steps as long as you don't have many planets, so an obvious and important performance boost would be to combine adjacent Kepler half-steps into full ones, i.e.:\n", + "\n", + "$H_{Kepler}(dt/2)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt) ... \\:H_{Interaction}(dt)\\:H_{Kepler}(dt/2)$\n", + "\n", + "The issue is that if you were to, say, output the state of the particles as the simulation progressed, the positions would not correspond to anything real, since the beginning (or end) of one of the full $H_{Kepler}(dt)$ steps corresponds to some intermediate step in an abstract sequence of calculations for a given timestep. In order to get the particles' actual positions, we would have to calculate to the end the timestep we want the output for by splitting a full *Kepler* step back into two half-steps, e.g.,\n", + "\n", + "$H_{Kepler}(dt/2)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt)\\:H_{Interaction}(dt)\\:H_{Kepler}(dt/2) \\text{**PRINT OUTPUT**} H_{Kepler}(dt/2) H_{Interaction}(dt)\\:H_{Kepler}(dt)$...\n", + "\n", + "We call this step of reinserting half-Kepler steps to obtain the physical state of the particles *synchronizing*. This must be done whenever the **actual** states of the particles are required, e.g., before every output, or if one wanted to use the particles' states to compute additional changes to the particle orbits between timesteps. It is also necessary to synchronize each timestep whenever the MEGNO chaos indicator is being computed.\n", + "\n", + "**Conversions between Jacobi and Inertial Coordinates**\n", + "\n", + "It turns out that the most convenient coordinate system to work in for performing the Kepler steps is often Jacobi coordinates (see, e.g., 9.5.4 of Murray & Dermott). WHFast therefore works in Jacobi coordinates by default, converting to inertial coordinates when it needs to (e.g. for output, and for doing the direct gravity calculation in the interaction step, which is most easily done in inertial coordinates).\n", + "\n", + "One feature of WHFast is that it works in whatever inertial coordinate system you choose for your initial conditions. This means that whatever happens behind the scenes, the user always gets the particles' inertial coordinates at the front end. At the beginning of every timestep, WHFast therefore has to somehow obtain the Jacobi coordinates. The straightforward thing would be to convert from the inertial coordinates to Jacobi coordinates every timestep, but these conversions slow things down, and they represent extra operations that grow the round-off error.\n", + "\n", + "WHFast therefore stores the Jacobi coordinates internally throughout the time it is running, and only recalculates Jacobi coordinates from the inertial ones if told to do so. Since Jacobi coordinates reference particles to the center of mass of all the particles with indices lower than their own (typically all the particles interior to them), the main reason you would have to recalculate Jacobi coordinates is if between timesteps you choose to somehow change the particles' positions or velocities (give them kicks in addition to their mutual gravity), or change the particles' masses. \n", + "\n", + "**Overriding the defaults**\n", + "\n", + "Let's begin by importing rebound, and defining a simple function to reset rebound and initialize a new simulation with a test case," + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "def test_case():\n", + " sim = rebound.Simulation()\n", + " sim.integrator = 'whfast'\n", + " sim.add(m=1.) # add the Sun\n", + " sim.add(m=3.e-6,e=0.99, a=1.) # add Earth\n", + " sim.move_to_com()\n", + " sim.dt = 0.2\n", + " return sim" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "By default WHFast synchronizes and recalculates the Jacobi coordinates from the inertial ones every timestep. This guarantees that the user always gets physical particle states for output, and ensures reliable output if the user decides to, e.g., grow the particles' masses between timesteps. \n", + "\n", + "Now that you understand the pitfalls, if you want to boost WHFast's performance, you simply set" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "sim = test_case()\n", + "sim.ri_whfast.safe_mode = 0" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "Now it becomes the user's responsibility to appropriately synchronize and recalculate jacobi coordinates when needed. You can tell WHFast to recalculate Jacobi coordinates for a given timestep (say after you change a particle's mass) with the `sim.ri_whfast.recalculate_coordinates_this_timestep` flag. After it recalculates Jacobi coordinates, WHFast will reset this flag to zero, so you just set it each time you mess with the particles." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "deletable": true, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "safe_mode = 1\n", + "---------------------------------\n", + "REBOUND version: \t3.4.0\n", + "REBOUND built on: \tMay 31 2017 11:53:50\n", + "Number of particles: \t2\n", + "Selected integrator: \twhfast\n", + "Simulation time: \t6.2831853071795858e+05\n", + "Current timestep: \t0.200000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n", + "Safe integration took 1.4043679237365723 seconds\n", + "---------------------------------\n", + "REBOUND version: \t3.4.0\n", + "REBOUND built on: \tMay 31 2017 11:53:50\n", + "Number of particles: \t2\n", + "Selected integrator: \twhfast\n", + "Simulation time: \t6.2831853071795858e+05\n", + "Current timestep: \t0.200000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n", + "Manual integration took 0.8836901187896729 seconds\n" + ] + } + ], + "source": [ + "import time\n", + "Porb = 2*np.pi # orbital period for Earth, using units of G = 1, solar masses, AU and yr/2pi\n", + "\n", + "sim = test_case()\n", + "print(\"safe_mode = {0}\".format(sim.ri_whfast.safe_mode))\n", + "start_time = time.time()\n", + "sim.integrate(1.e5*Porb)\n", + "sim.status()\n", + "print(\"Safe integration took {0} seconds\".format(time.time() - start_time))\n", + "\n", + "sim = test_case()\n", + "sim.ri_whfast.safe_mode = 0\n", + "start_time = time.time()\n", + "sim.integrate(1.e5*Porb)\n", + "sim.status()\n", + "print(\"Manual integration took {0} seconds\".format(time.time() - start_time))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "source": [ + "In our test case with a single planet, there is effectively no interaction step, and by combining Kepler steps we get almost the full factor of 2 speedup we expect. Because Kepler steps are expensive (by virtue of having to solve the transcendental Kepler equation), this will always be an important performance boost for few-planet cases.\n", + "\n", + "Note that one case where REBOUND needs to synchronize every timestep is if you're using the MEGNO chaos indicator. So if you call" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "sim.init_megno()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "REBOUND will synchronize every timestep even if you set `sim.ri_whfast.safe_mode = 0` and never explicitly call `sim.synchronize()`." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "source": [ + "**Modifying particles/forces**\n", + "\n", + "Again, if performance is a factor in your simulations, you would not want to write a custom stepper in python that modifies the particles, since this will be very slow. You could either write a modified C version of `reb_simulation_integrate` in `src/librebound.c` (the flags are defined in `librebound.h`, and have the same name as the python ones, just without `sim.` in front), or you can use the REBOUNDXF library, which takes care of this for you and supports many typically used modifications. We again illustrate a simple scheme with python code:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "sim = test_case()\n", + "sim.ri_whfast.safe_mode = 0\n", + "def integrate_mod(sim, t_final):\n", + " while sim.t < t_final:\n", + " sim.step()\n", + " sim.particles[1].m += 1.e-10\n", + " sim.ri_whfast.recalculate_coordinates_this_timestep = 1\n", + " sim.synchronize()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "Here, because we grow the mass of the planet every timestep, we have to recalculate Jacobi coordinates every timestep (since they depend on the masses of the particles). We therefore manually set the flag to recalculate them the next timestep every time we make a change. Here we would actually get the same result if we just left `sim.ri_whfast.safe_mode = 1`, since when recalculating Jacobi coordinates, WHFast automatically has to synchronize in order to get real positions and velocities for the planets. In this case WHFast is therefore synchronizing and recalculating Jacobi coordinates every timestep.\n", + "\n", + "But imagine now that instead of growing the mass, we continually add an impulse to vx:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "sim = test_case()\n", + "sim.ri_whfast.safe_mode = 0\n", + "def integrate_mod(sim, t_final):\n", + " while sim.t < t_final:\n", + " sim.step()\n", + " sim.particles[1].vx += 1.e-10*sim.dt\n", + " sim.ri_whfast.recalculate_coordinates_this_timestep = 1\n", + " sim.synchronize()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "This would not give accurate results, because the `sim.particles[1].vx` we access after `sim.step()` isn't a physical velocity (it's missing a half-Kepler step). It's basically at an intermediate point in the calculation. In order to make this work, one would call `sim.synchronize()` between `sim.step()` and accessing `sim.particles[1].vx`, to ensure the velocity is physical." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "**Symplectic correctors**\n", + "\n", + "Symplectic correctors make the Wisdom-Holman scheme higher order (without symplectic correctors it's second order). The great thing about them is that they only need to get applied when you synchronize. So if you just need to synchronize to output, and there are many timesteps between outputs, they represent a very small performance loss for a huge boost in accuracy (compare for example the green line (11th order corrector) to the red line (no corrector) in Fig. 4 of Rein & Tamayo 2015--beyond the right of the plot, where the round-off errors dominate, the two lines would rise in unison). We have implemented symplectic correctors up to order 11. You can set the order with (must be an odd number), e.g.," + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [ + "sim.ri_whfast.corrector = 11" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "By default, WHFast does not use correctors, i.e., sim.integrator_whfast_corrector = 0. This is because the default is also to synchronize every timestep. An Nth order corrector does N-1 Kepler steps of various sizes, so an 11th order corrector done every timestep would increase the number of Kepler steps by an order of magnitude, making WHFast unacceptably slow. So keep in mind that if you're doing modifications that require recalculating jacobi coordinates or synchronizing every timestep, you should turn off symplectic correctors (the default) unless you really need the accuracy." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Changing the internal coordinate system**\n", + "\n", + "WHFast by default uses Jacobi coordinates internally. This works well for planetary systems which are stable and orbits are not crossing. However, in some cases a different coordinate system might perform better. WHFast also support so-called democratic heliocentric coordinates and the so called WHDS coordinates. For more information on these coordinates systems [see Hernandez and Dehnen (2016)](https://arxiv.org/abs/1612.05329). To select a different coordinate system, use the following syntax:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sim.ri_whfast.coordinates = 'jacobi' #default\n", + "sim.ri_whfast.coordinates = 'democraticheliocentric' \n", + "sim.ri_whfast.coordinates = 'whds' " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that symplectic corrector are only compatible with Jacobi coordinates because both democratic heliocentric and WHDS include a so called jump step." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "deletable": true, + "editable": true + }, + "source": [ + "**Warning messages**\n", + "\n", + "If you choose a timestep that is larger than the smallest dynamical timescale and WHFast has difficulties to solve the Kepler problem, you will receive a warning message." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false, + "deletable": true, + "editable": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rein/git/rebound/rebound/simulation.py:305: RuntimeWarning: WHFast convergence issue. Timestep is larger than at least one orbital period.\n", + " warnings.warn(msg[1:], RuntimeWarning)\n" + ] + } + ], + "source": [ + "sim = test_case()\n", + "sim.dt = 1000.\n", + "sim.integrate(1000.)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "deletable": true, + "editable": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/rebound/source/ipython_examples/ChaoticHyperion.ipynb b/rebound/source/ipython_examples/ChaoticHyperion.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..b5e8f454f8fbe7439e1c8bf26d7ab1d35eae5f34 --- /dev/null +++ b/rebound/source/ipython_examples/ChaoticHyperion.ipynb @@ -0,0 +1,250 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "6882e778", + "metadata": {}, + "source": [ + "# Chaotic Hyperion\n", + "In this example, we simulate the spin of Hyperion. The spin evolution is governed by an ordinary differential equation that is coupled to the moon's orbit. \n", + "\n", + "We start by importing REBOUND, numpy and matplotlib." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "e350dbbb", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "0bc568b2", + "metadata": {}, + "source": [ + "The right hand side of ODEs can be implemented in either python or in C. Although not absolutely necessary for this example, we here show how to implement the RHS in C. This is often significantly faster than using a python callback function. \n", + "\n", + "We use a simple spin model which is one second order ODE, or a set of two coupled first order ODEs. For more details on the physics behind this model, see Danby (1962), Goldreich and Peale (1966), and Wisdom and Peale (1983). The RHS of this set of ODEs implemented in C is:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "79a48333", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Overwriting rhs.c\n" + ] + } + ], + "source": [ + "%%writefile rhs.c\n", + "#include \"rebound.h\"\n", + "void derivatives(struct reb_ode* const ode, double* const yDot, const double* const y, const double t){\n", + " struct reb_orbit o = reb_orbit_from_particle(ode->r->G, ode->r->particles[1], ode->r->particles[0]);\n", + " \n", + " double omega2 = 3.*0.26; \n", + " yDot[0] = y[1];\n", + " yDot[1] = -omega2/(2.*o.d*o.d*o.d)*sin(2.*(y[0]-o.f));\n", + "}\n" + ] + }, + { + "cell_type": "markdown", + "id": "33cd1c9c", + "metadata": {}, + "source": [ + "We now compile this into a shared library. We need the REBOUND headers and library for this. The following is a bit of hack: we just copy the files into the current folder. This works if you've installed REBOUND from the git repository. Otherwise, you'll need to find these files manually (which might depend on your python environment). " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "7d3c176a", + "metadata": {}, + "outputs": [], + "source": [ + "!cp ../src/librebound.so .\n", + "!cp ../src/rebound.h .\n", + "!gcc -c -O3 -fPIC rhs.c -o rhs.o\n", + "!gcc -L. -shared rhs.o -o rhs.so -lrebound " + ] + }, + { + "cell_type": "markdown", + "id": "2421c0e7", + "metadata": {}, + "source": [ + "Using ctypes, we can load the library into python" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11736a91", + "metadata": {}, + "outputs": [], + "source": [ + "from ctypes import cdll\n", + "clibrhs = cdll.LoadLibrary(\"rhs.so\")" + ] + }, + { + "cell_type": "markdown", + "id": "37ac5371", + "metadata": {}, + "source": [ + "The following function is setting up the N-body simulation as well as the ODE system that governs the spin evolution. Note that we set the `derivatives` function pointer to the C function we've just compiled. You could also set this function pointer to a python function and avoid all the C complications." + ] + }, + { + "cell_type": "code", + "execution_count": 133, + "id": "18043d1d", + "metadata": {}, + "outputs": [], + "source": [ + "def setup():\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1) # Saturn\n", + " sim.add(a=1, e=0.123233) # Hyperion, massless, semi-major axis of 1\n", + " sim.integrator = \"BS\"\n", + " sim.ri_bs.eps_rel = 1e-12 # tolerance\n", + " sim.ri_bs.eps_abs = 1e-12\n", + " \n", + " ode_spin = sim.create_ode(length=2, needs_nbody=True)\n", + " ode_spin.y[0] = 0.01 # initial conditions that lead to chaos\n", + " ode_spin.y[1] = 1\n", + " ode_spin.derivatives = clibrhs.derivatives\n", + " \n", + " return sim, ode_spin" + ] + }, + { + "cell_type": "markdown", + "id": "85c097cf", + "metadata": {}, + "source": [ + "We will create two simulations that are slightly offset from each other." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8182b908", + "metadata": {}, + "outputs": [], + "source": [ + "sim, ode_spin = setup()\n", + "sim2, ode_spin2 = setup()\n", + "ode_spin2.y[0] += 1e-8 # small perturbation" + ] + }, + { + "cell_type": "markdown", + "id": "c597773f", + "metadata": {}, + "source": [ + "With these two simulations, we can measure the growing divergence of nearby trajectories, a key feature of chaos." + ] + }, + { + "cell_type": "code", + "execution_count": 149, + "id": "4eb25927", + "metadata": {}, + "outputs": [], + "source": [ + "times = 2.*np.pi*np.linspace(0,30,100) # a couple of orbits\n", + "obliq = np.zeros((len(times)))\n", + "obliq2 = obliq.copy()\n", + "\n", + "for i, t in enumerate(times):\n", + " sim.integrate(t, exact_finish_time=1)\n", + " sim2.integrate(t, exact_finish_time=1) \n", + " obliq[i] = ode_spin.y[0]\n", + " obliq2[i] = ode_spin2.y[0]" + ] + }, + { + "cell_type": "markdown", + "id": "98a92abf", + "metadata": {}, + "source": [ + "Finally, let us plot the divergence as a function of time." + ] + }, + { + "cell_type": "code", + "execution_count": 150, + "id": "13ac8f3a", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1)\n", + "ax.set_xlabel(\"time [orbits]\")\n", + "ax.set_ylabel(\"obliquity difference [degrees]\")\n", + "ax.set_yscale(\"log\")\n", + "ax.set_ylim([1e-8,1e2])\n", + "o1 = np.remainder((obliq-obliq2)*180/np.pi,360.)\n", + "o2 = np.remainder((obliq2-obliq)*180/np.pi,360.)\n", + "ax.scatter(times/np.pi/2.,np.minimum(o1,o2))\n", + "ax.plot(times/np.pi/2.,1e-8/np.pi*180.*np.exp(times/(np.pi*2.)/1.2),color=\"black\");" + ] + }, + { + "cell_type": "markdown", + "id": "c2bc381f", + "metadata": {}, + "source": [ + "On a log-linear scale, we see that the divergence follows a straight line, indicating exponential growth. The Lyapunov timescale is approximately 1.2 orbits. About 25 days! (Wikipedia says ~30 days which is close enough given the very simplistic model)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/rebound/source/ipython_examples/Cheartbeat.ipynb b/rebound/source/ipython_examples/Cheartbeat.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..29d1b36f8a3499e0cef721a91fca144cb1d9c100 --- /dev/null +++ b/rebound/source/ipython_examples/Cheartbeat.ipynb @@ -0,0 +1,300 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Using a C Heartbeat function\n", + "The heartbeat function of a REBOUND simulation gets called after every timestep. There are many different things you can do in a heartbeat function, for example creating outputs, adding particles, adjusting parameters that depend on time, etc. REBOUND supports heartbeat functions in both its C and python interface. \n", + "\n", + "A python heartbeat function can sometimes become the bottleneck of a simulation because it gets called every single timestep. This tutorial shows you how to implement the heartbeat function in C, then link it to REBOUND using python. Note that alternatively you can of course always just use the C version of REBOUND directly and never bother with python at all.\n", + "\n", + "We start by creating a REBOUND simulation which contains the planets of our Solar System as a test case." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "rebound.data.add_solar_system(sim)\n", + "sim.integrator = \"whfast\"\n", + "sim.dt = sim.particles[1].P/30.13 # About 30 steps for each Mercury Orbit" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us first create a simple heartbeat function in python. It simply calculates the eccentricity of Mercury (you could do something with it, here we just calculate it and then ignore it)." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Eccentricity: 0.205636 \n" + ] + } + ], + "source": [ + "# We use a global variable to store the value of the eccentricity\n", + "e = 0 \n", + "def heartbeat(sim_pointer):\n", + " global e\n", + " # The function argument is a pointer to the simulation:\n", + " # Here we get its contents:\n", + " sim = sim_pointer.contents \n", + " e = sim.particles[1].e\n", + "sim.heartbeat = heartbeat\n", + "sim.integrate(sim.t+1)\n", + "print(\"Eccentricity: %f \" %e)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's measure how long it takes to integrate 1000 orbits:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Runtime: 0.474900 s\n" + ] + } + ], + "source": [ + "import time\n", + "start = time.time()\n", + "sim.integrate(sim.t + sim.particles[1].P*1000)\n", + "stop = time.time()\n", + "print(\"Runtime: %f s\"%(stop-start))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now implement this in C. For this to work, it is best to download and work with a full REBOUND repository (download the package from github, rather than just installing the python package with pip install). \n", + "\n", + "We first write our heartbeat function in C. The following cell writes to a new file in the current directory, `heartbeat.c` (you can also use an external editor and terminal window to do the same without the jupyter magic commands):" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Overwriting heartbeat.c\n" + ] + } + ], + "source": [ + "%%writefile heartbeat.c\n", + "#include \"rebound.h\"\n", + "double e =0; // global variable\n", + "void heartbeat(struct reb_simulation* sim_pointer){\n", + " struct reb_orbit orbit = reb_orbit_from_particle(sim_pointer->G, sim_pointer->particles[0], sim_pointer->particles[1]);\n", + " e = orbit.e;\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before we compile and link our heartbeat function as a shared library, we need the REBOUND header file and the shared library file. Different operating systems and compilers handles the paths to shared libraries differently. This can quickly get rather frustrating. If you're familiar with C, by all means go ahead and do it the proper way. A hack to get around most of these difficulties is to simply copy the REBOUND header and library to the current folder." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "!cp ../src/librebound.so .\n", + "!cp ../src/rebound.h ." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you installed REBOUND with pip, you can look up the paths to the two files in python and e.g. create symlinks to them into your working directory." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/path/to/your/venv/lib/python3.9/site-packages/rebound/../librebound.cpython-39-x86_64-linux-gnu.so\n", + "/path/to/your/venv/lib/python3.9/site-packages/rebound/rebound.h\n" + ] + } + ], + "source": [ + "from pathlib import Path\n", + "print(rebound.__libpath__)\n", + "print(Path(rebound.__file__).parent / \"rebound.h\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we can compile and link the code. `-fPIC` instructs gcc to create Position Independent Code, which might not be needed on your operating system." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "!gcc -c -O3 -fPIC heartbeat.c -o heartbeat.o" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "!gcc -L. -shared heartbeat.o -o heartbeat.so -lrebound " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we load the library using ctypes." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "from ctypes import cdll\n", + "clibheartbeat = cdll.LoadLibrary(\"heartbeat.so\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now finally set the function pointer in our simulation to the new heartbeat function and then run the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "sim.heartbeat = clibheartbeat.heartbeat" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Runtime: 0.153589 s\n" + ] + } + ], + "source": [ + "start = time.time()\n", + "sim.integrate(sim.t + sim.particles[1].P*1000)\n", + "stop = time.time()\n", + "print(\"Runtime: %f s\"%(stop-start))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that the simulation runs significantly faster using the C heartbeat function as we avoid all the python overhead.\n", + "\n", + "We can print out the value of the global variable `e` in the heartbeat library (using global variables in a shared library is not the best way to store data - all simulations will see the same variable and you could end up with unexpected behaviour if you are running multiple simulations in one python program)." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.2057293010348337\n" + ] + } + ], + "source": [ + "from ctypes import c_double\n", + "print(c_double.in_dll(clibheartbeat,\"e\").value)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/rebound/source/ipython_examples/Checkpoints.ipynb b/rebound/source/ipython_examples/Checkpoints.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..d22ee84be9779acbafd80bf8fa204ed6be26f6a2 --- /dev/null +++ b/rebound/source/ipython_examples/Checkpoints.ipynb @@ -0,0 +1,120 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Checkpoints\n", + "You can easily save and load a REBOUND simulation to a binary file. The binary file includes all information about the particles (mass, position, velocity, etc), as well as the current simulation settings such as time, integrator choice, etc.\n", + "\n", + "Let's add three particles to REBOUND and save them to a file." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t3.8.0\n", + "REBOUND built on: \tFeb 3 2019 13:37:32\n", + "Number of particles: \t3\n", + "Selected integrator: \twhfast\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-6, a=1.)\n", + "sim.add(a=2.)\n", + "sim.integrator = \"whfast\"\n", + "sim.save_to_file(\"checkpoint.bin\")\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The binary files are small in size and store every floating point number exactly, so you don't have to worry about efficiency or losing precision. You can make lots of checkpoints if you want!\n", + "\n", + "Let's delete the old REBOUND simulation (that frees up the memory from that simulation) and then read the binary file we just saved." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t3.8.0\n", + "REBOUND built on: \tFeb 3 2019 13:37:32\n", + "Number of particles: \t3\n", + "Selected integrator: \twhfast\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "del sim\n", + "sim = rebound.Simulation(\"checkpoint.bin\")\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that you will have to re-set any function pointers manually (if you're using them)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/rebound/source/ipython_examples/Churyumov-Gerasimenko.ipynb b/rebound/source/ipython_examples/Churyumov-Gerasimenko.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..d2d7b2d50c7e9f0a472abf50239107f38a397638 --- /dev/null +++ b/rebound/source/ipython_examples/Churyumov-Gerasimenko.ipynb @@ -0,0 +1,355 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# The comet 67P/Churyumov–Gerasimenko\n", + "\n", + "This tutorial teaches you how to use the IAS15 integrator (Rein and Spiegel, 2015) to simulate the orbit of 67P/Churyumov–Gerasimenko. We will download the data from NASA Horizons and visualize the orbit using matplotlib.\n", + "\n", + "This tutorial assumes that you have already installed REBOUND." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**NASA Horizons**\n", + "\n", + "If you're interested in Solar System dynamics, you have probably heard of NASA Horizons. It's a large database of Solar System objects, their orbits and physical properties. It includes planets, moons, satellites, asteroids, comets and spacecrafts. With REBOUND, you can easily import data from NASA Horizons. As an example, let's pull in the present day positions of Jupiter, Saturn and the Sun:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Sun'... \n", + "Found: Sun (10) \n", + "Searching NASA Horizons for 'Jupiter'... \n", + "Found: Jupiter Barycenter (5) (chosen from query 'Jupiter')\n", + "Searching NASA Horizons for 'Saturn'... \n", + "Found: Saturn Barycenter (6) (chosen from query 'Saturn')\n" + ] + } + ], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(\"Sun\")\n", + "sim.add(\"Jupiter\")\n", + "sim.add(\"Saturn\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now all the data is in REBOUND! Let's have a look at the orbits of the two planets." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n" + ] + } + ], + "source": [ + "for orbit in sim.orbits():\n", + " print(orbit)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Although there are three bodies, the `orbits()` function only returns two objects as the orbit for the Sun would be a little boring. The function returns the orbits in Jacobi coordinates. Since we didn't specify a value for $G$, REBOUND assumes that $G=1$. The unit of length is one astronomical unit, the unit of time is one year/$2\\pi$.\n", + "\n", + "Let's add something more interesting to our simulation: the comet 67P/Churyumov-Gerasimenko. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Churyumov-Gerasimenko'... \n", + "Found: 67P/Churyumov-Gerasimenko (chosen from query 'Churyumov-Gerasimenko')\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rein/git/rebound/rebound/horizons.py:165: RuntimeWarning: Warning: Mass cannot be retrieved from NASA HORIZONS. Set to 0.\n", + " warnings.warn(\"Warning: Mass cannot be retrieved from NASA HORIZONS. Set to 0.\", RuntimeWarning)\n" + ] + } + ], + "source": [ + "sim.add(\"Churyumov-Gerasimenko\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When searching for a body by name, REBOUND takes the first dataset that Horizons offers. In this case, it's a set of parameters from 1962. You probably want to go to the Horizons website and check that the values you are using are up-to-date and appropriate for what you want to do. You can also use more complicated Horizons queries, for example, to get the most recent apparition solution for the comet, use\n", + "\n", + " sim.add(\"NAME=Churyumov-Gerasimenko; CAP\")\n", + "\n", + "You can also use the IAU asteroid number for numbered asteroids, or the database record numbers from Horizons for objects not yet numbered by the IAU (but note that database record numbers can change as the database gets rearranged with new discoveries, see https://ssd.jpl.nasa.gov/?horizons_doc#sb for details). In our case the current database record number is 900647, so you could use `sim.add(\"900647\")` to get the newest set of orbital parameters for Churyumov-Gerasimenko.\n", + "\n", + "NASA Horizons doesn't have masses for all bodies. If REBOUND doesn't find a mass, you get a warning message (see above). In our case, we don't need the mass of the comet (it's really small). However, it you want, you can add it manually using the syntax `sim.add(\"Churyumov-Gerasimenko\", m=5.03e-18)`.\n", + "\n", + "Before we integrate the orbits, let's plot the instantaneous orbits using the built-in REBOUND class `OrbitPlot`." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = rebound.OrbitPlot(sim, unitlabel=\"[AU]\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Integration with IAS15**\n", + "\n", + "We will integrate backwards in time for 70 years. Because we don't know what will happen yet (hint: a close encounter) we will use the IAS15 integrator. It is fast, accurate and has adaptive timesteps to capture any potential close encounters. \n", + "\n", + "To integrate backwards, we could set a negative timestep or multiply all velocities with $-1$. We'll choose the first option:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "sim.dt = -0.01" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "While we're integrating, let's store the positions of Jupiter and the comet at 10000 times during the interval. We'll need to prepare a few variables to do that:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "Noutputs = 10000\n", + "year = 2.*np.pi # One year in units where G=1\n", + "times = np.linspace(0.,-70.*year, Noutputs)\n", + "x = np.zeros((2,Noutputs))\n", + "y = np.zeros((2,Noutputs))\n", + "z = np.zeros((2,Noutputs))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we're ready to start the integration:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrator = \"ias15\" # IAS15 is the default integrator, so we actually don't need this line\n", + "sim.move_to_com() # We always move to the center of momentum frame before an integration\n", + "ps = sim.particles # ps is now an array of pointers and will change as the simulation runs\n", + "\n", + "for i,time in enumerate(times):\n", + " sim.integrate(time)\n", + " x[0][i] = ps[1].x # This stores the data which allows us to plot it later\n", + " y[0][i] = ps[1].y\n", + " z[0][i] = ps[1].z\n", + " x[1][i] = ps[3].x\n", + " y[1][i] = ps[3].y\n", + " z[1][i] = ps[3].z" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Visualization with matplotlib**\n", + "\n", + "Let's plot the orbits of Jupiter (blue) and the comet (green) to get an idea of what was going on during our integration." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(5,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlim([-6,6])\n", + "ax.set_ylim([-6,6])\n", + "plt.plot(x[0], y[0]);\n", + "plt.plot(x[1], y[1]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see in the above image, the comet 67P had a rather strong encounter with Jupiter a few years ago. Of course, if you wanted to do a realistic simulation of that encounter, you'd need to include all the other planets and maybe even some non-gravitational effects for the comet. However, let's stick with our simplistic model and try to find out when exactly the two bodies had a close encounter. We already stored the data, so we can just plot their distance as a function of time." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Minimum distance (0.047401 AU) occured at time: -63.790379 years.\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+QAAAHACAYAAAAr/6IYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC5hklEQVR4nOzdd3hb9b0/8PfRsjzkvbdjJ3H2DiSEDQFKmYUOugftbemAbn69vb0dt3TSltKWUjqgG1rK3iEkhIRA9nASx47jvZe8tM/vj3O+cgIZlnSkcyS9X8+T52kTW/rGKNL5nM+SZFmWQUREREREREQxZdL7AERERERERETJiAE5ERERERERkQ4YkBMRERERERHpgAE5ERERERERkQ4YkBMRERERERHpgAE5ERERERERkQ4YkBMRERERERHpgAE5ERERERERkQ4seh8g2gKBALq6uuBwOCBJkt7HISIiIiIiogQnyzLGxsZQWloKk+n0efCED8i7urpQUVGh9zGIiIiIiIgoybS3t6O8vPy0f57wAbnD4QCg/CAyMzN1Pg0RERERERElOqfTiYqKimA8ejoJH5CLMvXMzEwG5ERERERERBQzZ2ub5lA3IiIiIiIiIh0wICciIiIiIiLSAQNyIiIiIiIiIh0wICciIiIiIiLSAQNyIiIiIiIiIh0wICciIiIiIiLSAQNyIiIiIiIiIh0wICciIiIiIiLSAQNyIiIiIiIiIh0wICciIiIiIiLSAQNyIiIiIiIiIh0wICciIiIiIiLSAQNyIiIiIiIiIh1Y9D4AERERERFRKIYnPPjnjnZsbR7EyKQHhY4UXDCnADcuL0dGCkMcih98tRIRERERUVyQZRmP7OjAd55qwLjbd9KfvXSoD/dsaMJdNy7C5fOLdDohUWgYkBMRERERkeHJsozvPnUIf3itBQAwryQT711VgfKcVDT1jePvb7Th+OAkbn1oB/776nn4xPmzdD4x0dkxICciIiIiIsP7wXOHg8H4l9fPwacvqoPZJAEALp1XhA+vrcYPnj2MP209ju89fQg2iwkfWlOt44mJzo5D3YiIiIiIyND+vbMDv910DADwgxsX4bOXzA4G44Ldasa3rpmP2y+bDQD49pMN2No0EPOzEoWCATkRERERERlW2+Ak/vuxAwCAz15ch/eurjzt10qShC9cOhs3LiuDPyDj9n/u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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlabel(\"time [yrs]\")\n", + "ax.set_ylabel(\"distance [AU]\")\n", + "distance = np.sqrt(np.square(x[0]-x[1])+np.square(y[0]-y[1])+np.square(z[0]-z[1]))\n", + "plt.plot(times/year, distance);\n", + "closeencountertime = times[np.argmin(distance)]/year\n", + "print(\"Minimum distance (%f AU) occured at time: %f years.\" % (np.min(distance),closeencountertime))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that the minimum distance occured approximately 56 years ago (as of writing this tutorial). Let's see what date that was using some python magic and the datetime module:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'1959-02-04 08:09'" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import datetime\n", + "encounterdate = datetime.datetime.today() + datetime.timedelta(days=365.25*closeencountertime)\n", + "encounterdate.strftime(\"%Y-%m-%d %H:%M\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you check [Wikipedia](https://en.wikipedia.org/wiki/67P/Churyumov–Gerasimenko) or [JPL](https://ssd.jpl.nasa.gov/sbdb.cgi?sstr=67P;old=0;orb=0;cov=0;log=0;cad=1#cad), the encounter happened on 1959-Feb-04 06:24, so we are not far off (it turns out that's because of jets and other non-gravitational forces from the comet!)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/CloseEncounters.ipynb b/rebound/source/ipython_examples/CloseEncounters.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..1ad3c8c95c12153247168fda59da057f13310c84 --- /dev/null +++ b/rebound/source/ipython_examples/CloseEncounters.ipynb @@ -0,0 +1,332 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Catching close encounters using exceptions\n", + "Sometimes one is interested in catching a close encounter between two planets. This can easily be done with REBOUND. What you do when a close encounter happens is up to you.\n", + "\n", + "Some integrators are better suited to simulate close encounters than others. For example, the non-symplectic integrator IAS15 has an adaptive timestep scheme that resolves close encounters very well. Integrators that use a fixed timestep like WHFast are more likely to miss close encounters.\n", + "\n", + "Let's start by setting up a two-planet system that will go unstable on a short timescale:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "def setupSimulation():\n", + " sim = rebound.Simulation()\n", + " sim.integrator = \"ias15\" # IAS15 is the default integrator, so we don't need this line\n", + " sim.add(m=1.)\n", + " sim.add(m=1e-3,a=1.)\n", + " sim.add(m=5e-3,a=1.25)\n", + " sim.move_to_com()\n", + " return sim" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's integrate this system for 100 orbital periods." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "sim = setupSimulation()\n", + "sim.integrate(100.*2.*np.pi)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Rebound exits the integration routine normally. We can now explore the final particle orbits:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n" + ] + } + ], + "source": [ + "for o in sim.orbits():\n", + " print(o)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the orbits of both planets changed significantly and we can already speculate that there was a close encounter.\n", + "\n", + "Let's redo the simulation, but this time set the `sim.exit_min_distance` flag for the simulation. If this flag is set, then REBOUND calculates the minimum distance between all particle pairs each timestep. If the distance is less than `sim.exit_min_distance`, then the integration is stopped and an exception thrown. Here, we'll use the [Hill radius](https://en.wikipedia.org/wiki/Hill_sphere) as the criteria for a close encounter. It is given by $r_{\\rm Hill} \\approx a \\sqrt{\\frac{m}{3M}}$, which is approximately 0.15 AU in our case. \n", + "\n", + "This setup allows us to catch the exception and deal with it in a customized way. As a first example, let's catch the exception with a `try`-`except` block, and simply print out the error message. Additionally, let's store the particles' separations while we're integrating:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Two particles had a close encounter (d" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(10,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlabel(\"time [orbits]\")\n", + "ax.set_xlim([0,sim.t/(2.*np.pi)])\n", + "ax.set_ylabel(\"distance\")\n", + "plt.plot(times/(2.*np.pi), distances);\n", + "plt.plot([0.0,12],[0.2,0.2]); # Plot our close encounter criteria;" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We did indeed find the close encounter correctly. We can now search for the two particles that collided and, for this example, merge them. To do that we'll first calculate our new merged planet coordinates, then remove the two particles that collided from REBOUND and finally add the new particle." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of particles at the beginning of the simulation: 3.\n", + "Two particles had a close encounter (d" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "op = rebound.OrbitPlot(sim,Narc=300)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let's simulate our system for and check that our final relative energy error is small. The energy error is a key measure of whether the integration was performed accurately or not." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5.390879254005452e-07\n" + ] + } + ], + "source": [ + "sim.integrate(tmax)\n", + "dE = abs((sim.energy() - E0)/E0)\n", + "print(dE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/ipython_examples/EmbeddedOperatorSplittingMethods.ipynb b/rebound/source/ipython_examples/EmbeddedOperatorSplittingMethods.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..990a65500ce13d2577bb290fd1bd5213e06e2939 --- /dev/null +++ b/rebound/source/ipython_examples/EmbeddedOperatorSplittingMethods.ipynb @@ -0,0 +1,557 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Embedded Operator Splitting (EOS) Methods\n", + "\n", + "This examples shows how to use the Embedded Operator Splitting (EOS) Methods described in Rein (2019). The idea is to embedded one operator splitting method inside another. The inner operator splitting method solves the Keplerian motion, whereas the outer solves the planet-planet interactions. The accuracy and speed of the EOS methods are comparable to standard Wisdom-Holman type methods. However, the main advantage of the EOS methods is that they do not require a Kepler solver. This significantly simplifies the implementation. And in certain cases this can lead to a speed-up by a factor of 2-3x." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "%matplotlib inline\n", + "import matplotlib.pylab as plt\n", + "import numpy as np\n", + "import time\n", + "linestyles = [\"--\",\"-\",\"-.\",\":\"]\n", + "labels = {\"LF\": \"LF\", \"LF4\": \"LF4\", \"LF6\": \"LF6\", \"LF8\": \"LF8\", \"LF4_2\": \"LF(4,2)\", \"LF8_6_4\": \"LF(8,6,4)\", \"PLF7_6_4\": \"PLF(7,6,4)\", \"PMLF4\": \"PMLF4\", \"PMLF6\": \"PMLF6\"}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We first create a function to setup our initial conditions of two Jupiter-mass planets with moderate eccentricities . We also create a function to run the simulation and periodically measure the relative energy error. The function then runs the simulation again, this not only measuring the runtime. This way we don't include the time required to calculate the energy error in our run time measurements. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def initial_conditions():\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1)\n", + " sim.add(m=1e-3,a=1,e=0.05,f=0.)\n", + " sim.add(m=1e-3,a=1.6,e=0.05,f=1.)\n", + " sim.move_to_com()\n", + " return sim\n", + " \n", + "def run(sim):\n", + " simc = sim.copy() # Use later for timing\n", + " tmax = 100.\n", + " \n", + " # First run to measure energy error\n", + " Emax = 0\n", + " E0 = sim.energy()\n", + " while sim.t" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,2,figsize=(8,3),sharey=True)\n", + "plt.tight_layout()\n", + "for _ax in ax:\n", + " _ax.set_xscale(\"log\")\n", + " _ax.set_yscale(\"log\")\n", + "ax[0].set_xlabel(\"timestep\");\n", + "ax[1].set_xlabel(\"runtime\");\n", + "ax[0].set_ylabel(\"error\")\n", + "\n", + "for m, method in enumerate(methods):\n", + " ax[0].plot(dts/np.pi/2.,results[:,m,0],label=method,color=\"black\",ls=linestyles[m])\n", + " ax[1].plot(results[:,m,1],results[:,m,0],label=method,color=\"black\",ls=linestyles[m]) \n", + "\n", + "ax[0].legend(loc='upper center', bbox_to_anchor=(1.1, -0.2), ncol=5);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**EOS with $\\Phi_0=\\Phi_1=LF$**\n", + "\n", + "We now run several EOS methods where we set both the inner and outer operator splitting method to the standard second order leapfrog method. Our resulting EOS method will therefore also be a second order method. We vary the number of steps $n$ taken by $\\Phi_1$." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "ns = [1,2,4,8,16]\n", + "results_lf = np.zeros((len(dts), len(ns), 2))\n", + "for i, dt in enumerate(dts):\n", + " for j, n in enumerate(ns):\n", + " sim = initial_conditions()\n", + " sim.dt = dt\n", + " sim.integrator = \"eos\"\n", + " sim.ri_eos.phi0 = \"lf\"\n", + " sim.ri_eos.phi1 = \"lf\"\n", + " sim.ri_eos.n = n\n", + " sim.ri_eos.safe_mode = 0\n", + " results_lf[i,j] = run(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see in the following plot that for $n=1$, we recover the LEAPFROG method. For $n=16$ both the accuracy and efficiency of our EOS method is very similar to the standard WH method." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,2,figsize=(8,3),sharey=True)\n", + "plt.tight_layout()\n", + "for _ax in ax:\n", + " _ax.set_xscale(\"log\")\n", + " _ax.set_yscale(\"log\")\n", + "ax[0].set_xlabel(\"timestep\");\n", + "ax[1].set_xlabel(\"runtime\");\n", + "ax[0].set_ylabel(\"error\")\n", + "colors = plt.cm.viridis(np.linspace(0,1,len(ns)))\n", + "\n", + "for j, n in enumerate(ns):\n", + " label = \"$\\Phi_0=\\Phi_1=LF$, $n=%d$\"%n\n", + " ax[0].plot(dts/np.pi/2.,results_lf[:,j,0],label=label,color=colors[j])\n", + " ax[1].plot(results_lf[:,j,1],results_lf[:,j,0],label=label,color=colors[j])\n", + "\n", + "for m, method in enumerate(methods):\n", + " ax[0].plot(dts/np.pi/2.,results[:,m,0],label=method,color=\"black\",ls=linestyles[m])\n", + " ax[1].plot(results[:,m,1],results[:,m,0],label=method,color=\"black\",ls=linestyles[m]) \n", + "\n", + "ax[0].legend(loc='upper center', bbox_to_anchor=(1.1, -0.2), ncol=4);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**An extra factor of $\\epsilon$**\n", + "\n", + "We now create EOS methods which are comparable to the Wisdom-Holman method with symplectic correctors. For the same timestep, the error is smaller by a factor of the mass ratio of the planet to the star, $\\epsilon$. We set $\\Phi_1$ to the fourth order LF4 method and use $n=2$. For $\\Phi_0$ we try out LF4, LF(4,2) and PMLF4. " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "phi0s = [\"LF4\", \"LF4_2\", \"PMLF4\"]\n", + "results_4 = np.zeros((len(dts), len(phi0s), 2))\n", + "for i, dt in enumerate(dts):\n", + " for j, phi0 in enumerate(phi0s):\n", + " sim = initial_conditions()\n", + " sim.dt = dt\n", + " sim.integrator = \"eos\"\n", + " sim.ri_eos.phi0 = phi0\n", + " sim.ri_eos.phi1 = \"LF4\"\n", + " sim.ri_eos.n = 2\n", + " sim.ri_eos.safe_mode = 0\n", + " results_4[i,j] = run(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see in the following plot that the EOS methods using LF(4,2) and PMLF4 do approach the accuracy and efficiency of the Wisdom-Holman method with symplectic correctors for small enough timesteps. To achieve a better accuracy for larger timesteps, we could increase the order of $\\Phi_1$ or the number of steps $n$. Note that the EOS method with $\\Phi_0=LF4$ is a true 4th order method, whereas the methods with LF(4,2) and PMLF4 have generalized order (4,2). " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,2,figsize=(8,3),sharey=True)\n", + "plt.tight_layout()\n", + "for _ax in ax:\n", + " _ax.set_xscale(\"log\")\n", + " _ax.set_yscale(\"log\")\n", + "ax[0].set_xlabel(\"timestep\");\n", + "ax[1].set_xlabel(\"runtime\");\n", + "ax[0].set_ylabel(\"error\")\n", + "\n", + "for j, phi0 in enumerate(phi0s):\n", + " label = \"$\\Phi_0=%s, \\Phi_1=LF4, n=2$\" % labels[phi0]\n", + " ax[0].plot(dts/np.pi/2.,results_4[:,j,0],label=label)\n", + " ax[1].plot(results_4[:,j,1],results_4[:,j,0],label=label)\n", + "\n", + "for m, method in enumerate(methods):\n", + " ax[0].plot(dts/np.pi/2.,results[:,m,0],label=method,color=\"black\",ls=linestyles[m])\n", + " ax[1].plot(results[:,m,1],results[:,m,0],label=method,color=\"black\",ls=linestyles[m]) \n", + " \n", + "ax[0].legend(loc='upper center', bbox_to_anchor=(1.1, -0.2), ncol=4);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**High order methods**\n", + "\n", + "Next, we will construct arbitrarily high order methods using LF, LF4, LF6, and LF8 for both $\\Phi_0$ and $\\Phi_1$. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "phis = [\"LF\", \"LF4\", \"LF6\", \"LF8\"]\n", + "results_2468 = np.zeros((len(dts), len(phis), 2))\n", + "for i, dt in enumerate(dts):\n", + " for j, phi in enumerate(phis):\n", + " sim = initial_conditions()\n", + " sim.dt = dt\n", + " sim.integrator = \"eos\"\n", + " sim.ri_eos.phi0 = phi\n", + " sim.ri_eos.phi1 = phi\n", + " sim.ri_eos.n = 1\n", + " sim.ri_eos.safe_mode = 0\n", + " results_2468[i,j] = run(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following plots show that the methods are indeed 2nd, 4th, 6th, and 8th order methods. " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,2,figsize=(8,3),sharey=True)\n", + "plt.tight_layout()\n", + "for _ax in ax:\n", + " _ax.set_xscale(\"log\")\n", + " _ax.set_yscale(\"log\")\n", + "ax[0].set_xlabel(\"timestep\");\n", + "ax[1].set_xlabel(\"runtime\");\n", + "ax[0].set_ylabel(\"error\")\n", + "\n", + "for j, phi in enumerate(phis):\n", + " label = \"$\\Phi_0=\\Phi_1=%s, n=1$\" % labels[phi]\n", + " ax[0].plot(dts/np.pi/2.,results_2468[:,j,0],label=label)\n", + " ax[1].plot(results_2468[:,j,1],results_2468[:,j,0],label=label)\n", + "\n", + "for m, method in enumerate(methods):\n", + " ax[0].plot(dts/np.pi/2.,results[:,m,0],label=method,color=\"black\",ls=linestyles[m])\n", + " ax[1].plot(results[:,m,1],results[:,m,0],label=method,color=\"black\",ls=linestyles[m]) \n", + " \n", + "ax[0].legend(loc='upper center', bbox_to_anchor=(1.1, -0.2), ncol=4);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Modified potentials**\n", + "\n", + "We can use operator splitting methods which make use of derivatives of the acceleration, or the so called modified potential. For the same order, these methods can have fewer function evaluations, and thus better performance. Let us compare using the sixth order methods LF6 (nine function evaluations) and PMLF6 (three modified function evaluations) for $\\Phi_0$. We keep using LF6 for $\\Phi_1$. " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "phis_m = [\"LF6\", \"PMLF6\"]\n", + "results_m = np.zeros((len(dts), len(phis_m), 2))\n", + "for i, dt in enumerate(dts):\n", + " for j, phi in enumerate(phis_m):\n", + " sim = initial_conditions()\n", + " sim.dt = dt\n", + " sim.integrator = \"eos\"\n", + " sim.ri_eos.phi0 = phi\n", + " sim.ri_eos.phi1 = \"LF6\"\n", + " sim.ri_eos.n = 1\n", + " sim.ri_eos.safe_mode = 0\n", + " results_m[i,j] = run(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the following plot, we see that the method using PMLF6 is indeed about a factor of 2 faster than the one using LF6. " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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3UPITP7ukIPTCqTEjh07CIANGzbk48eP37/hs171dzm7+LM+YWFhrFmzJo8fP67RNR4+fMju3bsTAAsUKMBp06bx9evXGfURBIIsJzVfonUxkxVHdnJyAu2gUCjYrVs3GhsbEwBr1KjBRYsW8cWLF9o2TaskJCRw79697NSpE3PlykUArFOnDpcsWcKIiAh1u02bNtHAwIA//PCD6vzdg+R0c3KTDalISPd17z97m672QjAlz44dO2hmZkZzc3Pu3btXdVKWya09yRmFyKdXP2rv6+tLa2tr3rx5k88iYvkmWrO/3fXr19mpUycCYOnSpZmYmJjRH0UgyBKEYMpmTk6QNfj5+XHNmjXq1926deOoUaN47do1LVqlG1y7do2jR49m0aJFCYDFihXjuHHjePPmzWTbb9myha1atWJUVBQZeEmVlHJVUzIuMl3X9X8eyT83XKalrQcvBWheCFYIppR58OAB69atSwAcNWoU4+PjyehXpH0VcmkdMj4q2X79XS6x7qwjPHAzRONr3bhxg9u2bSNJKpVK2tvbf5TEVSDQdYRgyoZOTpA5vHz5ksuWLWO9evUIgKampnzz5o22zdIJnj9/TkdHR9asWZMAaGxszC5dunD//v1MSEh+puHDpR5ZlskX98l5ZcnFNclIzW+Uz9/GcuLumyxv58lqUw9x6dH7jI7XfJZCCKbUiYuL419//UUArFevHh8+fEg+Ok1OK0DuG0FS9W/j1av3ItU3+A3bLT1NS1sPDtp4mc8iYtN1zUuXLlGSJObJk4d///03nz17lqGfSSDIDIRgyqZOTpCx7Ny5U73kVrNmTTo6OvL58+faNkvrXL16lTY2NjQyMiIA1q9fn8uWLePLly9T7efq6kpjY2NeuHBBdeJtKOlYnZxfnnz1UKNrR8UlctHhe7SacpAV7Dw5da8vX0TGpfszCMGkGbt376a5uTnNzMzo5uZGHpmmime6tZdTpkyhqampKv4siUSFkitPPmDlSQdYfdohul58kq5Yvjt37rB37940MDCgqakpR40a9dFSrkCgawjBlM2dnCD9yLLM8+fPc9iwYdy3bx9JMigoiKNHjxZLbklcvXqVHTp0IACam5vz77//pp+fn8b9w8PDOXHiRNUST2wEudKanF2CDL6SZt8EhZKbzj9m3VlHaGnrwWGbrzDgRfJLQ5ogBJPmBAQE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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,2,figsize=(8,3),sharey=True)\n", + "plt.tight_layout()\n", + "for _ax in ax:\n", + " _ax.set_xscale(\"log\")\n", + " _ax.set_yscale(\"log\")\n", + "ax[0].set_xlabel(\"timestep\");\n", + "ax[1].set_xlabel(\"runtime\");\n", + "ax[0].set_ylabel(\"error\")\n", + "\n", + "for j, phi in enumerate(phis_m):\n", + " label = \"$\\Phi_0=%s, \\Phi_1=LF6, n=1$\" % labels[phi]\n", + " ax[0].plot(dts/np.pi/2.,results_m[:,j,0],label=label)\n", + " ax[1].plot(results_m[:,j,1],results_m[:,j,0],label=label)\n", + "\n", + "for m, method in enumerate(methods):\n", + " ax[0].plot(dts/np.pi/2.,results[:,m,0],label=method,color=\"black\",ls=linestyles[m])\n", + " ax[1].plot(results[:,m,1],results[:,m,0],label=method,color=\"black\",ls=linestyles[m]) \n", + " \n", + "ax[0].legend(loc='upper center', bbox_to_anchor=(1.1, -0.2), ncol=4);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**High order methods for perturbed systems**\n", + "\n", + "We can do better than above by making use of high order methods for $\\Phi_0$ which were specifically designed for perturbed systems such as LF(8,6,4) and PLF(7,6,4). " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "phi0s_8 = [\"LF8\", \"LF8_6_4\", \"PLF7_6_4\"]\n", + "results_8 = np.zeros((len(dts), len(phi0s_8), 2))\n", + "for i, dt in enumerate(dts):\n", + " for j, phi0 in enumerate(phi0s_8):\n", + " sim = initial_conditions()\n", + " sim.dt = dt\n", + " sim.integrator = \"eos\"\n", + " sim.ri_eos.phi0 = phi0\n", + " sim.ri_eos.phi1 = \"LF8\"\n", + " sim.ri_eos.n = 1\n", + " sim.ri_eos.safe_mode = 0\n", + " results_8[i,j] = run(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see in the following plot that these methods indeed perform very well. With $\\Phi_0=LF(8,6,4)$, $\\Phi_1=LF8$ and $n=1$ we achieve an accuracy and efficiency comparable to SABA(8,6,4). In contrast to SABA(8,6,4) we do not require a Kepler solver. " + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,2,figsize=(8,3),sharey=True)\n", + "plt.tight_layout()\n", + "for _ax in ax:\n", + " _ax.set_xscale(\"log\")\n", + " _ax.set_yscale(\"log\")\n", + "ax[0].set_xlabel(\"timestep\");\n", + "ax[1].set_xlabel(\"runtime\");\n", + "ax[0].set_ylabel(\"error\")\n", + "\n", + "for j, phi0 in enumerate(phi0s_8):\n", + " label = \"$\\Phi_0=%s, \\Phi_1=LF8, n=1$\" % labels[phi0]\n", + " ax[0].plot(dts/np.pi/2.,results_8[:,j,0],label=label)\n", + " ax[1].plot(results_8[:,j,1],results_8[:,j,0],label=label)\n", + "\n", + "for m, method in enumerate(methods):\n", + " ax[0].plot(dts/np.pi/2.,results[:,m,0],label=method,color=\"black\",ls=linestyles[m])\n", + " ax[1].plot(results[:,m,1],results[:,m,0],label=method,color=\"black\",ls=linestyles[m]) \n", + " \n", + "ax[0].legend(loc='upper center', bbox_to_anchor=(1.1, -0.2), ncol=4);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/rebound/source/ipython_examples/EscapingParticles.ipynb b/rebound/source/ipython_examples/EscapingParticles.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..91f457b65e7d69c8e683a236ecf1a1a57d54d44b --- /dev/null +++ b/rebound/source/ipython_examples/EscapingParticles.ipynb @@ -0,0 +1,242 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Escaping particles\n", + "\n", + "Sometimes we are not interested in particles that get too far from the central body. Here we will define a radius beyond which we remove particles from the simulation. Let's set up an artificial situation with 3 planets, and the inner one moves radially outward with $v > v_{escape}$." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t2.19.1\n", + "REBOUND built on: \tJul 8 2016 19:40:49\n", + "Number of particles: \t4\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.000000\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "import rebound\n", + "import numpy as np\n", + "def setupSimulation():\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1., hash=\"Sun\")\n", + " sim.add(x=0.4,vx=5., hash=\"Mercury\")\n", + " sim.add(a=0.7, hash=\"Venus\")\n", + " sim.add(a=1., hash=\"Earth\")\n", + " sim.move_to_com()\n", + " return sim\n", + "\n", + "sim = setupSimulation()\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's run a simulation for 20 years (in default units where $G=1$, and thus AU, yr/2$\\pi$, and $M_\\odot$, see [Units.ipynb](../Units) for how to change units), and set up a 50 AU sphere beyond which we remove particles from the simulation. We can do this by setting the `exit_max_distance` flag of the simulation object. If a particle's distance (from the origin of whatever inertial reference frame chosen) exceeds `sim.exit_max_distance`, an exception is thrown.\n", + "\n", + "If we simply call `sim.integrate()`, the program will crash due to the unhandled exception when the particle escapes, so we'll create a `try`-`except` block to catch the exception. We'll also store the x,y positions of Venus, which we expect to survive." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A particle escaped (r>exit_max_distance).\n" + ] + } + ], + "source": [ + "sim = setupSimulation() # Resets everything\n", + "sim.exit_max_distance = 50.\n", + "Noutputs = 1000\n", + "times = np.linspace(0,20.*2.*np.pi,Noutputs)\n", + "xvenus, yvenus = np.zeros(Noutputs), np.zeros(Noutputs)\n", + "for i,time in enumerate(times):\n", + " try:\n", + " sim.integrate(time) \n", + " except rebound.Escape as error:\n", + " print(error)\n", + " for j in range(sim.N):\n", + " p = sim.particles[j]\n", + " d2 = p.x*p.x + p.y*p.y + p.z*p.z\n", + " if d2>sim.exit_max_distance**2:\n", + " index=j # cache index rather than remove here since our loop would go beyond end of particles array\n", + " sim.remove(index=index)\n", + " xvenus[i] = sim.particles[2].x\n", + " yvenus[i] = sim.particles[2].y" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Went down to 3 particles\n" + ] + } + ], + "source": [ + "print(\"Went down to {0} particles\".format(sim.N))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So this worked as expected. Now let's plot what we got:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig,ax = plt.subplots(figsize=(15,5))\n", + "ax.plot(xvenus, yvenus)\n", + "ax.set_aspect('equal')\n", + "ax.set_xlim([-2,10]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This doesn't look right. The problem here is that when we removed `particles[1]` from the simulation, all the particles got shifted down in the `particles` array. So following the removal, `xvenus` all of a sudden started getting populated by the values for Earth (the new `sim.particles[2]`). A more robust way to access particles is using hashes (see [UniquelyIdentifyingParticlesWithHashes.ipynb](../UniquelyIdentifyingParticlesWithHashes))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A particle escaped (r>exit_max_distance).\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim = setupSimulation() # Resets everything\n", + "sim.exit_max_distance = 50.\n", + "Noutputs = 1000\n", + "times = np.linspace(0,20.*2.*np.pi,Noutputs)\n", + "xvenus, yvenus = np.zeros(Noutputs), np.zeros(Noutputs)\n", + "for i,time in enumerate(times):\n", + " try:\n", + " sim.integrate(time) \n", + " except rebound.Escape as error:\n", + " print(error)\n", + " for j in range(sim.N):\n", + " p = sim.particles[j]\n", + " d2 = p.x*p.x + p.y*p.y + p.z*p.z\n", + " if d2>sim.exit_max_distance**2:\n", + " index=j # cache index rather than remove here since our loop would go beyond end of particles array\n", + " sim.remove(index=index)\n", + " xvenus[i] = sim.particles[\"Venus\"].x\n", + " yvenus[i] = sim.particles[\"Venus\"].y\n", + "\n", + "fig,ax = plt.subplots(figsize=(15,5))\n", + "ax.plot(xvenus, yvenus)\n", + "ax.set_aspect('equal')\n", + "ax.set_xlim([-2,10]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Much better! We solved the problem by assigning particles hashes and using those to access the particles for output." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/rebound/source/ipython_examples/Forces.ipynb b/rebound/source/ipython_examples/Forces.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..6ddae65ebb7d90a689cc17a8858c6126c79825be --- /dev/null +++ b/rebound/source/ipython_examples/Forces.ipynb @@ -0,0 +1,297 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Additional forces\n", + "REBOUND is a gravitational N-body integrator. But you can also use it to integrate systems with additional, non-gravitational forces.\n", + "\n", + "This tutorial gives you a very quick overview of how that works. Implementing additional forces in python as below will typically be a factor of a few slower than a C implementation. For a library that has C implementations for several commonly used additional effects (with everything callable from Python), see [REBOUNDx](https://github.com/dtamayo/reboundx).\n", + "\n", + "**Stark problem**\n", + "\n", + "We'll start by adding two particles, the Sun and an Earth-like planet, to REBOUND." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + }, + "outputs": [], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.integrator = \"whfast\"\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-6,a=1.)\n", + "sim.move_to_com() # Moves to the center of momentum frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We could integrate this system, and the planet would go around the star at a fixed orbit with $a=1$ forever. Let's add an additional constant force that acts on the planet and points in one direction $F_x = m\\cdot c$, where $m$ is the planet's mass and $c$ a constant. This is called the Stark problem. In python, we can describe this with the following function" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "ps = sim.particles\n", + "c = 0.01\n", + "def starkForce(reb_sim):\n", + " ps[1].ax += c" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we need to tell REBOUND about this function. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "sim.additional_forces = starkForce" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can just integrate as usual. Let's keep track of the eccentricity as we integrate as it will change due to the additional force." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "Nout = 1000\n", + "es = np.zeros(Nout)\n", + "times = np.linspace(0.,100.*2.*np.pi,Nout)\n", + "for i, time in enumerate(times):\n", + " sim.integrate(time, exact_finish_time=0) # integrate to the nearest timestep so WHFast's timestep stays constant\n", + " es[i] = sim.particles[1].e " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And let's plot the result." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "image/png": "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\nT+GJogAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(15,5))\n", + "ax = plt.subplot(111)\n", + "plt.plot(times, es);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see that the eccentricity is oscillating between 0 and almost 1. \n", + "\n", + "Note that the function `starkForce(reb_sim)` above receives the argument `reb_sim` when it is called. This is a pointer to the simulation structure. Instead of using the global `ps` variable to access particle data, one could also use `reb_sim.contents.particles`. This could be useful when one is running multiple simulations in parallel or when the particles get added and removed (in those cases `particles` might change). The `contents` has the same meaning as a `->` in C, i.e. follow the memory address. To find out more about pointers, check out the [ctypes documentation](https://docs.python.org/3/library/ctypes.html#pointers).\n", + "\n", + "\n", + "**Non-conservative forces**\n", + "\n", + "The previous example assumed a conservative force, i.e. we could describe it as a potential as it is velocity independent. Now, let's assume we have a velocity dependent force. This could be a migration force in a protoplanetary disk or PR drag. We'll start from scratch and add the same two particles as before." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + }, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.integrator = \"ias15\"\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-6,a=1.)\n", + "sim.move_to_com() # Moves to the center of momentum frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But we change the additional force to be" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + }, + "outputs": [], + "source": [ + "ps = sim.particles\n", + "tau = 1000.\n", + "def migrationForce(reb_sim):\n", + " ps[1].ax -= ps[1].vx/tau\n", + " ps[1].ay -= ps[1].vy/tau\n", + " ps[1].az -= ps[1].vz/tau" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We need to let REBOUND know that our force is velocity dependent. Otherwise, REBOUND will not update the velocities of the particles. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + }, + "outputs": [], + "source": [ + "sim.additional_forces = migrationForce\n", + "sim.force_is_velocity_dependent = 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we integrate as before. But this time we keep track of the semi-major axis instead of the eccentricity." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "Nout = 1000\n", + "a_s = np.zeros(Nout)\n", + "times = np.linspace(0.,100.*2.*np.pi,Nout)\n", + "for i, time in enumerate(times):\n", + " sim.integrate(time)\n", + " a_s[i] = sim.particles[1].a \n", + "fig = plt.figure(figsize=(15,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlabel(\"time\")\n", + "ax.set_ylabel(\"semi-major axis\")\n", + "plt.plot(times, a_s);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The semi-major axis decays exponentially on a timescale `tau`.\n", + "\n", + "In the above example, REBOUND is calling a python function at every timestep. This can be slow. Note that you can also set `rebound.additional_forces` to a c function pointer. This let's you speed up the simulation significantly. However, you need to write your own c function/library that knows how to calculate the forces. Or, you use Dan Tamayo's new migration library (in preparation)." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/ipython_examples/FourierSpectrum.ipynb b/rebound/source/ipython_examples/FourierSpectrum.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..f9310c471fa63602044b826cfe17eb16421a5488 --- /dev/null +++ b/rebound/source/ipython_examples/FourierSpectrum.ipynb @@ -0,0 +1,407 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fourier analysis & resonances\n", + "\n", + "A great benefit of being able to call rebound from within python is the ability to directly apply sophisticated analysis tools from scipy and other python libraries. Here we will do a simple Fourier analysis of a reduced Solar System consisting of Jupiter and Saturn. Let's begin by setting our units and adding these planets using JPL's horizons database:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Sun'... Found: Sun (10).\n", + "Searching NASA Horizons for 'Jupiter'... Found: Jupiter Barycenter (5).\n", + "Searching NASA Horizons for 'Saturn'... Found: Saturn Barycenter (6).\n" + ] + } + ], + "source": [ + "import rebound\n", + "import numpy as np\n", + "sim = rebound.Simulation()\n", + "sim.units = ('AU', 'yr', 'Msun')\n", + "sim.add(\"Sun\")\n", + "sim.add(\"Jupiter\")\n", + "sim.add(\"Saturn\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's set the integrator to whfast, and sacrificing accuracy for speed, set the timestep for the integration to about $10\\%$ of Jupiter's orbital period." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sim.integrator = \"whfast\"\n", + "sim.dt = 1. # in years. About 10% of Jupiter's period\n", + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The last line (moving to the center of mass frame) is important to take out the linear drift in positions due to the constant COM motion. Without it we would erase some of the signal at low frequencies.\n", + "\n", + "Now let's run the integration, storing time series for the two planets' eccentricities (for plotting) and x-positions (for the Fourier analysis). Additionally, we store the mean longitudes and pericenter longitudes (varpi) for reasons that will become clear below. Having some idea of what the secular timescales are in the Solar System, we'll run the integration for $3\\times 10^5$ yrs. We choose to collect $10^5$ outputs in order to resolve the planets' orbital periods ($\\sim 10$ yrs) in the Fourier spectrum." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "Nout = 100000\n", + "tmax = 3.e5\n", + "Nplanets = 2\n", + "\n", + "x = np.zeros((Nplanets,Nout))\n", + "ecc = np.zeros((Nplanets,Nout))\n", + "longitude = np.zeros((Nplanets,Nout))\n", + "varpi = np.zeros((Nplanets,Nout))\n", + "\n", + "times = np.linspace(0.,tmax,Nout)\n", + "ps = sim.particles\n", + "\n", + "for i,time in enumerate(times):\n", + " sim.integrate(time) \n", + " # note we used above the default exact_finish_time = 1, which changes the timestep near the outputs to match\n", + " # the output times we want. This is what we want for a Fourier spectrum, but technically breaks WHFast's\n", + " # symplectic nature. Not a big deal here.\n", + " os = sim.orbits()\n", + " for j in range(Nplanets):\n", + " x[j][i] = ps[j+1].x # we use the 0 index in x for Jup and 1 for Sat, but the indices for ps start with the Sun at 0\n", + " ecc[j][i] = os[j].e\n", + " longitude[j][i] = os[j].l\n", + " varpi[j][i] = os[j].Omega + os[j].omega" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's see what the eccentricity evolution looks like with matplotlib:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "labels = [\"Jupiter\", \"Saturn\"]\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "plt.plot(times,ecc[0],label=labels[0])\n", + "plt.plot(times,ecc[1],label=labels[1])\n", + "ax.set_xlabel(\"Time (yrs)\")\n", + "ax.set_ylabel(\"Eccentricity\")\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's try to analyze the periodicities in this signal. Here we have a uniformly spaced time series, so we could run a Fast Fourier Transform, but as an example of the wider array of tools available through scipy, let's run a Lomb-Scargle periodogram (which allows for non-uniform time series). This could also be used when storing outputs at each timestep using the integrator IAS15 (which uses adaptive and therefore non-uniform timesteps).\n", + "\n", + "Let's check for periodicities with periods logarithmically spaced between 10 and $10^5$ yrs. From the documentation, we find that the lombscargle function requires a list of corresponding angular frequencies (ws), and we obtain the appropriate normalization for the plot. To avoid conversions to orbital elements, we analyze the time series of Jupiter's x-position." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAt4AAAFGCAYAAABdSZjsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4XOV59/HfLduyvBvvxhsGOywmbAlbaRI1CcVAE5ql\nbyBp6UubQBYIba6+hbZJsHvRNk3SpEnIQlpCk5SElJQmkBBCWAQUwo5ZjDfAGO+7LW+yLel+/7h1\nmNFoZnRmNCONpO/nunTNzJlzzjySB/HTPffzHHN3AQAAAKiuur4eAAAAADAYELwBAACAXkDwBgAA\nAHoBwRsAAADoBQRvAAAAoBcM7esBVIKZsTQLAAAAqs7drdxjB0zF2937/dd11103IF6zEucs5xyl\nHJN23+726+nz/eWrr76PWnx/9pf3Znf7DJT3Zl99LwPlvVnqcfzu7N1/01p63e7O+cgjrjPPdP3q\nV65zz63MmGrxd2dPDZjgPRA0NjYOiNesxDnLOUcpx6Tdt7v9+uLfrC/01fdZi+/P/vLeLPV1+zN+\nd/bseH53Vs9g+t25caM0fbp05JHShg2VGdNA/N1plUjvfc3MfCB8Hxh4Fi1apEWLFvX1MIAueG+i\nlvH+7H9uuEF66SXp7/9emj9f2rmzr0dUHWYmp9UEqE2DpaqD/of3JmoZ78/+Z+tWacoUacIEac8e\n6fDhvh5RbaLiDQAAgB65+mrp6KPjduJEaflyafLkvh5V5VHxBgAAQJ/atUsaPz7uT5gwcFtNeorg\nDQAAgB7JDt5HHCHt2NG346lVBG8AAAD0CBXvdAjeAAAA6JHc4E3FOz+CNwAAAHokt9WEind+BG8A\nAAD0yM6dVLzTIHgDAACgbK2t0r590pgx8ZiKd2EEbwAAAJStuVkaO1aq60iVTK4sjOANAACAsu3a\nJY0bl3k8dmyEcXRV9eBtZgvNbLmZrTSza/I8f6yZPWpmLWb2mTzP15nZM2Z2R7XHCgAAgNLs2ZNp\nM5Gk0aNjG7qqavA2szpJN0g6T9ICSZeY2XE5u22XdJWkLxU4zdWSXqraIAEAAFC2/fulUaMyj8eM\nIXgXUu2K9xmSVrn7Gnc/LOlWSRdl7+Du29z9aUmtuQeb2UxJF0j69yqPEwAAAGXYt4/gnVa1g/cM\nSWuzHq/r2JbWVyX9P0leyUEBAACgMvIF7717+248tWxoXw+gEDO7UNJmd19iZo2SrNj+ixYteuN+\nY2OjGhsbqzk8AAAAqGvwHkg93k1NTWpqaqrY+cy9esVkMztL0iJ3X9jx+FpJ7u7/nGff6yTtcfev\ndDz+R0l/rGhBGSFpjKTb3f3SPMd6Nb8PAAAA5Pdv/yY99ph0003x+NChCOKHDklWtGza/5iZ3L3s\n76rarSZPSppnZnPMrF7SxZKKrU7yxjfi7n/r7rPd/eiO4+7PF7oBAADQd3InV9bXx5reBw/23Zhq\nVVVbTdy9zcyulHSPIuTf5O7LzOyKeNq/a2ZTJT2lqGi3m9nVkk5wd7qDAAAAalxuq4mUmWDZ0NA3\nY6pVVe/xdve7JR2bs+3GrPubJc3q5hwPSnqwKgMEAABA2fIF79GjY4Ll5Ml9M6ZaxZUrAQAAULZi\nFW90RvAGAABA2fbtk0aO7LyN4J0fwRsAAABly51cKQ2sJQUrieANAACAshVqNeEiOl0RvAEAAFC2\nfMF75EjpwIG+GU8tI3gDAACgbPl6vEeOjBYUdEbwBgAAQNkKVbwJ3l0RvAEAAFC2fJMrCd75EbwB\nAABQNire6RG8AQAAUDaCd3oEbwAAAJTFncmVpSB4AwAAoCyHD0tmUn195+0E7/wI3gAAACjL/v3S\niBFdtxO88yN4AwAAoCwtLQTvUhC8AQAAUJaWFqmhoet2gnd+BG8AAACU5eBBgncpCN4AAAAoCxXv\n0hC8AQAAUBaCd2kI3gAAACgLwbs0BG8AAACUheBdGoI3AAAAylIoeI8YEcHbvffHVMsI3gAAAChL\nS4s0fHjX7UOHxtehQ70/plpG8AYAAEBZClW8JdpN8iF4AwAAoCwE79IQvAEAAFAWgndpCN4AAAAo\nS6ErV0oE73wI3gAAAChLsYp3srIJMgjeAAAAKEux4N3QEBVxZFQ9eJvZQjNbbmYrzeyaPM8fa2aP\nmlmLmX0ma/tMM7vfzJaa2Qtm9ulqjxUAAADpdRe8W1p6dzy1bmg1T25mdZJukPQuSRskPWlmP3f3\n5Vm7bZd0laQ/zDm8VdJn3H2JmY2W9LSZ3ZNzLAAAAPoIwbs01a54nyFplbuvcffDkm6VdFH2Du6+\nzd2fVgTt7O2b3H1Jx/29kpZJmlHl8QIAACAlgndpqh28Z0ham/V4ncoIz2Z2lKRTJD1ekVEBAACg\nx7oL3gcO9O54al1VW00qoaPN5KeSru6ofOe1aNGiN+43NjaqsbGx6mMDAAAYzApdMl4aGBXvpqYm\nNTU1Vex81Q7e6yXNzno8s2NbKmY2VBG6f+juPy+2b3bwBgAAQPUN9FaT3GLu4sWLe3S+areaPClp\nnpnNMbN6SRdLuqPI/pbz+HuSXnL3r1VrgAAAACjPQA/elVbVire7t5nZlZLuUYT8m9x9mZldEU/7\nd81sqqSnJI2R1G5mV0s6QdLJkj4i6QUze1aSS/pbd7+7mmMGAABAOt1dQIfg3VnVe7w7gvKxOdtu\nzLq/WdKsPIc+ImlIdUcHAACAchW7ZHxDg7RjR++Op9Zx5UoAAACUhVaT0hC8AQAAUBaCd2kI3gAA\nACgLwbs0BG8AAACUheBdGoI3AAAAykLwLg3BGwAAACVzH/hXrqw0gjcAAABK1toqmUlDCyxO3dAg\nHTjQu2OqdQRvAAAAlKxYm4lExTsfgjcAAABKRvAuHcEbAAAAJSt21UqJ4J0PwRsAAAAlo+JdOoI3\nAAAASlZsRRNJGjGC4J2L4A0AAICSHTpUPHhT8e6K4A0AAICSHTwo1dcXfp7g3RXBGwAAACU7dKh4\n8B42LNb6bmvrvTHVOoI3AAAAStZdq4lZVL0PHuy9MdU6gjcAAABK1l3FW6LdJBfBGwAAACXrrsdb\nInjnIngDAACgZN21mkgE71wEbwAAAJQsbavJgQO9M57+gOANAACAktFqUjqCNwAAAErG5MrSEbwB\nAABQMnq8S0fwBgAAQMnSVLxHjCB4ZyN4AwAAoGRperyHDyd4ZyN4AwAAoGRpWk2GD+fKldkI3gAA\nAChZmlYTgndnBG8AAACULG2rCcE7o+rB28wWmtlyM1tpZtfkef5YM3vUzFrM7DOlHAsAAIC+QcW7\ndFUN3mZWJ+kGSedJWiDpEjM7Lme37ZKukvSlMo4FAABAH6DHu3TVrnifIWmVu69x98OSbpV0UfYO\n7r7N3Z+W1FrqsQAAAOgbVLxLV+3gPUPS2qzH6zq2VftYAAAAVBE93qUb2tcDqJRFixa9cb+xsVGN\njY19NhYAAICBLm2rSXNz74ynGpqamtTU1FSx81U7eK+XNDvr8cyObRU/Njt4AwAAoLoGQ6tJbjF3\n8eLFPTpftVtNnpQ0z8zmmFm9pIsl3VFkf+vBsQAAAOgltJqUrqoVb3dvM7MrJd2jCPk3ufsyM7si\nnvbvmtlUSU9JGiOp3cyulnSCu+/Nd2w1xwsAAIB0BkPFu9Kq3uPt7ndLOjZn241Z9zdLmpX2WAAA\nAPS9tD3ehw71znj6A65cCQAAgJKlqXjX11PxzkbwBgAAQMno8S4dwRsAAAAl48qVpSN4AwAAoGRM\nriwdwRsAAAAlo9WkdARvAAAAlIyKd+kI3gAAACgZPd6lI3gDAACgZFS8S0fwBgAAQEna26W2Nmlo\nN5diJHh3RvAGAABASZJqt1nx/QjenRG8AQAAUJI0bSYSwTsXwRsAAAAlSbOUoETwzkXwBgAAQEnS\nVrzr66XDh6MnHARvAAAAlCjNUoJS9IDX18f+IHgDAACgRGkr3hLtJtkI3gAAAChJ2h5vieCdjeAN\nAACAkqRtNZFiP1pNAsEbAAAAJaHVpDwEbwAAAJSEVpPyELwBAABQEire5SF4AwAAoCSl9ngTvAPB\nGwAAACWh1aQ8BG8AAACUhFaT8hC8AQAAUBJaTcpD8AYAAEBJqHiXh+ANAACAkpTS411fT/BOELwB\nAABQEire5SF4AwAAoCT0eJen6sHbzBaa2XIzW2lm1xTY5+tmtsrMlpjZKVnb/9LMXjSz583sFjNL\n+bcVAAAAqoXlBMvTbfA2szoz+z/lnNzM6iTdIOk8SQskXWJmx+Xsc76kY9x9vqQrJH2nY/uRkq6S\ndJq7nyRpqKSLyxkHAAAAKodWk/J0G7zdvV3SX5d5/jMkrXL3Ne5+WNKtki7K2eciST/oeK3HJY0z\ns6kdzw2RNMrMhkoaKWlDmeMAAABAhdBqUp60rSb3mtlfmdksM5uQfKU4boaktVmP13VsK7bPekkz\n3H2DpH+R9HrHtl3ufm/K8QIAAKBKqHiXZ2jK/T7UcfuprG0u6ejKDifDzMYrquFzJO2W9FMz+7C7\n/6harwkAAIDuldrjvWtXdcfTX6QK3u4+t8zzr5c0O+vxzI5tufvMyrPPuyW96u47JMnMbpf0O5Ly\nBu9Fixa9cb+xsVGNjY1lDhkAAADFlNpqcuhQdcdTLU1NTWpqaqrY+VIFbzMbKekzkma7++VmNl/S\nse7+i24OfVLSPDObI2mjYnLkJTn73KGopP/EzM5StJRsNrPXJZ1lZg2SDkp6V8f58soO3gAAAKie\nwdJqklvMXbx4cY/Ol7bH+2ZJhxQVZykq0td3d5C7t0m6UtI9kpZKutXdl5nZFWZ2ecc+d0labWYv\nS7pR0ic7tj8h6aeSnpX0nCST9N2U4wUAAECVsJxgedL2eB/j7h8ys0skyd33m5mlOdDd75Z0bM62\nG3MeX1ng2MWSevanBQAAACpqsFS8Ky1txfuQmY1QTKiUmR2jaP8AAADAIMNyguVJW/FeJOluSbPM\n7BZJ50j6v1UaEwAAAGoYFe/ypF3V5B4ze1rSWYpe66vdfVtVRwYAAICaRI93edKuavKfkh6U9LC7\nL6/ukAAAAFDLaDUpT9oe75skTZf0DTN71cz+28yuruK4AAAAUKNoNSlP2laTB8zsIUmnS/o9SR+X\ntEDS16o4NgAAANQgWk3Kk7bV5D5JoyT9VtLDkk539y3VHBgAAABqExXv8qRtNXlecQGdEyWdJOnE\njuUFAQAAMMjQ412etK0mfylJZjZGsYzgzZKmSUr5IwcAAMBAQcW7PGlbTa6U9DZJb5H0mqTvKVpO\nAAAAMMjQ412etBfQaZD0FUlPu3trFccDAACAGldKq0l9fewPydw93Y5mJyuq3lKs5/1c1UZVIjPz\ntN8HAAAAembIkAjTQ4Z0v++hQ9Lo0QMjfJuZ3N3KPT7V5Eoz+7SkWyRN6fj6TzO7qtwXBQAAQP/U\n2tH7kCZ0S9KwYXFMe3v1xtRfpKp4m9nzks52930dj0dJ+q27n1Tl8aVCxRsAAKB37N8vTZwoHTiQ\n/piGBmnXrrjtz3ql4i3JJLVlPW7r2AYAAIBBpJT+7gQTLEPayZU3S3rczP6n4/EfKi4jDwAAgEGk\nlKUEEwTvkHYd76+YWZOk3+3YdJm7P1u1UQEAAKAmlbKUYILgHYoGbzNrkPRxSfMkvSDpWywnCAAA\nMHiV02pSX0/wlrrv8f6+pLcqQvf5kr5c9REBAACgZtFqUr7uWk1OcPc3S5KZ3STpieoPCQAAALXq\n0KFYIrAUw4cPjHW8e6q7ivfh5A4tJgAAADh4kFVNytVdxftkM2vuuG+SRnQ8Nknu7mOrOjoAAADU\nFJYTLF/R4O3uKa9JBAAAgMFgIPZ4t7dLGzdKM2ZU93XSXkAHAAAAGJDB+2Mfk2bOlG65pbqvQ/AG\nAABAagMteK9ZI/3859Kvfy197nOSe/Vei+ANAACA1Mq5gE4tr+N9++3S+98vnXturNby1FPVey2C\nNwAAAFIbaJMrH3pIeuc7JTNp4ULp/vur91oEbwAAAKRWbqtJLa7j3d4uPfyw9La3xeNzzpEeeaR6\nr0fwBgAAQGoDqcd7zRqpoSGzmkkSvKvV51314G1mC81suZmtNLNrCuzzdTNbZWZLzOyUrO3jzOw2\nM1tmZkvN7MxqjxcAAACFDaTgvXSpdOKJmcczZkhDh0rr11fn9aoavM2sTtINks6TtEDSJWZ2XM4+\n50s6xt3nS7pC0neynv6apLvc/XhJJ0taVs3xAgAAoLhyJlfWavB+8cXOwVuKx0uXVuf1ql3xPkPS\nKndf4+6HJd0q6aKcfS6S9ANJcvfHJY0zs6lmNlbS29z95o7nWt29WQAAAOgzA2ly5dKl0oIFnbct\nWBCBvBqqHbxnSFqb9Xhdx7Zi+6zv2DZX0jYzu9nMnjGz75rZiKqOFgAAAEUNpFaTVaukN72p87Zq\nVryLXjK+jw2VdJqkT7n7U2b2r5KulXRdvp0XLVr0xv3GxkY1Njb2whABAAAGl0OHpNGjSzumVtfx\nfu01ae7cztvmz89cwbKpqUlNTU0Ve71qB+/1kmZnPZ7ZsS13n1kF9lnr7sky5j+VlHdyptQ5eAMA\nAKA6BkrF+8ABadcuadq0ztvnzpVefTXu5xZzFy9e3KPXrHaryZOS5pnZHDOrl3SxpDty9rlD0qWS\nZGZnSdrl7pvdfbOktWaWfADwLkkvVXm8AAAAKGKgTK58/XVp9mypLicNz5wpbdlSnfFWteLt7m1m\ndqWkexQh/yZ3X2ZmV8TT/l13v8vMLjCzlyXtk3RZ1ik+LekWMxsm6dWc5wAAANDLyp1cWWsX0Hnt\nNemoo7puHzpUmjUr1vjO7f/uqar3eLv73ZKOzdl2Y87jKwsc+5yk06s3OgAAAJRioLSaFAreknT0\n0dFuUungzZUrAQAAkNpgCN7Zfd6VRPAGAABAagMleK9dG/3c+cydK61eXfnXJHgDAAAgtXImV9bi\ncoKbNknTp+d/bubM6lw2nuANAACA1AbKlSs3beq6lGBixgxp3brKvybBGwAAAKkNlFaTYhXvGTOo\neAMAAKCPDYTgfeiQ1NwsTZiQ//kZM6QNGyT3yr4uwRsAAACplRu8a2kd782bpSlTul48JzFqVIx5\nx47Kvi7BGwAAAKkNhCtXFuvvTlRjgiXBGwAAAKkNhMmVaYJ3Nfq8Cd4AAABIbSD0eBO8AQAAUPPK\nCd7VWsd76VLpP/6j9EmQaYL3tGmxXyUNrezpAAAAMJCVG7wPHYqAbFaZcbS1SX/wBzFRctYs6V3v\nSn/spk3S8ccX32fqVOnll3s2xlxUvAEAAJBaOZMr6+qkYcMKr2yyZIn0ta+Vds6HHorlAL/4xah6\nlyJNxXvqVGnLltLO2x2CNwAAAFIrZ3KlVLzP+/LLpb/4C2nFivTnu/9+6bzzpAsvlH7zm9LaTbZs\nkSZPLr7PlClRTa8kgjcAAABSK6fVRCocvHfulJYvlz72MenOO9Of77HHpHPOkebOjfaVtWvTH7t9\nuzRpUvF9qHgDAACgz7S1Se3t0pAhpR9b6CI6TzwhveUt0tveJj31VPrzvfSSdOKJcf/kk6Xnnkt/\n7LZt0sSJxfeh4g0AAIA+c/hwVLvLmSBZqOK9alVMdCwlPO/aJe3eHZMqpdKOdY8qe3fBe+LEuKz8\n4cPpzpsGwRsAAACplDOxMlEoeL/6arSLHHts3G9r6/5cy5ZFWE8u+X7SSdILL6Qbx+7d0siRMdmz\nmLq6CN9bt6Y7bxoEbwAAAKRS7sRKqfBa3qtXR/AePjz6rjds6P5cK1ZIxx2XeTxvnvTKK+nGsX17\n99XuRKX7vAneAAAASKXciZVS8Yr30UfH/TlzpDVruj/X669Ls2dnHh99dJwnjW3bup9Ymah0nzfB\nGwAAAKlUI3gnFW9JOuoo6bXXuj/X2rWZ/m4pgvThw9G73R0q3gAAAKh5lQ7e+/ZFYB4/Ph6nDd7r\n1nUO3mZR9V69uvtjSwneVLwBAADQJyo9uXLr1gi3ySops2dHG0l3civeUlTN07SblNJqQsUbAAAA\nfaInkyvzreO9ZUsE78T06XE59+6sXSvNnNl528yZ0vr13R9bSsV74sQI6pUy6IL3pk2xXiQAAABK\nU+lWk9zgPXVq960dzc1Sa6t0xBGdt8+YkW5FlFKD9/bt6fZNY9AF7wsukN70pr4eBQAAQP/Tk+Cd\nbznBfMG7u4p30maSexGfI49MV/EupdVk4kRpx450+6Yx6IL3vn19PQIAAID+qbcq3u6Fz7NhQ1S3\nc1HxBgAAwIBR6cmVucF75Mg4f3Nz4fPkHpM48kiCt8xsoZktN7OVZnZNgX2+bmarzGyJmZ2S81yd\nmT1jZndUe6wAAAAorKeTK/OtapLb9tFdn3dPg/fOnV37wwuZMCFaTYpV4EtR1eBtZnWSbpB0nqQF\nki4xs+Ny9jlf0jHuPl/SFZK+k3OaqyW9VLkxVepMAAAAg0ulW012786s4Z3ors87WYIw17hxUlub\ntGdP8XHke81C6uulESOKV+BLUe2K9xmSVrn7Gnc/LOlWSRfl7HORpB9Ikrs/LmmcmU2VJDObKekC\nSf9eqQFV6i8WAACAwabSwbu5WRo7tvO2yZOLL+G3ZUvsk8us+6p3W1vM9xszJv24K9luUu3gPUPS\n2qzH6zq2FdtnfdY+X5X0/yQRlwEAAPpYbwTvpL2jkEIVbynWAd+4sfCxzc0RuutKSMCVDN5DK3Oa\nyjOzCyVtdvclZtYoqWiTyKJFi96439jYqMbGxgLnrdgQAQAABpWeTq7MvYBOoeBdLOgWqnhLsX3r\n1sLH7tqVvs1EkpqamrRzZ5O+9jVp3rz0xxVS7eC9XtLsrMczO7bl7jMrzz4flPReM7tA0ghJY8zs\nB+5+ab4Xyg7eAAAAqLyeTK7Mt453vuDd3drZhSZXSumC97hx6cYrRTH3zDMbdf750kc+Ii1evDj9\nwXlUu9XkSUnzzGyOmdVLulhS7uokd0i6VJLM7CxJu9x9s7v/rbvPdvejO467v1DoBgAAQOXs3Cm9\n5S3S0qWdt/dWq0mxivfWreVXvEuZWJnoNz3e7t4m6UpJ90haKulWd19mZleY2eUd+9wlabWZvSzp\nRkmfrOaYaDUBAAAo7u67pWeekX70o87bKxm8Dx6MyY4NDZ33K1bxbmmJr0JV60q3miTj6Tc93u5+\nt6Rjc7bdmPP4ym7O8aCkBysznkqcBQAAYOB67jnp1FOlF1/svP3Qoa5BOa3c4L1nTwTo3KJosYp3\nUu0uVEidPFl65JHCYyg3eK9YUdoxhXDlSgAAAHTy/PPSBz4grVzZeXslr1yZr81EKl7x7u6qk7Ve\n8SZ4AwAAoJPVq6WFC+O2rS2zvZKtJoWCd7GKd3fBudKTKyWCd4/Q4w0AAFDc+vWxfN7YsZ0vZlPJ\nS8YXC96FLtPe3eXeB/XkSgAAAPQvzc1Se3uE4qlTpc2bM8/1tOKdvY53oeA9cmQUSvfv7/rcrl3F\ng3cSktvb8z9PqwkAAABqxrp10syZEX6nTpU2bco815PgnbuOd6HgLRW+euXOncWD8/DhEdx37cr/\nfDnB+4gj4nUrYdAFb1pNAAAACsteJ3vatM4V796YXCkVDt7dVbyl4u0m5QTvsWOlffs697qXa9AF\nb5YTBAAAKCw73Fay4l1K8B4/Pvqxc3VX8ZYieGf3pWcrZ3JlXZ00Zkz+8ZRq0AVvAAAAFJZdFZ4w\noXObRW9MrpQiHOdrF+lpxbucyZVSvGah9pVSELwBAADwhuzgPX5858B58KA0bFh5561Uxbu74F1s\nMmQ5rSbJeCrR5z3ogjc93gAAAIVlh9PcSu/Bg5W7cmU5Fe80rSaF+sPb24u/ZjFUvAEAAFBx3VW8\neyN4F6p4p2k1yW2PSezdK40YIQ0dmn7M2eOh4g0AAICKyg3e2YGzpaX8Hu9kOcFkoYtqVbyPOKLw\niijltJkk5yR4AwAAoKKyq8qVbDUZMiS+WlvjcTUr3vmCd7kTK5Px0GoCAACAiirWatKTirfUud2k\nu+CdG3QPHpQOH44L5BRTqDpNxRsAAAA1pVo93lL64D1uXNeKd1Lt7m6hjGIX36Hi3ctY1QQAAKCw\n7IDa0BCrgbS0xOO+rHinWUpQKjy5spyL5ySoeAMAAKDisoO3Wec+755WvBsaIry3tUkHDkijRuXf\nL1/FO83ESqnw5Ep6vAEAANDrnnlG+sY3um5vb5f27OlciU5WGHGP4F3uJeOlWM7vwIF4jTFjCnci\n5Au6aSZWJuPdsyfCfe7x9HgDAACgVy1eLH3609K6dZ2379kTVeghQzLbxo2LtpBDhyJ01/UgPY4c\nKe3f3/2FbHpS8R4yJM6dL7hT8QYAAECvaWuTHnpIOv106bHHOj+XL5yOHRshuKf93VKm4t1d8G5o\niAp70luejC1NxVvKP8GSijcAAAB61bp10ujR0nveIz31VOfn8oXTpPrc0/5uKSreaYK3Wdeqd9rJ\nlVL+CZY9mVzJlSsBAABQslWrpHnzpPnzpVde6fxcoeDd3Fy5ineaVhOpa3tHKRXrfBMsezK5sqGh\nc/tNuQZd8GY5QQAAMJglwXvuXGn16s7PFWs16c2Kt9TzinclW02knh2bGHTBGwAAYDBbv16aOTN9\n8E4CcH+qeBdqNelJeE4b+osZdMHbva9HAAAA0He2b5cmT46vffu6TmDMV/Fubu79ivf48eVXvPO1\nmlDxBgAAQK/atk2aNCnab6dMkTZvzjzXGxXvUlpNsivePZlc6d6zyZUSFe+y0OMNAAAGuq1bpfe9\nr+s63VImeEvS1Knpg3clKt6ltppkV7x7MrnywAFp2LCeXfyHijcAAAC6uPVW6Wc/k26+uetzpQbv\npNWkEhXvUidX9qTinR28e9pmIvWTireZLTSz5Wa20syuKbDP181slZktMbNTOrbNNLP7zWypmb1g\nZp+u9lgBAAAGgscfly68UHryya7PbdsmTZwY96dOlTZtyjxXqxXv9vY4Jm2rSG6rSSWCd81XvM2s\nTtINks6TtEDSJWZ2XM4+50s6xt3nS7pC0nc6nmqV9Bl3XyDpbEmfyj22vDH19AwAAAC17ZlnpI99\nTHr66c6kAZggAAAftElEQVTb3WNyZXbw7g8V7+bmuOhP2rW0B2vF+wxJq9x9jbsflnSrpIty9rlI\n0g8kyd0flzTOzKa6+yZ3X9Kxfa+kZZJm9HRArGoCAAAGMnfptdek3/u9CJ/792ee27MnwnNSuS61\nx7s3J1dmLydYyuXipfzBuycTK5Px9FS1g/cMSWuzHq9T1/Ccu8/63H3M7ChJp0h6vOIjBAAAGEC2\nb49gPXasNHu2tGZN5rns/m6pa/DeubP4qiaVWE6wnHW8842rmGRyZVJw7clVKxMzelz+lYb2/BTV\nZWajJf1U0tUdle+8Fi1a9Mb9xsZGNTY2FjhfZccHAADQF9atk664QvrOd6RZszLbX389ArckHXVU\nVL+PPz4e5wbvyZNjWyJfxXvUqAjdu3fH/Z5IKt67d3cfvI84ItOnXcrEyuR1hgyJkD9qVPmtJk1N\nTWpqair9wAKqHbzXS5qd9Xhmx7bcfWbl28fMhipC9w/d/efFXig7eAMAAPQ3S5ZITzwhXX55uv1v\nu0266y7pJz+R/uqvMtuzg/ecOV0r3kl/txQhPAne7e3RipIbiM1i26ZN0pgxpX9f2ZLJlWmCdPYE\nyXKCc9Ju0pPgnVvMXbx4ceknyVLtVpMnJc0zszlmVi/pYkl35Oxzh6RLJcnMzpK0y92TDz2+J+kl\nd/9alccJAADQp66/PirY2UvoFfPww9J73iM98kjn7WvXZirg06Z1XrVk+/bOFe/s4F1sAuO4cdKG\nDT2veI8eHWH64MG4X0z2WtylVrylzn3elejxroSqBm93b5N0paR7JC2VdKu7LzOzK8zs8o597pK0\n2sxelnSjpE9IkpmdI+kjkt5pZs+a2TNmtrCa4wUAAOgrzzwT4fL559Ptv2yZdNllXfdfvz7Tjzxt\nWuce7txWkyR4J1d2LFQVHju2MsF7wgTp5Zfjdbpr/x0xIqrwLS0RoLMr9WlfqyfBvRqq3uPt7ndL\nOjZn2405j6/Mc9wjklIuGpMePd4AAKDWNDdLW7ZIH/5wBOm3v734/u7RQvKOd0Sv9+HDcWVGKYL0\nMcfE/alTpd/8JnNcbvBOVjhpbi6+ckilKt4TJ0aQzu5JL8Qs0+e9Y0cE6VLUYvAedFeuZDlBAABQ\na5K+7OOPl1au7H7/LVtihZAJE6Tp0+P4RHa47q7iLcUEy61bu694b9zY8+Cd9IiPHJlu/yQ8lxu8\ny52cWS2DLngDAAD0tZde6lwMXLtWmjkzvtbnLEPR2tr5KoxSrFRy1FFx/+ijpdWrM89t3dr5kvDZ\nPd65kyulTLtJseA9blysRtLT4J10HqQthFLx7udoNQEAAH1pyRJpwYLOLSDJhMh8wXvx4giRLS2Z\nbWvWZIL39OlRjU7kq3gnQTd3cqWUPnhLPQ/eifr6dPslwXv7doI3AAAASvTQQ3F7//2ZbRs2xITI\nmTOjZzvbnXfG7bPPZrZlr1wyfXrXqnYSrpOVQ/bu7fpcIm2riVSZ4H3KKdJ735tu32RlEyreAAAA\nKGrnTumrX+3cWvHMM9J553Xu5d62LQJwUqFub4/tra2x35/8ifTkk5n9t2yRpkyJ+9OmZSrera1x\ncZrskDllSgTr5HV6UvFO25tdzLPPSp/9bLp9kz7tcoJ3Etrb22Py6IBfTrAW0WoCAAB6y/e+J33m\nM51D8+bNUmOjtGJFZlsSiIcNiyr17t2xffXqCNZnny29+GJm/61bI6hLnSveO3dGwByatW7dpEmx\nv3u0bJTT451UvCtVNU6bxyrR4717d+H1yXvboAverGoCAACqwV266aaYhJhYsiT6mbOD99at0lln\nSa++mskl2ZXoiRMzF7V55ZVYGnDu3JhQmX2OJHhnV7yLtZLs3h0V69z+6jStJslqJEmVvbcccUT8\nUZHmgju5kuBdK20m0iAM3gAAANXw2GPSRz8q/dd/ZbatXCldeGEE6MTWrTExcsiQuES71DkwT5oU\nlWkpQuf06bF/oeCdPbmyWPDOV+1OXm/btgiohYL31Klxm6wV3lsmT47WlCOPLL1rgeANAAAwQHz/\n+9KXvpR5nEx+zJ4EuXKldP75cbXGRBKap07NrLGdG7yTivfGjRGs58yJtbqT3u+tWzv3eCetJsWC\nd77nkue3bSv8vBQ96a2txX8e1XDUUfFpQZoL7uQieNcAerwBAEA5coPnpz8t/fVfZ9pFXnhBOvdc\nafnyeHzgQHydfnqmWr1vX9yOGpUJ3u6d19fOF7xHjIivZD3vLVsyFe/x4+O8hw6VF7yTHvBiwdus\nb3qk58yJ29mzSz929OhoUdmyheANAABQ0zZv7hy2J0yQvvzluO8eQbe+PrNiyJo10gUXZCZNJmtm\nT5sW4U/q3CKSBO/9+yPUJiuGZAfvpNVEylS2W1ritZMJj3V1xcN1muDdXcW7ryTfe6EWmGLM4t/s\nlVcI3gAAADXLPYLu9dfH4/Xrox87uejN3r0Rlk86KdO/vXWrdOqpsSZ3UsWeNCnTs93e3vWqkps3\nd72aZPbkyo0bYxzZ+yfnyP4Uf8qUzLnyBe9iwXr8+Jh4uWNH7QTURF2d9LnPSZ/8ZHnHT5gQVwlN\netT7GsEbAABA0uWXS9deG/eTyYqPPx63q1ZFeEt6tTdvjrB7zDGZ4L1tW/QijxgRK4QkQXfo0Fji\nb/v2/BXv3EmP+VpNsvfPPkdiypSoqpczubKuLhPia2HJvVx///fSiSeWd+yECdLzz8fFiWoBwRsA\nAAxKzz4rHXecdPhwPP63f5O++MW4v3RphNnVq+PxmjXS298eV5VsbY2QO3VqBO3kSpNJJTppCckO\nwUkwzhe8cyf/JReNSc6ZvWzgpk3Fg3e+57prNZGiGj8Q58HNmRMV7yOP7OuRBII3AAAY0HbvzkyA\nPPdc6brr4v5vfhP92M89F33WZvHV1hYV7nPPjcDtHrfz50fAXbs2U/FOrgp54EAE+DFjMutqdxe8\nkxaU3OA9blxUzNvaoqUlueJimop3ditLIjt456t4S7E9aWkZSObNi1uCNwAAQBW0tUn33Rf3m5uj\nh/nBB6Oqe++90s9+Fs89/3zcLlsWLSTHHx+hNQm3c+fGyhhbtkRVe9YsaebM6OFOKt651WSz9BXv\niRPzB++k53r37phAWdeR1ooF76lTC1e8x4yJyZirV2faVnL99redL/IzUBx9dNwec0zfjiMx6IL3\nQPwYBQCAwaqlJW63bZMuvTTaQO67T3r3u6NdJAnXjz6aaQlJLk6zapX0trfFxMlNm6IqOnt2VLST\n0DxzZhyXBNqk/zqpeE+eXLiSnTZ4505qHD8+Kt65gTxNq8m2bV2fM4ttzz1XuNd5/vza6YOupIsu\nkr71rcKV/t426IL3wYNxu39/344DAACU5/bbI7CuWxcTGVetirD9wx9KTz2VuYDNc89lgveaNRFa\nTz45Aurhw3F76qkRvJMwO2tW5+CdhOhkYmJS4U4q3kmrSe4l33ODd3JcdmieMKF4q0nu9u5aTdas\nybS75Jo8OVpmaqXlorcccYT0iU/09SgyBl3wXrs2bvfu7dtxAACA4lpb4/Lr7tLf/q30J38SvdQf\n+ID0zW/GJdqlqGavWhX3ly2TXn01AvnatRHOzz47QumWLVHVnTo10y5yyimZ+5MnR1U5WZYvu8Kd\nrMmdBOjsinduoM63LnYSxgu1mkyYkPm+x42LNpNSK95Ll8b2fJ/ujxoVt/X1Pfs3Qc8MuuB94YVx\nm1w5CgAA9J22tgiZbW3S178en0z/6Z9Kf/M30Zf9oQ9FmP7mN6X//M/M0n0vvxyXUE/uv/xyBNOk\nev3Wt2Yq1299awTvzZsjdM+cGZdyb2+Xjj22c8U7NzQna2oXqnhnt5rkXvK9u+A9cmT8UbFhQ+eA\nXV8fX+vWda14b90a4Ttf8M43sTJxyinSsGE9+7dCzw2q4N3WlrlPxRsAgN53331R/Pq7v5NuuUVa\nvDh6mp99Vrr6aumRR6Qf/EC66SbpxRfjmBUrMlXc1atjremNGyPwzpkTQfT116Uzzsi0Ypx2WgTv\nrVvjIjdJVXvKlAiwL74Y4TW5uEwSiHMnSyaXU88O3tu2Zc41alSM57XXulayuwveZrH95Ze7Xrhm\n/Pj4XrOv2DhsWOz30kv5lwzMvs319a9nlihE3xlUwfsLX4iPrKS4+hQAAKisffui0PXTn8Z8qg98\nIMKwWfRcv/vd0o03Sv/4j9LnP59pEUl6sZML1AwZEsdJEWr37o3QuWxZpj1k61bpzW/OtIaceGJm\nNZGTTsos6Td/fkzCXLOma/BOKtpbt8ZzSdDODt6rV0sNDVGFzm41Sa6GOGlS5zCcXfFOJvVNnBhj\nbmnJLA+YbM8XvMeNi+87d/v06ZFhcgN2crn55DZXXV2m3QR9Z1AF7+Q/bil6xAAAQGna26MdZPny\nCJ///u+ZivTDD8fye7ffLv3RH0k33xz3b745jr3ttrhdsyZu29oyV2hMJkQuXSoNHx7V2c2bo6L9\n3HMRUI88MgJzUsFOgvemTVFNToL31q1xYZzsCvOUKdILL2QmRCYXyBk/PkL9xo2ZVpM1a+L7GTky\nHq9YkQnQkybFayd/CCTbVqzo3GqyZk1csXLEiNg2cWLmPNk92BMnRi97oYp3vu1S/ku7/8EfxCoe\nqF2DKnhnS5YfAgAAGYcPR7h+8cUoWP385zGp8a67IjD+zd9E1fWMMyLkfexj0j/9Uxz7rW/F7U9+\nErf33hu3998ft8nl1196KW737o0Q29AQQXjGDOmZZ2Lt5eHD4/VPPVVasiTC7PTpEZ7nz48C2uuv\nR9hOKt4LFkS/9q5d0pvelKk6T54cgfuFF7pWvOvqIsSuXJkJ3suXdw7R2aE6Ce2TJmXW1544McaS\n3Wqyc2fnfuuJE+MPjdxKdTKpMm3wTvq06/IkuDvvlP7sz7puR+0Y2tcD6E3Zf2ESvAEAg0lzc+ZK\niCtXRqBrbpa+972Y4HfccdJ3vhOBb8YM6de/jpaOJUvi+KTf+sc/zvQKP/VU59ukav3MM3H79NNx\n+8ILmdvJk+OcxxwTrRSHDsXrLF0qveUtMaHyzDMj/L/wgnTVVdIvfxkrk0yfLjU1SZ/6VITaZcsi\nbL/+elSnZ8yIsDphQgTdvXvjPBMmRNh++ul4/Z07oyUmOyivWBGP9++PyZ7JBVcmTYrWjqTiPWVK\n/BynTMn8bLNDupS/7WP06LgdO7bzv0sSrLN7uaVoNVm/vmvw/qd/ip8b+qdBFbyzffCDmcvHAgDQ\nHx0+HBXQV16JcDh8eLQ4bNgg/epXUXDavFl66KH051y3LhOyswNeUqVOluWVMosWLF8etytWxO3q\n1Znl/CZPjvaP+fOjgv2Od0S4TirVe/ZE6H/ssWgh+dWvIiS3t8f5jj8+vs+k37q1NbPayPr10Yoi\nxesl4XXChM7FtiFDMv3YkydHRVzKhOek53r8+M6tIflukzCd7Jf9XPakyVzJtiFDuj6Xb3uhlpLT\nT48v9E+DKnhz1UoAQK1qbo5q6MqV0cv8yCMRIJubMxeFWbky1qjevbt3xpQEVCkq0/kkV1lsaIhP\nk487LoL4ySdHmH7zm6PV5MQTI3gff3wE7+yKcXL/hBMyj1tb4/5xx8VtEryT+0kFOXuiYhJeh+ZJ\nN8lrTJoUP1Opa1Cuq8sE6oaGuM0N3vkk4Th7Le5C40i+r0ShVUiK9XKj/xo0wXvp0szkDgAYDJ56\nSvrXf421j1Fd7e2ZNo7hwyMYb9oUYW3ZsvjasiW+Vq+OFTySSYVHHdV/WgemT49JiNkWLIg/Ek46\nSXriiQjay5fH48cei8CdBO//+R9p3rw4Lru1Ijd4T56cud7G0UfHbVLlTu4nn1rnK6rl639OAvXw\n4ZnXS0JvsU/A81W4C8ldJzv3CpJnnx2TTrNdd1300OcieA9MVQ/eZrZQ0r8qJnLe5O7/nGefr0s6\nX9I+Sf/X3ZekPTatu+7quu3GG6Urrij3jED3mpqa1NjY2NfDwCD14x/HOsn5gvdgf2+6x8ocQ4ZE\nQB49OgLcb38b1dsxY2LptQMHIijfe298JVdQ/Lu/q9xYajV0H3FEppd7xIj4Wbz1rTGBr74+UwGf\nOjV+jm9+cyZ433ZbVLyleCxFpVvKhN7clT0kae7cuN24sUlSo6RMT/SYMZ0r3u3tncebHZ6Tc2dv\ny64+J2E2qZbna//IrVZnXwvkE5/ovHrI+9+f6WtPvPJKpmqeePTRrq/T0JD5gyNbdvsLBo6qBm8z\nq5N0g6R3Sdog6Ukz+7m7L8/a53xJx7j7fDM7U9J3JJ2V5ti0/uEfpM9+tuv2j388/pI+55zC614C\nPTHYww36VhIUWlu7hohaem+2tkZQammJsLtiRUySGz06KshLlkTfcnNzBK53vjP2+9znYpm5L39Z\nWrgwrnb4hS9Il1wSf3RUSyVDd18YMqRziCz03Pz50eu9f3+E5TVrorf4vvuispsE7yFDohK+YEE8\nPuWUuM0N3tktI7mSy5gngfjll5s0dWqjpEyIHjkyE5AnTIjzJVexlDLh/ayzpN/5nbi/YEG07UiZ\nWylTEU9aQ665RvrRjzLPX3+99Id/mHn88Y9LH/5w5nGyekvilFOkX/yi87akUl+u5A8OgvcA4+5V\n+5J0lqRfZT2+VtI1Oft8R9KHsh4vkzQ1zbFZz3m2zZvdH3vM/frr3ePv3c5fF1zQdduCBe7r1rnv\n2+fe3u594oEHHhgQr1mJc5ZzjlKOSbtvd/t19/x1112X6nVqXV+8N6v1uj09Z1+9N7N/L7W3u//m\nN7Hfnj2xbds299bWuN/W5v7EE+7HH//AG7/j7rknfr+5ux844P7nf36dt7a6P/KI+9at7r/+tfvq\n1e4PP+x+++3u993nfscd7rfe6n7TTe433OD+ta+5/+M/un/+8+6f+Yz7pz7lfvHF7h/+sPvZZ7vP\nm+f+vve5n3yy+wknuA8dmv93cOW/Huil16n2a/b0nJnjzdxnzcq/3/HHu0+cmHk8fPgDfsIJcX/a\ntMz297439l240P0rX4ltX/jCA/72t7t/9KPxdeml7r/8pfs557jfe2/ss369u9kDvm2b+7hx7rt2\nuQ8b5r5pUzy/YUOM9dpr3U89NV5z2TL3978/3p+S+x/90XX+L//iPmRIbHvkEfeWFveNG90/+cnY\ndvCg+/btcf9//9f9lVe6/nezb5/7oUOZ/y42bMg8t3Nn6v8sy9aT3zc33BA/i95+3Wqds7/8f727\nfToyZ5csmvar2q0mMyRlzX/WOklnpNhnRspj3zBrVszELmbp0vjrN/no57bbMr1WS5dKM2d2PeYt\nb4kJLe3t0mWXSQ88EB+FTZwYfynv3BkzqufOjX0OHYq/zpNF893jY8sRI6KPb8KEeP2NGzMVgxEj\nYpH/W25p0t69jRo+PHM53Nmzo/rQ2hpfDQ1RWdiwIf4aTvoK9+2Lj6UmTIjewv37Y5tZnGvo0Kgg\nrV8f52hri+233NKkUaMa33jc2hr9b8lHsCNGxP3ktZOPFw8fji+zqByMHh0/iyFDpB/8oEnjxjW+\n8XNoaYnjWlriHA0NMcZJk2KMra3xnHscP2SIdNttMa6kCpZUQ4YPj6/kuDFjYkZ8S4v0ve816Ygj\nGiXFa+zbFz+jUaMyy0Ml/0Y//nGTJk5s1NCh0o4d8X0OGRLVlj174iNVM+mHP2zS2LGN2r8/Xj+p\nvJhlnm9oiHEOGxY/i5aW+JnV18d7cs2aeA8cPhxjGjo0xt3cHMdMnBjbmptjLO4x7v37Y7zDh8d5\np02L43fs6DzJqb4+tjU0xHt4+/YYw8iR8ZVcoOLQoTjP6tXxHqqri+eHDYuf5YwZ8bqbN8f5zGIM\nBw/G97lvX6Pc4/jRo+O46dPjvOPGxfb6+vg5Ju+JAwcyP/u2tqhc7tsXlaf9+6O/sr4+89/k2LFx\n3kmTYnmwX/6ySTt2NL7xPRxzTFS4WlvjnCNGRJvA5s3xs9qzJ/693/WuGNe3vy0de2z87OvqYp9l\ny5r07nc3asiQzAUyknGfdlr8N75jR/ybNDTEtg0bYtuBA9Jvf9ukN72pUevWZVaQ2Ls3Xq+hIcaT\na/bsJr3+erw3Tzopc4W+/JqUfMReXLw3m5ulxsZokZg/X/rzP4++7pYWacyYzLl+//fjfXf11dId\nd8Qkt3vvje/t8OEUL5dSctXBSpg1q/MKGtnOPVf6zW+SR01K9zPr3qmnRuvE3Xd3fe7OO6X3vKfr\naw4d2nXCXOLb3462hGKuvz7eX1/5SpMWLmzUihXx39Mf/3H8+9x/f6yZ/cMfRn/0gQPxvn355fhE\n9/vfj3/7D3+4SYsXN2r16liB5Kmnon/4He+IT3ZbW6UvfUn63d+VLr881rl+3/ukk05q0he/2Kgz\nzoixPvpo9KRffXUs53f11THOxx+Xdu9u0oMPNnb5Hs48M/7/87Ofxe+FP/uz+B27enX8fnjoofi5\nusf+V13VpM9/vlHXXhu/GyZMkP77v+O5PXtinH/5l9Jf/EVsSyrY06ZJ3/xm3K+vz1Sszzkn/882\n+9PsuroYW6I3Ksk9+WTpQx8qf4zV+ESrp+cs5/hSjkm7b5r9qvmJoHnyX0E1Tm72AUnnufvlHY//\nWNIZ7v7prH3ulPRP7v5ox+N7Jf21pLndHZt1jup9EwAAAEAHdy97nbxqV7zXS5qd9Xhmx7bcfWbl\n2ac+xbGSevYDAAAAAHpDtS8Z/6SkeWY2x8zqJV0s6Y6cfe6QdKkkmdlZkna5++aUxwIAAAD9QlUr\n3u7eZmZXSrpHmSUBl5nZFfG0f9fd7zKzC8zsZcVygpcVO7aa4wUAAACqpao93gAAAABCtVtNAAAA\nAIjgDQAAAPSKARm8zWyumf27mf1XX48FyGZmF5nZd83sx2Z2bl+PB8hmZseZ2bfN7L/M7ON9PR4g\nm5mNNLMnzeyCvh4LkM3M3mFmD3X8/nx7sX0HZPB299Xu/tG+HgeQy91/3rE2/Sck/Z++Hg+Qzd2X\nu/snJH1I0u/09XiAHNdI+klfDwLIwyXtkTRcccHHgvpF8Dazm8xss5k9n7N9oZktN7OVZnZNX40P\ng1cP3puflfTN3hklBqty3p9m9h5Jv5B0V2+OFYNLqe9NM3u3pJckbZXEtTtQVaW+P939IXe/UNK1\nkv6+2Ln7RfCWdLOk87I3mFmdpBs6ti+QdImZHZdzHP9xotpKfm+a2Rck3eXuS3pzoBiUSn5/uvud\nHf8D+ePeHCgGnVLfm42SzpT0YUl8oo1qKzd37lJcALKgal+5siLc/X/NbE7O5jMkrXL3NZJkZrdK\nukjScjObIOkfJJ1iZte4+z/37ogxWJTx3rxK0rskjTWzee7+3d4dMQaTMt6f75D0fsXHpb/s1cFi\nUCn1venun+3Ydqmkbb06WAw6ZfzufJ8ikI9ThPOC+kXwLmCGpLVZj9cpfihy9x2KHlqgLxR7b35D\n0jf6YlBAh2LvzwclPdgXgwJU5L2ZcPcf9OqIgIxivzv/R9L/pDlJf2k1AQAAAPq1/hy810uanfV4\nZsc2oK/x3kQt4/2JWsV7E7WsIu/P/hS8TZ0nSz4paZ6ZzTGzekkXS7qjT0aGwY73JmoZ70/UKt6b\nqGVVeX/2i+BtZj+S9KikN5nZ62Z2mbu3SbpK0j2Slkq61d2X9eU4Mfjw3kQt4/2JWsV7E7Wsmu9P\nc/fKjhYAAABAF/2i4g0AAAD0dwRvAAAAoBcQvAEAAIBeQPAGAAAAegHBGwAAAOgFBG8AAACgFxC8\nAQAAgF5A8AaAGmFmbWb2jJm9YGY/MbOGEo//rpkdV8L+f2pm3yjw3EVm9tlSXr/AeU40s5t7eh4A\nGAgI3gBQO/a5+2nu/mZJhyV9PO2BZlbn7pe7+/ISX7PQVdT+WtK3Snj9IXlP7v6ipBlmNrPEcQHA\ngEPwBoDa9LCkeZJkZh8xs8c7quHfNjPr2L7HzL5sZs9KOtvMHjCz0zqeu8TMnu/4+kJyUjO7zMxW\nmNljks7J98JmNl9Si7vvMLPRZvZqEqzNbEzyuOP1vmpmT0j6tJl9sKNa/6yZNWWd8heSLq78jwgA\n+heCNwDUjiRQD5V0vqQXOlpHPiTpd9z9NEntkj7Ssf8oSb9191Pd/ZE3TmI2XdIXJDVKOkXS6Wb2\nXjObJmmRpLMl/a6kEwqM4xxJz0iSu++V9ICkCzueu1jSf7t7W8fjYe5+hrt/VdLnJf2+u58q6b1Z\n53tK0ttK/3EAwMBC8AaA2jHCzJ6R9ISk1yTdJOldkk6T9GRHZfudkuZ27N8m6fY85zld0gPuvsPd\n2yXdIuntks7M2t4q6ScFxjFd0tasxzdJuqzj/mWSvpf1XPY5/lfS983so5KGZm3fIunIQt80AAwW\nQ7vfBQDQS/Z3VLXf0NFW8n13/7s8+x9w90I92pZnmxfY3uW8ksa+cZD7o2Z2lJm9Q1Kduy/L2ndf\n1n6fNLPTJf2BpKfN7DR33ympoeOcADCoUfEGgNqRLxTfJ+mDZjZZkszsCDObVWR/KSrmbzezCR29\n2ZdIejBr+xFmNkzSHxU4fpmk+TnbfijpR+pc7e48eLOj3f1Jd79OUeVOxvkmSS8WOg4ABguCNwDU\nji7V647q8mcl3WNmz0m6R9EKkm9/7zhmk6RrJTVJelbSk+5+Z8f2RZIeU0zefKnAOB5S9IZnu0XS\neEm3Fhnvl5IJnZIedffnO7b/nqRfFngtABg0rPCnlACAwcrMvirpTne/v+PxByW9x93/tMTz1Cv+\nAPjdjn5zABi0CN4AgC46WlvOdPdfmNnXJS2UdIG7v1zieeZJOtLdH6rGOAGgPyF4AwAAAL2AHm8A\nAACgFxC8AQAAgF5A8AYAAAB6AcEbAAAA6AUEbwAAAKAX/H9zhYayuCV6VwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from scipy import signal\n", + "Npts = 3000\n", + "logPmin = np.log10(10.)\n", + "logPmax = np.log10(1.e5)\n", + "Ps = np.logspace(logPmin,logPmax,Npts)\n", + "ws = np.asarray([2*np.pi/P for P in Ps])\n", + "\n", + "periodogram = signal.lombscargle(times,x[0],ws)\n", + "\n", + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "ax.plot(Ps,np.sqrt(4*periodogram/Nout))\n", + "ax.set_xscale('log')\n", + "ax.set_xlim([10**logPmin,10**logPmax])\n", + "ax.set_ylim([0,0.15])\n", + "ax.set_xlabel(\"Period (yrs)\")\n", + "ax.set_ylabel(\"Power\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We pick out the obvious signal in the eccentricity plot with a period of $\\approx 45000$ yrs, which is due to secular interactions between the two planets. There is quite a bit of power aliased into neighbouring frequencies due to the short integration duration, with contributions from the second secular timescale, which is out at $\\sim 2\\times10^5$ yrs and causes a slower, low-amplitude modulation of the eccentricity signal plotted above (we limited the time of integration so that the example runs in a few seconds). \n", + "\n", + "Additionally, though it was invisible on the scale of the eccentricity plot above, we clearly see a strong signal at Jupiter's orbital period of about 12 years. \n", + "\n", + "But wait! Even on this scale set by the dominant frequencies of the problem, we see an additional blip just below $10^3$ yrs. Such a periodicity is actually visible in the above eccentricity plot if you inspect the thickness of the lines. Let's investigate by narrowing the period range:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n2EoBOtApIDkAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "ax.plot(Ps,np.sqrt(4*periodogram/Nout))\n", + "ax.set_xscale('log')\n", + "ax.set_xlim([600,1600])\n", + "ax.set_ylim([0,0.003])\n", + "ax.set_xlabel(\"Period (yrs)\")\n", + "ax.set_ylabel(\"Power\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is the right timescale to be due to resonant perturbations between giant planets ($\\sim 100$ orbits). In fact, Jupiter and Saturn are close to a 5:2 mean-motion resonance. This is the famous great inequality that Laplace showed was responsible for slight offsets in the predicted positions of the two giant planets. Let's check whether this is in fact responsible for the peak. \n", + "\n", + "In this case, we have that the mean longitude of Jupiter $\\lambda_J$ cycles approximately 5 times for every 2 of Saturn's ($\\lambda_S$). The game is to construct a slowly-varying resonant angle, which here could be $\\phi_{5:2} = 5\\lambda_S - 2\\lambda_J - 3\\varpi_J$, where $\\varpi_J$ is Jupiter's longitude of pericenter. This last term is a much smaller contribution to the variation of $\\phi_{5:2}$ than the first two, but ensures that the coefficients in the resonant angle sum to zero and therefore that the physics do not depend on your choice of coordinates.\n", + "\n", + "To see a clear trend, we have to shift each value of $\\phi_{5:2}$ into the range $[0,360]$ degrees, so we define a small helper function that does the wrapping and conversion to degrees:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def zeroTo360(val):\n", + " while val < 0:\n", + " val += 2*np.pi\n", + " while val > 2*np.pi:\n", + " val -= 2*np.pi\n", + " return val*180/np.pi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we construct $\\phi_{5:2}$ and plot it over the first 5000 yrs. " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n/B+IS0vkK7xKhgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "phi = [zeroTo360(5.*longitude[1][i] - 2.*longitude[0][i] - 3.*varpi[0][i]) for i in range(Nout)]\n", + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "ax.plot(times,phi)\n", + "ax.set_xlim([0,5.e3])\n", + "ax.set_ylim([0,360.])\n", + "ax.set_xlabel(\"time (yrs)\")\n", + "ax.set_ylabel(r\"$\\phi_{5:2}$\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the resonant angle $\\phi_{5:2}$ circulates, but with a long period of $\\approx 900$ yrs (compared to the orbital periods of $\\sim 10$ yrs), which precisely matches the blip we saw in the Lomb-Scargle periodogram. This is approximately the same oscillation period observed in the Solar System, despite our simplified setup!\n", + "\n", + "This resonant angle is able to have a visible effect because its (small) effects build up coherently over many orbits. As a further illustration, other resonance angles like those at the 2:1 will circulate much faster (because Jupiter and Saturn's period ratio is not close to 2). We can easily plot this. Taking one of the 2:1 resonance angles $\\phi_{2:1} = 2\\lambda_S - \\lambda_J - \\varpi_J$," + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\ngg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "phi2 = [zeroTo360(2*longitude[1][i] - longitude[0][i] - varpi[0][i]) for i in range(Nout)]\n", + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "ax.plot(times,phi2)\n", + "ax.set_xlim([0,5.e3])\n", + "ax.set_ylim([0,360.])\n", + "ax.set_xlabel(\"time (yrs)\")\n", + "ax.set_ylabel(r\"$\\phi_{2:1}$\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "In this case, since we are far from this particular resonance (the 2:1), the corresponding resonance angles vary on fast (orbital) timescales, and their effects simply average out." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/rebound/source/ipython_examples/FrequencyAnalysis.ipynb b/rebound/source/ipython_examples/FrequencyAnalysis.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..6086f459d2be7df64457aaba3227276637eafa02 --- /dev/null +++ b/rebound/source/ipython_examples/FrequencyAnalysis.ipynb @@ -0,0 +1,254 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Frequency Analysis\n", + "This examples shows how to perform a Modified Fourier Transform (MFT), or a Frequency Modified Fourier Transform (FMFT) on timeseries data using REBOUND. This can be used to determine the fundamental or secular frequencies of planetary systems. The (Frequency) Modified Fourier Transform is much more accurate in determining the frequencies than a simple Fourier Transform. For more information on these methods see: [Laskar (1988)](https://ui.adsabs.harvard.edu/abs/1988A%26A...198..341L/abstract), [Laskar (1990)](https://ui.adsabs.harvard.edu/abs/1990Icar...88..266L/abstract), and [Sidlichovsky and Nesvorny (1996)](https://ui.adsabs.harvard.edu/abs/1996CeMDA..65..137S/abstract).\n", + "\n", + "In this example, we will determine the secular frequencies present in the outer Solar System. Throughout the example, we work in units where $G=1$ and one year is equivalent to $2\\pi$ code units." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "sim = rebound.Simulation()\n", + "rebound.data.add_outer_solar_system(sim)\n", + "sim.integrator = \"whfast\"\n", + "sim.dt = sim.particles[1].P/30.13 # About 30 steps per Jupiter orbit" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now integrate forward in time, taking snapshots every 120000 days using the Simulationarchive." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "step = int(120000.0/365.25*np.pi*2/sim.dt)\n", + "sim.save_to_file(\"output.bin\",step=step,delete_file=True)\n", + "Nsamples = 2**13 # Needs to be a power of 2\n", + "sim.integrate(step*sim.dt*(Nsamples-1),exact_finish_time=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now have a Simulationarchive with $2^{13}$ snaphots." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "sa = rebound.Simulationarchive(\"output.bin\")\n", + "print(sa)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We next extract the eccentricity e and the periastron $\\bar \\omega$ of Jupiter from this archive." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "inp = np.zeros(Nsamples*2)\n", + "for i, sim in enumerate(sa):\n", + " o = sim.particles[1].orbit()\n", + " inp[i*2+0] = o.e*np.cos(o.pomega)\n", + " inp[i*2+1] = o.e*np.sin(o.pomega)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's quickly plot this dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "fig, ax = plt.subplots()\n", + "ax.set_xlabel(\"Time [Myrs]\")\n", + "ax.set_ylabel(\"Eccentricity of Jupiter\")\n", + "ax.plot(np.arange(Nsamples)*step*sim.dt/np.pi/2.0/1e6,np.sqrt(inp[::2]**2+inp[1::2]**2));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we perform the Frequency Modified Fourier Transform algorithm on this time series to extract the secular frequencies, amplitudes, and phases. We specify a minimum and maximum frequency to ensure the FMFT only returns modes in this range. Here, we choose the range of -60\"/year to +60\"/year." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "minfreq = 60.0/1296000.0*step*sim.dt\n", + "freq, amp, phase = rebound.frequency_analysis(inp, type=1, minfreq=-minfreq, maxfreq=minfreq)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now print out the 10 most dominant frequencies in the signal. Also shown are the amplitudes and the phases." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "nu = 4.24\"/yr A = 0.0441150 phi = 30.0°\n", + "nu = 28.24\"/yr A = 0.0156774 phi = 306.1°\n", + "nu = 3.09\"/yr A = 0.0018430 phi = 119.5°\n", + "nu = 52.25\"/yr A = 0.0005711 phi = 42.2°\n", + "nu = 29.29\"/yr A = 0.0002578 phi = 253.3°\n", + "nu = 27.18\"/yr A = 0.0002552 phi = 183.9°\n", + "nu = 5.35\"/yr A = 0.0000729 phi = 135.4°\n", + "nu = 53.36\"/yr A = 0.0000541 phi = 325.2°\n", + "nu = 4.17\"/yr A = 0.0000483 phi = 75.7°\n", + "nu = 51.18\"/yr A = 0.0000191 phi = 282.4°\n" + ] + } + ], + "source": [ + "nfreq = len(freq)\n", + "for i in range(nfreq):\n", + " print(\"nu = %5.2f\\\"/yr A = %.7f phi = %5.1f°\" % (freq[i]*1296000.0/step/sim.dt, amp[i], phase[i]/np.pi*180.0))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also use these few dominant modes to create a very accurate approximation of the input data. Note that we don't need to worry about converting units in the following code." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "approx = np.zeros(Nsamples*2)\n", + "for i in range(nfreq):\n", + " approx[0::2] += amp[i]*np.cos(freq[i]*np.arange(Nsamples)+phase[i])\n", + " approx[1::2] += amp[i]*np.sin(freq[i]*np.arange(Nsamples)+phase[i])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following plot shows the original signal (blue) and the reconstructed signal consiting of 10 modes (orange). They are a very good match." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "ax.set_xlabel(\"Time [Myrs]\")\n", + "ax.set_ylabel(\"Eccentricity of Jupiter\")\n", + "ax.plot(np.arange(Nsamples)*step*sim.dt/np.pi/2.0/1e6,np.sqrt(inp[::2]**2+inp[1::2]**2), label=\"input signal\")\n", + "ax.plot(np.arange(Nsamples)*step*sim.dt/np.pi/2.0/1e6,np.sqrt(approx[::2]**2+approx[1::2]**2),label=\"reconstruction\")\n", + "ax.legend();" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/ipython_examples/HighOrderSymplectic.ipynb b/rebound/source/ipython_examples/HighOrderSymplectic.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..0ff58ef0fc719586ba3f3672672382db7a7e3e81 --- /dev/null +++ b/rebound/source/ipython_examples/HighOrderSymplectic.ipynb @@ -0,0 +1,278 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# High Order Symplectic Integrators\n", + "\n", + "These notebooks show how to use the high order symplectic integrators of Wisdom et al. (1996) and Laskar & Robutel (2001) with REBOUND. See Rein, Tamayo & Brown (2019) for an overview of these integrators. \n", + "\n", + "Let us start by importing REBOUND, as well as numpy and matplotlib." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "High order symplectic integrators with a fixed timestep are well suited for planetary systems in which planets orbit the primary mass on almost Keplerian orbits. The planet-planet interactions need to be a perturbation. If they are not, a different integrator, such as IAS15 or MERCURIUS is better suited.\n", + "\n", + "On system that we know is stable is the outer Solar System. So we will use this as our test case. We can either import accurate data from NASA Horizons, or, because this is just a test, use some of the initial conditions which come with REBOUND to setup a simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from rebound import data\n", + "sim = rebound.Simulation()\n", + "data.add_outer_solar_system(sim) # either this, or add the planets manually\n", + "rebound.OrbitPlot(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll integrate the outer Solar System for 1000 years into the future and measure the energy error along the way. We do that at random intervals to make sure we don't have any aliasing with an orbital period. The following function runs the simulation, and then returns the error." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def measure_energy(sim):\n", + " Nsamples = 1000\n", + " tmax = 2.*np.pi*1e3 # 1000 years\n", + " t_samples = tmax*np.sort(np.random.random(Nsamples))\n", + " E0 = sim.energy() # initial energy\n", + " Emax = 0. # maximum energy error\n", + " for t in t_samples:\n", + " # we do not want to change the timestep to reach t exactly, thus \n", + " # we need to set exact_finish_time=False and slighlty overshoot.\n", + " sim.integrate(t,exact_finish_time=False) \n", + " E = sim.energy()\n", + " Emax = max(Emax, np.abs((E-E0)/E0))\n", + " return Emax" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To get an idea how our integrators are behaving, we want to run this simulation for various timesteps. So let us set up an array of timesteps from 0.001 to 1 orbital periods of Jupiter." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "N_dt_samples = 100\n", + "dt_samples = sim.particles[1].P * np.logspace(-3,0.,N_dt_samples)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's run the simulations with the standard WH integrator first. We set `safe_mode` to 0 to speed up the calculation." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "Emax_wh = np.zeros(N_dt_samples)\n", + "for i, dt in enumerate(dt_samples):\n", + " sim_run = sim.copy() # make a copy of the simulation so we don't need to set a new one up every time\n", + " sim_run.integrator = \"whfast\"\n", + " sim_run.dt = dt\n", + " sim.ri_whfast.safe_mode = False\n", + " Emax_wh[i] = measure_energy(sim_run)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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yZgxY/jpp5944403rMNa+/btq9QLVt4j9fXXX9OhQwf8/Py47bbbKCgo4L333iMqKopGjRrx4IMPYjabre0XFRXx6KOP0rx5c/z9/YmPj2fZsmXW9/fv38+wYcNo1KgR/v7+dO7cmW+++YZ9+/YxaNAgABo1aoTJZGLMmDEAWCwWpk+fTqtWrfD19SUmJobPPvvM2mZ57AsXLqRbt274+Phw1VVXsXXrVrt8v0aMGFHh2MMPP8zAgQOtrwcOHMgDDzzAAw88QFBQECEhITzzzDMYhmE959zh1KioKABGjhyJyWSyvgZYsGABPXr0wMfHh9atWzN16lRKS0ut75tMJv75z38yfPhw/P39efHFFyvF/Nxzz9GlS5dKx2NjY3nmmWesr9955x06deqEj48PHTt25B//+EeF85944gnat2+Pn58frVu35plnnqGkpMT6/pQpU4iNjeWdd96hVatW+Pj4APDZZ5/RtWtXfH19ady4MQkJCeTn51/4GywiF6SeOBGp5I033mDXrl106dKF5557DijrJdq3b1+lcwsKCnjzzTf55JNPyM3NZdSoUYwcOZKGDRvyzTffsHfvXm699Vb69u3LHXfcAcADDzzA9u3b+eSTTwgPD2fevHnccMMNbNmyhXbt2pGYmEhxcTHLly/H39+f7du306BBAyIiIvj888+59dZbSU1NJTAwEF9fXwCmT5/Ohx9+yKxZs2jXrh3Lly/nD3/4A02aNGHAgAHWeB977DHeeOMNwsLCePLJJxk2bBi7du26Ij1V7733Hvfccw9r165l/fr1/OlPfyIyMpLx48dXOnfdunU0bdqU2bNnc8MNN1h7pVasWMHdd9/Nm2++Sb9+/dizZ491CPbZZ5+1Xj9lyhReeuklZsyYgYdH5R/148aNY+rUqaxbt464uDgAfv31VzZv3swXX3wBwEcffcTkyZOZOXMm3bt359dff2X8+PH4+/szevRoAAICApgzZw7h4eFs2bKF8ePHExAQwOOPP269V1paGp9//jlffPEF7u7uHD16lDvvvJOXX36ZkSNHkpuby4oVKyoktCJSDYaIyAUMGDDAeOihhyocW7p0qQEYp06dMgzDMGbPnm0ARlpamvWcP//5z4afn5+Rm5trPTZkyBDjz3/+s2EYhrF//37D3d3dOHz4cIW2Bw8ebEyaNMkwDMPo2rWrMWXKlAvGdX4MhmEYhYWFhp+fn7Fq1aoK595zzz3GnXfeWeG6Tz75xPr+iRMnDF9fX2Pu3LlVfh8AY968eRWOzZ492wgKCrK+Hj16tHHLLbdUOOehhx4yBgwYYH09YMAAo1OnTobFYrEee+KJJ4xOnTpZX7ds2dL4+9//ftF7Dx482Jg2bVqFYx988IHRrFmzCtc9/PDDVX6mckOHDjX+8pe/WF9PmDDBGDhwoPV1mzZtjI8//rjCNc8//7zRp0+fKtt85ZVXjJ49e1pfP/vss4anp6dx7Ngx67ENGzYYgLFv376Lxnf+90NEKlJPnIhcFj8/P9q0aWN9HRoaSlRUFA0aNKhw7NixYwBs2bIFs9lM+/btK7RTVFRE48aNAXjwwQf5y1/+wuLFi0lISODWW2+lW7duVcaQlpZGQUEB1113XYXjxcXFdO/evcKxPn36WP8cHBxMhw4d2LFjh42fumauuuoqTCZThVhee+01zGZzted/bdq0iZUrV1YYIjWbzRQWFlJQUICfnx8AvXr1umRb48ePZ9y4cbz++uu4ubnx8ccf8/e//x2A/Px89uzZwz333FOhp7C0tLTCwpa5c+fy5ptvsmfPHvLy8igtLSUwMLDCfVq2bFlhvl9MTAyDBw+ma9euDBkyhOuvv57bbruNRo0aVet7ICJllMSJyGU5fxjSZDJd8JjFYgEgLy8Pd3d3NmzYUClxKU/87r33XoYMGcLChQtZvHgx06dP57XXXmPChAkXjCEvLw+AhQsX0rx58wrveXt71/zDVZObm1ulocBz54XZU15eHlOnTmXUqFGV3iufbwbg7+9/ybaGDRuGt7c38+bNw8vLi5KSEm677TbrfQDefvtt4uPjK1xX/ve2evVq7rrrLqZOncqQIUMICgrik08+4bXXXqtw/vmxuLu78/3337Nq1SoWL17MW2+9xVNPPcWaNWto1apVNb4LIgJK4kSkCl5eXhUWI9hL9+7dMZvNHDt2jH79+lV5XkREBPfddx/33XcfkyZN4u2332bChAnWlY3nxhYdHY23tzcHDhyoMP/tQn755RciIyMBOHXqFLt27aJTp06X9ZmaNGlSaYFESkpKpWR2zZo1lWJp165dlb1wnp6elf4OevToQWpqKm3btr2smAE8PDwYPXo0s2fPxsvLi9/97nfWOYahoaGEh4ezd+9e7rrrrgtev2rVKlq2bMlTTz1lPbZ///5q3dtkMtG3b1/69u3L5MmTadmyJfPmzSMpKemyP5dIfaEkTkQuKCoqijVr1rBv3z4aNGhAcHCwXdpt3749d911F3fffTevvfYa3bt35/jx4yxZsoRu3bpx00038fDDDzN06FDat2/PqVOnWLp0qTXRatmyJSaTia+//pobb7wRX19fAgICePTRR/nrX/+KxWLhmmuuITs7m5UrVxIYGGidhA9lqzIbN25MaGgoTz31FCEhIZVWltrq2muv5ZVXXuH999+nT58+fPjhh2zdurXSUO6BAwdISkriz3/+Mxs3buStt96q1Gt1rqioKJYsWULfvn3x9vamUaNGTJ48mZtvvpnIyEhuu+023Nzc2LRpE1u3buWFF16wOfZ7773X+r1duXJlhfemTp3Kgw8+SFBQEDfccANFRUWsX7+eU6dOkZSURLt27Thw4ACffPIJcXFxLFy4kHnz5l3ynmvWrGHJkiVcf/31NG3alDVr1nD8+PHLTqZF6huVGBGRC3r00Udxd3cnOjqaJk2acODAAbu1PXv2bO6++24eeeQROnTowIgRI1i3bp21h8xsNpOYmEinTp244YYbaN++vbW0RfPmzZk6dSoTJ04kNDSUBx54AIDnn3+eZ555hunTp1uvW7hwYaXhuZdeeomHHnqInj17kpGRwVdffXXJumXns1gsFVZ8DhkyhGeeeYbHH3+cuLg4cnNzufvuuytdd/fdd3PmzBl69+5NYmIiDz30UIXivud77bXX+P7774mIiLAmhEOGDOHrr79m8eLFxMXFcdVVV/H3v/+dli1b2vQZyrVr146rr76ajh07Vho2vffee3nnnXeYPXs2Xbt2ZcCAAcyZM8f6PR0+fDh//etfeeCBB4iNjWXVqlUVypNUJTAwkOXLl3PjjTfSvn17nn76aV577TWGDh1ao88gUl+ZjPMncoiI1EHLli1j0KBBnDp1yqbdFkwmE/PmzavQW/fSSy9Ze9uqa+DAgcTGxrrcNlKGYdCuXTvuv/9+lxvKjIqK4uGHH660c4iIlFFPnIjIJdx55520aNGCgoICNm7cyOzZs0lISHB2WJft+PHjzJw5k4yMDMaOHevscKymTZtGgwYN7Nr7K1IXaU6ciMhF7N69GyhbUfnvf/+b5557joSEBCZPnuzkyC5f06ZNCQkJ4d///rdLlfe47777uP322wHHbUUmUhdoOFVERESkFtJwqoiIiEgtpCROREREpBZSEiciIiJSCymJExEREamFlMSJiIiI1EJK4kRERERqISVxIiIiIrWQkjgRERGRWuj/Absj9QK2JzZNAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f,ax = plt.subplots(1,1,figsize=(7,5))\n", + "ax.set_xscale(\"log\")\n", + "ax.set_yscale(\"log\")\n", + "ax.set_xlabel(\"timestep [Jupiter years]\")\n", + "ax.set_ylabel(\"relative energy error\")\n", + "ax.plot(dt_samples/sim.particles[1].P,Emax_wh,label=\"WH\")\n", + "ax.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that the WH converges quadratically and reaches a precision of $10^{-9}$ at a timestep of 0.001 Jupiter years. Let's try the same with the WHCKL, SABACL4, and SABA(10,6,4) integrators." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rein/git/rebound/rebound/simulation.py:724: RuntimeWarning: WHFast convergence issue. Timestep is larger than at least one orbital period.\n", + " warnings.warn(msg[1:], RuntimeWarning)\n" + ] + } + ], + "source": [ + "Emax_saba4 = np.zeros(N_dt_samples)\n", + "for i, dt in enumerate(dt_samples):\n", + " sim_run = sim.copy() # make a copy of the simulation so we don't need to set a new one up every time\n", + " sim_run.integrator = \"SABACL4\"\n", + " sim_run.ri_saba.safe_mode = False\n", + " sim_run.dt = dt\n", + " Emax_saba4[i] = measure_energy(sim_run)\n", + "Emax_saba1064 = np.zeros(N_dt_samples)\n", + "for i, dt in enumerate(dt_samples):\n", + " sim_run = sim.copy() \n", + " sim_run.integrator = \"SABA(10,6,4)\" \n", + " sim_run.ri_whfast.safe_mode = False\n", + " sim_run.dt = dt\n", + " Emax_saba1064[i] = measure_energy(sim_run)\n", + "Emax_whckl = np.zeros(N_dt_samples)\n", + "for i, dt in enumerate(dt_samples):\n", + " sim_run = sim.copy() \n", + " sim_run.integrator = \"WHCKL\" \n", + " sim_run.ri_whfast.safe_mode = False\n", + " sim_run.dt = dt\n", + " Emax_whckl[i] = measure_energy(sim_run) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We get a warning message because the largest timestep we try is larger than the innermost orbital period. You would not want to use such a large timestep in an actual simulation, but we can ignore the message for this test." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f,ax = plt.subplots(1,1,figsize=(7,5))\n", + "ax.set_xscale(\"log\")\n", + "ax.set_yscale(\"log\")\n", + "ax.set_xlabel(\"timestep [Jupiter years]\")\n", + "ax.set_ylabel(\"relative energy error\")\n", + "ax.plot(dt_samples/sim.particles[1].P,Emax_wh,label=\"WH\")\n", + "ax.plot(dt_samples/sim.particles[1].P,Emax_saba4,label=\"SABACL4\")\n", + "ax.plot(dt_samples/sim.particles[1].P,Emax_whckl,label=\"WHCKL\")\n", + "ax.plot(dt_samples/sim.particles[1].P,Emax_saba1064,label=\"SABA(10,6,4)\")\n", + "ax.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that the higher order SABA4, WHCKL, and SABA(10,6,4) integrators are doing significantly better than the standard WH method. For very small timesteps the methods are limited by double floating point precision. The SABA methods appear to be slightly better than the WHCKL method above, but note that the SABA methods are also much slower than the WHCKL per timestep. Taking this into account, the WHCKL has a slight advantage for timesteps larger than 1% of the shortest orbital period. For extremely high accuracy, the SABA(10,6,4) method is faster." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that by default all integrators set `safe_mode=False` and `keep_unsynchronized=False`. Depending on your application, you might want to change these flags." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/Holmberg.ipynb b/rebound/source/ipython_examples/Holmberg.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..107bb6b1f83effa7bdbe42f071e62cd4ee114ca6 --- /dev/null +++ b/rebound/source/ipython_examples/Holmberg.ipynb @@ -0,0 +1,233 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Holmberg\n", + "In 1941, Erik Holmberg performed arguably the first N-body simulation on the dynamics of interacting galaxies. He used light bulbs to simulate the gravitational interaction of stars as both gravitational force and light intensity fall of as $1/r^2$ with distance. This notebook recreates Holmberg's N-body simulation. Instead of lightbulbs, we use REBOUND. More information about Erik Holmberg can be found on [wikipedia](). His paper can be found on [ADS](http://adsabs.harvard.edu/abs/1941ApJ....94..385H)." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T14:23:10.051870Z", + "start_time": "2023-09-24T14:23:09.708792Z" + } + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, we setup the initial conditions of one galaxy. The velocities are chosen such that the particles are initially on approximately circular orbits. The arrangement roughly matches that of Holmberg's experiment." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T14:23:10.058351Z", + "start_time": "2023-09-24T14:23:10.053319Z" + } + }, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "\n", + "sim.add(m=1) # central object\n", + "\n", + "# 4 rings\n", + "lamps = [{\"N\": 6, \"m\": 1, \"r\": 1, \"v\": np.sqrt(4.1/2)},\n", + " {\"N\": 8, \"m\": 1, \"r\": 2, \"v\": np.sqrt(9/2)},\n", + " {\"N\": 10, \"m\": 0.7, \"r\": 3, \"v\": np.sqrt(15/2)},\n", + " {\"N\": 12, \"m\": 0.3, \"r\": 4, \"v\": np.sqrt(16/2)}]\n", + "\n", + "for l in lamps:\n", + " for i in range(l[\"N\"]):\n", + " phi = i/l[\"N\"]*2*np.pi\n", + " x, y = l[\"r\"]*np.sin(phi), l[\"r\"]*np.cos(phi)\n", + " vx, vy = l[\"v\"]*np.cos(phi), -l[\"v\"]*np.sin(phi)\n", + " sim.add(m=l[\"m\"], x=x, y=y, vx=vx, vy=vy)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us plot the galaxy we just created." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T14:23:10.413945Z", + "start_time": "2023-09-24T14:23:10.290734Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f, ax = plt.subplots(1, 1, figsize=(5,5))\n", + "ax.set_aspect(\"equal\")\n", + "coords = np.zeros((sim.N, 6))\n", + "sim.serialize_particle_data(xyzvxvyvz=coords)\n", + "ax.scatter(coords[:,0],coords[:,1])\n", + "ax.quiver(coords[:,0],coords[:,1],coords[:,3],coords[:,4], alpha=0.5);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we add the second galaxy and put the two galaxies on a collision course. To do that, we simply copy the first galaxy and offset it." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T14:23:10.561114Z", + "start_time": "2023-09-24T14:23:10.557749Z" + } + }, + "outputs": [], + "source": [ + "N = sim.N\n", + "for i in range(N):\n", + " p = sim.particles[i].copy() # make a copy of the particle in the simulation\n", + " p.x += 8 # offset\n", + " p.y += 8 # offset\n", + " p.vx -= 6 # set up collision course\n", + " sim.add(p) # add the copy\n", + "sim.move_to_com() # Move to the center of mass frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let's run the simulation and take snapshots of the particle positions and velocities at 9 intervals. We set a smoothing length to smear out gravity on small scales so that close encounters between particles don't slow down our simulation. The physical size of the lightbulbs would have had the same effect." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T14:23:11.094329Z", + "start_time": "2023-09-24T14:23:10.829736Z" + } + }, + "outputs": [], + "source": [ + "sim.softening = 0.2 # smoothing length\n", + "N = 9\n", + "coords = np.zeros((N,sim.N,3))\n", + "times = np.linspace(0,4.,N)\n", + "for i,t in enumerate(times):\n", + " sim.integrate(t)\n", + " sim.serialize_particle_data(xyz=coords[i])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let's plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T14:23:11.824081Z", + "start_time": "2023-09-24T14:23:11.193361Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABN8AAATFCAYAAACQInBAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3iURdcG8HsDJKEl9JpQlSJFBAFBqjQRpSOgSAepSpFqAZSiAorSUQGVptIEBUQgIEoHeRGkE1pIkJpAgJAy3x/nW0KS3dSn7e79uy6uvOyz2Wd28Z3ZmTlzjk0ppUBERERERERERESa8zK7AURERERERERERO6Ki29EREREREREREQ64eIbERERERERERGRTrj4RkREREREREREpBMuvhEREREREREREemEi29EREREREREREQ64eIbERERERERERGRTrj4RkREREREREREpBMuvhEREREREREREemEi29EREREREREREQ64eIbkQZ27dqF8ePH4/bt25q95rp161C1alX4+vqiWLFiGDduHGJiYlL1u3Fxcfj0009RsmRJ+Pr6onLlyli+fLlmbSMiImNZaZw5f/48bDabwz8rVqzQrH1ERGQsrceaH374AV26dMGTTz4Jm82GBg0apPk1vvnmG5QvXx6+vr548sknMXPmTE3aRmQ0Lr4RaWDXrl2YMGGCZgPVxo0b0bp1a+TKlQszZ85E69atMXHiRAwePDhVv//uu+9i1KhRaNKkCWbOnIlixYrhtdde46SIiMhFWW2cAYDOnTvj+++/T/CnVq1amrSPiIiMp/VYM3fuXPz8888IDAxE7ty50/z78+fPR+/evVGhQgXMnDkTtWrVwltvvYVPPvlEk/YRGSmz2Q0goqTeeecdVK5cGZs3b0bmzPJ/Uz8/P0yePBlvv/02ypUr5/R3Q0JCMH36dAwcOBCzZs0CAPTu3Rv169fHiBEj0KFDB2TKlMmQ90FERNaUkXHGrmrVqujSpYveTSUiIhf1/fffo2jRovDy8kLFihXT9Lv379/Hu+++ixYtWmDlypUAgD59+iAuLg4fffQR+vbtm64FPSKzMPKNKIPGjx+PESNGAABKliz56OjN+fPn0/V6//77L/7991/07dv30YQIAAYMGACl1KPBx5mff/4Z0dHRGDBgwKPHbDYb+vfvj8uXL2P37t3pahcREZnD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JYl+sx/1qVxZUkHYbMDo0UDnzjyCSuRKOM6Q1Tx8KMWGAgMdX7fZ5JpRdTuyZgU++EACPrJmBd55Rza/Ll4EpkyReeHChSx0R+5L85xvrsCs3BGU0MmTknegc2fgq6+k8g4gA0W/frLz/7//SS4CIrIm9qeO8XOxlgcPZDe9Xj2JAnj8i/2FC5ILp3lzyfupt127gOefB3budLy7f+SIRIJv2CBtIvJ07E+d42dDKSlWTE7xfPVV0mv37knwwYABwKRJxrRHKWDqVAl4ePBAAjBu3gRy5AA+/ljaQmQ0o/pS04+dkueaPVvO9D++8AZI2en58yU/wezZ5rWPiIjcg68v8PXXwLp1QK1assi2dat8+a9eXY7jTJ5sTFvCwuSns9yq9sftzyMiIkqvvn2BJUukmF5iU6ZIqp1evYxrj80m0d9Xrsi4PHy4nHa6coULb+T+GNRJptm+XY6aOsobmyWL5J7bts3wZhERkRtq3VoW3CZOBHr2lMeyZ5f0BuPHA4UKGdOOokXl5//+B7zwQtLrR47Iz4AAY9pDRETua8gQKbRXvz4wcKCkPLh1C/jmG3l84kSgVCnj2+XvL5VPiTwJF9/INErJ7oczNps8h4iISAv168uf69clx02hQo6TUOupRg2Jbps8WY7BPn4ENi5OJkLFijlemCMiIkqLHDlk4+mDD+RE0ZQp8vhTT0mKH1bXJjIOj52SaerVk4pvDx8mvRYTA6xeLc8hIiLSUr58stNv9MIbIBtLn38u0d8vvigR3tevSw64li0lEuGzz4BMmYxvGxERuR8/P2DGDCA0FDh2DDh7Fjh6lAtvREbj4huZZuBAmXAMGABER8c/HhMDDBok+W4GDjSvfURERHpo1gz49VfJcdOoEZA/v2w2nTwpFVDbtTO7hURE5G6yZZOIt1Klkj99RET64LFTMs1TT0k56Z49gY0bJcebzSYRb6GhkoSzcmWzW0lERKS9Zs0kAmHfPiAkRI7APvcc4MVtUSIiIiK3w8U3MlXXrkDVqpKDYMsWyfHWooVEvHHhjYiI3JnNBtSsaXYriIiIiEhvXHwj01WsCMyda3YriIiIiIiIiIi0x8MNREREREREREREOuHiGxERERERERERkU64+EZERERERERERKQTLr4RERERERERERHphItvREREREREREREOuHiGxERERERERERkU64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ypVTL7/8crprVt3Tq1evJvWXANT777+vdu/erU6cOKGUkmO5ixQpopYvX67++ecf1blz53THcrdu3VpNnz496evM/p17MsYaY2MN40zueUKcUcpzYg3jTO4xzmQP4wzjTMp22DHWMM7oz5NijR3jjFL2jTVemXzr27evApDuY926dUnPOX78uOrQoYMqUKCAKl68uBo1alSqbO26desUABUREZH02MWLF1WvXr1UoUKFVGBgoHrqqaeSgp+eevXqpZo2bap5LSIiItXvcvLkSdW8eXMVHBysAgICVJUqVdTo0aNVTEyM7u1KadeuXapx48YqKChI5c+fX9WsWVP973//SzXLlratSil18+ZN9eyzz6qiRYuqggULqkcffTRV0NDbnDlzNP8tpFz0aeU9nT59uipXrpzy9/dXjRo1Utu2bUu61qJFC9W3b99Uz1+8eLGqVq2a8vf3V7Vq1VK//PKL7m1Kyd29mzNnjtt2Dh8+POl3KlWqlOrYsaP666+/DG2nUkr16NFDlS5dWvn7+6syZcqoHj16qKNHj7ptp1Lm38+UVq1apQCow4cPp7tm1T119XtpP1xtSUxMVG+88YYqVaqUCggIUG3atEnX/vLly6uxY8emeiyjf+eejLHG2FjDOKMPu8cZpTwn1jDO5B7jTPYwzjDOuNg51jDO6MuTYo0d44xS9o01DqWUymhbKhEREREREREREeWMn9UNICIiIiIiIiIi8lZMvhERERERERERERmEyTciIiIiIiIiIiKDMPlGRERERERERERkECbfiIiIiIiIiIiIDMLkGxERERERERERkUGYfCMiIiIiIiIiIjIIk29EREREREREREQGYfKNiIiIiIiIiIjIIEy+ERERERERERERGYTJNyIiIiIiIiIiIoMw+UZERERERERERGQQJt+IiIiIiIiIiIgMwuQbERERERERERGRQZh8IyIiIiIiIiIiMgiTb0RERERERERERAZh8o2IiIiIiIiIiMggTL4REREREREREREZhMk3IiIiIiIiIiIigzD5RkREREREREREZBAm34iIiIiIiIiIiAzC5BsREREREREREZFBmHwjIiIiIiIiIiIyCJNvREREREREREREBmHyjYiIiIiIiIiIyCBMvhHpYMuWLRg3bhyuXLmiy8/79ttv8cQTT6Bq1apwOBxo2bJltr7f4XBofkyZMkWX9hERkbn0jDMXL17E1KlT0bx5c5QoUQJFihTBvffei2+//TZbP+eLL75AzZo1kT9/flStWhXTp0/PdduIiMg6dos1HNOQN8lrdQOIvMGWLVswfvx49OvXD0WKFMn1z5s5cyZ27dqFhg0b4uLFizn6GQ888AD69OmT6rH69evnum1ERGQ+PePM1q1b8dprr6Fjx454/fXXkTdvXixZsgQ9e/bEgQMHMH78+Ex/xqxZszB48GB07doVI0eOxMaNG/H888/jxo0bePnll3PVPiIisobdYg3AMQ15DybfiGzom2++QZkyZeDn54fatWvn6GdUq1YNTzzxhM4tIyIiT1erVi0cOXIE5cuXT3rs2WefRdu2bfH222/jpZdewh133OH2+2/evInXXnsNnTp1wvfffw8AGDBgABITEzFx4kQMHDgQRYsWNfz3ICIi+8ptrHHhmIa8BbedEuXSuHHjMHr0aABAxYoVk5ZDHz9+PMc/MywsDH5+uf/vefPmTdy6dSvXP4eIiKyjd5ypWLFiqsEQIFt7unTpgri4OPz3338Zfv+6detw8eJFPPvss6keHzp0KK5fv45ffvklR+0iIiLr2C3WpMQxDXkDrnwjyqXw8HD8+++/WLhwIaZNm4bixYsDAEqUKIGYmBjcvn0705+RP39+FCpUSNd2zZ07F5988gmUUqhZsyZef/11PP7447q+BhERGc+sOBMVFQUAST/fnd27dwMA7rnnnlSPN2jQAH5+fti9ezdXKRAReRi7xRoXjmnIWzD5RpRLdevWxd13342FCxeiS5cuqFChQtK1li1b4o8//sj0Z/Tt2xdz587VrU1NmzZF9+7dUbFiRZw9exYzZsxA7969ERMTgyFDhuj2OkREZDwz4sylS5fw+eefo1mzZihdunSGPysyMhJ58uRByZIlUz3u7++PYsWK4ezZs5m2h4iI7MVusQbgmIa8C5NvRAZ67733cPny5UyfFxoaquvrbt68OdXXTz/9NBo0aIBXX30V/fr1Q4ECBXR9PSIisoYecSYxMRG9e/fGlStXsnRi6c2bN+Hv7695LX/+/Lh582amP4OIiDyHFbEG4JiGvAuTb0QGatCggdVNACCrEYYNG4bBgwdj165duP/++61uEhER6UCPOPPcc89h5cqV+Prrr3HXXXdl+vwCBQogPj5e89qtW7c4GCIi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UtJxRN7MbLGGcYaIyLuYLc4AjDVERFbm8eRbkSJFUKRIEbePV0ph/vz56NGjB3LmzJnp99u/fz8AoESJEpl+LpHVtGoF+PsDc+fKCLjUvvhCpptypR3ydow1RESkJcYZIiLyJMMXXFi/fj1OnDiBfv36pdkXGRmJKlWqYOfOnQCA48eP4+2338aePXtw8uRJ/PTTT+jRowceffRR1KxZU++mE+muRAmgXz/gjTeABQtkFBwA3LoFvPMO8OWXwOjRQA7TVHMkMgfGGiIi0hLjDBERpcfwLvq8efPQsGHDFPUSHO7du4fDhw8nrvwTEBCAtWvXYvr06bh16xbCwsLQsWNHjB07Vu9mExlm+nSZdtq7tyywUK4c8O+/QEwM8PrrsuACEaXEWENERFpinCEiovR4fMEFKzCqcCuRJ+3fD3z9NXD5MlCmDNCzpyTiiPTE66lzPC9ERJ7B66lrPDdERNln2QUXiEgftWvLFxERERERERGZl+E134iIiIiIiIiIiLwVk29EREREREREREQaYfKNiIiIiIiIiIhII0y+ERERERERERERaYTJNyIiIiIiIiIiIo0w+UZERERERERERKQRJt+IiIiIiIiIiIg0wuQbERERERERERGRRph8IyIiIiIiIiIi0giTb0RERERERERERBph8o2IiIiIiIiIiEgjTL4RERERERERERFphMk3IiIiIiIiIiIijTD5RkREREREREREpBEm34iIiIiIiIiIiDTC5BsREREREREREZFGmHwjIiIiIiIiIiLSCJNvREREREREREREGmHyjYiIiIiIiIiISCNMvhEREREREREREWmEyTciIiIiIiIiIiKNMPlGRERERERERESkESbfiIiIiIiIiIiINMLkGxERERERERERkUaYfCMiIiIiIiIiItIIk29EREREREREREQaYfKNiIiIiIiIiIhII0y+ERERERERERERaYTJNyIiIiIiIiIiIo0w+UZERERERERERKQRzZJv7777Lho2bIjcuXMjf/78To85ffo0Wrdujdy5c6No0aIYNWoU4uPj033dq1ev4tlnn0VwcDDy58+Pvn374ubNmxr8BEREZHaMNUREpCXGGSIi8gTNkm9xcXHo3LkzBg0a5HS/3W5H69atERcXh61bt2LhwoVYsGABxo0bl+7rPvvss/jnn3+wZs0arFixAr///jsGDBigxY9AREQmx1hDRERaYpwhIiKPUBqbP3++CgkJSbN95cqVys/PT0VFRSVumzVrlgoODlaxsbFOX+vff/9VANSuXbsSt/3666/KZrOpyMhIt9sUHR2tAKjo6Gj3fxAiIkrDLNdTs8Uas5wXIiKrM8v11GxxRinznBsiIivT61pqWM23bdu2oUaNGihWrFjithYtWiAmJgb//POPy+fkz58fDz74YOK25s2bw8/PDzt27NC8zUREZC2MNUREpCXGGSIickcOo944KioqRZACkPh9VFSUy+cULVo0xbYcOXKgYMGCLp8DALGxsYiNjU38Pjo6GgAQExOTpbYTEZFwXEeVUga3xDm9Yg3jDBGRNhhnkjDWEBF5nl5xJlPJt9GjR+P9999P95iDBw+iSpUq2WqUp02aNAlvvfVWmu1hYWEGtIaIyPtcuXIFISEhHnktK8YaxhkiIm35epwBGGuIiLTkyTjjTKaSby+//DJ69eqV7jHly5d367WKFy+OnTt3pth24cKFxH2unnPx4sUU2+Lj43H16lWXzwGAMWPGYOTIkYnfX79+HWXKlMHp06c1PbmeEBMTg7CwMJw5cwbBwcFGN8clttPzrNJWq7QTsE5brdJOQO66ly5dGgULFvTYa1ox1jDOaM8q7QSs01artBOwTlut0k7AOm1lnEli1Vhjlb81wDpttUo7Aeu0le30PKu0VYs440ymkm9FihRBkSJFPPLGDRo0wLvvvouLFy8mDrtes2YNgoODUa1aNZfPuX79Ovbs2YO6desCANavX4+EhASEh4e7fK/AwEAEBgam2R4SEmLqP4LkgoODLdFWttPzrNJWq7QTsE5brdJOAPDz81wJUSvGGsYZ/VilnYB12mqVdgLWaatV2glYp62+HmcA68caq/ytAdZpq1XaCVinrWyn51mlrZ6MM05fX6sXPn36NPbv34/Tp0/Dbrdj//792L9/P27evAkAeOKJJ1CtWjU8//zz+PPPP7F69WqMHTsWgwcPTgwqO3fuRJUqVRAZGQkAqFq1Klq2bIn+/ftj586d+OOPPzBkyBB07doVJUuW1OpHISIik2KsISIiLTHOEBGRJ2i24MK4ceOwcOHCxO/r1KkDANiwYQOaNGkCf39/rFixAoMGDUKDBg2QJ08e9OzZExMnTkx8zu3bt3H48GHcu3cvcdvXX3+NIUOGoFmzZvDz80PHjh3xySefaPVjEBGRiTHWEBGRlhhniIjIEzRLvi1YsAALFixI95gyZcpg5cqVLvc3adIkzYoTBQsWxOLFi7PVtsDAQIwfP97psG2zsUpb2U7Ps0pbrdJOwDpttUo7AePbatZYY/R5yQyrtNUq7QSs01artBOwTlut0k7AOm01up1mjTOA8efGXVZpJ2CdtlqlnYB12sp2ep5V2qpXO23KrOt2ExERERERERERWZy2FeWIiIiIiIiIiIh8GJNvREREREREREREGmHyjYiIiIiIiIiISCNemXx799130bBhQ+TOnRv58+d3eszp06fRunVr5M6dG0WLFsWoUaMQHx+f7utevXoVzz77LIKDg5E/f3707ds3cZlxT9i4cSNsNpvTr127drl8XpMmTdIcP3DgQI+1y5WyZcumed/Jkyen+5y7d+9i8ODBKFSoEPLmzYuOHTviwoULmrXx5MmT6Nu3L8qVK4dcuXKhQoUKGD9+POLi4tJ9nl7ndObMmShbtiyCgoIQHh6OnTt3pnv8d999hypVqiAoKAg1atRIt7ivJ0yaNAn16tVDvnz5ULRoUbRr1w6HDx9O9zkLFixIc+6CgoI0bScATJgwIc37VqlSJd3n6H0+HZz937HZbBg8eLDT4/U6p7///juefvpplCxZEjabDcuWLUuxXymFcePGoUSJEsiVKxeaN2+Oo0ePZvi6mf07twrGGu1jDeNM9pk9zgDWiTWMM9nHOJM5jDOMMw5mjjWMM55llVhj1jgDmDjWKC80btw49dFHH6mRI0eqkJCQNPvj4+NV9erVVfPmzdW+ffvUypUrVeHChdWYMWPSfd2WLVuqWrVqqe3bt6vNmzerihUrqm7dunms3bGxser8+fMpvvr166fKlSunEhISXD6vcePGqn///imeFx0d7bF2uVKmTBk1ceLEFO978+bNdJ8zcOBAFRYWptatW6d2796t6tevrxo2bKhZG3/99VfVq1cvtXr1anX8+HG1fPlyVbRoUfXyyy+n+zw9zunSpUtVQECA+vLLL9U///yj+vfvr/Lnz68uXLjg9Pg//vhD+fv7qylTpqh///1XjR07VuXMmVP9/fffHm1Xci1atFDz589XBw4cUPv371etWrVSpUuXTvf3PH/+fBUcHJzi3EVFRWnWRofx48er+++/P8X7Xrp0yeXxRpxP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CerNN99UxYoVU4GBgapZs2Zp2l+mTBk1fvz4FNvS+zu3MsYabWMN44xnmD3OKGWdWMM4k32MM5nDOMM442DmWMM441lWijVmjDNKmTfW2JRSKr1pqURERERERERERJQ1fkY3gIiIiIiIiIiIyFsx+UZERERERERERKQRJt+IiIiIiIiIiIg0wuQbERERERERERGRRph8IyIiIiIiIiIi0giTb0RERERERERERBph8o2IiIiIiIiIiEgjTL4RERERERERERFphMk3IiIiIiIiIiIijTD5RkREREREREREpBEm34iIiIiIiIiIiDTC5BsREREREREREZFGmHwjIiIiIiIiIiLSCJNvREREREREREREGmHyjYiIiIiIiIiISCNMvhEREREREREREWmEyTciIiIiIiIiIiKNMPlGRERERERERESkESbfiIiIiIiIiIiINMLkGxERERERERERkUaYfCMiIiIiIiIiItIIk29EREREREREREQaYfKNiIiIiIiIiIhII0y+ERERERERERERaYTJNyIiIiIiIiIiIo0w+UbkAVu3bsWECRNw/fp1j7zeiBEj8MADD6BgwYLInTs3qlatigkTJuDmzZtuv8a8efNQtWpVBAUFoVKlSpgxY4ZH2kZERPozW5yx2WxOvyZPnuyR9hERkf48HWuSO378OIKCgmCz2bB79263npOQkIApU6agXLlyCAoKQs2aNbFkyRKPt41IDzmMbgCRN9i6dSveeust9OrVC/nz58/26+3atQuNGjVC7969ERQUhH379mHy5MlYu3Ytfv/9d/j5pZ83nzNnDgYOHIiOHTti5MiR2Lx5M4YOHYrbt2/jtddey3b7iIhIX2aLMwDw+OOPo0ePHim21alTJ9ttIyIiY3g61iQ3YsQI5MiRA7GxsW4/54033sDkyZPRv39/1KtXD8uXL0f37t1hs9nQtWtXj7aPSGtMvhGZ0JYtW9Jsq1ChAl555RXs3LkT9evXd/ncO3fu4I033kDr1q3x/fffAwD69++PhIQEvP322xgwYAAKFCigWduJiMj8shNnHO677z4899xzWjSPiIi8yOrVq7F69Wq8+uqreOedd9x6TmRkJD788EMMHjwYn376KQCgX79+aNy4MUaNGoXOnTvD399fy2YTeRSnnRJl04QJEzBq1CgAQLly5RKn3pw8edKj71O2bFkA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IiIiIiIiIiKNMPlGRERERERERESkESbfiIiIiIiIiIiINMLkGxERERERERERkUaYfCMiIiIiIiIiItIIk29EREREREREREQaYfKNiIiIiIiIiIhII0y+ERERERERERERaYTJNyIiIiIiIiIiIo0w+UZERERERERERKQRJt+IiIiIiIiIiIg0wuQbERERERERERGRRph8IyIiIiIiIiIi0giTb0RERERERERERBph8o2IiIiIiIiIiEgjTL4RERERERERERFphMk3IiIiIiIiIiIijTD5RkREREREREREpBEm34iIiIiIiIiIiDTC5BsREREREREREZFGmHwjIiIiIiIiIiLSiOHJt7Jly8Jms6X5Gjx4sNPjFyxYkObYoKAgnVtNRERWwThDRERaYpwhIqKM5DC6Abt27YLdbk/8/sCBA3j88cfRuXNnl88JDg7G4cOHE7+32WyatpGIiKyLcYaIiLTEOENERBkxPPlWpEiRFN9PnjwZFSpUQOPGjV0+x2azoXjx4lo3jYiIvADjDBERaYlxhoiIMmL4tNPk4uLisGjRIvTp0yfduz83b95EmTJlEBYWhrZt2+Kff/5J93VjY2MRExOT4ouIiHwP4wwREWlJqzgDMNYQEVmZqZJvy5Ytw/Xr19GrVy+Xx1SuXBlffvklli9fjkWLFiEhIQENGzbE2bNnXT5n0qRJCAkJSfwKCwvToPVERGR2jDNERKQlreIMwFhDRGRlNqWUMroRDi1atEBAQAB+/vlnt59z7949VK1aFd26dcPbb7/t9JjY2FjExsYmfh8TE4OwsDBER0cjODg42+0mIvJVMTExCAkJscz1lHGGiMhaGGeSMNYQEXmeXnHG8JpvDqdOncLatWsRERGRqeflzJkTderUwbFjx1weExgYiMDAwOw2kYiILIxxhoiItKRlnAEYa4iIrMw0007nz5+PokWLonXr1pl6nt1ux99//40SJUpo1DIiIvIGjDNERKQlxhkiInLFFMm3hIQEzJ8/Hz179kSOHCkH4/Xo0QNjxoxJ/H7ixIn47bff8N9//2Hv3r147rnncOrUKfTr10/vZhMRkUUwzhARkZYYZ4iIKD2mmHa6du1anD59Gn369Emz7/Tp0/DzS8oRXrt2Df3790dUVBQKFCiAunXrYuvWrahWrZqeTSYiIgthnCEiIi0xzhARUXpMteCC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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "f, axarr = plt.subplots(3, 3, figsize=(15,15))\n", + "for i,axs in enumerate(axarr):\n", + " for j,ax in enumerate(axs):\n", + " ax.set_aspect(\"equal\")\n", + " ax.set_xlim([-10,10])\n", + " ax.set_ylim([-10,10])\n", + " ax.scatter(coords[i*3+j,:sim.N//2,0],coords[i*3+j,:sim.N//2,1],facecolors='none', edgecolors='b')\n", + " ax.scatter(coords[i*3+j,sim.N//2:,0],coords[i*3+j,sim.N//2:,1],facecolors='b')\n", + " ax.set_title(\"t=%.1f\"%(times[i*3+j]))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Holmberg pointed out the aparent spiral arms in the post collision snapshots in his paper. You can see them in the above plots as well. However, note that this simulation is very rudimentary and a claim that it explains the occurance of spiral arms in galaxies would not hold up. One of the most obvious shortcomes of our model is that a typical galaxy contains 100 billion stars but our model contains only 37 particles." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/Horizons.ipynb b/rebound/source/ipython_examples/Horizons.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..f382c626da6c345ad3f97cce801b4a9d5360fc8b --- /dev/null +++ b/rebound/source/ipython_examples/Horizons.ipynb @@ -0,0 +1,355 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Adding particles using NASA JPL Horizons system\n", + "\n", + "REBOUND can add particles to simulations by obtaining ephemerides from NASA's powerful HORIZONS database. HORIZONS supports many different options, and we will certainly not try to cover everything here. This is meant to serve as an introduction to the basics, beyond what's in [Churyumov-Gerasimenko.ipynb](../Churyumov-Gerasimenko). If you catch any errors, or would either like to expand on this documentation or improve REBOUND's HORIZONS interface (`rebound/horizons.py`), please do fork the repository and send us a pull request.\n", + "\n", + "**Adding particles**\n", + "\n", + "When we add particles by passing a string, REBOUND queries the HORIZONS database and takes the first dataset HORIZONS offers. For the Sun, moons, and small bodies, this will typically return the body itself. For planets, it will return the barycenter of the system (for moonless planets like Venus it will say barycenter but there is no distinction). If you want the planet specifically, you have to use, e.g., \"NAME=Pluto\" rather than \"Pluto\". In all cases, REBOUND will print out the name of the HORIZONS entry it's using.\n", + "\n", + "You can also add bodies using their integer NAIF IDs: [NAIF IDs](https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/MATLAB/req/naif_ids.html). Note that because of the number of small bodies (asteroids etc.) we have discovered, this convention only works for large objects. For small bodies, instead use \"NAME=name\" (see the SMALL BODIES section in the [HORIZONS Documentation](https://ssd.jpl.nasa.gov/?horizons_doc))." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Sun'... \n", + "Found: Sun (10) \n", + "---------------------------------\n", + "REBOUND version: \t4.0.3\n", + "REBOUND built on: \tJan 12 2024 08:52:18\n", + "Number of particles: \t1\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "---------------------------------\n", + "The following fields have non-default values:\n", + "N:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 1\u001b[0m\n", + "python_unit_l:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 4097248214\u001b[0m\n", + "python_unit_m:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 2145773914\u001b[0m\n", + "python_unit_t:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 1864791206\u001b[0m\n", + "rand_seed:\n", + "\u001b[31m< 886170\u001b[0m\n", + "---\n", + "\u001b[32m> 676381\u001b[0m\n", + "particles:\n", + "\u001b[32m> (128 bytes, values not printed)\u001b[0m\n", + "\n" + ] + } + ], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(\"Sun\")\n", + "## Other examples:\n", + "# sim.add(\"Venus\")\n", + "# sim.add(\"399\")\n", + "# sim.add(\"Europa\")\n", + "# sim.add(\"NAME=Ida\")\n", + "# sim.add(\"Pluto\")\n", + "# sim.add(\"NAME=Pluto\")\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Currently, HORIZONS does not have any mass information for solar system bodies. `rebound/horizons.py` has a hard-coded list provided by Jon Giorgini (10 May 2015) that includes the planets, their barycenters (total mass of planet plus moons), and the largest moons. If REBOUND doesn't find the corresponding mass for an object from this list (like for the asteroid Ida below), it will print a warning message. If you need the body's mass for your simulation, you can set it manually, e.g. (see [Units.ipynb](../Units) for an overview of using different units):" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'NAME=Ida'... \n", + "Found: 243 Ida (A884 SB) \n", + "\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/dtamayo/Documents/workspace/rebound/rebound/horizons.py:167: RuntimeWarning: Warning: Mass cannot be retrieved from NASA HORIZONS. Set to 0.\n", + " warnings.warn(\"Warning: Mass cannot be retrieved from NASA HORIZONS. Set to 0.\", RuntimeWarning)\n" + ] + } + ], + "source": [ + "sim.add(\"NAME=Ida\")\n", + "print(sim.particles[-1]) # Ida before setting the mass\n", + "sim.particles[-1].m = 2.1e-14 # Setting mass of Ida in Solar masses\n", + "print(sim.particles[-1]) # Ida after setting the mass" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Time**\n", + "\n", + "By default, REBOUND queries HORIZONS for objects' current positions. Specifically, it caches the current time the first time you call `rebound.add`, and gets the corresponding ephemeris. All subsequent calls to `rebound.add` will then use that initial cached time to make sure you get a synchronized set of ephemerides.\n", + "\n", + "You can also explicitly pass REBOUND the time at which you would like the particles ephemerides: " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Venus'... \n", + "Found: Venus Barycenter (299) (chosen from query 'Venus')\n", + "Searching NASA Horizons for 'Venus'... \n", + "Found: Venus Barycenter (299) (chosen from query 'Venus')\n", + "---------------------------------\n", + "REBOUND version: \t4.0.3\n", + "REBOUND built on: \tJan 12 2024 08:52:18\n", + "Number of particles: \t2\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n", + "The following fields have non-default values:\n", + "N:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 2\u001b[0m\n", + "python_unit_l:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 4097248214\u001b[0m\n", + "python_unit_m:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 2145773914\u001b[0m\n", + "python_unit_t:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 1864791206\u001b[0m\n", + "rand_seed:\n", + "\u001b[31m< 829806\u001b[0m\n", + "---\n", + "\u001b[32m> 210256\u001b[0m\n", + "particles:\n", + "\u001b[32m> (256 bytes, values not printed)\u001b[0m\n", + "\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "date = \"2005-06-30 15:24\" # You can also use Julian Days. For example: date = \"JD2458327.500000\"\n", + "sim.add(\"Venus\")\n", + "sim.add(\"Venus\", date=date)\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the two Venus positions are different. The first call cached the current time, but since the second call specified a date, it overrode the default. Any time you pass a date (with time in UTC), it will overwrite the default cached time, so: " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Venus'... \n", + "Found: Venus Barycenter (299) (chosen from query 'Venus')\n", + "Searching NASA Horizons for 'Earth'... \n", + "Found: Earth-Moon Barycenter (3) (chosen from query 'Earth')\n", + "---------------------------------\n", + "REBOUND version: \t4.0.3\n", + "REBOUND built on: \tJan 12 2024 08:52:18\n", + "Number of particles: \t2\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n", + "The following fields have non-default values:\n", + "N:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 2\u001b[0m\n", + "python_unit_l:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 4097248214\u001b[0m\n", + "python_unit_m:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 2145773914\u001b[0m\n", + "python_unit_t:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 1864791206\u001b[0m\n", + "rand_seed:\n", + "\u001b[31m< 433115\u001b[0m\n", + "---\n", + "\u001b[32m> 842290\u001b[0m\n", + "particles:\n", + "\u001b[32m> (256 bytes, values not printed)\u001b[0m\n", + "\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "date = \"2005-06-30 15:24\" # You can also use Julian Days. For example: date = \"JD2458327.500000\"\n", + "sim.add(\"Venus\", date=date)\n", + "sim.add(\"Earth\")\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "would set up a simulation with Venus and Earth, all synchronized to 2005-06-30 15:24 UTC. All dates should either be passed in the format Year-Month-Day Hour:Minute or in JDxxxxxxx.xxxx for a date in Julian Days.\n", + "\n", + "For reference HORIZONS interprets all times for ephemerides as [Coordinate (or Barycentric Dynamical) Time](https://en.wikipedia.org/wiki/Barycentric_Dynamical_Time)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Origin**\n", + "\n", + "REBOUND queries for particles' positions and velocities relative to the Solar System barycenter" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Sun'... \n", + "Found: Sun (10) \n", + "---------------------------------\n", + "REBOUND version: \t4.0.3\n", + "REBOUND built on: \tJan 12 2024 08:52:18\n", + "Number of particles: \t1\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "---------------------------------\n", + "The following fields have non-default values:\n", + "N:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 1\u001b[0m\n", + "python_unit_l:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 4097248214\u001b[0m\n", + "python_unit_m:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 2145773914\u001b[0m\n", + "python_unit_t:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 1864791206\u001b[0m\n", + "rand_seed:\n", + "\u001b[31m< 629898\u001b[0m\n", + "---\n", + "\u001b[32m> 447379\u001b[0m\n", + "particles:\n", + "\u001b[32m> (128 bytes, values not printed)\u001b[0m\n", + "\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(\"Sun\")\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The reference plane is the ecliptic (Earth's orbital plane) of J2000 (Jan. 1st 2000 12:00 GMT), with the x-axis along the ascending node of the ecliptic and the Earth's mean equator (also at J2000). " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/ipython_examples/HybridIntegrationsWithTRACE.ipynb b/rebound/source/ipython_examples/HybridIntegrationsWithTRACE.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..4c974cd8d272ed6c3b97213f5f3430636beae6af --- /dev/null +++ b/rebound/source/ipython_examples/HybridIntegrationsWithTRACE.ipynb @@ -0,0 +1,198 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Hybrid integrations with TRACE\n", + "REBOUND comes with several integrators, each of which has its own advantages and disadvantages. TRACE is a time-reversible hybrid integrator (Lu, Hernandez & Rein 2024) that is an improvement on the older MERCURIUS hybrid integrator. It uses a symplectic Wisdom-Holman integrator when particles are far apart from each other and switches over to a high order integrator during close encounters. Specifically, TRACE uses the efficient WHFast and Bulirsch-Stoer/IAS15 internally." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's start out by showcasing the problem with traditional fixed timestep integrators such as WHFast. We setup a simulation of the outer solar system and increase the masses of the planets by a factor of 50. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import math\n", + "import rebound, rebound.data\n", + "%matplotlib inline\n", + "sim = rebound.Simulation()\n", + "rebound.data.add_outer_solar_system(sim) # add some particles for testing\n", + "for i in range(1,sim.N):\n", + " sim.particles[i].m *= 50.\n", + "sim.integrator = \"WHFast\" # This will end badly!\n", + "sim.dt = sim.particles[1].P * 0.002 # Timestep a small fraction of innermost planet's period\n", + "sim.move_to_com()\n", + "E0 = sim.energy() # Calculate initial energy \n", + "rebound.OrbitPlot(sim);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us integrate this system for a few hundred years. An instability will occur. We can then measure the energy error, which is a good estimate as to how accurate the integration was." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Relative energy error with WHFast: 41.850545\n" + ] + } + ], + "source": [ + "sim.integrate(600*2.*math.pi)\n", + "E1 = sim.energy()\n", + "print(\"Relative energy error with WHFast: %f\"%((E0-E1)/E0))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "An energy error that large means we basically go it wrong completely. Let's try this again but use TRACE." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Relative energy error with TRACE: 3.591519e-07\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "rebound.data.add_outer_solar_system(sim) # add some particles for testing\n", + "for i in range(1,sim.N):\n", + " sim.particles[i].m *= 50.\n", + "sim.integrator = \"trace\" \n", + "sim.dt = sim.particles[1].P * 0.002 # Timestep a small fraction of innermost planet's period\n", + "sim.move_to_com()\n", + "E0 = sim.energy() # Calculate initial energy \n", + "sim.integrate(600*2.*math.pi)\n", + "E1 = sim.energy()\n", + "print(\"Relative energy error with TRACE: %e\"%((E1-E0)/E0))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see, TRACE is able to integrate this system with much better accuracy. When a close encounter occurs, it automatically (and reversibly!) switches to the BS integrator. When there is no close encounter, you still get all the benefits in terms of speed an accuracy from a symplectic integrator." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are a few options to adjust TRACE. First of all, close encounters with the central star are treated differently than close encounters between planets. This becomes important in systems that deal with highly eccentric orbits. \n", + "\n", + "You can switch between two prescriptions that use the BS integrator:\n", + "* `PARTIAL_BS`, the fastest and least accurate method\n", + "* `FULL_BS`, which provides a good compromise between speed and accuracy (this is the default)\n", + "\n", + "Or you may use the IAS15 integrator\n", + "* `FULL_IAS15`, which is the most accurate but slowest prescription (in most cases, this will have no significant accuracy advantage over `FULL_BS`)\n", + "\n", + "See Lu, Hernandez & Rein (2024) for more details on these prescriptions." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# Sets the pericenter switching prescription\n", + "sim.ri_trace.peri_mode = \"PARTIAL_BS\" # or\n", + "sim.ri_trace.peri_mode = \"FULL_BS\" # or\n", + "sim.ri_trace.peri_mode = \"FULL_IAS15\" # or" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You also may want to change the criteria at which TRACE switches over from pure WHFast to BS/IAS15. For planet-planet encounters, this is expressed in units of a slightly modified Hill radii criteria. The default is 3 Hill radii, in the following we change it to 5 Hill radii (larger values result in more accurate but slower simulations):" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "sim.ri_trace.r_crit_hill = 5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For star-planet encounters, this is expressed as a parameter $\\eta$, which is related to the ratio between the timestep and an adaptive timescale described in Dang, Rein & Spiegel (2024). The default is $\\eta = 1$, we set it to $\\eta = 0.1$ here (lower values result in more accurate but slower simulations):" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "sim.ri_trace.peri_crit_eta = 0.1" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/ipython_examples/HyperbolicOrbits.ipynb b/rebound/source/ipython_examples/HyperbolicOrbits.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..47ab16cc1b2bfa0cada585535e3a10f3e1716e6b --- /dev/null +++ b/rebound/source/ipython_examples/HyperbolicOrbits.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Loading Hyperbolic Orbits into REBOUND\n", + "\n", + "Imagine we have a table of orbital elements for comets (kindly provided by Toni Engelhardt)." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from io import StringIO\n", + "import numpy as np\n", + "import rebound\n", + "epoch_of_elements = 53371.0 # [MJD, days]\n", + "c = StringIO(u\"\"\"\n", + "# id e q[AU] i[deg] Omega[deg] argperi[deg] t_peri[MJD, days] epoch_of_observation[MJD, days]\n", + "168026 12.181214 15.346358 136.782470 37.581438 268.412314 54776.806093 55516.41727\n", + "21170 2.662235 2.013923 140.646538 23.029490 46.292039 54336.126288 53673.44043 \n", + "189298 15.503013 11.550314 20.042232 203.240743 150.855761 55761.641176 55718.447145 \n", + "72278 34.638392 24.742323 157.984412 126.431540 178.612758 54382.158401 54347.240445\n", + "109766 8.832472 9.900228 144.857801 243.102255 271.345342 55627.501618 54748.37722\n", + "\"\"\")\n", + "comets = np.loadtxt(c) # load the table into a numpy array" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We want to add these comets to a REBOUND simulation(s). The first thing to do is set the units, which have to be consistent throughout. Here we have a table in AU and days, so we'll use the gaussian gravitational constant (AU, days, solar masses). " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "k = 0.01720209895 # Gaussian constant\n", + "sim.G = k**2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We also set the simulation time to the epoch at which the elements are valid:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "sim.t = epoch_of_elements" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We then add the giant planets in our Solar System to the simulation. You could for example query JPL HORIZONS for the states of the planets at each comet's corresponding epoch of observation (see [Horizons.ipynb](../Horizons)). Here we set up toy masses and orbits for Jupiter & Saturn:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "sim.add(m=1.) # Sun\n", + "sim.add(m=1.e-3, a=5.) # Jupiter\n", + "sim.add(m=3.e-4, a=10.) # Saturn" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Let's write a function that takes a comet from the table and adds it to our simulation:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def addOrbit(sim, comet_elem):\n", + " tracklet_id, e, q, inc, Omega, argperi, t_peri, epoch_of_observation = comet_elem\n", + " sim.add(primary=sim.particles[0], \n", + " a = q/(1.-e),\n", + " e = e,\n", + " inc = inc*np.pi/180., # have to convert to radians\n", + " Omega = Omega*np.pi/180.,\n", + " omega = argperi*np.pi/180.,\n", + " T = t_peri # time of pericenter passage\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By default, REBOUND adds and outputs particles in Jacobi orbital elements. Typically, orbital elements for comets are heliocentric. Mixing the two will give you relative errors in elements, positions etc. of order the mass ratio of Jupiter to the Sun ($\\sim 0.001$) which is why we pass the additional `primary=sim.particles[0]` argument to the `add()` function. If this level of accuracy doesn't matter to you, you can ignore the `primary` argument.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now set up the first comet and quickly plot to see what the system looks like:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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IiIXYMESERG5AAuWiIjIBViwRERELsCCJSIicgEWLBERkQuwYImIiFyABUtEROQCLFgiIiIXYMESERG5AAuWiIjIBViwRERELsCCJSIicgEWLBERkQuwYImIiFyABUtEROQCLFgiIiIXYMESERG5AAuWiIjIBSRTsIsXL0bfvn3h7++P4ODgWu8jk8luuGzevLlxgxIREQHwETvArTKbzXjwwQeRkJCAdevW1Xm/DRs2YPjw4Y7rdZUxERGRK0mmYBcsWAAA2Lhx403vFxwcDJ1O1wiJiIiI6iaZXcS3Kjk5GeHh4ejVqxfWr18PQRBuen+TyQSDwVDjQkRE1FCS2YK9FQsXLsSgQYPg7++PH374AU8//TTKy8vx7LPP1vlvUlJSHFvHREREziIT/moTz4VeeuklLF269Kb3OXfuHNq1a+e4vnHjRkyfPh2lpaV/+fhz587Fhg0bkJ2dXed9TCYTTCaT47rBYEBMTAz0ej2CgoL++kUQEZHHMBgM0Gq1TukAUbdgZ86ciQkTJtz0Pi1atKj34/fu3RuvvvoqTCYT1Gp1rfdRq9V1fo2IiKi+RC3YiIgIREREuOzxT506hZCQEBYoERE1Oskcg83KykJxcTGysrJgs9lw6tQpAECrVq2g0WjwzTffIC8vD3369IGvry927tyJJUuW4Pnnnxc3OBEReSXJFOzcuXPxwQcfOK5369YNALB3714MGDAASqUSq1evxnPPPQdBENCqVSusWLECkydPFisyERF5MVEHObkjZx7gJiIiaXFmB3jcebBERETugAVLRETkAixYIiIiF2DBEhERuQALloiIyAVYsERERC7AgiUiInIBFiwREZELsGCJiIhcgAVLRETkAixYIiIiF2DBEhERuQALloiIyAVYsERERC7AgiUiInIBFiwREZELsGCJiIhcgAVLRETkAixYIiIiF2DBEhERuQALloiIyAVYsERERC7AgiUiInIBFiwREZELsGCJiIhcgAVLRETkAixYIiIiF2DBEhERuQALloiIyAVYsERERC7AgiUiInIBFiwREZELsGCJiIhcgAVLRETkAixYIiIiF2DBEhERuQALloiIyAUkUbCXL1/GpEmTEB8fDz8/P7Rs2RLz5s2D2Wyucb9ffvkF/fv3h6+vL2JiYrBs2TKREhMRkbfzETvArTh//jzsdjveffddtGrV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IAjC9u3bha5duwoajUYICAgQunTpIqxdu1aw2WziBv+Dv3oNgiAIly9fFkaMGCH4+fkJ4eHhwsyZMwWLxSJe6DqcOHFC6N27t6DVagVfX1+hffv2wpIlS9zmDaYub7/9thAbGyuoVCqhV69ewpEjR8SOdEvGjRsnNGnSRFCpVELTpk2FcePGCenp6WLHqtPevXtr/V1//PHHBUH4/VSdOXPmCFFRUYJarRYGDx4sXLhwQdzQf3Cz/BUVFcLQoUOFiIgIQalUCnFxccLkyZPd6oNaXe/3GzZscNynsrJSePrpp4WQkBDB399fuP/++2tsdN0KLldHRETkAh49ipiIiEgsLFgiIiIXYMESERG5AAuWiIjIBViwRERELsCCJSIicgEWLBERkQuwYImIiFyABUtEROQCLFgiIiIXYMESERG5AAuWyMsVFBRAp9NhyZIljttSU1OhUqmwe/duEZMRSRsn+ycifPfddxg9ejRSU1PRtm1bdO3aFUlJSVixYoXY0YgkiwVLRACA5ORk7Nq1C3feeSfS0tJw7NgxqNVqsWMRSRYLlogAAJWVlejUqROys7Nx4sQJ3HHHHWJHIpI0HoMlIgBARkYGrl+/DrvdjsuXL4sdh0jyuAVLRDCbzejVqxe6du2Ktm3b4o033kBaWhoiIyPFjkYkWSxYIsK//vUvfP755zh9+jQ0Gg3uvvtuaLVabNu2TexoRJLFXcREXm7fvn1444038N///hdBQUGQy+X473//i4MHD2LNmjVixyOSLG7BEhERuQC3YImIiFyABUtEROQCLFgiIiIXYMESERG5AAuWiIjIBViwRERELsCCJSIicgEWLBERkQuwYImIiFyABUtEROQCLFgiIiIX+P8BKcAAdrNfJSQAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "addOrbit(sim, comets[0])\n", + "%matplotlib inline\n", + "op = rebound.OrbitPlot(sim,xlim=[-20.,20],ylim=[-20.,20])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we just integrate until whatever final time we’re interested in. Here it's the epoch at which we observe the comet, which is the last column in our table:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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sGCJiIhEwIIlIiISAQuWiIhIBCxYIiIiEbBgiYiIRMCCJSIiEgELloiISAQsWCIiIhGwYImIiETAgiUiIhIBC5aIiEgEsinYV155BYMGDYK3tzf8/f2v+BiFQnHZZcOGDfYNSkREBMBD6gDXymAwYPLkyUhKSsJnn33W7OPWrFmDsWPHWq83V8ZERERikk3BLlmyBACwdu3aqz7O398f4eHhdkhERETUPNlMEV+r2bNnIzg4GPHx8Vi9ejUEQbjq4/V6PbRa7SUXIiKi1pLNCPZaLF26FDfddBO8vb2xZcsWPProo9DpdHj88ceb/TfLli2zjo6JiIhsRSH80xBPRAsWLMBrr7121cf88ccf6Nq1q/X62rVrMXfuXFRXV//j8y9atAhr1qxBUVFRs4/R6/XQ6/XW61qtFlFRUaipqYGfn98/fxJEROQ0tFotNBqNTTpA0hHsk08+iRkzZlz1MbGxsS1+/oSEBLz00kvQ6/VQqVRXfIxKpWr2PiIiopaStGBDQkIQEhIi2vNnZmYiICCABUpERHYnm/dgCwsLUVlZicLCQpjNZmRmZgIAOnbsCF9fX/z0008oLy9HYmIi1Go1tm7dildffRVPPfWUtMGJiMglyaZgFy1ahHXr1lmvx8XFAQB27NiB4cOHw9PTEx988AHmzZsHQRDQsWNHrFixAg8++KBUkYmIyIVJusjJEdnyDW4iIpIXW3aA0x0HS0RE5AhYsERERCJgwRIREYmABUtERCQCFiwREZEIWLBEREQiYMESERGJgAVLREQkAhYsERGRCFiwREREImDBEhERiYAFS0REJAIWLBERkQhYsERERCJgwRIREYmABUtERCQCFiwREZEIWLBEREQiYMESERGJgAVLREQkAhYsERGRCFiwREREImDBEhERiYAFS0REJAIWLBERkQhYsERERCJgwRIREYmABUtERCQCFiwREZEIWLBEREQiYMESERGJgAVLREQkAhYsERGRCFiwREREImDBEhERiYAFS0REJAIWLBERkQhkUbD5+flISUlBTEwMvLy8cMMNN2Dx4sUwGAyXPO7YsWMYOnQo1Go1oqKi8Prrr0uUmIiIXJ2H1AGuxcmTJ2GxWPDxxx+jY8eOOH78OB588EHU1dXhzTffBABotVokJydj1KhRWLlyJbKysjBz5kz4+/vjoYcekvgzICIiV6MQ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OMHLy0sIDg4WnnzyScFoNEoXuhmHDh0SEhISBI1GI6jVaqFbt27Cq6++6jB/YJrz/vvvC9HR0YJSqRTi4+OFjIwMqSNdkylTpggRERGCUqkU2rZtK0yZMkXIzc2VOlazduzYccWf9enTpwuC8OehOi+88IIQFhYmqFQqYeTIkUJOTo60of/iavnr6+uF5ORkISQkRPD09BTat28vPPjggw71Qq25v/dr1qyxPqahoUF49NFHhYCAAMHb21u47bbbLhl0XQuero6IiEgETr2KmIiISCosWCIiIhGwYImIiETAgiUiIhIBC5aIiEgELFgiIiIRsGCJiIhEwIIlIiISAQuWiIhIBCxYIiIiEbBgiYiIRMCCJXJxFy5cQHh4OF599VXrbfv27YNSqURqaqqEyYjkjZv9ExE2bdqEiRMnYt++fejSpQv69u2LCRMmYMWKFVJHI5ItFiwRAQBmz56Nbdu2YcCAAcjKysKBAwegUqmkjkUkWyxYIgIANDQ0oGfPnigqKsKhQ4fQq1cvqSMRyRrfgyUiAMCZM2dQUlICi8WC/Px8qeMQyR5HsEQEg8GA+Ph49O3bF126dME777yDrKwshIaGSh2NSLZYsESEp59+Gv/9739x9OhR+Pr6YtiwYdBoNPj555+ljkYkW5wiJnJxaWlpeOedd/Dvf/8bfn5+cHNzw7///W/s3r0bH330kdTxiGSLI1giIiIRcARLREQkAhYsERGRCFiwREREImDBEhERiYAFS0REJAIWLBERkQhYsERERCJgwRIREYmABUtERCQCFiwREZEIWLBEREQi+P/8DJ9gXKpH+gAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tfinal = comets[0][-1]\n", + "sim.integrate(tfinal)\n", + "op = rebound.OrbitPlot(sim,xlim=[-20.,20],ylim=[-20.,20])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "REBOUND automatically find out if you want to integrate forward or backward in time." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For fun, let's add all the comets to a simulation:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.G = k**2\n", + "sim.t = epoch_of_elements \n", + "sim.add(m=1.) # Sun\n", + "sim.add(m=1.e-3, a=5.) # Jupiter\n", + "sim.add(m=3.e-4, a=10.) # Saturn\n", + "for comet in comets:\n", + " addOrbit(sim, comet)\n", + "op = rebound.OrbitPlot(sim,xlim=[-50.,50],ylim=[-50.,50])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/IntegratingArbitraryODEs.ipynb b/rebound/source/ipython_examples/IntegratingArbitraryODEs.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..433cb054ee8adccdbb0e118d659c99a399c9bfc0 --- /dev/null +++ b/rebound/source/ipython_examples/IntegratingArbitraryODEs.ipynb @@ -0,0 +1,429 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ac2c0891", + "metadata": {}, + "source": [ + "# Integrating arbitrary ODEs\n", + "\n", + "Although REBOUND is primarily an N-body integrator, it can also integrate arbitrary ordinary differential equations (ODEs). Even better: it can integrate arbitrary ODEs in parallel with an N-body simulation. This allows you to couple various physical effects such as spin and tides to orbital dynamics.\n", + "\n", + "In this example, we are integrating a two planet system and a decoupled harmonic oscillator which is governed by the following ODE:\n", + "\n", + "$$ y_0(t)'' = -\\frac km y_0(t)$$\n", + "\n", + "or equivalently as a set of 2 first order differential equations\n", + "\n", + "$$ \\begin{pmatrix} y_0(t)\\\\y_1(t)\\end{pmatrix}' = \\begin{pmatrix} y_1(t)\\\\- \\frac k m y_0(t)\\end{pmatrix}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "e350dbbb", + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "37ac5371", + "metadata": {}, + "source": [ + "We first set up our N-body simulation. Note that we are using the Gragg-Bulirsch-Stoer integrator (BS)." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "18043d1d", + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1)\n", + "sim.add(a=1.2,m=1e-3,e=0.1)\n", + "sim.add(a=2.3,m=1e-3,e=0.1)\n", + "sim.integrator = \"BS\"" + ] + }, + { + "cell_type": "markdown", + "id": "55150ae8", + "metadata": {}, + "source": [ + "We now create an ODE structure. Note that the ODE is linked to the simulation. If you run multiple simulations in parallel, you need to create an ode structure for each of them." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "39c5337d", + "metadata": {}, + "outputs": [], + "source": [ + "ode_ho = sim.create_ode(length=2, needs_nbody=False)" + ] + }, + { + "cell_type": "markdown", + "id": "f5766f9e", + "metadata": {}, + "source": [ + "Next, we setup the ODE structure with the initial conditions and the right hand side (RHS) of the harmonic oscillator:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "265f8c39", + "metadata": {}, + "outputs": [], + "source": [ + "# Mass and spring constants\n", + "m = 1.\n", + "k = 10.\n", + "\n", + "# Initial conditions\n", + "ode_ho.y[0] = 1. \n", + "ode_ho.y[1] = 0. # zero velocity\n", + "\n", + "# RHS\n", + "def derivatives_ho(ode, yDot, y, t):\n", + " yDot[0] = y[1]\n", + " yDot[1] = -k/m*y[0]\n", + "\n", + "ode_ho.derivatives = derivatives_ho " + ] + }, + { + "cell_type": "markdown", + "id": "2f9b90c7", + "metadata": {}, + "source": [ + "To keep track of how accurate the integration of the harmonic oscillator is, we can calculate the energy which is conserved in the physical system." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "ebc52cd3", + "metadata": {}, + "outputs": [], + "source": [ + "def energy_ho(ode):\n", + " return 0.5*k*ode.y[0]**2 + 0.5*m*ode.y[1]**2" + ] + }, + { + "cell_type": "markdown", + "id": "6bff9751", + "metadata": {}, + "source": [ + "Now we can run the simulation, keeping track of a few quantities along the way." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4eb25927", + "metadata": {}, + "outputs": [], + "source": [ + "times = np.linspace(0.,60.,1000)\n", + "energies_nbody = np.zeros(len(times))\n", + "energies_ho = np.zeros(len(times))\n", + "r_nbody = np.zeros(len(times))\n", + "x_ho = np.zeros(len(times))\n", + "\n", + "for i, t in enumerate(times):\n", + " sim.integrate(t)\n", + " \n", + " r_nbody[i] = sim.particles[1].d\n", + " x_ho[i] = ode_ho.y[0]\n", + " energies_nbody[i] = sim.energy()\n", + " energies_ho[i] = energy_ho(ode_ho)" + ] + }, + { + "cell_type": "markdown", + "id": "439539a6", + "metadata": {}, + "source": [ + "Let's plot the relative energy error over time for both the N-body and the harmonic oscillator integration." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "0411c827", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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669n/fr1rF27lszMTHbv3s1NN93EF198QWZmJsuWLeP9998HrGXeDz/8cFavXs3RRx/Nc88995sYzz//fK688kpWr17Nt99+S1paWo3nV6xYwfPPP88PP/zA999/z3PPPceqVav45JNP6N69O6tXr2bdunVMnToVl8vFOeecw6OPPsrq1av57LPPGlxJuLq6fidHHnkk06dP58EHHyQzM5MBAwbUu0Q9gMvlYvny5c1KHKA1j4Bos5U6JDRSQwiVfv36VV2Uady4cWzfvh2AdevWceutt5Kfn09xcTEnnXRS1T5nn302dru96vGpp56KiDBq1Ci6du3KqFGjABgxYgTbt29nx44dTJkyhdTUVMBKBosXL+a0004jKiqKadOmVX3+p59+WiO+oqIidu3axemnnw5ATEzMb45h6dKlnH766cTHxwNWIb9kyRKmTp3KDTfcwE033cS0adM46qijWLt2LWlpaYwfPx6wlqMPVEO/k0r1LVFfqXJJ++bSmkcjDFrzUCqUoqOjq+7b7XY8Hg8As2fP5oknnmDt2rXcfvvtlJeXV72uspCu/R42m63G+9lstqr3q4/T6axa2r3657eEwYMHs3LlSkaNGsWtt95atTpwUzX0OwlU7d9dU2nyaIxp/CVKqZZXVFREWloabrf7N8upB2vChAl8/fXX5OTk4PV6ee2116rOzBuTmJhIz549q5q5KioqfrN441FHHcX7779PaWkpJSUlvPfeexx11FHs3r2buLg4LrjgAm688UZWrlzJkCFD2LNnD8uWLas6zkATVn2/k8TERIqKigDqXaK+pWmzVQC05qFU67vrrruYOHEiqampTJw4sapwbIq0tDTuu+8+jj322KoO8xkzZgS8/0svvcQf//hHbrvtNpxOJ2+99Rb9+/evev6www5j9uzZTJgwAbA6zMeOHcuiRYu48cYbsdlsOJ1OnnrqKaKionjjjTe4+uqrKSsrIzY2ls8++yygOOr7nZx77rlceumlPPbYY7z99tu8+OKLVR3m/fv35/nnnw/itxUYqb3GfXuUkZFhli9f3qR9S2/vwpq0szj88n+1cFRKhd+GDRsYNmxYuMNQEaCu74KIrDDG1Dl+WJutlFJKBU2Th1JKqaBp8lDqEHcoNF2rhjXlO6DJQ6lDWExMDLm5uZpADmHGGHJzc+ucv9IQHW2l1CGsZ8+eZGVlsX///nCHosIoJiaGnj17BrWPJg+lDmFOp5N+/fqFOwzVBmmzlVJKqaBp8lBKKRU0TR5KKaWCdkjMMBeR/cCOJu7eGchpwXDCSY8lMrWXY2kvxwF6LJX6GGNS63rikEgezSEiy+ubnt/W6LFEpvZyLO3lOECPJRDabKWUUipomjyUUkoFTZNH454NdwAtSI8lMrWXY2kvxwF6LI3SPg+llFJB05qHUkqpoGnyUEopFTRNHg0QkakisklEtojIzeGOJxgiMk9EskVkXbVtnUTkUxHZ7L/tGM4YAyEivUTkSxH5SUTWi8i1/u1t8VhiRORHEVntP5a/+7f3E5Ef/N+zN0QkKtyxBkpE7CKySkQW+h+3yWMRke0islZEMkVkuX9bW/yOJYvI2yKyUUQ2iMgRoToOTR71EBE78CRwMjAcOE9Ehoc3qqC8AEytte1m4HNjzCDgc//jSOcBbjDGDAcOB670/z+0xWOpAI4zxowB0oGpInI4cD/wiDFmIJAHzAlfiEG7FthQ7XFbPpZjjTHp1eZEtMXv2KPAJ8aYocAYrP+b0ByHMUZ/6vgBjgAWVXt8C3BLuOMK8hj6AuuqPd4EpPnvpwGbwh1jE45pAXBCWz8WIA5YCUzEmv3r8G+v8b2L5B+gp78wOg5YCEgbPpbtQOda29rUdwzoAGzDPxAq1MehNY/69QB2Vnuc5d/WlnU1xuzx398LdA1nMMESkb7AWOAH2uix+Jt5MoFs4FPgFyDfGOPxv6Qtfc/+D/gL4PM/TqHtHosB/isiK0TkMv+2tvYd6wfsB573NyX+W0TiCdFxaPI4RBnrNKTNjNMWkQTgHeA6Y0xh9efa0rEYY7zGmHSss/YJwNDwRtQ0IjINyDbGrAh3LC1ksjHmMKxm6itF5OjqT7aR75gDOAx4yhgzFiihVhNVSx6HJo/67QJ6VXvc07+tLdsnImkA/tvsMMcTEBFxYiWOV4wx7/o3t8ljqWSMyQe+xGraSRaRyguztZXv2SRguohsB17Harp6lLZ5LBhjdvlvs4H3sBJ7W/uOZQFZxpgf/I/fxkomITkOTR71WwYM8o8eiQLOBT4Ic0zN9QFwkf/+RVj9BxFNRASYC2wwxjxc7am2eCypIpLsvx+L1XezASuJnOV/WZs4FmPMLcaYnsaYvlh/G18YY86nDR6LiMSLSGLlfeBEYB1t7DtmjNkL7BSRIf5NxwM/EaLj0BnmDRCR32O169qBecaYe8IbUeBE5DVgCtZyzPuA24H3gTeB3lhL1M80xhwIU4gBEZHJwBJgLQfb1v8Xq9+jrR3LaOBFrO+TDXjTGHOniPTHOnvvBKwCLjDGVIQv0uCIyBTgz8aYaW3xWPwxv+d/6ABeNcbcIyIptL3vWDrwbyAK2ApcjP+7RgsfhyYPpZRSQdNmK6WUUkHT5KGUUipomjyUUkoFTZOHUkqpoGnyUEopFTRNHkqFgH910z/573cXkbfDHZNSLUmH6ioVAv51uBYaY0aGOxalQsHR+EuUUk1wHzDAvwjiZmCYMWakiMwGTgPigUHAQ1gTui7EWrL998aYAyIyAOuSAKlAKXCpMWZjax+EUvXRZiulQuNm4Bf/Iog31npuJHAGMB64Byj1L2T3HTDL/5pngauNMeOAPwP/ao2glQqU1jyUan1fGmOKgCIRKQD+49++FhjtX0H4SOAta2kvAKJbP0yl6qfJQ6nWV32tJ1+1xz6sv0kb1nUx0ls5LqUCps1WSoVGEZDYlB391yvZJiJng7WysIiMacnglGouTR5KhYAxJhf4RkTWAQ824S3OB+aIyGpgPTCjJeNTqrl0qK5SSqmgac1DKaVU0DR5KKWUCpomD6WUUkHT5KGUUipomjyUUkoFTZOHUkqpoGnyUEopFbT/DwTpWH2SS+ppAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1)\n", + "ax.set_xlabel(\"time\")\n", + "ax.set_ylabel(\"relative energy error\")\n", + "ax.set_yscale(\"log\")\n", + "ax.plot(times,np.abs((energies_nbody-energies_nbody[0])/energies_nbody[0]), label=\"N-body\")\n", + "ax.plot(times,np.abs((energies_ho-energies_ho[0])/energies_ho[0]), label=\"harmonic oscillator\")\n", + "ax.legend()" + ] + }, + { + "cell_type": "markdown", + "id": "6421232c", + "metadata": {}, + "source": [ + "Let us also plot the radius of the inner planet and the position coordinate of the harmonic oscillator." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "bf8928b4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1)\n", + "ax.set_xlabel(\"time\")\n", + "ax.plot(times,r_nbody, label=\"planet\")\n", + "ax.plot(times,x_ho, label=\"harmonic oscillator\")\n", + "ax.legend()" + ] + }, + { + "cell_type": "markdown", + "id": "2ef6fafa", + "metadata": {}, + "source": [ + "The above example is using the BS integrator for both the N-body and the harmonic oscillator integration. The BS integrator has default tolerance parameters set to $10^{-5}$. You can change the relative or absolute tolerance with to get more accurate results:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "1d3c7ced", + "metadata": {}, + "outputs": [], + "source": [ + "sim.ri_bs.eps_rel = 1e-8\n", + "sim.ri_bs.eps_abs = 1e-8" + ] + }, + { + "cell_type": "markdown", + "id": "1e2b0d95", + "metadata": {}, + "source": [ + "Note that in this example, the harmonic oscillator has a period that is shorter than any orbital timescale. Therefore the timestep is limited by the harmonic oscillator, not the N-body integration. As a result, the N-body integration has an error much smaller than the tolerance parameters. " + ] + }, + { + "cell_type": "markdown", + "id": "9bb09a10", + "metadata": {}, + "source": [ + "Let us change the simple harmonic oscillator to a forced harmonic oscillator where the forcing depends on phase of a planet." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "03c94568", + "metadata": {}, + "outputs": [], + "source": [ + "def derivatives_ho_forced(ode, yDot, y, t):\n", + " # Now we can access particles and their orbital parameters during sub-steps\n", + " forcing = np.sin(sim.particles[1].f)\n", + " \n", + " # Note that we are using the global sim variable.\n", + " # Alternatively, one can also access the simulation via\n", + " # sim = ode.contents.r.contents \n", + " \n", + " yDot[0] = y[1]\n", + " yDot[1] = -k/m*y[0] + forcing\n", + "\n", + "ode_ho.derivatives = derivatives_ho_forced" + ] + }, + { + "cell_type": "markdown", + "id": "c592c246", + "metadata": {}, + "source": [ + "We explicitly set `needs_nbody = False` during initialization. We therefore need to tell REBOUND that our ODE now needs access to the particle state during the integrations:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "61034468", + "metadata": {}, + "outputs": [], + "source": [ + "ode_ho.needs_nbody = True" + ] + }, + { + "cell_type": "markdown", + "id": "3dfafc1d", + "metadata": {}, + "source": [ + "Running the integration a bit further, now with the forced harmonic oscillator:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "4305edc4", + "metadata": {}, + "outputs": [], + "source": [ + "times = np.linspace(65.,120.,1000)\n", + "\n", + "for i, t in enumerate(times):\n", + " sim.integrate(t)\n", + " \n", + " r_nbody[i] = sim.particles[1].d\n", + " x_ho[i] = ode_ho.y[0]\n", + " energies_nbody[i] = sim.energy()\n", + " energies_ho[i] = energy_ho(ode_ho)" + ] + }, + { + "cell_type": "markdown", + "id": "191064cf", + "metadata": {}, + "source": [ + "The harmonic oscillator is now getting forced by the planet." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "9f90e0fb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEGCAYAAABmXi5tAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAACCNUlEQVR4nO19d5QcxfX1rdnZvIogCSEJhAAJUE5EY7IBk3M2MhgMNmCwDRiMweHD5mdjm2CywdgkCzAGDCInYZMUECAhFEnKq7R5d1J9f3RXT01PddWrmR7tarffOTo7mqnped1d9eq++0IzzjkiiSSSSCLp/hLrbAUiiSSSSCLZMhIZ/EgiiSSSHiKRwY8kkkgi6SESGfxIIokkkh4ikcGPJJJIIukhEu9sBYJk22235cOHD+9sNSKJJJJItiqZM2fOes75ANVnXdbgDx8+HLNnz+5sNSKJJJJItiphjH0Z9FlE6UQSSSSR9BCJDH4kkUQSSQ+RyOBHEkkkkfQQiQx+JJFEEkkPkcjgRxJJJJH0EIkMfiSRRBJJD5HI4EcSSSSR9BDpsnn4W4M0tCUx98tNWNfUjtrKOHbbrhd2HlAHxlhnq6aVlZvbsGhNI9oSGQzoVYnR2/dGbWXXngqcc6zc3Ibl9S1Ic45h/Wqw07a1KIt17Wu9YlMrZn+xCSs3t6EyHsPIQb2w5079UVVe1tmqBUoyncEHn2/EwtWN6EhlsG1dBaYM74+dB9R1tmpayWQ4vtzYiq83tqIsxjBiQC0G96nubLWMkkhlsHRdM9Y2taOmvAy7bdcbfWrKS/JbXXuVd1FZuLoRt722BC9/uhbpTO7zBEYMqMWF+4/AKVOGdSljxDnH85+sxt1vLcP8lY05n1XGYzhizHa49OBdscvArrWoE6kMps/6Cg+99yUWr23O+WxQ70qcOmUYvrf/CPSpLs0CKVQ++noz/vDSIvx36fq8z/pUl+M7++yI7x+wM+q60Ebblkjjgf99jvv/+zk2tiTyPp+0Q1/89PBR2HfnbTtBu2Bpak/igf9+gemzvsKqhvacz3bbrhfO3ntHnDZ1GMrLuhahsWJTK+54Yxme+3gVmtpTOZ8dvNtAPDBtaui/ybrqA1CmTJnCu1qlbTKdwe2vLcEdby5DbUUZzthzBxy020AM6VuN5o4U5n61CdNnfY2PVzRg/NA+uPX0iRi+bW1nq42Vm9tw+T8/xKwvNmHkoDqcMnkYJu3YF7WVcaza3IY3PqvHvz9cibZkGj88cGdcdsiuiHeBxTF/ZQN+9M8Psay+BROG9cVxE7bHHoN7I17GsKy+BS/NX4PXPluHfjXl+P3J43HYHoM6W2Wk0hn88ZXFuOvNZdi2rgLn7jMc3xq9HXbcpgZtiTTmrdiMx2d9jRfmr8GQvtW4/cyJmLRDv85WG5+uasSlj83FsvoWHLzbQJw+dRimDO+Puso4vt7Uijc+W4e//e8LrNzchjP2HIYbjhndJbyU1z9bi6ue/BjrmxM4YOQAHDlmO4wYUIdUJoOFq5vwzLyV+HhFA3YdWIdbT5+IPbbv3dkqI53huPutZbj11SUAA44Ztz0OGDUAQ/pWobkjjY++3oyyGMMPD9qloOMzxuZwzqcoP4sMPk2a2pP44aMfYubiepw4aQiuP3oP9K2pyBvHOcezH63CDc8uAOfAnWdNwn67dB4ienfZBlz8yByk0hy/OHp3nDxZ7XlsaO7Ajc8vxFMfrsQ+I7bB3edM7lTU/OScFbj2qU/Qr7Ycvz1hLA7ebaCSKpu/sgE/e+pjzF/ZiO8fMAI/O2K3TqPUmjtSuPAfs/HOsg04Y88d8POjdg9E8HO+3ITLp3+I1Zvb8fuTx+HESUO3sLZZefXTtfjho3PRu7ocfzxlPL45UtmGBe3JNP786mLc89ZyjBvaB3+bNhXb1FVuYW0d4Zzjjy8vxl/eWIrdB/fG/500FuOG9lWOe3XhOvz8359gc1sSN504tlOvdVN7Ej94ZC7eXrIeR40djJ8ftTu27xsu7aQz+OCcd8l/kydP5l1FGtoS/Ojb3uYjrnme//ODL0nf+XJ9Cz/sT2/yXa+dwV9fuLbEGqrl9YVr+cifz+CH/PFNvry+mfSdJ2Z/zXe59nl+xC0z+brG9hJrqJb7Zi7jO179HD/zvnf5huYO4/j2ZIpf+9THfMern+M/eXweT6UzW0DLXNncmuDH/uW/fMQ1z/MnZn9N/s6Z973Ld7z6Of7Qu1+UWEO1PDtvJR9xzfP8mNvf5vVNtPv94vzVfOTPZ/BD//gmX9vYVmIN8yWdznj3+6onPuJtiZTxO+ub2vnp9zjX+q9vL98CWuZLfVM7//atM/nO1zzPH33/S57JlGaeApjNA+xqpxv2oH9dxeC3dqT4yXf9j+98zfP81U/XWH13c0uCH3XbTL7rtTP424vrS6ShWt5Zup7veu0MftRtM0lGU5Y3F63ju133Aj/ylpm8oS1RIg3V8tC7X/Adr36OX/zwbN6eNC9kIZlMhv/5lUV8x6uf49c89XHJFpNK2hIpfsrd7/Bdrn2ev7zAbo60JVL8vL99wHe8+jn+n49WlkhDtcxcvI7vcu3z/JS73uFN7Umr7/5vaT3f/Rcv8CNumWn93WIkk8ka+9/O+NTqPrcnU/yih2bzHa9+jj/yHg24hSUNbQl+5C0z+ajrZvDXPystANQZ/M4naruwcM5xxfR5mPPlJtxy+gQcsrsdR9ynphyPnL83dtq2Fhc/MgdL1jaVSNNc+WxNIy58aDZ23KYGj5y/N/rX5lNPOjlg5ADcfc5kLF7bhAv/MRvtyXSJNM2VFz5ZjV88Mx8H7zYQt54+EZVxOkfMGMPlh47EDw7cGY++/xX+/OqSEmqalUyG4yePf4QPPt+IP546wTqOUFVehjvOmoSpw/vhx9M/wvvLN5RI01z5dFUjLnpoDnYeUIf7zp1iHTzed+dtcdfZzhz54SNzkUxnSqRprtz55jI88v5X+P4BI3DNkbtb0XeV8TLcdsZEHDRqAK57+hO8OH91CTXNSnsyjQv/MRuL1zbh7rMn46BRA7fI76okMvgauf+/n+PFBWvwsyN3w9Hjti/oGH1qynH/tCmojJfhuw/OUmY/hCmbWhI4/8HZqKkow4Pn7VlwetcBIwfg5lPG473lG/GLp+c77mAJZcGqBlzx+DxMHNYXd5w5qeCMiisPH4VTpwzFba8twXMfrwpZy3y5882leP6T1bj227vh2PGFzZGq8jLc950pGNq/Gj94ZC7W+DJNwhaHR56Duqo4/n7engXHag4YOQA3Hj8Gby2ux+9mfBaylvky45PV+MNLi3D8hO1x9eG7FXSM8rIY7jxrMiYM64vLp8/Dp6sazV8qQjjn+MXT8/He8o3446njcWAnGnsgMviBMvuLjbjphc/wrT0G4YL9RxR1rKH9anD/uVOwrqkDl0+fh0ymNMYzk+G4fPo81Dd14N5zpmBIkcGg4ycOwaUH74In5qzAw+9/FZKW+bK5NYGLHp6DvtUVuOecKaiuKDz7gzGG/3f8WEzZsR+uevJjLFpTOq/q7SX1+OMri3H8hO2LniN9aypw7zmTnUypR0uHmDnn+NlTn+DrTW34y5mTMKh3VVHHO33PHTBt3+F44H+fY8YnpUPMy+qbceUTH2HiDn3x+5PHI1ZEynN1RRnuOWcK+lZX4PsPz8amEoKwh9//Ck/MWYHLDt4Fx00YUrLfoUpk8BWyobkDlzz6IYb0q8YfThkfStbH+GF9ccMxe2Dm4nrc8cbSELTMl9tfX4q3Ftfj+mP2wPhhfUM55uWHjsRBowbgV88uwKwvNoZyTFnSGY7L/jkPaxs6cNfZkzCgV/FZHxXxGO48axLqKuP4/kOz0dCWDEHTXFm5uQ2XPfYhRg7shd+eODaUObLLwF74v5PGYc6Xm0qGmB9+/ys8//Fq/ORbIzF1eP9Qjnntt3fHxB364qonP8by+mbzFyylNZHCxQ/PQWV5Ge48axIq4sWbrQG9KnH3OZOxtqEDl/3zw7x6mjBk9hcb8atnF+CgUQNw+aEjQz9+IRIZfJ+kXZS8sTWBO8+aFGpq4pl77oDjJmyPP7+6GO8oCnKKkZmL63HLa4tx4sQhOGuvHUI7blmM4ZbTJ2JoP4duWNcULt1w66uLMXNxPX557GhMDDEffWDvKtx19iSs2NSGnzz+UaheVSKVwQ8fmYtUmuOusyehpiK84qljxm/vIeawOeb5Kxvwm/98igNGDsBF39w5tONWxGO440zHEF/88Fy0JcKL+XDOce1Tn2DJumbcevqEUCtnJwzri98cPxpvL1mPP72yKLTjAsC6pnZc/MhcDO1XjVtOn1iURxKmRAbfJ7e9tgRvL1mPXx87GqO37xPqsRlj+O0JYzFiQB0u++eHWNsYjvFc3dCGH/3TQZs3nhAO2pSlT3U57j5nMprak7jk0Q9DoxveWlyP299YilMmD8WZIW5SQibv2B/XHbU7Xl24FvfMXB7acX//4meY9/Vm/P7kcRhRgnYD1357d4wf2gdXPvkxvtrQGsoxnTqSuehfW4E/nVocJaKS7ftW45bTJmDxuibc8Oz80I778Ptf4el5q/DjQ0di/13V9QHFyGlTd8DpU4fhjjeW4ZVP14ZyzFQ6g8se+xBN7clOr2fxS2TwJZm5uB63vb4EJ04agtOmDivJb9RWxnHXWZPQ0pHGpY99iFSRxjOZzuDSRz9EIpXBnWdPKor/1slu2/XG704ciw8+34jfv1g83bC6oQ1XTJ+HUYN64dfHjQlBQ7Wcu+9wHDN+e/zhpc/w7rLiM2BeXrAGf/3v5zh3nx1x5NjBIWiYLxXxGP5y5iQwAD98dC46UsUhZsHbr9jUhtvPnFiyYqlvjhyASw7aBY/PXoF/zVlR9PE+XrEZv/nPpzhw1ICCq04p8stjR2PMkN748ePz8OWGlqKP9+dXF+O95Rtx4/Fjsdt2nV/ZK0tk8F1Z3dCGy6fPw8iBvfD/jh9T0mrNXQf1wm9PHIMPPt+Im19eXNSxbn55EWZ/uQm/PXFsyZtbnTBxKM7Ze0fc93ZxAbpkOoNLHv0QHck07jirdJsU4HhVN504FjttW4tLH5tblFe1YlMrfvrERxgzpDeuPWr3ELXMl2H9a3DzKePxycoG/Pb5hUUd6+H3vgydtw+Syw8dib1H9Md1T88vKg25odWpSB3QqxJ/PnVCSSmRqvIy3HXWZMQYw0VFUlKvf7YWd7yxDKdPHYaTJndeRW+QRAYfQEcqjYsenouOZBp3hszJBskJEx0a4+63luHVAl3J1xauxT1vLceZe+2wxTIArjt6d0wY1hdXPvERlq4rLED3+xc/w5wvN+Gmk8ZtkQ6MtZVx3H32ZLQm0rikwAyYRMrZpDgH7jhzklWNQKHyrdHb4fxv7IS/v/tlwRvsvK8349fPOSg5TN4+SMpiDLedPhG1lXFc/MhctCZS5i/5JJPh+MkT87C2sR1/OXMi+lnWkRQiw/rX4JbTJ+CzNY24rsA05K83tuKK6R9hj8G98ctjR5dAy+IlMvgAfvnsp/jo683446kTtmgL2OuP3sNzJb/eaMfVLqtvxhXT52GPwb1x/dF7lEjDfKmMO5kSleVluOjhOWjpsFvQT8z+Gve97VAixxSYt16I7DqoF3534ljM+mKTNSUlcqnnfb0ZN500Djtus+Ua4l19xG6YMKwvrn7yY2u6YWNLAj94eA4G9qrCLaeVFiXLMrB3FW49fQKW1Tfjun/bG8/bX1+KVxeuc7N/tlxjuYNGDcRlB++Kf81dgcc++Nrqu43tSZz/91nIcI47z5rUJRrLqaRbGnwbzvOhd7/AYx98hR8cuDOOGLNdCbXKl6ryMtx55mRwAOc9OAubW2n5wBtbEjjvwVkoL4vhnnMmb/HJtX3fatx+xkQsr2/Gj/5JD+K+t3wDrv33J9h/121x3RbcpIQcN2EIzt3HoaRsOOa/vv05ps/+GpcevAuOGlca3j5IHD7fyfL4wSNzyRus45HMxfrmBO4+e7Ky0V8pZb9dtsXlh4zEUx+utEpD/veHK/DnVxfjxElDMG3f4aVTMEAuO2RXfHPkAPzy2QX4HzGTTlCUy+tbcPfZk7tEh9wg6XYGf01DOw7/80w8M2+lcex/PlqF659dgIN3G4iffGvUFtAuX3bYpgb3njMFX25oxXcfnGV0gRtak/jug7OwuqEd935nCob1r9lCmubKfrtsi18eOxqvLlyHnz7xkTH4POuLjTj/wVnYoX8N/lJEJW2x8vOj9sB+u2yDq/71MV5asMY4/rEPvsKNMxbiyDHb4YpOyqUe2q8Gt5w2AZ+tacJFD89BIqW/1pkMx0+f+AjvLNuAm04ai7FDw802o8qlB++CEyYOwc0vL8ZjH5gL915b6LQ63ntEf9x04rhO6XpaFmO4/fSJGDGgFhf8YzZmG2pPEiknaWLm4nr85vgxndoZlyLdzuDXVcWxXZ8qXD59Hh5694tAd/LxWV/j8unzMHXH/rjjzEmd+rCSfXbeBredMREffb0ZZ9z3PtY3dyjHrWlox5l/fQ8LVzXijjMnYfKOndtH/Tv7DMeVh4/CM/NW4bsPzgoscHrhk9U494EPMKhPFR69YO9OTVOriMdwzzlTMHZIH/zgkbl46L0vleM457h35jJc89QnOGDkAPx5C1IiKjlot4H43Ylj8faS9fj+Q7MDgUEyncEVj8/Dsx+twlVHjOrUVsCxGMPvTx6HA0cNwDVPfYJ73loWuB6fmrsC339oDnYf3Bv3nD0llOKqQqVPTTn+cf6eGNS7Cmf+9f1A8LixJYHz/z4LLy5Yg+uP3gNn7Bl+anHY0i374bcn0/jBI3Px+mfrcPS4wbjy8FEe77pqcxv+8NIi/PvDldh/121x51mT0Kuqa+TJvrRgDX70zw9RVxnHz47cHceMH4zKeBk6Umn8e+5K/N+Ln6EjlcGdZ03q9J4csjz2wVf4xdPzsU1dBa44dCSOHDsYvSrj+HR1I+6duRzPfrQK44f1xX3fmYyBvYor5Q9LmjtSuOyxD/H6Z+tw+OhBuOKwkdhtu97gnGPBqkb84aVFeGtxPY4csx3+fNqELsPJPvr+V7ju6U+wy8A63HTSuJyHpyxa04SrnvwIH61owFVHjMLFB+zcJR632Z5M4yePf4TnP1mNA0YOwJWHj8KYIY7Xsby+Gbe+tgTPzFuFvXbqj7+eO6XLrMcNzR246OE5mPXFJhw5xgmgjx/WFw1tSTz/8Wrc/vpSNLYl8f+OH4NTS5TGXYj0yAegpNIZ3PXmMtz++lIkMxnnWbNwgp1lMYaLD9wFlx68S5d77NnC1Y24+l8f4+MVDaitKMN2faqwuqEdrYk0Jgzriz+eOr5LPlv0w6824fpnFuCTlQ0AHNc4neGoLi/D9/bfCZcevGunojaViCcP3f76ErQnM9i2rhIZzrGxJYFeVXH8+LCRmLbv8C5hNGWZubgeVz35MdY0tmPMkN7YZUAdVmxqw+wvN6FvjfPAmG+XqEagUMlkOB5+/0vc9MJnaE2kMbBXJcpiDKsb2lERj+Gib47ApYfs2uXWYyKVwT1vLcOdby5Dm69r7NTh/XDDMaO9zaurSI80+ELWNbbj8dnOYwc5gNHb98ZJk4bmc9/JduDx7wD7/xjYYe+if7cYyWQ4/rdsPV79dC3WNXVgUO8qHLL7QHxjl21zjc/XHwBDpgCxrrFIOOeY9/VmvLNsA1oTKQzfphaH7D7Iuj3zlpb1zR144ZPVmL+yEbEYMHr7Pjhm3PYle5B0GNLYnsQTs1fgxfmrsbqhHdvWVeKgUQNxzj470q53qgOIb/mnVTW0JfHsvJX4aEUDMhmO3Qf3xvETh+h7KCXbgbduAqZeAPTpnAZkTe1JvLGoHp/Xt6C2sgxTh/fHuKF91GBg0xfA9HOAU/8B9N9pi+vaow0+WRa9CDx2GjB4AvD9t7bc7xYqK+cA9x0M7HMJcPiNna0NTVrWA1V9gbKu8+DuUIRzYOGzwMgjOsWIWstX7wEPHA6c+Tgw8vDO1sYs798DvHAV8I0fA4fe0NnamOXN/wPe/C0weRpwzK1b/Od1Br9rQMOuIBvdXiuZLfOwj6JlnVt9+fnMztWDKhuWAX/YGXjvjs7WJHxZNMPxDv97S2drQpOv3nX+Lni6U9UgS5NbdNayrnP1oEpLvfM3bV90VmoJxeAzxh5gjK1jjCm7JjFHbmOMLWWMfcwYmxTG74YqzW61a6br3SSlbPrC+VvWdWmHHPnyf85fipHZuBy4Yy9g6WslVUkr6RTw1u+B5nrz2DXutN9QmrbXoctmN0Uy1da5elCl0TX4TeY02i4hrW7+fhfcoMJC+A8COELz+ZEAdnX/XQjgrpB+NzwRu3Jb+D3fSyLtTnAUzYRJlU4C790NJMLpvFiQiEXLCR7UkleA+s+ABU+VViedfPE28MaNwHOXm8cKsNBR2qcnhSZtm5y/jaV/Ilgo0uwaeqF3V5dWt0kfZW1uYQnF4HPOZwLQWcrjAPzDfcbuewD6Msa6VhpBq6t+6waHkzVJZ8c+OtzGVJRF8NnzwItXA6/+sqQqaaXJNS4dhP47DW5Ze2snLnBBmVFQpQALLeE+48BKOAdWfwSkCNXaYu60biXgxmaudwXxbEnXu75bisMfAkBuTrHCfa/rSMI1RJlU9nWQNK4CftUXWPifkqsVKO0umkw0m+MOG5c5fxvs+oOEKmKxUhatQJ7NnejCC9QOwsYuDH1rJxr8L/8H3PNN4FVCUFMY0K3FI0m4PYS6oAFVipjjCWK30E3q4r9SSJcK2jLGLmSMzWaMza6vJ3CnYUpSojtM1Mfil5y/s+4vnT4mkReraeEKlJrsREpHbFDtm4GMofeOGNu2uZQa6UW45S2EeSiuf2d6JPVuQ7hV88xjvXvRyQbfNA+ECK+wvaHzPWuKCMDY0WTWd8HTwK3jgGWvl1wtYMsZ/JUA5FK0oe57OcI5v5dzPoVzPmXAgPCfbqOVhNSJMGnoSiiyBnhpHjRNko4m9WuViIXdFM4TfQoSYRR5Buho0I8VC6Z9c0lV0opAkxSaRuhrmjelFC8QS+j3L+ZLqo1GAZVCGlcDv+4HfPKkeazncXOnfkAn6RTw4cM06rAUwrnz2yzmsAWm+/HlO87f5W+WXDVgyxn8ZwF8x83W2RtAA+e8dI+4L0QSLUCFW8FqQvgCMbcbDFcppaMRiLkZOiak5iHQ4p/4VLDIOiYMhlEs1rbNnYfohFuebDWn14n5kkl1ngEV95ZyjzuaALgFQ51F6yx9xfk7+wHz2EQLUO4WSpq81Nn3A8/8EJj79+L0K1RS7U5iQi+39bdp4xFJIlsoPhFWWuZjAN4FMIoxtoIxdj5j7CLG2EXukBkAlgNYCuA+AD8I43dDlUQLUOt2ujNNKhF970xOsaMJ6O1OKlPMQRhbkydQSuloBCp6Oa9NG6rnDaTN51YqkX/XxMUmWgDm9trpLJTfQfSKOHeuby83Z8J0fVfOAW4ZS6OKbISaIZTqADJJoNb1+E1rU/DhpchAql9sBiDiPvR2r69pQxUeJCX9NwQJK0vnDM75YM55Oed8KOf8fs753Zzzu93POef8h5zznTnnYznnW7CEliiJluykMiJQkeXQyYi5bpDzOmnIpxYUSqrNSdHsDLHZUGUjZDq3Uomso26jzGScsd7cMZxbeyPw7KXhp+x5NFijnhtPtADgQJ3bfC9poByWv+XQRR8+HIqanojzNxlEsRY9g2+YDyLQLyiusOTLd4E7pgIf3KsfJ+5Drbi+hvmwhXP2u1TQtiTyyZNm7jqdAtId0k0yTCqZs+0MA5rqcPStI+or0ymdgfI5d3Ss2cb5v3GDagZqiJtDqSTRClS6D6DWXbNUGxwDSkSgHz0GzP0H8PafQlHTE09Hrjei4jMPLBj03ewiZhMIshWRBWXyksVaqyMa0KYS5eyv+cT5u+gF/TihX4377GDThirOfwslKHRvg79xOfCv84Enz9OPE244ddHKkz/shUARsbjFIjBVTLY3AOXuU3g6g7NNJx16xlsEmuubTtptZpu+AG6fHH5VbrIlaxR1Bl8geqp32OA+aSvsgLTMFeuOnTd3DAZJUA6N9CeEkUSOK+loEnFeNh4UEL7BFxsfM5hMEVSucjtomq6vlyK7ZYBY9zb4K1zmaN0C/Ti/22hatDkZPSFSDpkM8N5dBNTj/r6HgjWTinNnMokug6YAbybt1BeE2QdEbEgewtcsWjHxqZztwueclgafPl2UinmSaM0aRV3gTYAFqgvv5eyHHP9JNAFx91kDujmZd31N3pagL0M2oGIOp9r1mTd5lA6RDgzb4HuV7Sa2wPX4q/o6f3UGX6xNYIvFqrq3wRc8oQioBYmH0oiLNtkCVPejjQWA9UtoOccrZgEv/gx48rv6cWKBCB10CD/R4mYNuM/rNSGOxS8B08922gqEJWJDolA6eS48kbMN04Cmk06gUHgkpusLZOMTJgTqVeWGHKTraKLNX3E9PW+LaPBNqbS2kgOaNPrazoeElOEVpgiPxHTf0m6WVpVLB2rnuhtPKa+lZYOFIN3b4ItAiIln9wItYtFqED7nbgByoHks4DTW+ssU4J3bzPquX+T8NVXeCQNU3df5q0V0fs7WsGA2LHF1WawfBzjn/vQPnICWTsSCpmySAk1T9RXZGGEaUI+HFRuUZpMUBt4zSIb5UKo2DB3NEiWpuWZ5YMFEOZSoSEveGHVrKOGjdKh0a7I13JReaqZb2r2+Iv6ju74JX0YPtTK3COnmBt9dVB0N+vxo2SCxMgPHnHDyralBJNGKdumrZn2F8YoZ+sX7F63OIAkDKugf0wIX2Q2U2MSSl4F5jwD/M/T8ThWA8KkL3Cbo1VwP/H5nYNkb+nEJn8HXInxLjlkYUEosJdUBvHuH+V54qYsEFCzuhTd3qAi/0WxAOXcKiSg0Z6KZBgCSFnRgJu18Hq+CU6RlmOuNq4F7DwLqF5n1Ffcr2aoHkB6lQ0D4Ym2KFNktUCzWvQ2+bAR0gSyxSCtqnX+6Ret34U0GySYfWKAIU4qWmMgVdc4GpTNInrEluvBeVS6hLm6z25vH1PPGTyNYITqTC+8ei8LZLn7RSYObebN+nA3CF2NriQhfGFAKFfjZc8BL1wKv/op2TErSQaEGn2fMPPPC/wB/O9J5YIlJ5DRorb4+cENam8TNd/YDwKq5wKy/mvWlZroJSoeE8EU8RdiS0qcgd2+DL7tIOiMj3LB4pVPRp1u0/jxbKmdL4Zhl91nH+YtFUF7t/KMgOhFEoi5wCmIWGScmZOLp0MfJctDq6y4YaoxEDtKZEGij280jZorpuPe/2oLDr6MifFffdMJMNYqH8jQZQINn8Ak0mH8+6M4tnXKuv1ekZdjMRIfR9Uv04/xp0Lpr5nHibtaLlu+3DPB63hYBWcuV7TrvLGXB4ftjW1vg+QTd2+B3UA2+e5PKKhwDSkER1BROm06K3kTiej5PTKJ4Jd3gUwK8sg4UykF4TaYUQ3GNymvcAJXOyPjS2ig5+4BDaRgDvK7nZGqJ4c+l1mWR5HkDOuOVcq6/MLYmAypyyk28sY1X5M2HvuaxYg5SA6YNLh1o2qBs0qDFpljZywwWrAP+ohaAsDbbG7OZbmEhfC8WR6BmQ5JubvCbs+X8WrdRMvjxqqzRUYltCqegGigIX3YbdUEyYYDiVUC8Wj+pkv4FTgzSmbhKgN7zRvxmvMrdoHSbr+BACYgOyN0YTZytt8ANFdLiNyt7O/EUikcSr3b+aekqV1eRMWU6N49eM1FmFjESzzusceY7KYWTaECpKafeGiIkPuSAsVpaRo+38RnWptcixTAf0knHONeJ+6YDLK6+5dXm65v0e1uRwS9OOpqAXq6bS5pU5UC8wpAXbBlUFIsmkzQ31qK2PBYTI14JlFfZcbbGIi2LqtyEdG666yt0oFBQ4l5U1LoBdNMG1Zw1dMbNd7Pz15Qh48V0aswbqtA3XuH8S2vusW0RkZgDpviE5xX1df5S5kN5tfnc/FSR0Tt0x5s8PhvqRZxbWYV5rndYInwPjBkMvjgvYUso87eswnx989ZmZPCLk0RzdrJSUUS8ilgIQszSkY0mJaAnkK0W4QuDLwwoYVJ5iJlQ+Seqck0Ll1rdKa5RvMqNkRCCdF48xYBWqdkpQPb6m3oK5VBQVfQFXlZpoH/c41ARKLVvvbjHFNpD3H9BX+ruhfhdSronQI//5MU9CB5fWbl7fTUbasFFWpv148TGS5lnMng0zR3bAHoI0r0NfrKNlk3jTaoK558OpcmLKxY3ozS5ApJSFu65jTrELBnFeDUtS8ejfzRjvU6K29H0zekoqUutE6hSGFAdYpbuhckg2cZTqC0xbCgzMVdi5Waw4K84Njbpa8x+T7dBeTRNFWGTbHf0ZMx8L7z4BKGiG5AauDUQGriBBprSCefaMuZ6UBbet3H+Sjn7OhHXl1KIJ8aWVbrzQXd9ffU0EcIvQrz+LYTFlYPwDShNRhwmTlGUTlO8DMBZ4JQuhmLCxasIi1amU0xj29waA+HCW9ApWtTu6lte5SwE3aL1B9DD5Jip1Z05OhAQfiwOxGJmg+QZDjEnTQBACi5rG7gJ1F5p3iRTHc4cBwhgwV/vQcxAAtencNpUJ6eTWX2NHpRIkSWmOYrfTSf0Va7+QCwJsJSHn0EXgnRfg+8v2KAa/LJKPcL3OFt3cZmQomxAtcFKkQJHCAylOgAwd1IREJ3Q17TA/Y21KGXsFGPrBW2r3RiJ7vrKnK0J4Vt2Uky0SBkyFI+v3IzS0glnzgAWlI4wSARKRxgZXWZRDg1G4I3j1c5r6wwvAsIXdKAW2UqUWbzKsC4Szn0AzDESr3FZ39zfUUkm7ayFSkF16taxP9XSABbKKlyPpDLi8LeYeBeT2KERcBe46Sb5gkgkxEFwMf0tEEw0jXDL4wbEnMP3GxC+TRsG7qI4Cp2SbHWuVyxGQPgW9Jo/CEpB+JQWCDZeRjppYZB8C1w3HzIZ535QHnIj03aUGImH8A3gJi+F02BAk612qZYiTqO7DqkO5z4A5g1VHJeir039hL8WwAgAXH3jhrmTbAfA6CnIIUj3Nfji4lX2cm6ACeF7PKEhMOQPIumMV16jKkL2BKUiNtXhGG/AOTctb9zuZLuUxc18tN/V1m06yVan+pKyOaST2TiG8frKFIlhgefliRtSb+UAL2WBe0F8AwDwFjiRs/W8Th3t0Qzyg0r8CF87d9qy96KsXH8v8oKKurljUZAoBzYrTHUZSen6Er1vCsK3yhTyF38ZKD4BAEyAUNwLcT8ihF+E5KQC1pgNvociDDysN1krzfSEv4eMTgcxiSh8XtK3aLUZJ+3ONQAIWQN+l1hH/1g82UdeBKbrm4PoDIg5L/9c52X4A7zEzBASwpf0tZkP2hRD4W25FB+FaxdBZtM99jjxECkSm5TIHAqVsN5yri9hbVbUmRMqbOppvNx6kSpsMvgW1zdemfV8I4NfhMhubkUd3SAZg7Z+vt+GsyWkI1IqIHMWLcEtl4N0YaWJefw5ESHJKM3klsubg3asxQZlW+wTi7seH4XDl+aOjcenpfhsqmflrC2Cx+eBBSKlQ6Ey8uI/xKw4U2aTf+4YET5zWmcY6RQBAIiABXCurTFG4gePOjDW5gNjkcEvXLzslCqngMYG4RsNvphUBnrCBuF7Hkmtu9sTOHyhrxFFSJOKksJJCSLZZMhYGXEJIRkXeAGcLSWeIs8HU51DOpGLmCnzQVS5WpXdG+5brNyZkyYQkkMHltM8KFGkRapytUH4hEJHv3doGhuvpMW2Cq32jROytnK8WRMYE1SnIaEiJOm+Bt9LXawmoDQp9cvUWkGeVMZFW4DBJ/GwHdJEMU2qNp83oMvn9iN8SsyB0kPGj9IsXHgK5VBRZ9FnhUjpUBdtDsIncvjl1QR07fP4THEEKsWXY2QICL/Mneumjc+mY6dMi1LSdOUYiXYz83uSlCItwjMwcmpDDFlxfgBg8vjEvYgQfpEiI3xbt5xngvNy/ZNKe0MLMKBevxndpPLx3KmO4F42qY6s20hOayNU5eZUd1J4TSLPXQi9RqnK9T/VjIrwbThmatZLvMpFtoTNgYrw40TKLNkunZspaCttJNQUTko/n7ysOBPFJ87NYu6Y7ptNSm9eZh4V4Zs2X8nbihB+kSIXJ1EyQ+QFDgRPljyDZEDXgBs4rqVVd5ZTDH4yF0WAO2lxKkm25Y6l5ImXVxGKchLZsabUunQy+1AXCsKnxif8VbnaxmU2WRm+QKz2gRcWdKBAdF5sgILwKQZfRvgEnpsctJXiP+WG+WDTxjidcECCR4ua5oOUlqmdOx25dKA2w8sPAGwoHWpaJiW+FnH44YjcodGUW5+TS+1OmKDJ4i+0oSD8eLUTR6A82Ydazi8jGfGeSqzcfSnbg4rovLFUSqeK4EFJee2UoC0lX15QOJV1zn0zxnSIufV5aYMG/pzq7vs5fGNMRxzXwMvnbGYEik/mmCmonRJAt6Ht8gL+pnMjUnF5VbmUILModNR5A/4sHVPQVlxfAwsRknRfgy+nZVJQjzypAIPBlw0SBeFXwdj4KS+X2oJyAAweibzAiZSDsSmbMLaEmEOp9M0p0jKhP2msafNVGaQgyswG4afasojOhEBz6DVmQJVyTIeAmHMoB0NGDzXAm0cHmoL4EgCwynoheodUOpBSBJdDHVrQw2Xl5ntMBWMhSfc3+BSE76/mAywMEhHhG/usSGONmSG+6k7xnlFfggsPZItBSE3ZKs2oJ5Mq0IMiLBgWg1NURqDtcvQlGiShd9D1zYnpVOnjKUnJgBoNvpwhU0WvnrWhoIyUQ0euAaUUPZXXOBlDVmnQFjGdTCq4MVvKAizIT40rqzDoK3mSRk9HQZmRwIJB35Ck+xp8OSPCxhX0DFLA+JyMHiqHTwgc52XpWCL8QAOazEUcJoMvqnLJPXqq7BGzeC9wrC+vnYquqU3ZSKmh4ppVZt8z6iviKUF0lYTwyWChitgfR07T1Rw3k8q9Zlp6TT6uIcDrb5dgRekQ03St4mume+z3DgnnFoubkXje3NHE1/KuQ4TwCxcbhG9DOaQ6cnlCytOm4i6KoORoxwmbg7UBJSK6Qqpy45VZZEvRl4Twfd5WkAFNJ+lBOu+pZuXm9L5Cr2+Z4dzyED5lPlTS6DUZhOhQsJ9yEO8F6Uut9/BQcDkBsMgAyzR3ShRfywkcUwBABS2/P2c+iOurA2PS2AjhFyHJNng5xBR+VzYcgAbh+4xXJqlxMducsaIvDKV1LilgqgraEikdnglGHDlVuVSPpIqAmGUvw4CYUzIPa/JefJsvhXIoqyCk96koHZ3H59vMAs/NlwNPvb4Uek2mwbT6KjYorb6yATUgWwDZADo1iE8IzBfkHZrusXRc0qZjQ5n5PZIgff3zV6NDSNJ9DX46UVggyzP4AYvRn5Uhvq+SpJR2ZcyPljYHkttIDYL6KB0gWI+cgi5KUNFt0WyVaWEy4rZ0ipzBQXThTZtZRoEqtYvW770Q5g4lgC6qZ206dupiUJm0s+FTN7O8oKLN9aWiYBNtp1hvVO/QCPKItFKeV2/wJAuOr0WUTuEi5+8KY0ANngAaA2oR4E1JaVem1q55udTEyeoZJOKkEu8F6ZujAyFlz3sSETFGQgqKUxG+hK5JCJ+5PKzFBuXFSEKgdGyQbQ69RjH4hPngoXBqSq/s8RGCoDlPprKMmek29bh/vRG9Q1MwmFqsVmgaqRHhW7TWDkm6t8HPWQSaYJp/twcQGMhS8tEEDpRUhEEMBqt4WBLqMSAOK0TnW4hkD4piQImbQ8qHrm14WJsGbuL7prFxylgijeCn18hBUM18kGkXgGhsqUFb38ZXipiOrXdoUyFtU+1r2sxyiiJN+hI3kpCkGxt8BaoMdLVVgSwiqtSNzeFADQFeucmZLoDDuSWKUPH9Gn3lPvvGDYq4mVl5UBYbqg1FknNcG8rBJmhreS9MaboeHWgKMieBMreSWXd9ZdoFkDYHqr4mQ0dMDvDfN/FbeeNSPgrKxjs0BcUtN4c4dZ7J9I8mpTeTcQCoXDCn0zckCcXgM8aOYIwtYowtZYz9TPH5NMZYPWNsnvvve2H8rlb8CxzQTGyLwJAfVYr3lMeVg8FV5hTOnABZAAWVSQPgtAUj3qeeW45HYuAUc3K/TdWdKcU10wVB/QFIAr1m23UxjCwdsWjlzJCgsf7jUvLwc+gUzb3IEOsG8igdm7ljCtr61lAYMbNACorKidsgfGKAt6wiOAsqD4xprm9Gqt719C29wY8XewDGWBmAOwAcBmAFgFmMsWc555/6hk7nnF9S7O+Rxe+GAYZgGjXQoqJ/CAiJ8oBrOQUOyC1Yko8JKFCEalL5gnSmc0u1Z5/baQxOySl7FpSO0cvoKMIgmVAalTIj0jSB94I4d0ycuFzlGgZFIn4vZkNXSRuJTVzJ2POmH13fvPlLWW8uEufcofGU+kred3KzRt+A+RCryh8n66u7vv5zK6sEeNpZs7GyYF2KlDAQ/p4AlnLOl3POEwD+CeC4EI5bnOTcfPfGkKpnLVx4Y1aGLa/p57mL5GFtg3SyS2wM2sq53xrjZUNB+cca+X6ZRjAF6XyBQts6B8q9MHK2Hblz0tQtk9wQTWpOp6VIAigdGwMaJDnV6oQiLcqctDGg4n0/fx441n8vbD0+ynzQXN/Ae1HaTJ0wDP4QAF9L/1/hvueXkxhjHzPGnmSMDVMdiDF2IWNsNmNsdn19fXFapRP5SEZ1U/O4NMpEsaEnLIOKQGGLVqVDoEHSITqLPisUhO9RUAQPyhvrp0gIQVubIJ1Vyp6OIgkySATKIV5pqHL1B9CpMRKdkfEBAB1YUG3UOn1tva08ulVH6RCNYiqRf25hZEz5vYEgHYS+sicpv68aS/V8Q5ItFbT9D4DhnPNxAF4B8HfVIM75vZzzKZzzKQMGDCjuF/0ZEUCAwfdzaRS33AYxU91cRb48yRUMGSHZUA7yIhDuKFVfJWJ237Npc2FjQHMWuMmAEmglb4FTKQfV3NF4A5Q2xpzntkuwoUh0AEBktFGrcq28LaIXJ/ewkf9SKT6qvpSnhPnvm/b6EmIOgeu46yP8lQBkxD7Ufc8TzvkGzrm4Qn8FMDmE39VLoRSJ0S23cRt9E1CLkIgFJiruL0gHa0pHYUBJVbk2XKXNWFfvDAExGw2ov5y/nd6jJ1DfIINEmDs6ECLGxqSNT7fpAcjP0qF4JDbAwmRAbbwtYuV12g/GdJ562gEd1BoOawDgp1AtKB3lOvbdCxNYCEnCMPizAOzKGNuJMVYB4HQAz8oDGGODpf8eC2BhCL+rF5XbSEpV01EOmVw0ZeMNWPH9OmQQ5JEUaWw9HahVufLGp9ugpMZTOTpozs2f9qrlxAmbJIC8+ERQXYZNNWoxc4dSVJZDr2nuWY4OmsymvLlDAQtUvt8HFsJ44JCfIikoA0l3fSX7QH1eBoniIwBCWzAWkhSdpcM5TzHGLgHwEoAyAA9wzhcwxn4NYDbn/FkAlzHGjgWQArARwLRif9co6VT+zae4YbE4ABYSYlYhgyLdfaugbSFBOhWiq9GPLQjhK84tFYSYNRtqXk0E0SABziI3ZUGFFRTPow4t6hHkNF1/xknGjxRtvEPKZmZREVtekz1+KDGSIrxDUoEfkb7M8eo119ebv0VQOiXOxS/a4AMA53wGgBm+966XXl8D4JowfossSp6QYGTEw8m1k6oQSodAFRVEe+g4UD/HTNl0CtkcCjH4lEVg0MGqJqLDedh5ztgEUEnU1yYobnUdLKq/lWm6FjGoPBrBBuETKBLxtCtjSqRMt+oMaBBqV+grxvoNMxWMWTdws9mgdOdGnOshSTeutKUaJN8iEK/DCLTkTGxNNoI4BimQ5VvgsTKnzWuxm4NfXxvErEM9ecG/uPPQEpJHYrNBFbD52lSj6oxMHmdLObc4QV+LWoAYwXMI8kisvIGQkhny4mA2AIBC6VDWpkTp8LRh8/XfC83coXidgRRUZPALE3Kur+/Ci9ehUzqUsZTyeN8iEK9JnK3GeOXlwFMQkk1xkl9f1Vg/pWMyMjYelC9oCxCrOwtAwWHPHRvDrMtssjKgFny/eN+fjhgYXM0orplu/tpw4n6+3wbcFOt9++avLgXZdkMNSbqxwbelHCTfPtCA+t3GQlCwTdDWxoBSJpWu1NvfskGDVj19bWIkPn1JKNh0fRWUDilDxoamsQiKF0KRWDX0U91ji/TJooK2FvcirMwxG9ReyIZK2aAA5D6Y3GZDtWAWTPqGJN3Y4CuCdMVSOoG8G7HQRju2QEpHjCct2kJcYhs6hYAUxXidvhSXOAgp2rQxplA6WsrMT69paBr/3NGN9fS1CeLbUDoFAAtSlk4BadDads4+xBwrg5NQYXNuhCItkrdF2FDz7IMNsDB4GSFJNzb4ipukvfA2BpQwUWy7WsoP3SgE4VM2B5LhoPLnKkrHhoJSLRgLSsd7QhiRgsqpwtTkwCvnQ0BbAb/HRwr4FzB3SD3uKZuvfywlnmJTuUqokA6sFCeMpVzfvBROAgDQUXyB94Iw13WbekTphCxKRGdDkVB4Qs3iygtWmjjmUupr42IS+f6cDo0Waa/iNcXbYswJRpLOzeRBJRSLi3p9y2koTehhZZhVtQAp31iNUfTPs1jMMTRaA+rztmwKErWImeKhBnkkRDBm9L4pKbK+Ii3tOvZTnYQNNQcABIEFy7TXkKR7GnzvhhbApQGuQSLQHp6LaWNsAyaVsqslkdIxxRxIlI4/4KTj+31GpiB9i93MbGsMkooFTtXXgPAL2cysuHZbj89G3wADas3hyx51AdWoFNQOWNCXFrEB7fz1eZI64BZ4fYu0DyFK9zT4eeXmOtfVVywB0G8SyYWnGPEAdGITBKXw50LfYvusFMMFAwjs7+7fdITu2vtWgEGyyZ4Qr23GFl30ZEGvifdilE2nkA2VQAcK2iMvCFqsFxcUX9ONJVA6xcxfm8C80MOG0tHVA4Qg3dTgF7EQvbFExGHtYoYcTAPoqEenb1EtGywWuDi2jnKIUxa4BULiHMriGfJ8KA+4byWq4bC6Fz76BwguJBLHjfnBTZHeYSaFnI6opLnui5Go5o6/clW81oIFilck5plvcyDFwSiemeyRECkdE2AJSUKptO1yolyIQahS5cKXA4nW/LF+Iy5eFxuU8S9Ea8rBcjOzQpWE/jiUYhSKB+UP2gIab8Bf5KJZiHmcuEXDLk8Hqr6WFJSqMVwQqnR/L5lMYsWKFWhvbweS2wKHPw5sjgNNbouq/e9yvrPQ17Kq74HA4ZOBRYuy733jL+qxyaHOcevTwMaFzjU8/HEA/fPH8ozzWXVf57NUH+f/jbX5Y9PucVIDsp8d/CBQoRhbs5czdtnX2YrdfW51rnGevts5YzfGgIaFDk16+ONAvF/+WPFZpXsuqW2c/zcojivOu8Idy7nz/6q++WMrxjuffbkGYOvc63uH+vpWTXTGfrEaYGv1+gZIVVUVhg4divLycvNgV7qpwQ8yzITcesDdHDZrjluMAaVwiha5vuJ71BROsr6UFE4/wi+WgrJwiQP77lBSF0sZtDUhZhH/sfGgcu/FihUr0KtXLwwfPhysfTOwiQEDRgLl1c64tdx53X+n3OM2rARa1wODd8++FzS2dQOwOQYMHJXddNemgD5DgdoBPn1TwNoE0HsIUDcQSLQA6znQfwRQ1Sd3bKIFWJ8B+u+cfbramrTzuu8OuWMbVwPNFY6+wuCvg6NP/xE+fTe6+o50sm4yaWBNEui9PVA3KHdsqgNYl3R+r2YboKMZ2IBcnbyx7cC6FNB3R6Cmv2PwV3cAvbYDeg3OHdu0BmgqB7bb3Qme665v0xqgSZxbTNLXvYYG4Zxjw4YNWLFiBXbaaSfjeCHdk9LxN5QCzKl1pKCtwmUzUSRWwR53jDadK4BGoCBFT1/C5lBQUzYbHWwoEgpnS+DlKQVzxVwz8Tp0Sif3XrS3t2ObbbYBYyzb4lnuWcMYAFXrZw7A19smaKz/uOKvsqW0xVieUesbeFxGG+u9R9EhYCz5Ouj0Be1e+HUQf7niWbkKYYxhm222cbw8C+meBj+QNw4LBRdA6WgDhT7KwUvnCtocWO5zL6moXehhw4lT0vu0uck21zcoaEvhbC2yXrR57ZZZOqzMdy+onK2NB5W/QbE8I0U0iv5mZlpjKx+XYECZMCfiL8XQua+p+gYaW7GRxLLjgnSAT1/xl7I5AIZNh7hB+Tcz3aYTICzv2pilmxp8lWG2Qfg2BonK2YYUyEonnGPJN9vkkcQk5q6klI7NpqMztgVQZjqPJKigyypoG6CDTAV6+haZ5hgIFhRjVQgfQQg/gzyEj5jBiAuDpDHiwtiC4cADD8TsOXNzj5F74Hx9GZOOka/vvHnzMGPGDEkPKmoPMsx+L0OHri2ur80G5R+r9RzCk25u8AswHIBmgfui+95YQs4+hXKgGhl5nPiebqx/cyBlI9j0WRFprxoDmpcZEoSYY/DSabVjffciVhxiNuobtDnImzSA4AwkiyrioAwO1XE9AyEtZaYx4iqErzWgMWkc1EYxb9OxGQujR5Jj8G3plNAoHfn6Ms3m4L++ARuUavMN9AbCk25q8FUcflBmiFjgNii4gCAoqSeLP6uIamQ0iNlmcwCIPLevzkF73KCsogAknqdvwAblT9kTFaZW3haR0olXqpucWW2+vuNald3rqogDEGjRFIn+uF988QV22203nHXWWdh97EScfMGVaG1tz/nOxT/6KaZMmYLRo0fjhhtucA+bwfC9jsINv7oRkyZNwtixY/HZks8BztHS0oLzzjsPe+65JyZOnIhnnn8JiWQa119/PaZPn44JEyZg+tMzoPQGrDydAuITOZRO0IaaKRzha/UNT3pQlo4OpflQcFAqoCoNj0rpmHTI01fjOaiMYiDCV2wOSuPlN4q6YjWVR6KhoGLlPi9Dc81UBrSjmaiD7eYbAqXj1zeQrvIdVxTBUYLtnjeQr++vXvoSn67aDFR8kH0z1eYYlPINuYNT7Y5RKm/Qjt1j+9644YB+WT2F+NDqokWLcP/992O/qRNw3nfOxJ333u+Oc/7ceP016L/DKKTTaRxyyCH4+OOPMW6XIQCAbbfdFnPnzsWdd96Jm+98AH+95be48cYbcfDBB+OBBx7A5s2bseeUiTj05Sfw61//GrNnz8Zf/vIXYONyg6djgfApfL/NRsJ5ridg0kE5lha0LVS6KcK3zLwhG9CAYLCW75eRoskY+Dn8gCCoEuFT6R9TkLnA/P54QOZNxtLLUI61ocFCjg1oxwbdC2r6rymWQSnKUSHCoGCe7Vg95TBs2DDst99+AOc4+8Rv47/vvpdzzMefegaTJk3CxIkTsWDBAnz66afe90884XgAwOTJk/HF16sAnsHLL7+Mm266CRMmTMCBBx6I9vYOfLVqTb6+gUFbpjDMGm+AlNGTyR3rXQcqpWMI2uYOLjml000RfgBF0tGkGGvJiavQakejemyeDkHGwKZQzMYoKoxtrBxINyjGBukbVFkJ3+YQhPBVRlGzSdpSUCQPymbztUi1THUgJ0VXq68igB5IQQVlTOWPveGwoUBzObD9xOybGz93kPvAPXIHr1/qGKoBI81jG1bkI1CfAfWyRFzjxySK5POvVuLm2+7CrDlz0a9fP0ybNs1NIXQMWmWV06GyrKwMqVQK4Bycc/zrX//CqFGjnONsWAakk3h/6XpJBU3QlpyB5A/aiiwdYtDWJgtKt+lQ4ykhSjdH+H6u3cKA8ozbKc8w1lQJaoUqKYViNh6JJd9vra8fXWsoszwdbBAzIebgjbWoBQjyXoqloHTzLO+4BH118QlbVEk1igQD+tVXX+Hdd98FwPHo0y/iG/vuKwaisakFtbU16NOnD9auXYsXXnghe1xxLPm44Dj88MNx++23g7tjPvx4PsAYevXqhaamJrO+1OtQTB6+970wdFAEeKOgbQESRDkEUiQKAwrkj08ncvu8iLFW1IAKMQcUigXq63PMRPMp/2QJpHSItJKJnvDrS91QRRA0k8kfS01ztGpzocqu0mzUVhQUdYOy2RwsagFskC1XpWUWTjmMGjUKd9xxB3afsCc2NTTi4osu8H5//OhRmDhuNHbbbTeceeaZDvUj9BXH8p3HL37xCySTSYwbNw6jR4/GL353C8AYDjroIHz66adO0Pap/yAwEJvnkQQZUIugrU0WFBRBW52XQQ6ghyfdm9KhpgKqFq34DDW+saWgHIIKxSwQM+AYUflcCkHMebx8kbRHEKUjfjNWlX0/FbRBWQSOi/agAlItbbzDwPoJ/3GJlI6nQ4DBV+XWBxpFi7RMw9h4PI6HH34YaNsEbPoCqKnDm2++6Xy4+iM8eOefnFYMsjStwRfvPw8MGAgAmDJlCt78z3Qg0Yzq6mrcc8892bH1iwEw9O/fH7NmzXLea1jhtFEoQN+csd7nQjRGPG9sAIevpHQsKaiI0ilAbNMngwyof5EHGiSqUbQI2gYhUGUQNKDK1JbvF5/LY3VB21A2VMJYbQCd0rnUJrvKclMnxyeKBAtBrUFUyNaKptEVXtl4DghM4cw/rk90QVBqJkug96IL2vpy66mbg3Ys8V4EelBRlo692KbsWRmkYhatBUWiDcQWo68GVbJY4S0brKiMgLzydAL5QVBdFhTz6WuRXaXzXlT3mEpBCcOcR69pjhuoL6F2wSafW+kNBKFKFeWQ3RyGDx+O+fPnS8cVxxIvDQVHRQVBi/ReVKid3GLCMNbmXij1La10U4MfxInbIvyQDb4RrRKDoLEgisRnPEJJ4bShdCxQMJB/flYI3zW2pOBqgMdnUz0rHydnrMrb4vmGPNVh5w0IHWV9qZSONWIulnIoNpPFpho1oO+NVSwjKBBrU9BlkXkTqEOUhx+OWBkkHUWiQqBUfrdYSqcQCoq4QQWhSuXYYjN6Ao5rq68fXVvRa+L6+umfYvUt0tuyftKT6mlIGqRIMYoCgeYZJYs88SCjGEY2jVJf5BtGlQE10krEDSpvrI7vt7i+nVBp200NflBAr0OdyZKXeSMWrQqBEhF+qkOd3kflxAMphxTdyNgGQckpnEVSOkHdKpVZOq5O/o0nUF+bjp0WlE6QvoF0FXFzCLy+CroqiNJRGhnQjHhQSmJQJai2kMnPiVt4GSqjqKU9CAZU65EQaSVrCkp1bgp9VW0YAnUIT7qpwQ9Y4EA+urVCzEl12mAQv1tUGp5loFA+jnZsRQDHbLM52GTpWFAkKcXYoC6YSr4/6JoFBW2LpHRSATEHgLg5GLJ//O0+VN5WUCogALURt/AGyPn9lkHbQNSu2qACDGievvqYg1kHm7EF8PKU6xt1yyxQ0gnk9SkXKD4vt16FQIOydAJ4WECBQBWITteLPq+veokoEuFF5G18Cn0DKYeERXGSZkNV1TmojLjQL2+sRfqkfCzArm4gELVrAv6kc7OhGQPAQmBaJuhGxvnQf2C1oeMcX3zxBcaMGeM7LiwyWQJ4ecoGFbQ5uMe9++678Y9//EOvQ1CnygKKqWbPno3LLrsMAPDg9KdxyZXXAwB++ctf4uabbw7WFxxPz3jZaTfhHTcolhGedNM8fFue24aH7Rs8Vkb/SnpCQzmo0J/Khc/Y8MaGFM6cnH1bBOrXQVfIRPVIikw5pT4wWry26VWk1DcE79DGK0q25Y/Vcfh5lIrGGyDRKbqccj8SD+a5U+m0z/DIvLwEeoKMrfOhXwmAMVx00UW5Y21QewGB7ilTpmDKlCnScf2HDfa2nn7+ZRxd2Q977LGHXl9JUqkU4vHCzXY3RfgWKFjZktfGgAYZA8vKSpvsn6KCzJbGKxCBFpN/HoSYVR6UJj5hZUB9FElB15fAywd5h0HHDeqWSb0XVBpBGVgFghGovl97Op3GBRdcgNGjR+NbJ5yBtjZn87zvvvswdepUjD/wWJw07RK0trYCAKZNm4aLLroIex12Iq769R8xbdo0XHzxxdh7770xYuxUvPnObJz3vQuw++67Y9q0aZ4Oj/3rGYwdOxZjxozB1Vdf7elU13cb/PznP8f48eOx9957Y+26egAxCVkDS5d/iUNP+R7Gjx+PSZMmYdmyZdI1c0zfn/70J4wZMwZjvnk0brn7bwCAlpYWHHXUURg/fjzG7HMYpj/zIgBg1qxZ2HfffTF+v8Ow51FnoampCW+++SaOPvrogGsIADHc98hTmLrXPhg/fjxOOukktLa24p1ZH+LZF17BlVdeiQkTJmDZsmWY98mn2PuoMzFu3DiccMIJ2LRpEwDgwAMPxOWXX44pU6bg1ltvVfwGXboxwrdBwVQEGtCvXXncAB3IqYAVAE87/XxkqiedVKRl2mS96NA1Maho2wEzUF9V64piKR1VAN0mnmKD2nVggUAd2tJ2Kn3f/iOwYSkQr86+l0k6rZDLa3PpkkSzs9nKx1aN3W4sMOkcLXe9ZMkSPPbYY7jvvvtw6glH418zXsPZl+yJE088ERdccAGwYRmuu/Fm3H///bj00ksBOA9ff+eF6ShjwLQrf4dNmzbh3XffxbNPPIxjv3sx/jfzLfz1/gcwdepUzPvwQwzk9bj6hhsxZ+489OvXD9/61rfw9H9ewPH774GWlhbsvffeuPHGG3HVVVfhvoefxHVX/yRH27MuvAw/+8F3cMJ5V6C9vR0ZEWdzPYc5c+bgb3/7G95//33w9Uux1+En44CjTsHy5cux/fbb4/nnnwc2foGGDWuRSCRw2mmnYfr06Zi62zA0rlqC6iqpSpxzBAXFTzzyYFxwxc+BeBWuu+4655qctD+O/fa3cPQJp+Lkk08GAIw79mjc/psrccCJ5+H666/Hr371K9xyyy0AgEQigdmzZ+fff0sJBeEzxo5gjC1ijC1ljP1M8XklY2y6+/n7jLHhYfxuoAS5+4CdW67kYYtMMbQ2MkTDrNSh2JRIm5YChbRWUFUyB4yl8v1WGUhFUDqZjBMHKWaDilkGulXnppUi+GBDTvlOO+2ECRMmAAAmjx/jtDgGMH/+fOy///4Yu/+38ciT/8GCBQu8r59yyikoi8W84x5zzDFgjGHs6NEYtG1/jB0zGrFYDKNHj8YXn3+OWR8twIHf2BcDBgxAPB7HWWedhZn/ewcAUFFR4SFrp8Xyihx9m5qasHL1GpxwxEEAgKqqKtTU1LifOtTWf//7X5xwwgmora1FXV0dTvz2oXj77bcxduxYvPLKK7j66qvx9rvvo0+f3li0aBEGDx6MqVOnAmDo3asO8TIJiGUvUt41m79oGfY/8BCMHTsWjzzyCBbMnw//5tDQ0IDNjY04YO/JAIBzzz0XM2fO9D4/7bTTdHeLLEUjfMZYGYA7ABwGYAWAWYyxZznnUjQC5wPYxDnfhTF2OoD/AxDOGahEZ2QoQVudsQ1M4SwmaGsw4uUSklAaW/H0JCIKFp/l6VAMpWNBkWgzb4qMvdhsqDabmV8Hr+Fdkd6WTaBbNXa/y4HyGqD/8Ox7bQ3ApuXAtqOACtfIpVPA2k+A3kOBugHS2M3Aps+BAbsB5ZKXsOYT6PLaKyuzG11ZLIa2tNNZdtq0aXj66acxflhvPPjwo3hz7hJvXG1tbc5GIo4RK4ujsrICIuYQi8WQSiVRDgRSUOXl5RDtmJ0Wy+lgj8S/eWljA8DIkSMxd+5czJgxA9fd+Eccsv9eOOHsCxVjJc7fay/hUwEM0664AU8/9S+Mn7I3HnzwQbz55hv+QZKoC69qa2s136FLGAh/TwBLOefLOecJAP8EcJxvzHEA/u6+fhLAIayQR65TxTrTgkjTBD2Cj3zcIFRJ5NozaYfmoRgZzoOpF/9xA3WwQfiuQfLzmDod5KC0d242iFkV6A5C7f4WCJZ0ivhN+fflz3RjdccN9Ip8WCzoXmiDtjx3XM5nvrGqQibl2IBKUHdsU1MTBg8ejGQqhUf+9VyAvv4gqPSb0rg9J4zGW/99F+vXr0c6ncZjjz2GA775DfXv+1I4e/XqhaHbD8bTL74BgKOjo8OLJ4hrtv/+++Ppp59Ga2srWlrb8e8Zr2L//ffHqlWrUFNTg7PPPhtXXvI9zP14IUaNGoXVq1c7TdwYQ1NzC1LJpO/35ZPJXpem5lYM3m4QkskkHnnkEW9or151XtvnPn36oF/fvnj7/bkA53jooYdwwAEHBJxr4RIGhz8EwNfS/1cA2CtoDOc8xRhrALANgPXyIMbYhQAuBIAddtihcI2sM2+om4MNRRLA74o++zm8vG7TkQyYKtskSAdVtab8XVUhU1Wf/LFBRjGovQOpY6dik/QMKNUjCeD7M8l8Y6WLp1DHinORz0v+zD/Wn2GlDEgXsKH6hRy0VeXKAwpIKr6Q/xkhp/w3v/kN9tprLwzo3wd7TdgDTb5HSpALxTgweNAA3PSrX+Cggw4C5xxHHXUUjjv2GGD94gB1c4/70L1/wfcvuQzX3/IgysvL8cQTT2DEiBFe0HbSpEmYNm0a9txzTyCdxPfOOgkTJ07ESy+9hCuvvBKxWAzlLI27/vArVFRUYPr06bj00kvR1tKM6nKGV19/y3deKmH4zZUXY69vHIQBAwdir732QlNjAwDg9JNOwAU/ugq33XYbnnzySfz97ltx0aVXoPWGWzFixAj87W9/Czhm4dKlgrac83sB3AsAU6ZMKZyA1GZPqFClDQoOgWtPdWRdbdNYJY1ACMSGhUADs0g0+hrTPRUbaqC+AZuvju/3U2+BwVXuzAEZTVM9PlUHzqCxuuMWS+kEtUAAfKg9GIHmj4U2B3748B2zjdMA/PSS872HBV188cW4+OKLgc1fA+2bnQAwgAcffNAZvO5TgLHs/+E2Ynv9CU/HBx980Lm+6z7FGaedhDO+K9EpCQelN69f6b118kkn4eR9dwbA8Mtf/tJ7f9ddd8brT9zr6CA/aUzK0vnxj3+MH//4x8Dmr4B2xxAffvjhOPzww52x9Yu9sVOnTsV7770HtG5wxtfV4sADD8SBBx4IpBKYdtqxmNbHAaqeHh1NuPjcU3Dxj68BKns576WTwNr52G/fvXLz8AfV4b3n/gFsNy4HEHotp0OQMCidlQCGSf8f6r6nHMMYiwPoA8D3hOUQhRqIDUTMikXLucZwgLjAA8aqaA9VkNmEKjMEgx9TbA6evgojblNFLP8ukA1sUjZJ8doqCOofa9nWAMin2IqldALjEwE6CI/EODbAG6C2H7BJyxQZJ0Xl7FvkwKsaoql62ATqYKKrFCmn5LYGqrGqwrYAD0p5bmI9qR4hqdI3PAnD4M8CsCtjbCfGWAWA0wE86xvzLIBz3dcnA3id8xKeFdnIBKE0hTHwnuNqY/AVvLFfB/F/ClIUr2N+fldH6RApEl18Io/+UV1fxUYSGNhU0FUeYragdGzuReBGQgkGq+6Fydui6CDRYHk6WFA6JIrEYEBVmwO1gte60ZqFR6J8rq5vrG2NQVBrBWq7BFV1skkHm3hKCattizb4nPMUgEsAvARgIYDHOecLGGO/Zowd6w67H8A2jLGlAH4MIC91M1TRUg4qhG9BkQRl6eRxtjaokhhzKETfMCgoaoYM4POgAnh5FQq2pqAMlE7OWJUHpbgOnNM3ksCYg4WnEwvaHILoNYW3ZR20paBKS4Nk02iNqm9QzEG7QSmqfYP0tXr2bFA/H8WmQ/FIAjeHoA01PAmFw+eczwAww/fe9dLrdgCnhPFbJFEFIJUUScCijZUBrKwEnK3GeKkCpkDuRmJjFK0NvkJfLf3Tj6BDwAalOq7NZiZ+xwa1yymH8lh5g8qkAXDi9Q2aD4rNjJTCKaXd6TYz91icc9e0UIO2FkY80IBq+H6dofOnRAZ1lCyY0jFsDiqPRLnxKVI4A9sY+49bgEcS6G3ReuIXQpL0oNYKijx8D7X7DId4j0SRWAZB5WORxqp0KAGlY9XHhlhMFbihxhxaKudeWNBrQEDQNuBeUNtnGDOFVDGHYrwtMdaug2tVVRU2bNgA7hkRClIMwYDaNlrLO674ro0BtaCrAvWlppxKv2s71mZDDdocAjeofOGcY8OGDaiSq30J0qWydEITJUJS0QgBqBLID5J5i9amHS6B9hBj83h5C9ojpii8MhoZC5rGqkcP9fpW0M7NKihuSZHIOup0KISCUiYHUM9Nr+/QoUOxYsUK1K9bBzSsA6oTQOWm7NhMGmhcB1SngMp1znvJNqClHtjAcgFOJuWMrU8BFWtz36tJARX12bHJVqBlPbCxLPf+N65yjrm2PfteR5PzcPPNC3MN2+a1QFUrUNWo0Dcp6dsOtKzL15dn3HNOApXrs9eraR1QnwEq1kn6inOO5W7MDWuAikagukXSt9EpQvPrqxqb6gCa1zlJ5aIoMkhfcW71qaxu4vsbAMQlg+1d35h6zfikqqoKQ4cONY6TpRsb/CIQnRgftkGyau+gC4L6xjKm0NdkZGxSTgs8t6BrJt4rFDEbi7Rs6LVC6xwsKDOj5+DTV9kRNTu2vKYcO+20E9C6Efj9PsAR/wdMkLpEtm4Efr9f7vufPQ88dSZw4VvA9rtnxzatAf74DeCoPwHjz3feW78UeOJU4MT7gN1PzY4Vx/j+TGCwdIw/nQTsfDBw3F+y771/L/DSlcCVy4HabdzzygC/3hs48BpgohTG8/S9CZhwsftbM4CnzgAufDNX32Q7cOO+wCE3ABN+7Ly3Zj7w5KnAqf8Adj8uO3bZ68BTpwLnvQTsMD77/m8Pc3oFHfG77Hvv3Q28dDVw1edATX/f2O8AR/w2+96qecC/TgXO+Ccw6kjnvcUvO7/1vdeBoZK+LeuBP+wHfPtmYPwFznvL33S+/90XgB0nZscufkk6hqRviNKNKR2bYp8Ag6Tkz6k0gi6oWGgqoGtE/N6AGG9jZDIqA0rlz6nXN8CAevqqsnTCCJgWWD9h40GlgnSIOwgx7HhK0RSfQQc5U8j2+lIr0INiGVYeVBg1J4q1qarTCRqru75+wOLNHQoYC8iKC1G6qcHXIFBKHr54T3lDi3nCkc6FLwJV6vS1MhzEzUzbssFiQ6UEbXXGwH8vbBatamyQvkoPynRu8mZmMF7Kh+cUsUHZ0Gs2QKggykyVtRVEg6n09d1jVUKFTdWzl4lF8A5NtTc5+oYJWHzXN0TpOQZflRkShCrFe/KFD1y0ARNFaRQLoXSInLj/6VRGI15sfIJikDT6+nvZFISui6CgtFx7kEdCuGbasf7gtU08RYeYLVBwYPM/GzpQoS+lqWBg1lYcAKMZRfH9nI3EIoPOlImV09/J9XoCacYi1xu1zXmI0k0NvgIxx2KuUSQgDgB5T3Cy2ZVNfLSyY6dNEJRikAIWQSEuJskj0SHFAH0pWTpadE2ldJIKz8w25kDcUMX3C6V0rGoBAnRgLB8ABIEbZYqs7fUlUjpBx/XuMWE+iPcK9nQsCvyCjquloBQeCZgasFDZghClmxr8RP7uCWhoBAtKh4KCC+IUgyYVYSHq9KXkqpsWuKrRmo3rqrwX/iwoU0aPjUdig5ipAMCW0rHZUOV4Sir3M/mYgDquFDjXCTrEYgqKxILSyaSdzBkro1gExSf0IAGsYmkwi406aEO1oQODPL4QpfsZ/KCqRsCZEMpK0CC3nMjv5tEpQcjAhv4pIMhMoqAUud82i0Bc30B3lLpo/XUOAZSD0LkYDrRYxCzG23gDoRfMWVJ8eRuqDWK2oHSM+lpQfMoaGdVY39yxKYoM3BwUACswMG9xXKEX5V4EeVAhSjc0+CG42uL7VpyiDZ9X4Ngg9OfpQDDiVkEvXWpoCJQOZdGK9ygFc0oUnApAoBboT5wDeYOiUlBFeodh0Ere2AIpnTCyq6z1DfIOCc30rDaHIE9SnBuVgqJ6JBGlYy9GXr7IBaOqyg0s0gpCERZolezC+yeVRUDaBjHboL+goKJSXwtKx+i92FxfC0qHOjavStuCgioo2F4q+tLGyyg2yywANJHoqiBevhBKh3CPbVqDqPS12SRDlm5o8G2MTCEUSTFBOhG0pfB5ZfR8bp2+gRQJJf+8EARa4CKwQkg2G5QJpVEBgE3MIQx9i6X4FEHbsgpF+wGVvqZNXZX9Q4ltWRrFWNyJMSjHUuakBQ2mnb9BCSC+e8HKch9sFKhvkEcSGXx7YTFg128B/YbnfxavtEBpNpytrUtMNTJ+pKijdIhG3BtrQ+lQEJ0uCKooFIsHZUHZeCSE3vmhImafQWIxzQJXILogCkpZ9ETxoEwUn+++qWJV4vuFUjph5J8D6vmgmgvi+6p0WlKCQoC+yroMm7RtRaaSrG/ecVn+3Al6NnWI0v1aK1T3Bc56Qv0ZdWIDdCPjHZeAvFSZN1raw3LTSTYQ9a0IeFhKGC6xynUNuGZF58BTjIxFUzbbTSdwgRPplFLlcyt1UDxiUR6bURlxf4qhLqW3WEpHMR+011c1zygxEpuAdMBGIo7tPy7Z4CfU3laE8EOWskrLBV7o5hDgsnk0DVWHYgLHCShRhHfcYlPV/G5uCC58IOVQTMzBYvO1pXQCEXMQXWWTImtB6QQaJN88U41T6luIEQ+gdJTVs6r5oIh7kDdUHS0akHJq1eU0YL352QIVfSq+749BKe+Z8PiioG04Eoi8KIjDgv4JQhyAYmKbkK3iqVuUvPZUhzOpVAY0sCqXsgh0vGactrjEb5EREpUisdHX3XzJQVuVQdIgZqtumVsgS0fV20lILK6ev5Tra1P1rDWgAShYJYEblA0dGKCvTRA/z4Oi6htwL1RV5SFLzzL4qlxfFoOSYw6aVEE7Mxl5VdCCtoAaiWsDWX7OljoBxQZVRBMuQGEUTRyo715oXWLCRq2ribC5b1SPj6yvCVUWSelQ5w7ZIwlA7TrEHHqWjmFD9c+zWLnGOyxwgwoaCyhagyTt9FXdC1WRVsjSswx+MTysTZDOFskAxPSzhHqcSl8t4iiHOmefgOiMqZYKw0zmmC0QUqAONmP9gULL1MWgBU4uDLJAlaEYUBuKJIgOJIIb5QalmTvxynwgFEhBFcmfi/eN+tpeX42+OYF5zeYQ851byNIDDX6BNEIhiC5oYis9h6CxVH0VdAqZIglAoDZBOtVxxQal8kiUCMnWIyHEPbTptAqeO/C4inOz5sT917eQtFfqudkgZgs6kMqfK/XVUZ0KmpGKmFMdGv5c4UkCCnBju6EqeHkbSlK7mUUIPxxR0giGzAXxuDGbIJ0pO8VqUhW6CBKGRUBw4YWLqczoIRhFbaqaS69511enb1DMwSa7imLEbTKmbFBlhzpHWxn3EF6Rn16z2Bw8HRRGXKmvJVq14cTJ+voSKkxzp2gwFkaaroUtKRTchCw9y+Db5voC2fGmtLZCDZKOJyzWLdd6AzZGvFDe2LBBgbvtamG/wAHNs4hVNIJqbMC5KR8wY0HpqAK8VGMbFDBVxic052ZlZFR8vwW6Fu/L4nWJLHRDNRlx/7nZxieC9C3U4zOhdhv6MqX+LATpWQbfn3mjy1zwdnx3vNUE1BikMgVXKY6h0sGf1qYKMAfpYOuRkBqXBSBQ1XFNhk6MEccN5MT98RQbr8h0fRWBY0pqqKnQRr5vpnlG3aCUxkvHtRdoQIPSBr2xhLiHTVtrIIQgKPX6BqxNnb6BAX8LcGPlkUQIPxyxzfUFJISfLIAisTFIBPpH1VVT1sFPvZALbTT6UjuBivfIRsZv8AMyF7zjqgwdcdOh6hvUZRUI8F7CoByC4hOUWgDdBqWglchzJyRvy8o79IMbjQ42nrp/I9HFPQK9Q2qMRDd//Xn4EaVTerHK9fWlzBkpByL3FxS0DeQ1LQwHz+RSJGSUptt0ghAocTPTBQrl39aiShWi0xk6G7qqUB7WcC9y4j8WxsA25qA1ir6xWiNjsVErNygb75AQtE3prpniuKUAY7ZPxLNhAKjAImTpWQZftQh0CwbwUQ5Ul9gmaGuD6JJqVCt/n0KRqOiJwPz+ILqKGnOgUjqmNNIi0LU4BklfgxHPZMxj/a2XTRufyiiSELMFlWHT60WLQImUjqeDb0MNytrKq4I3Zd4kshuqFRgzUGaUgjkAebSd7h6rvGTqZhay9CyDX1bhuO3eojUsGMC3aKlGxhScsqEcbCkoAkXiz/U1npvPcATqq0pV0+Sqy/paIXyDS0zpnQ8ograGTR3IUh8mbwDIGjCbDBmr1EUbVKkJbOYZJFt6DUTv0MZDNRhFIJvbbp2Hb9NyxII61N7jAunWkKXnGXwg18iYJhUJgSpuaCBi9gdtTYiO6JEoYw4WqXUlQUgEyixFvL7yRm1Eq1QKSqWvyYhLFJ8xIC3dC9ugIjXzhoqCrQKbpliRlEViFUA3BOaB7P0wIfycsZYUVCAdGACwVGNVGV5UL84IACKDH474kZfVpNItWpsAmU0WiWrBECmdlGXmAnlz0CFQS9STo2+7Xgd5rC1dpdXXNsgsI3wqXWXDR5soKMu0Yg8FW/DG2kImC8SsehAM1UNNGbwMeWxodKBtAzdL0JRT00O0JSFLzzL4/g6JWoTvW+CpdiBeFTw2B01ZBNN0FEkxC8YmUGgbcBK6KcdSUY/qXoRxbsX02ScgUNIGVQwCTWj6wlh6Zjn6GmiwPG/Ahl4Lqsq1jL2IMfJxlWPLc8ca016pdGAx9QgmWyLVnBjp1sjghyMejUBB+DZZJD40ZfUwBF3mgs8wm9Iy5eNZBQot6CrhwlN7/5gQaI63RaVILLlr+Rh5+lIpKJUBtdC32Na5nr7EDUq5SerOTTZIOqrINv7jnw8WcQ8dEhfHE98xgTEhxgAvtaW0n6ax9VCJ1zdk6WEG38Zt9AcVCYiOdEMDEB0pQ8bgCuboQJisOWmDmgnoz9kP1NeSC5b1TSX0i1YeqzWgNoi5GErHkPYq62vdJkC3UVtk3gh9M2mApzVz3dczKTR9La6vHMQX+pLpQNNc989Jm1gGAeFzTgQs0vWlpsiGLD3b4JsMB+BDlRacbeBxC+AJZcMc1C0z5jcyFojOtu9O4KK1QFN+es3kZYjfFscldw210Je6oWYy+vlgldKrur42CJ9wzXRxAf9Yax10Y1WAxbBBpRJ6mlMem0O3avTNC8xTUbvByxCJBDov0q8v53ZeUcjSsw2+FuH7DSjFZaMYL4v8XRVXGRbtAUgphobrQA7oBfC7Oh2EAc2kLCkSmwwkjaHLuxcWBpTswlsG8cMKFJL1dcfKAd7Ae+x/WIolf07ZdAStQvaoTRuUhZdhS0lmko5tAGgeaiYFgNPXW8hSlMFnjPVnjL3CGFvi/u0XMC7NGJvn/nu2mN8sSsQESkkTxTipOrLfCRxrgeiKylwg8oTCxSQHQW0RKNEdpXDMqY7sNTYiJNkl1i1wC14+L/BG8Pi8BW5jkGw2yTD4cwks6FInc8YWSuloxpI3VGkNGfX1AQDbrCIqZWbrQVHmA8Xb6sII/2cAXuOc7wrgNff/KmnjnE9w/x1b5G8WLlYTW4HabTg63UThaV+AjLqREGiEVEcWqQUtAn8fdt2CKaZKkLTpJIM7ROaNpSA6xaIlbw6U+SAvWoLxAgiUGZWXt6Gg5A3VoK+fDrTeoMLwtuTra5oPUsDf48+pGXQGkEeuIxHX15KConiHXRXhAzgOwN/d138HcHyRxyuteAuxw6URDMYAyE6WVDuB/rGgU3I2ByqlozHMMm9MnoCFGFCCC099hoA4ntGA+hGdgbO1oRHI/Yckfb0NKsjISHy0pwMVgVoWaQV6kq5uJA9KMl7iOzZ9mKwoHcP8TXVICD+suePLQCJ7qMR1TN6gZO9l68zDH8Q5X+2+XgNgUMC4KsbYbMbYe4yx44MOxhi70B03u76+vkjVFCIbDtNEkQ2oVw1LpUh0iE6F2gnHNSEZ8X6yTTo3G76faGRMxiBncVE42w4CwvelcOrotXglvSrXn1tPuheFeCSGja8UHpRnQNvN81eVIUOmwSyKnqgxKM+AluBeGAsSiWBBBbAo9DBlbZawtUJA2WZWGGOvAthO8dHP5f9wzjljjAccZkfO+UrG2AgArzPGPuGcL/MP4pzfC+BeAJgyZUrQsQoXuXybvCtbBmXE36o++uOmZGNACWQRN6gcF950XNlzoAa9iPrGyuiUGXmDEteMcNxMEohV0mmP8mqavqS5o9JXYzgKzmvXFYpVZ/U1eXw53gABMYsNNRYzUCT+eBUxrmTyoOIWY3PuRU2IdJVi0zHSrUSPRL6+IYvR4HPODw36jDG2ljE2mHO+mjE2GMC6gGOsdP8uZ4y9CWAigDyDX3LJmVSFuI1USsci/9yE6Dx9DUbGW7TtFohZ3nSolAOx5F240jYUFDVFlkq9iAA5lSrSLXDV9Q1c4NJxRRqeDc9d2StYX2pLDM/ItGW/Y/J0bOaO2FBTHUBFHU1f0n0jbjpALp1CjsXZUDrENF2Plw+6vmLzbTOP9V/fkKXYLeRZAOe6r88F8Ix/AGOsH2Os0n29LYD9AHxa5O8WJqqJYuylk7DPyiDlnxPK7nNoJcOmk4PSqHnBFMSsQpU2qJ1wfdNUA0rhmFV0VRj3zWZDlY2XuBfEuIdtlXYYHL58bsa5o6IvbYK2JnrNhqYphF4zXV8paGsKoIvjmRiAnPiE4V74A+ghS7EG/yYAhzHGlgA41P0/GGNTGGN/dcfsDmA2Y+wjAG8AuIlz3vkG34TSYvH8sTZZJOScfQrPTUgF9BZtGwH1+BGzQV85q8iUhw+4hs40seXra0I9qkVL9V4SCG44J+lrCuKXuygtKV1fEh9N9A5zWv1Sg+KauVMuG3EbOtB27oSYwunpQPWoC1iblNYVlJ5YOYViBn3F3MnZUImAJWQxUjo64ZxvAHCI4v3ZAL7nvn4HwNhific0UfHcQUZGfsYlmSKhGHFF0NbE91tROpQgqGTojPpK5xYrI1IkCSBdkfueXxiDx/GKzYxCmaVTTmYNtXFZqoNwfZPZQJkNwg81AymRRZjGJlypLHo26ZtsA5Lu9S0PQqDF0IEGb0uAhVgZMWhrQfHlbFDEtanL8BK/511fgscngxsTfZlsl/QlZuaFLD2s0lYOxBomivhMzhqwaodLoDKELlaoJwgxx5zPUu3OIgeyyMIv8uYAEIwMfA/+IKAek77isxwOlGIM2nPfCxxL0FflahsRvgWlYxVAJ8ZTxFix8ZHOzZ0P8aD5oMhIIwf8CfPBtn0Geb1JRWU2GXQ2FF/g5iDPBwNg8Tj89uzmS00ACVl6mMGX+HOTkQGyKIo6qXKMOBEhmdLExFgTTyg+S7bTF3iqw03DIyBmkgGtyo4xcZWAdH2pNIK8ORhy4G35fgqNwMp8gTdKhlcB3iHFeJk2EjlQSAYA7RbGlojwxRhj8Fqe68TAJmVd5Blxi7bWOrrKo8zaJH1NAXRp8w26FyU2+EVROludqII9FARqnFQWRjyvsRYVgRoWgRhvhfBleoKQjQDo3XI591uck0lf+fqW1xh0kA1okDFQXd8QaATAuW4pOUgXFP8pczaHHMRMRKDk6m+3+6cWWDDneDYen8l45VEkFIovafYcclIXTZuORTJDXssRm/hahyYQKygzaZOkxNc8ei3I4Jc2aNvDDH4cYLFc7k+L8CuIk0patDZIBtC78LIraFoEQNYgmSaVqh7Biq4KWrTSRiLO34jwk0CyVa+vFWfrpxzaLYPMmutbXuUYTwodKDYzI2drQ+nIY4XBDzguY25tAQEAeNdXDvBS9dUhfEU1amCSRJmzNtMJC6No2dfIhjo0xYq8QKyE8CkZdGKumzJ6IoMfknioncIxC8qBOqmSUjc86oLRICThNspGRrdBxavcBW4woMo0vAB9/X13dHy/XOxjQrbisxwEGoTwFZ4ZNahI6rNP4IIB5/xyApuEuZO08F4AOs/tGXyDB0Wi+FQpnJS57nY5JXlQFArV3SS9+RtwzRjL9niyydIxJgfInoOBAchB+IZzE/G1ZJvZm5W9+hJIDzT4vkAsBeHbGBlqVoYXMNVROhLCtzH43gZFceFtszJ01Z0iG6ENqKh1v0+gzMQCrwhYBEWlyOoyLSwChUAW4ZsMktAjnZCMLaV1rjCgNpSOiYJyA4UspgEhcTc+0W4GQsoeMgZKMifxgTofmKX3TbhmNnQVOYjf6mQi6cYCLliQwQ2hRUoJpAcafDfdyuQ2As5EpnC2Ki7YqtGaIZdazv020QgkhC9x7WS6ilDlqtpIjAs8mZ3cQUZRTuG00ZdzWtCWwl0DWYSfbHU2Ie25CbRqoiekgL/IhKJmnADBcweQDH6bszmpnvqVM9YyqEie6wkgXZ77/aDx6QRN3zzvm7ChktcxIStO9pI5h/Mgd4059cfXKGCsBNLzDL7gVikorbzWuUEJgUCDSsjlPHFicEqmdEypXzLyogQVjalfkttozPbwZ/RoGmvZFPuIz9IdQKKFsMArQAvaSo3WjA+bkIOKhA1KIPxEqzM3TAYpRUH4iloLakqvSV/P42sL/n1vbCUtwKvKbKJsUKny7O9odUjof18+NoUqyvEyLMCCaXNgzLmmyTaH6y+vJmyo7r0oqwzukyODsRJIzzP4YiGaeGPAoRhaNwLJFv1YOSuDjJCklEhTbr3M/ekWbnmVq2+rMy5oUpXFHTRCoYrkVhA2qMdkOMSxkwKBmhZ4iRGdVYykJZh+ko+dJsyznFRhQxWmDBaY772g8cKI6+Y5oIj/mGIOlt5szCJNl6fN+nreoWFtKlM4CR6Jt5EY0qBT7Q6wMOlbLtFrQXSO/HslQvg9Kw8fUASGNIamotZBn4kWAEw/1lvg1BROOTVU55ZX06gX8ZuCgjIiuiofwicYcVNwSkYnXnBKo0dlL+faJtscxKyTknC2igwOLcJ374XwSIz6SnSVscpVDpiasqDaspuDjkYor3ZjDm36+wDkI/zAeIqqaViIQVux6Zg21Hhl1ttiMTu61QhuCEFbIHt9E0R9RZaObu7I660E0gMRvhQYipXrjW15rTMu0eoYf63LJha4KcVQRacQaARSnri0YIyIzscpGvl+iec2BZmTBKQIOBRZosnVl+LCE4JpNovWpmEXAK+wjbTAK3yoMuD8bGgwL6bTDg/iaxFopaNrkkrpEDhmm1oW2diyMvc9zXoTAIvFzPOhwl2bSQO9piyuM+lLAAtAbpKECbDEq7OeuslrACKDH5qIhUhxcytqXARKRXQ2lIPM91MyLQgUVHm1uwgMbqN3XAJnq0L4gQtGyvYweToAUFkHdDQTDX65j3qhUDrEjB7y5lvtoOtkS3A8Rz522iIrgxI4lu+FMHC6+1xeA7Ssd8aQAICLQMsqENxwTpWlY6BIUgnHiAN6D7WyDkg0O0DMuDbrst63bvO1qsoV+nYQEX5N1oMiI3wDfVnitMyeR+mInZbiNsqUTgWRcjAGveLZAhOKkRGBoWSLG+wpCx5b2QfoaCJytv6MnoDxNp0Uhb4iOAUQKLPm3DTOIPGuL5WztUV0lHNzYw4kSqfcF/wzeFA5TyojFLaZjgsAlb2BjkYipSNn9BioSyCXpqEgfApiruhFBwACjJnuhY0ONmABkHj5VvP89cCCyeBLtF0JpOcZ/IpaxygmCJOqvNYxch1NBIPkX+CaBSbQn6kRGJCdVCYkA7iceLPzj8Thy1w7BeEb0gZlfZNtbu63ZmxFL2dsRyMR4SeljKkgg68K2gZci1gcAKOhVcBH8ZkMfmUWAGizMlQcfhClIyizNnMHTMCZD+2NrsdnAQCoBtTmyV8UsFApKD5CEF+AMZOxtcm8UQIAHaVTLQEAgsFPtLqUjm5DlVpilEB6nsEXbiOV0gGA5nVEBEqgSLyx0gTURu2lwJBpUoknJbWsNy8Y2YUHaAifhIIlgx83pKpV1lnoW5X1zHT62iA6rwW2lMqq00PMHcoCL6vIZoORsjIINJhNB0wAqOrtenytZgAgKBKTsZVjDsanxqkSFHQAQKb4TAa0lobw5ZYNNi1SSACgykXtBABA9bZEumeJOPyeZ/C9iU1xG91J17KeltYmt0o1Gfycgi7DAvNSAQ2LoKq387d5Dc2AyhuUqUkU5eENQHYjSRHiCIIHb15H2HwFum7RB9tF1kqKiCrzsmk0elT2ctJoW9cTPT43TVd3f3NoGoMOOR0wiQifpx19KZw4hQ6UA/PGp8YpUnp13qEHxohrM9lCM7Z56y2krCIviE+g+KpkupUIxkogPc/gV8o8oSl3Vhh8AsL3JiABeflTOI0In5gZIhB+6wYHUeiEXGij4vANaaReKqBJX9fgZ5I0g58gLHCbB9cAUhCfkLUlNiiqkRH3WHd/VYHuwACvCuHrDL47B9obgh8C440lGttYzJkTyVaJkgy4vl6DsQ7ahlrRy7lm7Q30+UDxfKkZXspmbzqPxI1BiSw+nXh0a4veNgARwg9VKuocw0zZlcWiTrUTgjI1WY4OMBhxMQEJm4PsNhopHcnIV5kMvhRw0iJm6cEqJoQkPhMLnEIjeLobsl4qZINkucBNCJ+SHw3kXl9jGl4FDeEDbkCP4PHJ1Z2kLCiL+eABIQICleM0QPDmJ/eboVCdYg6kEzSELzYH4+ZbTqzhsAzaCiNOyeIT96JxZfBD6oWUV0UIPzTxaJp6OqUDELwBKSUSICD8DkuETwna9la/Vh7XzTghV2HK+hoKR7xsDwuDX93PMFZCdFR07VEOOoQttWg2zQd5UzJmeAk+up3mwufEJwycv9h841X6GEmVxXyo6OVcr/ZGwlyv8RnxIArKPY9km5muAiwBgLyOCQF02cugtCamZNBV9nK86UzKPB/EveBpOhgrgfQ8g19pwRvLKI5C6SRanIkdiwfnMQP5QVvd5lBRk+UqjShCQg4mF768lh7LoKZwAsgWillQOgDR4LfS9KX2WQGca09Jl/PrWN1fP9YL0lGubwEbKqWa2grhiwA6YV0I7prSxjhend0cWJmeMrOZD+I30x2EtSk2qFZoK+a9rqyEjB4gd4Oy8b6pdGsJpOcZ/AphFLl5IcqLxGhAa7II3+TC5+XsaxauQIoJQrFPlaULn2iiIVA/QjK2S3CRrY1BMhr8OscwdzRZUDqEtNccz8Fw3NoB6tcqqeoNgNM8SbGhUnj5cmFsCRuUDQAQc4uCmP0IX6uvRUynQtKXMh9kfUz6yvc4yCsS8Z+cqnIdpSPNXyrCB8yUjqDtSiA9z+DLKMJkFHMW+Lb6sQKBpghUhk2WTmUvJ6jZtoketAWAukGGsXX04HVeGwZDJksHsV1Cr8HZ1zXb6MfKLjyVs/X67GsMeYWFp2MzH4QxaCBwtl7bZQLPHXdjOhSEL89v+Vor9bWgq+TakHh1cI0BgJxqVJsNiuLxqV4HjU220rh2uSmbruLYr68JtVdagMcSIvye11rBhjeWPzchOhn1GBG+v0iLgCIohlk+t97b68d6KXsbzRsUtVe60Le90VlklOCfkP4j9GPFom5eB2w7Uj/Wi5EQKKjKXsDmr52e5jYGyXR9hbFNthAMvrShxsr11dTiXnBuNvjypm8y+DK6ruqrH2tjxAXCz6TN86zXdtnXJspMNvI1hLGtG+kV86l2IB0zrzcZpJgAgGzkTbZk8ITs3A1ZeqDBl264yeDLC890kypqAHCgbTPBgFY6iJ1a7OP9hmGyyq5qnx30YyskztZkDKiNtQDH4CeagEQf88YHANtPBFZ/DPQyGFBx7u2bCRlTIj+6Vd9JURw30excu+q++uMyls0WMhp8aYEbOduqrMdHSg5oc3uwE+aZEIrHJ8R0HeJVTrCSQtN4Bp/QQli+pv2G68fK69HkHZbXAMkVNNquos4xtqzMPLZO1oHo8QHm9fat3+g/L0J6nsHPCbwZDL4sg8boPxeTuXWDGXl5QUVKIEtCXqYFAwAn3ueg4DrDBiUmYPM6M7r2goqt+jYBsr7Na8wLBgDOf8VBX7pjAr6MKVN2lVxcZ+hyKiidWBnt+l461zH4Jqm0MfiVUvU3wYiL9hKUDfWsJ535paMmgFzv0BivEqmhlPYkrufLKwmxonJnfsWrzFk6dQOzr03G1gv4E1OxqfOhVtLBhPDlz2VPZgtLzzP4Obyx4SYBwAWvA2sXmCegmBzNa8zo2uMJCQFTeVMyua4AMO5U8xggez6UPjY5BolIe2RS5hgJ4CzyXgb0CfgMPoGzbVzl1lpQNodmRw+Kwe81CABB35wgnWnuVDvV3KQ2xtUOqOAZ2vXd9TDzGMAX8O+rH1tek81sMvL91c594Bna9f3pYseLM4lM+cjGX6lDTbb2xpT44AGAuPnc5N81MQCMAYPGOvbB5EGVUHqewZcR1DY7m8cPmez8M4mYHE1rgYF76Md6QVvCAq+1cBttpNKCs41XZQ2SsYTcIv3MRgrJ2Sd1RK3LFp+ZNgcbkc/ddN/ilW4glkiRJFqBcg7ECRsPVeok1Gmiq+QOrpQMmZb1bv55X7Me1X1pBlH2CPvtpB8rZ2KZqC3hkcTihGywcmC/y53NTOdFCvneK+YxJZaeZ/ABYNxpwIpZZu7PRsTkSHeYg3RyJahVZkiI+tq48DkN52xSAUM0+PJxawg52qKrpTE/Wng6DeEa/JwMGZOREZQDof9QpUtXgZvH2ojc48bEn5fXZFNDKVWjyVbHKPYK8foCwHdfdCpXKXRgqt1N6SUAgMYVDgCgeNSH/Yqub5jzq0DpmQb/xHudrAHKrkwVGUkaszKkzprG1Lq+2demYI+N2KSJURtrAXbctY3kcLamFM46C4RvUU1tI/J9rTNwtlVukZapdS6QpaB4xjzPbOXw3wIrZhOKnqqyGWlGxOymnFIpHRvZcR/aOC++Rmh6V+G2SCkrB8qHFqdfF5SeafABfepbIZKTk0tA+KkEraOkjF5CNfgWWRk5jbVMCFRG4gSERBV546Pk7Hv6WqSyhumRyGDChJgre2efY0ApOEo0u+X8Bj7aVvb5IW1ceY1TG9LRRA/aUtIySyVi06c8qETQP2UVtKSDrUx6rsEPW2QjZETMUmdNE8IHgB997D7rM0SPRNbRZEAre2ddYhNilg1W7yGF6+cX+dxNefgVNW4b443ANrsYxlrEBmzl+2+7RpFYINVcb75mYqNOtYfrQdmI2EQpzzHISSMNGeFTRb7H1LRMSgfXrVB6XqVtqUQ2miY3t6LWQWitG2gord+OwCBDINhW5IXa1yJn37QIZOrFFPyzlb0udgyi8fpK+tpQOmEb/MHjgOH7mccJr6hxhdk7tGkwViqRi8ooQVuPP+8kDlvWkdSGoZn2RLytUIoy+IyxUxhjCxhjGcbYFM24IxhjixhjSxljPyvmN7usyIaj1pAmJqoam1Z33qIFsnr23VE/zsutJ/SFYQzYYR/nmGFzzEf8DrhigdnT8Yq0CH3V5aB42AafKjaNtXIKukK+vlSRdTB5s+JznjGPLZXY0K0VtY6uqbaI0lHIfAAnArgnaABjrAzAHQAOA7ACwCzG2LOc80+L/O2uK6bCCq8zYX3nueUAcNbjwOavCH1hBI3QZs56AYDvPONUuIYtVErLps9KbykuYsqlLpXYNL2T4yKdZkAtmt7ZbA6lEpumd6UK4ncRKWpVcs4Xcs4XGYbtCWAp53w55zwB4J8Ajivmd7usjDjI+TtotH5cjlveSSgNcNoa7EG4FTlNrfqax8cr9dXDpRZ5UzJ2RO2bfW3ydEollRaoXc7pN1FbpRKbIq2t2eBHCL8gGQLga+n/KwDspRrIGLsQwIUAsMMOBl65K8rpj7oNsAwZQDn9cTqR0qFKTmOtTlq0NmLDyzMGHHQdsGGpuf1AqcSm62JOw65O8khkHUwAoCsYfJsmZ/LcoRSKbWVinOGMsVcBqDiKn3POnwlTGc75vQDuBYApU6bwMI+9RaSixhwkBHKNUGcifKrktJTeCgy+jEApxXUHXFk6XSgi62sy4jKq7yyEL6cHm9oa5GwOIabp2oi8kZtSZG1bmWxlYjT4nPNDi/yNlQCGSf8f6r7Xc0V2yzsLpdmIzYM0uoLIhjDMaupSiXxNTbUWZXEHeabaOy/gL3fh7G9oT9JHKl7qLMoMAE7+G9C81kw11loU+G2FsiV82FkAdmWM7QTH0J8O4Mwt8LtdV3JSOA0IqStIznMBQuznUyqRr+/WsGjlOAOlk+KP5gEIsSajENn/J8CX7xCK9kpUiGcrY06kjctpiLYVzHVLKcrgM8ZOAHA7gAEAnmeMzeOcH84Y2x7AXznn3+acpxhjlwB4CUAZgAc45wuK1nxrFpn22RomlbxoOxOlUUWOoZgKr7qKDN8fWDWPVrvQWemjshxyPX3s2f8Kv5VJqUSmnUzPaNgKpSiDzzn/N4B/K95fBeDb0v9nAJhRzG91WzFVjXYVGTQGWDs/10XvyjL1AuDzmVsPD3v2U05Hya3BKNrKLsWywltQYjHggKudp7aZmrJthRK1VugsOeffwKYvt57Ur7OepPWX7ypy1M2drYGdyN0qI+lcOejaztagZBIZ/M6SnQ/ubA3spHeIjdsiiSSSTpHu57NEEkkkkUSilMjgRxJJJJH0EIkMfiSRRBJJD5HI4EcSSSSR9BCJDH4kkUQSSQ+RyOBHEkkkkfQQiQx+JJFEEkkPkcjgRxJJJJH0EGGcd80uxIyxegBfdrYeRNkWwPrOVqKE0p3PLzq3rVe68/kVc247cs6VbXi7rMHfmoQxNptzHvhM361duvP5Ree29Up3Pr9SnVtE6UQSSSSR9BCJDH4kkUQSSQ+RyOCHI/d2tgIllu58ftG5bb3Snc+vJOcWcfiRRBJJJD1EIoQfSSSRRNJDJDL4kUQSSSQ9RCKDbymMsVGMsXnSv0bG2OWMsf6MsVcYY0vcv13gwaP2whi7gjG2gDE2nzH2GGOsijG2E2PsfcbYUsbYdMbYVvl4JsbYj9zzWsAYu9x9b6u9b4yxBxhj6xhj86X3lOfDHLnNvYcfM8YmdZ7mZgk4t1Pce5dhjE3xjb/GPbdFjLHDt7zGdhJwfn9gjH3m3p9/M8b6Sp+Fcn6RwbcUzvkizvkEzvkEAJMBtMJ5ru/PALzGOd8VwGvu/7cqYYwNAXAZgCmc8zFwHjp/OoD/A/BnzvkuADYBOL/ztCxMGGNjAFwAYE8A4wEczRjbBVv3fXsQwBG+94LO50gAu7r/LgRw1xbSsVB5EPnnNh/AiQBmym8yxvaAM09Hu9+5kzFWhq4tDyL//F4BMIZzPg7AYgDXAOGeX2Twi5NDACzjnH8J4DgAf3ff/zuA4ztLqSIlDqCaMRYHUANgNYCDATzpfr61ntvuAN7nnLdyzlMA3oJjPLba+8Y5nwlgo+/toPM5DsA/uCPvAejLGOuyz61UnRvnfCHnfJFi+HEA/sk57+Ccfw5gKZyNvctKwPm97M5NAHgPwFD3dWjnFxn84uR0AI+5rwdxzle7r9cAGNQ5KhUunPOVAG4G8BUcQ98AYA6AzdJEXAFgSOdoWJTMB7A/Y2wbxlgNgG8DGIZucN98EnQ+QwB8LY3bWu+jSrrjuZ0H4AX3dWjnFxn8AsXlsY8F8IT/M+7kum51+a4u33scgJ0AbA+gFvlu51YpnPOFcKiplwG8CGAegLRvzFZ534Kku51PTxHG2M8BpAA8EvaxI4NfuBwJYC7nfK37/7XCRXb/rus0zQqXQwF8zjmv55wnATwFYD847n/cHTMUwMrOUrAY4ZzfzzmfzDn/JpxYxGJ0j/smS9D5rITj0QjZau+jQrrNuTHGpgE4GsBZPFskFdr5RQa/cDkDWToHAJ4FcK77+lwAz2xxjYqXrwDszRirYYwxODGKTwG8AeBkd8zWem5gjA10/+4Ah79/FN3jvskSdD7PAviOm62zN4AGifrZ2uVZAKczxioZYzvBCUx/0Mk6WQtj7AgAVwE4lnPeKn0U3vlxzqN/lv/gUB0bAPSR3tsGTlbEEgCvAujf2XoWeG6/AvAZHM77IQCVAEa4E2wpHAqrsrP1LPDc3oazgX0E4JCt/b7BARyrASTh8LrnB50PAAbgDgDLAHwCJxOr08/B8txOcF93AFgL4CVp/M/dc1sE4MjO1r/A81sKh6uf5/67O+zzi1orRBJJJJH0EIkonUgiiSSSHiKRwY8kkkgi6SESGfxIIokkkh4ikcGPJJJIIukhEhn8SCKJJJIeIpHBjyQSVxhjfRljP3Bfb88Ye9L0nUgi2ZokSsuMJBJXGGPDATzHnU6hkUTS7SRuHhJJJD1GbgKwM2NsHpzCpd0552Pccvfj4RTc7QqnwVwFgHPgFAF9m3O+kTG2M5zipgFw2mZfwDn/bEufRCSRBElE6UQSSVZ+Bqfd9QQAV/o+GwOnHcNUADcCaOWcTwTwLoDvuGPuBXAp53wygJ8CuHNLKB1JJFSJEH4kkdDkDc55E4AmxlgDgP+4738CYBxjrA7AvgCecNoQAXDaUkQSSZeRyOBHEglNOqTXGen/GTjrKAbnuQETtrBekURClojSiSSSrDQB6FXIFznnjQA+Z4ydAnjPkB0fpnKRRFKsRAY/kkhc4ZxvAPA/98HSfyjgEGcBOJ8x9hGABXAeJhNJJF1GorTMSCKJJJIeIhHCjySSSCLpIRIZ/EgiiSSSHiKRwY8kkkgi6SESGfxIIokkkh4ikcGPJJJIIukhEhn8SCKJJJIeIpHBjySSSCLpIfL/ATHh59CJJ31sAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1)\n", + "ax.set_xlabel(\"time\")\n", + "ax.plot(times,r_nbody, label=\"planet\")\n", + "ax.plot(times,x_ho, label=\"harmonic oscillator\")\n", + "ax.legend()" + ] + }, + { + "cell_type": "markdown", + "id": "80beed0f", + "metadata": {}, + "source": [ + "In addition to using BS, it is also possible to integrate arbitrary ODEs in conjunction with other REBOUND integrators such as IAS15 and WHFast. In that case, only the user-defined ODEs are integrated with BS **after** a successfull N-body integration step. This type of switching back and forth the different ODEs will lead to an error. However, if the timescale involved in the user-defined ODEs are much longer than the timestep of the N-body integration, then this will be a small error. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "15c2b8e3", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/rebound/source/ipython_examples/Megno.ipynb b/rebound/source/ipython_examples/Megno.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..12cff135dfb3cb0989a6607c18a0b7419e7ad4b4 --- /dev/null +++ b/rebound/source/ipython_examples/Megno.ipynb @@ -0,0 +1,200 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Stability map with MEGNO and WHFast\n", + "In this tutorial, we'll create a stability map of a two planet system using the chaos indicator MEGNO (Mean Exponential Growth of Nearby Orbits) and the symplectic integrator WHFast (Rein and Tamayo 2015).\n", + "\n", + "We will integrate a two planet system with massive planets. We vary two orbital parameters, the semi-major axis $a$ and the eccentricity $e$. Let us first define a function that runs one simulation for a given set of initial conditions $(a, e)$." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:08:23.195270Z", + "start_time": "2023-09-24T21:08:23.181079Z" + } + }, + "outputs": [], + "source": [ + "def simulation(par):\n", + " a, e = par # unpack parameters\n", + " sim = rebound.Simulation()\n", + " sim.integrator = \"whfast\"\n", + " sim.ri_whfast.safe_mode = 0\n", + " sim.dt = 5.\n", + " sim.add(m=1.) # Star\n", + " sim.add(m=0.000954, a=5.204, M=0.600, omega=0.257, e=0.048)\n", + " sim.add(m=0.000285, a=a, M=0.871, omega=1.616, e=e)\n", + " sim.move_to_com()\n", + " \n", + " sim.init_megno()\n", + " sim.exit_max_distance = 20.\n", + " try:\n", + " sim.integrate(5e2*2.*np.pi, exact_finish_time=0) # integrate for 500 years, integrating to the nearest\n", + " #timestep for each output to keep the timestep constant and preserve WHFast's symplectic nature\n", + " megno = sim.megno() \n", + " return megno\n", + " except rebound.Escape:\n", + " return 10. # At least one particle got ejected, returning large MEGNO." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's try this out and run one simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:08:24.035399Z", + "start_time": "2023-09-24T21:08:23.946126Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "2.0535548978104345" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import rebound\n", + "import numpy as np\n", + "simulation((7,0.1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The return value is the MEGNO. It is about 2, thus the system is regular for these initial conditions. Let's run a whole array of simulations. We will use the multiprocess module to run the simulations in parallel. If the following line throws you an ImportError, install the module with `pip install multiprocess`." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:08:24.770700Z", + "start_time": "2023-09-24T21:08:24.757093Z" + } + }, + "outputs": [], + "source": [ + "from multiprocess import Pool" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:08:25.796868Z", + "start_time": "2023-09-24T21:08:25.182288Z" + } + }, + "outputs": [], + "source": [ + "with Pool() as pool:\n", + " Ngrid = 80\n", + " par_a = np.linspace(7.,10.,Ngrid)\n", + " par_e = np.linspace(0.,0.5,Ngrid)\n", + " parameters = []\n", + " for e in par_e:\n", + " for a in par_a:\n", + " parameters.append((a,e))\n", + " results = pool.map(simulation,parameters)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On my laptop, this takes only half a second.\n", + "\n", + "Let's plot it!" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:08:26.697801Z", + "start_time": "2023-09-24T21:08:26.263972Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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I+bPn4/XX39dGb9o0SKTP//3v//FypUrERcXV65OwERERGQbtWrVMvnz+PHj8c477+iONxqNGDFiBO699140bdrUrMfYvn079u/fr/Qz6969Ox5//HFERETg2LFjeOONN9CjRw9s2bIFjo7qV9c3mzNnDmrXro26deti48aN2LhRTSUArn4NWxZ21UctPz8fu3btMmnv4eDggOjoaGzZssWsfVy+fBkFBQW6M+y8vDyTmXpmprrgNhEREemz9lqfp0+fhpfXjRy9W+WIDR06FPv378emTWoeo5558+ahWbNmaNeunUm8X79+xf/drFkzNG/eHPXq1UN8fDy6du16y/3evISUtVVIHzXpzpc5Lly4gKKiIgQGmnZiDgwMxF9//WXWPsaMGYOQkBBER0eLfx8bG4sJEyYocRcvFxhcbpyOK5fUZOSqrIXc1B/LHIYqsfBz/YSRQPMhHZTYo6uEfEEHtWgAADr19FRix5rId2cDItSu/kuCPhTHDn5D3cclD/WxVohbA5O3Jur8japA6DgudTwHADcn9Za4n5v8lvRzU5PQfVzUmCXO7jU/RUFagQCQixz83dTn9WH8aXH7ds3UBPADQkEGAPgJid1671PvMDUpO18oENAbm3MhR32sQnm1ASfhNUsRiiQAoLqfWliSflFOxJe6+ksrPMw4KKeFWLI6wn7ha57awuMDQOI+NUH/oE4xgFR4IK2ecUFnhYkno2opsVm71ER+ALgsnEe9VQyk96SPEJOKgwDAO0z9/NHjV11Y8cBJp2hIKCYKbCIX1ySXLGLJN/+1tparVZ/lL2O4vg8vLy+TiVpphg0bhh9++AG//fYbwsLU1WAkOTk5WLp0KSZOVFfhuFndunXh7++Po0ePmjVRq+glpCqkj1pFzixLM2XKFCxduhSrVq2Cq6v8Bh07diwyMjKKf06flv8BISIiIvuhaRqGDRuGVatW4ddff1VSr0qzfPly5OXliQum3+zMmTO4ePGimIdfGcp8Rw0Afv/9d8ydOxfHjx/H8uXL4eLigq+++goRERHo2LGjxfvz9/eHo6MjkpNNy+WTk5MRFKT+5l3SBx98gClTpuCXX35B8+bNdce5uLiw3xsREVE5VMYSUkOHDsXixYuxZs0aeHp6Iinp6t1db29vuLldvVs9YMAAhIaGIjY21mTbefPmoXfv3qhRw/SudHZ2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aWlpyrE4Ozvjjz/+wJw5c8R9lfbYNWvWxPz58/HOO+9g586dyMrKwtNPP41hw4aha9euFr8uEk3ToGka5s6di4MHD2LBggVYuXIl/vvf/5pzuomIbk0jIpvatWuXBkA7efKk8ne5ubla9erVtc2bN5vEn3vuOa1///6apmlap06dtI4dOxb/XWFhoebu7q49/fTTxbHz589rALQtW7YUxzp16qQNHz5c97jKut+bpaamagC0hIQETdM0beDAgVqvXr00TdO07OxszcnJSVu0aFHx+Pz8fC0kJESbNm2aybHcfffduo9h7mNrmqa99NJL2l133aX961//0po1a6bl5uYqz3v48OGlvi6W6N+/f6nnmYjIEryjRmRjLVq0QNeuXdGsWTP06dMHn3/+OS5dugQAOHr0KC5fvowHH3wQHh4exT9ffvmlydeJzZs3L/5vR0dH1KhRA82aNSuOBQYGAgBSUlLEY1i0aJHJ/n///fcy7/fIkSPo378/6tatCy8vL4SHhwMAEhMTlcc9duwYCgoKcO+99xbHnJyc0K5dOxw6dMhkbOvWrcVjL8mcx/7ggw9QWFiI5cuXY9GiRXBxcRH3VdrroufUqVMYOnQomjZtCl9fX3h4eOCbb75BWFjYLY+diMgc1Sr7AIjuNI6Ojli/fj02b96M//3vf/j000/x5ptvYtu2bcjOzgYA/PjjjwgNDTXZruQEw8nJyeTvDAaDScxgMACA7tePjz76KNq3b1/85+uPVZb9PvLII6hTpw4+//xzhISEwGg0omnTpsjPz7/FmSidu7v7LceY89jHjh3DuXPnYDQacfLkSZOJZ0mlvS4RERHK+NTUVLRt2xZdunTBRx99hNDQUBQVFaFNmzZo0aJF2Z84EVEJnKgRVQKDwYB7770X9957L8aNG4c6depg1apVGDx4MFxcXJCYmIhOnTpV2ON7enpapR3FxYsXcfjwYXz++ee47777AACbNm3SHV+vXr3ivLM6deoAAAoKCrBjxw6Le5mZ89j5+fl46qmn0LdvXzRo0ADPP/88EhISEBAQIO5T73UZOXKkMvb7779HUVERlixZUjyBnTlzJgoKCtCyZUuLngsRkR5O1IhsbNu2bYiLi0O3bt0QEBCAbdu2ITU1FY0aNYKnpydee+01vPLKKzAajejYsSMyMjLwxx9/wMvLCwMHDqzswzfh6+uLGjVq4LPPPkNwcDASExPx+uuv6453d3fHkCFDMGrUKPj5+aF27dqYNm0aLl++jOeee87qj/3mm28iIyMDn3zyCTw8PPDTTz/h2WefxQ8//KDsr7TXRVKjRg1kZmbiu+++Q+PGjfH9998jNjYWoaGhqFmzpkXPhYhIDydqRDbm5eWF3377DTNmzEBmZibq1KmDD/+/nTtEUSCKAzD+ockiGjyDYQRB5gBWw1RBcJJFiwewGrQIYvEATvAKJm1eQIyCZ7CKmHeX3WVhZZ7w/fqb+Q9TPt7wZrGg0+kAMJ1OqdVqzGYzLpcLlUqFVqvFZDLJefKvCoUC2+2W8XhMo9GgXq+zWq1ot9vfrpnP5zweD9I05Xa7Eccxu92OarX6r/c+HA4sl0v2+z3lchmAzWZDs9lkvV4zGo0+XO+39/JZkiQMBgPSNKVUKtHv9+l2u1yv1z89hyT9xB/eSnqpXq9HsVgky7K8R5Gkt+OpT0kvcb/fOZ/PHI9HoijKexxJekuGmqSXOJ1OxHFMFEUMh8O8x5Gkt+SnT0mSpEC5oyZJkhQoQ02SJClQhpokSVKgDDVJkqRAGWqSJEmBMtQkSZICZahJkiQFylCTJEkKlKEmSZIUKENNkiQpUE/ZK0fAz7PSnQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results2d = np.array(results).reshape(Ngrid,Ngrid)\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(7,5))\n", + "ax = plt.subplot(111)\n", + "extent = [min(par_a),max(par_a),min(par_e),max(par_e)]\n", + "ax.set_xlim(extent[0],extent[1])\n", + "ax.set_xlabel(\"semi-major axis $a$\")\n", + "ax.set_ylim(extent[2],extent[3])\n", + "ax.set_ylabel(\"eccentricity $e$\")\n", + "im = ax.imshow(results2d, interpolation=\"none\", vmin=1.9, vmax=4, cmap=\"RdYlGn_r\", origin=\"lower\", aspect='auto', extent=extent)\n", + "cb = plt.colorbar(im, ax=ax)\n", + "cb.set_label(\"MEGNO $\\\\langle Y \\\\rangle$\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/OrbitPlot.ipynb b/rebound/source/ipython_examples/OrbitPlot.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..89e5ae1796a9b40bac494d5abab1e53d5ea7c963 --- /dev/null +++ b/rebound/source/ipython_examples/OrbitPlot.ipynb @@ -0,0 +1,542 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Orbit Plot\n", + "*Note that OrbitPlot has changed from being a function to a class in REBOUND version 3.22.* \n", + "\n", + "REBOUND comes with a simple way to plot instantaneous orbits of planetary systems. To show how this works, let's setup a test simulation with 4 planets." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1)\n", + "sim.add(m=0.1, e=0.041, a=0.4, inc=0.2, f=0.43, Omega=0.82, omega=2.98)\n", + "sim.add(m=1e-3, e=0.24, a=1.0, pomega=2.14)\n", + "sim.add(m=1e-3, e=0.24, a=1.5, omega=1.14, l=2.1)\n", + "sim.add(a=-2.7, e=1.4, f=-1.5,omega=-0.7) # hyperbolic orbit" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To plot these initial orbits in the $xy$-plane, we can simply create an `OrbitPlot` instance and give it the simulation as an argument during initialization." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "op = rebound.OrbitPlot(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can access the matplotlib figure and axes using attributes `ob.fig` and `ob.ax`. This allows you for example to save the figure to a file:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "op.fig.savefig(\"orbit.png\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "There are various ways to customize the plot. Have a look at the arguments used in the following examples, which are pretty much self-explanatory (if in doubt, check the documentation!). " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "op = rebound.OrbitPlot(sim, unitlabel=\"[AU]\", color=True, periastron=True, xlim=[-2,2], ylim=[-2.5,1.5])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "op = rebound.OrbitPlot(sim, orbit_style=\"solid\", lw=2)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "op = rebound.OrbitPlot(sim, orbit_style=None)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you want to get a sense of the three dimensional architecture of a planetary system, you can use `OrbitPlotSet` which shows three different perspectives of the same system:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ops = rebound.OrbitPlotSet(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Primary particles\n", + "\n", + "Note that all orbits that we have drawn so far used the center of mass of all interior particles as their primary particle. This coordinate system is known as Jacobi coordinates. It requires that the particles are sorted by ascending semi-major axis within the REBOUND simulation's particle array. You can specify the primary particle manually, for example to show heliocentric orbits or specific s- or p-type orbits in binaries. For example, have a look at this planetary system:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.) # Star A\n", + "sim.add(m=1., a=1.) # Star B\n", + "sim.add(a=2.) # Circumbinary planet ABb\n", + "sim.add(a=0.2, primary=sim.particles[1]) # Planet Bb, orbiting star B \n", + "sim.move_to_com()\n", + "fig = rebound.OrbitPlot(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Circumbinary Planet ABb is plotted correctly in orbit around the center of mass of A and B, but Bb's Jacobi orbit is also around the center of mass of the interior particles, which, in this case renders as a hyperbolic orbit ( Note that although the plot looks incorrect, IAS15 would correctly integrate their motions).\n", + "\n", + "One way to fix the visualization is to create two orbit plots using the same matplotlib figure and axes, but each showing different particles, around different primaries. Here's how this can be done:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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LoTFKFBUVBSioqLadd+ioiJMnDgRw4cPxzvvvHPBTTb9TUeeJ/o5vV6P4cOHY+PGjd6JJB6PBxs3bsT8+fPFhiPFkSQJDz30ED7//HNs2bIFvXv3Fh2p07EYFaCoqAgTJkxAz5498eKLL6KiosL7Of7Gf66zZ8/CZrPh7NmzcLvdyMnJAQD07dsXZrNZbDiBFixYgNmzZ2PEiBEYOXIkXnnlFTQ0NOCuu+4SHU1W6uvrkZ+f733/1KlTyMnJgdVqRVJSksBk8jFv3jysXr0aa9euRUhIiPc8dWhoKIxGo+B0nUQi2XvnnXckAG3e6FyzZ89u83navHmz6GjCLV26VEpKSpL0er00cuRIaceOHaIjyc7mzZvb/PmZPXu26Giycb7XonfeeUd0tE7D6xiJiIh8BM6JKiIionZgMRIREflgMRIREflgMRIREflgMRIREflgMRIREflgMRIREflgMRIREflgMRIREflgMRIREflgMRL5uYqKCsTGxuK5557zfuzHH3+EXq/Hxo0bBSYjkieulUoUAL7++mvMnDkTP/74IwYMGID09HTccMMNeOmll0RHI5IdFiNRgJg3bx6+//57jBgxArm5udi9ezcMBoPoWESyw2IkChBNTU1IS0tDQUEB9uzZg8GDB4uORCRLPMdIFCBOnDiB4uJieDwenD59WnQcItniiJEoADidTowcORLp6ekYMGAAXnnlFeTm5iI6Olp0NCLZYTESBYDHHnsMn3zyCfbv3w+z2Yyrr74aoaGhWLdunehoRLLDQ6lEfm7Lli145ZVX8N5778FisUCtVuO9997D9u3bsXz5ctHxiGSHI0YiIiIfHDESERH5YDESERH5YDESERH5YDESERH5YDESERH5YDESERH5YDESERH5YDESERH5YDESERH5YDESERH5YDESERH5YDESERH5+H8KAcIWAODSWgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ob1 = rebound.OrbitPlot(sim, particles = [1,2])\n", + "ob2 = rebound.OrbitPlot(sim, particles = [3], primary=1, show_primary=False, fig=ob1.fig, ax = ob1.ax)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Kepler-Orrery style plots\n", + "\n", + "You can use a similar idea to show multiple planetary systems in the same figure. This time we're creating the matplotlib figure by hand and then adding one orbit plot for each system." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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TMRDDz2EIUOGwN3dHVKpFFVVVaiqqoJSqUSfPn0wb948LF++HEOHDrWYZdW042NLYigWi3Ht2jWMHj3a7gIBuHVwLRQKWUs8Dhw4EA888ACOHTtmMQgrIiICb7zxBj777DMsWrQIQUFBqKioQHJyMpKTk6FWqzF//nzs27cPS5cubfce06dPx+rVq82/w4kTJ8xxOkzcuHEDV65cwdSpU6374jbi5ORkViaZMC3czc3NFk2NbInqgFsxKc7OzvD29oafn59FgUDTNE6ePAmapll3CTU1NTAYDKwFyzqM3fyYbqOxsZG88847JCsri7Xdli1byFtvvWX3wtNsnDp1ioSHh5OPPvqItd33339PYmNjSV1dXZf1pbKykqxZs+YeF93boWmabN26lTz33HOkurq608+01kVv3759JCIiguzYsYP1fv/5z3/I0KFDiUwm63TfmGhoaCCpqamkra2NsY1eryfTp08n7u7uNhdh7wx1dXUkLS2NNDY2srbbsWMHWb16dYdcPq0lMzOTrFu3jtWtUqvVkr/97W9kwYIFrO1sJTU19Q435+nTp9vspkoIIe+++y55/PHH7eJCzIRWqyUymYzRbZiQW67olZWVpLKyktX91Bb3dmtISUkhmzZtsrjuHD58mBw5csSme1tLlwgFQm75137++eesPrgGg4F88sknZPny5aSgoKCrumImJSWFREVFkbfffpt10jU3N5NBgwaRDz74oMv7tHPnTvLdd9+x9kej0ZCPP/6YrFq1ilRWVnb6mXe/wKZYAxOHDh0ic+bMIW+99RbriyMSicjUqVPJ1q1bO90nNmiaJhcvXiSXL19m7c+vv/5qVUyFvWhoaCCXL1+2KKyrqqrI8uXLyenTp+36/LsxGAxk/fr1rH7thBAiFovJq6++ShYvXkyamprs3g9rY1vu5vLly2TAgAHk+PHjdu/T7dA0TWQyGVEqlaztdDodKS0tJeXl5YzvZ0e/a3t9OnfuHPn5558tKsnl5eXkhx9+6DKFtcuEQltbG3n33XdZg2oIubXgffPNN2TRokXk4sWLXdIXiqLI9u3bybBhw8g///lPi9raypUryfz581mDa+xFQ0MD+eKLL8iFCxdY2ykUCrJ69Wry2muv2TXw6XYoiiLfffcdSUhIIG+++SaroKJpmjz33HNkypQprEFR9qK1tZUcO3aMVFVV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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "fig, ax = plt.subplots()\n", + "ax.set_aspect(\"equal\") # this is needed if you don't want to get stretched orbits\n", + "ax.axis('off') # no axis ticks\n", + "for x in range(5):\n", + " for y in range(5):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1)\n", + " for i in range(3):\n", + " sim.add(a=3+2.2*i, f=\"uniform\")\n", + " sim.move_to_com()\n", + " rebound.OrbitPlot(sim, fig=fig, ax=ax, origin = [-x*20., -y*20.])\n", + "ax.set_xlim([-10,90])\n", + "ax.set_ylim([-10,90]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Manually adjusting plot components\n", + "\n", + "You can access the `PathCollection` and `LineCollection` structures that OrbitPlot uses internally to adjust their appearance. These are stored in the `primary`, `particles`, and `orbits` attributes. This gives you great flexibility when it comes to customizing your plot. For example:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "op = rebound.OrbitPlot(sim)\n", + "op.orbits[1].set_linewidth(5)\n", + "op.orbits[2].set_linestyle(\"--\")\n", + "op.particles.set_color([\"red\", \"green\", \"black\"])\n", + "op.particles.set_sizes([500,100,1000])\n", + "op.primary.set_sizes([1000])\n", + "op.primary.set_edgecolor(\"orange\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, you can combine multiple orbit plots in one figure to give you a similar result. For example:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "op1 = rebound.OrbitPlot(sim, particles=[1,3])\n", + "op2 = rebound.OrbitPlot(sim, particles=[2], ax=op1.ax, fig=op1.fig, lw=5, color=\"red\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Updating plots\n", + "\n", + "You can update the simulation data in an OrbitPlot after integrating the simulation. For example, integrating the last simulation and then updating the plot (including the highlighted orbit) can be done with:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.integrate(sim.t+3.2)\n", + "op1.update()\n", + "op2.update() # red planet orbit\n", + "op1.fig" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Animations\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Updating OrbitPlot is efficient. Only the underlying data is updated whereas the figure itself does not need to get recreated. This makes it possible to render animations. Let us first render a series of frames to files:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(3):\n", + " sim.integrate(sim.t+0.31)\n", + " op1.update()\n", + " op2.update()\n", + " op1.fig.savefig(\"out_%02d.png\"%i)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You could now convert these images to a gif or a movie, for example by using ImageMagick's `convert` or `ffmpeg`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Interactive plots and animations in a jupyter notebook\n", + "You can update exisiting figures in a jupyter notebook if you use matplotlib's widget backend using `%matplotlib widget`. These figures are interactive, you can zoom in, move around, and resize them.\n", + "\n", + "Note that you might need to run `%matplotlib widget` before importing rebound or matplotlib. If the following cells don't work, restart your kernel." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib widget\n", + "import rebound" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b9b7d3cabefb435283eadde0631d4160", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "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9u3D7t27cerUKYwYMQKzZ8/GxIkT4eHhIXaJF/T555/jk08+wYIFC3DjjTeKXY4kSHl/z0CHtD9gZ3LXXXfh/fffP+P+hQsX4r333hOhIuno6urChg0b8PrrryM/Px9JSUlYsGAB5s6di9DQULHLE53BYMC2bdvwzTff4NChQwgKCsL111+PWbNmOf1gzE8++QSff/457rrrLtxwww1il+PypLy/Z6BD2h+ws8nOzsYTTzxhPQ/92WefZcv8ErS2tuLdd9/FqlWrYLFYcMUVV+DOO+/EuHHjIJdzIsizKS4uxjfffIMff/wRbW1tGDVqFG677TZkZWU55XsmCALWrFmDr776CnfffTeuv/56sUtyaVLe3zPQIe0PmKSpuroa//73v/HBBx/AbDbjL3/5C/7rv/4LCQkJYpfmMrq7u7F161Zs2bIFu3btwrhx4zB9+nRMnDjR6YJdEAR8+OGH2LNnD+644w6MHTtW7JJclpT39wx0SPsDJmlpbGzEyy+/jI0bN6KlpQULFy7EPffcg7CwMLFLc2lHjhzBF198gW3btqF///64++67cfnllzvV6HhBEPDuu+9i06ZNeO655zBgwACxS3JJUt7fO9fXUCLCli1bkJWVhfj4eGRlZWHLli0wGAx4/fXXkZWVhQ0bNuCWW27BkSNHsHz5coa5DWRkZGDFihV4++234ePjg6VLl+Kuu+7C/v37xS7NSiaTYcGCBejfvz+ef/55NDQ0iF0SORm20CHtb2xisFgskMlkTtW6cRXnmh43KCgIBoMBixYtwn//938jODhYhOrcgyAI2L9/P1atWoW8vDwMGzYM999/v9O0iLVaLR5++GH4+PjghRdecPkZ8hxNyvt7Bjqk/QE7msViAQCnOwbpCi50at+7776Lu+66y4EVuTdBEPD777/j22+/xZ49ezB9+nT89a9/dYovU2VlZXj00UcxdOhQPPbYY/zy3AtS3t9zr0s2wzC/NMuXLz/v42c75Y/sRyaT4YorrsArr7yCRx99FHv27MF9992HDRs2WH/XxRIfH4+lS5diz549+Pzzz0WthZwH97xkEz0dPQzzvuP0uM5JLpfjhhtuwKeffoohQ4bgpZdewt/+9jdUVFSIWtfIkSNx++2348svv8Tvv/8uai3kHLj3pUtmsVisx82p7y40FasUp2p1JRqNBsuWLcNrr72G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QnJysuDl5SUEBQUJEyZMELZt2yZO8U6Ol08lIiKSALca5U5ERCRVDHQiIiIJYKATERFJAAOdiIhIAhjoREREEsBAJyIikgAGOhERkQQw0ImIiCSAgU5ERCQBDHQiIiIJYKATuZmGhgZERETg+eeft963a9cueHp6Ijs7W8TKiOhScC53Ijf0008/YebMmdi1axdSU1ORmZmJGTNm4F//+pfYpRFRHzHQidzUvffei61bt2LEiBHIzc3F/v37oVKpxC6LiPqIgU7kprq6ujB48GBUVFTg4MGDSE9PF7skIroEPIZO5KaKiopQXV0Ni8WC0tJSscshokvEFjqRGzIYDBg5ciQyMzORmpqKV199Fbm5uQgLCxO7NCLqIwY6kRt65JFH8PXXX+PIkSPw9fXF+PHjERAQgB9++EHs0oioj9jlTuRmtm/fjldffRUff/wx/P39IZfL8fHHH2PHjh34n//5H7HLI6I+YgudiIhIAthCJyIikgAGOhERkQQw0ImIiCSAgU5ERCQBDHQiIiIJYKATERFJAAOdiIhIAhjoREREEsBAJyIikgAGOhERkQQw0ImIiCSAgU5ERCQBDHQiIiIJYKATERFJwP8HPjhKLWn6RAoAAAAASUVORK5CYII=", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], + "text/plain": [ + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1)\n", + "sim.add(m=0.1, e=0.041, a=0.4, inc=0.2, f=0.43, Omega=0.82, omega=2.98)\n", + "sim.add(m=1e-3, e=0.24, a=1.0, pomega=2.14)\n", + "sim.add(m=1e-3, e=0.24, a=1.5, omega=1.14, l=2.1)\n", + "op = rebound.OrbitPlot(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can update the plot during an integration. " + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "fig = op.fig\n", + "for i in range(100):\n", + " op.sim.integrate(sim.t+0.6)\n", + " op.update() # update data\n", + " fig.canvas.draw() # redraw figure" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that the simulation slowly drifted out of the frame. Ideally, we should move the simulation to the center of mass frame using `sim.move_to_com()`. Alternatively, we can also adjust the plot boundaries by passing the `updateLimits=True` argument to the update function:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(100):\n", + " op.sim.integrate(sim.t+0.6)\n", + " op.update(updateLimits=True)\n", + " fig.canvas.draw()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can make all the plots in the notebook interactive and update them dynamically. If a figure contains multiple OrbitPlots (such as in the orrery example), you need to call `update()` on each OrbitPlot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/OrbitalElements.ipynb b/rebound/source/ipython_examples/OrbitalElements.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..83a3dfd8bfa682d4c2534192d519fc17999186f2 --- /dev/null +++ b/rebound/source/ipython_examples/OrbitalElements.ipynb @@ -0,0 +1,916 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Orbital Elements\n", + "\n", + "**Note: All angles for orbital elements are in radians**\n", + "\n", + "We can add particles to a simulation by specifying cartesian components:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:37.673734Z", + "start_time": "2023-10-31T16:04:37.647297Z" + } + }, + "outputs": [], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1., x=1., vz = 2.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Any components not passed automatically default to 0. REBOUND can also accept orbital elements. \n", + "\n", + "**Reference bodies**\n", + "\n", + "As a reminder, there is a one-to-one mapping between (x,y,z,vx,vy,vz) and orbital elements, and one should always specify what the orbital elements are referenced against (e.g., the central star, the system's barycenter, etc.). The differences between orbital elements referenced to these centers differ by $\\sim$ the mass ratio of the largest body to the central mass. By default, REBOUND always uses Jacobi elements, which for each particle are always referenced to the center of mass of all particles with lower index in the simulation. \n", + "\n", + "For the painstaking user: When separating out the center of mass degree of freedom and reducing the N body problem to N-1 Kepler problems and interaction terms, there are a number of possible Hamiltonian splittings (see e.g., Hernandez & Dehnen 2017), and different possible choices for the primary mass in each of the separate Kepler problems. REBOUND takes this primary mass to be the total mass of all the particles in the simulation. If particles are added from the inside out, this gives logical behavior in the limit of a hierarchical system, even for large masses (one can think of it as setting up our new particle in a 2-body orbit around all the interior mass concentrated at the interior particles' center of mass). \n", + "\n", + "Let's set up a stellar binary," + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:40.389981Z", + "start_time": "2023-10-31T16:04:40.385507Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t4.0.3\n", + "REBOUND built on: \tJan 12 2024 08:52:18\n", + "Number of particles: \t2\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "sim.add(m=1., a=1.)\n", + "sim.status(showAllFields=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We always have to pass a semimajor axis (to set a length scale), but any other elements are by default set to 0. Notice that our second star has the same vz as the first one due to the default Jacobi elements. Now we could add a distant planet on a circular orbit," + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:42.146464Z", + "start_time": "2023-10-31T16:04:42.143177Z" + } + }, + "outputs": [], + "source": [ + "sim.add(m=1.e-3, a=100.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This planet is set up relative to the binary center of mass (again due to the Jacobi coordinates), which is probably what we want. But imagine we now want to place a test mass in a tight orbit around the second star. If we passed things as above, the orbital elements would be referenced to the binary/outer-planet center of mass. We can override the default by explicitly passing a primary (any instance of the Particle class):" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:43.494998Z", + "start_time": "2023-10-31T16:04:43.489556Z" + } + }, + "outputs": [], + "source": [ + "sim.add(primary=sim.particles[1], a=0.01)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All simulations are performed in Cartesian elements, so to avoid the overhead, REBOUND does not update particles' orbital elements as the simulation progresses. However, you can always access any orbital element through, e.g., `sim.particles[1].inc` (see the diagram, and table of orbital elements under the Orbit structure at https://rebound.hanno-rein.de/orbitalelements/). This will calculate that orbital element individually--you can calculate all the particles' orbital elements at once with `sim.orbits()`. REBOUND will always output angles in the range $[-\\pi,\\pi]$, except the inclination which is always in $[0,\\pi]$." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:45.249652Z", + "start_time": "2023-10-31T16:04:45.245411Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0000000000000002\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "print(sim.particles[1].a)\n", + "orbits = sim.orbits()\n", + "for orbit in orbits:\n", + " print(orbit)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that there is always one less orbit than there are particles, since orbits are only defined between pairs of particles. We see that we got the first two orbits right, but the last one is way off. The reason is that again the REBOUND default is that we always get Jacobi elements. But we initialized the last particle relative to the second star, rather than the center of mass of all the previous particles.\n", + "\n", + "To get orbital elements relative to a specific body, you can manually use the `orbit` method of the Particle class:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:46.285633Z", + "start_time": "2023-10-31T16:04:46.281830Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "print(sim.particles[3].orbit(primary=sim.particles[1]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "though we could have simply avoided this problem by adding bodies from the inside out (second star, test mass, first star, circumbinary planet).\n", + "\n", + "When you access orbital elements individually, e.g., `sim.particles[1].inc`, you always get Jacobi elements. If you need to specify the primary, you have to do it with `sim.orbit()` as above.\n", + "\n", + "**Edge cases and orbital element sets**\n", + "\n", + "Different orbital elements lose meaning in various limits, e.g., a planar orbit and a circular orbit. REBOUND therefore allows initialization with several different types of variables that are appropriate in different cases. It's important to keep in mind that the procedure to initialize particles from orbital elements is not exactly invertible, so one can expect discrepant results for elements that become ill-defined. For example, " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:46.961943Z", + "start_time": "2023-10-31T16:04:46.956924Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(a=1., e=0., inc=0.1, Omega=0.3, omega=0.1)\n", + "sim.particles[1].orbit()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The problem here is that $\\omega$ (the angle from the ascending node to pericenter) is ill-defined for a circular orbit, so it's not clear what we mean when we pass it, and we get spurious results for both $\\omega$ and $f$, since the latter is also undefined as the angle from pericenter to the particle's position. However, the true longitude $\\theta$, the broken angle from the $x$ axis to the ascending node = $\\Omega + \\omega + f$, and then to the particle's position, is always well-defined: " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:47.904555Z", + "start_time": "2023-10-31T16:04:47.901197Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.3999999999999986\n" + ] + } + ], + "source": [ + "print(sim.particles[1].theta)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To be clearer and ensure we get the results we expect, we could instead pass theta to specify the longitude we want, e.g." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:48.648906Z", + "start_time": "2023-10-31T16:04:48.644188Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.3999999999999986\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(a=1., e=0., inc=0.1, Omega=0.3, theta = 0.4)\n", + "print(sim.particles[1].theta)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:49.053002Z", + "start_time": "2023-10-31T16:04:49.046366Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(a=1., e=0.2, Omega=0.1)\n", + "sim.particles[1].orbit()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we have a planar orbit, in which case the line of nodes becomes ill-defined, so $\\Omega$ is not a good variable, but we pass it anyway! In this case, $\\omega$ is also undefined since it is referenced to the ascending node. Here we get that now these two ill-defined variables get flipped. The appropriate variable is pomega ($\\varpi = \\Omega + \\omega$), which is the angle from the $x$ axis to pericenter:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:50.157271Z", + "start_time": "2023-10-31T16:04:50.153551Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.09999999999999945\n" + ] + } + ], + "source": [ + "print(sim.particles[1].pomega)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can specify the pericenter of the orbit with either $\\omega$ or $\\varpi$:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:50.786246Z", + "start_time": "2023-10-31T16:04:50.781876Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(a=1., e=0.2, pomega=0.1)\n", + "sim.particles[1].orbit()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that if the inclination is exactly zero, REBOUND sets $\\Omega$ (which is undefined) to 0, so $\\omega = \\varpi$. \n", + "\n", + "Finally, we can specify the position of the particle along its orbit using mean (rather than true) longitudes or anomalies (for example, this might be useful for resonances). We can either use the mean anomaly $M$, which is referenced to pericenter (again ill-defined for circular orbits), or its better-defined counterpart the mean longitude `l` $= \\lambda = \\Omega + \\omega + M$, which is analogous to $\\theta$ above," + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:51.821603Z", + "start_time": "2023-10-31T16:04:51.816066Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.4000000000000039\n", + "0.39999999999999947\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(a=1., e=0.1, Omega=0.3, M = 0.1)\n", + "sim.add(a=1., Omega=0.3, l = 0.4)\n", + "print(sim.particles[1].l)\n", + "print(sim.particles[2].l)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "REBOUND calculates the mean longitude in such a way that it smoothly approaches $\\theta$ in the limit of $e\\rightarrow0$:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:04:52.435713Z", + "start_time": "2023-10-31T16:04:52.423600Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.39999999999999947" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[2].theta" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In summary, you can specify the phase of the orbit through any one of the angles `M`, `f`, `theta` or `l`=$\\lambda$. Additionally, one can instead use the time of pericenter passage `T`. This time should be set in the appropriate time units, and you'd initialize `sim.t` to the appropriate time you want to start the simulation." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Accuracy**\n", + "\n", + "As a test of accuracy and demonstration of issues related to the last section, let's test the numerical stability by initializing particles with small eccentricities and true anomalies, computing their orbital elements back, and comparing the relative error. We choose the inclination and node longitude randomly:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:05.189246Z", + "start_time": "2023-10-31T16:05:05.182572Z" + } + }, + "outputs": [], + "source": [ + "import random\n", + "import numpy as np\n", + "\n", + "def simulation(par):\n", + " e,f = par\n", + " e = 10**e\n", + " f = 10**f\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.)\n", + " a = 1.\n", + " inc = random.random()*np.pi\n", + " Omega = random.random()*2*np.pi\n", + " sim.add(m=0.,a=a,e=e,inc=inc,Omega=Omega, f=f)\n", + " o=sim.particles[1].orbit()\n", + " if o.f < 0: # avoid wrapping issues\n", + " o.f += 2*np.pi\n", + " err = max(np.fabs(o.e-e)/e, np.fabs(o.f-f)/f)\n", + " return err" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will use the multiprocess module to run the computation in parallel. If the following line throws you an ImportError, install the module with `pip install multiprocess`." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:08.599684Z", + "start_time": "2023-10-31T16:05:08.579075Z" + } + }, + "outputs": [], + "source": [ + "from multiprocess import Pool" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:10.333965Z", + "start_time": "2023-10-31T16:05:10.155442Z" + } + }, + "outputs": [], + "source": [ + "random.seed(1)\n", + "N = 100\n", + "es = np.linspace(-16.,-1.,N)\n", + "fs = np.linspace(-16.,-1.,N)\n", + "params = [(e,f) for e in es for f in fs]\n", + "with Pool() as pool:\n", + " res = pool.map(simulation, params)\n", + " res = np.array(res).reshape(N,N)\n", + " res = np.nan_to_num(res)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:13.391051Z", + "start_time": "2023-10-31T16:05:12.855469Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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1ZJp6lwBwHTNMHnAX26xGpv0tCXG91+KdnOrLGuJC+TPCwCQI0uImYs3a12ad5HbsLllcoERU6in2ykPUX6OYe2Uyeo/5262qgsqXklb0ggFBAQgMTER69evx003/ZHGZv369Rg+fLjX5tW7d2/07t0bTz31FL7++mv83//9H+655x6MHz8eI0aMwGuvveb8JA64tKD79NNP8cknn6B///4uvSgRERE1HQbsMBwFTdbxHHVVWFiIffv2VbfT09ORlpaGyMhIxMfHY+rUqRg1ahT69OmDpKQkLFu2DBkZGZg4caJbc/UEk8mE5ORkJCcn495778W4cePw+uuvN+yCLiIiwmN7vkREROTb7Ibh9pap3TCcd1Js27YNycnJ1e0z6dVGjx6NFStW4NZbb8XJkycxd+5cZGVloXv37li7di0SEhLcmqsnZGZm4u2338b//d//4eeff0ZSUtI58+nVhksLusceewyzZs3C66+/LnLRERERETWUgQMHwnCyEJw0aRImTZrUQDNybtmyZXjrrbfw7bff4sILL8Rf/vIXrFmzBu3atXPrvCbD2SfhQK9evbB//34YhoF27drB31/GM2zfvv0cIxu/goIChIWF4WV0RAgcxHIQkdeo2QvUGGJHaUsqlQwdduUigqO0JbFXyTxYRUoZpm8+OKmNiWoh2/2mOy/9lfHO/0S7w3195PNKGhMACAiVv28LjxWJdqBVT/GQsEIpp9Vcr0V54t4lol16Sqa+iHtP5vICgJL5MuOBLV/+QPxjlTwzAGzHZXxXyFNKqpNSvSRS5Xv/FW2/vyilv774SBtjnJbzN26R6V0sBTJdCgAYO2QZL0QqMYAF8rMGANPl18pzHNyh9ans0Eu0/W3yH6HNT7+2YilWPodAWSINhfr8z8TVFRSUILz9ROTn59d7erEz35nHc/8Dq9W9CzwFBcWIibylQebtTXFxcbjtttvwl7/8xaPFGFy6QqfWSSMiIqLzlyfuUvX0Xa6NVUZGRr3cTOrSgm727NmengcRERFRk7Rz5050794dZrMZP//8c419e/TQk1PXhksLOgDIy8vDe++9h/379+PBBx9EZGQktm/fjpiYGLRt29bV0xIREZGP8WRi4abokksuwbFjxxAdHY1LLrkEJpNJxP6daZtMJthseiWX2nBpQbdz505cc801CAsLw8GDBzFhwgRE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ho6IiIiIHOOCjoiIiMjHcUFHRERE5OO4oPvdvHnz0K9fP4SEhCA8PPyc/VasWIEePXogKCgIrVq1wuTJkxtukh5Q2/cJACdPnkRsbCxMJhPy8vIaZH6e4ux9/vTTT7j99tsRFxeH4OBgdOnSBc8++2zDT9RNtfl5ZmRkYNiwYWjWrBmioqIwZcoUj2V195bffvsNw4cPR1RUFKxWK/r3748NGzZ4e1r14pNPPsFll12G4OBgREVF4c9//rO3p1RvysrKcMkll8BkMlXnGm0qDh48iHHjxqF9+/YIDg5Gx44dMXv2bJ//b5EaDy7ofldeXo6RI0fi3nvvPWefRYsWYebMmZg+fTp2796NL7/8EkOGDGnAWbqvNu/zjHHjxqFHjx4NMCvPc/Y+U1NT0bJlS7z55pvYvXs3Zs6ciRkzZuCFF15o4Jm6x9n7tNlsuO6661BUVITNmzfjnXfewfvvv4+///3vDTxTz7ruuutQWVmJr776Cqmpqbjkkktw/fXX16mcjy94//33MWrUKNx111346aef8O233+KOO+7w9rTqzUMPPdQg5aq84ZdffoHdbsdLL72E3bt345lnnsGLL76If/7zn96eGjUVXqsi20gtX77cCAsL047n5uYawcHBxhdffNHwk6oH53qfZyxZssS46qqrjC+//NIAYJw6darB5uZJzt7n2SZNmmQkJyfX74Tqybne59q1aw2z2WwcOXKk+tjbb79tBAYGGvn5+Q04Q885ceKEAcDYuHFj9bGCggIDQJP579Mwqgp/t23b1njllVe8PZUGsXbtWuOiiy4ydu/ebQAwduzY4e0p1bunnnrKaN++vbenQU0Er9DV0vr162G323HkyBF06dIFsbGxuOWWW5CZmentqXncnj17MHfuXKxcuRJm8/nzTyQ/Px+RkZHenoZHbd26Fd27dxdXPYYMGYKysjKkpqZ6cWaua9GiBbp06YKVK1eiqKgIlZWVeOmllxATE4PExERvT89jtm/fjiNHjsBsNqNXr15o3bo1UlJSsHv3bm9PzeOOHz+OCRMm4I033kBISIi3p9NgmuLvHPKe8+fb2k0HDhyA3W7HE088gcWLF+O9995Dbm4urr322iYVA1FWVobbb78dCxYsQHx8vLen02C2bt2K//znP7jnnnu8PRWPOnbsmFazMCIiAgEBAT67PWkymbB+/Xrs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+fLl2Lp1K+66664a+19yySUAqq5wnvnfNdm1axd69+5dm+kTEXkcF3REjVC7du3w/fff4+DBgwgNDUVkZOQ5+w4aNAgLFizAypUrkZSUhDfffBO7du1Cr169AADNmzfHtGnT8MADD8But+OKK65AQUEBtmzZgtDQUIwePVo7Z3x8PAICAvD8889j4sSJ2LVrFx577LE6v48HH3wQt9xyC3r37o2rr74aH330ET744IMa70itjU6dOuGDDz7AsGHDYDKZ8Mgjj9QqB9z48eNx/fXXw2azOXzfZ2vZsiV69+6NzZs312pBt2nTJgwePLi2b4GIyKMYQ0fUCE2bNg0WiwVdu3at3u48lyFDhuCRRx7BQw89hL59++L06dPiihhQdRfprFmzMH/+fHTp0gVDhgzBRx99hPbt2zs8Z8uWLbFixQq8++676Nq1K5588kksXLiwzu/jxhtvxLPPPosFCxagW7dueOmll7B8+XKRUsUVzzzzDCIiItCvXz8MGzYMQ4YMqdXVsWuuuQatW7fGkCFD0KZNG6f97777brz11ltO+x05cgRbtmxxetWPiKi+mAw1+IaIqIkqLi5GmzZt8Nprr+HPf/6z0/6lpaW48MIL8c477yApKemc/R588EHk5+dj2bJlnpwuEVGtccuViJo8u92OY8eO4emnn0ZYWJhIFlyToKAgrFy5Ejk5OTX2i46OxrRp0zwxVSIil/AKHRE1eQcPHkT79u0RGxuLFStW4Oqrr/b2lIiIPIoLOiIiIiIfx5siiIiIiHwcF3REREREPo4LOiIiIiIfxwUdERERkY/jgo6IiIjIx3FBR0REROTjuKAjIiIi8nFc0BERERH5OC7oiIiIiHzc/wc232jU0y803QAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib import ticker\n", + "from matplotlib.colors import LogNorm\n", + "import matplotlib\n", + "\n", + "f,ax = plt.subplots(1,1,figsize=(7,5))\n", + "extent=[fs.min(), fs.max(), es.min(), es.max()]\n", + "\n", + "ax.set_xlim(extent[0], extent[1])\n", + "ax.set_ylim(extent[2], extent[3])\n", + "ax.set_xlabel(r\"true anomaly (f)\")\n", + "ax.set_ylabel(r\"eccentricity\")\n", + "\n", + "im = ax.imshow(res, norm=LogNorm(vmax=1., vmin=1.e-16), aspect='auto', origin=\"lower\", interpolation='nearest', cmap=\"RdYlGn_r\", extent=extent)\n", + "cb = plt.colorbar(im, ax=ax)\n", + "cb.solids.set_rasterized(True)\n", + "cb.set_label(\"Relative Error\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the behavior is poor, which is physically due to $f$ becoming poorly defined at low $e$. If instead we initialize the orbits with the true longitude $\\theta$ as discussed above, we get much better results:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:22.873572Z", + "start_time": "2023-10-31T16:05:22.442522Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def simulation(par):\n", + " e,theta = par\n", + " e = 10**e\n", + " theta = 10**theta\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.)\n", + " a = 1.\n", + " inc = random.random()*np.pi\n", + " Omega = random.random()*2*np.pi\n", + " omega = random.random()*2*np.pi\n", + " sim.add(m=0.,a=a,e=e,inc=inc,Omega=Omega, theta=theta)\n", + " o=sim.particles[1].orbit()\n", + " if o.theta < 0:\n", + " o.theta += 2*np.pi\n", + " err = max(np.fabs(o.e-e)/e, np.fabs(o.theta-theta)/theta)\n", + " return err\n", + "\n", + "random.seed(1)\n", + "N = 100\n", + "es = np.linspace(-16.,-1.,N)\n", + "thetas = np.linspace(-16.,-1.,N)\n", + "params = [(e,theta) for e in es for theta in thetas]\n", + "\n", + "with Pool() as pool:\n", + " res = pool.map(simulation, params)\n", + " res = np.array(res).reshape(N,N)\n", + " res = np.nan_to_num(res)\n", + "\n", + "f,ax = plt.subplots(1,1,figsize=(7,5))\n", + "extent=[thetas.min(), thetas.max(), es.min(), es.max()]\n", + "\n", + "ax.set_xlim(extent[0], extent[1])\n", + "ax.set_ylim(extent[2], extent[3])\n", + "ax.set_xlabel(r\"true longitude (\\theta)\")\n", + "ax.set_ylabel(r\"eccentricity\")\n", + "\n", + "im = ax.imshow(res, norm=LogNorm(vmax=1., vmin=1.e-16), aspect='auto', origin=\"lower\", interpolation='nearest', cmap=\"RdYlGn_r\", extent=extent)\n", + "cb = plt.colorbar(im, ax=ax)\n", + "cb.solids.set_rasterized(True)\n", + "cb.set_label(\"Relative Error\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Hyperbolic & Parabolic Orbits**\n", + "\n", + "REBOUND can also handle hyperbolic orbits, which have negative $a$ and $e>1$:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:26.698969Z", + "start_time": "2023-10-31T16:05:26.691959Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t4.0.3\n", + "REBOUND built on: \tJan 12 2024 08:52:18\n", + "Number of particles: \t4\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "\n", + "\n", + "---------------------------------\n", + "The following fields have non-default values:\n", + "N:\n", + "\u001b[31m< 0\u001b[0m\n", + "---\n", + "\u001b[32m> 4\u001b[0m\n", + "rand_seed:\n", + "\u001b[31m< 620290\u001b[0m\n", + "---\n", + "\u001b[32m> 778246\u001b[0m\n", + "particles:\n", + "\u001b[32m> (512 bytes, values not printed)\u001b[0m\n", + "\n" + ] + } + ], + "source": [ + "sim.add(a=-0.2, e=1.4)\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Currently there is no support for exactly parabolic orbits, but we can get a close approximation by passing a nearby hyperbolic orbit where we can specify the pericenter = $|a|(e-1)$ with $a$ and $e$. For example, for a 0.1 AU pericenter," + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:33.467627Z", + "start_time": "2023-10-31T16:05:33.462702Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ">\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "q = 0.1\n", + "a=-1.e14\n", + "e=1.+q/np.fabs(a)\n", + "sim.add(a=a, e=e)\n", + "print(sim.particles[1].orbit)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Retrograde Orbits**\n", + "\n", + "Orbital elements can be counterintuitive for retrograde orbits, but REBOUND tries to sort them out consistently. This can lead to some initially surprising results. For example," + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:35.112999Z", + "start_time": "2023-10-31T16:05:35.107330Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ">\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(a=1.,inc=np.pi,e=0.1, Omega=0., pomega=1.)\n", + "print(sim.particles[1].orbit)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We passed $\\Omega=0$ and $\\varpi=1.$. For prograde orbits, $\\varpi = \\Omega + \\omega$, so we'd expect $\\omega = 1$, but instead we get $\\omega=-1$. If we think about things physically, $\\varpi$ is the angle from the $x$ axis to pericenter, measured in the positive direction (counterclockwise) defined by $z$. $\\Omega$ is always measured in this same sense, but $\\omega$ is always measured in the orbital plane *in the direction of the orbit*. For retrograde orbits, this means that $\\omega$ is measured in the opposite sense to $\\Omega$, so $\\varpi = \\Omega - \\omega$, which is why we got $\\omega = -1$. \n", + "\n", + "Similarly, the retrograde version of $\\theta = \\Omega + \\omega + f$ is $\\theta = \\Omega - \\omega - f$, and `l` = $\\lambda = \\Omega + \\omega + M$ becomes $\\lambda = \\Omega - \\omega - M$. REBOUND chooses these conventions based on whether $i < \\pi/2$, which means that if you were tracking $\\varpi$ for nearly polar orbits, you would get unphysical jumps if the orbits crossed back and forth between prograde and retrograde. Of course, $\\varpi$ is not a good angle at such high inclinations, and only has physical meaning when the orbital plane nearly coincides with the reference plane." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exceptions**\n", + "\n", + "Adding a particle or getting orbital elements from particles in a simulation should never yield NaNs in any of the structure fields. Please let us know if you find a case that does. \n", + "\n", + "In cases where it would return a `NaN`, `REBOUND` will raise a `ValueError`. The only cases that should do so when adding a particle are 1) passing an eccentricity of exactly 1. 2) passing a negative eccentricity. 3) Passing $e>1$ if $a>0$. 4) Passing $e<1$ if $a<0$. 5) Passing a longitude or anomaly for a hyperbolic orbit that's beyond the range allowed by the asymptotes defined by the hyperbola. You will also get errors if you try to initialize particles with orbital elements manually with `rebound.Particle()`.\n", + "\n", + "When obtaining orbital elements from a `Particle` structure, REBOUND will raise a `ValueError` if 1) the primary's mass is zero, or 2) the particle's and primary's position are the same.\n", + "\n", + "**Negative inclinations**\n", + "\n", + "While inclinations are only defined in the range $[0,\\pi]$, you can also pass negative inclinations when adding particles in REBOUND. This is interpreted as referencing $\\Omega$ and $\\omega$ to the **descending**, rather than the ascending node. So for example, if one set up particles with the same $\\Omega$ and a range of inclinations distributed around zero, one would obtain what one might expect, i.e. a set of orbits that are all rotated around the same line of nodes.\n", + "\n", + "**Jacobi masses**\n", + "\n", + "There is a classical Hamiltonian splitting for the N-body problem (see e.g., Wisdom & Holman 1991) that when expanded to first order in the planet/star mass ratio, gives an interaction Hamiltonian with the same form as the disturbing function for an exterior perturber. This makes it particularly attractive for analytic or semi-analytic studies. In this splitting, the masses of the primaries for each planet take on a particular form. One can add particles using these jacobi masses with the `jacobi_masses` flag. By default, this flag is false and the primary mass is the total mass of all particles in the simulation (see the top of this notebook)." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:37.091245Z", + "start_time": "2023-10-31T16:05:37.086813Z" + } + }, + "outputs": [], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(m=1.e-3, a=1., jacobi_masses=True)\n", + "sim.add(m=1.e-3, a=5., jacobi_masses=True)\n", + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The jacobi mass and default mass assigned by REBOUND always agree for the first particle, but differ for all the rest" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:38.102446Z", + "start_time": "2023-10-31T16:05:38.098406Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0 4.995009980039918\n" + ] + } + ], + "source": [ + "print(sim.particles[1].a, sim.particles[2].a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can calculate orbital elements using jacobi masses by using the same flag in `sim.orbits`" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "ExecuteTime": { + "end_time": "2023-10-31T16:05:38.958306Z", + "start_time": "2023-10-31T16:05:38.954331Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0 4.999999999999999\n" + ] + } + ], + "source": [ + "o = sim.orbits(jacobi_masses=True)\n", + "print(o[0].a, o[1].a)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/PoincareMap.ipynb b/rebound/source/ipython_examples/PoincareMap.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..213bf3e660942ba967f72bb3929b2be3f6c46c26 --- /dev/null +++ b/rebound/source/ipython_examples/PoincareMap.ipynb @@ -0,0 +1,387 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Poincare Map\n", + "This example shows how to calculate a simple Poincare Map with REBOUND. A Poincare Map (or sometimes called Poincare Section) can be helpful to understand dynamical systems." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:16.437138Z", + "start_time": "2023-09-24T21:21:16.376267Z" + } + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "import warnings" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We first create the initial conditions for our map. The most interesting Poincare maps exist near resonance, so we have to find a system near a resonance. The easiest way to get planets into resonance is migration. So that's what we'll do. Initially we setup a simulation in which the planets are placed just outside the 2:1 mean motion resonance." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:16.463359Z", + "start_time": "2023-09-24T21:21:16.447896Z" + } + }, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-3,a=1,e=0.001)\n", + "sim.add(m=0.,a=1.65)\n", + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We then define a simple migration force that will act on the outer planet. We implement it in python. This is relatively slow, but we only need to migrate the planet for a short time." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:16.492757Z", + "start_time": "2023-09-24T21:21:16.480378Z" + } + }, + "outputs": [], + "source": [ + "def migrationForce(reb_sim):\n", + " tau = 40000.\n", + " ps[2].ax -= ps[2].vx/tau\n", + " ps[2].ay -= ps[2].vy/tau\n", + " ps[2].az -= ps[2].vz/tau" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we link the additional migration forces to our REBOUND simulation and get the pointer to the particle array." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:16.508859Z", + "start_time": "2023-09-24T21:21:16.495569Z" + } + }, + "outputs": [], + "source": [ + "sim.additional_forces = migrationForce\n", + "ps = sim.particles" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then, we just integrate the system for 3000 time units, about 500 years in units where $G=1$." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:18.668900Z", + "start_time": "2023-09-24T21:21:16.510599Z" + } + }, + "outputs": [], + "source": [ + "sim.integrate(3000.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then we save the simulation to a binary file. We'll be reusing it a lot later to create the initial conditions and it is faster to load it from file than to migrate the planets into resonance each time. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:18.671759Z", + "start_time": "2023-09-24T21:21:18.669748Z" + } + }, + "outputs": [], + "source": [ + "sim.save_to_file(\"resonant_system.bin\") " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To create the poincare map, we first define which hyper surface we want to look at. Here, we choose the pericenter of the outer planet." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:18.674258Z", + "start_time": "2023-09-24T21:21:18.672500Z" + } + }, + "outputs": [], + "source": [ + "def hyper(sim):\n", + " dp = sim.particles[2]-sim.particles[0]\n", + " return dp.x*dp.vx + dp.y*dp.vy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will also need a helper function that ensures our resonant angle is in the range $[-\\pi:\\pi]$." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:18.676764Z", + "start_time": "2023-09-24T21:21:18.675076Z" + } + }, + "outputs": [], + "source": [ + "def mod2pi(x):\n", + " if x>np.pi:\n", + " return mod2pi(x-2.*np.pi)\n", + " if x<-np.pi:\n", + " return mod2pi(x+2.*np.pi)\n", + " return x" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function generate the Poincare Map for one set of initial conditions. \n", + "We first load the resonant system from the binary file we created earlier. \n", + "We then randomly perturb the velocity of one of the particles. If we perturb the velocity enough, the planets will not be in resonant anymore.\n", + "We also initialize shadow particles to calculate the MEGNO, a fast chaos indicator." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:21:18.683877Z", + "start_time": "2023-09-24T21:21:18.678660Z" + } + }, + "outputs": [], + "source": [ + "def runone(args):\n", + " i = args # integer numbering the run\n", + " N_points_max = 2000 # maximum number of point in our Poincare Section\n", + " N_points = 0\n", + " poincare_map = np.zeros((N_points_max,2))\n", + " \n", + " # setting up simulation from binary file\n", + " import warnings # ignore warning for function pointers\n", + " warnings.filterwarnings('ignore')\n", + " sim = rebound.Simulation(\"resonant_system.bin\")\n", + " vx = 0.97+0.06*(float(i)/float(Nsim))\n", + " sim.particles[2].vx *= vx\n", + " sim.t = 0. # reset time to 0\n", + " \n", + " # Integrate simulation in small intervals\n", + " # After each interval check if we crossed the \n", + " # hypersurface. If so, bisect until we hit the \n", + " # hypersurface exactly up to a precision\n", + " # of dt_epsilon\n", + " dt = 0.13\n", + " dt_epsilon = 0.001\n", + " sign = hyper(sim)\n", + " while sim.t<15000. and N_points < N_points_max:\n", + " oldt = sim.t\n", + " olddt = sim.dt\n", + " sim.integrate(oldt+dt)\n", + " nsign = hyper(sim)\n", + " if sign*nsign < 0.:\n", + " # Hyper surface crossed.\n", + " leftt = oldt\n", + " rightt = sim.t\n", + " sim.dt = -olddt\n", + " while (rightt-leftt > dt_epsilon):\n", + " # Bisection.\n", + " midt = (leftt+rightt)/2.\n", + " sim.integrate(midt)\n", + " msign = hyper(sim)\n", + " if msign*sign > 0.:\n", + " leftt = midt\n", + " sim.dt = 0.3*olddt\n", + " else:\n", + " rightt = midt\n", + " sim.dt = -0.3*olddt\n", + " # Hyper surface found up to precision of dt_epsilon.\n", + " # Calculate orbital elements\n", + " o = sim.orbits()\n", + " # Check if we cross hypersurface in one direction or the other.\n", + " if o[1].d" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline \n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(14,8))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlabel(\"$\\phi$\"); ax.set_ylabel(\"$\\dot{\\phi}$\")\n", + "ax.set_xlim([-np.pi,np.pi]); ax.set_ylim([-0.06,0.1])\n", + "for m, megno, vx in res:\n", + " c = np.empty(len(m[:,0])); c.fill(megno)\n", + " p = ax.scatter(m[:,0],m[:,1],marker=\".\",c=c, vmin=1.4, vmax=3, s=25,edgecolor='none', cmap=\"brg\")\n", + "cb = plt.colorbar(p, ax=ax)\n", + "cb.set_label(\"MEGNO $$\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The red orbits are periodic or quasi periodic, the green orbits are chaotic. " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/ipython_examples/PoincareSurfaceOfSection.ipynb b/rebound/source/ipython_examples/PoincareSurfaceOfSection.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..c2008ec040524709a654fc3892198007da48bad6 --- /dev/null +++ b/rebound/source/ipython_examples/PoincareSurfaceOfSection.ipynb @@ -0,0 +1,306 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e5684d15", + "metadata": {}, + "source": [ + "# Poincare surface of section\n", + "This example uses `rebound` to create a [Poincare surface of section](https://en.wikipedia.org/wiki/Poincaré_map) of the restricted circular three body problem (RC3BP). First, a series of RC3BP simulations with test particles at different semi-major axes are initialized at a fixed value of the [Jacobi constant](https://en.wikipedia.org/wiki/Jacobi_integral) $C_J$. Then, each simulation is integrated and the state of the test particle is recorded whenever the test particle and perturber are at opposition, i.e., $\\lambda - \\lambda_\\mathrm{p} = \\pi$ where $\\lambda$ and $\\lambda_\\mathrm{p}$ are the mean longitudes of the test particle and massive perturber, respectively. Finally, a surface of section showing the particles' periods versus mean anomalies is plotted. Numerous resonant islands are visible at period ratios corresponding to mean motion resonances between the particle and perturber.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "17909a74", + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c1d218e6", + "metadata": {}, + "outputs": [], + "source": [ + "def get_sim(m_pert,n_pert,a_tp,l_pert,l_tp,e_tp,pomega_tp):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1)\n", + " P_pert = 2 * np.pi / n_pert\n", + " sim.add(m=m_pert,P=P_pert,l=l_pert)\n", + " sim.add(m=0.,a = a_tp,l=l_tp,e=e_tp,pomega=pomega_tp)\n", + " sim.move_to_com()\n", + " return sim" + ] + }, + { + "cell_type": "markdown", + "id": "cc68afcd", + "metadata": {}, + "source": [ + "Calculate the synodic angle, $\\psi = \\lambda - \\lambda_p$, at a specified time `T` from a simluation, `sim`." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "75dca26a", + "metadata": {}, + "outputs": [], + "source": [ + "def get_psi(T,sim):\n", + " ps = sim.particles\n", + " sim.integrate(T)\n", + " return np.mod(ps[1].l - ps[2].l ,2*np.pi)" + ] + }, + { + "cell_type": "markdown", + "id": "535243d5", + "metadata": {}, + "source": [ + "Calculate the Jacobi constant of the test particle,\n", + "$$\n", + "C_J = n_p l_z - |\\pmb{v}|^2 -\\frac{Gm_*}{|\\pmb{r}-\\pmb{r_*}|}-\\frac{Gm_p}{|\\pmb{r}-\\pmb{r_p}|}\n", + "$$\n", + "where $l_z$ is the component of the test particle's specific angular momentum aligned with perturber's orbit normal." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0dba8676", + "metadata": {}, + "outputs": [], + "source": [ + "def get_jacobi_const(sim):\n", + " ps = sim.particles\n", + " star = ps[0]\n", + " planet = ps[1]\n", + " particle = ps[2]\n", + " rstar = np.array(star.xyz)\n", + " rplanet = np.array(planet.xyz)\n", + " r = np.array(particle.xyz)\n", + " v = np.array(particle.vxyz)\n", + " \n", + " KE = 0.5 * v@v # test particle kinetic energy\n", + " mu1 = sim.G * star.m\n", + " mu2 = sim.G * planet.m\n", + " r1 = r-rstar\n", + " r2 = r-rplanet\n", + " PE = -1*mu1/np.sqrt(r1@r1) - mu2/np.sqrt(r2@r2) # test particle potential energy\n", + " \n", + " lz = np.cross(r,v)[-1]\n", + " \n", + " CJ = 2 * planet.n * lz - 2 * (KE + PE) # jacobi constant\n", + " return CJ\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "bc379bb0", + "metadata": {}, + "source": [ + "# Run simulations" + ] + }, + { + "cell_type": "markdown", + "id": "506f21b2", + "metadata": {}, + "source": [ + "Set the parameters of the simulations" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "b2bad65a", + "metadata": {}, + "outputs": [], + "source": [ + "m_pert = 3e-5\n", + "n_pert = 5/4 * (1+0.05)\n", + "e_tp = 0.0\n", + "l_tp = 0\n", + "l_pert = 0\n", + "pomega_tp = 0.5 * np.pi" + ] + }, + { + "cell_type": "markdown", + "id": "7462fb61", + "metadata": {}, + "source": [ + "Given a semi-major axis `a`, we solve for the eccentricity such that the Jacobi constant is equal to the user-specified value `CJ`. The eccentricity solution is assumed to lie in the interval specified by `e_bracket`. After finding a solution, we initialize and return a simulation with a test particle with the desired semi-major axis/eccentricity combination." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "d204a48f", + "metadata": {}, + "outputs": [], + "source": [ + "from scipy.optimize import root_scalar\n", + "def get_sim_at_fixed_CJ(a,CJ,e_bracket):\n", + " get_sim_fn = lambda e,a: get_sim(m_pert,n_pert,a,l_pert,l_tp,e,pomega_tp)\n", + " root_fn = lambda e,a: get_jacobi_const(get_sim_fn(e,a)) - CJ\n", + " root = root_scalar(root_fn,args=(a,),bracket=e_bracket)\n", + " assert root.converged, \"Root-finding failed to converge for a={:.1f}, CJ={:.1f}\".format(a,CJ)\n", + " return get_sim_fn(root.root,a)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "7152b6e2", + "metadata": {}, + "outputs": [], + "source": [ + "def get_sos_data(sim,Npts,psi_section = np.pi):\n", + " ps = sim.particles\n", + " n_syn = ps[1].n - ps[2].n\n", + " Tsyn = 2 * np.pi / n_syn\n", + " n,e,M = np.zeros((3,Npts))\n", + " for i in range(Npts):\n", + " try:\n", + " rt=root_scalar(lambda t: get_psi(t,sim) - psi_section , bracket=[sim.t + 0.8*Tsyn,sim.t + 1.2*Tsyn])\n", + " except:\n", + " # re-compute Tsyn\n", + " n_syn = ps[1].n - ps[2].n\n", + " Tsyn = 2*np.pi/n_syn\n", + " rt=root_scalar(lambda t: get_psi(t,sim) - psi_section , bracket=[sim.t + 0.8*Tsyn,sim.t + 1.2*Tsyn])\n", + " n[i] = ps[2].n\n", + " e[i] = ps[2].e\n", + " M[i] = ps[2].M\n", + " return n,e,M" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "94e2fca1", + "metadata": {}, + "outputs": [], + "source": [ + "a_tp0 = 1\n", + "sim0 = get_sim(m_pert,n_pert,a_tp0,l_pert,l_tp,e_tp,pomega_tp)\n", + "CJ0 = get_jacobi_const(sim0)\n", + "\n", + "Nsims = 24 # Number of simulations to plot on surface of section\n", + "Npts = 100 # Number of points to plot per simulation\n", + "\n", + "da_vals = np.linspace(0,0.1,Nsims)\n", + "sims = [get_sim_at_fixed_CJ(a_tp0 + da,CJ0,[0,0.3]) for da in da_vals]" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "22b19429", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rein/git/rebound/rebound/simulation.py:712: RuntimeWarning: At least 10 predictor corrector loops in IAS15 did not converge. This is typically an indication of the timestep being too large.\n", + " warnings.warn(msg[1:], RuntimeWarning)\n" + ] + } + ], + "source": [ + "all_pts = np.array([get_sos_data(sim,Npts) for sim in sims])" + ] + }, + { + "cell_type": "markdown", + "id": "56394e50", + "metadata": {}, + "source": [ + "The surface of section points are plotted below, along with the values of the test particles' eccentricities over the range of period ratio displayed in the surface of section." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "a1c57108", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig,ax = plt.subplots(1,2,sharey=True,figsize=(12,5))\n", + "\n", + "min_pratio=0 \n", + "max_pratio=np.inf\n", + "for n,e,M in all_pts:\n", + " n_tp = n\n", + " alpha = (n/n_pert)**(2/3)\n", + " ecross = 1-alpha\n", + " ax[0].plot(M / np.pi, n/n_pert,'.')\n", + " ax[1].plot(e, n/n_pert,'.')\n", + "\n", + "# plot the orbit-crossing eccentricity for reference\n", + "# versus period ratio\n", + "pratios = np.linspace(*ax[0].get_ylim())\n", + "alpha = pratios**(2/3)\n", + "ecross=1-alpha\n", + "ax[1].plot(ecross,pratios,'k-',lw=3,label=\"orbit crossing\")\n", + "ax[1].legend()\n", + "\n", + "ax[0].set_ylabel(r\"$P_\\mathrm{pert}/P$\")\n", + "ax[0].set_xlabel(r\"$M/\\pi$\")\n", + "\n", + "ax[1].set_xlabel(r\"$e$\")\n", + "\n", + "# plot the location of some resonances\n", + "for a in ax:\n", + " a.axhline(3/4,ls='-',color='k',lw=2) # 1st order mmr\n", + " a.axhline(8/11,ls='-.',color='k') # 3rd order mmr\n", + " a.axhline(5/7,ls='--',color='k') # 2nd order mmr\n", + " a.axhline(7/10,ls='-.',color='k') # 3rd order mmr\n", + " a.axhline(2/3,ls='-',color='k') # first order mmr" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/rebound/source/ipython_examples/PrimordialEarth.ipynb b/rebound/source/ipython_examples/PrimordialEarth.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..7ab17400776f4373ee12c4258c32573cbaa7a919 --- /dev/null +++ b/rebound/source/ipython_examples/PrimordialEarth.ipynb @@ -0,0 +1,320 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Primordial Earth\n", + "There are a wide variety of problems in the conext of the Solar System requiring accurate integration of N-bodies undergoing close encounters and/or collisions. Standard integrators such as IAS15 and WHFast might be insufficient for these types of problems.\n", + "\n", + "In this example we investigate the primordial Earth embedded in a disk of planetesimals, integrating it for a short period of time using the MERCURIUS integrator. MERCURIUS is a hybrid integration scheme which combines the WHFAST and IAS15 algorithms in a similar way to the hybrid integrastor in the MERCURY package." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First let's choose the basic properties required for the MERCURIUS integrator. In particular, we are: \n", + "* setting planetesimals to *semi-active* mode, which means they can influence active bodies but not other semi-active bodies.\n", + "* merge any planetesimals that collide with a planets, conserving momentum and mass.\n", + "* remove particles from the similation which leave our pre-defined box.\n", + "* track the energy lost due to ejections or collisions. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "\n", + "#integrator options\n", + "sim.integrator = \"mercurius\"\n", + "sim.dt = 0.025*2.*np.pi # we're working in units where 1 year = 2*pi\n", + "sim.testparticle_type = 1\n", + "sim.ri_ias15.min_dt = 1e-6 # ensure that close encounters do not stall the integration \n", + "\n", + "#collision and boundary options\n", + "sim.collision = \"direct\"\n", + "sim.collision_resolve = \"merge\"\n", + "sim.collision_resolve_keep_sorted = 1\n", + "sim.track_energy_offset = 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that the setup is complete, it's time to add some particles! When using the MERCURIUS integrator it is important to add active bodies first and semi-active bodies later. The `N_active` variable separates massive bodies from semi-active/test bodies. Here, we add two active particles, the Sun and the Earth. Thus, `N_active` will be 2." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "sim.add(m=1.)\n", + "sim.add(m=3e-6,r=5e-5,a=1,e=0.05,f=np.pi)\n", + "sim.N_active = sim.N # sim.N= 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's create our planetesimal disk. First we define three different distribution functions - powerlaw, uniform and rayleigh." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def rand_powerlaw(slope, min_v, max_v):\n", + " y = np.random.uniform()\n", + " pow_max = pow(max_v, slope+1.)\n", + " pow_min = pow(min_v, slope+1.)\n", + " return pow((pow_max-pow_min)*y + pow_min, 1./(slope+1.))\n", + "\n", + "def rand_uniform(minimum, maximum):\n", + " return np.random.uniform()*(maximum-minimum)+minimum\n", + "\n", + "def rand_rayleigh(sigma):\n", + " return sigma*np.sqrt(-2*np.log(np.random.uniform()))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let's set up the basic properties of our planetesimal disk. For this simple example we are assuming that all planetesimals have the same mass and radius." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "N_pl = 8500 # Number of planetesimals\n", + "Mtot_disk = 10*sim.particles[1].m # Total mass of planetesimal disk\n", + "m_pl = Mtot_disk / float(N_pl) # Mass of each planetesimal\n", + "r_pl = 2e-5 # Radius of each planetesimal" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's add our planetesimals to the simulation!" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "np.random.seed(42) # by setting a seed we will reproduce the same simulation every time\n", + "while sim.N < (N_pl + sim.N_active):\n", + " a = rand_powerlaw(0, 0.99, 1.01)\n", + " e = rand_rayleigh(0.01)\n", + " inc = rand_rayleigh(0.005)\n", + " f = rand_uniform(-np.pi,np.pi) \n", + " p = rebound.Particle(simulation=sim,primary=sim.particles[0],m=m_pl, r=r_pl, a=a, e=e, inc=inc, Omega=0, omega=0, f=f)\n", + " # Only add planetesimal if it's far away from the planet\n", + " d = np.linalg.norm(np.array(p.xyz)-np.array(sim.particles[1].xyz))\n", + " if d>0.01: \n", + " sim.add(p)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We move to the COM frame to avoid having the simulation drive away from the origin. In addition, it is always good practice to monitor the change in energy over the course of a simulation, which requires us to calculate it before and after the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "sim.move_to_com()\n", + "E0 = sim.energy()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's quickly plot the location of the particles with matplotlib:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "coords = np.zeros((2,sim.N))\n", + "for i in range(sim.N):\n", + " coords[0][i], coords[1][i] = sim.particles[i].x, sim.particles[i].y\n", + "fig, ax = plt.subplots()\n", + "ax.axis('equal')\n", + "ax.scatter(coords[0],coords[1])\n", + "ax.scatter(sim.particles[1].x,sim.particles[1].y); # Planet" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let us simulate our system for 100 years, and check that our final relative energy error is small. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "times = np.linspace(0.,1000.,1000)\n", + "encounter_N = np.zeros(len(times))\n", + "totalN = np.zeros(len(times))\n", + "errors = np.zeros(len(times))\n", + "for i,t in enumerate(times):\n", + " sim.integrate(t,exact_finish_time=0)\n", + " totalN[i] = sim.N\n", + " encounter_N[i] = sim.ri_mercurius._encounter_N\n", + " errors[i] = abs((sim.energy() - E0)/E0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The default values in this notebook yields an error of $\\approx 10^{-8}$. The following plot shows the relative energy error, the number of particles within 3 Hill radii of the planet and the number of ejected/merged particles as a function of time. " + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(10,7))\n", + "ax = plt.subplot(311)\n", + "plt.yscale(\"log\")\n", + "plt.plot(times/(2.*np.pi), errors);\n", + "ax.set_ylabel(\"Relative energy error\")\n", + "ax = plt.subplot(312)\n", + "ax.set_ylabel(\"Current encounters\")\n", + "plt.plot(times/(2.*np.pi), encounter_N);\n", + "ax = plt.subplot(313)\n", + "ax.set_ylabel(\"Lost/merged particles\")\n", + "ax.set_xlabel(\"Time [orbits]\")\n", + "plt.plot(times/(2.*np.pi), -(totalN-N_pl-2));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us also plot the final positions of all particles. We can see that the planet stirred up the planetesimal disk." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "coords = np.zeros((2,sim.N))\n", + "for i in range(sim.N):\n", + " coords[0][i], coords[1][i] = sim.particles[i].x, sim.particles[i].y\n", + "fig, ax = plt.subplots()\n", + "ax.axis('equal')\n", + "ax.scatter(coords[0],coords[1])\n", + "ax.scatter(sim.particles[1].x,sim.particles[1].y); # Planet" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/RadialVelocity.ipynb b/rebound/source/ipython_examples/RadialVelocity.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..aab2be45cc08e2b787468e7378de2b97a95dbff7 --- /dev/null +++ b/rebound/source/ipython_examples/RadialVelocity.ipynb @@ -0,0 +1,326 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fitting Radial Velocity Data\n", + "This example shows how to fit a dynamical model of a star and two planets to a set of radial velocity observations using the N-body integrator REBOUND and MCMC sampler emcee." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, let's import the REBOUND, emcee, numpy, corner, and matplotlib packages." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import emcee # pip install emcee\n", + "import corner # pip install corner\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We start by creating some artifical radial velocity data. Naturally, we also use REBOUND for this." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.units = [\"msun\", \"m\", \"s\"] # Units of solar mass, meters, and seconds" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We add a star and two Jupiter mass planets on 21 and 30 day orbits. The inner planet has an eccentricity of 0.1 (here expressed in terms of h and k variables)." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "sim.add(m=1) #star\n", + "sim.add(m=1e-3, P=21.0*60*60*24, h=0.1, k=0.05) \n", + "sim.add(m=1e-3, P=30.0*60*60*24)\n", + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We simulate 30 randomly spaced observations over a 50 day interval and add some noise along the way. We assume the line of sight is along the x direction. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "N=30\n", + "times = np.sort(50*60*60*24*np.random.random(N)) # 30 randomly spaced observations\n", + "RVs = np.zeros(N)\n", + "for i, t in enumerate(times):\n", + " sim.integrate(times[i])\n", + " RVs[i] = sim.particles[0].vx # radial velocity of the host star\n", + "RVs += np.random.normal(size=N, scale=20) # add 20m/s Gaussian noise" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is how our artificial dataset looks like:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEGCAYAAACZ0MnKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAfI0lEQVR4nO3df7RVdZ3/8eeLCyiZdkUZwwsEFTFfHBPqjj+yaezHDGo/QFelVqNTrbCVfXX6gSP1XV+rlSsaKptc5UiTZb9UvqZk5UiGTlbjjy5CIBpJosIVBUUKlfhx7/v7x9kXD5dzzt3ce/bZ59z9eqx11j3ns/e5+80Gzvt8fisiMDMzS2NE3gGYmVnrcNIwM7PUnDTMzCw1Jw0zM0vNScPMzFIbmXcAWTvyyCNj8uTJeYdhZtYyli9f/lREjKt0bNgnjcmTJ9PV1ZV3GGZmLUPSo9WOuXnKzMxSc9IwM7PUnDTMzCw1Jw0zM0stt6QhaaKkOyQ9IGmNpIuS8rGSbpP0UPLz8KRckr4maZ2kVZJek1fsZmZFlWdNYw/wiYiYDpwIXCBpOnAJsCwipgLLktcApwFTk8dc4MrGh2xmVmy5JY2I2BQR9yXPtwMPAh3AbOCa5LRrgDnJ89nAd6PkbqBd0vjGRm1mVmxN0achaTIwE7gHOCoiNiWHngCOSp53ABvK3rYxKTMzswbJPWlIejHwI+BfIuLP5ceitNnHAW/4IWmupC5JXVu2bKlTpPk766q7OOuqu/IOw8wKLNekIWkUpYTxg4i4MSl+sq/ZKfm5OSnvBiaWvX1CUrafiFgUEZ0R0TluXMWZ8GZmNgh5jp4S8C3gwYj4Stmhm4HzkufnAT8uKz83GUV1IvCnsmYsMzNrgDzXnjoZ+CdgtaSVSdmngAXAYkkfBB4F3p0cuwU4HVgHPA+8v6HRmplZfkkjIn4NqMrhN1c4P4ALMg3KzMxqyr0j3MzMWoeThpmZpeakYWZmqTlpmJlZak4aLWLJim5WPLaNe9Zv5eQFt7NkRcUpKmZmmXLSaAFLVnQz/8bV7OrpBaB72w7m37jaicPMGs5JowUsXLqWHbt79inbsbuHhUvX5hSRmRWVk0YLeHzbjgMqNzPLipNGCzi6fcwBlZuZZcVJowXMmzWNMaPa9ikbM6qNebOm5RSRmRVVnmtPWUpzZpa2Dbn4hlXs6umlo30M82ZN21tuZtYoThotYs7MDq699zEArj//pJyjMbOicvOUmZml5qRhZmapOWmYmVlqThpmZpaak4aZmaXmpGFmZql5yG0L8VBbM8ubaxpN6Kyr7uKsq+7KOwwzs/3kmjQkXS1ps6T7y8o+I6lb0srkcXrZsfmS1klaK2lWPlE3lhOImTWTvGsa3wFOrVB+eUTMSB63AEiaDpwNHJO85xuS2iq818zMMpJr0oiIO4GtKU+fDVwXETsjYj2wDjg+s+DMzGw/edc0qvmopFVJ89XhSVkHsKHsnI1J2X4kzZXUJalry5YtWcdqZlYYzZg0rgReAcwANgFfPtBfEBGLIqIzIjrHjRtX5/DMzIqr6ZJGRDwZET0R0Qt8kxeaoLqBiWWnTkjKzMysQZouaUgaX/byDKBvZNXNwNmSDpI0BZgK3Nvo+MzMiizXyX2SrgVOAY6UtBG4FDhF0gwggEeA8wEiYo2kxcADwB7ggojoySFsM7PCyjVpRMQ5FYq/VeP8y4DLsosof0tWdLPisW3s6unl5AW3c/DIERx56EF5h2VmBjRh81SRLVnRzfwbV7OrpxeA7m07+ONTz3HP+q2cvOB2lqxwF46Z5ctJo4ksXLqWHbsrt7h1b9vB/BtXO3GYWa6cNJrI49t21Dy+Y3cPC5eubVA0Zmb7c9JoIke3jxnwnIESi5lZlpw0msi8WdMYM6r2clppEouZWVacNJrInJkdfOHMYxndVvprUb/jY0a1MW/WtMYHZmaWcNJoMnNmdjBzUjsnTBnL5WfN2JtAOtrH8IUzj2XOzIrLbZmZNYR37mtic2Z2cO29jwHetc/MmoNrGmZmlpqThpmZpeakYWZmqTlpmJlZak4aZmaWmkdPNSGPlDKzZuWk0eScQMysmbh5yszMUnPSMDOz1Ko2T0kam+L9vRGxrX7hmJlZM6vVp/F48ui/bl65NmBSXSMyM7OmVStpPBgRM2u9WdKKOsdjZmZNrFafRpphO0Ma2iPpakmbJd1fVjZW0m2SHkp+Hp6US9LXJK2TtErSa4ZybTOzVnbWVXdx1lV3Nfy6VZNGRPwFQNIrJB2UPD9F0oWS2svPGYLvAKf2K7sEWBYRU4FlyWuA04CpyWMucOUQr21m1vIanTzSjJ76EdAj6ZXAImAi8MN6XDwi7gS29iueDVyTPL8GmFNW/t0ouRtolzS+HnGYmVk6aZJGb0TsAc4AroiIeUCWH9ZHRcSm5PkTwFHJ8w5gQ9l5G5Oy/UiaK6lLUteWLVuyi9TMrAllWftIkzR2SzoHOA/4aVI2KpNo+omIAGIQ71sUEZ0R0Tlu3LgMIjMzK6Y0SeP9lDq8L4uI9ZKmAN/LMKYn+5qdkp+bk/JuSk1jfSYkZWZm1iBVk4akRZLOADZExIURcS1ARKyPiC9mGNPNlGo1JD9/XFZ+bjKK6kTgT2XNWGZm1gC15ml8i9KIpY9L2gX8HLg1In5Xr4tLuhY4BThS0kbgUmABsFjSB4FHgXcnp98CnA6sA56nVAMyM7MGqpo0IuIe4B7gM5KOAP4R+ISkVwP3UUogi4dy8Yg4p8qhN1c4N4ALhnI9MzMbmlRLo0fE08C1yQNJr2X/+RVmZtYAS1Z0s+Kxbezq6d1bdvKC25k3axpzZlYcVFo3AyaNZCLfucDk8vMj4sLMojIzs4qWrOhm/o2r90kYAN3bdjD/xtWZXz9NTeMW4G5gNdA7wLlmZpahhUvXsmN3T8VjO3b3cPENqzho1Aimjz8sk+unSRoHR8THM7m6mZkdkMe37ah5fFdPL7t7erln/dZMmqzSzNP4nqQPSRqfLCY4NuVeG2ZmVmdHt48Z8Jy+GdF9TVZLVtRvSluapLELWAjcBSxPHl11i6BF5LWipJlZuXmzpjFmVFvFY5U2P9qxu4eFS9fW7fppmqc+AbwyIp6q21VbQF+CuP78Ia3+bmZWV31NTRffsGqfzvCO9jF0V2m6GqhJ60CkqWn0TaYzM7MmMGdmBzMntXPClLF7H7+55E10VGm6StOklVaamsZzwEpJdwA7+wo95NasmFwLb17zZk3j44tX0lu2zOuYUW3MmzWtbtdIkzSWJA8zayL+8Lb+5szs4IplD/HwU88RlJqs6j16asCkERHXDHSOmZnlb8mKbjY8s4MARreNyGSGeM1Vbgd6c5pzzMwse/1niu/q6a37cFuoXdOYI6nWHuAC3ljXaMzMzU42KJVmivcNt21U89S8FO//Vb0CMTOzwas2rLaew22h9tLo7stIlK8o2aiVJM3MaumrifbVTI+uMk+jnsNtIeXS6EVTniRmfPbnPLdrD7t7SmPYyleSdOIws7z1JY++Po3yJqp6D7eFdJP7CqV/Z9K2Hbv3Jow+9Z6Wb2Y2VHNmdvCFM49ldFvpY3102wi+cOaxjRs91UfSsXW9YpOrtexwuXq3E5q1gr5aeN8KqvUemWNDUz5T/A+XnZZJa0iamsY3JN0r6SOSXlL3CJpM2mRQ73ZCswORx4d3/1p4FiuoWvMbMGlExN8B7wUmAssl/VDSP2QeWU7SJIMs2gnN0srrw7vWkE4rjlR9GhHxEPB/gH8F/h74mqTfSzozq8AkPSJptaSVkrqSsrGSbpP0UPLz8Hpft9Kyw6NGiJEjSosOd7SPyaSd0CytvD68GzWk05pbmj6NV0u6HHgQeBPw9oj4X8nzyzOO740RMSMiOpPXlwDLImIqsCx5XVf9O5M62sew8F3H8dqXHb53JUknDMtKmmanrD+8q+0dU60W7qbaYklT07gCuA84LiIuiIj7ACLicUq1j0aaDfTNH7kGmJPFRco7k5wkrFHSNjvl9eFdqRbuptriSZM0boqI70XE3q8xki4CiIjvZRZZacfCn0taLmluUnZURGxKnj8BHFXpjZLmSuqS1LVly5YMQzSrn7TNTnl9eFeqhbuptv6afZfQNJP7zgW+2q/sn4F/r3cw/bw+Irol/RVwm6Tflx+MiJAUld4YEYuARQCdnZ0VzzFrNmmbnfrv3JbF8tfVzJnZwbX3PgZ4bayiqpo0JJ0DvAeYIunmskOHAluzDiwiupOfmyXdBBwPPClpfERskjQe2Jx1HGaNciDLQPjDOzutvmBk1nHXqmn8D7AJOBL4cln5dmBVlkFJOgQYERHbk+f/CHwOuBk4D1iQ/PxxlnGYNdK8WdMasgyE2VDUWrDwUeBRII90exRwkyQoxfjDiLhV0m+BxZI+mMT27hxiM8tEns1OZmnVap76dUS8XtJ2Sp3Sew9R6lI4LKugIuJh4LgK5U8Db87qurW0alXVWoubnazZ1appvD75eWjjwmke/g9rZra/NJP7TpR0aNnrQyWdkG1YZpYHL0g4eM0+VLZe0szTuBJ4tuz1c0mZmQ0jXpDQ0kgzT0MRsbdPIyJ6JXnzJrOc1bsJNe0e0266zU4r7BKapqbxsKQLJY1KHhcBD2cdmJk1lhckzFer1PTSJI0PA68DupPHCcDcmu8ws5YzmDWtBmrHb7V2/jz7dFpl6fkBm5kiYjNwdgNiMTPya/4p+uTCat/0gQGbiM666i4e2PRnpo8f/EyEVqnppRk9NUHSTZI2J48fSZrQiODMrHGKviBh3t/0W2Xp+TTNU9+mtHzH0cnjJ0mZmQ0zRd4WIO9v+q2y9HyapDEuIr4dEXuSx3eAcRnHZWbWUHl/02+Vml6apPG0pPdJakse7wOezjowMxtemr1TfCjf9J/avpNn/7JnyB3orVDTS5M0PkBpYcAnKK16+07g/VkGZWbWaIP9pr9kRTfrn35u7wJ9zTpUtl7SjJ56FHhHA2IxM8vVYBaMXLh0Lb39tnqrNClyuKi1yu0V7Lu67T4i4sJMIjIzayF5d6A3Wq2aRlfDojCzljPQkhf9jx88cgRHHnpQjhHXR/+d/dpfNIpnnt+933nNNlS2XmotjX5N+WtJL4qI57MPycya3UAT4SodH6Hcws3MkhXdPPuXPfuVj2pT0w2VrZc0k/tOkvQA8Pvk9XGSvpF5ZNbSmn2kjFV3/fknDdieP9BEuErHewM2PDO8mmwWLl3L7v4dGsAho0cOy/4MSLfK7VeBWZQm+BERv5P0hiyDMrPmNlA7frXjfTWP4aLan/NPO/Zvrkqr2VcRTjPklojY0K+op+KJZlYIA02Eq3a8bzjrcJH3hMA8pPkb3CDpdUAkS6N/Engw47isybn5qdgGmghX6Tiwt1M8qzkM9fh3maZ5rk+rLP1RT2mXRr8A6KC0NPqM5HUuJJ0qaa2kdZIuySsOsyIbaCJc3/G+vu/yPvDhNPmt/30Y3TaiKZf+qKc0SUMR8d6IOCoi/ioi3hcRuSwjIqkN+DpwGjAdOEfS9DxiMSu6gZa8mDOzgxcfPBKx/4SvZtwnYrD67sOhB49k5qT2YZ0wIF1H+G8kPQJcD/woIrZlGlFtxwPrIuJhAEnXAbOBB3KMycq4ycr6qzZDuBUnv7XCdqxZS7OMyKskHU9pI6ZPJ8Nvr4uI72ce3f46gPJO+Y2UdhLch6S5JLsLTpo0qTGRmVlFlWoa0HqdxbXmphRJ2tFT90bExyl9098KXDPAW3IVEYsiojMiOseN8yruZnkaPVLDorN4oLkp08cf1vTDZeshzeS+wySdJ+m/gP+htNLt8ZlHVlk3MLHs9YSkzJrIU9t35rbPsjWf0SPbWmKfiIEUbY2patL0afwOWAJ8LiLybrD+LTBV0hRKyeJs4D35hmTlntq+k/VPP7d31c8D2WfZhq/BrB7bbI5uH0N3hQTRas1sQ5WmeerlEfGxJkgYRMQe4KPAUkpzRRZHxJp8o7JyG57ZUXWZaCuWvnWZtv9lDycvuJ2ntu/MO6QhKeKcjErSdIRXXR49DxFxC3BL3nEUWa0RJNWWiShaFb4oqtUa+jqNyzcmynrBwqxHNvX9rotvWMWunl462sfsvUZfLaoI0jRPme010Oqmo9tGVEwcRavCF12jFywc6N9lvVRrZmvVJrfBGF4LwVjmao0gWbKim57e/RNGEavwRdfoBQsHGtlk9eOd++yAVPsw6Ptm19PvX8zhLxrFpW8/xp3gBVOt0zirBQs9sqlxvHOfHZBqHwZt0n7f9ABeNIz3FbDq5s2axvwbV+/zb2KEYOLh2TRTemRT46Teuc8MKn8YjBnVVjFhgL/pFVWtTuMsVPt36WbR+huwI1zSOOBfKS0QeHBfeUS8KcO4rElV+zBYuHStv+nZPho5N6PRSarI0oye+gGlxQrfSmmZ9POALVkGZc2t2odBpeYIf9OzRhkOEwhbQZpeqSMi4lvA7oj4ZUR8AHAtw/ZRaV+BKUcc4m96ZsNMmppG32a3myS9FXgcGJtdSNaqijbJyYqp6LWYNEnj85JeAnwCuAI4DPhYplGZmVlTSrOMyE+Tp38C3phtODZc1Po21rdRU9G/sZm1olqT+y6OiH+rNsnPk/vMzIqnVk3jweSnJ/mZ2aC4Njn81Jrc95Pkpyf52X78YWDNyP8us1ereeon1F576h2ZRGRmZk2rVvPUl5KfZwIvBb6fvD4HeDLLoMzMrDnVap76JYCkL0dEZ9mhn0hyP4dV5OYBs+EtzYzwQyS9vO9Fsj/3IdmFZGZmzSrN5L6PAf8t6WFAwMuA8zONyoatrLfkNLNsDVjTiIhbganARcCFwLSIWJpVQJI+I6lb0srkcXrZsfmS1klaK2lWVjFYNqptyblkRfcB/66zrrpr7yRBM2uctHuETwWmUVoa/ThJRMR3swuLyyPiS+UFkqYDZwPHAEcDv5D0qoiovJGDNZ1aW3K6tmHWGtLsp3EpcAql/TRuAU4Dfg1kmTQqmQ1cFxE7gfWS1gHHA/662SK8JadZ60vTEf5O4M3AExHxfuA44CWZRgUflbRK0tWSDk/KOoANZedsTMqsRVTbkMkbNZm1jjRJY0dE9AJ7JB0GbAYmDuWikn4h6f4Kj9nAlcArgBnAJuDLg/j9cyV1SerassX7RTWLebOmMWZU2z5l3pLTrLWk6dPoktQOfBNYDjzLEJuEIuItac6T9E2gb5XdbvZNVhOSskq/fxGwCKCzs7PqrHZrLG/Jadb6aiYNSQK+EBHbgP+QdCtwWESsyiogSeMjYlPy8gzg/uT5zcAPJX2FUkf4VODerOKwbHhLTrPWVjNpRERIugU4Nnn9SANi+jdJMyite/UIyZyQiFgjaTHwALAHuMAjp8zMGitN89R9kv42In6beTRARPxTjWOXAZc1Ig5rXp4gaJafNEnjBOC9kh4FnqM0Kzwi4tWZRmZWQbUJgoATh1kDpEkannltTcMTBM3ylWaP8EcbEYhZGp4gaJavNPM0zJqGJwia5ctJw1qKJwia5SvtgoVmdTOU+RmeIGiWLycNazmeIGiWHzdPmZlZak4aVhjeuMls6Jw0zMwsNScNMzNLzUnDzMxSc9IwM7PUnDTMzCw1z9OwluT5GWb5cE3DzMxSc9KwQujbuOme9Vs5ecHtLFlRcXt5MxuAk4YNe9U2bnLiMDtwTho27NXauMnMDoyThg173rjJrH5ySRqS3iVpjaReSZ39js2XtE7SWkmzyspPTcrWSbqk8VFbq/LGTWb1k1dN437gTODO8kJJ04GzgWOAU4FvSGqT1AZ8HTgNmA6ck5xrNiBv3GRWP7nM04iIBwEk9T80G7guInYC6yWtA45Pjq2LiIeT912XnPtAYyK2VuaNm8zqp9km93UAd5e93piUAWzoV35CtV8iaS4wF2DSpEl1DtFakTduMquPzJKGpF8AL61w6NMR8eOsrgsQEYuARQCdnZ2R5bXMzIoks6QREW8ZxNu6gYllryckZdQoNzOzBmm2Ibc3A2dLOkjSFGAqcC/wW2CqpCmSRlPqLL85xzgtZ96FzywfufRpSDoDuAIYB/xM0sqImBURayQtptTBvQe4ICJ6kvd8FFgKtAFXR8SaPGI3MyuyvEZP3QTcVOXYZcBlFcpvAW7JODQzM6uh2ZqnzMysiTlpmJlZas02T8MsM56fYTZ0rmmYmVlqThpmZpaak4a1HO/CZ5YfJw1rKd6FzyxfThrWUrwLn1m+nDSspXgXPrN8OWlYS/EufGb5ctKwluJd+Mzy5cl91lK8C59Zvpw0rOV4Fz6z/Lh5yszMUnPSMDOz1Jw0zMwsNScNMzNLzUnDzMxSc9IwM7PUnDTMzCy1XJKGpHdJWiOpV1JnWflkSTskrUwe/1F27LWSVktaJ+lrkpRH7NYcrj//JM/RMMtBXjWN+4EzgTsrHPtjRMxIHh8uK78S+BAwNXmcmn2YZmZWLpekEREPRkTqtawljQcOi4i7IyKA7wJzsorPzMwqa8Y+jSmSVkj6paS/S8o6gI1l52xMyiqSNFdSl6SuLVu2ZBmrmVmhZLb2lKRfAC+tcOjTEfHjKm/bBEyKiKclvRZYIumYA712RCwCFgF0dnbGgb7fzMwqyyxpRMRbBvGencDO5PlySX8EXgV0AxPKTp2QlJmZWQM1VfOUpHGS2pLnL6fU4f1wRGwC/izpxGTU1LlAtdqKmZllJK8ht2dI2gicBPxM0tLk0BuAVZJWAjcAH46IrcmxjwD/CawD/gj8V2OjNjMzlQYjDV+dnZ3R1dWVdxhmZi1D0vKI6Kx0rKmap8zMrLkN+5qGpC3AoxUOHQk81eBwmpXvxQt8L17ge1FSxPvwsogYV+nAsE8a1Ujqqlb9Khrfixf4XrzA96LE92Ffbp4yM7PUnDTMzCy1IieNRXkH0ER8L17ge/EC34sS34cyhe3TMDOzA1fkmoaZmR0gJw0zM0utkElD0qmS1ia7AF6SdzyNJOlqSZsl3V9WNlbSbZIeSn4enmeMjSBpoqQ7JD2Q7CJ5UVJexHtxsKR7Jf0uuRefTcqnSLon+X9yvaTRecfaKJLaki0afpq8Luy96K9wSSNZEPHrwGnAdOAcSdPzjaqhvsP+ux5eAiyLiKnAsuT1cLcH+ERETAdOBC5I/h0U8V7sBN4UEccBM4BTJZ0IfBG4PCJeCTwDfDC/EBvuIuDBstdFvhf7KFzSAI4H1kXEwxGxC7gOmJ1zTA0TEXcCW/sVzwauSZ5fQwF2RYyITRFxX/J8O6UPiA6KeS8iIp5NXo5KHgG8idLCoVCQewEgaQLwVkoLpJKsrF3Ie1FJEZNGB7Ch7HXNXQAL4qhk+XmAJ4Cj8gym0SRNBmYC91DQe5E0x6wENgO3UVpJeltE7ElOKdL/k68CFwO9yesjKO692E8Rk4bVkOzBXphx2JJeDPwI+JeI+HP5sSLdi4joiYgZlDY4Ox7463wjyoektwGbI2J53rE0q8x27mti3cDEstfeBRCelDQ+IjZJGk/p2+awJ2kUpYTxg4i4MSku5L3oExHbJN1Baa+bdkkjk2/YRfl/cjLwDkmnAwcDhwH/TjHvRUVFrGn8FpiajIYYDZwN3JxzTHm7GTgveX4eBdgVMWmn/hbwYER8pexQEe/FOEntyfMxwD9Q6uO5A3hncloh7kVEzI+ICRExmdJnw+0R8V4KeC+qKeSM8ORbxFeBNuDqiLgs34gaR9K1wCmUlnt+ErgUWAIsBiZRWkb+3WU7Jg5Lkl4P/ApYzQtt15+i1K9RtHvxakqdu22UvkgujojPJVsuXweMBVYA74uInflF2liSTgE+GRFvK/q9KFfIpGFmZoNTxOYpMzMbJCcNMzNLzUnDzMxSc9IwM7PUnDTMzCw1Jw0zQFK7pI+UvT5a0g213jPI63xGUrekz1U5/oikI+t4vR9I2irpnQOfbTYwJw2zknZgb9KIiMcjIqsP2ssj4v9m9Lv3kUxMK/rkVasjJw2zkgXAKyStlLRQ0uS+PUck/bOkJcn+Go9I+qikjyf7LdwtaWxy3isk3SppuaRfSRpw/SZJR0j6ebKPxX8CKju2JPldayTNTco+IOmrZed8SNLlkg6R9LNkT4z7JZ1V5/tjBjhpmPW5BPhjRMyIiHkVjv8NcCbwt8BlwPMRMRO4Czg3OWcR8L8j4rXAJ4FvpLjupcCvI+IY4CZKM9H7fCD5XZ3AhZKOoDRb/e3JulkA7weuprRHyuMRcVxE/A1wa9o/uNmBKOKChWaDcUey78Z2SX8CfpKUrwZenayW+zrg/5WWtQLgoBS/9w2UkhER8TNJz5Qdu1DSGcnzicDUiLhb0u3A2yQ9CIyKiNWSdgJflvRF4KcR8ash/FnNqnLSMEunfJ2h3rLXvZT+H42gtOfCjHpcLFn36C3ASRHxvKT/prTqKpQ2B/oU8Hvg2wAR8QdJrwFOBz4vaVlEVOxsNxsKN0+ZlWwHDh3sm5O9ONZLeheUVtGVdFyKt94JvCd5z2lA357kLwGeSRLGX1PakrbvWvdQqnm8B7g2ee/RlJrMvg8sBF4z2D+LWS1OGmZARDwN/CbpRF44yF/zXuCDkn4HrCHdNsKfBd4gaQ2lZqrHkvJbgZFJE9QC4O5+71sM/CYi+pqzjgXuTXbfuxT4/CD/DGY1eZVbswaS9Bng2Yj40hB/z08pDd1dluLc71Dq56j7vBMrHtc0zBrrWWButcl9A0kmIf4B2JEyYfwA+HvgL4O5nll/rmmYmVlqrmmYmVlqThpmZpaak4aZmaXmpGFmZqk5aZiZWWr/H9593FvQUGXOAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1)\n", + "ax.set_xlabel(\"time [days]\")\n", + "ax.set_ylabel(\"radial velocity [m/s]\")\n", + "ax.errorbar(times/(24*60*60), RVs, yerr=20, fmt=\"o\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we create a likelihood function. For simplicity, we assume a flat prior for all parameters. So effectively, our MCMC will sample the likelihood function and we will interpret this as our posterior. As part of an actual data reduction pipeline, you will probably have a more complicated model with physically motivated priors. At the very least, you should add some basic sanity checks to your prior. For example, the mass should never become negative. \n", + "\n", + "To further simplify things a little, we restrict the planetary system to always be in the x-y plane. This means we have 5 free parameters per planet, 2 positions, 2 velocities, and 1 mass. We will run the MCMC in a coordinate system where we use the period $P$, the orbital phase in terms of the mean longitude $l$, and $h$ and $k$. We use $h$ and $k$ instead of the eccentricity and the argument of periastron to avoid a coordinate singularity in the case of $e=0$. We consider the mass of the host star as fixed." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def setup_sim(params):\n", + " P1, P2, l1, l2, h1, h2, k1, k2, m1, m2 = params # unpack\n", + " sim = rebound.Simulation()\n", + " sim.units = [\"msun\", \"m\", \"s\"]\n", + " sim.add(m=1)\n", + " sim.add(m=m1, P=P1*60*60*24, h=h1, k=k1, l=l1)\n", + " sim.add(m=m2, P=P2*60*60*24, h=h2, k=k2, l=l2)\n", + " sim.move_to_com()\n", + " return sim\n", + "def log_likelihood(params, times, RVs):\n", + " ll = 0. # We use the log likelihood to avoid numerical issues with very small/large numbers\n", + " sigma = 20 # We assume the error bars are 30 m/s for all observations\n", + " sim = setup_sim(params)\n", + " for i, t in enumerate(times):\n", + " sim.integrate(times[i])\n", + " deltaRV = sim.particles[0].vx - RVs[i]\n", + " ll += -(deltaRV/sigma)**2\n", + " return ll" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we need to come up with some reasonable initial conditions. The closer we start to the correct solution, the faster the MCMC will converge. For this example, we'll start very close. Note that we should in principle also allow other parameters to vary. For example, the noise should be modelled self-consistently, rather than assuming Gaussian noise with a given strength. We should also allow for an arbitrary offset to the radial velocity in case the system is moving towards or away from us. We might also want to allow for a linear term in the radial velocity that can account for yet undetected perturbers further out." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "ndim, nwalkers = 5*2, 20\n", + "\n", + "# P1, P2, l1, l2, h1, h2, k1, k2, m1, m2\n", + "ic = [20.0, 31.0, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 1e-3, 1e-3] \n", + "ic = np.tile(ic,(20,1)) # copy initial conditions for each walker\n", + "ic += 0.05*np.random.random((20,10))*ic # slightly perturb initial conditions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can finally run the MCMC for 500 iterations. We have 20 walkers, so this will generate 10000 samples. This may take a minute or two." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "sampler = emcee.EnsembleSampler(nwalkers, ndim, log_likelihood, args=[times, RVs])\n", + "state = sampler.run_mcmc(ic, 500)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us check the convergence of the MCMC by plotting the log probability. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1)\n", + "ax.set_xlabel(\"iterations\")\n", + "ax.set_ylabel(\"log probability\")\n", + "ax.plot(sampler.flatlnprobability);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This plots gives us some convidence that we have converged. Let's make a corner plot, comparing the posterior samples to the true values which we used to setup our test system. We cut out the first quarter of the MCMC (the burn-in phase)." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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3/RJERERFYYUnTp1UlhYmKZMmaKnn35al19+uSZOnCin06ni4mJ9+umn6tatm5KSkiRJwcHBuuCCC3TBBRfogQceUI8ePTRs2DBNnTpVBw4cUK1atVSrVi3f6IbExERFRESU6QNRWFiorVu3qrCwUKGhoWrcuLGys7MVHx+voKAgSWUbdwMAAAAAAAAAzmzH/zV8nDSHw6GmTZtqw4YNys3NVcuWLRUeHi5J2rNnjy666CLNnz9fEydO1PXXX6/HH39c33zzjaT/NczOy8ur8PjBwcF6++239fTTT2v48OH6/PPP5XQ6VVRUpOHDh2vo0KFq3ry5/vznP2v16tVl9q1Tp46mTp2qyMhIXXvttfryyy/17bffKj8/X40bN1ZRUZH2799/1Pm3bdumOXPmaPr06Vq4cKFWrVqlnTt3KjMz86j6rLU6dOiQvF7v7/0oAQAAAAAAAAA1FIFElbDasmWL1qxZo59//lkZGRnKzc1VamqqevbsqfXr12vSpEm66qqr9PLLL6t9+/YaOnSoli9fLqfTqYKCAr3//vvas2ePrLWy1srj8aioqEgej0e33367xo8fr7vvvltvvvmmJGn9+vW66qqr9Mknn2jkyJG6/vrr9fnnn6tDhw76v//7P02fPl0HDhzQwYMHVatWLX3yySfKzs7W3Llz1bVrV+Xn5ys0NFT5+fkqLi6W0+nU/v379dlnn2nfvn2qU6eOWrdurV69eqlr165q1aqVb2SFtVbFxcXKzs5Wdna2cnJyfKFKaf2/XQAAAAAAAAAApzcCiSph1KRJE8XFxWnjxo3yeDzatm2bevbsqb179+qbb75R3759ZYxRRESEPvnkE4WGhuq6665TTk6Opk+fru+//16ff/75/45ojIwxeuGFF/Tuu+/qrrvu0rPPPqugoCB5PB7dfffd+u677/Tggw/qr3/9qx5++GHNmjVLf/3rX7Vq1Spddtll6tu3r6ZOnSprrdq0aaOJEydq69atGj16tJYtW6adO3eqXr16atSokRwOh3744QfNnj1bM2fOVGxsrNq1a6eOHTuqWbNmvppWrFihrKws5ebmau/evdq7d68kKSYmRhEREQH59AEAAAAAAAAAgVdjAwlzZEODasxaK7c7T1999ZU2b96s9evX68svv9SFF14oj8ej6dOn67zzziuzT1JSkj788ENt3rxZw4YN0x//+Ef16dNHV199dZnt3n//fT388MMaNGiQnn32WRljVFBQoEGDBmnmzJl65JFHdMMNN/i2r127tkaOHKlp06bpueeeU0ZGhoYMGaIRI0bI6/WqR48eeu211zR37lzNmjVLkZGRql27tq8nRK9evXTBBReoT58+cjgcioyM9PW1CA8P1969e/Xrr7/qu+++03PPPaeCggIlJCQoMjJSkZGRqiF/MgAAAAAAAACAH9S4QMIY01qSbA2Z58fj8SgzM0szZ85UaGiomjdvrmeeeUZRUVGaM2eO2rZtW+5+PXv21LPPPqspU6bozjvvVHx8vCIjI7V+/Xq9//77+stf/qLbbrtNvXr10vjx433BwJAhQ/TNN9/o8ccf19ChQ8s9ttPp1M0336wlS5bokUce0ZdffqmnnnpKkjRgwAC98MIL+vLLL/XPf/5TO3bs8O0XGxurgQMHqnbt2iouLpbH4/GtczgcatOmjc455xytXr1aP/30kz777DNFR0dX2IwbAAAAAAAAAHDmCA50ASfCGHOJpGeNMQOttRsDXc/xCAkJUXx8nLql9NEll1yiMWPGKD8/Xz/++KMaNWokt9td4b633Xab9u7dq5deekmTJk1SZGSkcnNzJZVMgXT55Zfr7bffVlhYmCTpl19+0VdffaUnn3xS11577TFrCw4O1n333aetW7dq3LhxuvHGG9WwYUPdeeed2rBhg958801dddVV+uWXX5SamqotW7Zo69atSk1NVVpamurWravnn39effv2VWRkpMLDw9WmTRuNHDlSTqdTf/7zn0/NhwgAAAAAAAAAqPFMDRloIGPMFZIeknS/tfYnY4w53lESxphbJN0iSY0bN+6Ulpbmx0rLuv+DBSoqKlLfhnnq2rWr+vfvr8LCQi1YsECS5Ha7KxxBYK31NZOeMGGC1q9fr86dO6tr165q2rSpbyqlUsOHD9fkyZOVlpamPXv2VFhTYWGhGjdu7Ps9PT1dnTp10tChQzVmzBjFxsYqOztbZ599tnbt2uXbLi4uTk2aNJHL5VKjRo302muv6dJLL9Vtt93mm8apIhVN1+TxeJSenq6kpCSFhoZWuH91YYxZYq3tXNH6zp0728WLF1dlSVXOGKP73p8vSRo97LxjbH1ix60p/x/5y7HuLwAAAAAAAKAmq/YjJI7oFTFKUs7hMCJR0lBjTLykTyRtstbmVHQMa+1bkt6SSh4Y+7vm38rOztaCbYtUWFioRYsWaeTIkSe0f+3atXXTTTcpLS1NLVu2lMPhUFFRUZltMjIy9Omnn+rmm29WTExMmUBi27ZtSkpKqjAUSEpK0pAhQzRhwgTdddddio2NVUxMjGbOnKn169crJSVFLpdLUVFRZUKHhg0b6v7779dFF12kPn36HHXcwsJC/frrr0pPT1fPnj0VHR191Dbp6enatGmTJOmss846oc8FAAAAAAAAAFBzVPtAonQUhDGmm6SfjTGfSYqVNEtSbUl3Snpb0k8BK/IYoqNj1LNdTxUVFamgoEBdu3ZVcXGxpJIRAr8d6VBq27ZtCg4O1urVq3XXXXdp+/btqlu3ri688EL17NlTf/zjHxUeHi5JevXVV+XxeDR8+HDl5ORo3bp1kqRNmzbpwQcf1A033KDLL79ckhQUFHRUOHDjjTfqww8/1DPPPKN///vfkqQmTZqoSZMmvm3y8vLKjGIYOXKkvvnmGz388MPq1auXzj777DLH3LVrl77//nvt3r1bbrdbl1xyyVHNrZOSksq8AgAAAAAAAABOTzWi27AxJthamyupq6R2kuZba5+x1t4qaZekYQEt8BiCg4PUpUsXzZgxQ5J0/vnny+FwyOFwyOl0Kjw8vNzFWquPPvpI1113nYqKivTII4+oQ4cOmjJliv7yl7+oWbNmGj58uD7++GO999576t27t1q0aCGHw6GYmBjFxMRoxowZstbqs88+870fHh6uiIiIMkuzZs103XXX6dNPP9X27dtljDlqKa25dAkODtb48eMVEhKiW265RV6vt8z6Bg0aqH379jp06JBiY2OVkZEht9td5pghISFKSUmpEdM1AQAAAAAAAABOXo0IJKy1RUeEEmdLevKIqZw2STpkjCl/mEE1sXXrVs2dO1cul0v169c/5vY5OTl64IEHNGrUKHXt2lVffPGFhg4dqhdffFELFizQa6+9pkGDBmnx4sUaOXKkdu3apVtuuaXMMfbv368ffvhBHTp0UE5OjiZNmlTpOf/2t79JksaMGXPc15WUlKSXX35ZP//8s5555hkVFRUpIyNDhYWFKiwsVFpamnJycrR27VplZmZW2mcCAAAAAAAAAHD6qjFPhw+HEsZaW2St9VprrTFmhKSRkt6x1hYHusbKuFwubd++XV27dj3mtqmpqeratau+++473X333XrjjTdUu3Zt3/rQ0FB169ZNL7zwgtauXasffvhB48eP1yWXXOLb5uDBg3r33XdVVFSkO++8UxdeeKE+//xzZWVlVXjeRo0aafDgwXr33XeVnp5+3Nc2aNAgXXvttXryySf13Xff6ddff9X8+fOVlZWlCy+8UL1791b79u2Vmprq6xfh9XqVm5srr9d73OcBAAAAAAAAANRc1S6QMMZcaowZVN66I/pJhBhjWkm6StIN1to1VVjiSQkLC9OePXvUqFGjY2776quvatu2bRo/frxuueWWSkcVGGN0zjnn6Oqrr5bb7dYXX3yhwYMH69prr9XUqVPVp08fNWrUSNdcc40KCgq0evXqSs89fPhweTwezZkz54Sub9SoUSouLtbs2bOVm5ur/fv3KycnR0lJSRo+fLjOO+88tW7dWs2bN5dUMgJk06ZNysmpsBc5AAAAAAAAAOA0Uq2aWh9uXD1ZUqExxmGt/U8Fm9a21q4zxgy21h6qwhJPmsPhUEpKijZv3nzMbWfOnKnu3bvrD3/4w3Ede+PGjRo7dqymTJminJwcNWjQQAMGDFCfPn2UkpIiSb4m1oWFhZUeKzExUVLJdE8nIi0tTZJ0wQUXqGvXrtq3b5+SkpJ8YUpYWJjatm3r2z4vL0+5ubnKy8tTbGzsCZ0LAAAAAAAAAFDzVKtAQlJDSf0k5UqaeDiUmHh4qqbS0RHNJd1njLmrpoQRpZo1a6aNGzdWus3u3bu1Zs0a/elPfzrm8XJzczVmzBiNGzdOYWFhuuqqq3TttdeqW7duWrZsWZltQ0JCJB07kCgNLg4ePHjM8x9pxYoVkqRzzz1XtWvXVmxsrPLy8iSVhBtxcXEKDv7f7ZaQkCCHw6G4uLgTOg8AAAAAAAAAoGaqFoGEMaaNpEhJv0hyW2szDveHePtwKDHh8HZh1toNxpgHrbV5gaz5tw7nJeW8X7IUFxerWbNmmjlzpjwej2/kQG5ubpkH9dOnT5ckdevWTWlpafpf7+6y53r22We1YMECeTwe1a5dW/Xq1dPKlSu1cuVKSdLIkSPL7FM6NdLOnTu1a9cu38iJ3yosLFR0dLQyMzOVn59fZp3H4ylT65GWL1+u+vXrKyEhwdcf4tChQyooKFB2drYkqW7dur7tg4KCfL9ba8u9TgAAAAAAAADA6SPggYQx5lJJz0raKsmopEm1rLWzjDG3SXrDGLNHUrSkTsaYR621JzafUIAZU/IAvkWLFiooKNCOHTvkcrkklYxcOLJHxI8//qi4uDh16NBBK1asUGhoaJljbdu2TWPGjNHChQt97+3fv/+oKZYaN25c5vfS0QrR0dFKTEws0yT7SAUFBapVq5ZycnKOOndwcLBvpMVvrVy5Uu3bt/cFCxERETLGKC4uTk6nU3FxcYQOAAAAAAAAAHAGC2ggYYzpJeklSUOstb8YY76U1FLSdmNMiLV2hjHmSknLJWVIutha6w1Uvb9XaUPnDRs2+AKJI1lr9f3336tXr15HNbLOz8/Xu+++qw8//FDh4eEnfO7SIMHj8Rxz29jYWB04cOC4j52fn6/169fr8ssv973ncDgUGRkpqWRkBGEEAAAAAAAAAJzZHMfexK8yJN16OIyoJ6mLpDuMMW9KGnp4m9qS9knqY61dHaA6T4nSQKKiPhLr16/Xrl27dOGFFx617u2339Z7772nSy65RJMmTTrhc5dOtXQ8gUTt2rW1Z88eFRcXH9exly1bpqKiIrVv3/6E6wIAAAAAAAAAnBkCGkhYa9dZa2cf/vUmSa9Za6+StEDSJcaYJEmJkrpba9cGqMzfycrj8ai4uFj16tVTeHi40tLSyt3y2WeflcPh0EUXXVTm/d27d2vy5Mnq1q2bHn/88ZNqBG2MUe3atTV//nzl5uZWum1SUpIWLVqkZs2a6d///ne523i9Xs2YMUODBg1S7969FR4erq5du/rWHzx4UK+//rqGDBmiX3/99YTrBQAAAAAAAACcXo4ZSBhjWhpjLjLGRP3m/b6nshBr7dPW2qcO//yepBhJ0dbaT621Ne6JtrVWubm5Kiz0qLCwUPv27VN+fr6Cg4Pl9R4969SUKVP02Wef6eGHH1ZSUpLvfY/Ho0cffVRFRUW6++67f1dN99xzj7Zt26Z//etflY6UePnll/XBBx8oJSVF9957b7kjOl588UX169dPP/zwg2699VYtXLiwTN0//vijxo8fr59++kmjR4/+XXUDAAAAAAAAAGq+SgMJY8zfJH0t6a+SVh/u51Dq/52qIsxvGgwYY66WVFclUzXVSHl5ecrOzlZQkENBQcGaN29ehYHC/v37ddddd6lt27a67777yqx77bXXtHr1aj366KNlHvifjE6dOumOO+7QkiVL9MADD8haW+52TqdTV199tSZOnCin06mHH374qG1mz56tVq1aadu2bXrxxRfVqlWrMusvuOAC3XTTTerWrZvuv//+31U3AAAAAAAAAKDmO9YIiZsldTo8jVIvSY8ZY+48vO6UdSm2h5+MG2PCjDE3SRolabi1dvepOkdVi4iIUFRUlCQjj6dQH3zwgX7++edyt33kkUeUmZmp119/3dd8WpLmzp2rjz76SFdffbX69OlzSurq27evBg0apAkTJujll1+udNvExEQ98MADmjZtmmbOnFlm3dq1a9W+fXuFhYWVu29sbKxuv/12ffjhh2rRooXvfa/Xq127dunbb79VTk7O778gAAAAAAAAAECNEHyM9Q5r7SFJstamGmN6SfrMGJOsUxhIHMEraZekAdVtmqaKRhOUKioqkrVWeXl5Wrt2rZKSkhQTE6Pi4iKFh4erV69e8nq9Sk1NLbPfxIkTNWHCBN10002qVauWb/2OHTv0z3/+U8nJybr00ku1fv36Mvu1bNlSERERstZqxYoV8nq9CgsLU+vWrSVJmZmZFdbatWtX7d27V//85z8lSb179/atO3DggK/5tiT1799fb731lu655x59+eWXatOmjXJycpSWlqabb75ZDkdJpmWM0W8GupRRus7tdmvmzJlatmyZjDG67LLLKv1cK1Pe1FdHKq0NJ87lclXY6yQ5Odkv50xOTq7wHkpOTj7q3w4AAAAAAACAmuVYT2wzjDHnlP5yOJzoLyleUttTXYy11mOtnVrdwojjlZeXpwceeEDdunVT48aN1adPH+3cuVP5+QW69dZbNWrUqDLb5+TkaNSoUWrSpIlGjhzpe9/j8ei+++6TtVZ/+ctfyoya+C1jjJxOpyQpMjLyuOp0OBx68MEH1a5dOz3zzDOaNm2aCgsLy902NDRU999/vzZv3qxJkyZJKhkdIckXfpyIiIgI9enTR71791aPHj1OeH9UjbS0NFlry138FQykpqZWeM6KwhEAAAAAAAAANcexAolhKhmx4GOtLbLWDpPU029V1UBer1cPP/yw3n77bd18880aNWqUHA6H0tK2aenSpTr77LM1fvz4Mg/+H330Ue3evVtPPvlkmamPXnjhBa1atUrXXXedEhMTj3nuoKAgSccfSEglQUPpCIznnntO11xzjV555RWlp6cftW3v3r3VpUsXvfLKK9q3b5/WrFkj6diBRG5urn744Qfl5ub63nM4HGrQoIEuv/xyxcTEHHe9AAAAAAAAAICa7ViBRKak64wx44wxtxpjfFM8WWt/8m9pNct7772nN954Q3fffbfGjRunhx56SPPmzVPXrl3VvHkznXPOOXrvvfdUWFio8PBwPfnkk3rttdd03XXXqWPHjr7jbNmyRRMmTND111+v9u3bH9e5Sx/sR0REnFDNMTExeuqpp3TBBRcoJydHX3zxhe65556jejsYYzR48GAdPHhQEydO1MyZMxUREXHU1D0FBQVavXq1CgoKJEmLFi3SwoULtWjRohOq62QsXbpU/fv319KlS/1+LgAAAAAAAADAiTtWD4n3JXkkzZV0qaSzJd1Z6R5nIGutXnnlFbVv317PPPNMmXnwQ0NDVa9ePT33xRdyu9367rvvNG7cOP3www8aOnSo/vrXv5Y5VmmviGuuuUbbtm07rvPXrVtXdevWPeG6p0+frrFjx6qwsFAJCQnq1KmTOnTooOjo6DLbZWVlafTo0UpMTFS9evX08ccfq1+/fjp06JBq167t227jxo2+0RNt2rTRH/7wB0nyvfrT448/ruXLl+vxxx/XN9984/fzAQAAAAAAAABOzLECibOttW0lyRgzXtIv/i+p+vF6vcrLy5PT6TyqUbLb7dZ7772nNWvW6K233qqwKa+1VlOnTtVdd92lffv26c0339SNN96odevWldlu69atMsYoOTn5uAOJE1VUVKSxY8dq8uTJ6tChg+688041btxYxhgdOHCgzLaFhYW6++67lZWVpXfeeUePPfaYUlJSNHjwYO3bt69MINGsWbMyr5GRkerevbuysrIUHh6u4OCS263084yIiDhljadHjRqlxx9//Kg+HQAAAAAAAACA6uFYgYSn9AdrbVFFD9tPd3l5ecrOzpZ0dJ+GlStXavbs2apTp44GDRpU7v5ud74uv/xyTZ8+XR06dPAFAeVJTU1Vw4YNy/SUOJX27dunl19+WWlpaRo8eLBGjBjh60HxW9ZaPf3001qyZInGjBmj+fPna8OGDZoyZYpatWqlRo0aldk+LCxMbdq0KfNeVlaWdu0qaUNSr149SWU/z6ioqFNyXR07dmRkBAAAAAAAAABUY8cKJNobY7IP/2wkOQ//biRZa22N60rsdrvldrsVHh5+1Dqv11vuCIfw8HBZa+V0OpWfn69Nmzap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08UXX6ynnnpKa9euLfcYeXl5GjZsmIqKinTTTTdJkqKjoyVJ77//fplAJTQ0VNHR0UpKSlKjRo00f/589enTRw899JB+/fXXco/frl07dezY8ZQ3tT7VSqehys/Pl1TSM+Oll17Svn37fNsUFRUpIyNDRUVFgSoTAAAAAAAAAE471SqQMMacJellSQ9LmiApV9Inxphm1toi/a/eCGvtdmvtZGvttgCVK0nau3evunXrplmzZmnp0qXlbhMREaFWrVppypSTH8jRqVMnnXPOOQoOLmn7UVhYqLfeeksdO3bUU089pdzcXI0dO1bdunXTeeedpxdffFFbt26VJHk8Ht16661asWKFXn31VbVp00aS1KNHDy1evFi33nqrXnjhBX3zzTdav369cnJytHLlSj355JPavHmzJk+erPPPP18vvfSSWrVqpQsuuEAffPBBmWba4eHh6tKlS5nRI9XRhg0btGbNGm3ZskWS9OWXX+qee+7Rgw8+qN27d2vKlCnatm2bdu3apaysLGVlZendd99VVlZWaUBRk/quVMrlcskYU+6SnJwc6PIAAAAAAAAAnGaq28PVLEkzrLU/HO4fMU9SkaQJxphB1to0Y0xbSdcYY56RlG+ttVVVnMfjUVpamsLDw1WvXj0FBwfrwIEDOvvssxUdHa3nn39eEydOLHffyy67TM8//7z27NmjunXrHrV+165d+te//qXdu3era9euOv/88xUWFqbIyMgy2xUXF2vatGl66623tGvXLnXv3l0TJkzQueeeqz179mjy5Mn64osvNHr0aI0ePVrt2rVT7dq19eOPP+rZZ59V3759fccyxqhDhw567bXXyhy/tKm1VNLkul+/furXr5927dqliRMnavz48brhhhv04IMP6r333tMll1zyez9av/J4PEpPT1dSUpKv70VKSook6e2335Ykff/990pMTFRqaqouv/xyXXjhhYqLi9OECRM0c+ZMSVK/fv0kKSQQ1+APaWlpqsJ/PgAAAAAAAADOcNUikDDGtJYUL2m3pI7GmPustWMOrxstKUzSUElPqWTUxCvW2irtnmyt1c6dO7VmzRo5nU6FhoYqISFBzZs31x//+Eelp6fr/fff15NPPqkmTZocsZ/k9Rbr4osv1pgxYzR58mQNGTLEtz47O1vvvPOOxo4dq+LiYiUnJ+tf//qXpJKpk9q2basOHTqoY8eOysnJ0RtvvKGtW7eqZcuWGjdunC688EIZY1RQUKC6detqxIgRGjFihDZs2KBvvvlGkydP1o8//qh7771X119/vbxerwoLCytsPl1YWFjhKIfIyEjdcccd+stf/qK5c+fqvvvu06WXXqrbbrtNo0aNUp06dSr8/I4MOcpz5DRUx6uyh+ler9d3zPT0dG3evFmS1KRJE7Vp00Yej0fr16/XrFmz1L59e61YsUJbtmxRgwYNFBcXp8TEREnSFVdc4XuNjY2VJM8JFwoAAAAAAAAACPyUTcaYSyX9R9K9kh6Q9JCkPxtj7pAka61X0kJJDQ//vsVam1nVdTocDjVo0ECtW7fW2Wefrbi4ODkcDllrlZqaqpiYGAUFBenll19WUFCQbzFGCg4OVteuXZWSkqKZM2cqNjZWsbGxWrRokQYOHKinn35affr00cqVK7VmzRrt2rVLn332mW699VZ5vV6NHz9eI0eO1IMPPqjQ0FB98sknWr16tdq1a6dXX31VPXr0UP369TV48GDNmDFD4eHh6tSpk5544gktWbJEmZmZevbZZ1W/fn3Vr19fCQkJFU7V43A4KlxKH/AbY9SzZ0/9+OOPuvnmm/XGG2/o4osv1saNGys8blU78txJSUk666yzlJSUVOY63333XQUFBemjjz5SVFSUvF6vrrrqKnXp0sW3XXx8vG688UbFx8crJCREKhmxAwAAAAAAAAA4QQENJIwxvSS9JGmEtfYKSXUl5ahkNMTdxpi/HZ66qb6k5saYaBOIp9uHhYaGqlmzZkpKSlJRUZFWr16tJUuW6P3339cvv/yiNm3a6N1339XevXuP2tcYo8svv1w//PCDVqxYoeuuu05//OMfZa3VlClT9Pnnn/umEYqPj9eVV16pMWPGaPHixcrMzNTkyZM1adIkTZ06Venp6TrvvPPUrFkzPfbYY4qNjdXf/vY3rV27VoMGDVKjRo10zz33aPXq1ZKkWrVq+eXzcDqdGjt2rD7++GOlpaWpc+fOeu+99wIyDVBeXp6mTJmiRx55ROnp6b73CwoKtH79ejVs2LA0UJBUMhLkgw8+UL9+/dSsWTMNGDBA06dPV/v27RUREVHl9QMAAAAAAADA6S7QIyQyJN1qrf3FGFNPUidJj0m6RtIkSddJelPSg5LustbmVGXPiN8qKipSRkaGioqKtGnTJq1bt04REREaPny4+vXrp+eff15ut1sPPfRQaQPkMq688koVFRWpe/fu+v777/WPf/xD8+fPL9PX4bestVq/fr0WLFigcePGqWnTprrvvvtUXFys5557TqmpqZo7d67Gjh2rzZs368svv1Tv3r31+uuv65xzztF5552n7777zp8fi/r3768FCxboD3/4g2666SYNHz5cxcXF8nq9ys3Nldfr9ev5JWnNmjV6++239e233+rf//637/0NGzZo9erV2rBhQ5ntp0yZoj179ujmm2+WJA0ZMkQ5OTkaM2aMcnJy/F4vAAAAAAAAAJxpAtpDwlq7TtK6w7/eJOk1a+1TxpgRktpJGiYpXVJUIKZp+q2srCzt3r1bktS0aVPfa6dOnXT55ZdLkm644Qa99957ql+/vp566qky+3fq1ElvvPGGvv/+e40aNUoNGzZUcXHxUeex1mrFihX65JNP9Nlnnyk1NVUhISFq2bKl7rzzTt14441q3br1UVMhBQcH68orr9SVV16pPXv26M0339SECRM0cOBATZ48Wb169fLDp1KiYcOGmjFjhi6++GJNmjRJr7zyioKDg30P96Oiovx2bklq3bq1br75Zi1YsEAjRozwvV/axLr0tVTpKJbo6GhJUs+ePdWlSxc99dRTev7559W/f38NHjxY/fr1U3h4uF9rBwAAAAAAAIAzgQnggINKGWOmS3rUWrvkVB63c+fOdvHixSe8n7VWRUVFysrKUlxcnIKDy2Y5paMAiouLNXz4cH366af6+eef9fGaQhUXF+uf13Yo97jFxcWKjIyUJG3btk3vvvuuJk2apA0bNig4OFh9+vTRoEGDdOWVV2r//v3aunWrmjRpIpfLVSaQKC4uVmZmpuLj4xUUFKSioiIdOnRI8+bN09/+9jelpqZq0KBBevbZZ1WnTh0FBQWVW4/H46mwqXVeXl6ZaY9++/m43W65XC4NHDhQb775ptLT01WnTh0ZY7RgwQJ1797dFwD81qluam2trfSYBw8e1Nlnn63GjRtrzpw5MsbI6/VqwYIFmjRpkj7//HPt2bNH0dHRSk5O9u23evXqJdbazhUd92Tvr0Awxpz09Fr3f7BAkjR62HmnsqQKuVwupaWllbsuOTlZqampVVKHvxljKr2/AAAAAAAAgJos0FM2SZJ+2xfCGHO1pARJOwJTUfmCg4OVmJh4VBhxpPz8fD322GNKSEjQzTfffNwPfFNTU3X++efr//2//6eGDRvq//7v/zR9+nR9+eWXGjZsmGJjY1W3bl1FR0erbt26R+2fmZmpnTt3KjOzZCCJ2+2W2+3W+eef7+ut8NVXX+nss8/WmDFjVFBQcHIfQiVef/115eXl6Z577tGvv/6q119/XQ899JA+++wzzZ07V/PmzTvl5zxZkZGRevLJJ7Vw4UJ9/vnnkkoal3fr1k0vvfSSduzYoRkzZuj6669X8+bNfQsCIzU1VdbacpeKggoAAAAAAAAA1Uu1CCRK+0IYY8KMMTdJGiVpuLV2d2ArO36lD0edTqcaNWqkl19+WcuXL1d6erpvdEVFy759+9S/f38VFhbqP//5j7p3765nn31WXbt2VXBwsLxer9xut5YvXy5jjA4dOqTi4uIyD2Xj4+PVoEEDxcfHy1qr8PBwRUVFKTo6Wo0bN9Yll1yiX375Rf/3f/+nUaNGqXPnzpo6depRD3eLi4srrLOgoEAej6fcJTs7W+PGjVPfvn3Vpk0bpaWlae7cuZozZ45+/fVX9ejRQ927dw/I38Raq4yMDL300kvKyMiQtVZer1d/+tOf1LZtWz366KNyu93yer3yer3asmWLtm7dquTkZDVr1kyNGjXyLQAAAAAAAACAkxPQHhLl8EraJWmAtfbXQBdzpGNNKXTkFEjR0dG65pprNHDgQKWlpSkuLs43LdNv5efnq3///tq6daumTp0ql8uls846S/Xr11d4eLjvvFu2bPEdq127dnI4HGVqKiwsVGpqqmJiYuR0OhUSEuKbXql0dEL37t315Zdf6rvvvtPdd9+tgQMHql+/fho9erRatWolSQoNDa3wWqOjoyscHTJx4kTt3btXDzzwgBwOhy644AJt27ZNa9eu1R133CGXy1Xp53cyjneap8LCQo0bN06lUyndeeedvs/n2WefVb9+/TRlyhRdd911vn0KCgr06KOPavLkyae8bgAAAAAAAAA4E1WLERKlrLUea+3U6hZGnKzRo0crKChIGzZsLLd5tdfr1YgRIzRnzhy999576t27txo3bqyGDRsqLi6uzLZNmzZVs2bN1KJFCxUWFh51rJUrV2rp0qVauXLlUetat26t1q1b66yzztLq1at1wQUXaPny5Ro9erTmzp2rNm3aaMiQIVq/fv1JXafX69WLL76o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sqXWrVtX6fGzsrJ03XXXqV69emrZsiVTNeG4DRo0SHVq11HdunUr3KY0TCi9P51Op5YvX6577rlHffr00dixY9WqVStNnjxZu3btUv/+/bV3715lZWWpRYsWio2Nldvt1p49e7R48WK9+uqrWrhwoeLj47Vz506NGTOmzPRQAAAAAAAAAKo/AokAs9aWuzidTkVHRys8PFxer7fMkpeXp5yckm+o5+Xl+fYxxigiIkIul0tr166Vx+MpdykoKNANN9yg3bt3q0+fPrrzzjsD/TGgBklISFDDhg0UEhJS7r176NAh/fDDD9qzZ49vJM/mzZs1dOhQpaSkaMKECbLWyuPxqFOnTvrPf/6jNWvWaODAgdqyZYuvAXZYWJiysrKUnp6uvn37qnv37rrtttskHf3vBgAAAAAAAED1FxzoAlA+h8OhiIgISSUPX91ut5xOpzIzM/Xpp5+qV69eSk5OVmRkpByOsrlSu3bt9PXXX6uwsFAxMTFHHfv555/XjBkz9Nprr/ke8AJHqmz0gcPhkLVSUZFHXq9XwcFl/xtZsmSJfv75Z3k8HiUnJys7O1tXXXWVJOmLL75QnTp1ymzft29fvf322/rzn/+sOnXq6O2335YxRkFBQWrdurWcTqeaNm2qiy+++JRfJwAAAAAAAICqwwiJGiA3N1cZGRnKzc3VZ599ph9++EH//e9/yw0jJPlCiPKmbfrvf/+rp556Spdffrm6du2qZcuWKTs7W1u3blVhYaHfrwWnh6Iij/Lz8/XTTz8pPz/f977X61VycrJatWqlDh06yOv1avDgwdq0aZP+85//qGnTpuUeb/DgwRo7dqy++uorjRgxQtZa5efna8uWLUpJSVFYWJg8Ho+2bNlyzGbaAAAAAAAAAKonAoka5pprrtG5556rDh06KCsrS1lZWXrvvffKNBgubVD9+eefl5nO5ueff9bw4cN19tlnq3///po+fbrmzp2rqVOnauPGjdqxY0eVXw9qpuDgEBUUFOrjjz/WwoULfe+73W6FhoaqW7duio+P10svvaT//ve/euGFF9SzZ89Kj/m3v/1Nd911l77++mu9//77WrFihRYsWKANGzZIktLT07Vp0yalp6f79doAAAAAAAAA+AdTNtUApSMhnE6noqKidO+992rHjh3asmWLVq9erblz50qSbrjhBknS2WefrSFDhujl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7CCcEEIIIYQQQgghhBCiZpGARAUICgoiNDSUoKAgLBYLISEhdO7cmS+++AKj0cjff58AoF+/fjz88MN89tln3H333eTk5JR4znnz5vHee+9x0003sWXLFn7++Wf++OMPPv74Y9q0acP48eP5+++/Cx2jteb06dMAHD16lFWrVvHHH39gtVoJDg6mTp06WCwWTp48yZIlS8jMzKy8D0XUSCaTiTfffJPPP/+c6667jqlTp9KjRw82btzIjBkz6N69Oy1atOCpp55i27ZtGI1GTp06xVtvvVUkiGYwGLjxxhuLLWJ94sQJli1bxp49ey66z9999x0zZ85kwoQJDB06lA0bNrBhwwYgv3D3X3/95f4tWa1WMjIyLmgVkhBCCCGEEEIIIYQQompIQKICBAQE0KpVK/z8/LBarVgsFgwGA0FBQYSEhHD69Gn3hOnzzz/Pc889x/z587n66qtJSUkpcr6kpCReeuklunTpwkcffYSXlxcAL7/8Mtu3b+e+++5j3rx5REdHM3HiRJKTk7Hb7YwfP56JEycyYsQI/Pz8aNmyJX379iU4OBij0UhoaChKKfbt28fWrVvZuHFjlX5Oombw8fFh6NChfPbZZ3z00UccP36cXr168dBDD5GTk8P//vc//vjjD/766y/eeecdIiIi6Nev3wXVaWjdujVxcXG89957xW7/4osvuPrqqzlw4ECp50lLS2PChAm0a9eO4cOHExUVRbdu3bj88ssBOHToEHv37nWfx2Kx4O/vL4WrhRBCCCGEEEIIIYSogUquIitKlZOTw6FDh4iMjMRkMuHr60tWVpZ71YGvry8AISEhJCQksGbNGgYPHoxSikcffZSmTZsybtw4Ro0axeeff05kZKT73M899xw2m42pU6diMBjc57Tb7fj6+vLSSy9xzz33MGXKFGbMmMHs2bNp0qQJf/75J7fccguDBg0iPDzcXS/Cbrfj5eWF1WolOzubmJgYvLy86NatfEVgxT+D0+mkY8eOzJgxgwMHDtCmTRsGDRpERkYGiYmJpKWlYTAYOHbsWKEC0mVVUlAgNTWVCRMmkJaWxtq1a3njjTe46aabit336aefJjExkdtvv52dO3ficrno2bMnJpOJxMREIiIiAGjWrBmQv2qj4LcnhBBCCCGEEEIIIYSoWWSFRBm5XK5Cj8OHD3PgwAEOHz6My+VCa43Z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yJAhrFu3jiuvvJLnnnuO22+/nSuuuAKr1crkyZM5evQokZGRrF27lunTp/Of//yn0vrndDqJjY3F09OToKAgfHx8ADhw4AC7d+8GLjxt09m/8eJqcgghhBBCCCGEEEIIIc6vRgUktNZblVJ/Az8Dnc+8dlIp9S5Q+8zfu6uyTzabjZ07d9KmTZsSU8tYLBYcDgcZGRk4HA6sVisAPj4+GAwehfZNSEjg5MmT7N27l7i4OLy8vLjxxhtp2bIlXl5eNGnSBID4+HiOHj2K1rpCUzYppXjqqacAeOONN7j55puZNWsWmZmZpKWlceLECfLy8khLSyMtLY19+/axePFixo4dy8svvyxFgAXfffcd2dkWfHx8WbtvH23atGHWrFn07t2bKVOm8M477/Dxxx/z559/curUKU6cOEFkZCT79+9n1KhRPPzww+dv5CIkJydz+vRpAgMDMZvN7tebN29e6PlCVHV6KSGEEEIIIYQQQggh/olqTEBCKeWltbZrre9TSv2glFoHXKe1PgmEAJep/OrQurJWRhR32l27dvHnn3+ilCox/7xSipycHBITEwkLC8PX1xeXy3VWehftPnfbtm0xGo3UqVOHlStXMnDgQCA/L/9ll13mPme9evWA/NRPFe3coMQXX3xBQEAAJpMJLy8vfHx8MJlMuFwudu7cKcGIf6Fzfwtaa6xWKxaLhVGjRrH2wzV4e3sxdepUpk6dysCBA4mKiqJ79+488MADLF26lPnz5wPQokUL9u/fT5MmTfjll18qve8hISHu57PHrLe3d7kLWhsMBlkZIYQQQgghhBBCCCHERaoRAYkzxartZ/79JPAacC0wUyllB9qSH5yo1ATuBZOX2dnZbNmyhZiYGPcEZkkTmS6XC5vNRlBQEJA/CZqTk0NGRsZZqZoULpeL5ORkQkJC6NSpEwBjxowp1O7ZTCaTe7VERQsODgbgtddew8fHh2nTphETE0Pjxo2x2WzYbDasVitWq5Xnn3+eZ599VoIR/3JnpyyqW7cu9evXJykpidtvv517772X2bNnM2fOHD766CO+/vprbrvtNlasWMHbb7/N999/z6hRo/jll1947bXXyjWWSjvm3G0FAb+zuVwud0ClImuyCCGEEEIIIYQQQgghyq7aAxJnghGuM/+eBnTXWr8CrFJKRQEWIEVrfayq+rRlyxY2bdoEQO/e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v/12evTowcSJE1m2bBmHDh0iKCiI/Px8vvrqK9q3b68dY7fbSUlJJTMzk6SkJFq1akXDhg3L9WdHijuAoKAgevXqxZo1a1i1ahUGg4Fp06bRpUsXhgwZQs+ePfnll1949dVXsVgsvPfee9o+ZwclyhZHd3d311aDGI3GKvudEEIIIYQQQgghxH+VpGw6T5V9TmazmT179tCkSROngd+7311Dtqmk3P4+7npe6VuTW265hZYtWzJ79uxzpmxKSUnhjjvuICEhgc6dO/PEE0+QkpKCl5cXqqry1VdfsXLlShRFITo6mqZNm5Keno6vr2+F587IyCAmJqbCa8bHx1OnTh3t75SUFO3cY8aMIT4+np9++onXX3/dqVDz2Sskyjp06BADBgwgLS2NjIwMoHRmev369bUZ1IWFhXzwwQds3LiRW265hYceegir1UpmZiaBgYGVpt25GG+99RZPPvmk08qI3377jb59+3LzzTdTs2ZNlixZQlZWFr169aJu3brase+++66qqmqlo/fBwcHq4MGDgdI+88svv3DixAlq165NXFwc1atX59SpU1oanLJmzpzJmjVr6Ny5M3fccYeW6kVVVWw2G5mZmbi6urJ582Y6duyIt7d3pWljtmzZwt69e2natCktW7Zk165d/O9//2PVqlVkZ2dz44038tFHH1GzZs0K30dlKyQenreDXLO13Ov2ogJ+feMep4Hfs3Xp0oUnnniChQsXsnjxYm3ljsFgICgoiFq1ahEREUH16tUB+Pnnnzl69Cj9+/fn/fff184THx/P3XffTXZ2NgcOHEBRFMLCwrTtY8aM4bPPPuPkyZP4+PhoKyTOTh10LVKFncu1TqszcOBAfvjhB2699VZ+/PFH5s6dW2Eh95EjR7Jo0SLeeecd3njjDVq0aMGyZcu07Y70dR4eHhw4cIAmTZqwZ88eBg0ahKqq7N69m8DAwHLnVVWVvLw8hg0bxo8//ghAw4YNSU5O5ssvv6R58+bavo/O31VhX9RZiwhLXOb0WkX90mw2s2zZMoqKisjJycHNzY34+Hg6duxIaGgo27dvR1VVJkyYwAcffMCcOXMYNmyYlt5OVVW2bdvGjh07aN68Oa1bt8ZkMlWapqms/2Lfut7VqlWLhISECrc56pZURFI2ScomIYQQQgghhBAXRlZIXKI9e/awY8cOAKci1RUFIwDy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2LHsev8X4uLisdlsFc7urUpUVBSLFy9m2LBhDB8+nJtuuolVq1bh6urKqFGjmDx5MtWqVSt3nE6no27dutStW5eBAwfyxx9/0K9fP2644Qa+/PJL3nvvPX799VcKCwt588032bx5Mxs3bgSgR48el/RZiOtLVSl7IiIi+Oabb+jRowd33HEHq1evRq//+5Zwxx13MH36dJ566ikCAgIoKSnBbDaTmZlJel5pmpk33ljK9OnTadSokRYsuBDr1q1j+vTprFixAkVR6NOnD2PGjKFnz55OvxdVVbVVPo50NeLaOlc6KFdXV+rUqeP02rhx4/jxxx/56quvnGo2lD3mu+++o0OHDvTq1YtnnnkGg8FAamoqKSkppKamav8uLi4mLCyMGn2ewNXNlcmTlxAREUGHDh0ICAhg/vz5rF+/nk2bNmEymQCoW7cud911F88++yw1a9Ysd/1XX32VnTt38vnnn9OoUSNuuOEGfH196dixY4Xv0cfHhz59+ji95uXlpa2McHB3d8disXD06FGKi4tJSEggISEBgGbNmgHORawdafoqStdXUT2PczlzHssFHSSEEEIIIYQQQghxBUhA4jJ44IEHsNvtjBw5UnvNYDBQr149IiL2cuzYcY4fP+404HS+QkND+fbbbxk5ciRr167lvvvu45FHHsHb27vCYERZBw4cYMqUKSxZsoTatWuzdOlSPD09ue+++8jPz2fYsGG4u7vTtm1bAO1Z/HvodLoqi92Gh4fTpk0b/vjjD+Li4qhbt662zWAwMGnSJB5++GF69+7tdFzL4VMB+Przd7j55puZNWsWXl5e2O32827bvHnzGDVqFKGhodxxxx08+eSTNG9ecWqzsm2SlRHXh3P1rYp07dqV2NhY3n77be6///4KUz0FBASwdOlSunfvznPPPQeU1u0JDQ0lNDSUOnXq0KFDB9zc3EhKSiJbtZOXm8t7c97DYrGg1+sJCgoiJSWF2NhY7r//fjp27EinTp0ICwursF0lJSU8+eSTzJgxg3r16uHj40NISAi5ubkUFRVdUL+uTMeOHTGbzVSrVo2mTZty7NgxmjRpgpubW7mUaS4uLuVWRlyKM4FG62U7oRBCCCGEEEIIIcRFkoDEZRAREaGtjDibyVSIXu9yXoOo8+bNw8XFhaFDhzq97uvry8KFC8nPz9eCEEVFRZWeJz4+nmnT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Z2VlcfToUW0lhZeXF02bNtVem/NzVVFNSYMv53pTUcXvmYor/E6uQ15eXtrjdOTm5moP53el2Wxmw4YNdO7cWSvDydc1mUyV3sfc3Fy2bduGn58fubm56HQ6t6s6aquuDP5X9zeO1FchhBBCCCGEEOdDnRyQUFX1sKIoOaqqFimK8jrwOjAC0AGrAauqqispH5Sok5wrHkpLS10660wmE0FBQWRnZ3Pw4EGOHDnCP//8w9atW0lOTkav13PjjTcyevRoGjRogMlkomXLlhgMBpcZo/v27WPevHkUFBRgMpno1auX21BR4tJX3cqYI0eOsH//fhwOhzZQYDQaqVevHhkZGVXOBneqbadzixYtOHbsGAApKSn4+/sTHByMXq+noKCAo0ePkpCQQGhoqFbGjRs3sm7dOgB69ep1prehWjXNfq9JXelMvBCqeu3O0GDgGn6n4r2ubhXO6Q5oODua8/Ly+OabbzhU3BCdTqF+/ZvJzMx02bdp06Z07NgRT09PIiIiCAkJITw83G0dcOZLOXr0KP/88w8mkwmTyXRJdELXJc58El5eXpXqUEREBEajkZCQEG0/o9FITk5OrT67LVq0QK/XEx8fz5YtW8jMzERRFC0cU+/evYGq625FR44c4fDhwyQkJBAVFUVubi4lJSV4enqe1us+nckOVbVbNputVp+xUyX1VQghhBBCCCHE+VAnByQATgxGKCd+vgm8AlyjKMowYKCiKF2AIlVVHRe2pO5ZrVZSUlIoKiqirKyM/Px8AgICKCoqYvXq1UydOpWNGzeSlpaGwWCgd+/ePPbYYyQnJzN58mR+//13brrpJt577z2io6Mrhbhp0qQJAwcO5NixY3To0AGoPlSUuHRVtzImKioKgMDAQC3Renh4OBkZGRw9ehSofqWEu447h8OB3W4nOzubJk2a0LNnTz799FP69u1LWloaZrOZadOmMWjQIJo2bap1xBmNRo4fP05wcDA5OTno9Xq6du1Kp06dzvo9OZlz9ntNr7cq53rlVF1W1WuvGMKooor3un79+lWetzadwhU58wMEBgby8ssvM3PmTAC6jBmHj4831113HW3btqVNmzaEhYWxZMkS5s+fz+zZs5k+fTre3t707duXHj16cM8992jJjx0OB8XFxXh5eREeHk69evVwOByYTCYCAwO1lUan43KuN1WpOAv/5Drk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TIKCgli7di1r167lk08+Yf78+fTr149PPvlE6+grLi52e30PDw/Gjx/PlVdeyT333EPv3r2JjIwkKSmJNm3a8P3339OyZUuXY2JiYvjjjz/o168f1157LUuXLqVhw4badqvVSlJSEq1bt9ZWdxw9epTMzEwtzE9YWJi2v8ViYeHChXh4eJCdnc22bdvo1q0bzZs3d+mou9xnBztft8lkoqioqMqVEjfeeKPLT4AlS5awYsUKduzYwccff0xsbCy33HILkyZNYtu2bdSrV48dO3awevVqoqOj6dKli8vs7uzsbA4ePIiPjw9NmjQhPDzc7QoJp+nTp3PPPfdQr1495syZQ0BAQKVyHjt2jA9OhHCKjY2lWbNmzJkzh++//x4oT/zbvXt3evTowVVXXUWHDh2YMmUKV1xxBe+88w4jRowAoE+fPmfh7opT0blzZ+2ns706mcFgoFmzZvz3v//lzz//pFGjRqxZs4Zt27YxdepUunTpwqJFiyrllIDyyQSTJk3iwIEDfP755yxbtowXX3yRa665hr/++otff/2VZcuWkZ+fj8lkYsaMGbRq1Yr58+fTvXt3Jk6cyLBhw7RwTXl5eVqC6WnTpnH8uBG73a7V8fT0dA4eLF81ER4eriXwLioqYurUqdx2222Eh4dr+xcUFGiTCU5O2p2dnc3hw4c5cuQI1113HV5eXmRnZ7N48WJSUlLQ6/VSZ4UQQgghhBBCXHTqwtS4f4CFwChFUa5SVdWuqupUypNXR6iq+r6qqseqP8WF1aVLF9q2bYvJZDpvMeoVRSE+Pp7HH3+cefPmsWrVKurVq8fgwYO59957KSwsJDc3l61btxIXF6cl5RSXLmcor4oJeJ2zcIuLi13CdplMJiIjI7n11luJjIyksLCQHTt2kJmZSbdu3WjatCl///03d911F/Pmzas067g6w4YNY+PGjcTGxlJWVsaUKVPYuHEjzZs3d7t/69at+fPPP8nJyaFPnz4cPnxY25aUlMTmzZtJTEwEysORREREEB8fT0RERKXwJDt27CAtLY2ysjK2bNnCwoULmT59utucL5dzGDPn7Oji4uJqV0oEBwdz9913uwxm9u3bl65du7Jz505atWpFSEgIw4YNAyAvL4/IyEjKysrYtGkTf/75p/beVTxn48aNiYmJwWg0kpGRAfwbBscZJqmsrIynnnqK2267jfbt27Nu3TpiYmLcljM9PZ0OHTqwbds2Zs+ezfTp08nIyGDz5s188skn9O3bl82bN/P000/TuXNnvvjiC7y8vLjrrrtISkqiQYMGdOnS5SzcWXGqfHx86N27Nz4+Pvj4+NCgQYMqk4gHBATQp08fdDodbdq0oWvXrvj4+BAREVFt4nFvb2+WL1/OtGnT0Ov1jBo1ivDwcO68807WrFnDkCFD+OWXX8jIyGDw4MEA+Pn50adPH3bu3ElRURFJSUn4+/u7fBaaNm2Kh9GIt7eXlvOiUaNGxMXFER0djclkwt/fHy8vL6ZOncqCBQuYOnUq8G+OjLCwMLdtGUCjRo0wGAwcPXpU+xwFBwfTr18/evToQUhISJUrkYQQQgghhBBCiLrqgq6QAFBVtVhRlJ8AFXhBUZTmQAkQChRd0MLVkrMTol69euTl5Z2TaxQVFZGTk+Mye7yijh07sm7dOl5//XUmTpzI8uXLGT58OGlpaXh6etKzZ89zUi5Rtzln4Z4cf9zZGQbls4/z8/9N1+Ln58emTZsoKyvj2Wefrfb8RUVFWozzipo2bcratWtdYqO7C6/k1KlTJxYuXMg111xDnz59mD9/PvHx8bRu3RpA++kMSwL/ziauGI6nVatW2k+r1YpOp6Nbt261jqt+uTmdlSIBAQFEREQQGhrKypUrKSoq0lYtFBQUYDQaGThwIIGBgVrHcUXOsDdJSUmEhoaSmppKXl4eVquV/fv3a489e/aQkZHBI488wnvvvVepjjnl5xdgNpu57777XOqbXq+nTZs2tGnThgcffBCAo0ePcvvtt/Pyyy8zbNgw/vOf//D000+zd+/eaju0xflRsV2qSkhICDqdjuDgYAICAvD399dWIVRHr9czYsQIhg0bxu+//8727du5+uqrtRUa7vI4tGzZksLCQv78808OHjyIwWAgNjZW237VVVfx275/8PHx1Z7z8PDQ9lFVVXs9t912m8vPiuU6eWVExXMNHDiQxMRE7XNkMBiIi4tDURT279+Pj4+PS5mEEEIIIYQQQoi67oIPSACoqpqrKMqXwE7gfqAYuF1V1YzzXI7T2gblYWMCAgLIy8vTQsk4j7Pb7VXOQM7JyXEbZgIgIyNDCyExefJkcnNzueqqq7j33ntJSEggMjKy0jHPPfccvXr14vHHH2f8+PEMHDiQvn37VppFaTQaq3094uKnqiqKomidzRXrsN1ud4lJbrVaadq0KaGhoWRlZTF58mQtWfrJAwmFhYXY7XbsdjutWrXCYDBw9913M2rUKLy9vd2G1AHIzc3FZDKxatUqfvzxR/Ly8vjss88ICgrCbrfTtm1b/vzzT6677jquueYa7rnnHu69917atWuHwWBwG4fd+bqcr8XLy0sLXeXl5cXdd98tSYmr4VwpApXbOIfDUeW969ChA0ePHqWwsJBvv/1WG4jNy8tDVVVMJhNXXHEF+/btQ1GUSnVvx44dzJo1iz///JPdu3e7nLtBgwbExsYyYMAABg8erCUVLisrczsokZ5+FL1ez9ChQ13a3pNfC5TPLh83bhzdu3fn9ddfZ/z48bRp04YVK1bU2Ma7I3Xr3KjuvdDpdISFhVFaWkpBQQFZWVn4+/ujqiqlpaVVrnoym83a917//v3p378/UB7mzeFwuB2Ua9GiBVD+fXnFFVfQqVMnl7LpdDp0Oj2K4r7MFT9DoaGhPP7449rzqqpWuaKy4rlMJpO2esf5vKIoREdHA2g/hRBCCCGEEEKIi0WdiVeiqmqpqqpLgZHA3aqqbrnQZTqZoiha55rFYtE6fBVFIT8/n3r16lFQUICHh4f2UBQFnU6HwWBw+/Dz88Pf37/Sw9fXl7///pvBgwfzzjvvEB8fzwMPPEBSUhKjRo1izJgxLFu2zKVczscVV1zBpk2buO+++5g3bx4DBgxg27ZtpKSkYLPZpBPtEnLye1/xodPpqqyzer3+RGeajqNHj5KSkkJ2djbz589nwoQJmM1mnnvuOW2fig+j0YhOp5CRmcHx48dp1KgRY8eOpV27djz//PPs2rWrUlmOHz/O5MmT6d69OzfffDNLlixh9erVDB8+nIKCAvR6PYqi0LlzZ+bPn4+Pjw+vvvoqzZs359FHH60U9qe296Cmh6hadffNx8eHIUOGMGjQIAAtZn5BQYFW13bu3Mnq1avZvXu3y7GFhYV8/vnnTJgwAZvNxjvvvMOsWbPYsmWLFjN/2bJlfP3119pgBOC2Lubm5nL8+HHCw8Pw9/d3u0/Fz4GiKLRt25bRo0czadIk9u7dy4033siaNWvIyMiQOnKenMpntGLbVVBQwB9//EFBQQFpaWkcOnSIhg0bUlBQgKIoGAwG9Hq920d14dmc7eXJj4SEBKA8qbozHF7Fsu3cuZP8/HwKCwtd/h44uQ12OBwcP35cG6Coqm45HA7y8/O1JNfO/Y4ePcrLL7/Mm2++SWZmJmazWVspYTQapc6eJ40aNaqynlYVTk4IIYQQQgghRGV1ZkDC6UQOCfdToesIZ1z+isk3p02bxu7du89KyKbly5fTv39/Xn31VXx9fZk0aRJffvklDz/8MH/99RfPPfccR44cYfjw4Vx99dXMnTu30uxxX19fPv74Y/7880/S0tL473//y969e0lPTz/j8omLj7s66xQZGUlsbCxbt27lq6++4ssvv+SGG27QOuPccTgcHE1Lo1evXvz111+sWbOGW265hV9//ZVu3bpx/fXXM2/ePBYvXsyoUaNo3rw5//vf/wgLC+Ozzz5j+/btTJkyheTkZIYMGUJubq527o4dO7JlyxaWLFnCoEGD+P777+nQoQO9evVi6tSpFBcXU1ZWRkpKisRPv4CMRiMDBgxAURRtQCIrK4uUlBRycnLw8vIiKCiIwMBA7Zh58+bRtm1bvv/+e55++mm2bNnCs88+y5AhQ2jTpg2+vuWhb6xWKz/88AOfffYZO3furHLG/JQpU3A4VBo0aHBKZX/11Vfx8vLihRde4IYbbkBVVebMmXOad0KcSxXbrnnz5vHrr78yb948oqKiiIuLIyoqyiXkXHVsNhtz5sxh8ODBdO3alXnz5lW7f1BQEPXr12fjxo1VbncOprprWwEtn8oLL7zA//3f/1W7+sNqtXLo0CFtgNjpu+++47fffuOXX35hxowZ1eZ9EefOoUOHUFXV7SMlJeVCF08IIYQQQgghLhp1bkDiYuDl5aUlqnS69dZbiY6OPqMBic2bNzN06FBuvvlmcnNzee2115g5cyY9evTQZj16e3tz++2389tvv/H+++9TUFDA6NGjueqqq0hOTq50zquvvpoXXniBuXPnsnLlSvz9/U+7fOLiZTQasVqtbkN1eXh4EBMTg16v58CBA+Tm5vL8889Xe76MjExKS8uTDkN5aJMPPviAjRs38sYbb7Bv3z5uueUWbrrpJv755x8efPBBlixZwty5cxk+fDheXl7069dPG5QYNmyYy6CEoij06NGD7777joMHDzJu3DgyMjK44447aNSoER9++CGvv/46a9aswWw2VxnOSZwbFouF5cuXoygKTZs2ZdeuXZhMJpKSkli5ciWFhYXExcXRo0cPbeXYnXfe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FouFgoICDhw4wKFDh9iwYQNjx44lKyuLN954Q6vnVbV3x48fJyQkxKWNq/i48847ycvL48cff3Rb7xRF4fPPPyc/P58XXngBb29v/P39Kw1eOctbVFREYGAgaWlp5OTkcN1112n7HD58mM8//5yVK1dy+PBhjhw54jLBASq33T4+PnTp0gWLxcLRo0fJyso648+7EEIIIYQQQghxoVx2AxJWq5WSkhLt95SUFJ577jlSUlK055wd9na7HYvFwoEDB/D39yckJISAgADq16+vzcC22Wx8/vnnLF26lJ9++okOHTqwZcuWSiFvUlNTmTJlCsOGDSMhIeGUy/3YY4/Rv39/l+fMZjO//fYbN910U40hRpwDEsnJyad8bXHpMRqNzJgxg969e3PrrbfW6pj09HRmzpzJkCFDMBjKVzScyqxxVVV59dVXGT9+PPfeey8ff/yxS6x+u93Ogw8+yB9//EFAQAAvv/xypfMnJibSunVr7Xfn6iXnjOHo6Gji4uKIjo7WOgedHc8Xu5Pbrto4ePAgTzzxBAcOHKhx3y5dunDFFVdgt9tZs2YNy5YtY926dTUmDHcOjup0Om1QIjg4mKKiIsxmM8XFxURGRgKuKyRmzJjB9u3b+eqrr2pcGVHRnXfeyZ49e7BYLCdWSJye48ePA+UrJJwDEvn5+UB5x3J6ejrZ2dlER0fTpEkToqOjT/ta4vSEhIQQERFBWFiYtgqxc+fO6HQ61q1bx1NPPUWnTp1qPE9mZiYhISFVbu/SpQtt27bl008/rbJDv1WrVjz77LP8+OOPTJ8+nfT09EqDUs7yhoSEuLRFYWFhNG3alObNm9OyZUtCQkKwWCx4eHgQGBjoEv4uPz+fX3/9lby8PLf3o7i4mLfeeou5c+dSXFxc42sXQgghhBBCCCHqmstuQKK4uJj9+/drv3/22WcsXbqUzz77THvO2Unbu3dvtm/fTlJSUpVhYHJycujRowddunRh5MiRdOjQgYKCApdrAEyYMAFFUXjqqadOucwOh4P169cDrh16v//+O0VFRdx+++01nsPX15eoqCh27tx5ytcXlxaHw8GLL75IaWkpH330Ua1nen/++efYbDbuuOMOAGw2O/369ePOO++ssdNfVVXefvttbTDio48+chmMcDgcPProo/z666+89tprfP755+zdu5dvvvlG28dsNrN//36X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H374gbvvvpvx48dz6623sm7dOg4dOkSjRo0qnadNmza0bNmS6dOnn7XX8OGHH+Lr60tkZCR9+/blwQcf5IMPPmD+/PkcOHCA7777jujoaPr06QPArl27UFWVFi1aaO18VZz3pOKKi1NVUlKifYdYrVaSk5OxWCynfb5L2bx581i0aJFLnpHCwsJah2xKTExEVVXat29f476FhYUAtQ7ZBOW5dPR6HVA+CLB582b+/vtvNm/eXOkYg8FAQEAAu3fvprS0lNTU1GpX3wghhBBCCCGEEJeqOvu/YUVR/gN8D3Q/MShRfNIuBsBTUZThwAeA+VyVRafTabGg9+3bx86dO9m3bx9QHou/d+/eJCUl0bVrVy1pK8Avv/yCr68vRqORX375BS8vLwYOHEiXLl0YNGgQixcvZt26ddVee+fOnbRo0UJLnBkbG8vu3bu17U2bNiU5ObnKgY2VK1dy+PBhFixYwJw5c0hMTCQjI+OMkmiKi8s111xDr169uOaaayptczgc3HvvvSxbtow//vjDZVtiYiJff/01Dz74IO3atdOeX7FiBQEB/uh0rqFRPD09uemmm1i9ejV79+6tdK2oqCjS09NZunTpGb2ehx56iJSUFP7++2+CgoIICgrCYrFQUFAgHbtnqGKuiKoS7k6dOpVx48Zx6623uq1Ter2eL7/8kscee4y5c+cyceJEjh496nZAQlEUbrnlFv755x8OHjx4xuVfuXIlTz31FL169eLaa6+ltLSUWbNm8cwzz3D99dcTHx/PwoULGTVqlNYZvGfPHgBat26ttfNOqqpiNpu19jUrK4ujR4+SlZXl9vrOgbGqwveYzWZ2797Nzp07SU5O5quvvqJjx4689dZbZ/zaL0WDBg2if//+DBo0SHuuuLiYgoKCWg0KJSYmArVLaO1sO2oTbsuZr+HGG29k7759HDlyhLVr1+Lh4aGtxDhw4AClpaXaMQ6Hg8TERLZv387y5cs5dOiQ9neEEEIIIYQQQghxOamTAxKKojQF3gWCgEFAV+VEHAJFUZxlzgOeAh4GblBV9cD5KFuTJk1o2bIlTZo0ASAgIID//Oc/dOjQgY0bN5KUlKTte+WVV1JUVER+fj6tW7fGarUyb948/v77bxYuXEiDBg20uOxVady4MUlJSZSWllJSUkJqair16/8bqWrlypXEx8dXGaahVatWjBkz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h5deeol+/fqxbNkymVl5CSkuLsZut3PllVfy3Xff8dRTT6EoCkajkZ9++olu3bpxyy23uOQLAPjjjz945pln6NGjB19++SVvvvkmv/zyC3q9nhEjRrB7925WrVpFXFwc3bp14+eff8bf359169YRExPD888/X2WZNm7cyMSJE3n00UddEic7/fe//+WPP/7gkUceYfPmzdV2KDs5HA6sVisGg4G0tDSio6OrXIV0OXGuMNmwYQMFBQWkp6djsVh49913K83eDQgI4NNPP+U///kPe/bsAWDevHncd999tR6QuPLKK2nevDl///03Pj4+tGvXTtvm5+dX44DEgQMH2LFjB9dff73L8ykpKZUGuBYsWMB///tfre5eeeWVjB07lltuuQWz2YzJZMJsNrN27VrWrl2Lw+EgJCSE4OBggoODCQ0N1X5funQpy5YtA8pn4P/888+YzWZee+010tLSOHz4MHa7ndLSUvLy8rScQgEBAVxzzTXVvibnfUtNTZV6ecLBgwfZvHkzNpvNbQirivfLw8ODkpIS9u7dS9OmTfH09NTqUsUQWi1btuS+++7j888/p02bNtxzzz3VlqGqHBIAv/32Gzk5ucTExGgd3f7+/jzwwAOMGzeOxMRE+vbtS0REBPv27QP+zTXl/E52OBxs27aN/fv3Y7PZaNCgAcHBwRgMBu071vn3xNkaQNDpdJSWljJ79mwGDRpEYGDgWTlvXZGSkiIhqIQQQgghhBCiDqvtgESUqqrX1rzb5UlV1UqdHs5OB4PBQGBgIH+sW8ehQ4eIiYmp9lyKojB+/HjmzJnDihUrajUgURsVOxU/+OADCgsL+eCDD7Tn9+3bx5IlS1AUhRdffJEbbrgBKB8gmTZtGtu2bWPChAl069aNNWvWcPjwYVq0aHFWyiYuvH379rF582Y8PT1JSUnBbrdrHfzR0dE8+eSTvPzyy6Snp7uEtVm8eDE6nY7PPvsMk8lEVlYWVquVjh07EhgYSNOmTVm1apXWwf3rr78ydOhQfv75Z+666y63na5NmjQhPj6e999/3+2qHyd/f386dOjAokWLKCoqol69eto258CDl5eXS913zjTOysoiPT0doMrBvMuJTqfD19dXG1BITEzEaDRWml3uVFBQgMFg0Fa/OJMEO5OY15Q0WFEUnnvuOUaPHs0jjzziUqd27tzp8l6607Vr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ze7du/nll1/Ys2cPe/bswel0MnbsWCZOnMi4cePo37+/z/clOzubb7/9lq+//poffviBiooKoHbn0oABA0hOTmbQoEH634iICB56dwMAT/xmeIPvQ0MTtAUFBTzzzDO88sorVFVVce211/LII4/Qq1evZr2+U6ZMIS8vj+3bt/v8Tnu6JyTa22eiqI2B+xeuB+CZa8+td1lb/q5siaa+zwshhBBCiFOrPUxIfAl8qKrqm4qiGICxwAwgU1XV/yqKkgK4VFXdoiiKop5kg0/lhITdbqe0tJTg4GCsVitOp5NpD75OcJdgPv/b1T5vd8UVV7Bq1Sp2795NQECA12WeExJ11dTUUFRUxIoVK/RBs/z8fBRFYfjw4UybNo3JkyfrOaw/++wztm/fDsA555zDrFmzuPzyy5v9I1XUOhMmJMrLy/U41WIuNTWVP//5z9jtdlauXImqqgwaNIgrrriCK664wqvYd01NDQ+/txGA64YGUV5eTkBAAAEBAfj7++vxrygKe/bs4f333+f9998nMzMTPz8/ZsyYwZw5c/RColVVVTidTtxuN1VVVVRXV1NSUsKOHTvYvn0727dvJzU1VR/IsdlsvPLKK8ydOxeov+Le5XIRGhrKsGHDSElJYeTIkVx++eU+X4v2ttqzrQZfGhqIPHr0qD5o6pl65tNPP+Wtt95i7dq1HDx4sF7f1ZjGJiRqamq46KKLWLt2LWlpaV6521tjQiIrK4uPP/6Yp556ioISRGc9AAEAAElEQVSCAq688koee+wx+vTpQ3l5Oe+88w5Llixh5cqV+srgQYMG6YVvR40ape8IUVWV4uJivvnmG2bMmFGvAKyiKNTU1LB7926ysrKYMGFCg/25p/LycoqKili6dCl79+5l/PjxTJs2zef743ksN7Wi/UwZ2PP8ClBZWanvvtixYwdms7nR2Dp8+DAjR44kKCiI9evXc/jwYb766iu++uorrfA3CQkJTJ48GX9/f9xut76CXfs3QK9evUhOTiY5OZlX1xegKArPXFu7qt7tdpOens7GjRvZuHEjmzdvZuvWrVRUVNCjRw/WrVtHbGwsNTU1FBQUEBwcTE5ODrGxsXz00UcsW7aM8847j7lz5+o7JAoKChgwYADh4eEoiiL91gmy2+188803fPzxx3zzzTc4nU569erFLbfcwg033IDVauW///0vTz31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9u3897//5fbbbycpKYnS0lKCg4MZPHgwqqpis9lwOBxMnDiRs88+m/nz53P77bdjNBob7LO0mK0rJCSEAQMG8u5baVx00UUsXbqUwMBA7rjjDux2O2+88YY+EVZaWspf//pXbrzxRq86Ep73+/jjj1NUVMTTTz9NSEgIDz74YIPtacqJ5FuXPrt5Dh48yHPPPUf//v2ZMGEC0HCMnMxl2uW+FBYWkpmZSZcuXbjmmmv0iQfP99put+srybds2cIvv/xCaGgoKSkplJaWUlFRwZEjR0hKStLrYcCvu9O0Fenav00mk+z2OglVVVWkp6fXe70Bvf958cUXAXj++efZsmUL7777LtHR0Q3GgclkajR+GpsEURTFR99Qe18Wi6XRmG3oM9NzcsBisXDo0CGgtlZNQ/d3+PBh7HY7AwYMwM/Pj4EDBxIREYHZbCYlJQWDweC12MBXLSohhBBCCCGEaC5ZItyKXn31Vf7zn/9w8803c+edd7ZpW8LDwykoKABqf4Dv3LmTdevW4XA42rRdom2VlZWxZMkSyssbL8+iDdxff/31XHDBBdx9990YjUZ2796tX0dVVWbOnMnf//73JleLnwhVVXnvvfcYNGgQy5YtY8aMGXz11VcMGTIEg8FAz549yc3NJTU11Su2nU4nx44dIz8/X1+Z6nK5yM3NxWKxEBwcTGFhIfv27SMrK6vV230mUVUVu91OeXk5e/bsYefOnaxatYrVq1dz4403+hxkV1WVO+64g9DQUB577DFsNhvBwcFeBXm1PORZWVlccMEF7Nixg40bN55wO8PCwnj//ffZtGkTF110Ea+99hpffvkljz/+OP3799fbdcstt/DCCy8wceJEtm7d6vO+FEXhpZde4sorr+Shhx7i9ddfP+F2ac9T+t2TV1ZWxuLFi8nJyeFPf/oT/fr1IzMzk7///e9tNonzpz/9CZfLRZ8+faioqPD5XnvGf0pKCueeey4pKSnYbDZsNhvbtm1j27ZtpKene93OM3YaiiOtRk5juyWF9+uUnp5OWlpavdfbk8Fg4KWXXmLhwoVs3LiRs88+m++///40trj1eE64N5ayaefOnQB0796dmpoanE4nbrebkSNHEhQUREBAQIt2FWrHa3OLzQshhBBCCCE6F5mQaCWffPIJDz74IJdddhn//ve/23yVa2hoKPn5+UDttvuVK1eycuVK/Uen6JzWrVvH2rVrWb9+faPXs1qtBAcH079/f/72t78RHBxMYmKi14REfn4+S5Ys4fHHH+dvf/tbq7bT4XBw5ZVXcs0119C3b1/mzp3La6+9RkBAAMHBwVitVgoLC9m+fTvffvst3333HampqXrbTSYTLpeLiooKoHYl8/79+1m2bBkGg4G4uDh69+7drILCnZk2EArQr18/Bg4cyJdffonJZOK3v/2tz9u88847rFu3jieeeIKQkBC9YLbnYJY2SBsbG8v111+PzWbjtddeO6m2zpw5k7fffpt169Zx++23M3r0aO666y798jfeeIMPP/yQ6667joCAACZPnqzHTF1Go5GFCxdywQUXcOutt/LVV1+dUJt8TcaIE7Ns2TKef/55hg0bxlNPPcXs2bP55Zdf9BoNp9vPP//M66+/TkxMDwIDAxp8r7WC1NrfiRMn6ivLKyoq9FROdetNed5fQ/ddUFDApk2b+OMf/yg1oxqgqioHDx7k8OHDFBQUkJSURHJysp6WqDFXXXUVixcvJjIykmnTpvH00083ev2MjAwuv/xykpKSuP/++zl8+HBrPY0Tpk1IGAwGqqurG7zejh07AOjatSsFBQX6dwCr1ep1PafTyYYNG3A6nY0+7tq1a1mzZg1r1649yWcghBBCCCGEOBPJhMRJqq6uJjMzkzfffJP4+HgWLlzYaCql0+G1117j3XffpVevXnzzzTcEBwczYcIEJkyYwMCBA9u0baJtjR49mjFjxjB06FBSU1Pr1YDQaOkYtBzR+fn5GI1G8vLy9OuUlpYREBDA2LFjee+991q1nXfccQefffYZjz32GIsXL+bVV18lOjraq11hYWEMGTKEiRMnMmzYMBISEqioqGDXrl0EBQURGBhIaWkpLpeLsLAwiouL2bdvH6mpqZjNZhISEiRdUx1VVVXs27dPr3mjDYQGBgYSEhJCYmIiWVlZGAwGr1jQFBcX88ADD5CSksKVV17Z4ONog7Mmk4nu3btzzTXX6KuRT8aVV17JG2+8QXJyMgsWLPDqi1etWkVgYCCvvPIKTz75JMeOHWPVqlUN3pfFYuGiiy7C7XbXG1QrKyvj22+/bXL1r6/JGHFioqKi2L9/PyUlJfz000+89dZb9OjRo03aUl1dza233kp0dDSxsbVtaM57XVlZ6dXvhoeHExkZyaBBg/RUcz///DNOp9Pr/hq67/DwcFasWMHatWuZP3/+qXvCHZDn7i6z2UxISAjh4eH4+fkxaNCgeuma6rLb7XzxxRcAfPHFF5x//vn89a9/bXQ34COPPMJ3331HQkICL774Ir179+aWW24hMzOzVZ9bS2iLY9xuN/Hx8UycOJH58+dTXFysX2fRokU89thjDB06lNjYWEJDQ70+az2lpqaydetWNmzYwKpVq7Db7VRUVLBz506v7xNjxoxh7NixjBkz5vQ8USGEEEIIIUSH0mgNCUVRgoGHgR7AYlVV3/O47GVVVW9v8MadRFZWFhkZGbjdbgIDAxss6Hs6VFZWctddd7FgwQKmTZvGxIkTWb58OSaTiQsuuKDN2iXaj6CgICZOnMjixYspKSkBYNCgQV7XqVv42WAwMGjQIAIDAwkMDNSvZzabsdvt5OXlMWDAgBa1w+12s337dg4ePMiBAwc4ePAgBw8e5NChQxw8eJDi4mKuueYa7r77bsrKyjCZTPXyVZtMJmJjY+nevTsVFRVYrVZ27drFrl27gNrC7nl5eRgMBiIjI5kwYQJhYWH1nq/4ldafASQkJOgTB57+9a9/8fPPPzNnzhw2bNjgFRMPPfQQhYWFvP/++17nN0TbgfHII4/w9ddf89vf/pbNmzfXW5XbEldffTVXX311vfPPP/983n77bbZt28b333+PzWZj7ty5Dd7P+++/zx/+8AemTp3KY4895nXZmjVrWLNmDQDTp08/4baK5hswYAADBw5k3759XsWjfTl27Bg33XQTlZWVvPDCCyQkJLRqW55//nm2b9/O5ZdfTnm5vcnBbY2WLgggOTkZo9FIr1699PoQGzZsYPPmzQCMHDmyyfszGo3cc889BAYGcvPNN5/4EzoDaX1LYGAgoaGh2Gy2Fu1c3bBhg74jcNSoUZx33nksXbqUkpISunbtWu/6NTU1LFu2jPHjx/PUU09hMpl49tlnWbhwIf/73//4zW9+w8MPP0y/fv1a6yk2i9PpZMyYMVx//fWkp6fz+eefc8stt/CHP/yBGTNm0LdvX/7xj38wYsQIPvjgAywWC1VVVVRVVbFhwwZSUlK8PgO0z8/CwkJ9h1lYWBi7du1CVVUGDRpEZWUlBw4cYNKkSc0+NoQQQgghhBCdS1NFrd8A9gKfAjcoinI5cJWqqpVA07+WOwEt5UvXrl05cOBAm7UjOzubK664gg0bNjBnzhxefPFFjh07xi+//MKoUaMoKytj/fr1jBo1iqCgoDZrp2gbnpMMe/fupbS0lKCgIBISEsjNzSUsLAyTqbY70OpHAPpAhMvlory83CvFkcVSWyi4pWlT3G43V1xxBYsWLdLPCwwMJC4uDpfLxbRp04iKiuKBBx5g//79REdHNzpA7VlcMzExEbvdzr59+4iJiSEqKoqwsDCgNpVTSkpKs9vZGWnvb2OprOLi4njnnXeYMmUKf/jDH3jjjTcAWL9+PfPnz+eOO+6o9zpXVVWRlZVFbGwsZrNZL9jr7++Pw+EgIyODV155hYsvvpg///nPPPfcc63+3GbMmIHZbOaVV17hww8/5KabbiIkJMTniucvv/ySa6+9lnHjxvHJJ5/UG1QbO3YsAEOGDOHbb79l7Nix0q+2Ms8+C2DPnj0MGTKEL7/8kqVLl3Lrrbf6vN0vv/zCJZdcwv79+/H392fw4ME8/vjj3HHHHXofdzIyMzP529/+xiWXXMKgQYMoDKxf2NezmLmiKFRXV5OVlUV8fDyAV7ogz0m/wYMHe/1tjpiYGB599NETf0JnKC29VUsnIjRaH5aSkoLRaNQnwfLz831OSGzdupWioiJmzZrFgAEDcDqd/Pvf/+b6669n4cKFvPvuu7z77rvMnDmTlJQUwsLC6NatG2FhYURGRhIeHk6XLl1aPd2n0+nEbDZzzTXXYDAY+POf/8yWLVt45ZVXWLlyJZ9//jkXXngh7777LoqisHnzZoYPH86GDRv46aefAJg4caJ+f9rnqFbAffjw4fpOtD59+gC1E29aelDP3T91C74LIYQQQgghOq+mfp33VlX18uP/XqQoyp+BHxRFufgUt+uUamjLvaqqDf4Y1C6rrKwkPT2dpKQk/Pz8cLlcFBQU4OfnR0VFhV5E99fb1d62oaKTbrdbv80NN9zAypUr6dOnD0lJSSQmJtK/f3+SkpLo2bMnBoNBH9jbv38/2dnZHDp0iEOHDrF48WLKy8u54YYbiI2NZdmyZcyaNYuePXuSnZ1NWlqang7l/PPPb/MaF6J1NJY+wu126++z5yRDnz59UBSF7t27s3btWrp06YLb7cZisZCdnU1iYiLBwcH4+/tTXV1NUVERFouF8vJyAgICqKqqwu1WMZnM+mMlJydTVVWFy+VqcNCvpqYGs9nMI488wqJFi7j55psZOnQoU6dOJSoqih9++IGVK1fq6cWWL1+O3W7X0zNpz7WiooK0tDSSk5Px9/fH7XbrgxwGg4GdO3eya9cuampquOSSS9o8hdrp0FRR8cb6NU9aKqum7nPChAnMmzePxx57jPHjx3PVVVdx6623Ehsby9VXX83Ro0dRFIVu3bqxa9cuDAYDP/74I5MnTyYxMZFt27YRERFBREQEmZmZbN26lWHDhnHbbbfxwgsvcPHFFzN+/Hivx/R8n308k0afv6qqdOnShUmTJvH2228DcOedd6Kqar3nuWzZMq644gqGDRvGokWLqKys5LPPPmPGjBn6QGRgYCDTpk1j8eLFrF69GpCdEq1JVVWvPgsgIiKCqVOn8vbbb7NkyRJuueWWerf79ttvufrqq7FYLHrqnNtuu417772XDz74gNdff91n2sLGY8u7XbfddhtGo5HLL7+cX375hfJyOxaLn97mHTt20LNnT/Ly8oiPjyc4OJisrCz27dsH/NpXpqWlkZSU5JU2zt/fXx8Ib+z4a+qyxp5LZ/ns97W7qzm019ZmszFhwgQqKir4+eef9R1fubm59ep9uN1uvej1xIkT2bx5M+Hh4TgcDoqLizn33HOJj49n7969fPHFF3z22Wc+H9tsNjNnzhxCx9+EyWRuNC5dLle975ue7dEmUZ1OJ926ddM/B7U0i0OHDqW4uJiDBw8SHx+Poijs3r2bjIwMrzhMSUnRXxPt+67NZsNkMukTDH5+fvTv3x+DwYCqqiQlJaEoCn369Kl3LPt6TzpLTAohhBBCCCF+1dSEhJ+iKAZVVd0Aqqr+XVGUbGA10HQ+jjOE50rNuiu/UlNT2bJlC06nk4qKinqDn4pSO0jaUK56bfDg+++/5+2332bs2LGUl5fz/vvv6yl1oHagomvXruTm5tYbjIiKimLAgAFcffXV7N69m7Vr1zJgwAAKCwux2+1kZGQQGxuL0Whk1KhR8uOvk1AURX+vtVXGWhqmAQMGsHHjRjIzM+nVqxf9+/dny5Yten2A5ORkoLZoak5ODgDl5eUEBgbi5+eHwaB4rRofMWIEfn5+mEymBicADAYD7733Hv/4xz+YMmUKDz74IL179wZqJyu6du2q16vYuXMnRUVFBAcH07t3bxRFoaysjLVr12I2m8nIyEBVVYYPH64XhlUUhcOHD2OxWAgJCaFXr15UVFQ0K3WQqK+pfmLevHmsXr2aO+64g59++om0tDTuvPNOvv32W4YPH06XLl1466238Pf3p0uXLpSUlFBcXEx6erqe5i48PFyPtcGDB/P000/z/fffc8MNN7B9+3avXQcGg6GRNinN6tcuvfRSli5dSu/eveutUofaQqwzZ86kX79+zJkzB4fDwfLly1m2bBlAvVRQ2k6JsWPHSr/aihRFobS0lIULF3LdddcRGRlJREQEcXFxjB8/nk8//ZTq6mr9c1VVVZ599lkeeughfUdEv379iIyM5KuvvuKDDz7grrvuYtiwYfzpT3/i4Ycf9vpMNhqNzXr/nn/+eb7//nt+//vfc8kll7BmzRqW5XbRL9+xYwebN28mPz+fkJAQfZdEVVUVsbGxxMbGUl5ezltvvYXBYMDtdjNkyJB6j6PtsND6a1+vj2hYa74+2nuqDf4XFBTUu3/tO9yQIUMoLi5m5cqVGAwGrr32Wvz8/DjrrLM4dOgQd999NwsWLMBut3PkyBHWrVvHihUrOHLkCLGxsfj7+7NgwQJSbGeRlJSEyWRq9mRy3efvuRjBz8+vXjxphda1lIc2m43k5GTcbjeDBw/GarV67YwAKCoqYv/+/QQGBlJcXMyePXtQVZWUlBSv/tnPz0/v1+HX7x91i7ILIYQQQgghOq+mJiS+AiYBy7QzVFV9U1GUo8C/T2XD2guHw8HGjRvp2bMnERER+iCW9lfLp7tz504qKipO6DFcLhf3338/CQkJLF26FJPJREFBAU6nk0WLFvHdd98B6IOzZWVllJWVMW7cOObOnasPDNvtdv74xz+iKAppaWlcdtllhIaGArUpWM4666yTeSlEB+aZ1kijDRhoOw0GDx5MUFAQRqORqqoqLBaLnu7o3Xff1SckNFrKJqhN49OU9evXc/PNNzNp0iRefPFFPS2Q2+2moKCAqKgo+vbtS2FhIU6nk6FDh5KYmKjXZVm7di1r165lxIgRDB06lEGDBtVbeRkbG8vIkSOZNm0aFotFBkBOIaPRyGuvvcaoUaN47bXXuPTSS+nXrx+bNm1i0KBBHDp0iMLCQsLCwvjNb37D0aNHGTx4sD4g1r17d8rLywkODuacc84BagfZ3nzzTcaNG8e9997b6oV6r7zyShITE+nZs6d+Xk1NDUuXLmX+/Pl8/fXX9OnTh9tuu41ffvmFzZs3M2PGDAD9r6fg4GCf54uT98EHH7By5Ur8/Py45557CAgIoLq6mpEjR7Jw4UJ+/PFHxo8fT0VFBb/73e945513mDVrFq+//jpOp5Pw8HCgdnB21qxZJCYm8sILL/C3v/2NTz/9lPnz5+tx1xzLly/nwQcf5LLLLuPJJ58kMDCQ6dOns+KtH3G7a1BVVU+1NGDAABwOB2FhYRw6dIisrCx69+6N2Wxm2bJl7N27l8jISJ9FuUtKSvj6668ZOnQoPXv2PKFV/hptx4Y2wCxaTntPtc++/Pz8etex2+2sW7eOu+66i5CQEIqKiigrK2PTpk1MmzYNqE2tpQkMDMRkMhETE8M999yj11vo0qULN954Iw++XTvBe+21H/DCCy/o3+Ma8u677/LVV1/x3nvv1ZvAcjgcVFRU1Nuh4LmDRPurpWNqaBIkLCwMt9uNzWYjOjqazMxMfVGB2+3WaznVbYOv7x9CCCGEEEKIzq3RCQlVVR8EUBTFD7gciPe4zduntGXtgMPh4KOPPqKkpARFUYiLi9ML/Gq0H3CLFi3C6XSe0OPMnz+ftLQ0brjhBvz8/CgrK2P79u1ERUXRvXt3HnroIbp37054eDjl5eUUFRVx5MgRxowZ47VKPSAggHnz5vH+++/zm9/8BqPRiNFoJCEhAVVV9Zy/srpSQO1qRS0tQ25uLh988AHnnHMO2dnZ+Pn5kZCQgMlkIjIyktmzZ3P//ffXKWr96wrjpmLq4MGDzJ49m549e7JgwQJCQ0P54YcfGD16NAaDgYqKCux2O1OnTmXHjh0MHTq03gDGmDFj9L/aynlt1ao28WA2m+ul0xCnTkJCAm+88QZPP/00zz//PBaLhdjYWMaNGwfU1tYZOnQokZGRXpNWgwYN0utI1J00GjVqFHPmzGHBggVccsklXHjhha3W3q5duzJ58mSgtn//5z//yYIFC8jKyiIiIoIHHniAe+65B6vVypo1a/TaEL6KZDeHZy0ByZ3eMldddZXXX6gtuh4VFYXJZOKjjz4iISGB2bNns2HDBv72t7/x5z//merqag4ePEjXrl313VpZWVkcO3aMxx57jDlz5nDbbbcxatQobr/9dv7xj3/ok54NOXDgAHPmzKFfv3688cYbXv2g2+3G5aqhvLwcg8GgD+gGBQWhqmq9uixjxozB7XYzdOhQnwPNy5Yt4+effwagb9++J/EK1q7uX79+PampqcydO1cmJU6A1WrlnHPOweFwAJCXl1fvOj/88APV1dVMmTKFmJgYbrjhBvbs2aN/ZvmixUOPHj04++yz9fPPOuss+m8q4eDBQ3z47IcsX76cF198kZkzZ/rcfVhUVMS9995LcXExn376KbNnz/a63Ol00r17dwIDA/UUoSfaFxmNRqKjowFYvXo1v/zyCzt37mTcuHH1Jj1cLpc+IV1YWMg777zD1VdfTWRk5Ak9thBCCCGEEOLM0txfJV8AlwAuwH78VH6qGtVe7Ny5k2PHjtGlSxeGDx/u80ec2+3GbrcTEhKCy+Xi0KFDLX6chQsXMnz4cB577DF9pd369evZunUrNpuNhIQE+vTpQ5cuXfS8wUOHDvVZRDUyMpK777673o8+h8NBaWmp/qNaCE8ffPAB33//PWvXrqV37971Vu6azbW7Ibp0+TU9idFoYOLEiU0WVM3MzOS8886jsrKSL7/8kri4ONatW8fatWtZt24dVqsVl8tFSUkJRUVFXql0PAUFBTFt2rR6aXyaM8nmdrspLy9vMOe2+JU2edlUXQqoff1nzJjB6tWriYuLIzo6mhkzZhAUFERQUBAzZswgOjq6wbQzWtqQuq688kpMJhMLFy5slefkyyeffMKjjz5Kjx49+Oijjzh06BBPPvkkERERBAUFMX369JMuVC397omLjIzknnvu0T/L3G43ISEhDBw4kKlTp/LKK68QFxfHzp07ufjii/nd736Hoiikp6eTlpZGenq6fl+xsbH07t2b2NhYLrzwQnbu3Mnvf/97/vOf//DPf/6zybY89dRTOJ1OPv/883oxYTAYMJlqB4p9vddaXRatD9WOi6ioKJ+xf9555zFhwgQuvPBCPa1Tfn4+P/74Y4sXPWi73o4dO8aOHTtadFvhzWq1EhsbyyuvvMKWLVsAOHLkCHfddRdXXnklYWFhjBkzBpPJRJ8+fZgxY4b+/vnqU+vGhaawsJDi4mOYLWaeeOIJIiMjueKKK+jduzcLFiyo164ff/yR4uJiAL2OhSftM0/ri0504UxdWl017Tn5+/sTHBysT3oVFhaSk5NDYWEh77//PkuWLOGdd95plccWQgghhBBCdHxNpWzS9FBVdeopbclpotV60FZE7t+/n3//+9/84Q9/ID4+3uu6AwcOxOFw4Ha7ycvLo0ePHvUK9mopY6ZPn85DDz3EggUL+Nvf/taiNlVWVhIfH4/NZmP//v160cukpCT8/f31FWkGg4HY2FhsNluTW/jr0lYhSwqbzqGmpoaCggK6du3KsWPHCA8Pr7e6sqKigoyMDBITE5kzZw4Ac+bM8bmCMSMjA6De7oPFixc32o5du3YxdepUKioqWLx4Mf369QNg9OjR+l+DwUB4eDh2u53Q0FAsFkurr+TVBmOADltTom7f1Rz79+/n+eef55577tGLVTfFcxA9MzOzReletLgLCwtrsLh5c6xfvx6Xy8Xdd999wvfRlGnTpuHn50f37t2ZNWuW12Xa8/B13LSE9Lu+acVxtbRK2r8bi5mSkhJ++eUX+vTpw4IFC1i1ahXffPMNfn5+3HbbbXp6ubppFaF28LdXr176BEBwcDAvvvgiv/zyC/Pnz+ehhx6qNzDsaeXKlUyaNIk+ffr4uFTBYDASGBioT5DW1VjqpLqx1qVLF2bOnImiKNTU1HDw4EFSU1PJzMzUV7e/9dZbTJs2jQsuuMBrl2RdVquVuXPn6o8tTs5XX33FRRddxLhx45g1axYffvghLpeLq6++mnnz5nm9t3WLsjdW1NlTWFgYoaGhOBwObrnpEu666y6++OILXnjhBW6++WZKSkq499579etPmzaNv/zlL5SVlfnsL3v06EFaWhoulwuTydRk/GkpFJvq+1JSUrBarfTt25fMzExiYmK8nlvXrl3Jz8+na9eu/OY3v6GmpqbeTjPPXXKej3synx1CCCGEEEKIjqG5OyTWK4oyqOmrtX/aIKzm3//+N8uXL+ff//61JIbdbmfVqlWoqorNZmPz5s2sX7+ewsJC4NddEW63G6vVSmBgID169OCCCy7gjTfewOVytahN2kozp9NJeXk5JpOJiy66iB49ehATE0NhYaF+n1oKnZb+YGtsNbI48xQUFHDkyBHS09M5cuQIBQUF9a6TkZHBrl27yMjIICQkhIsvvpiQkBCf96etNm5o94IvW7duZdKkSdTU1PDDDz8wYsQI/bKgoCCmTp2qrzYODAykd+/eBAQEtMpOhrorUm02G8HBwR16YNjpdHqt+m4OrQjvc8891+R17XY7K1aswO12ExwcTEZGBps3b2bbtm3N3jGhxZ3WV56I/fv3869//YurrrpKn7g6Fbp168acOXNYsmQJJSUlXpdpz8PXcdMSBoNBH6gWv/J8fZv7WhcWFpKXl8fhw4dxuVxMmzaN1157jQcffJABAwbon4l+fn4MGjSo0YF6zS233MLhw4cbnVjNyckhPT1dL2DekMY+Y3fs2MGWLVvYsWMHdrudlStX6jsp6j5/bZC2uLiYN998kwMHDpCYmMjIkSOJiYnhX//6F9988w0vvfRSs/oDLeWQpGs6eYMHD+bnn38mOTmZd999l4svvpg33niDv/zlL/Ts2ZPc3Fz9u5rVatV3DGifP/7+/k32pdqkQVhYGIGBgZjNZmbNmsUPP/ygp0707M8NBgOPPPIITz/9tL54xVN8fDzl5eV07dqVsLAwnE6n1+PXjb+MjAzeeustr+/JvmjpSgsLC8nMzCQ7O9vr8mPHjuFyuTh27BghISHMnDmz3kIaz8nv1upzhRBCCCGEEB1Do6PaiqKkAurx612vKEomUAkogKqqaodbcufv7++1yvsPf/iD11+ATZs2sWHDBgBGjBiBy+UiOjpaX4FZt5CuwWCgvLycq666iiVLlrB48WIuuuiiZrdJm5AICwujoqKCsLAwPf+u0WikqKgIQHLvimZRVRV/f3+ioqIIDQ3Vd0hoKisr2bt3r57DOjExkezsbPbt2wdAr169gNqJt8LCQvbt28fu3bsxm83ExcVRU1PTZBsOHjzI9OnTsdlsLF26lD59+jQ6CONyucjLy8NkMumD2ZGRkbjdbpxOp89CmY2puyNCGxjuyKxWa4smhADuuecer7+N2bBhAz/++CMAEydO5KyzzsJgMJCQkNDs1b1anGl9ZV3a+9lYmq37778fk8nE008/3WSbT9Ydd9zBwoULWbhwIXfeead+vvY8wsPDvVbxyoTuydFqamgDk579kue/NZWVlaSnp5OUlKTXcIqJicHlcmG1Wjlw4IDebzV3B5CnSZMmER0dzauvvsrFF1/s8zqrV68GOKkdBtpttQHtn376CYAJEyZ4xRr82nd99913rFu3DpfLxfjx4zEajdTU1PC73/0OPz8/pk+f3uL+QJy8qKgo1qxZo6fzzM7O1heO5OTkALWfXXULOQcEBGC32332pdpn7Z49ewgNDUVV3SiK9+ed2WzWUx7df//9uN3uZu0gi4uLY9WqVdhsNq/PRe3xPeOvpqaGVatWsWvXLuLi4ppVw6RHjx5UVlZSUlJCZWWlPhGofQaEhISQnp7O4cOHAe/j1HMHmbbzz1c/IIQQQgghhDjzNLXMvvWqibYTVqvVa6VgQkICzz//PIA+YDp8+HDcbjfDhw/HZrNx7rnnet1H3TQcNpuNqqoqRowYQXR0NK+99prH4IYCuBtc8a095rFjx8jJycFisVBVVUV+fj6ZmZnExsbqA8taUWqgyQEyGTjrHHy9z3a7HYfDQXBwMH5+fvUmstLT09m5cyeqquoF2nv06IGqqnrtCG0QdtOmTezatYsffviBhIQEjEajPoEG1EvpYDAYcDgczJw5k6qqKpYvX64PatTU1GC327FYLBQVFXmlhNi3bx9r167l3HPPbXDyr6EJBV+vwZmYKsdqtTaYrqmh4z0hIcFr91djtALn2l+r1crIkSO9CjNrj9PQ45lMJqKiohqcfKo7mQveg86rV6/m888/5/HHHycmJqbBtjocDvbt26dPGJxofzds2DBGjhzJf/7zH6677joqKir0uIyMjNSPg+ZOyIjGaa9lcHAwUVFR+vme//ak1YOA2kLoCQkJqKqqD3rWLRjtyeVycfjwYY4cOcLZZ5+Nn59fvTjeunUrffv2ZcmSJRw4cKBe2kaoTdcUFBTEhAkTGnxeilL/mKioqNDjWltN7nA4GDZsGKqq6jvGtFiD2j6yqKgIp9PJsGHDyMvLY+LEiXo/aTQamTRpEiNHjsRkMpGdnU1sbKxXuilFUeTz/wQ19rp5XmaxWIiIiADQY7LuxJKv23p+Lnnen8PhYNmyZbz33nuMGjUKR9cUXK5qHA6HV5/jOSnx4IMPYjAYvNI3aTz73/j4eEpLSykuLiYwMFBf9FJVVcXhw4fp0aOHHn+5ubn0798fg8HABRdcoN+Xdtz4YrFYKC8vZ8mSJbhcLj2utd28drudoKAgYmJi6h2n2q4i+PU4qKmp4ejRoyedLk8IIYQQQgjRvjW65FhV1YONnU5XIzWKooxQFMVXEudW05zit3VTMyiKwrFjxzh8+DCXXXYZS5Ys4eDB5r88qqqSl5fHmjVrgNofq5GRkQQHBxMbG0tkZCRVVVX61nYplCoao6WHaChFR3x8PH5+fpSWllJZWQn4LrBps9kYPnw4gYGBVFdXN5A/3Zvb7ea6664jLS2Nxx57jJCQELKzs8nOzqa8vJzS0lKysrLqpWaoqKjA6XRSXV3tlZJMS3vR0okFSZXTcgEBAUycOBGAFStWYLfbgdZ9LX3FpjZBtnPnTr3Wha9BNqgdMJs3bx49e/ZkyJAhxMTEsHr1atatW0f//v0ZP348s2fP5r777mPXrl3NatPvf/979u7dy3PPPeczZciZkO6rvWjpaxkVFUVhYWGDExbarq2ioqJ6O7cKCwtZuXIl3377LVu3bsXpdHLs2DHy8vL0AduUlBS9GPb8+fN9Psbq1av1YsU1NTXk5uY2a5dY3eLazfncLigoYM+ePRw8eJCQkBCuvfZaevfu7XUd7ftHdnY2GRkZZGVlNdkWT835jiN+5XK5OHr0aJOpOLUB9cYG0T37Us/71Xb7lJWVUVFRcfz7XhmbN2/G5XJ5pYIym808+uijzJo1q176Jl+GDx8OwP/+9z+Ki4spKSmhuLiYw4cPs2/fPn3nAtTuakhMTGT27NkEBwcDtXFb97ipy+FwUF1dTWlpab3jw2AwcPToUX1ncmZmJtXV1Q22V1I3CSGEEEII0Tl0mNE6RVEuAN4HAjzOa/VlgE6nk9WrV7NmzRo9bVNzxMTE6Dl6jUYjzzzzTLNvq6oqbrebrl27YjAYMBgMlJWVYTab9ZW5ngM52qm0tLRZAyOic2lqADk/P5/c3Fw2bNjQaA5yLY3Y9OnTycjIaFZ6kMcee4zPP/+cJ554gokTJ+Jyudi9eze7d+/Wd23ExsbSvXt3r5WkAwcOZPLkyQwcOFA/70TTNYmTo6Vuakn/11yKomC1WnE6nfqAaGJiIr169WLFihXs2rWLf/7zn/V2guzZs4ebb76ZuLg4nnjiCcaNG8fbb7/Nyy+/THx8PBGREQwePBij0cju3bt5+eWXSU5O5tJLL9XTUDVk1qxZREVFsXnzZiIiIvTUJbm5ubjdbqm/04paOrm1ceNGDh8+zMaNGxu8jjaAmZeXpw+M5ubm0rVrVwYMGEDPnj1RFEVPfehyufSBU4vFwkUXXcT06dP53//+R1VVldd95+XlsXv3bhITE1tU7wJq6+0kJyfr/ab2GZ6Wltbg8RUeHs6AAQMYMGAAUVFRXgPc+fn5vPTSS+Tn5wO1u0ISExN97g5pjCxoaJnmvudaDR5tIre591tYWIjBYOCmm25i1qxZXHnllQQHBxEcHMSwYcMoLCwkKyuL3bt343K5cLlcBAYG8pe//MVnTYm6xo0bx4UXXsjf/vY3Dh8+zPfff4/b7aZHjx707t1b3xUJtbsagoOD9YUvUBu3JpMJl8uF0+n0um+tnxw6dCgzZswgISGh3muVkZHBgQMH9Mmzffv2NTqJFh4eXu/7gRBCCCGEEOLM07LKyG1EUZTxwH+A36mquk1RFKuqqk5q21+tKIpBVdUGl/spivI74HcAPXv2bPSxrFYr48aNIzQ0VE9d0hxms5nNmzeTlpbGsGHDmD9/Pk888USTt3O73Rw7doy+ffvSs2dPunXrBvyaf1f7UaYNilVXV5OVlYXZbKagoACDwSC1JdpYS+KrPYiNjWXcuHE4nc4mJxkcDgf79++noqKCDRs2cOTIET1VRV3vvPMOTzzxBNdccw1XX321XhOif//+QG0RYW3nQ92YtVgsJCcne53ndDopKCigrKyMvn37YrFYTvQpd1htEVt1Uze1Fq3vCgkJoaKiAqjdleF2u+nZsyf//e9/CQoKYsiQIV63q6ysZOjQoVRUVJCYmMgXX3yhxxRAxsIfqays4Ll572A0GiksLOTHH39kyZIlfPTRR3z55Zc888wz3HfffT7bVVxcTGRkJIsXL6aqqgqj0Uhubi5HjhwBztzaPR2h39IKSdctKK3FUmxsrP4Z6e/vT2lpKU6nUy9SPnToUPz8/Ni/fz9lZWUMGjSI4OBgSktLOXr0KHa7HavVyjXXXMPXX3/N+++/z3XXXac/zmeffQbA1KlTm6x3UZe/v7+eEg9+/QwfOXIkBoPB5/FlNBqJiYnR05B5psv58MMP+e6774Da2ifarraWOh3p7DpCbDVXY6mYPNWtwdPc+9W+63Xr1o3Zs2eTk5OD2+2mS5eu2Gw2/Pz8yMvLo6qqSq+vVFhYqNc+qays5P7772fGjBkN1nz417/+RWJiIn/5y1+wWq0EBARw++23k5CQgNvt1o8Dg8Gg717T4kNRFCIiIigvL6eiooKcnBzi4uL076BHjhyhe/fupKSk4Ha7sdlsXq+V9h0jKSlJn4hsbBLNM4WZEEIIIYQQ4szV7pcdK7WV/aYCW4CNiqLEAS8pivIy8KSiKL0bm4wAUFX1NVVVh6uqOlwb8G+INsA/efJkn/nCG0vZMHPmTCZNmsScOXNwuVzs3bu3yee3ePFijhw5woUXXsiAAQP0AVuTyURERES97f9ZWVlkZGTgdDplFVk70ZL4ag/MZjP9+vWjX79+DQ7yl5SU8OWXX1JdXc3gwYN54IEH2Lx5M4MHD+bDDz+kbuaG77//nptvvplJkybx6KOPEhAQQHR0NJGRkcTExBATE9PifNAGg4EtW7awf//+FqclOVO0RWxpqZtau15CVlYWO3fuZP369VgsFn3gS0vL9cQTT2AwGBg6dCiff/65fjs/Pz/eeustBg4cSEZGBhdeeCGvvPIKhYWFqKpKZWVtuq+srCwMBgM2m41hw4bx17/+lczMTGbPns0DDzzAs88+W69N3377LWeddRZ79uzhySef1AdPtVW6JpOJTz/9VB/gPpN0hH4rKCiI6dOnExQU5HX+7t27+fjjj9m9e7c+gBkcHKzvwAoICGDVqlXY7Xbi4+OJjY2t3UkTEUFAQAARERF0796d2NhYgoODmTlzph4z2mTZsWPH+Otf/8rYsWOZOnUqRqOxWWl5mqIdX82ZEPBMlzN79mzOP/98rrzySp/XbW46qdORzq4jxFZzaXVxtO9mDUlJSeHcc89t9kSur/sNCwsjOjoak8nsdb3+/fvTo0cPwsLC9OuEhoZiNpupqakhKCiIuLi4Bh9L+5wfO3Ys5513HrNnz9Yv0+r6lJWVkZ2dTU5ODv7+/l47whRFwWAwkJ6ezq5du/TP47q7GXwdH35+fiQnJ+Pn54fZbCYsLIyvvvrqjOxThRBCCCGEEM3X7ickjk82PA0cBP4JLAVSgWVACfBHRVGspyJ9ky+Nbd8PDw/n2muv1dPOZGZmNnl/L730kj5gq/0w1XI8+8rXq6Vp6NWr10kPjIiO62TzgGuDEOXl5djt9nqxtmrVKlavXs3q1asJDg7m/vvv5/XXX6dv375ce+217N69W88DvWXLFq644goGDBjAv//9b2w2G0FBQV61IBp7Hna73efz2LdvH0ePHmXXrl2EhISc0PMU7UdsbKy+g+HIkSM4nU5WrFiB0+kkICCAnj17cv/995OUlMTll1/O3XffrafQmTVrFtu2bePzzz+nW7du/P73v+fcc8/l4MGDmExm/P2t+qpbq9WKyWSivLyc3bt387///a/epERFRQV33nknF154IZGRkWzcuJEHH3zQq3hwZGQkq1atYsWKFSxbtgyoTa/n63jpzNqiJkFmZiZ5eXnk5OTo5ymKgs1mw2w2k5aWxpo1a1i+fDlBQUH069ePxMTEeu+v2WzGZrNRWVnJY489xqFDh3jppZeA2vRzBQUF/Otf/zqhdF1a39ZUrDSW6sczXU5gYCB33HEHDQ3wS+79ttUaE7laIei68WYymejWrRuVlZXU1NRQVlZGeXk527Zt46effuKiiy6ql+bO0+bNm4HaSZNbb73VK4b8/PwwGAx6f7l7926fMWSz2ejXrx8DBgzQ+9oTmaBbvnw5K1asYPny5fUuk/5VCCGEEEKIzqPdpmxSFCVeVdUDAKqqHlMU5e/AX4AXVFV95fh1coCbjqdvOi18bd+32+1s3ryZs846C0BPJ5KZmQndG05XsHPnTn744QcuvvhiRo8erZ/vcDgoKysDIDAw0Os2ZrOZXr164XA4MJlMkte8k9LygEP9GGkObXW62+3W78dzIGXcuHFUVFQwbtw4HA4HR48eJTIykpdffpn333+flQUFlJQc499lW3jqqacICwvjiy++ICQkRC+CvXfvXvr06YOfn5/PNrjdbvLz83G5XHTt2rXeQE7v3r1ZvXo1VVVVbNu2jUmTJrX4eYr2w2Qycc4553D48GGSkpJYv349P/30E1Cb4mTw4MEoisLtt9/OvHnzePHFFzly5AgfffQRULuy+5JLLuHiiy9m8eLFXH755dx0000MuHIefn4WvSC7wWCgW7duHDhwgH379mGz2Xj33XcBeOCBB8jLy2Px4sWkpaVx5513Mm/ePHbs2IHdbq8Xg5MnT0ZVVSZNmqRPnJWXlwO0+g6Sjupk+6ITebzk5GQsFgtjxozxeZ3Jkyfrf7U0NE6nE5vNVu8zU2t/WFgY06ZN44knnmDUqFG89NJL3HjjjZx99tlAbeqw9PR0kpKSsFgseiqlxtrpq2+tq7FUP1q6nLqPZbfb2bBhAykpKfp9Nze1kGh/tHpJiqKQmZmJ2+2ut4NFW0RQUFDA/v37iYyM5OjRoxQWFnL55Zc3ev+bN2/GYDDUKyZtt9tZvXo1ffr0oVu3bvp3V18xpCgKXbt2PenFAZ7HZl3NPWaEEEIIIYQQHV+73CGhKMrFwEpFUfRKfaqqHgMeBhZ4XDUBiFEUxTufwymgrXZUFKXeirCNGzeyfft2NmzYgN1ux2az0a1bNzIyMgAVVa29fd3TSy+9hL+/PzfccAPR0dGoqoqqqvoKc6vVqp/neZKilJ2L9r67XC6OHj2Ky+XyKnJeNz48r1f3MqfTqcdpeXk5fn5+BAcH6xMUGrPZzLhx4zCbzVittavP+/btS3x8PI8++ihnnTUEi8XCvffeS1FREf/3f/9HZGQkDoeDmpoaMjIy2L17NxkZGfpjHzlyhKeeeors7GzcbjcOhwOXy4XJZMLPz0+/XlVVFZmZmVRUVDBlyhSGDx/e6vUMxOnncDioqqoiMTERi8VCSkoKI0eOJCUlBVVV8ff3Z9iwYVgsFv785z9zzz338Mknn/DLL794xTDAtGnTeOWVV/jhhx84dOgQLleNV6oag8HAWWedxaBBg0hKSsJoNPL6668za9YsnnnmGfLz8/niiy+488472bJlCz/99BMbNmyod7wEBwdz2WWXYbFY9IGy4OBgLBYLubm5VFdX++yjO8MKX62fMRgMOJ3OeunfGnpdHA4HP/300wl/flksFgwGA1OmTKk3aOn5vs2cOZPg4GC932voM1PrSwcNGsTcuXMpKSlhzJgxBAQE8Pjjj+vvZXp6Ojt37iQ9Pb3eZ7Cq1n++JpOJgoKCRneJZWdns2zZMnr37q0fB9rjaf/23IGineer8HxLV6u3xc6W06Wh2GurY7OxtmiTEaWlpezcuZM9e/ZQUVG7xsbzPff39yc4OJikpCQGDBhAUlIS3333HQEBAVxwwQX17tPz/5s3b2bAgAGMHDnS6/yNGzeybds29u7dq9eQONF0Xtp3C4fD4fUYBw8e5JFHHuHgwYMAdOnShcsuu4wuXbrUuw/P7zWA1qe324VTQgghhBBCiBPX7iYkFEWJAv5G7cSDSVGUf3pcXKWqatXx690B3Afcp6pqWSs9doMn7Qej01l/M8aIESPo1q0ba9asoaysjIqKCnr37s2BAweA2tubTCavU0lJCe+99x4DBw6ka9euGAwG/bE8fxR6tqGmpoa8vDzMZrPXjzbROXim5NAKpPraIaNdr7CwsF4cp6amsmXLFtatW0dOTg7FxcUEBATUG4DQBgYsFgsFBQUEBgYSExND165djw+MdGHo0KEsX76c//znP0yZMoWSkhJyc3NJTU3lww8/JCgoiMTERP2x3333XZYvX85bb72FoihYrVa6dOlCeHg4RqNRv97hw4fJyMigsLCQ7t27M3Xq1NOy8rozaqzPO5ndV77uS4spq9Wqx6+W4sSz79NqSsyePRuLxcJLL73k8/5++9vfcscdd3DkyBH27NnNtm3bvC739/dn8ODBej70Xbt2MW7cOObNm8f27dv1mhRRUVH6xEhDr4PW9sDAQAICAigqKtKPsc5K62cyMjIoKSmhqKioWbfbsWMHmzdvZseOHc26ft3aCEVFRfrj1X2f6n5maictpnx9Zmrvr9VqZc6cOUydOhWAefPmERERoR8HSUlJDBw4kKSkJP3+6k7ketLy8WdnZzcYV/Pnz+eHH35g9+7dXseB1i5FUSgoKGDDhg388Y9/5MiRIyiK4lWv4ESPW1nY0HpOph/1jM/k5GT69euHv39tXHnGs9FoJCAgAD8/PxITEwkKCmLRokXMmDFD3/nj6ziA2h0S8fHx7Nu3j7///e96HI0YMYKRI0cybtw4iouLyczM5MCBAw3GRGPPMS0tjW3btpGWlub1ffWll15i6dKlvPjii02+PnW/1xxPHWX22RghhBBCCCFEh9buVh6pqnpUUZQbgSygB/AHRVH+qarq/erxpW2KovgDZwPXqqq683S0y7MAa11Hjx7lpZdewu12YzQaueiiiwgPDyc1NZWzG7i/119/HafTyX333ceIESOa1YbCwkI9Z7bnQInoHJqbkkO7PCwsrN5lgwYNwuVy0a1bN2w2W73rZGdns2DBAm688UbCwsJYsWIFBw8eZPTo0fTv399r4kJRFIYPH87w4cMJCAjQV9q+/PLL/PDDD5hMJn1wD2Du3LnU1NRwzTXX8NJLL7Fp0yZeeeWVepMhWn7q2NhYPQ2P6Pi0idaamhrsdrvel5aUlFBYWIjRaOStt97ipptuIiYmhrPPPpsLLriAhQsX8vjjjxMcHFzvPp999llmPLSAkpJSXnnlFRYsWFDvOpoBAwZQWFjIddddR1BQkJ56pDlxpg2UaeoeY2VlZeTn55OQkNCyF6UD016Drl27cuzYsWanCho8eLDX36YUFBRw6NAh8vLyGDBgQItSE2VnZ/Pqq69y9dVXk5iYSEVFBTt27GDw4ME+P8sNBgPvvPMOu3btYtCgQV6X+fn5eZ3XVEoZz36sITfffLPXX1/Cw8NZtWoVa9euJTAwkEcffZTAwMCTTmGnTc7Iwoa2ZzAY9HhKTk7GsOUnr8u1XRRazDqdTn7++Wfy8/ObTNeUnZ1NXl4eI0eO5KuvvuKHH37A5XLx6KOP6pPCNTU1HDt2jJ49e57wYpfk5GSvv9r31dmzZ2M0GrnttttafJ/Hj/Hqpq4nWl98fLy+q6WuxgqoCyGEEEII0VztakJCURRFrbXl+P8LgH8DdyqK8qyqqvcpipIMZAA3Hy94fVp4/mCs67nnniMnJ4fo6GhGjhzJzp07CQ0NJSsri9om1p84WLhwIWPHjuWSSy7xOTBSWVnJ3r17SUxM1IsVaoNfvgaaxZlPS8nR3Ot5pqbQ4qlPnz707t2bo0ePEhwcXC+dyIIFC/juu+9QFIWZM2eyYcMG8vLyiI6OJj4+3usY0FJ+BAcHYzAYMBgMRERE8Lvf/Q6j0ciNN97odd/R0dE89NBDvPbaa9x1111A7YDDDTfcQEJCgn4cmM3mTjWw29lou800e/bsIT8/n+XLl7N582ZUVeXRRx/F5XJx22238dVXX/Hhhx/6HLQ1m80MGDCAzZu3sOr7Vaiq2uBErcPhIDQ0lE2bNjFq1Cj8/PyaHWee9QP8/PwwGo1ek8Lx8fEUFxeTkZHRaWLXZDIRFRUFoP9tDqvVyjnnnOPzfaqoqPB6naG2j8jLy6OyspKCggIiIyOb/Xjz589n6dKl2O12HnvsMdLS0vQCv+ecc47P26Snp7Njxw695kljKisrj6dprP8ZrvVjjS0ciImJ4dFHH230MYxGI/fccw+BgYGNTly0lDZBeKbxFUMdndPpJDc3l19++YWtW7eyadMmNm7ciNVqZfr06Y3e9vPPPwdgwoQJxMXFYTQauf76672uk5eXx4EDB0hISCA4OFiP2erqarKyspo1aWuz2bxSK3p+X9V28rTU8fRjrhbfUJy0gwcPNpre7IG3fjyNrRFCCCGEEGeiNp+Q0CYhANQ6335VVVUVRUkDXgSuUxTlJyACGKWq6tHT31rf7r33XsxmM3feeSfdu3dn7969HDp0CLfbTU1NDUZj/Ze5e/fuHDp0iIyMjHorMaF2UGTbtm1kZGQwdepU/P39MZlMREZGYrfb2bRpk74yXXQeLRkg8LR371527qzdTNSvXz/A98SWNolwww036EVeCwsLsVgs5OXlERsbq+coNxgMPtOWxMTE8Je//KXBtgwZMoQuXbpQUlJCYmIiu3fvBmDgwIHNfj6i46q726xfv35069aNQYMG6TskoLZWgFaEtbGBU7PZQs+ePVm3bx8HDx4kPj7e5/XCw8PZtWsX2dnZpKen++x3NVpRdqfTSXJyMunp6aSlpQF43c5ut7Nx40ZuvfVWqquriYiIaP4L0Y5UVlZSVVVVrw7E6aa9zhUVFfj7++uDygMGDKCgoKDFBZtvvvlm3G43V199NVarlcGDB+NyuYiIiDj+2exdb6G6uhqTyYTdbufo0aOsWLECf39//Pz88Pf31/P4W61WNmzYgL+/Pw6HvTVfAp+aM3EhajV0rHYkbncNZWVllJaWUlFRQUFBAZdccgmZmZlA7a6b4cOH89vf/rbR74CffPIJ99xzD5MmTeKcc87BaDTyyCOP1LuezWYjMDCw3s6IrKys47XQaPFEq/Z9tblO9LuNEEIIIYQQomNq8wkJwIjHCihFUQyeOx9UVa0GtiqKMpvaFE7T2tNkBEDv3r15/vnn9f8nJyfz44+1q4dqatz4qjF54403cs0115CVlUVCQoKeA1iTlJTEvn37KCsrIyMjQ98GD7Bp0ybWrl1LamoqN954Y6N5rMWZpSUDBFoBWavVSu/evXE4HPTu3RuTydRgyq+6kwnDhw8nLS2N1atXs3fvXnr37o3L5eLIETvFxcX89qvnmD17NrNmzWp2IcyqqioefvhhzjrrLAICArBYLJ1mVbmov9ssJCRET5/0l7/8RY/LoqIiVq9eDcC4ceMavU9twmLbtm0NTkgoikJycjL+/v4kJiY2en9ZWVmsXr1aL9aclJQEoP/VbNy4kdWrVxMTE8P111/fYfviyspKsrKy6N279ym5f60vqvs5V5f2+lZWVrJjxw4cDgcpKSnN3h1WV0xMDI899pj+f6vVSmJiItnZ2eTn55OTk0NaWhppaWns3LmTX375RZ8Ea8zNN99M9+7d6dKlC/7+A3zukBBto6FjtT1yOp2kpqYyaNAgr76jdjKijJUrV1JSUsJ9992Hoih88sknjB07lm7dujW6Gwzgm2++4aqrrmLkyJEsWrSo0WLnwcHBJCYm6hMS2vEaExMD1B5HtTuBGj9+T8bJTH6I9iMuLq7BGImLizteW08IIYQQQog2npBQFGUacKOiKJuBw6qqvq2qqttzUkJRFCPQC7gQmK6qamobNhnwzufb0CCs9uPS7a7xefnMmTMJCQnhzTff5OyzaytNeA7S+fn5MXXqVDIyMrwGz3Jzc9mwYQNutxuHw8GOHTuaTCshzhzNyUuuqZsaJzY2Vq/z0Fx79uzhkksuYf/+/V7nD7/+SQCWfvYZn376KQMGDOCBBx5gzpw5jabJyMvLY9OmTSQkJGCxWNizZ49eeFh0PFo/ZLPZmj0h1VyhoaGkpqaSkJBAjx49Gk0fERhYWwh1+/btXHrppT6v43Q6KSkpoVu3bk0eB7GxsYwbNw6n06mv0ve12nrEiBHs2rVL74vj4+N57733uOqqq1qUxqit+fn5NatPOVFaAWVovPaCVoi8oqKCmpoaIiIicDgcrboT0Gaz8fjjj7No0SL9vF69epGcnMyFF15IcnIyiYmJuN1uKisrqaiooKKiQv/3F198wfz587n66qtrY8IMLpeL5557jrlz557QxIloPf7+/qd8Z0RL+r2qqqoGV/7v2LGDbdu2AZCSkqJ/twwMDKKqqorPP/+Mjz/+mO7du7N48eImJ1I1y5cvZ9asWQwZMoRvvvmmydRcnjVytMmI0tJSgoODSUhIwG6368fvqUrz1ZLvNqL9amzCQereCSGEEEIIT202IaEoSgq1qZgeBdzAw4qi9FdV9U+ekxKqqtYAGYqiTFBVtait2us5gOVwOCgrK0NVVWw2G+Xl5axfv54hQ4boK8+1lWY1NW79x2tdV1xxBW+++SbPPvssVqu13oCbxWLR09hol3344YesXbuW8847j5EjRzJw4MBGB+oaIj8MOqa69RUaWyWpDfJ7Dvb7+/ujqiput9vnQIrb7aaiogKz2UxFRQWzZ8+mrKyMv/71r0RERNCtWzdCQ0P5NF3FbDaz4sVSPvnkE5599lmuv/565s2bxz333MONN95Yb+DC7Xbz8ccfs3btWiZNmsT06dMJCAjQY1hisuPQ+pzmDjSXlZWxdu1axowZQ0BAgNd7XV5eztq1axk1ahQmkwmr1YqiKFRWVrJ582YuvPBCPWa123311Vd8//33vPDCC4CKwWAgKSlJH9zz1V6r1aoPFtftb+vGnlaboik2m43rr79eL5T83//+l6VLlwJwzz33NHl7gOLiYn2HSEPtOdX8/PxOabomXwWUG/vc8vPzIyUlRR/09dTY7bQYKS8vZ82aNYwdO1bvh1RVpaioiIsvvpiff/6Zv/71r0ydOpUBAwbUi8nGXHnllVx44YW8//77DB06lICAAI4cyWHP6u+A+u+79GsnpqnvNafidW3sMT0/o+r2e56XlZWVsW7dOkaPHk1QUBAHDx5k165duN3uejuQBg8ejMFg0D8DtUUEigL5BQUsfecdhg4dymeffYbNZqOoqEiPZ7fb7XPyf926dVx66aX06dOHJUuW0KVLlxY9T/A+XrXvuZ7nnwpSO0oIIYQQQojOpXWXtLaMBVipquq7qqq+D1wA/EZRlL8DHJ+UGK8oyr3Hr1/cVg2F2h+/FRUVekHMoKAgbDYb+fn5PPTQQ3z11Vd8++23fPfddzidTv2HW+0ACXrRX8/T9ddfT2VlJYsWLcJgMKAoSr2TqqqUlpZy9OhR3G43V155JePHj2fWrFn079+/wZXl1dXVZGZmNiv9hGjffMWF56khWmoco9GI0WjU/60oSoPxVlFRoeet/sMf/sCuXbt46623eOSRR/jd737HzJkzGTVqFFarDZPJjMVi4aqrrmLTpk0sWrSIuLg47rvvPhISEnj44YcpKCjQ79toNDJ79mxGjx7N7NmzsdlsjBgxwmuVqcRtx+B0Ovn555+B2nQfvgaqKisrSU1NpbKykuXLl/PJJ5+wfPlyPR5cLhf79+9n+fLlrF69mmXLllFaWorT6cThcPDRRx9RWFjIuHHj6sXoHXfcwcsvv3y8P1YAhbPOOqvBCQkt5oOCgggKCqoX/w1RVZWSkhJycnKoqanxecxoRZqtVitXXXUVU6ZMYc6cOdjt9kYH/qqrq3nooYcIDw/n3nvvRVVVqqqqyMzMpKqqqiVvR7vk+RppBZS11705t617G8+T2+3GbrfX2+miXb58+XK+/PJLli9fDtQOIGdmZjJ69Gi2bdvGJ598wl//+lfOOeccgoKCmuxjPU9+fn589tlnDBkyhEceeYRjx0oIDw9n6NChzJ49u9n9c2OP0VD/3NR9ilon+pnZFKfTyYYNG4DaBSP79u2jsrJSv7yyspJ33nmHFStWsG7dOqB2wqK0tFSf9NL6PZfLhdVqZfjw4cdrkTjw8/MjKCiIAwcOkp+Xz/nnn8/SpUvJz89nyJAhDBkyhNTU1AafozaB26NHD77//nvCw8NbFNvaa6PtmPA8v6lJu5N5zSXWhRBCCCGE6HzackLCCUQqihIKoKpqDnAuME1RlCuPX6cA+Oj45S3fBtDKdu7cybZt29i9e7f+4+zNN99k8+bNlJWVERQUxLZt29i4caPXhERDkpOTGTZsGK+//nqDA1dOp5MDBw6QmZlJQUEBkZGR3HvvvQQFBVFWVobD4UBV1XqDX1o+3qysrNZ9EcQZb8+ePbz33nu8/fbbPPzww0yZMqXJ2yiKwrRp01i2bBlr1qxh9OjRPPPMM0yYMIGysjL9epGRkdx3330NpjWRuO0YduzYwebNm0lLS2twoCo9PZ2dO3eSnp5OSEgI/v7+XjsBtPe6e/fuJCYmMm7cOL1g8MaNG/nyyy8BGD9+vNf9vvLKK2RnZ2MymXj99df188866ywOHDjAsWPHmmy/3W5nxYoV2O2NFyR2OBxe/W9TtPgODg6mtLTUa2ecZz+dmZnJ2LFj+cc//sGwYcP417/+xb333ktWVhb79u2T+G+CtpLc6XTq51VXV7N//36qq6uJj4+ne/fuxMfH43A49N05BQUFfP/998ycOfOkHj8oKIhvvvmGqKgo9uzZQ1lZGRMmTJCJ1DNM3X4iNTWVrVu3snPnTnJycti9ezd79+7Vr797927sdjuxsbGMHj0agPz8fFwuF3l5eQA+j3EtnsvLy/nDH/5AVlYW0dFRfPzxx2zcuJFJkyahqiqqqjJp0iSWLVtWr62pqalMnTqVkJAQvv/++w6VMk4IIYQQQgjR+bTZhISqqpuBw8ASj/OOAv8BIo7/f6eqqofbpoX1DRw4kLPOOktPowS1xf7CwsKYPHkyM2bM4Nxzz6V///7s2rULoMmVrldddRWpqals2bLF5+VWq5X4+HgSEhIIDw8HoKamhrKyMgwGA8uXL+fqq69m27ZtXoNfsbGxJCYmSj7eTqSxQdaGVhTXlZaWxrp167jvvvsYP368V4Hr5ho1ahSLFi1i8eLF7Nmzh1tvvVW/rKamhtzcXGpqfNdWkbjtGAYPHsywYcMYPHhwg9dJSkpi4MCBJCUlER8fz/jx470KTmvvdXBwMLGxsZSVlem7ZUaMGEF5eTldu3YlLi5Ov01FRQVPPfUU48eP58orr+SDDz7Q6/T0798fgO3bt3u1Q4t9zwnbDRs28OOPP+qrnRtis9nq9b/NYbFY9ILYGi3Ny6pVqzj77LNJT0/no48+4ueff+bOO+/khRde4N1336V3796dKv6bmhxyu92Ul5d79V1Wq1WfvNJoE1z79+8nLCyMOXPmMHDgQDIyMpg1axZWq5W1a9fqA8UnKzIyksWLFwO1E0w2m43o6OhWuW/RPtTtJwYNGsTZZ5/NoEGD6NOnDwMHDqRPnz769UNCQoiLi+Oiiy4iKCgIgL59+zJs2DD69esH1PZ7nse4y+WitLQUm83GLbfcwsKFC4mPjycpqS8///wzF198MdHR0axcuZLVq1cTFxfHpZdequ/+Adi1axfnn38+/v7+LFu2rMH+QzuW6i6Aae4ErRBCCCGEEEK0ljapIaEoikVV1SpVVW9XFOVrRVHWArOOT0iEAwMURTFQuzGizXdGaLTt9Z5mzJiByWRi8uTJlJeXM2bMGNauXUt+fj5xcXHs3bu3wbRKJSUlvPnmmwQEBOg/Xp1Op56P3N/fH4PBQJcuXbzyAOfl5XHgwAEqKyv597//zb59+zAajSxcuFC/juTj7Xw2bNjATz/9BMDEiRO9LvMscN1Yrv/BgweTk5Oj59w/0ULFe/bs4fPPP9f/7XA42LVrF2FhYeTk5OB2u30O3kncdgxamqLGeBaC7tGjB/7+/l6D+tp7XV1djcVi0QfRqquryc7OZvjw4fzwww9cfvnlvPPOO/qus6ioKFatWgVwPCe7Qk2Ni0cffZTAwEB69erl1Q5fdS5SUlK8/jZEURS6du1K165dfV7u2V97Do4XFRVRXFybZbBXr14oyq91hbSV0tqKZ09Go5GEhIROlapEG/SF+v0WeL9/Wv58LR2dJy1+zGYzBQUFdO/eHbPZrNfFOeuss/RB4dagqipLlizB5XJhsfhRVVWl787xFRPixDR0jJ0OdfsJo9FIeHg4RqMRi8VCcnIy8GtNhpiYGMaNG0dYWJh+H579oHYf3bp1o6KiAqPRSFFREbm5uURHR+v343n4q6paL91n7XVqr/TDDz8wa9Ys/P39Wbx4MYGBgbhcrnoFtKHhmj+ex+CECRNO/AUTQgghhBBCiGY67TsklNpi1VXH//0w8CywFXhZUZQPgN8C/zhe0LrdTEY0pKqqiv79+5Obm0tOTg6FhYWMGDGCcePG8fXXX2M0GklLSyUtLc3rdhUVFcyZM4fdu3fz8ccfk5SUBNQOZGzZsoUdO3Y0+Jg2m43AwED69+/PXXfdxdixY/nzn/+Moig4nU42bdrklcpCdA4pKSmMHDnS5yCrtqLYYrGQm5vb4E4Jq9XKpZdeyt///neWLFnCq6++2uzHLy0t5X//+x9jxoxh4MCBLFiwgP79+/PBBx+wa9cuduzYwb59+wgMDDylxTFF+2M0GomMjMRoNNa7TJuY0AbQsrKy2Lp1K6NHj+aJJ57g66+/Zvz48WRnZ+Pv78/q1au59NJLmTp1Kl9//TWKUrtCODU1lQ8//JCePXt63b/NZqtX5yIgIICJEyd6Dco1tXvHFy11Vd3+Ojw8nJCQEMxms75zTcvDfskll/Dhhx/St29frrzySoxGIy+++CK///3v+dOf/tTsxz5TpKSkcO6555KSkqK/By6XS7/c1/vni9lsplevXnTv3p3u3bvrk19nn302Tz75JF988QXPPvtsq7S5srKSm266ibvuuovQsDAGDRpEWFgYNputwZgQJ6YtX8+6/cThw4fZt28fhw/73rhrMpmIjIzEZGp4rY/T6SQ3N5fc3FycTiehoaFER0cTFhbGO++8w+zZs9m//wB7M/YycuRIvvzyS7KyskhMTCQhIYHMzEw+//xzJk2axBtvvMHUqVOJiYnhxx9/JCIiQv8e6ktDx5LnMejpRPpEIYQQQgghhGiO07pD4vhkhPv4v/8BjFZV9UlghaIo/QEbUKiq6oHT2a6Toa2E69q1K8eOHSMsLAyTyaSvMhs8OJcdO7YzY8YMvv32WwYOHEhNTQ033ngja9asYf78+UydOlW/Py0FSmOpUIKCgujVqxf+/v5MnDiRGTNm6Kvltm/fzvr166moqGDo0KHYbLZOtdq2M9MGTzxVV1eTlZVFbGwsAQEB5ObmcuTIEYAG6zgA3HHHHSxdupQHH3yQiRMn0rdvX5/Xc7vdrFmzhrfeeotPP/0Up9NJ//79uf322+nSpQuTJk2id+/eVFRUADBgwAAAmZAQPjkcDjIyMujTpw/dunVj2rRpDBkyhCuvvJJRo0bx5ZdfctZZZ/Hpp58CtauH9779E0VFxbz66qtMnz693n36Wk3vS0FBgX5shIaG6seNZ9qluhrqrw0GA7169cLhcNSLdT8/P6ZOncrkyZOZN28eX3zxBd27d2fixIn6bpHOorq6mtzcXMaMGYPZbPbqn6KioqiqqtLfh6Z2axUWFrJo0SIuvfTSen3bfffdx48//sjDDz/MiBEj6tUl8bR3716WLVtGcHAw3bp18zr5+fmRk5PD5Zdfzk8//cQjjzyCM3EgoJCYmIjNZmvWZ7hovvb0evbo0QO73c6+ffuIjIxsVr9Sl8lkwm6306NHD6xWK8XFxXz77bdcfPHFhIWF8e677zL7sQ/Izs7m6quv5s0332TZsmVcccUVuN1uPvroI4YMGcKjjz7K008/zZQpU/joo4/o0qWLPpHnuUPDk1Yovu5aH8/vDtpl1dXVbNmyRf/+2Nj3BSGEEEIIIYRoqdM2IVFnMuKfwEBAHxVQVXX36WpLazIajURERADofz1/7NUOTCWQabHokxKvvvoqX3zxBbfeeitjx471uj8tFYrb7cbhcGC1WutNKCiKgtVqxel06gWDtUGv6OhoYmJiCAkJaVaKHtGxNbaJSFVVPa864JUHPzw8vNHbKorCo48+ykUXXcSECRN45plnKCoq4ujRo+Tk5JAXOYaqqipiH7iEgoICgoODueqqq7jmmmsYPXo0e/bsYdmyZRiNRpxOJzabjaFDh+q7eFRVlYmyTqqxuNu4cSNbt27lnHPO4eyzzwZg6tSprF69mosvvphx48bx7rvvcuGFFwLw5JNPkpNjIiamOzfeeO1Jtcvz2Dh48KDXcdOQxlJXac/T1/NVFAWz2cy8efO46aab2LBhA2azmcOHD3eKlGXaa+LZP/Xq1cvrPah7eW16robjZ9GiRSxbtgxVVbnpppu8LlMUhQULFjBy5EjmzJnD5s2bvVLGVVdX8/XXX/Pf//7XZ8FgTVBQEKqq4na7efvtt5k7dy4PvFWbJk/7DPb399dXmtvtdr0uivCmfcdp6vVpTnq41tLU56nZbKawsJAtW7ZgNpv1ia2WbObNzs4mLy+PoKAgQkND+fbbb1m9ejVGo5FrrrnmeNq2XpjMJj5942EuuugiPvroI3bvrv2KXFlZybXXXssnn3zCjTfeyMsvv6zvLtN2aPhKB9fc56ldnpWVRWFhIWFhYV7fF+RzWwghhBBCCNEaTtuEhMdkxLNAf+AiVVVdiqIYVVVt9/vBFUWhurqa/fv3Y7VaiY6ObnRbfllZGevWrcNgsGKxmPnf//7HDTfcoA9U3Hnnndx555306NHD5w+8pnL+5+Xl8cYbb3DFFVcQGRmp/6Dv0aMHEydOJDQ0lKqqKtkhcYZr7L1VFEXPqx4bG4uiKJhMJqKiopockKiqqqKmpobbbruNZ555huuvvx6oTYsSGRlJn8tG4ufnz7Rp07DZbPzpT38iNDRUrzuRlJSEn58fYWFhBAQEoCgKqqqSkZHBm2++yW9/+1uvYqBNPRfRvpzMe+Vr8FFVVRwOB4MGDSI7O5shQ4boj1FWVsaRI0f4+OOPueOOO7jssst47rnnCAsLY968eUy597/06nVyg/iexwbgddw0dbuG1M3XnpOTo8d+9+7dAfRCyJdffjnZ2dn6cXqm055j3f5JS+3l6/K6t63r0ksvRVVVZs6c6fM6Xbt25X//+x/nn38+c+bMYfny5RQUFDB//nzmz59PdnY2PXr04NFHH2Xu3Lm4XC7y8vI4fPgwx44d49ChQzgcDhwOBzfddBMpKSn641RVVfHkk09y/fXX6xMddru9Xu0L8StftUE8tcVx0NBjqqqqT6wPGTKEw4cPe/VRLWlr3ZifPn06BQUF7N27l6NHjxIdHY3BYKBnbCwLFy7kpptu4vzzz2fx4sWYzWZmzpzJ+vXrefLJJ/njH//o87Framr0hQI5OTnExsZ61ZRoTns92+kr1Z4QQgghhBBCnIzTnbKpJ9AXuLgjTUZotNzmNpsNi8XS6Bb2devWsW7dOvJtZ2E0GqiuNvPII4+wdu1aYmJiePrpp6murubw4cM+04Joqy1tNps+WOc5ubBw4UKWLVuGwWDgoYce0m+nrZBTFKVTpf4QvlksFn1lcVM80zulpaWxfft2LBaLXjDzuuuuY9SoUSiKwoNv/wzAbbdOYt++fRw7dgyTyYTb7cZgMGCz2UhMTKz3GJ9++ilr1qwhKCjIK25F56YNThYUFNCtWzeKi4sJCQkBYM2aNaxZs4axY8fy0Ucfcd9993H33XcDtUWQe/SIoaqqkkOHDuF0OunVq9dJ933acaOtNK7b/zaHVoBX+/vmm2+ydOlSAL1WhJZCBWj2cXomaaqIvZZuq7EV9J791k033dToexQVFcUtt9zC888/j5+fHyaTCZfLxfnnn88VV1zBmDFjGDVqlP7ZrqWqq3ufnqv7AY4ePcq2773fW8/PcFFfR3p9PCdPiouLiYiI8OqjWsIzpqurqykpKcFut/Pjjz8SFBTEgw8+CCgYDAYuu+wyIiMjmTVrFj169ABqd+DceOONDU5GwK/p5w4cOEBJSQnQ+E4vX5o6NoUQQgghhBDiZJzWCQlVVQ8pinKRqqpqR5uMgNqVYi6XC6vV2mCOXs3o0aMBKDpgxuFw0q9fP/r168ecOXPo0qULiqLoBRKh/mCUZ95zz5WW2nnXXXed118hTlZWVpYej8nJyRQVFdG3b1969OhB//79GTJkCAaDwWt3hbaKMiYmBpfLhdvtbnRnz3XXXYeiKFx77cml1xFnFm1QMjQ0lICAAK8V8Vpau7Fjx2Kz2fjnP/9Jz549SUhI4De/+Q2PfZ6GohjYunUrDocDk8nUqoP7dXc6NFfd2hW//e1vvf6KpnnW9dB2r9RVNy1dY2JjY7ntttsIDw/nu+++o0uXLlx11VVMmzaNnJwcrFarni6qMZ4xobVtyAUX6DvJ4Nci5p1hx8uJ8JyMa+88J0+au3uqIZ4xbbfbyczM5LzzzsNisXDNNdfo19M+S0ePHs3KlSu59NJLcblczJ079/ikRcO0GPbcISGEEEIIIYQQ7clpnZAAUI+PZna0yQioXTGWlJQE1Obx3b17t56apq6goCCmTp3KsoU/YjabiY+P11eQO51OrFarvuKtqR+LJpOJgoICQkND9fOioqJkhbloNZWVlRQXF9O9e3dCQkLw9/fnvPPOo7CwkPHjxzeYnsxzFaWfnx+VlZX1YtVTdHQ0f/zjH0/Z8xDtX2VlJenp6V59pzZ4q6pqvUHloKAgpk+frtcdSUhI4F//+pd+ub+/FVAZMmQIRUVFxMTEtGp7ffW/JyI6OpqHH364lVrVOdStKVGXqqqEhISQkJDQrEFXs9lMYmIiDz/8sP5e+IrHpthsNqqqqsjJyUFVVSwWi74zQpx5tP4JfO8caEkMecZ0aGgobrebsLAwUlJSMBgMVFVVUVHhxGLxIzg4GKvVytChQzl48KDelqZoqc+g5TsjhBBCCCGEEOJ0kEqLJyg9PZ2dO3eSnp7u83K3243dbsftrqG8vByn0wlASUkJqamplJSUYLFYSEhIaDK9SHZ2Njk5OWRnZ7f68xAd36+x5qasrIwvvviC7du3U11d3ez7SE9PZ+/evZSXl1NRUYHT6dTTfzVWK6UuiVXRlPT0dNLS0hrsO0+MQnh4OFFRUbhcrnqXqqpKTk4OX3/9NWVlZS26Zy2m9+/fT2ZmZouOK+GtqqqKvXv3Ulxc7LXTqqysjG+//bbee6PV9WioD3I4HFRUVBAdHe2VI78lmvos98VgMFBcXExmZiaVlRUn9LjizNGSPk2bLDAajZjNZqKjo/XPXIDDhw/jdFZQVVXpVfBbUZRTutvG8xhUVRW73a4fo9XV1dL3CSGEEEIIIVrVad8hcabQdkpof+vSilIXFRVTWlrCihUruPjiiyksLCQ/P5/w8PBm5x8+2RQB4szmWQB97dq1LFmyhB49ehAUFNTs1DVaHCcmJuJ2u/W8983hmcNdYlU0pW7f6Rk/LZn8qquxnPQOh4Nly5axdetWDAYD06dPb/b9arFcVVXV7NRAwresrCx27txJREQEgwcP1ledr1mzhtWrVwO06L05kToEnvHmueuxoc/yhmhx4ZeT26LbiY6nbszUdaIxBPVrzfTo0QOr9WCzd+u0Fq1WD8D48eO90tR5pkXrjLVuhBBCCCGEEK1PJiRawDPdkp+fH4MGDdIv81ztCbWFBx0OB263G7PZQo8ePcjNzSUmJgaDwaCna6p7O0/aZSaTiV69enmdp6UvEcJzQGPMmDFUVVURHx/f6KSAZ9y53W5cLhcDBgzAYDBQUVHBpk2bSE5O9jnQpxX6dbmqcblcZGVlkZmZCUCvXr1ksFY0qm7fqQ12OZ1OysvLGTx4sNeEmGe/C1BeXg5AYGCgVx/YWE56m83GeeedR0hIiF6Torm0FC3V1dVYLBaZbDsJsbGxeooaz77Fs05IU+p+Zmr343Q62bFjB4MHD67Xb7ndbj1ucnNz2b9/P1A7sVQ3Hj0fp7Fi5lrhc2Vtns92aeRzuuNrqk5JQzHUXFq8qqp6fOeEBbe7Nv527tzJoEGD8Pf3r3e7xmKrqfitq26tHs92yUIDIYQQQgghRGuTCYlmUhTFayV6U8UYjUYjmZmZuFzV2GxWunXrphcybGyFWWFhIYsWLeLSSy8lNDS0wR+Sp3r7vugYFEXBaDTq8RgcHMyll17arNtpKioqvFZD7tixg82bN6OqKiNHjqx3W4PBgMtVTWVlFYWFhfrkmtVq5Y033uCSSy7xmfNd4lX4og1yZWdnk5qaCuAVd579LtQOKMOvExDNCStFUYiOjubCCy/0Or+wsJDPP/+cmTNnNhmz2gB0c0is+2axWOjTp0+984ODg5kxY0az7qOh11brt4B6/ZbD4dDjJiwsDIPBQGxsbKPvk91ub/bnPUBRUZEeS2FhYc16LqJ9aSgePAfkW/vY1lIyFRYW8sUXXzB58mSqqqoA2LhxI7t370ZVVc4555xm36eiKC2O37rHoOdtWtL3CSGEEEIIIURzyIREC/j7+1NeXu5zpZovgwcPJnhTCQEBgXTv3h2LxdJgcU7NokWLWLZsGQA33HDDSbdZiKbUjevBgwd7/fXFZKpNWxEWFobJZCIhIYH//e9/LFu2DLfbzc0333zqGy7OCNoOhOjoaCwWC8nJyZSXl+v50+uu1tWKtbYkTU9DPv/8c77//nsAidkOrrF+y2azERkZidvtxmAw0KtXL30guCEtTQflGUs33XRTS5ou2rnTMSC/aNEilixZQk1NDRbLAABGjDgLq9Xa6GdxQ04knZkQQgghhBBCnC4yIdECFRUVuN1uKioqvFaPud1uHA4HVqvVa5DDarUSFBQM/Fqcsyna6nbPVe4t3XovhCctPj0LZHryjOuAgACsVqvPnRGeFEXBbLZ45fy/5JJLUFWV8847Tx/4E6K5rFYr55xzTr2VvXVTMQUHB7faY86cOdPrb1MaO5aaOs7EqaXFj6/PSC2G8vLycLlcjab3qnub5poyZQqqqjY7loTwdN5551FaWsr5559P+qocoHYyYcSIETidzhZ/prY0fpsi/ZsQQgghhBCiNcmvihaw2WwEBwfXW3HmcDgoLS3F6XQCUFlZSWpqKpWVlS1+jLCwMG688UavlA/a/TscjpN7AqJTaip+rFYrwcHBGAyGE45bqI3dOXPmYLFYJFZFi3j2mQ31s6dCWFgYN910U5M71zSNHUvST7ctLYYqKip8Xu5wOHC5XJhMplaPLbe7BovFwlVXXSXpmsQJiY2N5Xe/+51XnYaqqio2btxIXl6e/v2yrUj/JoQQQgghhGhNskOiBRpacaYNbmhFV9PT09m5c2erPa7JZKKgoIDQ0NBWu0/ReTSVusFgMBAQEEBqaqoetyeSIqKqqoqcnJx6BWuFaEp6ejppaWlAbey15sre1lBVVUVWVhYxMTENTpZIipS2VTeG6vJ8f1prhXdVVRUVFU78/PxO2ySaOLNUVVVx+PBhevToQUBAgNdle/fuZd++fQDExcW1RfN00r8JIYQQQgghWlOHnZBQFEVRVVVt63bArwO6mqSkJFwu1/HUIuXAyaVZys7OJicnh4CAABISEk6usaLTaW7qhoSEBAoKCk44xg4fPsz+/fsxGAwyeSZaxLPP1FaxtydZWVlkZGQANJhLvrVTpIjmqamp8eq3kpKSfF7vVLw/WVlZ+sr1uoPJQjTH4cOH9UmHup+9ffr0QVVVEhISyM/PJzw8HKPR2BbNlP5NCCGEEEII0ao6XMomRVFCALTJCKUdFlXw8/Oje/fuFBUVUV1dfUL34XK5yMvLo6amhtjYWBITE7228gvR2srLy+natSvl5eUndPvo6Gi6dOlCdHR0K7dMnOk8+8yCgoK2bk49Wh8cHR3N0aNHcblcbd0kcVxBQQFHjhyhvLycQYMG4e/vf9oeOzo6GpPJhMXid9oeU5xZevToQe/evenRo0e9yywWC4MGDaK8vJxDhw6xa9cuampq2qCVQgghhBBCCNG62tcy1CYoinIhcLuiKDnAT8BSVVUPKYpiUFXV3cjtfgf8DqBnz56nqm1e/9dykptTM4HawtQtUVhYyJEjRwCIiopqcFWuaHunI75am695PC1mm5tPv67S0lLMZjOlpaWS1qGVdMTYakpDc8gnG38n8pjNZbFY6N27N0ePHvXqlzuyjhpbDX3WhoeHn/T73FKlpaUoioGaGpmg8tRRY6st+Pn51ft+p4WxFs/h4eHk5eVRWVlJQUEBkZGRp7uZQgghhBBCCNGqOswOCUVRkoD/Ak8Bq4DuwLOKovRWVdXd2E4JVVVfU1V1uKqqw7t163Za2msymYiKijrhAZLw8HC6d+9+SgbnROtqi/g6FbSYPdF0ORKzre9Mia3mONn4Ox3OpBg/U2KrLeMmPDwcPz8LZrP5tD92e3amxFZ7YTQaGTBgALGxsWdE3yOEEEIIIYQQHWZCAnBRuyNitaqqbwH/A7YCTyiK0qO91JNoLUajkcjIyHY9OCeEJ4lZcabrCJMm4vQxmUyYzRZOtk6UEE3RPl/bqoaEEEIIIYQQQrSmjjQhUQScoyjKnQCqqmYB7wC/AOOhfdaT8KWmpobc3Nxm5wJ2u92Ul5fjdjeYlUqINuUZ0xKvojW5XK4OU7dBYr9zq66uJjMz84RrRwnREFVVKSkpIScnR+pICCGEEEIIITq8dj0hoSjKGEVRblUUZYaqqseAG4GLFUW5BkBV1UNANjD6+P87xC6JvLw8MjIyyMvLa9b1HQ4HpaWlOByOU9wyIU6MZ0xLvIrW1NL+si1J7HduBw8eJDU1lYMHD7Z1U8QZxuFwkJmZSVpaWofoC4WoKy4uDkVRGjzFx8e3dROFEEIIIcRp1G7zTiiKMhX4F7AQeF5RlDmqqn6hKMqLwN2KonRTVfU5oAKIUBTFpqpqhxgFstlsBAYGNrvwr3Y9KRQs2ivPmJZ4Fa2ppf1lW5LY79zCwsKIiIggLCysrZsizjA2m42IiAj930J0NAcOHGj08g6yyV0IIYQQQrSSdjkhcbyA9QvA7aqqLlcUpRSIO37+YuAA8KaiKEOoTdd0cUeZjAAIDg4mMTGx2T8qDQYDgYGBp7hVQpw4z5iWeBWtqaX9ZVuS2O/cunbtyuDBgztErIqORVEUunfvTteuXSW+hBBCCCGEEB1eu5yQAA4Cl6iqukdRlFjgH8BHwBzgS1VVn1IUZRwQQG2mpg61f11RFAICAtq6GUKcEM/MaJ7/lkEScSrIIL/oKOSzXbQmX1lItc9ZVVVlRbkQQgghhBCiw2qXExKqqlYCe47/NxK4S1XV1xVFGUTtzohUVVW/AcrbrJGtSH5Uio7EM14ldoUQnZnWBUpfKFqbxJQQQgghhBDiTNUuilorjfzqUlV1k6qqrx//dyqwAujQy2Wrq6vJzMykurq6rZsixAlTVVXiWJwWVVVV7Nu3j6qqqrZuihA+SYyKU0W+M4pTIT4+vsEC03FxcW3dPCGEEEIIcYZrFxMSgNHzP4qi+GyXoijXAFOBjaejUadKVlYWGRkZZGVltXVThDhhlZUVEsfitJA+U7R3EqPiVJHYEqfCwYMHUVXV56mpAtRCCCGEEEKcrDZP2aQoyjTgRkVRNgOHVVV9W1VVt6IoBlVV3cevEwxMAh4CrlBVNbMNm3zSYmNjvf4K0RH5+fmTmBgncSxOOekzRXsnMSpOFYktIYQQQgghxJmmTSckFEVJAV4EHgXcwMOKovRXVfVPnpMSqqqWKoqyBbhAVdXDbdnm1mA2m0lISGjrZghxUhRFkTgWp4XFYqF3795t3QwhGiQxKk4V+c4ohBBCCCGEONO09Q4JC7BSVdV3ARRFWQmsVxRFVVX1z8cnJSYAyaqqvtR2zRRCCCGEEEKI9i8+Pp6DBw82eLnUiRBCCCGEEG2prScknECkoiihqqoWqaqaoyjKucC3iqLsUFX1QyAf+KJtmymEEEIIIYQQ7Z9WI0IIIYQQQoj2qE0nJFRV3awoymFgCZBy/LyjiqL8B4g4/v+dbdjEVqEotelthDgTKIqCFs4S10IIIUTrk89XIYQQQgghxJnK0FYPrCiKBUBV1duBPEVR1iqKEnX84nBguKIoBkV+kQkhhBBCCCGEEEIIIYQQHV6b7JA4Xqy66vi/HwaeBS4DXlYUpQoYAsxSVdXdFu0TQgghhBBCiPaqsToRUiNCCCGEEEK0Z6d9QuL4ZIT7+L//AYxWVfVJYIWiKP0BG1CoquqB0902IYQQQgghhGjvpE6EEEIIIYToqE5ryqY6kxH/BAYB47XLVVXdrarqZpmMEEIIIYQQQpwJ4uPjj9fgqn+Kj49v6+YJIYQQQghxWp3WHRIekxHPAv2Bi1RVdSmKYlRVteZ0tkUIIYQQQgghTrXGdjNIubzaFFMNvQ5xcXEcOHDg9DZICCGEEEKcUm2Rsqkn0Be4uLNMRqgqjW6plh8ioiNRVRUtnH3FtcSzOBUa6kMlW4Vor5pKpSJ9pThRElviTNPYhIPEsxBCCCHEmee0T0ioqnpIUZSLVFVVO8NkhBBCCCGEEEL40tjugKZuJ4QQQgghREd02ickANTjS7tkMkIIIYQQQgjRWUk6IiGEEEII0dmc1qLWQgghhBBCCCGEEEIIIYTonGRCQgghhBBCCCFEu6OltPJ1io+Pb+vmCSGEEEKIEyATEkIIIYQQQghxguLj4xscNFcUReo9nIQDBw6gqqrPEyCTFUIIIYQQHVCb1JAQQgghhBBCiDPBwYMH9QFycfo0Vn9DmyQSQgghhBDtj+yQOI1KSkr47LPPKCkpaeumCNGqJLbFqVZSUsKnn34qMSY6NIlj0RokjiA1NbXRHQmnYnV8Y7sgZAdE+9PUzgohhBBCCNF2lM72pUxRlHzg4Gl+2HCgAOgCBAOlQFv8itTa0ZY6ehviVFXt1tCFx+PLfhL3f6La4nX1fMzTFdtt/TxPtQbjq5l9V1seX6f6sRuLsbZ63h3p9T7Z2DqRxzyVOmpbTnVf2RavS2vEVmvpLH2BFkcKcOg0Pi50rM/E1tZe+p320I720AY48XY0+n1eCCGEEEKcWp1uQqItKIqySVXV4dKOztGGtniO8phn1mOeqLZsa2d87M72nNvTsSBt8a09taUtdLa+oLP3A6dbe3nu7aEd7aEN7akdQgghhBCiZSRlkxBCCCGEEEIIIYQQQgghTjmZkBBCCCGEEEIIIYQQQgghxCknExKnx2tt3YDj2kM7OkMb2uI5ymOeWY95otqyrZ3xsTvbc25Px4K0xbf21Ja20Nn6gs7eD5xu7eW5t4d2tIc2QPtphxBCCCGEaAGpISGEEEIIIYQQQgghhBBCiFNOdkgIIYQQQgghhBBCCCGEEOKUM7V1A0638PBwNT4+/rQ93uFCOwA9wgJO+WNVV1dTXV2N2WzGbDaf8sfrjDZv3lygqmq3hi4/3fHVVpob1xKTLdNYfHX02DpVsXA6+9iO7EyOrbZ0OuKvvfejElsNO5H3Tvq0X0lstU8dMUbrHoud/ft8R3wPO5Km4ksIIYQQnXBCIj4+nk2bNp22x3vgrR8BeObac1v1fn2l2nK5XBQWFhIWFtYuBy3OBIqiHGzs8tMdX22lobiuG5eeMWkymVAU5bS1sSNqLL46Umz56p9qamooKCggPDwck6n1PnpOVR97pjlTYqu9ORXxV/f48Tx2jEZju+tHO3tsNZb6VPsM1N47X+q+n9Kn/aqzx1Z71VFi1PPYrNuPGgyGTv19vqO8hx1VU78XhRBCCNEJJyTOZCaTicjIyLZuhhA6iUmhMRqNEgtCnAA5djou+QwUon2QflQIIYQQon2RGhJCCCGEEEIIIYQQQgghhDjlZELiDOJ2u7Hb7bjd7rZuihBeJDaFxIAQJ0aOnY5F3i8h2hc5JoUQQggh2h+ZkDhD2O12vvvuO3JycnA6nW3dHCF0nrHpcDjaujmijTidTnJycliyZAnl5eVt3RwhOgyn00lpaSn5+fmsWLFCjp92Lj8/n8WLF5Ofn9/WTRFCUHtMfvvtt3JMCiGEEEK0IzIh0cFpq342bNjAtm3byMjIwGq1tnWzhPAZmzabra2bJdqI1Wplz549/PTTT/z0009t3Rwh2jXPFb1Wq5Xg4GB27tzJTz/9xIYNG9q6eaIRO3fu1E8aVVWx2+2NFsAWQpwYt9tNeXl5gzsg0tLS2LlzJ2lpaae5ZUIIIYQQoiFS1LqD0r50OxwOysrKGDBgACaTibPPPhugyR+9iqKc8jaKzsfzx6Cv2DQYZA60szIYDIwYMYLKykqSk5Mb7KOkbxKdnaqq+q4IAJvNhs1m45xzztGPI9F+1O3LUlJSMJlMDB06FFVVURQFh8Ohv58BAQFt0UwhzkiqqjZ4fGnH5siRIzEYDKSkpMikoBBCCCFEOyGjgx2UoigoioLNZiMoKIiAgAD8/f0xGAwoikJlZSWpqalUVla2dVNFJ6LFZWVlJfv378dsNnvFpugctDioe4qIiCAlJYXvv/+e4uLitm6mEO2Soij6rgiAjRs3cuzYMfbv38+5555LYGBgG7dQePL83Nu5cycmk4nhw4eze/duPYWmzWYjODhYdgkKcQpo/aXnDnGn08natWvZsGEDJpOJiRMnEhAQoB+vQgghhBCibckOiQ5OURQCAgLYtGkT27ZtA2D48OGkp6fr6QIGDRrUhi0UnVFmZia//PILBoMBh8PBjh07gNqVo6LzMhgMrFmzhpUrV2IwGLjqqqvauklCtEsGg4GAgAA2bNjA1q1bycjIwGg0AvKZ3l5lZGSwe/duoHYwVPtONmLECP27mhCi9Wn9pacdO3awZMkSLBYLNptN+k0hhBBCiHZGJiQ6sJqaGgoLCwkLC2PgwIEA+t+kpCSvv0KcTnFxcRQWFhIXF6fvjNBiU3RuU6ZMoaSkhClTprR1U4RoV1wuFwUFBYSFhWEy1X490wbR+vTpQ3Z2Nn369GnLJopGJCYm6n+19IV1P/dqamooKCggPDxcn2ASQrScr/7S0+DBg6mqqsJischvISGEEEKIdkgmJDqwwsJCjh49CkBERATDhw/XL/Pz85PVQKLN2O12unTpgt1urxebonNzu92ce+65DRafFKKzKigo4MiRIwBERkYCtalItJ1lISEhbdY20TR/f3+Sk5P1//uq9eHrPRZCtFxTx5LVamXs2LGnu1lCCCGEEKKZZEKiAwsLC/P6K0R7ERoa6vVXCI30W0L4Fh4eDsixcSbT3mPtrxDixEh/KYQQQgjRsUmV2Q7MaDQSERHhte2/tLSUL7/8kpKSkjZsmeisSkpK+Oqrr/SdEb620YvOzWQyERkZid1u5/PPP5e+SojjTCYTUVFRer9ZUlIix0gHVFJSwqJFi3y+b0ajkcjISEnXJMRJqttfQu2x99lnn0mf6SE+Pl4v5O15WrlyFT/99FNbN08IIYQQnZhMSLRjqqo2evJl9erVrF+/nuXLl5/m1goB69evZ/Pmzaxfvx63213vJM4MTfVNjZ3cbjeqqvLDDz+watUqfvjhhyb7NSHONM05RlauXMnatWtZuXKlHCPtWN33b9WqVaxfv55Vq1Y1q08UQjSsJd8vli9fzsqVK1m+fLkcX8cdPHjQ52s1YcJ4AJ+TFYqiEB8f37YNF0IIIcQZT5Yvd1DaF8a6xo0bh8vlYtKkST4vF+JUGjVqFC6Xi1GjRunFrIXwpPVdkyZNwu12S18lRB3aMTJhwgTcbjcTJkyQY6Qdq/vejB8/npqaGsaPHy/vmxCnmOcxNnnyZFRVZfLkyfr5cgw2bOTIkax52fekjbxuQgghxP+zd57hUVRtA75ns+mV9EqAhA6hSG/SpEmR3hFEsPDyoqgfCooIFlRUBAULgvoqigUFBRTpTQi9BUhCKCEJ6T2bsrvz/Ygz7ia7SYDQz31dewV22tmZZ54581TBzUZYDO8i8vLy2LlzJ3l5eRaXFxUVER8fT79+/fDw8Li1gxMIAHd3dwYMGIC9vT1RUVGkp6eze/du8vPzb/fQBLeA/Px8tm/fXqXr7eDgQL169XBwcLgFIxMI7j4cHByoW7cuer2eHTt2CD16l+Du7s7gwYNxcHBg//79bN68WVw7gaCayc/PV/ViUVERJ0+exMHBgaFDh+Lu7n67hycQCAQCgUAgqASRIXEXcfjwYSIjI4HSTIiyxMTEcPr0aQCaNm16S8cmEJgSFxfHmTNnOHz4MGlpaQB07tz5No9KcLOJjIzk77//BqBbt24VrhsdHc2pU6cAoa8EAksoz/TIyEhSU1MB6Nq16+0dlKDKxMTEsHHjRnJycrC3t+fBBx+83UMSCO4ZDh48yP79+5FlGW9vbzGfEAgEAoFAILjLEA6Ju4gHHnjA7K9eryc9PR0vLy+0Wi1169YFUP8KBLeL0NBQ0tPTqV+/PufOnaNly5a3e0iCW0CbNm3M/ioYDAbS0tLw9vZWS3nVq1fP7K9AcL9hel9YanKsPMsDAgI4efIkrVu3vtVDFNwAdevWpV+/fmRkZBASEoJerzdrwCsQCK4fRR+2aNGCrKwsGjRoIOYTAoFAIBAIBHcRomTTXUJubi579+6lZcuWuLi4AJCenk5SUhLJyckkJydjY2NDkyZNsLe3v82jFdzv5Ofn4+7uTlZWFlevXqW4uPh2D0lwC3B2dqZbt24YjUY2btxIbm4uAGlpaSQmJqrZMgD29vY0atSIrKwsDAbD7RqyQHDbuHr1KidOnODq1asWl9vb29OkSRPs7OwoLCzEaDTe4hEKbgR7e3tatWpFzZo1iY+P54cfflB1okAguD5yc3P57bffSEpKolOnThQWFpKRkUFgYKB4/xEIBAKBQCC4ixAOibuEffv2sXfvXvbt26d+5+XlRUBAAABJSUmkp6ffruEJBGZ4enri7+/PkSNH2LlzJ1u2bLndQxLcQnbv3q1+ALy9vQkMDMTb29tsPUuOCoFAYM7evXvZs2cPe/fuvd1DEVwj6enpFBUVERUVxalTp8Q1FAhukD179vDXX3/xxx9/kJ6ebnV+IRAIBAKBQCC4sxG547cZWZatLjMajUiSBECHDh2QJIn27dsjyzIGgwGNRoOPjw96vR4oLeFUXFyMVqu1WP6hKscE1GNW13aCewtZllFEoaxM6PV6JElCkiS8vLzo0aMHJSUldO3aFYPBUKFsVSQ/QrbuLpR+IZ07d0aWZTQaDb6+vuXW8/b2Rq/Xo9frMRgMFeqtipDlyvVTRVS3fAldeXdxI7Ijy2Dtclrbr2mppoiIiEoNaR07djT7K+Tr+rnV587Dw4PU1FSGDRvGkSNH6NChQ7kxXM8x7yYZuJvGKrjzKCs/7dq1IzU1lTZt2uDl5WU2v7gRXS4QCAQCgUAguLUIh8QdTkFBAY6Ojri6utKrVy/1e41Go77E2draotVquXr1Klqt1qLhTyC4FZjKJZQ61Zo1a4bRaFR7ByjIskxBQQFOTk63epiC68RoNKrXrOz1NMXV1ZV+/fpZXa7IiFarRavVkpiYiFarxd/fv9rHLBDcaSiZQQC+vr7qPaXcF4pTV8HNzY2+ffuq/xdGtzuLigzqWVlZ6PV6jEYjvXv3trhOVfWqQHAvY+0+KHt/FRcX07RpU2rUqFFpTxahKwUCgUAgEAjuXMSbzx2ELMvk5+erE2idTkdOTg46nY6ioiJOnTpFUVGRxW2VEjmenp63csgCgRlGo5H8/Hx0Oh1nzpzB2dkZPz8/i3JZUFBATk4OBQUFt2GkguuhqtdMp9Nx4MABdDpdpfsU5RYEdzLKc7k6+zeYynxBQQEpKSlERkZafb4L7myMRiN5eXkWZcTb25uAgAC8vLwAKCoq4uTJk2bXWjwLBfcKFd0LlVGV+6CoqIjExEQ8PT3FnEEgEAgEAoHgLkc4JO4gyk7GHR0dcXNzw9HRkZiYGE6ePMnx48ctTvSVzIjKooXKUlJSQlxcHCUlJdXyGwT3N4WFheTm5nL69GmOHz/OxYsXrcqlk5MTbm5uZhkSQh7vbCxdM0ucOHGCQ4cOsX///koNE0pmxLXqrrsFIdN3N1lZWZw8eZLs7Oxq26eNjQ2+vr7Y2Njg4ODAxYsXiY6OJjo6utqOIbh1VGRI1Wq1+Pn5qfrt7NmzHDlyhLNnz6rrVFWv3q0IHXj/cCPOtarcB2fPnuX48eNkZWVVWOJRyJxAIBAIBALBnc9dZwGSJKktkCjLcvztHkt1o0zClb+SJOHs7AxA3bp1KSgowMfHB51Oh6OjY7UcMz4+ntjYWADq1KlTLfsU3L84ODgAUKtWLXQ6ndp03RKm8q1kBQl5vLPRaDS4uLhUul5ERAQFBQWEhoai0+nU63w/ImT67iY9PZ3U1FS8vb2pUaNGte+/sLCQWrVq4eTkRL169ap9/4KbT9m5W0UEBweTnp5OcHCw+l1V9erditCB9w/Xci+UpSr3QXBwMGlpaWb3jyUUmZMkidq1a1/zWAQCgUAgEAgEN5+7yiEhSVJfYCUwUpKkRFmWDZIkSfI9UiTU1EBbFnt7e1q1alWtzgiAkJAQs78CwY2g0WhwdnbG0dGRli1bXrOsCnm8N3B0dOTBBx+sdn11NyJk+u4mNDQUjUZTqQHsenFycsLX15datWqJ5r53KdfiUKhRowZt27a9r/Si0IH3DzfbuVajRg3atWtX6f2jyFpQUNBNG4tAIBAIBAKB4Ma4K0o2SaX4Aa8C42VZ3sW/zpRKf4MkSVMlSTokSdKh1NTUmznUm4bRaFSNe9aaHl66dIlZs2Zx6dKlKu/X1taWOnXqYGtrW11Dve+4F+SrulB6SAA4OzsTHx/PnDlzqiyTQh7NuZtlS6PR4OjoiE6nq9b6+9fDhQsXeOaZZ7hw4cItP/adKtN3s2zdSmxtbZEkiVmzZlWL/Cg9KRSUQIR7yRkhZMs6itNeo9Goz8vr1Y8XL17k+eef5+LFi9U7yGqmOnWgkK37k7Jzy8qav1cmc//ocuGtEAgEAoFAILiN3BUOiX8yIPKA07Isb5EkKQBYKUnS58BzkiRVWOdAluXPZFluJctyKx8fn1sx5GrHtME1lBo1yn6WL1/Ozp07Wb58ucXlph9rVHW75ORkPvzwQ5KTk2/6b7/TuRfk61qQZZmSkmISEhJITk42kw+lh4ROp0OWZT7//HP27NnD559/XqHcKfu9Vnm917nbZaus3rpZlJQU88EHH1jVRx9++CFbtmzhww8/vKnjuJu422XrVrJkyRK2bNnCkiVLbnhfN9rA+OrVqxXK+p3AnSxbyjMlOTmZxYsXl3uG3cx5U1kU/Xg9siDLMh999BHbtm3jo48+um+emXeybAluHjcyl7D0vrJ06VIA9+oboUAgEAgEAoHgWrmbSjbpgNqSJL0ENAZ2AllAA2CcJElvAMV3W/mmiqIiTZeZ1mWVJKlcMzej0ci4ceMoKCjgySefrPSYVY3GNBgMpKWl4e3tjY2NjbrdN998wx9//IFer+f555+v0r4E9waSJJGcnEJGRgbffvstM2fOVOXE09NTjYwHGD16NLm5uUyZMsVMfgT3Nsp1Lqu3LGE0GikoKMDJyanSqEdT9Ho9aWlpqnHx9PaNGI1Gi/poxowZGAwGZsyYcUtkUMj53UVl1+u///0ver2e//znP+Tn55vJakWbWtpvVe6JilCevcXFxUycOBFvb+97tiH8zaDsHMZgMPDMM8+YzXMUZFlWddON3NPWtr2RevuSJDFt2jSKioqYNm3aHa1z7uSxCW4fVX32S5JUod40fe2z9M5i6X1l+vTpLF68OPsm/CyBQCAQCAQCQRW5o99iJUlylWU5F0CWZaMkSbOBJwFPWZY/+2ednsAEWZaLbuNQbzqV1WXV6XR4e3uzcOHCam0gm5aWRmJiIgB+fn7q9+PGjTP7K7i/8PPzBWDs2EGAZTnJz8+/KTIpuHuoSj1pJWIcuKba04rMlZSU4OfnR6s+fazqozp16vDRRx9VfeACgQmK/OTl5V2XrJpyozXWFRnv1auXqnP9/f2ve3/3K6ZzGGvzHFPddDOeYTcqC7Vr11YivQWCu45refZX9V6xdC9bel/5p7l6wnUMWyAQCAQCgUBQTdyxDglJkh4BJkiStAj4+5/Mh3PAdmCBJEnPy7K8CKgB+EiS5C7L8n0b7aJEpCt/q9Jzoip4e3ub/VXw9/cXmRH3Mba2dgQHB6svfJbkpKxMVoXqikgV3LmUjYq83ihhRdZsT8YhSZLQR4KbjqmsKnIsyxVnSVQ3yrNXyRAq+2wWVA0/Pz+ee+45oDSqGkp1iukz6EYyGAQCQXlMn/834/6yNBcV7ysCgUAgEAgEdyZ3ZA8JSZLqAu8CnsDDQFtJkiRZljOBn4CJwABJklYBC4AX7kdnhMFgIDk5GYPBYNYoEczrrZqud63Y2Njg5+dXrkSUQGANRd5kWa5S80FTbrS+uuDORK/Xc/XqVfR6fblrrEQ+XqvjVKvV4u/vX6HjyvS4AsG1YEl2TGVVkWOj8dqfq9dyTGso8i/KNd04pvMcU/10rQ3Hb2SuVV0oYxA6T3AnYnp/Xe+zvyro9frbfi8KBAKBQCAQCCrmTn2TLQImAaeAl4GRgCRJ0kFZlvOBbZIk7QRqAvmyLKfcvqHePqyVGQDz6PTU1FSr6wkE1YGpLALXLW8iIvXexFQ+fH1Ly33dimtselxR1kZwLVQmO4r8ajTV56wX8nr7uZFnUEVzsluFkCHBnczNnuMp8p+SkqI65cR9IBAIBAKBQHBnckc6JGRZvixJUoYsy3mSJM0D5gEj/ln8tyRJNWVZvgxcuF1jvBOwVk4JUDMmKltPIKgOLMnY9cibEpEquLcwlY8brZt+vccVCK6FymRHkePqLNck5PX2cyPPoDvh+t0JYxAIrHGzn/+K3Ht4eJCVlSXuA4FAIBAIBII7mDuyZBPAP84ISZblPErLMhmA3pIkvQ9sliTJVbpHi8wXFhZy7Ngx0tLSMBqNVterajmlitYzGo3k5eVVeBzB/cGNyIIiYxqNpkpyWVhYyIkTJygsLARKe0fk5+dT2ipGcLdS9roqXEt5merUSTe7rI3Qn/cOZa+lVqvF19eXwsLCm3p9Te8ZUYbp7sDafV+dJS6NRqNFXVoZyhiqS4aEjhNUB9bmBjciX8q2pvNGRf7t7e1FuVmBQCAQCASCO5w7wiEhSVJ9SZLaS5JkK0mSzT/fSbIsy5IkaWRZzpZl+XmgNzAUGCnLcq58l1gvZbl04qx8dDodJ0+eRKfTUVxczNWrVykpKUGWZWRZJiYmhuPHjxMVFUVubi56vd7iR5ZlsrOzWbduHdnZ2er2sixTVFTEyZMnKSoqsjCef9czreeqnE5Jkqx+BPcGpjKgfDIyMjhw4AAZGRkWl5t+LO1Hr9eTkpJCXl4ep06dsvjiqXyOHj3Kd999x9GjRzEajeTn51fYO8J027Ifg8FQpbHej9ysHgrWznV0dDSnTp0iJibG7HtTnWc0Gsttl5WVxdq1a8nKyiqnk6pyLWW5dEyFhYWcPHmSwsLCSmW4OmTkenue3Kzx3A9YOl+mxq7rOa+WnoXWvsvKyuLnn38mKysLWZYxGmWKi4vVZ3JVP8p9EB0dzenTp4mOjrZqtLvR81P2mPez3FVlfmM6r1KoaN5k7dwp8zCdTneN1wQKCnScPXu2nC61dL2Kioo4duwYly5dumFdX/YYluaIN7rP+1HubgdV1YvXqicUGVWeu1XZ9vDhw3zzzTccPny40nupqp+CggJSUlKIjIykqKhIvY9Ne7mI9xaBQCAQCASCO5fbHoYnSdIQ4E0g4Z/PIUmSvpRlOecfZ4Txn/WaArWBh2RZPnn7RnzjxMbGcvbsWQB8fHxISkoC/q05HB4ejtFoJCAgQO0FYY0dO3awa9cuAAYOHKh+rxg5AJo2bWp1e9NeE4L7mytXrnD58mW8vLzw8vK65u3T09NJTk4mMzOT5ORkAJo0aWJx3fj4eJKTk4mPj6dt27Y4OjoiSZLoHVHN3Op64vXq1QNKdZgpsbGxREVFAdC4ceNy223bto3t27cjSZKqx65HJ8XExKh6z5rsVSei58mdgeIIkyTpuq+7pWehpe+2bt3Kjh07ABgyZAh6fQlFRcWkpaVdV98A5Z6pV6+e2XM7IiLiun6H4MbZsWMHO3fuBGDQoEHllld13qRcz+uRSycnRxo2bFhOl1oiJiaGyMhIatSoQZcuXaq1f4XQcXcvil6Eit8DbgWXLl0iOTmZS5cu0aFDB/X7G3kHcXJyIiUlhdjYWJycnFSdKfqoCAQCgUAgENwd3FaHhCRJtpQ2rJ4sy/JeSZKGAu2AWZIkvSPLcrbJ6peBlrIsJ1ra192E8oIZHh6uphObGoAdHByIiIhAr9djMBhIT0/n77//5vTp00ycOJGAgAB13a5du5r9hdJouaKiIsLCwlRjhzVMe00I7m8aNGiARqOpVGasochwnTp1uHjxolVDil6vp3nz5tjY2NC9e3fg+uWwqKiI2NhY6tati729/XWN+17mVtcTt7e3t2j4qF27Nunp6dSuXVv9rqioiJiYGOrWravKQbdu3W5IJ9WtW9fs783mVvbDEFhH0Vk3ct0tyZ2l73r06GH2V6u1Bap2jxkMBtLS0tReKmB+z5g6J66XoqIioqOjqVevntCJ14kyn2rXrh2nTp0iPDzc7FxWVUdZc9BWBUnS0LhxYzXCW6/Xk56ejpeXV7lyTHXr1kWv11OjRo3rCiaoeByir9PdSnXok+qiX79+ODk50alTJ5KTk1U5rsq9ZE2nSZJE8+bNcXJyMvuNoo+KQCAQCAQCwd3BnVCyyQ1QrAi/AL8DtsBoAEmSWkuS1EwuLdt01zojioqKOH36NEVFRdjb29O4cWPs7e3L1fstLi7mwoULFBcXA5CQkMDKlSsZOnQoc+fOZfjw4Wb7dXNzY+DAgbi5uanfxcbGEhsbi52dHXq9XtT+FVQJxTBmb29Pfn4+O3fuJD8/v8rb29jY4OPjg4uLC02aNMHBwcHiehkZGRQUFNCxY0fc3d0r3a/pvVOWqKgoNm/ezMmTd3XS1E3jdtWkLywsNCvblZeXh5OTE6dPn6akpASj0cjx48c5efIkMTExuLu7M3jwYFWP5efns2PHjmuSPyiV4SZNmghD7H2Gorvs7OxuaD9VkTt3d3eGDBmi6i5JkrC1tVPLolSEErmblpZmcbmpDr5eTEtAmVJSUsKFCxcoKSkpt41SWuhGSkXdrViqYe/u7s6gQYNITU3lzJkzxMbGqsuu5dlob29PgwYNSEpKIjc312Ipw6qSnp5OUlIS6enpFo/TvHlzQkNDRf8RgUp16JOyKLrin+T1cpSUlBAXF6e+w0DpPabVaunfvz96vV6V46o+55VMj7I6DUp/Y0REhNl8U/TiEQgEAoFAILg7uK0OCVmWS4D3gSGSJHX+pzzTHuAY0EWSJEegE5B8+0ZZPcTGxvL333/z8ccfk5WVZXW9hIQEzp8/T3x8PAUFBVy4cAG9Xo+npycA/fv3L2eYNRgMpKSkYDAYgNJovMaNGxMcHExOTg46nc5s/cLCQiIjI8t9LxAoHDp0iAMHDnDo0KEK16vIWQClNfYPHjxIQUGB2ivCxcUFrVZr5kSriOjo6HJGIYCsrCz++OOPck0NBbeXzMxMlixZwq5duzhx4gRGoxEvLy9kubRPyZUrV9DpdPj4+BAWFqZGtSs9SPR6PQcPHmT//v0cPHjwhsZSVFTEqVOnrMrn7UKn03HgwAGhg28ymZmZrF69mszMzCqtXxW50+v1JCcnm9XqNxoNlfYSkWUZBwcH/P39b2rkbr169WjcuHG5qOj4+Hh1bgHm58aaE+N+wFofGL1ej6urK/Xq1TPLcKjqs1EhPj6euLg49u3bx5kzZzh48CDff/99lWUSSg26Dg4O+Pn5lcuAuFN1nCWE3rs7KC4utipTBw4c4JNPPiEnJ8fitleuXOH8+fNcuXJF/U6n05GWlsbZs2dxc3MjICAALy8vDh48yIEDB9i5c2eF7yT16tWjSZMmd0Smh0AgEAgEAoGg+rgTwkd2A/WB8f80st4FrJYkaSoQKMvyB7d3eNVDeHg4f/75J+fOnWPz5s2MGDHC4npBQUEAeHh4kJeXR1hYGBcvXuT48eMkJCRw+fJloqKiiIiIUMs9paenc/XqVQB8fX3VqCilgXbZ2qwnT57kyJEjALRp0+Zm/WTBXUyrVq0oLCzE0dGRwsJCq9kOsbGxnDlzBrDcG+DkyZNERkZiNBpp1KgReXl5FBYWotfrycrKwtXVFUdHR7V8iSXq1auHJEnlyl5s3ryZCxcu0LBhQ1Fv/Q5AaTL5+++/c/bsWWrXro2Pjw86nQ5nZ2eaN2/OlStXCAwMpKSkBG9vb0JDQ9Vrr0QAA7Ru3VqVPyWr7HpQekrIsnzba2ibcuLECQ4fPgxA27Ztb/No7l02bdrEtm3bABgzZkyl6zdt2pTz58+byYryHLW3t6eoqIicnBy1R45Sq1+jscHNza3COvsFBQUUFBTg5uaGjY3NTXOiWiubFhISYvZ306ZNbN26FYChQ4cCd0Zpl1uNtR4J8+bNA2D69Ok4ODio16tJkybExsZSq1Yt9Ho9RUVFag8kS4SEhCBJEt7e3ly6dIkjR46wb98+AEaNGlWlMep0OlV2ykZ93+q+OTfCiRMn1Lmn0Ht3LhXJVFxcHAkJCbiGFuLqasBoNJrN34KDg4HSd5n8/HwcHR1xdHQkNzeXpKQkHB0dqVOnDkVFRTg5OdGsWTMcHBw4cuQIsixblAtrOk0gEAgEAoFAcHdz2x0SsiwXSpL0LSADL0mS1AAoAnyAvNs6uGrE3t6eiRMn8vvvv9OzZ0+r69nZ2VG7dm2MRiM2NjacPHmSjIwMLl26RPPmzcnNzWXPnj34+voSEhKCwWBAr9fj7e1dLnLOUm1Wo9GIj48PBoPBrJ67QGCKs7MzQUFBREVF4eTkZNXQER4eTlZWFnv37iUgIIAaNWqYLffz80On01GjRg2SkpIwGAx4e3vj4OCgvqQqx7OGUuKsLD179qSwsJD+/fuLEj13AEqkcZcuXdDr9fTv3x8nJyfVIWpnZ0edOnXIz88nLy8PNzc3M0OGh4cHqampeHh4YG9vT1BQEKdPn8bJyem6jBHp6ens2rWLpk2bUq9ePUpKSoiPjyckJARbW9tq+91QqlcLCgpwcnKy6lzLy8sjMjKSNm3aqA404Ui7uXTu3JkzZ87QqFEjVq5cyaBBgyxmJyhOhytXruDs7ExiYqL6PNXpdGRkZJCVlYWHh4dZhK8ppjrMkqzd7ubAtra21K5dG0mSMBqNdO7cGaPRSN++fVWDnzWj+r2MaR8YWZYpLi5m06ZNvPnmmwAMGDAALy8vtX9DUlIStra2xMXF4eDgoJZ6svYMU847lBp3g4KCsLOz46GHHlJL2VV23ss2/k1PT+f333+nf//+t6RvjuJsrspYLZGfn09kZKQ6jxB6786lpKSEzMxMTp8+TadOncotHzBgAAaDgeNGD/R6gxpwoGBra6s+55UsCnt7e9zd3bGzs1MdFjExMVy4cIHGjRvj5+dHVFQUderUuWFZEwgEAoFAIBDcPdx2hwSALMuZkiR9DkQBTwCFwDhZlu/6Uk2lyMiyjL29Pb169cLe3l6NtjMajeUm3cXFxSQmJuLr66saQNzd3bG1tSUlJYXz588TGRlJSEgI6enppKWl4e/vr2ZMKMYVOzs7MjMz8fT0xMbGhuLiYo4fP05UVBQnT56kTp069OnTx3yksmzVoCbLcoUvCOLl4d5BlmWz5uum0bymtbbt7e25ePEihw4dwtnZmaFDh1JcXIy9vT0ajYbo6GhSU1M5ePAgXl5e5OTk4ODgQIcOHXBycqKoqAg7O7tyUXYKBoOBpKQkioqKyhmSLd1PsiyrWUGKPAq5vDU4ODiQl5eHh4cHffr0wcnJSTW+FhcXc+XKFYKDg7G3t8fNzQ0HBwcKCws5f/48YWFhZGdnYzAYyMrKwtfX16whpyzLVnWTtUDzdevWsWfPHhwcHOjcuTNxcXFq2a86deqU2Yf1aHVr8iPLstpsMzAwUK2Z7ezsbFFXHjhwgG3bthEVFcVjjz0mIoRvEqbXMi4uDltbW959910MhtJo3ilTppTbJjMzkxMnTpiVO1L24+DgQElJCYWFhWRnZ+Pv76+WmyspKaG4uBgbG43ZcePj48vJWtnmwBXJXEXP4ar+fkUXarVaEhISCAkJwcbGBkmS1O8HDx583zUsrui8l5SUcPHiRT788EPVcTV79my++eYbte9HeHg4RqORgIAA7Ozs0Gg0ODo6VrrfhIQEgoKC8PDwYOTIkeTn51fqkFf0SNngkvXr17Nz504MBgOPPfZYuYCByrJvrvWZmJGRwbFjx2jevLnVcmOWjpmfn8+hQ4fIz8/n+PHjAHTr1u2aji24tcTHx7N+/XpiYmLYvHkzEydONFvu4OBAv379OP3HebWUWNn5oTJv8/LywtbWlrNnz1JUVERwcDC2trYYDAYCAgIwGo3UrVuXLVu2EBUVxa5duwgJCcHHxwdvb2/13pIkqUKZrW55v1OpVasWly5dsrgsNDSUixcv3toBCQQCgUAgENwgd4RDAkCW5WJguyRJu0r/a6Vj2l1J6Qulk5MTBoOB3NxcHBwc0Gq1FifaiYmJxMXFIUkSgYGBNG/enMDAQLRaLV26dCE2NpaAgAA1MwLA29tb3U9hYSFJSUns27ePwMBAmjRpgr+/P+fPnyc6Olqtf13ZJF9w71KV6+7g4GAxM8LUUCZJEn379qWkpIS+fftSUFCgGl40Gg2FhYUYjUZq1KhBnTp1iIuLIzExkcTERBwdHTEajWqT49jYWEJDQ0lLSyMoKAitVkt8fLzaCNTGxgZvb2/27t1Lx44dcXZ2RpIkM+eDEqUPFWddCCyj1+tJS0vD29u7woaQluRHudYajUYtX6Osd+XKFdVAW7t2bfXaHDx4kHXr1tGzZ086d+4M/KvLypZpKC4uJjo6mnr16lnMiCk7pkGDBmE0Ghk0aBBQvmSNwo1kTijNNo1GI+Hh4RVGvzdu3JgDBw6Ql5fHiRMnaNeu3TUdS1DKtTyzWrVqxZEjRwgKCkKWZQYPHmxxvStXrnDp0iU8PT1p1qyZ+r3icFKcCra2thQXF6tykpaWRkFBPlqtLQUFBapcW5M1g8Gg3l8ajQZJkm44cyc3N5fdu3fTuXNnXF1dy+nCtLQ0tRRanTp1kCTJLFvjfp0DWDrvkiTx999/s2PHDj744ANkWWbmzJns2bOHzp074+3tjY2NDREREWoEeNlML0sodfVlWVZlSTn3Dg4O6jVQ5K10+iuRmppqURcPHDgQg8HAoEGDbsn1u3LlCvHx8Xh7e19T/xOl30ZERATt2rWjTZs296283Q6uxYiv3A9+fn4MHz6cI0eOMHDgwHL7+LcErIQslz73y861jh49Snp6Og0aNKCwsJD09HQ8PDzw8vJCkiQKCwspLi4mLCxMDV7R6/VcvXqV4uJiioqKSE5OxtnZmZiYGB566CFcXV2r5ZzczVy6dMmq80XcVwKBQCAQCO5G7hiHhIIsy4bbPYabhWKgTU5ORqPRqPWny6L0kQgICECWZZydndWXACXjITo6moCAAOrUqVNuP46OjkRFRXHmzBkKCwtp3bo1AGFhYRiNRrp06UJcXNw19Y8wGo3k5uZSUFCAr6+vmo0huL8xGo1otVr69OmDu7s7ycnJajP24cOHo9VqWbRoESEhIQQHBxMaGkpMTAx169ZVjUCOjo6cOXOGqKgoEhISVNny8fFBq9VSr149NBoNQUFBbNu2jb179wLQp0+fci/Ct7ssyt1OWloaiYmJAPj7+1/TthUZOa0ZaD/99FNSU1PVkkq+vr7ltlV0z+HDh9WxVaWEk7e3txoNX1EEpaVo9qpimsVRWdkwHx8fHn/8cc6fPy9KltwinJ2dmTp1KgcPHqR169ZqaZ6yNGjQAI1GU66HgtLsWZIkGjVqVK4nk5OTE1qtLXZ2tqr8V+RgML2/fH19gYrlryrOit27d7N7924A+vXrZzY2AE9PT5ydnc3uPdMyRfcrls67wWDgvffeIywsjKlTpyLLMkuXLuWNN97g4MGDZvOea3nWWNJ/StaDqW5S5K2gwAc7O1vVkVRWF5vqtluBtfujMlq1aqX+vd/l7U7H9H5o0aIF3t7eaiaYKYrclmZblZf/tLQ0JEnCy8uLkJAQCgoK8PDwoFatWur9U7YEWZcuXdTSoImJiRQVFRETE8PVq1dJTU3F0dGRvn37Vjh+pdSTnZ0dGRkZqvNQIBAIBAKBQHDncsc5JO513NzcuHTpksWJPpTWBv7tt98YMGAAtra2XLp0SY0UqlWrFuHh4ZSUlODg4FDOuKeg0Wjo1q0b9vb2NGvWTI0sUowQ/v7+hIaGXtO4dTodFy9eJC8vr0JniuDewFodXyXCVyklodPpuHTpEvn5+Wg0Gjw9PdFoNIwcOZL09HQKCwtZvXo1TzzxBE5OToSFhZllXSgOhbCwMGRZLpchAaWGXMUw07FjR7O/ZSlbFkVwbZhmXF0rZWuxKxgMBjIyMggNDTVr5rt//36++uorAIYPH05BQQE//vgjAwYMwM3NTTXEFhcXc/HiRSRJIigoyIpRTFbrsVuLVrZm+LXmLKkK19JsU6PR4OPjg4+Pj4hmvIU4OzvTtWtX9f+W+n1Yu46KrNWoUYMvvviCTp06UbduXXU7V1dXnJwc0Whs1GtakYPB0v1VVv5MnRBVcZYpmUXKXwVTXXitjrb7AUv3/apVqzh16hTffvstdnZ2ALz22mtMmDCBNWvWUFhYyODBg9VI76o+a5S6+goGg4GUlBScnJxwcXFRDaeKvB06kgtIBAQEXJcurm6ut6mws7MzDz744E0YkeBGUHSgo6OjqstM74f4+HjOnz8PlOqO9PR0fv31Vx555BG8vLwwGAyUlJRmipV9lpnqOBsbG1xdXQkPDzdz5JYtQebs7EyXLl1UR0ZRURH29vb07NmTQ4cOletlYclRq2SE6XQ6srOzAcR7ikAgEAgEAsEdjnBI3GKSkpLIzs4mKSnJopHgt99+Y9u2bQBMmDABLy8vYmJi1Aaa9vb2NG/e3GqNaaV/hLOzM7179zZbFh8fz9mzZ83KBlSFoqIiYmNj8ff3x2g03hEvyIKbi7XSR0r5D72+BFtbOyRJIj8/X23yqsiHl5cXOp0Og8FATk4OgYGBar11xdCj1+vVRqH29vaqo8I0Nd/FxYULFy5w/nxpvWJ/f3969ep13fXVBRWj1WqvOTOiMkyjwhUDgdFoZNWqVUBpCadJkyYxevRoSkpKMBgMdOvWTTWI1KpVC19fX65cuUKXLl2wt7c3K32j7E+RV2uRuCEhIej1erWGtWIELGssFNzbmOq2yqK2FUPsqlWr+OOPP0hMTOTJJ5/Ez89Pfdaa6iKDwYCtrS21atWy6OCysbFR7wFTGTaVP8UJUVhYiE6nIzg4WN2XckxTQ6Krq6tZZoTAHGsN58ve99HR0Tz//PN069aNYcOGqd8rc6+TJ09y4cIFsrOzeeaZZyqMvq6sMW9aWhpxcXG4uLgQHh6uPmPV5uJH9wOl+rI6nJemsiaixgVl53dlgwbKOut+/fVXtmzZAsDkyZNJS0ujqKjY4r7LBiyZOh8q6/WgoNybSmZE2QCHI0eOkJGRofZy0Wg0xMbGEhwcjLe3N87OzuI9RSAQCAQCgeAuQDgkbjEBAQGkpaUREBBgcfmAAQPM/l6+fJmcnBwuX75M48aNK92/TqcjJydHLfVkSo0aNfD29sbDw+OaxhwdHc2ZM2fQaDTXFSUnuPuwVo5CecnTanVAadPY+Ph41YmQnp5OjRo1mDx5MuvWrQNg5syZ2NracvnyZezs7FQjUHp6upr5oJQvsYRSwszDw0P0h7jFVLWnREVYigrPzc3l119/ZcSIEXz99dcsXLiQN954A3d3d3r16kVwcDBQahDRaDRcvnyZ+Ph4oqKiaNu2rZmTAzDrW2ENW1tb3N3dSUxMxM7OTkRP3qdcT1m3gQMHotfr6dSpk2qgVp61pX1TSo28aWlppKWlERgYqDq+rBmCLTnq4F8jYGZmJjExMTRu3FiNAlaOCUIHVpWqOKCKi4sZN24c9vb2rFq1ysxxsWvXLmxsbHjqqaf4+eefiYiIIC0trUL9UVkvI29vb4xGI05OTjg4OJRbLssyen2J6kC9UazJmuD+RNF9StZCWfnQarVmzrpHHnnE7K+3tzf29naV6rjrpSI9pzSX9/T0xMvLS30/iouLQ6PR4OXldV/KeGhoqFXn5bVmxAsEAoFAIBDcKoRD4haTk5ODnZ0dOTk5ZinM+fn5vPLKK9ja2vL6669jY2NDfn4+wcHBJCYmUrNmTbP9yLJMfn6+WaQk/PuCYekl193dncaNG1tcVhGmddIF9wfWylHY2Nj8U+f/AgDh4eHq3/T0dFJSUjAajWrfEoDWrVurxmzF0Az/Rp4qf61hZ2dH7dq1MRqN2NnZmd03gpvLjfSUUDCNClfYt28fqampjBo1Cjs7O+bOncuQIUN4/PHHmTp1Kr///jsff/yxaoxTei4of82dHBcASTU2WoqIViKWPT09zbYX3H9U1j/BUhaCl5cXjz76KFeuXMFoNKofFxcXs+dvWedbRYZga+XRbG1tqV27NkFBQdjZ2Zk9d8vWXhdUTlUcUK+++iqHDh1izZo1qgNcYdeuXTzwwAMYjUaefvppcnJyyl2zshkRlR3TxsZGDUqxFDWu15dQVFRMenr6NetdU/2nGChvpBSf4N7DNGvBaDTi4OCAv7+/Vfnw8vJi8uTJlJSUEBcX90+ppNJM15vh7KpIz5k681xcXLCzsyMiIgInJ6f7+h3l4sWLt3sIAoFAIBAIBNeMcEhUkcpSjU3LzyjGV6PRiMFgQJI0GAylvbrd3NxIT0/Hzc0Ng8FAQUEBkZGRPP3008TExABw4MABVqxYgZ2dHXl5eWqTNlMDcV5eHqmpqVy4cIF27dqZLXN0dESWZYxGo/qdwWAgMzOTGjVqqMYUa7+zbJSTUkagqunWgjufiq6lpfrCpuh0OjP5CQ8Px2g0IssyWq0WSZI4fvw4a9asoWbNmvz99980a9ZMfVktLv431V+RR71er5ZyqgjlBbWs/IoSTpaxVq5EoSI50Ov1FBcX4+joiJ2dHQaDwczAf72lRGRZZs2aNbi7u9O7d2/1WjZq1Ihdu3axdOlS5s6dS5MmTVi2bBmjRo3CwcGB1q1bI0mSWq7OPKtGVn9LQUEBSUlJxMbG0rlzZ5ydndWIZTc3N3U7099+q3s6VKZLRY+J6kc555YcDqXP6dJzXlBQwNWrV4mLi6NDhw6qYTchIYFLly4hSRI+Pj5qz5KSkhK0WttycinLMjVq1CA/Px9PT0/0ej3JyclAqeGu7Lplx2pnZ6eWsVOWK8bu+10+ruX+KeuAKvvs2L59O++88w6TJ09mwIABZssLCgo4dOgQjz76KGfOnMFgMBAeHm4WEKKULczNzTXLTFWcEZWN1VSvKmi1WgwGI+7u7uTl5amyajrPLG0qXPo78/PziYyMpE2bNgDlosvLOoUrGtP16nZr+5Rludz9Vpb7XZ5vFpXN84xGI/Hx8Wi1WrX/l/LuYOlaXblyhbi4OHJzc/8pe6gpF1hiekzTaw+lmZEFBQX4+PiUe88o+zw2vX9MlxUWFnL8+HHCw8PRarWqPhTZ29VPRVkXynLhCBEIBAKBQHAjCIdENZGenl4uSkin06HXG7Cx+feFKycnh5KSEnJycvD09OTtt9/mnXfewc/Pj40bN5KQkMB//vMfevfuzWeffUb79u1xdHRU66QqODo6cuHCBU6dOoWDg0O5Jr9lXybS0tK4evUqUBphZG2SKUlShcsE9z46nY7c3FzAcrkJRQ5SUlKoVasWQUFBPPfcczRq1Iji4mL0ej3Z2dkUFxerzRGdnJxo167ddcldVRCyaZlrqZdflvT0dOLj49FoNGi1Wuzs7KpcJqai61FUVMSvv/7K4MGDy2VrabVannvuOQYNGsSkSZMYP348WVlZTJ482WIDTZMjqv9ydHQkNjaW48eP4+joSOfOndVodsWAaMr1Olor+o2VyaNw7t4cqqIHLJUDMdU/Tk5OxMbGqs/Wzp07qw3VjUYjHh4eaDQa0tPTKS4upri4xOqxFIdecXExeXl5nDlzBiiV89JMs+uTIaHvqoeMjAwmTpxI3bp1ef/999FqtWaG0oMHD1JSUkLHjh2xsbHBwcEBSZLM9KqtrS3Jycl4enqaOcxNjfAVXS9Ly43GUudWdna26iBxdna2WuYwMjKS/ftL+04oTaQrclxVpH+u91lsbZvKylcJbg+SJJGenk5GRgb29vYEBAQgSRI6nY7Y2FjOnz9PbGwsMTExlJSU8NZbbxEUFER+fj4ajYaiokJkuVSWTJ1dpvJjeu0BLl26RF5eXrk+E8p2lY0X4NChQ5w4cQIobbh9o3NHgXUqczaI8y4QCAQCgeBGEQ6JaqJslJASfWRjY2PmHPD09MRoNJKcnMywYcPYu3cvw4YNY/HixdSoUQOAunXrMnLkSIYMGcKKFSsYNmwYRqPRrESTRqOhXbt2ODg40KRJE1JSUvD09FSzM8qWEHB1dSU2Npa0tDTc3d2xt7dX9wmlL4oiylwA/2bYWCsLkpKSwpkzUaSlpRMSEkJGRgbjxo2jbdu2zJgxg549e6oGYG9vb/z8/GjevDlQKpdXr15l69at5Obm0qhRI1q3bm1mmNbr9WRkZKgRe9aiK03Xq0p2xf1IVevlW2rCqjQpd3BwQKvVXleZGEsZGps2bSInJ4dRo0ZZ3S48PJw///yTXr168eyzz6LVatXyThculJYLCwsLs1hfXaPRqA7ali1botPpyMvLw83NzUyGLGW1Ce59KioHkpqayqxZs1i9ejW1atViz549bN++nYiICJo2bYqvry/Z2dkcPnyYuLg4fHx8KClxoLi4iK+//pqUlBR69eqllhZTHGCOjo7Y29vTsGFDoPTeUvSXl5eXRT1nWptdMRRWFGUuqDoGg4GrV6/yzDPPkJKSwp49e3B2di6XPbFr1y40Gg39+vUjJycHFxcXjEajmQxdvHiRy5cvq2VwYmNj1fJwXl5eVo3wppmIgJn+tbEpvcaenp6qUwuslzlUMiPatGmjjuNOMRaW7VcguL0ozjIHBwe8vLwoKChg586dzJgxg5iYGK5cuWK2vpeXF/n5+Rw4cIBt27bRqFEjcnNz0euvoNfriY+PN+s3YUpZXRsaGkpBQUGFZTorawjftGlTDh06hEaj4cyZM9StWxd7e/vrPR0CgUAgEAgEgtvIXWuFkSRJku+AMNOSkhLi4+MJCQkxi/hRjGCSBJJU+gKsGE+jo6MZNGgQsizz2WefMWbMGLOJd+vWrdm9ezcjR45k1KhR/N///R8zZ85Er9cD/0aZOTs707FjR1JSUtRSEErUXEFBgVmUe3Jyshrt4uzsjKenJzt27KBmzZq4urqa1ZQV3D+YvpwWFhaqBi9LsmA0Gjl8+DD9+/enzqDnqV27NquW7sRoNPL111/z1ltvMWbMGLp168aCBQuoV68eycnJaj+JdevWsXr1av7880+KiooAqFWrFq+99hojRoxQj5ORkaFm8zg7O5fL1sjNzWX//v2EhYWRl5cHXH9/g3udyurlKyiRjMXFxaSmpqpZWUqdc1Oys7P566+/aN++PYGBgRUavixlaKxZswZfX1+6d+9e4ZicnJz47bffePDBB3nuuec4fvw4Y8aMUUvbmTZIt/S7mzVrhkajwd7eXv1rimm08f3YBPN+pax+0+v1JCQk8Ntvv/Hqq6+Sm5vL+PHjyc7O5uTJk/z2229qRLmzszP169cnNzeXxMRE8vPzaTXpLQBWrnoJgJdffpl58+Yxc+ZMbG1tsbe3JzU1FS8vL7P+BMnJyar8ubi4mEWR5+XlsX79erV3VNnlghsjIyOD+fPn88svv/DOO+/wwAMPWFxvz549+Pj4kJSUpGYoQGnD8eDgYDQaDcHBwUiSREBAAOfOnePAgQPY2dnRsmVLNaLcUsk8ZY6mBIbk5eXh5+eHq6srIKmZGnl5eaoOU9atUaOGWSaHs7Mz3bp1u+bzkJ2dzdatW2nbtm25LNzqQpQZu/2YvqcUFxerusTR0ZGzZ88ydepUQkND6datG2FhYYSHh1O3bl3Cw8OpUaMGO3fu5OGHH6Zr16588cUXNG3aFK3WBhsbDSEhIWYZQZIkqXKalpZGUFCQKlcuLi5otVozOVNksEePHri7u1eYUZObm8v06dP57rvvGDx4MN26dcPJycnqPEAgEAgEAoFAcGdz1zkkJElylWU5905wRgDEx8cTGxsLYDYpViKClIm3YmQ1Go388MMPFBYWcvr0afz9/S2+qAUFBbF582aef/553n77bX788Ucee+wx/vOf/wClRpSsrCw8PT3VRq3KXygfGR0UFESrVq2AUuPtrl272LNnDyUlJcyYMUNEr92nKOVL8vLyzEpDKFy+fJkVK1bw+OOP4+Xlxfvvv09hYSEtWrTA2dkZGxsbbGxsmDx5MmPHjuWzzz7jzTff5KGHHmLatGn4+Phw6tQpNm7cSHp6OgEBAUyZMoXBgwdTWFjIY489xmuvvUbPnj1Vp4KpPCv3j6l8/vnnn6xZs4bhw4fTtWtXM7kXXB+KnkhKSuLIkSM4OTlhZ2dn0VC/detWtm7dSmZmJmPGjKnQQOrg4EBeXp5ZBszu3bvp3bt3lbISatSowR9//EH//v1ZtmwZcXFxzJgxg9DQUEJCQszWvXTpEsuXL2fq1Kk4Ojri5OSEo6OjKuNHjx6lc+fO2Nvbk56ejoeHB1B5U3XBvcOlS5dYtmwZTz/9NKGhoUCpY+qrr77irbfeolGjRnz99dc0atRI3SY/P58zZ85w4sQJTp48yblz5wgPD+fhhx8mMDCQk9TFzs6eb86exdHRkWeffZY5c+bw7bff8vHHH9OgQQOLji9FbykZElCq59LT03nzzTfVXjsdOnRQ5wjiOW0Z02ySsrXpLWGaTapkrViiU6dO7NmzhxYtWvDwww8zZcoUGjRowKVLl4DSOZ+dnZ0a+a3VaqlZsyY+Pj7Uq1ePvLw84uPjqVmzJu7u7mb7VnSu0WgkLy+PgoICoqOjWbt2LUW1e2Fv70BGRoaZ7Fy5coXz588DULt27Ws/UWXYvn0727ZtIysri5EjRwpn1z2K6XtKrVq1gNJssKVLlxIWFoZer6dfv358+OGHQPk+Ig8++CAbN25kzJgxdOrUiZEjR+LS/lFcXV2xtbUlPz9fdSKkpKTw/fff89tvv7F//3769OnDunXrsLW1pbCwsJyzYevWrezYsQOAIUOGVJjVuXHjRvU+atq0Kd26dSvXhF4gEAgEAoFAcPdwV+X+S5LUH/hCkqQ1kiQF//PdbQ27CgkJITw8vJxx7N8ozNLheXp64u/vj6OjIzExMdSrV6/SF0pHR0dWrlzJli1bsLOz4+WXX+aFF16gqKiI3bt38+677xIZGUlaWprZCzagRigpRmZbW1tCQ0MpKSnBaDSq9fxTU1PVsgSC+w9HR0fc3Nzw9vbGzc2tnMFrxYoVbN++nRUrVqDT6diwYQNDhgyxaLhwcHBg2rRpnDhxgq5du7Jo0SJmzZrFmjVr6N69O7/++iuxsbG89957dOrUiZ49e/L9998THx/PhAkTKCwsBErrq3t4eHDkyBHeffddcnNzzeQzJSWFvLw80tLS8PX1FeV2qgFJknB2diY0NJSWLVvSokULq4b6Hj160KNHD7p168aJEyfQ6XRW91tYWIjRaFSvbVJSElevXrUakWyJwMBAIiMjWbx4MXv37uWRRx7h+++/JzExEYPBoK63fPly/vrrL95//32Sk5MpLCxEo9Hg6OjI+fPnOXbsGAcPHlR7Y8TExODl5YXBYODkyZNq1o6C0ri2bBmXm0VRUZHFcQiqj2XLlrFlyxaWLVumfnf+/HneffddtUyYqTMCSg1nrVu3ZvLkySxevJhNmzbx/fff8/777/P888/j6+uHh4cHdevWJTg4mB9//JFff/2V/Px8unXrxqxZs8jJyVEdYDqdjsjISPR6PX5+fhgMBqKiotTI4XXr1qm9WwYOHKiWfRRlFa2TlpZGYmIiaWlpla5bVFREdHQ0zZo1o0mTJjz22GMkJCRYXPe1117jwoULzJkzhwMHDjBo0CCGDBlCZGQkTk5OpKSkEBcXx8mTJzl27BgxMTGkpaWRlJSEVqslNzeX6Ohodu3aRV5enpnjX8lec3Z2xs/PD19fX/73v/+xdetWEhNLnRCenp4EBASoujg4OJiwsDCCg4Nv6HwVFxcTExND3bp16dKlC7179zbrf2E6zupG6Llbj+l7SklJCXFxcSxbtoydO3dy/vx5xo4dy7Jlyyq8f7p06cK5c+eYO3cu69ev5+TJE1y6dImEhARiYmL4/PPP1QyLOXPmUFRUxGOPPcYff/zB5MmTKS4uJi0tjeTkZLM5W48ePejatSs9evQA/p2LSJKEwWAgOTlZfc4nJydz9uxZFi9ezLx582jcuLEo1ykQCAQCgUBwF3PXWPIkSeoMvAM8AUwCFgLjbnemhK2trVlmRNlmhgo2Njb4+PhgNBq5dOmSWmO6KnTr1o3Dhw/z+OOP8/nnn5Oenk5oaCiHDh1CkiQ6duxIq1atzCKF0tPT1bI3ShmnmJgYjh8/jiRJNGrUiBdeeIH169erzYjFxP7+w7R8SVkng9FoZMyYMciyzOOPP87XX39Nfn4+48aN4w/L9hugNBtn/fr1/PLLL6SnpzN06FA8PT0pKSkpZ1Dr0KEDS5cu5cknn+S5557j448/BiAxMZGvv/6as2fPYmdnx7PPPqtuM2rUKFxdXXn44Yer6SwIFGxtbalXrx5QapC3pM/c3d0ZOnQokZGRHD16FI1GQ9u2bS3ur2y049GjRwHUniJVRavVMn36dIYNG8bzzz/P/Pnz+e677/6J6PQA4KmnngJg6tSpODs7q0a8oqIitYRK69at1RI6RUVFpKenk5qayqlTp4DSqEuFG2kIfj2cPXuWI0eOYDQar/n8CKrG008/rf41Go0cPHiQAQMG4Ofnx59//llt2TIDBgyge/fuLFiwgA8++IDff/+dl19+mf/+97+cPHmSI0eOIEkSrVu3JiYmhtOnTwPQpEkTBg0ahCRJDBw48J/yPYLK8Pb2NvtbEXFxcZw9e5ZGjRoxduxYXn/9dcaMGcOWLVssZlcEBgby2muv8eKLL/LDDz+wZMkSXn75ZV5++eUKj/PTTz9Rt25d/v77b/R6PY6OjoSEhHDkyBG6dOmilkhSeny5uLjw5JNPlpbsCiwtlWdjY4Ofn5/qJLC3t8fPz++GnfAJCQkcO3YMR0dHHnzwwXLlRqtb7yl9ARwdHYmOjlbl3VTfCm4eynuK0WjkyJEjnD9/nq5du2JjY8OTTz7J5cuX+fbbb/ntt9+YNGmS1f04Ozszb948Hn/8cZ5avoX4+Hjq169PQUEBUFpuduHChQwdOpSwsDCgNJPnlVdewd7enkceeUTt56S8N7m7uzNkyBCLx1McjVCaITR27Fjc3NwYMGBAdZ4egUAgEAgEAsFt4q5xSADdgF9lWd4tSVISMF+SpJeB34E4WZZzrG0oSdJUYCqg1mSubpQIHp1OR25urklTYFk17EFpxHBcXJzaqDo7O9tqiYGCggKzNP8lS5YQEhLCO++8Q/v27RkwYADt27cnJyeH3Nxczp49S82aNbG3t1drtbq4uKhj8/f3Jzs7Gx8fHwwGAx4eHnTr1o3Lly+TmJioZnmIKMxr41bIV3VTmR/P1ADywgsv4OLiwsaNG6lTpw7BwcEUni99SVT6kphup8hRnz591O8LCgooKCgwK92jMGrUKA4dOsQnn3xC69atGT16NDY2NkyYMIHIyEiGDh1qNt4aNWowbtw49XeULS9Q9ndWlER1p9e1rg7ZUs6RpUaRlZ07pc55UVEROp2OwMBAdVlERASSJNG0aVOr8qREOyrbHDp0CICIiAiLEbgVReUajUb8/f355ptvmDhxIlOmTGHAgAEMnvsNNWuGEBwczCuvvIKDgwNGo5H09HQ8PT05deoUcXFxNGvWTHWM1K9fX+3po0Su161b1+x3KBHDlTUEry6Cg4NJS0u74ejnqnIn660biTMwlWe9Xm/WGDokJIS33irt+XD8+HEeeeQRnJyc2LBhA76+vmYZN9b2WX6sRiRJKjdmJycnXn/9dcaOHcvTTz/NzJkz2bNnD6tWrUKj0dCwYUNkWaZu3brAv/Ln6enJo48+elc/h6tLb1W0zPSaKIb7qmyrGELr1KlDp06dcHBw4Nlnn+WVV15hwYIFVreVZZkxY8YwevRo9uzZw8GDB3F2dsbJyQknJyfc3NxwdnbG2dmZ8ePHM2fOHN577z3s7OwwGAz4+Phw4sQJDh48iF6vZ/DgwTg7O5sdr379+rz++uvM+uYAIKt9w86dO8cTTzyBXq9n6dKlNGzYEAcHB2xtba2OVemNEhQUVC7YJDAwkBYtWmBvb4+np6fZGOzt7dVsybLnoqLnheK8ttQvwtTJoTi8lb/Xyp2st24W16sPjUaj2bXQ6XT4+voiSRIRERH07dsXKA0ACQ0NZe3atUycOBG9Xl+h/gkMDKRB/foEBQbSRB5Bo0aNGDJkCLVq1VK3VWT3//7v/0hKSmLZsmX4+voyYsQIgoKCLMqWMkYlAMLDw4OUlBT1PcjLy4uJEyde17kQCAQCgUAgENx53E0OicPAfyVJmg1MB74EfIAZ//x7p7VG17IsfwZ8BtCqVavrmtlXZrgsW+NZae72z1J1cn/27FkMBgMNGzY0a7hqiaKiIrPjSpLErFmzCA8PZ/r06aSmptKvXz9CQkLIzs4mLi4OWZZp2LAhaWlpREdH4+Liohq4PDw8iIiIUF9OdTodfn5+yLJ80xoa3g9Uh3zdaiqSZ6Uet62trWrMPnfuHNu3b2fevHnlZLIs1uRIq9VajexcuHAhMTExPP300/j7+xMYGEjNmjV54IEHKCoqIioqivDwcIsOjTukncxNobpkq2yjSGsOClM0Go1qjJ86dSrff/89vXr1YvLkyQwePBhHR0fatGlzTeM4cOAAdevWxc3NzeoxrY1HkiR12UMPPcSxY8eYNm0asRcvkpmZwbnWHtSoUQMobQSr1F5v0qQJsizTpEkTdXtbW1vVgKkss3Q8pXREdWNpn56enrRr1+6WOUDuRr11rZhG2CqZggBXrlxh8ODBGAwGtm7dSp06dW7AcSkBklVd2LRpU3bu3MnChQt55ZVXaNOmDS+88IK6X3t7+3LyZyrrdyN3smw5ODjQuHFj9f9PPfUUBw8eZNGiRXTo0MFq9LWimyRJokuXLnTp0kVdZjQazZwDb731FkOHDuXMmTN06NCB4uJiPD096dmzJ4WFhQQFBfHdd98xZMgQPD09LVxrCVk2cvHiRc6ePctzzz1HYmIidnZ29O/fn//973/06NGjQhlJSEiw2m/C3t6e8PBwdexK9oJGo8HGxua6ekmYOh3Kbm+aKafRaK4pQ7gsd7Js3WmU1SOOjo74+voSGhpqtszf358GDRrw119/kZeXV2kT8tJlEq6ubrzzxRcVHlOSJN5//31SU1N566238PDwoE6dOtjb26vr5Ofnc/DgQRo2bGjWyywrKwu9Xk92drbonyMQCAQCgUBwD3JHW6AlSWouSVJDSZLCZVneAHwBOAPbZFl+SZblGUA88CjA7S7fBKWTb2uTeb1ez/Hjx4HSSLjrZejQofzyyy9kZ2fTtWtXLly4QP369WnQoIH64pmWlsaFCxf4888/WbRoERs2bCA/P1+tQ61kchgMBmrVqiXKNQlU0tLSuHr1KkVFRfj5+aHX61myZAkA48ePN1tXqdV/o9ja2vLdd9/h7+/P1KlTyczMVI3WFy5cICoqSm3KKLh2lAhexTCkOCiUUgvW0Gg07Nixg++//56+ffty6tQpRo4cSb169XjnnXdIT0+/pnFERUXRokWL6/4dpnh4ePDtt9/SoEED8vPz6dChA+vXrycxMRE3NzcCAgJwcHAgMjKSxo0bV2rQKC4uJi4ujtzcXE6dOnXLa5wrNeWFY7j68Pb2JjAw0KyUT0lJCTNmzCAjI4NNmzZV2NS4utBoNLz00ksMGzaMOXPmsGfPHoByNdIFNx+lhr7SNNzOzo4VK1bQsmVLHnvssXJZf9fDwIED6dChg9ovqWPHjgQEBGBra0uzZs3Yvn07f/31F7/99pvF7WVZJi8vj++//54pU6aQlZXF5s2b2bdvH35+fvTv35/33nuPkpISkpOT1Wh0U4KCgggLC6u06a/iSCjbC+haez0o/agsOVQlSRK67Q7AUi+a/Px8zp8/z6RJkyguLmbDhg3VflwbGxtWrVpF9+7dmT17Nt9//72ZzP79999s3bqVY8eOmfUys6S/BQKBQCAQCAT3DndshoQkSX0pjYJaB3SVJOktWZa/lSRpF/CaJEmNZFmOAqIBf0mS7GRZLr5d45VlWU01liSJkpISrly5gl6vV0syZWRkcPjwYcCyQyIjI4OoqCjy8/MpKCggPT0dg8FAfn4++fn5uLu7M2zYMAIDA2nTpg379u1j0KBB9O3bl+7du9O2bVs0Gg35+fmcOnWKXbt2mRkctVotbdq0oXv37kyaNAlXV1cuXrxIWFiYxchzwf2Jm5sbly9fVo0Lly9fZtu2bXTt2pVatWoRHR0NlJYf6927PwEBAXz++ec3XGrG29ubn376iQcffJA5c+awfPly6tevrzrZlIjOylAyPLy9vc1evJVmpvXq1TOLzrsfMC2dBKVRwnl5edjZ2akRkZaMRTk5OUybNo3GjRvzyy+/IEkS69at4+OPP+bFF19k3rx5jBkzhqVLl1Zq8M/IyODixYtMnTq1Wn+bn58f7u5uaM9E8NRTTzFy5EimTJlCkyZN+P333zlw4ACHDx+mVq1aZGdnU1BQQKNGjfDw8KBRo0ZoNBoyMjLIzs7m0qVLnDt3To30tZQ5Ibg9VCWrpyxarRZ/f3/g33JgO3fuZN26dcyePZuWLVvetPGWRZIkPvvsM44dO8bo0aPZvXs3Tk5OZjXSTVEi163dm4Lr4+LFixw7dgy9Xq+WDXJwcGDNmjU0bdqUUaNGsW/fvhs655IksXDhQrp06cLcuXN555130Gq1ODk5ERoayqhRo/j77795+OGHyc/PL3eN9foS8vLyeffdd/H29ub3339X54x79uxhypQpzJ49m6NHj/LMM88A5eXHzs5OfXZa621mNBoxGo24uLiU09+V9Xoou8+yzxjBraWq+rGoqEhtaG5vb8/Bgwc5dOgQbdq0wd/fn7Vr1zJ8+PAqH1dpVJ2VlUVWVhaZmZlkZ2erpWTHjh1Lw4YNsbe354cffqBXr14888wzhIaG0qtXL6C0fNrFixepW7eumQyVLcUmEAgEAoFAILi3uOMcElLpTNqZ0rJM02RZXi9JUnvgf5IkuQOfAkbgWUmSDEAnYPTtdEbAv70joDRSLDY2lgsXLqDT2akRY56enpw9e5bg4OByzQJlWWb48OEcO3bM4v5tbGwwGAy8/vrr9OrVi0cffZTBgweze/duxo8fz8aNG9m8eTNQmo5fq1YtJk6cSI8ePWjXrh1RUVFs2bKFLVu28Prrr/PWW2/x8MMPExYWxsSJE81KGAhKkWWZjz/+mHPnzlV5m6tXr6o1yuvXr2+1Wd/txpqBAiApKYnc3FxSUlIIDg7mzJkzxMbGqoYPhYyMDAoLC7lw4QLDhg1j8eLFtG7d+obG1axZM/7v//6PefPmkZSUhI+PDz4+PuUMw/n5+Rw6dIhWrVqVi8i0VqZFNNP8l8LCQoxGIxkZGaqh1lQnGY1G8vPziY2NJTU1FWdnZ1UOdu7cqWZGFBYW8ssvvzBv3rxKHVInT54EuKFyHdZwcHBg+/btvP3227z22musWbOm0m2cnZ3p0qULbdq0oUGDBjRt2pTU1FS6detGenq6WttfcOswNcIrRjXFwejg4KA62K/X8Gk0Gnn99ddxdXVl+vTp1TZuhdOnTxMSEmK1JJmbmxuNGzdm/fr1/Pbbb0ybNg2w3Iz5VjdVv1v54osveOWVV6hfvz4dOnTggQcewNbWlu7du1uUE0dHR/UDpc+7L7/8kpUrV1JYWEhiYiIFBQU3fM6Dg4Oxt7fnyJEjnDlzhhYtWqDRaHB3d8fd3Z3GjRuTl5dHbm5uOWO+VmtLRmYGDg4O7Ny5U+3dA6WysHr1ahYtWsQrr7xCdHQ0b775Jj169MDOzo7i4uJyvSOslVNSvtdqteXOVdleD2XnDBWVaALzwABrfdIE1jHtf1OV81e2LKM1YmJi1HlQkyZN1Dlb69atadasGWfOnKn0WLIsk5mZSULCFfwmdqhw3dTUVD799FOgVP9t2LCBgIAAfvzxRx588EH0ej1+fn5EREQQEBBQ6bEFAoFAIBAIBPcOd5xD4p+yS3mSJB0C3CRJspVl+W9JkkYDPwAJwMtAV6AhMFiW5ZjbNuB/MO0dodPpcHFxKe3PcDGD0hrTpdGaaWlpFg1yhw4d4tixY8ycOZO+ffuqRlY/Pz+cnJyws7Pj4sWLfP3116xevZpNmzYRGhrK5MmT+fTTT7Gzs8POzg5HR0e0Wm25uvq+vr507dqV119/nejoaL766iu+/PJL1q9fT1ZWFp9//vnNPUF3GbIsM23aNJYvX35NEaoJCQnMnj1b/f/8+fN55ZVXbtYwr5uKjAkhISFIkkRgYCAZGRlcvnwZKG9ILioqxtvbm2+//Zann36ayZMnM2vWLF566aUbqn+ek5ODnZ2d2hi+pKSEy5cvExwcjJ2dHUajkd27d6vOO9Na3vCvca+ske9Gm2neSyj6xcHBgcLCwnJOHaWZdVhYGKtWrWLq1KlqqSUnJyc6duzIsGHDaNWqFR06dODKlSt4e3tXmGmlGDoaNWp0U36TjY0Ns2fPZvTo0axduxYHBwfc3d1xc3PD3d2d7OxsXn75ZU6dOkXNmjXp2rUrkZGRbNq0CShtmBkQEEBBQQGjR4+22jBWcPOwZFRTHIz+/v5WS8JUlQ8//JDdu3ezcuVKfHx8qmXMCp988gnTp0+nadOmbN++XW3Easqbb77JunXrGDNmDBMmTKgwAti07r7AMl9++SVTpkwBSg3gu3fvVh2sjRs3pkOHDmqfm7S0NAoKCsjKyiIlJYXPP/+c7Oxs9u3bh8FgoGvXrsydO1ftj3MjyLLMf/7zH2xsbBg0aBBarZbk5GS8vLzM+igp17bs8SRJwmgwEhISYuaMMF3+/PPP07x5c0aPHs3EiROZPXs2gYGBREdHc+HCBSRJUp0Cer2et99+Gzc3NyIjI2natKnqlMnLy0Ov16PT6czmAvb29maO+7JzBtM5ryVMAwNElPu1c63nryJ9YZoVoTjalb/Ozs507doVKA0w8PT0tHqMwsJCvvvuO5YsWYJ9qzHY2dkyZ84cmjZtiru7Ox4eHri4uFCjRg3c3d3p168fZ8+etThOKHWOeHl5kZ6eTnZ2NklJSWrTeYXc3Fx2795N586drTp6BQKBQCAQCAR3J3ecQ8KEq0APYD1QIsvyQUmSJgCLgUGyLP98OwdXFqV3BJS+oHl5eREXF0dS0lW1ZMT58+c5ffq0xXTolStX4uLiwn//+19cXV2B0om48m8obUz46quv8tJLL7Fhwwa+/fZb5s6dy/z58xk4cCAzZsygQ4eKo5UAwsLCePPNN5k3bx6zZs1i6dKlDB06lD59+lTHqbjrMXVGSJJUaZ19U3x9fRk1ahSyLHPw4EHmzp0LcMc5JSoyJtja2lKrVi2gNKsnKysLoFyt9eLiIgIDAwkNDWXNmjW88MILvPnmmyQkJPD+++9fd1mkuLg4atWqRVJSEsePHyc+Pl69D+rUqYNOp1Nfplu1alVue1Mjn6ljrqyB5X7GNCLXUiSwk5OTWoZOp9Oxfft2jh49St26dWnfvj1arVZ1Ou3Zs4dvv/2WsWPH0qZNGy5cuIAsy4SFhZkZ9aOionBxcbnh0l46nY7/+7//Y9++fcyaNQuoaba8du3aPPfcc2bffffddzz55JNotVoWLFjA22+/za5du9i8eTMODg7s2LGDbdu2sX79et555x26d++On5+fKEFyi7FkVDN1MCqRwiUlJcTHxxMSElJlx1FUVBRz5sxhwIABTJgwoVrHffHiBd6bN42OHTty4MABBg8ezMaNG816M61bt465c+fSrl07XnzxRYsOC1OUniICy3z33Xc89thjQKmTOSYmBk9PTyZNmoSLiwsHDhzghx9+KBds4eLigoeHh5qpMHPmTB5//HHq1q1bbb08fvzxRzZu3MjChQsZNmwYkiRx+vRp6tevb9bTQanpb+rALy4uprBQh9FoMJv/WaJv377s37+fQYMG8eyzz5otc3JywsvLC09PT+Li4ujfvz+LFi0iMzMTgDZt2qDRaNBoNKxfv55hw4ZVqO8cHR0pLi4mKSmJ0NBQbG1tK1zfWmCAoGpYO3/WdJ/pM11ZRwniKJsVERAQwOrVqxk4cCBeXl7qPtLT0wkLCys3lqtXr/LJJ5/w6aefkpqaSkREBPXr18fX14euIYW0b99enUvq9Xo1gKdBgwb8/PPPyLKsyriSXRkeHk7dunXR6/V4enri5ORESEhIuWPv3r2b3bt3A/Dwww9fx5kUCAQCgUAgENyp3HEOCUmSJLmUZZIkrQGWS5L0NFAgy/JuSZJOcAeOu2xGgqOjI8eOHaOkxAWdTkdRURFLlixBq9Uybtw4SkpKgNKmwNnZ2fzyyy8MHz6cgoIC1QCenZ2tNl4sS82aNZk/fz6XL1/mt99+Y+PGjaxdu5ZGjRoxatQoJk+ebDXN22AwUKNGDQBee+01/vrrL5544gkOHTqEq6ur1Yg3WZYrzBS4kaj4OwVZlqlZsyZXrlwBSo3Ypi/dlTXxTUlJ4eOPP0aWZYxGI46OjsydO5fPP/9czTS4VSiRopYwGAw4ODggy7JFI4zpdxcvXsTf3x9XV1dKSkpISEigqKiYwsIiatSoQUJCAgCzZ8/G29ubr776imPHjrFo0SKzl92cnByrxgmNRqNGxikOiYiICFJSUkhKSkKj0eDh4cHevXtp0qQJvr6+1KxZE41GQ2FhoSqXBoOBzMxMatSoocp/RQ3bb7XMltUTpvzTVPS6wqEV58GJEyeIiIi44QhfxRj6008/sW3bNgAmT56sLjeVrVOnTpGQkMCpU6fw8/Nj8+bN2NraYmtra2bcOHv2rOrUsnYeDAaD1WWFhYWcO3eORx99lKioKEJDQxk9ejRdpy8hNDSU4uLictczPz+fmTNn8uWXX1K/fn1mzJiBt7c3s2fP5q233qJ169bMmzeP6dOnM2bMGLZu3Urv3r355JNPePPNNzEajaLcyC1EkTtTGSibRSDLMleuXFGjwBXnqbLM0jOqpKSEiRMn4urqyscff1xO5xUVFVXo2LAmk3q9nmPHjpKTk0urVq1o1aoVAQEB/PTTT7Rp04YpU6bwn//8B4BFixbRoEEDXnrpJcLCwsyMdKbHudY+GbeCm6W3rof8/HwGDhzI9u3bgVLDe3R0NP7+/hiNRhYtWkSbNm344IMPaNq0KRcuXECr1eLm5oabmxs6nc5iJldOTg7FxcVWjexFRUVWz4PRaFQzHzIyMnjmmWdo2bIlM2bMQKvVcvXqVfV6lt2H0Wg0k9mEhAQKCwvR6w24uLhYdZKUlJQgyzJ16tTh77//5vjx43h4eKjGXVNn1okTJxg4cCDTpk1j0aJFNGnSRB3HH3/8waFDh3BxcWHcuHEW5RJK783MzEwuXLiARqOhdu3aFBYWqs+csgEIGo1GLZlobZ8C65j2vzGVmfj4eM6fPw+UBmhYOrfKOrIs4+fnR506dSgpKaFmzZrIssyGDRvYv38/ABMnTlS3S09Pp3Xr1uj1enWfR44coVu3bhQXF9OvXz/+85//kJCQwLZUmRMnTvDBY9MIDw9n+vTpuLi44ObmRv/+/YFSR2FGRgZJSUmqLKSlpQGlJU2VzG6AWrVqIUlSufujc+fOaDQaOnbsWC3nVSAQCAQCgUBw53BHdEqUJKm+JEntJUmyxWRMsiyP/Of/i4HHJEmaBnQB9LdloBWgRJqZfnr27AmShK2tLSkpKXz99dcMHz6ckJAQbGxssLGxwdHRkfXr16sGEycnJ7OPi4uLxU9xcTEGg4GgoCCefPJJ1qxZwzPPPENWVhZz586lffv2rFy5koKCAotjU47v7OzMihUrSEpKYvbs2fe18U3JjFCcEXZ2dhQWFlJQUKBGileGVqulRo0aeHp64uLiotZcjo+PZ8GCBTf7J1w3BoOB1NRU1fhhKiuKIVn5v5eXF7a2tpSUFBMaGqr2efDz82PSpEm8/fbbnDt3jnHjxrF9+3auXLmC0WikpKRElbuyH41Gg1arxcbGhri4OMLCwvD09FTrGj/88MPs3buXL774gl27duHs7IyNjY360pyRkcHq1au5cOECqampZGZmkpuby+bNm8nJyUGSJIufO4kTJ05Aaf+c697+8OHDyn7MsPb7KzoHkiQxYMAAunTpwoABA8y2yc3NZe3ateTk5DB8+HAGDRrE8OHDcXBwwNPTEx8fH/R6PXr9v6r6zJkzNGzY0KoMKB9rY/zyyy/p0qULaWlprF+/ntOnT7Ny5Ur0egOnT0fRvXt39uzZo25z8uRJ2rdvz1dffcXgwYOZO3cudnZ2fP/99zg5OTFv3jy0Wi1z5sxh165dSJJEz549GT9+PIsXL+bMmTN3nIwISu/1rVu34u7ujp+fHykpKZVGtr/11lscPnyYpUuX4u/vX06+tFpthR9LclpYWMjIkSPJycnFw6N0LEuWLGHPnj307NmT06dP87///Q9JktBoNCQkJNCgQQP69Olj1gjY9KOUrLqWrLzbzY3qLWtY01cffPABO3bsAEoDPwoKCmjSpAmpqank5eXxwAMPcOHCBTp37szzzz+Pl5cXoaGh2NnZcfbsWTZv3swnn3zC7NmzmTBhAq+//jpRUVHqMa3pJcV4auljb2+vPh9XrVpFSkoKM2fOVB1kfn5+NGrUCD8/v3K/R5GDtLQ0tfymra0dBoMBNze3CuVS2YerqyudOnWiSZMmBAYG4uDgYHaMZs2asXXrVpycnJg+fTqHDh3CYDCQkpJCr1696Ny5M/369TMbj6VPSEgIYWFhalnHEydOcOTIEU6cOFHhM0bo0epDuQb29vZ8/PHHqoG/7DqhoaHo9Xri4uJYsWIFkyZNom3btqSkpPDwww/TsWNHBg4caHZ90tPT8fLyMpP7TZs2UVxczIkTJ/j111/p2bMnBQUFJCYmkJ2dQ+vWrbl48SILFy4kOTmZ/Px8dVulPGNMTIz6XUZGBlCa+VGZzCiy3adPH1GuSSAQCAQCgeAe5LY7JCRJGgKsA14HvgCmSZKkzjxlWR4N7AZ8KO0bMVCW5Su3YajXzN9//w2URvR9+eWX5Obm8t///tdsHYPBwLfffku7du1uqLa9o6MjjzzyCP/73/9YsGABfn5+zJ49m5YtW/LGG2+Ql5dnddvWrVszc+ZMVq1apTbGvt8wLdMEqM0hw8PD6dSpEx07dqxShJbBYCA3N5fc3Fzy8vJwcHBQnRJz5869Y50SGRkZJCcnqy+LCrIsc+bMmXJ1//X6EoxG2WJ96969e/Pll1+i0Wh47rnnGDhwIO3ateOxxx7jqaee4u2332bNmjXExcWV21YxKnl5eXHq1Cl++eUX2rRpozp18vLy1BJSpnz++ee89957dOvWjffffx93d3f+/vtvIiMj2bJly42dnFvEPz068m9k+wceeKBam0Z7e3szZcqUcpktW7ZsYfv27WzZsgUvLy8mT56Ml5cXgYGBdO/enYiICPLz89WMouzsbBISEsqV/aoKWVlZjB49mv/+97906NCBAwcO8NBDD2FjY8Po0aNp1aoV4eHhXLhwgR49etC/f38WLlxIx44dyc7OZtOmTYwcOZKrV6/y8ssvs3btWl599VWKi4t57bXX8PT0pG/fvqxbtw4ojWR3d3fnqaeeqjDLSHB72LRpE7t37+bw4cNkZ2dz9erVCjPXDh8+zOuvv86oUaMYOnRotYwhLS2N3r178+eff+LpVVpzfcOGDYSEhJCSkkJsbCydOnXi8OHDvPzyy8iyTFJSEvXq1aswE8PJyemG+2Tcam5Ub10LmzZtYt68eciyjJOTEzqdjh49etCtWzdGjBiBnZ0dR44cYdKkSUyZMoUVK1bQpEkTatWqhZ+fH23btmXChAm8+OKLrFq1itOnT/P+++/ToUMH2rdvz3vvvUdsbOwNjfG7776jXbt2JCcnq/vSarX4+fmZ9Y8oy08//cQff/zB+vXrcXZ2wmDQV1qyqSokJSURGRlJWFgYW7ZsITAwkD59+rBmzRqSkpKA0ih502xGa9ja2lKnTh1VhiMiImjZsmW1PnMEFaNcg19//ZXNmzfz448/WlzH3d2dgoIC/vzzTxYvXszJkye5fPkyvXv3RpIkxo8fb3bN8/PzKS4uLicHx44do379+jRo0AAozST66KOPyMvLx8fXh8cee4zp06eTmZnJu+++q/a9gNIsCMCsj4Qyx6yoV4VAIBAIBAKB4P7gtjok/smIGAlMlmW5B6WOiRBgliRJaoFlWZZXyrL8OjBOluXTt2e0187gwYPxrOGJl5cXX3/9NR07dqRly5Zm6+zcuZMrV64wfvz46zpGWloa7733HuPHj+f7779HlmU6d+7Mhg0b2LBhA506dWLp0qU8/PDDauS/JV555RUaNGjA008/TXZ2tsV1dDodBw4cqFKmwN2E0oDSkjOidu3a17QvJycnWrZsScuWLQkJCaGwsFB1SjRs2JC5c+fyxhtv3Iyfcd2UlJSQm5uLp6cnHh4epKSkcOzYMTZt2sTMmTPJy8srZ0guKiotJRYQEGBxnw0aNGDt2rWsWrWK1157jQkTJlCrVi0SExP5/vvvmTdvHoMHD+bixYtm2ymlCFq2bMnVq1c5e/Ysu3btIi0tjTp16vDQQw+pdYSNRiPLly+nY8eOzJs3j9jYWMLDw/nmm2947rnnaNeuHW3atCnNVKL0Oufn51dYfuR28k+ZpesOjXZ0dKRt27Y3XK6pKvTs2ZNu3bqp51bBxsaGgIAAateuTVBQEBqNhu+++47IyEigfB+Syti/fz+tWrVi3bp1LFiwgPXr16tlLBQ0GomAAH/Onj3LwoULOXToEHPnzqVr164cOnSI7t27c/z4cV5++WV0Oh3Tpk1Dq9Uyf/58UlNTef3112nWrBnDhg3jq6++wtvbm0WLFrFv3z4+++yzGztRgmqnb9++tG3blkuXLvHoo4+yaNEiDh48SHx8fLl7u6CggIkTJ+Lr68vixYur5fiXLl2ia9eunDx5ktWrV1NcVExWVjYtWrRg4sSJDBkyhIsXL5KWlsYDDzzAW2+9xVtvvUVxcXGlzWmVklUVlUa807hRvVVVtm7dysCBA9VSiAUFBXTr1k11lnt7ezNy5Ejq1q3LO++8Q2xsLBs3bqR3797079+fefPmsWrVKjZu3Eh0dDSJiYkcPnyYs2fPsmjRIjw8PFi4cCFNmjShQ4cOfPDBB+TnX5ufJSoqiuPHj9OpUye6dOlCeHh4lbft27cvbdq0oUWLFhQXF6PXG647KrywsJAPP/yQ7t27Ex4eTteuXZk5cyZBQUH89ddfNG7cmEmTJnHgwIEqOSKscSufOQJzRowYQa9evSz2pAPw8PDA1tYWWZa5ePEis2fPZt26dZw9e5Z+/fqVy6xQHAWWHBLNmzcHSt83evbsSWxsLP7+/tTw8ABKSzM999xzGAwG3njjDfV5HxISgrOzs5lDQnEeK8cpKSkhLi5OLWMLpe8akZGR99y7hkAgEAgEAoHAnOt+65UkqUE1jcENqPvPv38BfgdsgdH/HKeNJEmKFd9yQ4U7FG9vbwIDA8nKyuLChQvlsiN+/PFHZs6cSWBgIL169brm/RcVFfHCCy/wxx9/4OLiwieffMJHH32kLm/dujUrV65kzZo1XLlyhUGDBlntY+Dg4MDnn39OQkICK1assLhOVFSUmp5/L7F9+3aWLVuGVqulVatWFBcX4+Pjc83OiLIEBwfj6+tLYWEhHh4enDlzhn79+jF37tw76kXr999/Z/LkyXTu3Bl3d3eCgoJo06YNgwYN4tNPP2XkyJGMHj1aXT8uLo5Lly4CVGhwcXR0pEWLFgwaNIj//ve/zJ07l3Xr1nH48GF+//137OzsePfdd822UQxAly5dYtCgQTz44IN06dIFR0dHgoKCGDZsGB7/vASfOXOG6dOnc+zYMR555BEuXLjAtm3b6N69O59//jmFhYX06tVLbR57N5ZDuVNxd3dn6NChVhvzKqXLVq9ezZYtW9iwYQNQ2vumqqxfv56ePXsiSRI7duzg2WefrdBQ6+joyMyZM4mOjmbjxo2sW7cOX19fSkpKWLp0Kd7e3rzxxht07tyZ+fPn4+joyA8//ICrqyt//fUX7dq1UxvDjh8/niZNmvDNN99cw1kR3Ao8PT3RaDQsXLiQK1eu8MsvvzBw4EBq1aqFp6cn7du3Z/Lkybzzzju0adOG06dPs2LFCrVv0o3y4osvcvXqVTZu3IiDgwN5eXm4u7szaNAgbGxsaNq0KT179uTs2bM0a9aMPn36MH/+fKDiXgyCinn55ZcxGo00adIEnU5H+/btadKkidk6dnZ29OrViyVLlrBjxw62bNnCF198wUcffcTzzz/P8OHDadmyJb6+vmqZGl9fXx5//HE2bdrEsWPHePvttwF46aWXWL169TWNMTo6Gih99rds2dKsr4Jeryc5OdmsjJ0pNWvWZPTo0eTl5ZGdnYPRaLzuhtCbNm3ipZdeIikpiTlz5jBq1Cg+/fRTrly5gre3N1u3bqVt27Y899xzQibvUnx8fJg2bZpVGcnKyiI3N5e3336bzp078+qrr9KzZ09++OEHjhw5QlhYGLNmzSIlJQVAzSQ1fUb/9ttvxMfH06ZNGwDef/99Tp48yZNPPombm3n2TnBwMC+88AJ2dnbMmTMHQC3zFR8fr66nyFtqairwb78L04CpkydPcvToUU6ePHlD50ggEAgEAoFAcGdzI2F4N1zbR5blEuB9YIgkSZ1lWTYCe4BjQBdJkhyBjkDiP+vfdW9OhYU6LlyIo1evXjzyyCNAqdH1iSeeYOzYsYSHh7NmzZoKyzhYY/ny5Vy4cIHXX3+d5cuXM2LECH799VfWrl1rtt6DDz6o1nsfPHiw2cuBKW3atKF58+asW7fO4ktzo0aN7sn0/G+++QZ7e3v0ej1LlizB39+ftLQ0a5ki19RQXafTqfWlAwMDadGiBUC5BpC3i/379zN58mQuXbpEly5dePbZZ1m8eDFr1qxh9+7dxMfH87///Q9XV1dkWeaLL75g7NixFBeXULduXUJCQq75mBqNhrCwMCZPnsy2bds4fvy4uqxbt240bdqUJUuWkJSURP/+/XFzc8PV1ZVatWqZlbBo3LgxP//8s1q+YPr06WzevJldu3bx6KOPqk0UFe7Gcih3K5mZmSxfvhwXFxciIiJ46KGHgH+NEJVx+PBhxo4dS0REBPv376dt27ZVPrabmxs9e/ZUnRd79uwhLy+PESNGqMYbLy8vPD09Vb3r4uJCixYtzBweKSkp1K1bt/wBBLedPXv24Ofnx6lTp0hMTGTbtm189NFHjB8/HkdHRzZs2MCLL75IZmYmmzZtok+fPtVy3Ly8PP78809GjRpFx44d2b17N5JUGo1sWidfaeZeWFioNoQFRCT5DVBYWAigOiGsZZtIksRjjz1GixYt1Ma9VSUoKIgZM2awbds2oFSPXQv9+/end+/ePPPMM3h7e9OhQwfGjx/PggULWLlyJdu3bzcLCikoKODw4cNqr6+QkBAaNmxIga7Uaa5kA0JpKagvv/yySuPo27evWgJ0xowZeHt74+DgoGaXubm5MX36dAoKCoiMjOTUqVPq+RXcG2i1WpYsWUJmZiZvvvmmWi5s4MCBHD16lP79+/Pee+9Ru3ZtnnjiCWbNmkXHjh3VrMfLly8zefJkmjdvzpQpUwDYvXs3rVu3pmnTphaP6e3tTUhICLm5uep3mZmZZlkXo0aNwsnJidmzZxMfH09AQABhYWEEBwdTXFxMXFwc9evXp0WLFlaPIxAIBAKBQCC4N6jQuCpJ0hJriwCPahrDbqA+MF6SJEmW5V3AakmSpgKBsix/UE3HueUYjUbOnYsGJJYvX44kSRw7doxx48YRExPDrFmzmDRpEg4ODte87/379/Prr78yYsQI1Vj3xBNPkJCQwEcffUT79u3p0aOHun6zZs346aefGDZsGEOGDGHr1q3UqlWr3H779+/PG2+8QVRUlJnj4erVq6xZs4aRI0feU0aVnJwcfv75Zzw9PXFwcKBdu3Y0aNCArKwsTp06Rbt27co2+q6yBV6n05Gbm0tISAhJSUn069ePzMxMatSocdtLchQVFbFhwwaefPJJfHx82Lp1K8HBwerysr6/zMxMnnrqKdauXUvbtm1p3LjxdTnRTBk/fjz/+9//WLx4sWposbGx4YMPPqBPnz6MHTuWn3/+GTs7O3x9fcnJySEnJwcfHx/15bp9+/Y888wzfPPNN2zcuJG1a9fi5ORksSyWJEk4O1d771WBBf744w9OnDhBREQETz31lOoETUhIqHTb5ORkhg0bhq+vL+vWrbuhkiJQmmlhZ2dXzpGam5trZtTMzc1VHV5XrlwhJSWF1q1b39CxBdVLdnY2u3fv5tSpU7Ro0UJtevrggw/y4IMPqk2EobS8iKura7U5f4uKihgxYgQ6nY5x48YBsG/fPuyaDS/XtFc5ZlFRkVnZnWstAST4l7INkitrZP7AAw/wzTffYDAYyj7DK0UJIrjW66XVavnhhx9YtWoVZ86cISYmht27d5tlWmg0Gl5++WXmzp3LqVOnOHXqFLIs07p1a7RaLUFBQWSkZ+Di4qyWuNu2bRsTJ07EaDQSGxtbaS8qBwcHPv74Yx566CHmz59PZGQkLVu2NHtmt2/fHoCNGzfSvHlzjEYjderUwcnJyer50uv1auPjivphCG4/f/31F4cPH6ZNmzZ06NDBbFnjxo359ttvmTdvHgsXLmTlypVIUul7ikajobi4mPHjx1NSUsLq1avVsqOHDx9mxowZFR7XxsZGLb9kMBhITU01Cw7x9vZm6tSpLF26lD/++IOBAwdSp04dkpKSWLx4MS1btqR169ZqVoZAIBAIBAKB4N6lMqvoJOAUcLjM5xDVVD5JluVC4FvgOPCSJElTJUl6lNIm1tY7Md8FLFu2jKysLOrUqUNISAiRkZF07dqVvLw8/vjjDxYsWHBdRt2kpCQ+/PBD6tWrx+OPP65+b2Njw5w5c6hTpw5TpkzhzJkzZtspTonc3Fx69epVrn4/lDokZFlm06ZNQKkBZffu3axatYrt27fz1VdfXfN471Ryc3Pp168feXl5JCcnM2bMGCRJwtbWlsaNG1NQUKCWYDDBco0aCyip8K6uruj1erp3766+zN9KMjMz+eGHH8jMzCQ3N5cNGzawfPlynn76aWrUqMFff/1l5owoy759+2jdujXr16/nzTffZNmyZTfsjABwdnbmiSeeYP/+/WoDeICuXbuyadMmEhMT6dKlC7/99htHjhzh3LlzREdHq7WO9Xo9BoOBbt268eyzz7Jz506++uor9u7de8vP8f1MXFycGo2u0KdPH3r27MmECROws7NTm59X5pAoLi5m5MiRpKen89NPP+Hj43NDY5NlmfXr1xMREVHOMG3qgFD+7+LiAsDBgwcBaNWq1Q0dX3BjZGZm8t1335GZmUlqaiozZsxg5cqVnD59ulw/prJ4e3tXmzNCr9czfvx4tm7dyqeffkq7du3Q6XQcOnQIB4fyx7DmkMjJyamW8dyPlHVIWCt9pNC6dWvy8/PLzYOqeiwXF5frciC5uLgwffp0li1bxl9//cXFixfJy8vj2LFj/Pjjj4wcOZL58+czcuRIateuTUREBI0bN1a3v3jx4j+O91IjbkJCAuPHj6d+/fpMmjSJt99+m+nTp2M0GiscR8eOHZkyZQpLly4lMjKyXJZZcHAwgYGBxMbGUr9+fdzd3cnOzq6wpGF6ejqJiYkVNpGH0myWffv2sW7dOrNoecHNR+nJkJqaSmxsLM8++2w5h6lCvXr1WLlyJTExMezdu1fNPnrttdfYt28fy5cvV7MEDx06RElJCR07dqzw+KYOifT0dIxGY7m+T88//zw2Njb88ccfREdH8+eff/LJJ5+wfft29u/fX+F8VHDnEBoaaqaXTT+WAt4EAoFAIBAIylJZiNNB4JQsy/vKLpAkaV51DUKW5UxJkj4HooAngEJKG1gnV9cxbpTKqkWVXX7p0iXmzJlD+6nv4ubmxu+//85jjz2Gp6cnq1atwsfHh6ioKBISEggKCrK4zytXrpSLAjQYDDz11FMUFhby0EMPsWfPnnLb9e/fn2+++YaRI0eycuVKPD091WWurq4sWrSI559/np49e/LLL7+Y1YytXbs2oaGh7Nu3j5SUFBYuXEiNGjWIiIjA0dGRUaNGVXqurpXKzq21l6kbITY2ljFjxnDkyBGGDx/OmjVr6NWrF1evXmX58uV4enoyd+5cPvroI1xcXExrVVfoxAsICOCVV16hpKSERx99lPbt29O0aVOioqLo1q0bq1evxtPTs9xvrugcmEb9Wlpm7fwoBoutW7eyd+9eNBoNHh4efPPNN/z11184Ojry/fff4+DgoDpPFE6ePElKSgr/+9//2Lp1K35+frz33nvUr1+fs2fPIsulhmLTRoRQ2gDRWp+SzMzMckakdu3a4ePjw8KFCxkwYID6W1q2bMkff/zB6NGjmTVrFm+//TZ9+/bFzs4OvV6PXq8nIyODtLQ0/Pz8GDFiBFDegCzLMsXFxVy5coXg4GDs7Owsjq0sN0smb4Ys38z9WkM5P9nZ2fTv35+zZ8/y119/sWLFCurXr09mZibDhg3D1tYWo9GI0WjE09OThIQEZFm2en5nzJjB3r17+fLLL2nSpImZfBUUFFg0MBuNMkVFRRadHadOnSI+Pp6hQ4eaOR/0ej0FBQV4eXnh7OyMJEnk5eXh6uqKJEkcOnQIW1tbtZnn/UBFMl/d8lXV6osbNmxg69atGAwGsrKyOHLkCDY2NhgMBlq0aFFuP4WFhVajuw0Gg1UHhSRJVsdkNBqZOHEi69atY/78+WpD2L///puSkhK0WlsMBgO5Bf8aXhW5zcvLUx0Szs7Od61D4mbpl2utwmk6DkdHR6uO58zMTLVk0c6dO83mWFeuXFH7icTFxREQEKBmfcqyrOoJFxcX8vKqFhNjMBgqPEe2trY0bNiQhg0bMmDAAFq0aMGLL75ITEwMP/74I46Ojuq5+P777wEJX18fEhISGDFiBHl5efzwww+Eh4fj5OTExx9/THJyMt9++63F4AAbGxs0Gg1vvPEGn3/+OVBaklOZRyjHatu2LYcPH6ZmzZrk5+ej1WqxtbXl6tWreHt7l7uXlPNdmcM/NjaWDRs2kJaWhr29Pb17967SebyXuVUVZ+Pj44mLi2Pt2rXUrFmTIUOGWDy20WhU5SE0NJTQ0FBkWeavv/7inXfeYdy4cTz88MOqQ2n79u0ANG3alNOnT1NiLL2HyjqnDAYDer0eSZLUeaWfn5+qY2VZJiAggGeeeYZ33nkHvV5PvXr1CAkJoVatWvTv37/K8zTB7cVSUJvCrZ6TCgQCgUAguDupLENiGHBMkqQHLCybXp0DkWW5WJbl7cBY4DFZlo9W5/5vJbIs88QTTwBQr159iouLefrpp7GxsWH58uU3FPX75ZdfcujQIbp27Wr1pdDNzY13332XzMxMZs2aRVFRkdny+vXr89NPP1nsKSFJEgMHDmTLli188803xMbGkpmZSc+ePZkxYwYBAQHXPfY7hdzcXNUZ8cknn3Du3DmaNGmiGjAU5syZw/z58ykuLubIkSMcOXIEoMI6Eenp6Xz11VcsXbqUrKwsevfuzYkTJwgICCA0NJSMjIxbHr3fvXt3OnbsSLt27bC1tWX79u3Y2dnx448/WuwBkZGRweeff87kyZPZsWMHgwcP5qOPPqJ+/frXdNyMjIxKewbY2dkxduxYzp07p2blKNStW5c///yT5s2b88wzz/DRRx8hyzLp6elkZGTg6emJh4cHqamp6HQ68vPzzV68MzIy+Prrr9m6dSvR0dFmTRMFN05SUhKjR48mNjaW+fPnc+bMGR599FF+/PFHoqKiVL2i0+nIyckhKCiIxMREq/tbsWIFK1as4Nlnn1UdTDfK5s2b0Wg05co/KEYW0+h1xSEBpdGgTZs2vWN6vdyPyLLMgw8+SLdu3Xj44YcZOXIkQ4cOVSN2lX48N3sMzz33HD/++CPPP/88kydPVpdFRkYCWDSeabVaJEmiuLhYlSlHR0f2799PcvIdE2dxV2GaHQGVZ0jUqlULd3d3jh07ZvZ9fn4+33//PUOHDqVfv37MmDHDosHWycnpppTYkiSJGTNm8Ouvv3Lp0iU6depkFljy448/4ubmioODIwsXLuTgwYMsWrSIunXrIkkSs2fPZvbs2fz6668MHz4cnU5n9Vhubm5s2LCBTz75hG7dupVb3q5dO+Li4jh27Bju7u54e3uTlZVFYmIiaWlp5da3sbHBz8+vXLmmoqIioqKi1D4U4eHh9O/fn4cffpiOHTty9epV3nrrLZKSkq73tAmqQHJyMj/99BOJiYns3LmT//znP9dUWuvq1atMmDCBevXqsXDhQrNl+/fvp169emYBTpawsbFR701F11nq97JgwQL69OnDpk2b8PX1ZezYsbzyyit06tSpyuMVCAQCgUAgENzdVOiQkGU5Q5blAuBzSZLUEHFJkkYDr9yMAcmybPinufVdidFoZPny5WzZsoW3334bGxsbYmJiyMvL4+OPP76uJsAKJ06c4JNPPqF37940atSownUbbPJ9CgABAABJREFUNmzIq6++ysmTJ3njjTfKvXAr5ZtycnJ4/PHHzV7uBw4cSGFhIV5eXvTu3ZsXX3zxnqm9n5ubS9++fVVnhCzLHDt2jKFDh5ZbNykpiSZNmvDhhx+qH0pLi1klMzOTn376ie3bt1OnTh2aN2/OiRMnaNasGcBtKdnk4eFBv379iIuLY/To0djY2LBmzZpyKdU6nY6lS5fSoUMHfvnlF7p27coXX3zBlClTrvn6K3Wu586dy8qVK7l69arVdXv27ElQUBBvvvlmuYwgLy8vfvnlF0aNGsXSpUuZOHEijo6OODs7Ex0dTXp6OnFxcZw+fZrc3FyzchO///47W7duZd++fXh6epqVATAajeTn51da9kJgnXHjxvHnn3+ydOlS5syZw/r164mLi2PhwoUUFBQQEBBAcnIydnZ2amNyayWb9u7dy/Tp0+nZsyfz58+vlvHJsszmzZtp3bo17u7mldaUSHXT75USTkajkUOHDolyTbeZgoICtFotQ4cOpUaNGvj4+DBkyBC1D09oaOhNH8Nrr73Gxx9/zNSpU3nmmWfMlkVGRlK/fn2L2WuSJGFvb29WssnBwYFLly6xZs0aoFQH5eXlCR1URa61ZJMkSTRv3pyjR48iyzJHjx7lhRdeYMCAAcybN4+SkhIGDRrErl271GtiiouLC1lZWZX2qrheevfuze7du3F3d6dnz56sWLGC3bt3c/ToUXx8fElLS+XTTz9l4sSJDBo0yGzbadOm8dZbb7Fp0yb69+9Pdna21eP06NGDiRMn4uHhUW6ZUsbJtBSnp6cngYGBeHt7W9yf8uzMz88nMjISnU5HTEwMZ86cITY2FiiV9fbt2zNw4EBcXV359ttv+fPPP8s15b7fn8NKE2el6X1V0Ov1JCcnm8m/ch5Xr17Nzp07WbJkCS4uLmYO1MowGAyMHz+e3NxcvvjiC5ycnMz2b6nslyU0Go2aIaY4JEx7SChotVpWr16tOj/S09NFEIBAIBAIBALBfUZVQ2eGAT9JkjQG6AxMAHrdtFHdxeh0Ot5++221fu+I19dQVFTIBx98QIMGDa57v0VFRbzyyiv4+fkxe/Zsfvnll0q36d69O0899RTLly/H3t6eWbNmmUVLNWvWjEWLFjFlyhQ+++wznn76aQA6d+5MjRo12LZt2z3VMwLg/fffZ+/evcyePZtevXpRr149atSooTYpVcjLy6u0RrklwsPDWbLk317wa9eupaCggObNm7Nnzx4SExOtvujfCEajEZ1Oh6Ojo5mBTJZldDodixcvZsGCBXh6evLXX39ZNE689dZbfPHFFzz00EMMHTr0umrA5uXl8eeff7J79258fHzo2LEju3btIjIykjp16jB06FA6dOhg1sjdxsaGCRMm8NZbb/H2228ze/Zss33a29vz9ddfU7duXRYsWMCYMWN48803yc3NpVatWoSHh1O7dm2MRqPZS7TSD6VNmzbUq1fPTPaVqH1A7RtQEbIsU1BQgJOT032Xim40GtXfrsjW/v372bFjB9OmTWPq1KlAqeFr48aNqsEvIiJCjd718/PDycnJaoTsiy++SElJCTNmzLjmBrRlSU1N5eOPP2b79u1cvnyZuXPnllvn/PnzAGb3QX5+Pk5OTiQnJ5OdnU1MTAx79uyhdevWZvIquDUo97LpPV2vXj2MRiNeXl4VlqurDj799FPefPNNJk2axNy5c82OtXHjRv7++29GjRpFlpXttVoter1e1S9KJoXi/C4oKFAzdaqig24Flu71W4nBYCAtLc1iuSDl/J07dw6ovB8NlJb+++CDD2jWrBmZmZk4OjrSo0cPxo0bR7NmzZBlmbS0NN566y3q1Klj1sRe6a/k7u5OQEAAwcHBBAcHExISQlBQEC1btqy0nn5l1K9fn927dzN+/HieeOIJNevHx8dHzVp4+eWXLW47btw4QkJCmDhxIg899BC//fYbDg4OpKamkpSUpPZdSU9Px2AwMGHChHIZru3atSM4OJiTJ0+qwRJOTk5qRLuleYXy7Dx37px6LZo1a4YkSYSFhVkc69ixYykpKWHixIlm35s+h++VoJdr4cqVKxw7dowdO3YwfPhws7KCltDpdOzYsUMtOaZcJ+U8Dhw4kOLiYl555RWefPLJco74ivj111/Ztm0bn376abl3lZiYGLKzs6vkkLC1tSU3Nxej0ajqN2ul6tzd3Vm3bh1t27blueeeY/369ffd/EogEAgEAoHgfqZKb5yyLMcBo4C1wFCglyzL1kOy7mMcHR1xc3PD29sbjUaDrVaLLFOlcjcnTpxgyZIlvPnmm7z00ku89tprPPbYY4wYMYIBAwYQHx/Pyy+/XOlLiykTJkxg0qRJ/Pbbbzz//PPlGhYOGjSI7t2788EHH6jNgm1tbRk8eDC//vorFy5cqDQS8W5iwoQJhISEsHz5cmJiYpg2bRqZmZn8/PPPZuu5uLjw4Ycf0r59e9q0aaN+roUffviBFStW0LFjR1xcXOjTpw916tShX79+1fmTgH9fSMuWb9DpdLz55pu8+uqrDBgwgD179tCwYUOL+1CydxYsWHDNzgidTscXX3zBe++9x+7du+nUqRMvvPACw4YN44033mDgwIFkZWXx7rvvMnbsWJYuXUpcXJy6fZcuXRg7dizvvfeemUNHQZIk5s6dy48//sj58+f5z3/+g5ubGw0bNqR+/fpq1oTpy6ynpycTJkygUaNG5coWKPepqbGzIgoKCsjJyamw4ee9iqXf/uuvv6LValmwYIHZup07d1YzJZ588km8vLzw9vZm48aNbNmyhUmTJlk8xhtvvEFQUBCDBw/m3Xffve6o5KSkJEaOHMl3331HeHg4b7zxBhMmTDBbJzc3l5UrVxIWFmaWaebk5IROp8Pf359FixaxZ88eRo0axddff31dYwERBX8jSJJU7p62t7dn3LhxxMbGsmLFipt27D///JNnnnmGfv36sWzZMnUMsizz/vvvM2XKFBo1asSzzz5rcXvFEezo6Khu6+HhgY2NjWpod3JyuiYddCu43XouLS3NarmgoUOHUlRUxKFDh/D39+f48eNq83lrDB8+nMDAQCIiInj33Xc5fPgwc+bMoXnz5kiShEaj4d133yU4OJgnn3yS48f/TYD86KOPWLp0KTNnzqRLly7Y2tpy9OhRli1bxnPPPUe3bt2YMGGCxbFeCzVq1OD333+nZs2aHD16lNDQUOzt7QkODiY7O5t33nnH6rYjRoxg7dq1nDt3jpCQEHx8fGjUqBE9evRg2LBhPPXUU7z88su8+uqrNGzYkJdeeslsvLa2tnzwwQccOXKEDz/8UO2lAaW6KzU1laysLLN5hfLsbN26NS1atFCj2hs1amTVcevv789LL71UziGi7Mv0uPcTfn5+xMTEEBUVxe7duytd/8SJE8TExJCYmIibm5uaKaGcx9q1azN48GD0ev01z1eV+ZilPnExMTEAVueOptSqVYucnBwOHjzI0KFD8fX1ZerUqWo5r7LUqVOHiIgIsrOzzeaEAoFAIBAIBIJ7nwodEpIknZQk6YQkSSeAnwBPoDZw4J/v7nt0Oh0HDhxAp9Oh1+tJS0ujQYMGnDlzBgAXl1LnwdmzZyvcT0JCAk8++SRfffUVmzdv5uTJk2RkZKDVagkJCaF9+/a8/PLLtGvX7prGJ0kSTzzxBC+++CIHDx7kqaeeKteE7tVXXyU3N5f3339f/W7MmDHk5eXx3XffqY6KshiNRjIzM4mNjS3X3PhOpXbt2uzYsQNHR0eGDx9O3759adOmDR9++GG5F6bx48ezYcMG/vjjD/VTGRcvXuTRRx9lwoQJfPnll3Tt2pWHHnqI+fPnU6dOHZYvX24xqjI/P5/du3dXWrO6pKSEuLi4cufb2ov9ypUrefvttxkxYgTfffcdtWvXtrpvpcb0jh07Kv2dCgaDgV9//ZXBgwezbNkywsLCmDt3LmPGjFGjfl1dXenXrx/PPfccb7/9Nu3bt2fr1q3MmDGDQ4cOAaVy+sEHHzBkyBBee+01q8bGRx55hN9++42kpCRmzpxZ5RrfZcscaDQanJ2dqxwFfCcaD28Vln77hg0bePDBBy1GYHbp0oUvv/ySXbt28eKLL6LT6Zg2bRoNGzbkhRdesHiMLl26cPToUQYOHMirr75K7969uXTp0jWN88qVK4waNYq0tDRWr17NF198wZgxY8pFWq9atYrs7Gz++9//mi1zc3MjOzsbSZKYOXMmBw4cwN3dnSeeeILnnnuuXC+eqnC7DbxVpaio6LbpcIPBQHJyskUnlKVlEyZMoGvXrrz00ks3pSb95s2bGTNmDI0bN+abb75RZUSWZd544w3ee+89hg8fzk8//WS1H5ROp8NgMODq6qqO/YEHHuDSpUvExsaSnJyM0WjExcUFjUZzzY4rvV7P1atXqz1Y4HbrOW9vb6vlgqZMmYKnpydhYWFcvXoVX19fNm3aVGFj1ZCQEA4cOMA333zDqFGjLAZzeHp6snLlSry8vJg6dSonTpRObcPCwpgyZQrz58/niy++YOPGjURFRZGdnU1iYiJz587l559/Vstf3kjTYltbW9W5pThJg4KCmDRpEp999lmFmap9+vRhx44dvPjii7zzzjusXLmStWvXsnfvXs6dO0dGRganT59myJAhLF68mIYNGzJv3jy1zNOQIUOYMmUKixcvZtu2bUDpfXfx4kUKCwvRarVm8wrl2ens7EybNm2q5EywNm8xfQ6bzqXvFy5duoQkSYSHh9O5c2er50khIiKCiIgImjRpwokTJ7h8+TJXr17l/PnzZGRkYDQaVZ3o7+9/TWNJTk7G2dnZYraW4iiwlgFjSoMGDbCxsWHDhg34+Pjw+eefc+rUKYuZigqyLKPRaKqU+S0QCAQCgUAguHeozBrXHxhg8mlLaakm5f/3PSdOnODIkSOcOXOGjIwMkpOTCQ0NJTY2lsLCQvUF+PTp01b3YTQa1ZIQv//+Ozt27OD333/nww8/5LPPPuO9997jtddeY8iQIdc9zkceeYR3332Xy5cv89RTTxEdHa0ua9iwIWPHjmXlypXqi0eXLl0IDAxk27Ztanp4WXQ6HWfPnjVrYHu9GI1GLl68yLJlyypthHyj1KlTh7Vr1+Lo6MiIESMYNmwYSUlJrF69+ob37ejoSLNmzWjevDmPPvoonTp14vXXXyc4OJht27bRtWtXizVyjxw5wvbt25k/fz4pKSlW6yrHx8cTGxtb7nybvtiXlJQQHR3NkiVLePbZZ3n44Yfx8/OjZcuWaqSbJcLCwggKCmLnzp1V+q35+fmMHTuWBQsW4O/vz4oVKxg3bpzVF2GNRkNERATPP/88X3/9NaGhoSxYsEA1ANnY2LBs2TL69u3LrFmzmDt3rsUX8/bt27N27Vr+n72zDo/iavvwvZuNbJQIECFICBocgru7u7W4FChQpLRQKBQpFLcCxa1IcdegxT1oEghJiBH3ZHfP90e60yzZTQKlLX2/va9rL8jOzBnZM2fmPPJ7/Pz8aNOmDQkJCaSkpHDr1i2DxoyoqChCQ0OzOePyir5o7f8vyOVyyXAKmcaJx48f06ZNG4Pb9OzZk3nz5vHrr79SrVo1AgMDJek4Qzg4OLB582bWr1/Po0ePqF69OocOHcrTMaalpdKjRw9iY2PZunUrVatW1bvey5cvOXnyJJ06dcLT01NnmZ2dnY60RKVKlSQn7qJFi6hRowaPHz/O0/Fo+bcNvHklLS3tg8fw9zGOaw3vGRkZkqMhp6h4fctkMhmrVq0iNTWVr7766oOOWR9ah1bbtm1xcXFh//79Osa5JUuWsHr1aj7//HMWL16co4xXYmIigI5DwtvbG4VCwa+//pptLHpfx1VO1+yv8O69/k+jLZqsT7bN2tqa0aNH4+/vj7u7O5GRkdjY2LBr1y5iYmL+0n4LFizIxo0bsbKyok2bNjkGkMhkMpycnJg6dSrXr1+nSJEi9O/fn65du/LmzZsPPoZBgwbh5uamE7AwY8YMmjZtyrRp0zh//rzBbStXrszMmTMZO3Ysffv2pXnz5lStWpUiRYpgaWlJ8eLF2bBhA3fu3KFZs2bMmjULT09P5s+fT1JSEosWLaJ06dJ89tlnREZG8vbtWyIiIggICCBfvnwf1B+0QQDJycn8/vvvPHnyJMcxRvsurX0f+P9AdHQ06enplCtXDhsbG+n9LjAwkKSkJGmc1I6tSqWS+vXro1AokMlkmJmZERUVxY0bN7hw4QLh4eFSva53s1FyIywsTG/xaciUOHRycpLq4eSElZUVtWvX5siRIwC0bt2aYcOGsXjxYoN9WAhBSEgIFStW/CDHvxEjRowYMWLEiJH/JjnWkBBCvF+I6v8wQgg0Gg2pqalYWFhIE7SSJUvy8uVLPDw8JA3cypUro9FoePbsGaamCszMzLh//77eTIOXL1+ydetWbt++zcCBAwkLC5MmFG/fvjUYAfr48WODmQsAt2/f1vt91apVuXv3Lq1atWLWrFlUqFAByJRu2rt3L5MnT5YyASZOnMi4ceNYuXIlI0eORAihY1C0sLCgdOnSFChQgEKFCn1whKBWp3j37t1cu3YNuVzOsGHDUKvVREVF4eTklE1y569SpEgRdu7cSa9evZgzZw4VK1Zk+fLl9O7dm3v37qFWq1Gr1axYsYKXL1/mud2CBQsyfvx4AC5fvszcuXMpXrw4P/zwQ461I6pUqcKRI0fw8/Nj9+7ddO3aFfhTV1mlUhEVFYWzszMymQw3NzepT75rJA8ODmbdunUsWrQIT09PEhISWL58OQqFgurVqzN8+HDKlSsnZURkpUGDBhw6dIhmzZoZ1PJ/+fIlzzXFSUhIJDQ0lLZt21KyZEmePHlCQECAVMjwXUqVKqVjkKhfvz4HDhzg22+/ZdCgQdI99cUXX2BqasrKlSs5e/Ys3377LQ0bNtRpq2zZsqxatYqhQ4fSpk0bfvrpJ/z9/TExMZEKiAPS9XFwcAAyjd5Z++n/RwdDXjF0Px8+fBjIjMw1JK0kl8v56quvePXqFT///DOff/45devWRaPRoNFocjRw9ezZk9q1a9OjRw9Gjx5NixYtMDMzIyIiQu92cXFx+Pr6EhERgZeXl16JE21mxpEjRzA1NaVDhw5SIVG5XI5KpcLGxgZ/f38dw7pCoWDFihW0aNGCwYMHU716ddauXUvPnj2lqE5D105bgFd7D+e136WmpvL8+XNKliyp14Hzd/RZc3NzSbLtfdBq8GsNsVkNWvpqPGgN7ykpKVKEtnZczDo+aq9V1mXa74QQlCxZkilTpjBjxgz69+9Py5YtgcxIbEN9MjU1Va+TNyMjg0WLFrF48WI0Gg1ff/01w4cPx9zcXHIa9OzZk0uXLlG6dGmsra358ccfpe3TLMojNzHRMUZr6xuoVCqpP9nY2Eh1VqZOnYq9vb2UVeng4CBluAkhcq2Poe+6ZOV/dVwbPXo0P/30EzY2Njg4OJCUlIQQQnqWazO2cjJq79q1i4CAANRqNcHBwdjZ2Um1ZFq1asWhQ4do3rw527dvp3DhwtJ29+/f58WLF9y9e5d79+4hl8uZOnUq8+fPZ9++ffzyyy9UrFiROXPm0K9fP53fIKe6OCqVChMTE5RKJU+fPsXc3JwpO/6UolqxYgVdunRh+PDh7Nu3T5LNiYmJMThGJyUl6Q0kcXFxYdWqVXz55ZfMnj2bKVOmsGTJEnbu3Mkvv/xC48aNGTBgAAcPHiQwMJD09HRCQkKkzMqcxu53l0VFRREWFkZQUJBUSyWn90Ttu2iFChX+UrbJv0nWGizv3oP6zsnLy4vXr1/j5eUF/CmbaW9vn22c1BaGlslkFC5cGCsrKywsLIiNjcXV1VUaZ7JmSOT0e2n7nRatQ0L73p11u6dPn1KkSBFpPDx79iwmlRwz/3/vrE67hQsXplGjRsycOZN79+7h7u7O5MmTJcnGe/fuZeubGo0GBwcHoqKieP78OeXLlzd4jY0YMWLEiBEjRoz87/Bxrbz/w8hkMqmQX6lSpaQX6pCQEORyOW/evKFcuXI4OztLBtHMgn9Fsba25mlAgF65nEuXLvHbb79RtWpVmjdvrjOJSU5ONhjldOrUqRyPVzt50Ye3tzcBAQFMnDiRb7/9lsaNG1OgQAF69+7N+vXr+f3336lTpw4jRozg1KlTfPPNNzRo0IBy5cplm2Tb29tjb2//XhPIhIQErly5Qp06dbCxsUEmk2FpaUn37t2xsLCgS5cuyGQyoqKiJCPP+6af54azszPOzs5cunSJSpUqkS9fPu7fv8+hQ4ek3/bMmTNcvXqVSpUqSdGwuUmEREREsGTJEjQaDefOnaNWrVocO3Ys18gyGxsbJk6cyK5du+jWrRvW1tZSYVEhhFSoMjExkRcvXuDk5ISZmZlk9MzK/fv3Wbp0KYULF6ZQoUL4+PhQo0YNqlevzpYtW1ixYgVDhw6lV69e2Y6jQ4cO7Nixg8TERB19fS337t1jzZo1ePX8DktLJe3atZOi9IAcU+6jo6OpVq2azneNGjXi1KlTbNq0iUqVKlG8eHHMzMwYNWoUFSpUYNGiRYwYMYKlS5fSokULnW1btGjBkiVLGDNmDHPmzOHbb7+VzrdAgQK4ublJ/cvU1NRg9J8+/lcNeh+Do0ePUqpUKUqUKGFwHW2/XLp0KfXr16d169bSNZXL5QaNJFpDTqlSpZgzZw5t27bl9OnTdO3aVa9x/vnz5zx9+hSNRoNKpdLRgM9K48aNSUpK4rPPPqNz58506NBBWqZ1Wtna2hIfH6/z22v/365dO+7evUu3bt3o06cPDx8+5Pvvv/9bIsmfP3/Oo0ePAP4xw4y5ublUNPh90edQMIQ2U8TJyQkrKyvJ2WxofNdGzGdFLpcjk8n4+uuv2bJlC3PmzJHq8lhYWBi8d4UQ2QzDV65cYezYsTx+/JhmzZoxe/ZsihQporPOtm3buHTpEi4uLpQoUSJ7dlqZStjns6dxiSbSd1rZu8aNG0tOEBMTE7p168bgwYN5/fo1BQoUIDIyUq8zR4s22007dmrlcfRdl/8iOY2z+t4pHBwcGDp0KMuWLePIkSP07NkTBwcHIiIi2LhxIwsWLODzzz/n4sWLBtt9tybMu7/npk2b6Nu3L59//jkTJkzg/v37XL9+nadPn0pBGeXKlSMgIIARI0bw/fff061bN4YMGcLIkSP54osv2L9/Pzt37pSckTndWyYmJtJ1eFf+yNnZGRMTE44dO0bt2rWlcytatKjeYISs5BTEUblyZfbu3cu1a9cYMmQI/fv359KlS8ycOZOvv/6a1atXM3z4cIKDgylUqJDO2G1on+8uc3TMNFjb2NgQHh6Om5tbjtdBqVTmqWjyp4zW4Qp/BpNkZGQQFBSEu7s7pqamOusHBwcjk8kIDg7G3t4eU1NTPDw80Gg0mJmZSeOko6MjMpmMt2/fMmPGDJo0aSI9w0xMTHBxcSEmJgZra2sePnyImZmZFHxh6PcyMTHReX6Fh4dTqlQp5HJ5tqL2r1+/pkGDBtL4HRwcjHOZzEyGsOBgnXZtbGwYNmwYM2fO5MyZMwwaNAhra2tWr15N69atGTVqFDt27Mh2XJaWlnh5eVGyZMn3vu5GjBgxYsSIESNG/pv8O3n5/1Gio6MJDQ3l2bNnUjSSp6cnZcuW1ZH/KFmyJHK5XJL3sLKy4vXr18TGxuq0l5GRwYYNG7CwsGDo0KEf1QgaHR0tSUCkp6frTO4tLS1ZtWqVpCWszYjo0aMH+fPnZ/LkydJkd926ddjb29OvX7+/pIOeVcP/ypUrXL58mStXrkjLZTIZRYsWZcyYMZIud0560h8LDw8PxowZw4ULF6hWrRpz584lPT2dxMREKRpx3LhxjBw5kpEjR+banlqtJj4+nsTERPr27cuJEyfylOYOmU6k0aNH4+zsnE02w9HRERcXF54+fcqVK1d0rl1Wzp49S69evahQoQIlSpTAx8eHSpUqkZKSwsaNG2nfvr00OTx+/Hi27Rs1aoSJiQn37t3T+T4hIYFly5bxww8/YGJiIkX0vo8RU1/ksqWlJU2bNsXU1JSvv/5ap25A/fr1WbVqFS4uLgwaNIjp06dLUe1aOnXqxNy5czl27BhLlizh8ePHXLx4kZMnT0qyaVrerSNh5P2Jj4/Hx8cnR7mmrCgUCnr06KFXuz03WrRogbu7O+vWrdO7/PHjx/Tt25e8Dpv79+8nPj6ezz//XO/ydyWb3kUrYTdo0CDmzZtHhw4d3ksqJikpifPnz+da96RkyZKUK1fuP2OYyUlm5120GSOmpqY4Ozu/d+abNgJZa7AbPXo0V69elWrR5JXQ0FCGDh1K8+bNSUhI4JdffmHbtm3ZnBH79+9nwoQJFChQgGrVquXZARUbG4tMJsPOzk4a90xMTOjQoQMKhYK9e/cCuT/jgoKCOHPmDOfPn/9/JWWTE+PHj0cul3Pw4EG2bt1KYGAgderUoVKlSgwbNox27doRERHxwe2XLFmSDRs2EBcXx7hx49ixYwd2dnZ0796dJUuWcPDgQRYsWMDKlSul96WjR49SokQJTp48ycKFCzlz5kyOmvnvi5ubG0eOHCE5OZmWLVtKWbR/lZo1a7J582YiIiIYPnw4w4YNo3nz5kyePJmnT5/i4eHxwY5KLWZmZhQtWvQvt/NfQJ9E38uXL7lx44beTFtDY71WglMbSKFQKAgNDaVhw4asWrWKLl26UL58ebZv346ZmRlmZmYULFiQly9f8uLFCymT9n0wJNmUlJREeHh4jvXH3sXT0xMPDw9OnjwpfVepUiUmTpzI7t27s8mjap3F5cuXR6VScebMGfz9/Q1muxkxYsSIESNGjBj538DokHgP3N3dcXNzw8TERIoIt7CwoFy5clIEvTZSt3jx4lJha22k1LtG3j179hAYGEjTpk0lyYCPhVqtJjU1lcTERGJjY7M5E2xtbVm4cCEVKlRg+fLlaDQayTFy8+ZNNm7cCED+/Pn55ZdfePLkCVWqVKFHjx4sXLiQixcvEhsbm2cDb1YN/zp16lC3bl29xZ2zojV0fWy5pncZN24cCoWCAgUKEBYWxq1btzh16hSJiYl07tz5vSZ2pUuX5vfff+f3339n8+bNegsEfggKhYKCBQtSv3596tSpo/faxcTESNr406ZN48yZM3h5eeHk5MSDBw/IyMhg9+7d9OvXj4IFC9K1a1dWrlyp46x68+YNDg4OUoQ2ZDrOxo8fz5UrV+jSpQsNGjTAzMw02/5z4+XLl3onmNbW1nTs2BETExOmTZumczyurq4sXryYgQMHsn79egYOHJgtcrZv377Mnz+fPXv2sGPHDmrWrEmLFi3w9PSU7kuVSsWTJ08IDg7+4DoSRuD3338nIyNDktf4OzExMWHgwIGcPn06mzZ7QkICn332GRYWFpKESW7s3LmTUqVKUatWLb3LbW1tSUlJybG4s7m5OWvXrmXVqlWcPXuW2rVr59n4eePGDX7//Xdu3LiR43rm5uaUL18+x3ob/9/QaDQkJSWRlJQkSZkAfP7551hbW7Ns2bI8t3Xnzh28vLzYvXs3EyZM4Pbt2zRv3jzbes+ePWPUqFHUrFkTb2/v98qGiYqKwtbWFhMTE2nMk8vlODg40KBBA0lfPTdnjru7O02bNqVRo0b/yD33X8DNzY1OnTqxceNG8uXLx7x58zh16hT29vYsXbqUy5cvM2zYMIMSmTmhdRaWK1eOo0ePsn37dm7fvs2WLVvo1q0bFSpUkAzrzs7OLFu2jMqVKzN//nz279+PXC5nxIgRfPHFF6xevZopU6Z8tOdN+fLlOXz4MG/evKFnz54fpU3IlIucMmUKJ0+eZM+ePaxevRoTE5M8BWC8S1an/1+t2/RfRF+tKaVSiaWlpd7i39qxPi/Omvbt2xMYGMjp06fZsWMHCoWCzz77DFdXV5o0acLo0aM5ceIEgYGBuLq6vtdxp6enEx0drTezWls0vmjRou/VZvPmzbl69apOXa/Ro0dTu3ZtRo0aJdXZASSZOrVazcmTJzl79ixnz5796DVyjBgxYsSIESNGjHxaGB0S74GZmRlVqlShcOHCUjr6u8TExHDjxg2Kdp9FQsUBPHwdTUSaKc1nHmFnUH4m7vmzWGL16tUpUKAA+/fv5+eff9Z5Qf+rvGu01WfUNzc3x8nJCVNTU2kC1bJlSxo1asS4ceOkOhTNmjVj8+bNlC9fnqtXrzJx4kQaNmyIi4sLI0eOZOPGjblmT2gj/B0dHbGxsaFly5YfFDX9d7Br1y5Jy1uhUFCoUCFKly6NiYkJu3btIjw8nOjo6BxrdvxTaK+dlZVVtsLXkZGRJCUlMXnyZMqXL4+JiQmmpqZSxklaWhr58uXD3t6e0aNH06xZM8aPH0+PHj3w9/dn7NixVK1alYyMDB0DnUwmIy4ujjZt2qCq8jkZNUaQrixAurIAocW7EVq8G+FFcq9xn1Ox1Hz58lGzZk290eNmZmbMnDmTb7/9Fh8fHy5dupRtnfHjx+Pp6cn9+/fJnz8/Xl5eOsU4o6KiSEtLw8zMzOC9ayR3qlSpQpEiRRg3blw2B+vfgdZQ864x59mzZ1QcspzyI9YRFC9wKFae5jOP0HzmERpM3Kq3reDgYCpVqmTQwZiRkYFMJstTpP+wYcMk40+7du14/fo169evz9H4Vr16dWrVqkX16tVzbf+/hBBC0vL/2CQkJHD8+HHCw8Ol7BVtrQXIzGoZPHgwO3fuJCAgIE9tHj58GJVKxa1bt/j++++lgIF3uXHjBiqViiVLluh9fqZU6ENK1SGoLAsSmW7GrpCC7AopyIFQJ3x9fSlevDjwZz0JFxcX0tLSePjwobQsN0xNTfHy8qJevXp6DZr/X5k9ezbu7u60bNkSLy8vxo4dy+HDh+nRowcnTpwgMTFRbx2t3DKa/Pz8JAeSi4sL3t7eOToGra2tmTt3LpaWlly+fFn6fubMmfTr14/ly5fj5eXFnDlzcs2MAui99Byt55zg4esYHr6Ood2Pp2k95wS9l54DoFatWkyaNInLly9/tPeRqKgodu7cia2tLZUrV2bdunUkJydTt25dLly4kKfjTklJ4datWwQHB0tOCO07n7W1NY8fPyY1NZX09HQCAgKyZTpq+TvHkn8LV1dXatSo8V5OgpSUFK5fvy4Z81NTUylWrBgymYxy5crRs2dP7t27x6FDh+jQoQPJycls3ryZSZMmIZfLmTlz5nsdo3buoS8wSjs+ao/lyx0PKdZvMUpnT5TOnhTrt5hi/Rbj3vV7ne0KFixIenq6ThCKQqFgzJgxxMfH4+/vL33v7OxMcHAwgYGB5M+fn8qVK9OkSZO/NTvaiBEjRowYMWLEyL+P0SHxnmgj1Q1F7YeEhBAQEIDMXH9kfHzqny/nnp6eTJ8+nQ4dOnDhwgW++uqrj2bks7Ozw8HBAScnJwoUKKB3Up2YmMiNGzfw9vbW0Qjetm0bzs7OdO/eXYr+7dmzJ3v27CEoKIjQ0FCOHDnCsGHDuHbtGsOGDcPZ2ZmePXty6NAhvZPN3K7bP01ERARbtmyhR48ejB8/nooVK3Ljxg2mT59O4cKFKVu2LEOGDMHPz4+JEycyduxYxo4dC5Dv3z3yTFJSUoiPjyc1NZXU1FQeP34sTeIzMjIoVqwYderU4d69e9jY2EhOic6dO2NiYoKFhQX79u1j3rx5HD16lLJly7JmzRoGDRqEr6+vThFphUKBk5MT0dHRpKj1G3M1Cotcjzk3GYHXr19TuHBhg+sMHDgQV1dXFixYoNdgoZWQyhoxr1arCQ8PJ1++fLi7u1OmTJlPpg/+F8mfPz/nzp3D2tqali1b/iUZGSEEN2/ezCZll5Xbt2/j6emZrQjmy5cvMbfJXrQVMPh9WlpajsbF+Ph4bGxs8hwJ36BBA3bu3Mnt27f54osvOHnyJAcOHDC4vpWVFY0aNTJoAP+votVN/yuSfoa4fPkyly5d4s6dO9ja2mJlZZVN33zixIkoFArmzp2bpzZv3bpFuXLldGQW9REQEJBzsW9TS71fp2lMiIuLo2rVqgCS4c3T05M9e/YQERHBqFGj8nSsRvRTuHBhzp8/j6enJx07dsTBwQGNRsPJkyepXr26pKX/LtrnoCESEhKyycnkhomJCc7Ozrx+/Vr6TqlUsmbNGm7cuEGDBg347rvvKFmyJKtWrTJojAeITdK/LOv32mfzzZs39a77PsTFxdGtWzcCAwPZtWsXFy9eZN68efTt25eWLVty/fr1bHJo2mylrMEQDx484N69e4SGhkqBJ9p3vpcvX/LkyRP8/PwIDg7mwYMHrF+/XirWnJW/cyz5t3gfSTstDx484M6dO9Lz9fnz51StWpXU1FRmzJgBZAaKtG3bll9++YXff/+duLg4goODef78OU2bNn2vY9Re76xSU1rc3NyQy+VS/45P0Z8RrVDqSpNq23zXkaqVxct6v5QtWxZ/f38eP35MyZIl6dKlC8WLF3+va2bEiBEjRowYMWLkv4fsvxSJJJPJ2gK1ARvgeyBOCGFYX0MPzsXKiH7fb3jvfef1MqWnpxMeHk6sMGx0Klnwz5f+mJgYTEwUpKamEBLyhoyMdIoV88Dc3Jzk5GSDUZFaOShD5CSpY21jQ2H3wrx584aIiAhKlSqJUpl5TDKZDBsbGxITE7l375406fzTRiz74/8yLCwsKF68OHK5nIiICN6+jSQjQ4VCoSB/gfx4FPNACM0fhfw+vD7GxyitIUSmsSE6OoqoqGgSEhKAzAjsfPnyER0djaWlksqVKxMe/qcEi0qlIjHpz8yVI3MGqIQQBi/uh/av3I4981+BSpWBQmGKTKYtxisnJSWZpKRkTE1NuX//PiVKlMDV1ZVXga8IDgpGoTDBxdUVWZbfwMTERIrYS0iIJywsDFdXN8lY+m6k96tXrxBCg0VBw0Y8s5QIwsLCDS63tLQ0mBWjUCgIDw/D1taOQoUKZVtuZZXZP8PDIwgICKBMmTLky2f3577NzLh//z5CQMWKFcjIUGFqqiAjQ0V6ejrm5maYmmaXRfjUalf/9Fnt20KIavqW/R19KydyGvNSUpK5f/8+Go2gYsUKeozsOV1YQXR0DIGBgcTHx+PsXJBSpUrrXfPatWvY2dlRpkwZUlP/lH54/fo1aRaGjYvRL3WNkXXr1uXatWvkL5Cf4h7vRqdn6lc/e/aMmJhYatb8s7CqEDkV3hWAjDdv3vDixQvs7Ozw8vLKVrhUHzn1u9yeNR/aZz923xJCkJGROR4JoUEuz5vxKNOgmYiVlTUmJvqdP9proFariYuLw87OLkfj1Au/F4S+CcXb2xsLC/1OJ21dpN9/v0b+/E54ev5ZlD0jIyObI+rp0yekpqZRqVIlnj9/lr09G8MRzzGvHuLp6YmJiYL4+DgiIyOpXbsOd+/eQaVS4e3t/ceauj9m3s4387prn6sqlYro6CgcHBwlZ+s/Pa79HeNWTveB9r1VpcrA19eXuLh4TE0V2NvbU7p0Ge7du0taWjqlS5fS2U6j0fDw4SN9TQKZzyEhNJQvXyGbjE5SUpJBZ/arVy9RqdRUqVJF7/LExAQCAl4SFxeHhYUFLi4uFCiQHwsLiz/GmMz1Hr42nMFRvrD9H+cguHLlCgULFjAoo6NWq3Mch2QyOenp6fj6+pKcnEzp0qURQvD06VMcHB0o5+WFEIK4uHjMzMywtFQik8n/2L8alUqNQmEi3fMajYaEhHhAho2Ntc5YoNFoSE1NwcJCiUwGoaFhJCcnkS+fvd4IeI1GnWV7wcLP69wXQlTSdx7/9DMxNz7WdEo7RiqVSpKTk5HL5aSlpRMUFER8fBze3t7SO3suR4ShZ3FmwevM/ycnp3Dz5k1Kly5NwYIF/nCa/bndnTt3sLG1oYRnCZ6FGc7kTgnzw9LKklIlSxEYGEhoaCg1a9Z8Z78afv/9mvSeCpkBQk+ePKFixYpZsjR0x7m/Y0zLadwCqFatmnjf+kR/JzKZ7KNmD03c8jsAC/rrl7H8K3zsY/0vIpPJcuxfRowYMWLEiBH4z4QKy2SyqsDPwEigI7Ac2CWTyc4LIbKHWuluOxQYCuDg5pHDpMHwy7vhZQKNRiMZM+Li4khPTwNTww6JzBTmzLY0GoFcrsHc3JzChd15+fIlwcFBFC1alIyMdFTqDyvAm+OLoMicXEdGRmJvnw+FwlTSTRdCg4mJCXK5nJIlS/4hkyEQQEZ6hmScEwgS4hN4+PAh+fLlw9XVFQ+PYsTGxhIZGUlYaBgJf0QcOzu7YG1t9cc1+nizipxOUa1WI5NlXoc3b0IJCgqSztHW1gY3Nzfs7OywsLDA398PjUZDkSJFSE5ORqVS/WF4ECQlJ71bIyPk3X3p9q+8SXF8CCpVBmlpmZGSpqZmyOUmCCGkOgkmJpm3s0ajyfz9BeSzz0fU2ygS4hN06lkkJydLRdc1Gg3p6Wm8fPUS+R9GBzs7u6y7xsRETlJSKjnlQaSkpOawNBND8g9KpQUqlRpTM1PUevq8tji1jY0NJiaZDjCt4VEmk2NqaoaJiQlpaWnExydI96NCoUAmA4XC9A9Dx8ftg3837/atD53fGZrM628v65imf0MLCyVFihTl1atXPHjwgAoVKupEV+rfnyAqKprAwFckJCRiYWGOjY0NkZGRkvFWCI20z4yMdNLS0rC2tkYIoaNFHRsbi9I552jnrGg06kyDNDI0Gt06JkKAXG4iGdmyXpOsRptsZyNAJhO4urqQlp7G68DXBL4OxFOS4zFsCEpNTcXc3AK5/N/ri3913MrI0B2PckNraExKSiQhIdOoZWNjq3ddITQkJ6dgYWGOubk5cnmmcSMtLRVzc3PJOKqlsLs7oW9CCQoOooSBzIfMukppqFQqrKysdKRE0tPTszkkkpNTUCotSE9P1ztuKXNQHFQqlajVGoRQkZKSglKpJCEhnvj4hBwzM2JioomMfItGo8lirNW9H9+97tHR0cTGxgEyvRrw/wZ//zMx831MCChcuAgPHz7EwsKC6OgY6ZkYH59AcnLKe2XEKZVKEhMTef78WbZsCplcjtJCf4CIiYmCxMQkVCr98TGWllaUK+dFTEwswcFBvHz5kpcvX2JjY4OjkyMFCxTItY6AdlySyWTY2toQHx9vsOivWq3O0YGXnp6Gr+8jMjIyKFu2LDKZDF9fX2xtbSnuURyZTI5MlvlczszClGNuboZMJkcul2NikplNK4QgPT0dlUpFWlq65NjLGnggl8uxtPzzfbhgwQLExMRib59P77FldWb88c6m41n5p963/g2yOmttbGxJSIgnLi4ec3NzbG1tKF7cgzt37hIVFU2hQpnP26zPzHcRQmAo4S/rHCFrnZvMWg4aHUe8ubkZaampOlkx+sjIyECjVqNWq1GpVMjl8mx9NHP8lv3xTpd5DJaWmfdVenq69J72vs8XI0aMGDFixIgRI/89/jMZEjKZrBfQTAgx8I+/hwHVgMPAMUAt8nAyXl5e4ubNm5IRNyuZxifdF/uUlBR8fX3x8vLSm86sLbJpY2ODlZUVsbGxnDx5kk1++g0tAANKJFC3bl1sbGxISkrSMRT7+PjQsWNHevXqhaenp8Eot/Dw8ByLXBYsWNDgspSUFNauXcu1a9c4ceKEzsQ7KCgIZ2dnvdvdvHlTMpJkGrHT2bdvH7/99htKpZJ58+bRu3dvZDIZZ86coX///hQsWJDmzZtTt25dGjdujIuLi96236dwtJacJkdJSUlcv36dcePG8ejRI5o0aUKfPn1o3LgxTk5OPH/+nP3797N27VrCw8OZOnUqPXr0kI5FLpczePBgrl69+m7Tj4UQXob2+3dGVGnrXDg5OUlGlqyTvcTERPLly8ePP/7IV199RXBwMJAp0xQUFISPj49kKOjWrRsmJibExsby/PlzafJYsGBB3NzcmD17ts6+d+7cyaZNm2g+84jB43N6uoP09PQs0b+6rFmzxmCRb0dHR86fP8+mTZt05KK0ZJV3mDhxIrdu3eLMmTOS86xMmTL069ePGzduMHnyZEqVKkWNGjVQKBTI5XLpPtXKvmj5kH73d5JTRJWXl5e4ffv2BxU7NnSe+oZM7bVSKBQEBARQoUKFbJlaQgj8/f3ZtGkT69evJz09nXr16lGiRAlKliwpfZydnRFCcOjQIWbNmsXdu3cpVqwYo0aNom/fvhw7dowBAwawYcMGPv/8c1QqlXSsx44do0OHDpw/f566dety48YN5HI5MTExtG7dOse+eG/FQJ2//fz8sLOzY9KkSUydOlVnmUajwcrKihYtWpCUlKSjBS+EMGjY00bca9cbP348y5YtY9KkScyePdvgdgEBAfj5+eHp6ZnnWgIfg5z61oeMW/rGI0MkJiZK959cLv/DiZW9X2VkZBAUFCSNS2ZmZqSnp0uZJzdu3KBGjRoUKlSIixcvYmlpSfXq1VEqlQwdOpQtW7bg5+eHm5tbtmOIi4tj9+7dDB8+nKtXr1K2bFlpWXBwsM7zXaVSUbZsWQYPHsykSZPw8PDI1l5O/a96+jU6duyITCajc+fO1K1bF1NTU/bu3UtwcDC2trbS+4ZGo5GcFkePHuW3336jU6dONG3aFEtLS0nGxtbWFmtra1QqFcHBwcTExFC6dGlSUlI4fvw4rVq1kqTN/ulx7WP3LcglqCJzn1IfbNWqFampqTx9+pSLFy/i7+/PgAEDWLBgQTb5mmrVqiGXy7M53SGziLiZmRnXr1+nRYsWOhkIDg4OdO/eXe+xbNiwgeXLl/P8+XO97b77HhcYGMiBAwfYt28fDx8+RCaTUb9+fcybTDR4vse/bSX9f8aMGcyePZuXL19ia5v9XTM1NdVgNuKdO3fo0qULQgiOHj2KTCajcePGFCtWjN27d+Ph4SEdb1JSErdu3aJ06dJoNBpJ0s7X15eiRYty9epVVCoVr1+/RqVS4eLiQpcuXfS+K38IKpUKU1NTgxkSn1oE+4ei7evXr1/nxo0buLm50a5dO1QqFXfv3sXFxQV3d3cUCgUuLi60atWKDRsyM0PeCZjJ1q6hsTkzaCdznLhy5QoNGzbk2LFjNGvWjKSkJJ3n18iRIzl9+jQvXrygy+ILBvd36ru2VKxYER8fH7744gsuXLjAo0d/ZiQJIbC1taVEiRLUqFGDbdu2AZlzEjs7Oz7//HO+//578uXLh4WFhfR8MTEx+VvGtNwi2D+1/mXMkPhvYcyQMGLEiBEjRnLnv1RD4jrgKpPJagMIIdYAd4C+gFVenBGQOVHLa/FLAF9fX+7du4evr6/e5ZaWllhbW6PRaKQ0eUOTVi29evXC3d2dIkWK0LRpU7p378748eNZtGgRBQsWZPLkyezYseNvKxr78OFDzp07x/Dhw3PVVM5KTEwM586dY9GiRXz++ecMGjQIJycnFi5ciLu7O1988QXt27fH39+fpk2bcvDgQWJjYzlw4ACnTp3izp07f8v5vEtkZCQjR46kWbNmxMbGsmPHDg4cOED37t2xs7Nj8+bNtG3bllmzZuHs7MzatWslZ4RKpWL9+vVUrlyZp0+f0r9/f8aNG8f48eMZP348wHtJhH1MFAoFzs7OBieYWkN1Wlqa9J1cLmfGjBlERkaybNky6XshBIGBgTx+/BhTU1PKlCmDo6MjoaGh3L59mxUrVkj1QwCDjqSPhbZgraenJ2/fvmXBggUG77nGjRsTHR2dTSPcxiYzatTb25sqVaqQlpYmOa2USqVOMdz/IikpKTx//vxv34/2Wvn7+3P79m3u3bunt9BosWLFGD16NEeOHKFatWr4+/uzYsUKhg0bRqNGjaQspKJFi9K5c2fi4+P56quv8PX1Zdy4cTg6OtKuXTtKlCjB5s2bsx3HrVu3kMvlVKpUSef7D9FOT09PRwiRaw0Jfca9vCCTyVi0aBHDhg1j/vz5ORYVdXd3x9PT03Btgv8IuY1HWbG0tMTW1hZLS0ssLS2pUaOG3nsxKCgIPz8/LCws8PLyokmTJnh5eVGyZEmd9W7dusXRo0c5ePCgNA6MHTsWtVrNTz/9ZPA4bt++jZWVFaVKlTK4DmQ6KFQqlV5HRF5o0KABkNnvXr9+TfHixXn06BFly5bN1se09YBSUlJo2LAh3bp1o2zZssTGxpKcnKxz7SDzuickJPDs2TP8/Pywt7end+/e2eqs/C+jVqsJCwsDMmsTdejQgWfPnmFqasrRo0fx8vLC3Nycu3fvZttWLpfnGMxQvnx5HBwcuHz5co71HrKifT4GBQXlaf0iRYrw5ZdfcuHCBS5evMiUKVN48+ZNjtusXr2an3/+GYB69eqh0Wi4ceNGnvan5ezZs7Rq1QorKysuX76MqakprVu3xsnJicOHD1OqVCnJga/RaAgPDycjI4OEhATpPffhw4fcu3ePffv28eTJEzQaDU2bNqVx48a0atVKb7DPh/LH2PJhacL/QSpUqICbmxsmJiYEBQWhVCqpXbs2xYoVQ6FQoNFoqFixIvfv38+2bUxMDJ07d+bbb7+VMkrzijb70ND7UbFixQgLC9PJUsxLm4bqJbm7u2erueLh4cH58+dRKBRYWlp+UO0NI0aMGDFixIgRI/8tPmnJJplMVglIIzOT47FMJrsN1JPJZNFCiKdCiNUymawOMBGYmlNbWiwsLHSMDIGBgaxevZoRI0ZQuHBhIDMq7M6dO1SpUgUvr8xgeO2/eo4RuVwuGRS0E11bpUJv8Tdrcznr168nODiY4OBgAgMDefPmDTdu3CAmJoYlS5Zw8+ZNrl69yrFjxyhevDgODg55vWS58ubNGzZu3EihQoXo379/nrbx8/Nj8uTJvHjxAsiU86lUqRJv375l5cqVVK1alXnz5uHv78/06dOpXbs2GzdupHXr1hw/fpwuXbpw8OBBJk2a9NHOwxD379+nSZMmJCQkMH78eCZPnixNikJCQmjdujX+/v6UK1eOadOmUadOHSnyKiwsTMqoaNGiBUFBQWzZsgULC4us0Vmf7OQ4U55IpuOQAKhUqRLdu3dn/fr1tGrVisqVK/Ps2TPi4uIoUKAAxYoVw8TEBHt7e9zd3QkODubYsWMcP36c4cOH065dOylrRiHSUcn01GJQ5X2iqo/Y2FiUSiWurq4sW7aMlStXsnLlSmrWrEnLli3x9vaWaktof7MLFy7oGKszZVESKF++PElJSSQkJKBSZdaQcHJy+s8XE1YqldkMs7nx8uVLli5dypdffpln42pKSqaetJeXFzKZDA8PD8lhlPUaag0GBQsW5OTJk0CmoTAwMJBHjx7x+vVrXrx4gb+/P3379kWpVFKvXj0deQhzc3M6dOjATz/9RFBQkI7jy8fHhzJlymTLqrlx40ZmRpqZjKT07H7ojKTsCn5ayZ2cjGXx8fEGNdnzgkwmY8WKFaSlpTFr1izc3NwYOnRotvVMTU3/0cyITwG5XG4wOyorWieNu7u7FKVdvnx5AIoXL46ZmRmurq7ky5ePVq1aYW1tLS2Pjo6maNGirF27lu+++06vgf7OnTtUqlQpVyOXNmihWLFiBtdJS4jRW0Bdk5qAvX3meJlZe0fg6elJTEwMJUuWJDExkdu3b1O1alWsra0lI6BSqSQlJYVSpUqh0Wgkw9y71y4gIIC1a9fSrFmzXAtz/6/y9u1byYDv7OxM+/bt+f777/Hw8GD//v106dKF8uXLc+3atSwSjJnI5XJUKpVeWSONRkNkZCT58+fn2bNn3L17lxo1apAb2nHr9evXlCtX7r3OpWTJklSrVo1vv/2WHgtPk67ntdzeykwqhD58+HBq1qyJQqHgwoULeS5gfO7cObp06UKZMmU4ceIEcXFxNGjQADs7O/bt2yc9X1NSUoiMjCQyMpIyZcoA4OrqSlxcnOSkk8vlFC1alCdPnlClShWsrKykZ25ycnKe7nUj2VEqlbRr146goCAdh7U2i0qj0eDp6YmPj0+W+gqZ9OjRg0uXLnHkyBEOHz7MxYsX9Wbr6ENbgNqQw15biPrVq1fkszQlNjl7XE5agm79k6SkJIMOjsKFC3Phgm6mRcmSJQkMDKRAgQKfXOaqESNGjBgxYsSIkb+HT9YhIZPJWgFrgYNAQ5lMNh1YD0wGOshksoJCiAvADSDPsx+lUqljlFq9ejU+Pj4AzJ07F0B6qU9KSqJly5ZUq5ZzxqVcLic4OFiavFlaWlI49BSLFi1i0JKjWFvb8H3XTHmlxMRErKxqSS/cWSWbTp8+TdeuXXn27BkLFiygRo0aBAYGfhSHREZGBvv27WPPnj2YmpqyYsWK95J+0UZGmZiYUKNGDZo1a8aLFy/w9fUlLS0NuVxOhw4d2LZtG3fu3JGMjqVLl2b+/Pn06dOH0NBQg46dvwMhhMGU4XeXPX78mFGjRpGSksKYMWPYuXMnKpWK/fv306FDB2m9d3XGPyWePHmCEEJvUehvv/2W33//nf79+7Nt2zbJcebg4KBjlLGwsCB//vwIIYiMjJTWK1asGAUKFOD2qhFUrFgRRZXMjJJ8r8/+5eNOSkoiICCA9u3bI5fLiY6OBmDy5Mns2bOHGTNmAODh4UH9+vXJyMjIdp5JSUns3btXMgZpJ8IJCQmEh2cW2s5Jxuy/gFKpfG+5pqVLl3L69GnUajUrVqzIcd2kpCRu3rxJYmKiJLPQsGFDhBBSpHZumJiY4OHhgYeHBwkJCVy5coVatWqh0Wgk+YWs46+FhQVBQUGYmprqGFeOHj3KpUuX+PHHH7PtIyoqikKFCjGpQea4uPFWHA8fPsT/wAKDx7Vjxw4AKleubPDctX1QH0IINm/eTHR0NIMHDzaYSSGXyylRIrNYclhYWDajkZGcMTU1Neg4MzU1pXDhwrx+/RpTU1MaNmwoySQuXbqUZcuWERYWhre3t0GHQ0REBHXq1Mn1OG7cuIGpqWmOmRQXFvQDoOm4Vbi7F+bSqrG8fPmSBQsWACVQqVTMnTsXa2trvL29efXqFV27duX48eNs3ryZzz//nK5duyKXyyVHn1KplMYpa2trvc+bRYsWceHCBUxMTGjXrl2u5/K/iFY6Uvtv5cqVqV27Njdv3iQjI4NZs2bRvn17vvvuOxYsWMDXX38tvXNpZcBiYmKwsLBAoVCgUqlQqVRERUVJ0efW1tZ5NugWKVIEpVLJ+fPnad269Qedk0wmY9dXzejYsSMJRZvj7e3NvD7e0niZdqmj5DC1srKiVatWrF+/ngEDBuTJ2bxx40acnJw4ceIELi4uxMTEkJaWRtmyZXFycpIcCUqlksjISPz9/bG0tKRcuXIkJSVJjh1HR0fputerV09q39LSEplM9tHkmv6/Ympqiru7O4GBgTg6OmJnZydlUWkdsOnp6fj5+UlzDsh8/2vfvj2mpqYcOHDAYH0RfWgzY3bv3q1XclM7Bzpy5AjrJ07ExsaGagMy50u3Nk7R26alpaXBmmEqlUpnjH758iUXLlygefPmRERESDJNRowYMWLEiBEjRv63+eSsq7JMrIHRwBdCiFHAEGA+4A3MBZTADJlM9iswgcw6Eh/EiBEjaNiwISNGjJC+0xoB8mp89vPz49WrV7x69QorKytJ1mj48OHky/dnBOWbN2+oWLEiPXv2lAosZ0Wr+ZuRkSEZWxMSEj701IBMQ9qDBw8YO3YsO3bsoEaNGixcuJBatXLWDBVCMH36dObNm4enpydHjhxh0qRJ1K9fHx8fHyZOnMjatWvx9vbmu+++Izw8nBYtWvDo0SM2bdqkYyh59uwZAFWrVv1L55ITKSkpkv722bNn6dWrF4sXL6Zq1aocPHgQIQRubm7cunWLVatWERMTw8iRI+nXrx/z58/n888/x8TEhBEjRrBmzRpsbGy4evWqjjPiU+fw4czbQJ9BxN7ent27d2NnZ0ffvn0pVKgQVlZWPHv2THIAqNVqAgIC8PX1RaFQ8NNPP0nnb25uzrfffktUVFSmlNhHkoZVqVQEBgZiZWXFrFmzgD+NTIMGDeLcuXP4+PgwadIkChQowLZt29i+fTtt27alc+fOUjtz584lJCSEOXPmcOfOHdLS0rCyssLJyQlXV9csBWL/f/Hll1/SrFkzrdxYjty8eZNr165hYmJCzZo1JcOETCbDysrqvaMWL126xPnz57ly5Qr29vYUKVKEmJgYHUPJs2fP2LdvH4MGDZKycFJTU/nqq68oU6YMo0ePztauubl5nqVUIDO69KeffqJRo0bUrVtX7zpXr14lIyNDktrJSkZGBl988QUDBw5kwoQJFC1alKlTp+pImmk5fPgwU6dOpWfPntSoUSPPEi65oVKpCAsLy1Ev/P8DUVFRxMXFkZGRgZmZGdOmTaNw4cJ88803VKhQgZMnT/L7778bdBjpqxOlj3PnzlG9evU8RXqrVGqePn1KaGgoS5cupX79+gCsXLmSBw8esG7dOt68eYNaraZ+/fo8ffqUyMhInj59mq0tbUFgrVa/PsaPH0+TJk0YM2ZMrsf2v4qJiYmOXJhMJmP//v24u7tjaWnJ4cOHCQkJ4bPPPpPqhty+fRvINPjmy5cPMzMzUlNTSUxMlCRu8ufPT/Pmzenbty99+vShdOnSeToepVJJ69atOXToULYMxfdBJpPx/fffo1KpCAkJ0Vn222+/sXDhQunvuXPnYmpqypdffplrsWGNRsPFixdp3Lix5GQpW7Ysy5Yt49SpU3Tu3JkzZ85ItaQqVKhA+fLlpQwcpVJJvnz5cHJyMnj/yGQyg040I+9HUFAQjx8/5tmzZ1J9GW39K61T6t3xo0mTJhw+fJjDhw/To0cPHB0d87y/UqVK0b9/f1atWsXLly+zLffw8KBBgwZs2rQpz44Od3d3goKC9PZNPz8/KUtQo9EwZMgQ5HI53377LW/evOHt27d5PnYjRowYMWLEiBEj/10+uZmDyCQRuAXYymQyUyHE70Av4EegihBiBtAP2A7UFUI8NNhgLhQpUoR58+ZJKcmQKQnTo0ePPEVSQmaqcZkyZfD09CQ4OJgBAwZQqlSpPyIlpfNizJgxxMfHc/LkScaOHZstel8bSZuRkYG1tTVmZmYkJia+9zlFRUVx5swZFi1axIABA5g2bRrp6el89913TJw4MU9a03v27GH//v3s3LmT169fI5fLKVWqFGPHjmXTpk188cUXLFq0iClTphAcHMxXX31FZGRktowCyNTtLlGixN+qce3r68vGjRs5fvw4hw4dYuXKlZw5cwZ7e3v69OlD/fr12bVrF3FxcfTv358jR44wbdo0wsLC2Lp1K0WLFqVjx4789NNPlC5dmt9//z1XnfFPjX379lGtWjW9BV0B3Nzc2LVrF3Z2djx//pwiRYpgaWnJs2fPePXqFffu3SMsLAwXFxd+/vlnSQpFS+nSpRk6dCgRERFSiv9fQQjB69evUavV1K5dWzIiaifSUVFRABQtWpQ+ffqwZs0aLly4wNq1a5kxY4ZkGAkKCmLRokX06NEDc3Nz7t27x8OHDyWD8f9nHeJixYqxZMmSPEXQent7U7NmTerXr0/Dhg3/cqRr5cqVqVixopSVEBwcjJ+fH8+fP0ej0SCEYMGCBcjlcr755htpu8WLF+Pv78/ixYv1ZhdoI5zzSnJyMlFRUUyfPt3gOj4+PigUimwOi9jYWNq2bcvPP//M4MGDuXTpEk2aNGHu3LkUL16cMWPGEBgYCGRmWfXr148qVarQr18/3NzcdGQ3kpKSOH/+vMGo0ZzQStT8rxtqhBCSfr0+HB0dJQdjr169mD17Nm3atOHOnTucOHGCJk2a5OpwyG3569ev8fPzo3Hjxnk65qSkRGQyGRs2bKBmzZoAXLhwga1bt9KtWzd69OjBlStXkMlk1KpVi8GDB9O1a1cGDRqUp/bfxcPDg8WLF+coJ/X/kQIFCnD8+HHMzc2xsrJizZo1FC1alK+++gp/f38GDx7M4MGDycjIQC6XY2tri4ODA/ny5cPR0ZF8+fLh5uZGsWLFPkjer1u3bsTGxnL27F/LGqxUqRJOTk6EhITkeL+7urryww8/cPnyZTZt2pRjm48fPyYqKkpylmkZMmQIW7duJSwsjM6dO9OzZ0/27duHEIJy5cpJ2RnaLB6js+Gfwc3NjSJFilCiRAmUSiVyuVySdNMGCjx58kRnmxYtWqBSqUhJSZHkvd6H6dOnY2Jiwnfffad3+cCBA3n9+nWe+3fhwoVJS0vT67j39/eXnF3r1q3Dx8eHBQsWULFixf/XASRGjBgxYsSIESP/3/hkJZuAMKAJcAjIEELckMlk/YDFMpnsvhDCHwj+mDvUOggsLS0lw5QQArVaTXR0NI6OjnoNm2ZmZhQvXpwXL17Qrl074uPj2bVrl1Q8MT09nRUrVnDmzBmmTp1KdHQ0q1atwtramuHDh0sGEm30a2JiIklJSVhYWBAeHi4ZvLKiVqslZ4VarebRo0c8f/6cFy9eSJNYW1tbypUrh5eXF7Vr18bc3JykpCSSk5OlqPh38fPz4+bNm8yfPx9PT09evXrFokWL6NOnDxEREdjZ2WFmZkajRo2ATE3un376CRsbGw4cOEDJkiWzZX/cuXOHRo0aGZRPAsNGopy2UalU0nZlypRh6NCh3L17lz59+qDRaKhZsyYbN25k1apVXL16lUGDBiGTyfD29sbb25t69epx+PBh4uPjpYKRzZo1Y+7cue9V7PvfRBvZ+eDBA27fvs2CBQuk7yIiIrIZEMzMzFi5cqUkDabV7X3z5g0WFhaULVsWGxsbYmNj9e6vevXq7N27l8TERORyGTExurrBMpks20RZi1qt1jEkR0ZGkpiYiLOzMzY2NpImuDZT6Pr161SvXh34U9vYwsJCyrTR3i/z5s3DzMyMGTNmYGpqilwux9nZmcjISCBnqSajVvGfWFlZ0bBhQ53vcpI804dWmsnBwYECBQrQoUMHLCwspAyllJQUrK2tefr0KRMnTuT48eOMHTsWV1dXNBoNz549Y+7cuXTs2JHatWvrFNF88+YNMpkMlUpFcnKyFEGclmaGEOiN3NRoNCQnJ9OmTRtKliypN+NMCMGFCxeoVq0aVlZW0rn5+/vToUMHAgICGDVqFPXr18fV1ZXdu3fz9OlT5s+fz5o1a1izZg29evXi6tWrWFpaMmPGDMLCwnBwcEChUEjt3bhxg2vXrgHkaOzWd20dHBxISkr6qPWE/m5yGrsNZSrEx8fz6tUrihYtqpPloFKpiI6OxsHBAZlMRseOHfHx8WHhwoVSpoBarUatVhsssp2UlCSt865T6MmTJ9JYuX79emQyGc7OznqLIr+LXG5CqVKlKFLECZVKxZs3b5gxYwalSpXiyy+/RAjB5cuX8fLywsrKCjs7OyZMmCA55QxdH33GX62skKF3kZy21fJvjHk5naeh49FoNDkeq75lJUuW5PDhwzRq1AgbGxt++OEHVqxYwZEjR9i3bx+bNm0iISFBqs9hamqq01+EENkyE7TI5XJevXqld5laraZ06dI4Ojqyffv2bLI3BQoUMHgeSUlJ2X5Ld/dCvH37lvnz5+tkRWQlPT2dXr168dtvvzF9+nSaNGkiZdampaXpyPudP38egFq1apGenq7TP7p06UKrVq1YtmwZCxcu5PDhw3Tt2pWlS5eiUCi4fPkydevWxcbGRqptoo+cJDIh536X03b/JfIy5mW9h+VyOSkpKZibm+v0gYyMDBwcHIiOjiYuLo6EhAQKFSpEeno6tra2uLu7SxKd2qyWrM+UihUrotFo9NZJ0aLRaHSWFSpUiC+//JJ58+YxePBgqlSporN+ixYtyJ8/P+vXr8/1OoSHh0vj971796SgBJlMRkZGBjExMRQvXpxXr14xefJkmjRpwoABA6S6VO9zXfOC8T3PiBEjRowYMWLk0+STc0jIZDLZH1kSq2Qy2S5gtUwmGwkkCyEuyWSyB0DexVH1YGiy/u5La3JyMjdv3iQuLk4qWmhoYvno0SPatWuHRqPh+PHjOi/zGRnp/Pjjj9SqVYuBAwcik2UactesWUOBAgWYMGECgJRKr5VIyZ8/PyYmJpJRNismJiY0bNiQjIwMvvzyS06ePIm1tTXVq1endu3aNGnShNKlS+t9Edc6FvRx//591q9fL0kB7NmzhytXrtCzZ09KlChBq1atpHW3bdvGvHnzKFOmDLt379YbsRkSEkJoaCje3t4ffVIgl8ulNi0tLWnWrBnNmjWTlpuYmFCuXDnGjh3LihUr8PX15dixYxw7doxVq1axcuVKnJ2dcXV15c6dO0yaNIm5c+f+p6IAtRPKzZs3Y2FhQZ8+faTv8uXLpzfC3NHRkT179jBixAhCQ0PZsmULhQsXxs7OToqI1Brz9fHVV19xMEBBcnIyXdq21cl8OX/+vMEMjUGDBtG4cWPUajVHjx5l/vz5tG7dmilTphAbGyu1o40yfvnyJS1atAAMF5c9efIkFy9elLKc/Pz8qFy5Munp6Zibm+Po6Pg/NRn92OfyV9p7d1shBIGBgZKTqmDBgjqRxubm5pQoUYIFCxYwd+5cZDIZixcv5osvvpDamjZtGpDpZHrXkFKoUCHMzMxwcnJCrVZLfcIiLIrSpUux7PjxbMe4aNEidu/ezXfffWewwGZiYiK3bt1iwoQJ0j4vXrxIly5dEEKwfPlyqlatirm5OWlpaahUKsqUKcOGDRuYOXMms2bNYseOHahUKs6fP0+lSpV4+PAh5cuX17lGZcuW5c6dO5QtWzbP11itVvP27VssLCxQKpWkp6djZpa9qPx/hYyMDKlgq76xKTk5WXKa29nZkZ6eTkhICAqFgqioKN6+fctnn33GgwcP2Lx5M3369NHZPusz4V20smOmpqZ6I+BNTU158eIFJ06coHXr1jrZLVllTFQqFbNmzWLLli20aNECjypVUCqV0rgzatQo5HI5Bw4coFixYmg0Gq5du0azZs2Ijo6WDG5yuRy1Wi0ZJw0ZeuHPorbx8fHvVRMnJSWFGzduSA56Q/fA/xJ16tRh27Zt9OjRAzs7OyZNmsSoUaNo0KABY8eO5bfffmPBggUEBQXh7e3N/PnzpQCURYsWGXz+azQaSVbuXZKSkrC3t6djx45s3boVjUaj846VUy0KExOTbPeClZU1BQrkZ8OymUyePFnvfm1tbVEoFKxbt47KlStTtWpVduzYQdOmTXF0dNRp8+rVqxQrVkzK+nzXwGtlZcWUKVP4/PPPmTlzJps3b+bkyZN06tQJW1tb0tLSqFKlCi4uLlK7UVFRHDp0iPbt27+XPND/B/SNcxkZGTpjGWTWKYmPj8fGxgZra2sSEhLw8fEhKCiIRo0aERISQmBgICqVipo1a+Lp6YlSqaRMmTI8ffpUGs9kMhkuLi5kZGToFHHPaTxUKBTZ+vrkyZNZt24dP/zwA8ePH9fZ1tLSks8++4zFixdz6NAhjgRmPodWDLum04a2mLU2KzMyMlJn3NE69Tw9PRkxYgRCCNatW5fj+GfEiBEjRowYMWLkf5NPwvIqk8lKyWSyWjKZzJQsxySE6PHH30uAgTKZ7AugAfCPCGn7+vpy6tQprl69SmxsrMFJ1+HDh2nRogUKhYLTp0+/E1kkCAh4iRCC+fPnSxOEWbNm0bRpU3744QcOHDgA/CnZpI38trW1JT4+3uDxZXVGfP3119y+fZt169YxYMAAypQp80HGxqNHjxIQEMCgQYNwcHCgZcuWpKWlce7cOZ31Vq5cybBhw6hbty6nTp2SHDbvotVt/jvrR+SEhYUFFSpUwNLSEm9vb6ZPn87169cJCwtjy5YtNGjQgISEBH7++Wd+/PHH/5QzQktSUhI7d+6kc+fOeZbF0so3KZVKhgwZQnR0tE6x4ZywsLCgUKFCaDQaVqxYkWdNYW2k8IABA5g/fz7ly5dn/Pjx2fqpjY0NHh4ePHyYsxJbeno6EyZMoESJEowePZrQ0FDCw8MJCAggJSUFGxub/7dSTf8GycnJmJqaYm9vr3esvHv3LnXq1GHatGk0bNiQR48eMWbMGOk3OnPmDAcOHGDSpEk6xuB3yatkU1hYGL/99htt27alZMmSBte7du0aKpVKyvratGkTzZo1w8nJicuXL9OhQwcqVaqEpaUlr1+/1qkL4e7uzqpVq7h58yZ37tyhVq1aKJVKvL29sxl/Hz9+TFpaGo8fP8712LVopZqSk5OxtbX9zxeMDQoKws/Pz2Btjfz581O8eHHy58+PRqPh8ePHUqF1lUpFly5dePLkCfv27cvmjMgLOUXkq9VqVq9eLdXZeZe0tDQuXbrEoEGD2LJlC0OGDGHVqlXSM0Oj0TB+/Hhu3brFunXrJIOcr68v8fHxNGjQQOe+0Gg0vH79mpCQEMlAaQitM8LS0hIXF5c8S5o8ePCAo0ePcuLECR48eJCnbT42KSkpeaqroFKpCA8P/yh1Urp168b8+fOJi4vD1taW+fPn07ZtWwoVKsSaNWto2rQpn332GSEhITRq1IixY8d+kJTau3Tq1In09HSOHj2qd3liYiKjRo3i0qVLubZVuHBh0tPTmT9/fo7rFS1alKNHj+Li4kKPHj1wdnamffv2LF++HD8/P9RqNZcuXcqW/aYPFxcXVq5cya1bt6hcuTLr16/nwYMHFCpUiJcvXxIaGiqte+jQIc6cOcOhQ4dybff/G9px7uXLl4SHh6NWqwkJCcHf35/U1FRcXFxwdHTEzMyMFy9esGTJEho2bIijoyMdOnRg1KhRDB48GJlMRsOGDSlfvjwlS5aUZLNKly7N06dPs0nbaR0UH4qdnR3Tpk3Dx8eH06dPZ1s+YMAA1Go1R44cybUtbbbOu2O9n58fkDk2nT59mvnz50t1Md4lISGBY8eO5Um6Ni0tjYcPH/6lGi5GjBgxYsSIESNG/ln+deurTCbrDBwEfgDWA1/IZDJJq0EI0Qu4BOQHGgLthRAfVarJEF5eXjRv3pw2bdpQu3ZtvcZNHx8fevfujaOjI2fPns1WdyA0NIz4+HimTp2qY2RTKBQsX76cSpUqMWTIEG7cuCFNJLTGtpwcEhqNhrFjx3Ly5EmmTp3KkCFD/nKE0f379zl+/Dh169alRo0aQGaNDS8vL06ePCkZCrRGww4dOrB//36DBUQBbt26hUKhkCYnnwoFChSgX79+/Prrrzx//pxhw4b924f0wezfv5/4+HgGDBjwXtsVLlyYXbt2YW5uTrdu3Rg6dChnzpzJ07bm5uY4O7vw5MkTxo8fn2tNiZCQEH755Re+/vpr0tPT+f7771m5cqVBJ0i5cuV48OBBjqn6K1eu5MWLF3z77beo1Wrc3Nzw8PDA09MTGxsbHYPwxzR2GclErVZLxhbIjKB0cHCgWLFiKBQKQkJCmDVrFi9evGDixIlUr16d4OBgfv31Vw4dOkThwoWltlQqFV9++SXFixfnyy+/zHG/2kyF3Fi3bh0ymYwhQ4bkuN7ly5cxNTWldu3azJw5k4EDB9KgQQOWL1+Oh4eHVIPE3d0dT0/PbM4ShUJBmTJlpMyHpKQkLly4kM3AWb16dWrVqqU3480Q2qLsBQoU+KDC4p8a717DjIwMAgICJJk/hUJBwYIFUSgUpKSkSHIkMTExdOrUiYiICI4fP07r1q0/+rGdPHkSPz8/Bg8erJNB8erVK0aMGEHVqlXp378/N27c4IcffuCbb76RnBFqtYpWrVqxbt06xo4dq1NH6cqVKwC0adNG5xmdmpoqFVjWOioMjVPaorY2NjY6NXHevQffpUKFCrRp04aWLVtSoUKFj3CV3p+UlBSeP3+e63pRUVGEhoYSFRVFSkoKd+7ckSTb1Go1EREReXZ+Q2YmX7t27QgJCcHW1pYyZcpQoUIFlEol+/btY/Pmzbx58wZ3d3dWrlxJlSpVpOyTD6VcuXJ4enqyb98+vcuXLVvGunXraN68OStXrsyxLQsLJb1792bt2rVcvHgxx2dh7dq1efbsGWfOnJGc8xMnTqRcuXIULlyY2NhYNm7ciFKppGDBgpQsWZJKlSpRokQJXF1dsx1LxYoVOXHiBGvXruXcuXNMmzaNIkWK6ASetG/fnqZNm9K+ffv3uEK5k1uf/i+gHeeUSqVU+6dAgQKYmpri6upKQEAAffv2xcXFhYYNG/Ldd9+RkJDA+PHjOXPmDDt27ODu3bsMGzYMlUolZVrBnxJfSUlJBAd//KnQ8OHDKVasGN988002h0fx4sVp0qQJBw8ezFVGydLSEnd392yyd1qHxL59+/D29jb47q1Wqzl06BAXLlzg8uXLuR738+fP8fX1zdNYY8SIESNGjBgxYuTT4F91SPyREdEDGCSEaEKmY8IdmCyTyaQcdyHEBiHED0BfIYTvP3V8lpaWNGjQgHr16umVOoiJiaFPnz4ULlyY06dP6xTGhkyDQ2BgILa2tvTs2TPb9kqlkp9//pmMjAyOHDkiaY5rX6idnZ1JTk7Wq1t89uxZTpw4wddff/3ehmhDvHjxIpvUAGSmlScmJkoTxF27duHi4sKGDRtylA9JT09n165dVK9eXcchodFocixcauT90EaPGdK3zokiRYqwe/dumjRpwrlz53ItjqlL5oQ0MjLSYE0SlUrF2bNn+eWXX4iNjWXSpEls27aNJk2a5JiNUqtWLd6+fcupU6cMrvP8+XNkMhnm5uYolUpMTU0pWrSoVNQ0a/tRUVG8evWKM2fOfJSC3P+f0crABAUF6RRa1krNaY3mGzZs4LfffqNVq1YsXLiQAQMG8PjxY7p27ZrNsJ6QkMDTp0/p2rWrjva5PqytrfXWAchKaGgox44do3PnzrlK28TGxqJUKjEzM+Po0aPIZDJ69uyJWq3WMfiYmpri4eGRawTqzZs3uXbtGjdu3ND53srKikaNGhksmKtSqQgLC9MxxGk1tf9qps8fBu5/XRNDew21hvmgoCD8/f31ZkwolUpKlChBnTp1iIqKIiQkBC8vL8qXL/9B+3716hXh4eEGZXdevnyJQqHQyeZLSkrihx9+4Nq1a3To0IFffvmFO3fuZMvOSE1Nw8fHh06dOjFv3jydZdraJ25uboSHh3Pu3DmpRpSDgwNFixaVrofWKP/ueGqoqPDbt28JCAjg5MmTOvVWtCiVSho0aECjRo3+NbkmpVKZY4aSFnt7e2xtbbG3t+fhw4fSJykpicjISMLCwnLNJMmKTCZj8+bNjB49mvbt2+Pv78/9+/epUaMGERER3Llzh5YtWxIUFMSyZcsIDg7Ods++L48ePSIiIkJvrRqAgIAAIPMdSF8E+rtMnDiRfPny0bRpU2rXrs3SpUs5c+YMb968yWYQNjU1pX79+kycOJGxY8fSpEkTTE1Nda6ZEIK4uDiCgoJ49uwZwcHBxMTEsGvXrmz71vZZa2tr7ty5g5OTk87YZ29vT/fu3fOclZlXtFlhORX0/tTRjnOurq5SkeaIiAjS0zPlWxs0aICPjw/t27dn+/bthIaGcvv2bebNm0fjxo3p2bMnAwcOJCAgAH9/f2xtbVEqlWRkZHDw4EHu3bsH/D21N8zMzOjYsaOU0fcuI0aMIDw8nKgo/e98WalcuXI2B4G2qHx8fHyOWblv376lcOHClC9fnkqVKqHRaHKcO5QsWRIvL688jTVGjBgxYsSIESNGPg3+9QwJwBYo8cf/9wNHAFOgF4BMJqsuk8m0Gki563T8A2hfisePH09kZCRbt27Va+TYsWMHGRkZuLm5GoxsValUUsFXa2trGjZsKEUfeXt7Y25uztmzZ3W2CQ8PZ9++fTRq1IjBgwfneKyRkZFMmDBBkk7KiS5dulC/fn2OHj3KsWPHAHj69CnXr1+nbdu2kqHQwcEBjUaTq8TPtm3bCAwMpH///jqRoVr5CX0GlJyIi4tj//79xMXFZVt29+5dOnfunKcipP9rDB48mIYNG/LFF19w/fr1996+SJEiTJ8+HZVKla0YpyFiY2N48yaU8uXLs379er0ZMGFhYaxdu5ZLly5RsWJFRo0aRfv27fOUydOuXTtKlSrFjz/+aLCf/Pjjj3h5eTFs2LBshbTfnbg6OjoSExNDQEAAjx49ytM5GtGPtoB6SEgIzs7OUtHqd2nXrh1JSUnExsZy/vx51q5da9B4ZW9vT+XKlbl48WKu+3d1dQWQiqDr49dffwXIk6xP8+bNiY+P58KFC+zdu5ciRYowceJEMjIycHV1fW/nqbe3NzVr1nyvTAj4MEOcRqMhMTEx1+P7o80P1/L4m3B3d6d48eJ6Jbrkcjl2dna4uLjQrl07Fi1axPXr12nQoMEHRQYvX74chULBwIED9S5v0qQJKpVKR57w559/5u3bt2zYsIHZs2fTpEkTvYZ9KysrunbtyvHjxwkMDNRZVrRoUYQQvHjxgsuXL3P58mVu3rwpORk0Go2UFeHo6IiLiwsODg5ERUXxyy+/8PjxY4OZXU5OTsTExODv7/+vSTLlhlKpzNXJCJmGSq3RtXz58pQvXx4PDw8SEhJQKpU4Ozu/d62CfPnyMXfuXJKSkkhPT2fo0KEsWLAAuVxO+fLlqVChAgqFgs8//5x8+fJJmTofwpMnT+jbty82NjYGC//Onz+fo0ePsnHjRvbu3Ztrm4UKFeLZs2csX76cxMREJk6cSOvWrSlatChubm40bNiQESNGsHz5cpYtW0azZs0oVKgQw4cP5+nTpwwaNEjKfliyZAnXr19n3759LF26lEmTJtG7d29++OEHNmzYkG3f169fp2PHjhQrVoxDhw5lc4p+6HtcbmizwvIqS/Ypk9WhrFKpWL9+PT/88ANt2rTh6dOnbNiwgV69emWrTXfp0iV+/vlnevfuTatWrSRnZFBQEHK5nIcPH9KuXbtsQVAfi2vXrlG1alW9Y12bNm2oVKkSb968Qa3O+bmTlpaWTWawQYMGaDQamjZtyqVLl5gyZYrebZ2cnChZsiTt2rUDMvtbTn3O3Nyc8uXL52msMWLEiBEjRowYMfJp8K86JIQQGcAioLNMJqsnhNAAl4F7QH2ZTKYE6gBv/lj/44cDfQApKSkcOnSILVu2MGnSpHdqRmSi0WhYtmwZ1tbW2NgYljTSGla0GqodOnQgMDCQ+/fvo1QqqVu3Ljdv3iQ2NlZqd/PmzZiYmPDDDz/kKOHx9u1bunbtyrZt2+jUqRM7d+7M8bxkMhm9evWievXqbN++nQsXLrB582YcHR2lSQFk6ny/ffs2RyOYNhLM29ub+/fv61wXjUaDtbX1e0dsnjt3Dh8fn2z1LABmzZrFgwcPmDVr1nu1+b+AQqFgy5YtuLq60rJlSxYuXPje0kRXrlxBCEG9evVyXffChQuEhoZhbW3NV199pfd3zMjIYMeOHSQnJ9O7d286duz4Xr+3iYkJ33zzDaGhoXqNJZApabZv3z4sLS1p164dr1+/5t69ezx9+pT4+HiioqJ4/PixFH1dv359qlWrRrly5fJ8HEayU6FCBapWrUqVKlWwtbUlOTk5W9ZJfHw8gwYNIjQ0lCNHjtCgQYNc223dujXXr1+XimIbQls03ZBROjY2loMHD9KsWbM8Ff5t2LAhSqWSAwcO4O7uztmzZ7G2tmbgwIE8fPiQt2/f4uvrm6uxUis/ZGZmRoMGDQxmQhgiN0OcECKbcyQ5OZn4+Phcs37+aPPDra1/E3nNOgEYMmQI06ZNIzAwkNq1a0tRwnkhLCyMHTt20KtXL4P1jkqXLk3p0qU5dOgQarUaHx8fLly4QM+ePalcuXKu+5g3bx5yuZzvvvtO5/vixYsDEBgYSN26dalbt66O4zerVFFWyapDhw5x/Phxdu/eLUXvv2uIMzExoVGjRlSvXv1fk2T6K6SlpfHo0SNSU1MlWSqlUolSqaRKlSo4ODigVCp5+fIlmzdvJjIyUmf73BxyiYmJNG7cmN9++42ffvqJ1atXZyv2XLlyZclp8qGSfoGBgfTu3RsLCwt+/fVXgxKVDg4ONG3alN69e+dZYtPKyophw4bx4MEDgoKCOHnyJIsXL6ZLly7I5XL279/PV199xYQJE3j79i2TJk3i4sWL+Pn5sWTJEikg5M2bN1SsWJHWrVszdOhQvv/+e9avX89XX32Fp6enzj6joqLo2bMnbm5unD59WpK6ykrW3+tj8rGywj4lHj9+TIcOHdi7dy/z5s1j37595MuXT++62szrYsWKsWrVKp13fHd3d54/f87bt2+ZMGHC33Ks8fHx3LhxQ6qp9C4ymYwvv/xSyujLiaSkpGwOidq1a2Nubo61tTXDhw9nwYIFeuXLtP3AxsZGZ1zQ/j88PJzFixfryKwZ60gYMWLEiBEjRoz8t/jXJRzIrA9RCugnk8lkQoiLwA6ZTDYUcBVCLP6nDiQnf0d6ejrp6em8ePGCAgUK8PXXX1O6dGkmT55MRkZGtqj9U6dO8fz5c6oNcCE1NZWXL1/qbVdbuNfNzQ2VSkXLli0xMTFh//795M+fn8qVK3Pu3DmOHTtGixYtuHLlCn5+fvTq1QtLS0uDNSaGDx/OtWvXSEpKokqVKrx+/Zpx48axdOlS+vfvT7NmzfRuFxcXR9++fYmPj2ft2rVAZgR+WloaCQkJxMfHY2tri1qtJjAwUEf7OutEf+vWrQQGBlKxYkVGjx4tXduUlBTCwsJ4/PgxjRs3xtraGiBP2uiNGzfW+Tcr06ZNY9asWUybNi3Xdv6X0F5XKysrNm/ezIIFC5g6dSq//fYb3333nUEjVWxsrI4R59SpU1hbW1OwYEHCw8MNZpqcPHmSffv2UWtobRQKk2wST1rJjevXrxMfH0+PHj0oVKgQycnJKBQKvdktkDlhf/bsWbbvK1WqxM8//8ygQYP0RlE7ODiwefNmOnbsSPfu3RkwYAC2trbUqFFDkkzz9fWlfv36uLq6SoZAIQRCiBxlo/7rev1/FUPjobZQ/MOHD/Hy8pIMBNr109LS6NSpEw8ePODAgQNUr15dp69pNBq9171ly5bMnj2bEydO0KVLl2zLIyIiMDExkQx5T548oXTp0qSnZzoDIiMjOXXqFFu2bCE1NZX27dtL0jeGxkntebZo0YKDBw+yePFiChcuzKlTp2jSpAnt2rVj+PDhlC9fHisrK4oVK2bwPPz8/Lh69Sq1a9emZMmSBAYGMmfOHIKDg0lISGDy5Mk6jt130RpgDKF1PgDSuKk19uRW7PqPa/aPFlBJS0vj+fPnlCxZMlvUata+lZyczM2bN/H29tZ7HiqViujoaMLCwqTf1cfHh4YNG7Jr1y6aN2+us66+frtkyRIyMjJo2bKl3gwpbZ2BRo0asXr1anbt2sXBgwfx9PSkUaNGUkCAPjIyMjAxMcHGxoaBAweycuVKRowYQZkyZQCkPnPz5k1atWolRUNrNBrCwsLYsGED7dq1w9HRUTp2jUZD+/btEUJQs2ZNQkNDuXLlCgcOHGDcuHE4OTmhUqkICgrC3d1dysbRjmv/lbHLz88PX99MFc6SJUsSHh5OoUKFMDU1le6vtLQ0du3axYMHDzA3N2fo0KEEBATg6emJSqWS7omsDkCtY2HixIncvHmTXbt20bFjR9RqNXFxcZiYmLB161auXr3K6NGjSUhIwNTUlOTkZIMZSmZmZnr7QXBwMBMnTkShULBu3Trs7OyyPedyMq6HhYVlc16mp2caVP39/bNFz2sdZ23atJH6jFYOSPuMTElJkWqRQWYfzCrBk9PxqFQq+vfvT3h4OBcvXtTJSsl6b2kzfHIjJCSEjRs3MmDAgE+mllhusU053T85bavv3tu1a5dUl+bYsWM0aNCA+Ph4oqOjpWy/rBnHWgfk5cuXSUhIYMWKFXTt2pXChQsTEBDAli1bqFmzJnXq1EEIYfB5qm03p2X6zvPChQuo1Wpq1qxp8Lnp7u6OvX0aERERvHhhquPkjYuLk2TC4uPjUSqV0t8ymQwXFxfq1KnDmTNnuHnzJsHBwYwZM4aCBQvqfe7LZDKUSqV0Hto+t2PHDk6ePAnA2LFjJXlQ7b6yBp78V8ZDI0aMGDFixIiR/2/86w4JIUSqTCbbTqYg/RSZTFYaSCOziHXiP3ksOb20yuVynj17hq+vLz4+PoSEhODj4yNFh71bS2HNmjUUKlQIJ6f8JCcnGyz8rI0G9vLywtLSEhsbGxo1asSRI0fYunUrCoWCW7ducffuXYYOHcqMGTOoW7cuI0eOlCYz7xIdHY2Pjw8qlYr8+fMTFRUltf3q1StWrVpF06ZN9UZo1apVi0KFCkmF9ooUKcLo0aORyWSkpqb+Ucw4U54qPj5eOgYzMzPJ6JSens6CBQvw9vZmxYoVKBQK1Go1CoUCpVLJo0ePuHXrFubm5rRs2TKHX0T3N8mXLx+dO3eW/s4aYVitWjUOHjyYY1v/i2gnsWZmZiQlJVGuXDmSk5N59OgR3bp1Y9KkSXzzzTfZDIIqlUoySgghuHXrFrVr15aMH+8aBoUQHDhwgH379iGTySRD0L2rV3XWq1mzJj169ODnn3+mQYMGzJkzR1oWExOTzbii5cqVK9K9FBsby927d6lbty5NmzbF19eXGTNmsGXLFr3bVqtWjc2bN0vOj++//16aICcmJkr3pnFS+n7IZDIyMjIko2dWh+PDhw8lp1VWaSK1Ws1nn33G+fPn2bRpk97iw3K5XK+RpGbNmjg5OXH27Fn69u2bbXnhwoVRKBQIIbCxsSE5OZkiRYpgHhhGUlIS48aN4/nz51StWpVvvvlGJ6o9J8OZEIKOHTty4MABbt++TfXq1SlRooTklFi3bh2jR4+mXbt2On1ILpfr/J2SkkJSUhIpKSnIZDImTpzIs2fPePz4MU5OTnTs2JGOHTuydOlS3N3dUalUREVF4ejomC1aWl9f1ed8kMvlknPiU+P58+eS8f9dx2jW3//GjRtcu3YNIYQUlZucnIyvry9eXl5ERUXx4MEDChQogEKhwMvLi3LlyvHrr7/Svn17Nm3alKM0V1xcHGvWrKFhw4Y6hdSzUqxYMTw8PKhcuTL79u3j119/xdramhUrVuDm5pajfIxCEY1MlmnkHTNmDJs2bWLhwoVs3LgRQDKwJyYmZus/69at49SpU6jVaipVqqSzzNHRUZKXSklJYf/+/Tx+/Jg9e/YwcuRIqf4GgIeHh7StTCb75MY6Q8dTokQJhBCUKFGC4OBgqeCth4cHJiYmyGQyHB0d6dmzJ3Z2dnTv3h1/f38eP36MRqPBy8sLIFuUvkwm4/z586xZs4axY8fSqVMnaZlcLmf58uVMnz6dJk2aMGnSJORyuVTTw5DTMDk5OZs+fWBgINOmTUMul7Nv3z6D+vU5GbFlMlm290eZTK6z3BDaZ/i774JmZmY6bZYuXZoXL15I3+WUnbFw4UJOnjzJvHnzqFq1arax2tDxGPp+7dq1nDhxgoyMDGbOnPle2/7XSElJkcYthULBpEmTWLZsGbVr12bLli0UKlSIsLAwOnTowLNnzzh69Ch16tTReZb4+vpibW1NzZo1+eGHHzh+/DgJCQk0bNiQqVOnEhAQwNKlS6XfRaFQGLx+7z6jsmJonDh79ixKpZJatWoZzFwrX748xZ9puHPnLnv27GHdunXSssjISKkOXXp6Oi4uLuTPnx/402HTuHFjpk6dSlRUFNu3b6dZs2b079+fQoUKUbNmzTwda+/evdFoNPTu3RuZTEZQUJAke1eyZMn/mT5lxIgRI0aMGDHyv8ynUEMCIUQMsA6YDzQGGpFZwDo8xw3/YUqXLo2TkxO7d++mV69eel+cAW7fvs3Vq1cZMWJEri/FwcHBODs76xiZOnfujJ+fnzQ579WrF3FxcfTu3RtTU1OmTJlisN2YmBi6d+9ORkYG+fPnlybqMpkMBwcHHB0diY6OplevXtmKzWXFysqKhQsXMmbMmGz70hqV35VP0PLrr7/y6tUrxowZw+vXr5k6dSq3bt0CMidITZs2pV69etSpUyfHa2Mk78jlcurVq0fz5s05ePAgvr6+9OzZkzlz5uDt7c3vv/9ucNvAwEDevHlj8PcQQrB371727dtHvXr1/jAUgRCZ0cFZi/ACrF69moSEBCZNmiR9p9Fo8PPzY9u2bYwbN4569erRsmXLbBIZqampbNmyhXPnznH+/Hns7OyoX78+Bw8e5MKFCwbPoUOHDsybN4/9+/ezZ88eTE1NMTU1pUKFClSqVEmKPDcWVH8/goKC8PPzy1Z0uHz58lSuXFmnwLAQgjFjxrBnzx4WLFhAv379cm3/4MGDUvaYiYkJzZo1kwy0htAWWw0ODubJkyc8f/6MgIAA0tLSWLVqFbt3786TxE5WWrdujYmJCQcOHJC+K126tGRIW7VqFffv39fbX7WSM2XLlqVx48aYm5vTq1cv9u/fT0pKCgcOHCA4OJi5c+dy8uRJvLy8WLJkCeHh4ZJUT17QOh9yyur5lChZsiTlypXLtcho9erVs9Xc8PX15e7du/j6+pKamkpycjKXL18mLCwMd3d3unXrxunTp6lfvz6ff/45hw4dMtj+mjVriI+Pp3fv3tJ3KSkpBAQEZBsHFAoFAwYMAGDKlCmSPFhecXBwYNiwYRw+fFjKfjQxMaFo0aK8fv062/pDhgyhefPmDBkyRPpOrVYTERGh09eUSqVUP6BLly4kJSXh5uZmsP7Gf4Wsuu/u7u54enpmOx+FQkGlSpWYMmUKLi4ueHp6UrZsWUqWLGmw2HdiYiJDhw6lRIkSfP/999L3QghmzJjB9OnT6dy5Mzt37pSclWZmZjpZBbkRHBxM7969SUtLY926dX+5mK5Go+H333/nxo0bqNUfN5mpVKlS+Pn55So7d/bsWWbMmEGnTp1o2rTpRyksPXToUFq2bMnQoUP/clufMhqNhuvXr3PhwgV+++03WrRowbJly/jyyy85f/48bm5u+Pv706hRI168eCFlBDx+/FinncePH1O2bFnkcjmDBg2iZcuWlChRgj59+vDixQsOHDhAmzZt/rbzOHv2LDVr1sy1RpyZmTlubm4cOnSITp06sWzZMi5evKhT0D05OVlvMIA2y/n8+fNYWlpy4MAB3NzcaN++Pc+ePSMqKoqVK1eybds2gwXinZ2dmTBhghQg5e7uTrly5WjWrNl/to5E0aJFJeeLvs/fVTPEiBEjRowYMWLk3+KTsWwIIdKFEOeBPsBAIcQnV53YwsKC3377DY1Gw/Tp0w2ut2rVKmxtbfNUUPXNmzdS/QgtHTp0QC6XS8WsK1euLDkFxo8fbzDKXCuR8+zZMwoUKKBX29fa2pq6deuSnp5Ov3799NZjyA1ttKghh8TPP/9MmTJl6NmzJwcOHODhw4ds27ZNMtzZ2NjQsmVLbGxs3nvfRgxjZWVFw4YNsbKywtHRkQ0bNnD48GESExNp0KABkydP1muI10a616hRQ2+7v/76K4cOHZKKqMtkMoT4Ux5ErVZLEaBah0KnTp2wsbFh+fLlDBgwgCpVqtCzZ0+++eYbfHx8KFCgAI8fP9bpfxqNhj179hAVFUXRokW5cuWK5CgpXLgwkydPzlHj+8svv6RPnz7MmTOHixcvotFoJBkcbUSotihiXFwcL1++fC8D1P9HDBkJLSwsqF69us4Y88MPP7B69WomTJjA+PHjc2373LlzdOrUScdx0bJlS6Kiorh582aO2zo5OXHp0iV69OhBcnIKhQq5cfLkSVq2bPlBkZEODg40aNAgm2G7XLlynD59mqSkJHr06JGtcLBWcsbPzw8hBFu2bKFGjRocPnyYGTNmSMVHTU1NmTRpEg8fPqRevXqMHz+e9u3bEx4e/t6Fev8raKW9cjNsWVlZ0ahRIx3DlZeXF5UrV8bLy4siRYpQrVo1evfuTaNGjWjdujUeHh44OTlx4MABqlatSo8ePTh//ny2tlNSUli6dCnNmjWjVKlSQOa4NX36dPr160e7du2YPn06Fy5ckMawPn368PDhQ9q3b/9B5z1y5Ejs7OyYN2+e9J2HhwcBAQHZ1nVzc2PGjBk6jg9/f3+2b9+ebf38+fMzcuRIrK2tiY+PR6VS5bn+xn+BvNYTsbCwwMvLK0ej45QpUwgMDGTdunVSsIcQgmHDhrF8+XIGDhzIunXrdLIIzM3N81zUWiubmZCQwNatW/+SM0IIwa+//krz5s3p27cvvXr14tat29y7d4+JEyeyePFinTpcH0KpUqVQqVQGpUMh08HSr18/ypQpw8aNG3PNDMorhQoVYubMmZ+MXNPfRUpKCvnz50etVvPTTz9x9epVtm7dyuLFizE1NeX+/fs0atSI+Ph4Tpw4wcmTJ1EqlbRr107H4e/r6ytlPLm5uWFubs6QIUNwdXXl5s2beselmJgYtm3bRp8+fWjVqhVt2rShbdu2tG/fng4dOtCpUyc6d+7M+PHjOX/+vMEaC6Ghofj6+uap5lPm8bmyYMEC3rx5w+zZs+nWrRu1atWiYcOGfPnll7x9+1avDF+VKlXIly8fx48fBzLHtsOHDwPQtm1btm3bxp49e9i5cyeXL1/O07G8Tz2iT5XAwEDpvVrf59WrV//2IRoxYsSIESNGjHxUPhmHhBYhhPqP4tb/1v5JSkoymGJ/4sQJnJycckx5v3HjBsnJyXz99dckJycZ3M+WLVu4ffu2JGcRHh5OZGQk+fPnp1GjRhw/fhyVSoVMJuPs2bMcPnyYtm3bGtzv+fPnuX//Pn379s2x0KCDgwOzZ88mJSWFFStWGFxPH9qi2qA/7X/VqlXcuHGDPn36oFKpaN26NfXr16dFixaS4c7IP0fLli25f/8+gwYNYtGiRQwcODCbUV/rpBg1ahSHDx/WWZ6amsrp06eBzD775s2bP5aIbG1oNBru3buHiYkJ48aNY9myZSxZsoRnz57Rpk0bZsyYwcWLF7lz5w6//vorrq6uTJ48mdu3bwOZ0irPnz/H0dGRihUrotFo8PX1RaFQUKFCBZ48eaLXqKclOTkZT09P1Go1u3btIjU1Nds62qKIISEhnDhxwtgfcyGvk3whBMuXL8fExIQKFSrkKFESGxvLuHHjJLm2u3fvSobAZs2aoVAo2L9/f4770zoxBgwYQPny5XFyyp9N9uR9OH/+PM+fP+fly5fZ+k3x4sWpXbs2r169ymb09vT0xMvLC09PT6ZPn85PP/1E8+bNefToEdOmTcs2DhcrVozDhw+ze/duwsLCaN26NaNHjyYx8R9VJ/zksbS0lGpKmJmZUaxYMQoWLEjPnj11pAZtbGw4evQonp6etG7dmj179ui08+rVKyIiInQkoxITE7n6h9RcbGwsZ86cYcmSJQaLpL8vdnZ2tG3blrNnz0r3gYODQ56jze/du8fTp0+5d+8eGo2GhIQEEhISpHH6rxYTzq0Q9H+JlJQUrl+/rlPsWwjB7t27cXBw0JHKDAkJYdOmTZiZmVGlSpVsbRUqVIgHDx6wadMmvY7vlJQU9u7dS/fu3WnatCmxsbFs3bpVR6v+QwgNDWXq1Km8fPmSunXrMmDAABQKE9LS0vDx8WHx4sUfXMBYCMHVq1fZsGEDgMEaTs+fP6dx48akpKSwc+dObG1tdQpLGzMLc0epVFKkSBFUKhUPHz5k7NixOkFJK1asICIiglWrVlG9enWKFi3K7NmzCQkJYffu3UCmlGZkZCSFChUiKSmJhIQEZs6ciRCC2rVr6zh3X758ydKlS2natCkFChSgf//+nDt3jpiYGN6+fUtERAShoaEEBwfz6tUr/P39Wb16NU2aNMHR0ZHWrVuzaNEiHj58KI1TWoN3XoOF5HIT+vfvz/Xr13n69Cm7du1i9OjRFC9enCtXrpCcnKw3y8zExIROnTqxa9cuKbDJ09OT/fv34+/vT0JCAt26daNXr17UrVv3g34PI0aMGDFixIgRI58+n5xD4t9GWzg0OTlZ7/INGzaQmJhI48aNDcrgHDt2jIEDB3Lo0CHu3r1HQEAAt2/fll76k5OTmTJlCkuXLqVx48bMnj2blStXUqpUKalGwujRowkPD+fUqVNA5gTB2dk5x+jfNm3a0Lx5czZt2mTw+AGioqKYMGECTk5OOhr/uZGens6QIUNYu3Ytw4cPz+YcOXLkCGPHjqVdu3aMGzeOkJAQNBoNI0aMoFmzZpLhzsg/i42NDatWrWLmzJls376dnj176kTIdejQgTlz5iCEYNy4cTRp0oSTJ0+SmpqKhYUF33//PQ0aNODKlStMmTJFMtZoddPlcjkajQaVSoVCoWD37t24uroyduxYChcuTHJyMj179qRt27ZSSrqpqSnbt2/H2tqanj174uvri729PZ07dyYyMpKDBw/i7OxMvXr1OHXqFEeOHGHy5MnZIlE1Gg2XL19myJAhFC5cmO+//56WLVtKxc0fPHigY6zSSnzExcURHx/P69evJY1mI4ZJSEjQW3RcS3p6Oj///DNVq1alf//+tGnTJls0n1qtZs2aNZQuXZply5bRv39/1qxZQ0pKipQpY29vT7t27di+fXuO2Su1a9fmwYMHjBs3DoXCcIHW3EhNTWXatGk0a9YMpVLJuXPndIw+v//+O5UqVeLYsWOMGjWKUaNG6WxvYWFBuXLlePLkCUuXLqVr16789ttv2bLesiKTyejatStPnjxhzJgxrFu3jr59+xqNfe8QHh7OsmXLCA/PWbnRzs6OXbt2SVkUP/74o/SsLV26ND169NCJMrexsZHGtJYtWzJp0iRWrFjx0aSPhBBcvnyZevXq6ejCly1bVlonLS0NX19fvZHKLVq0oFWrVrRo0YKUlBTCw8MJDw+XxjGtPNHFixdJSvoz4EGlUhEeHp5jFhnk/o7zKZOQkMCJEyckB96DBw+4c+eOTuaSTCZj2rRpmJmZUa9ePcm5WahQIc6ePUu5cuUYNWqU9GzR9pWFCxdSv359fvnlF7744guCgoIQQvDo0SN+/PFHevbsyYQJE4iMjGTSpEmcPXuWihUr/uVzcnV1Zfv27Xh5eXH58mU2btyIWq3GysqSHj16SDJ070N4eDgLFy6kUqVKNGnSBF9fXzZs2IC3t3e2da9evUr9+vVJTExk+/btWFlZZZPM02YWZn2W/n9GrVYTGBjI3bt3pXtYK6k3btw4GjZsyKJFi3Qc69OmTZNkhsLCwkhMTGT27Nm4u7szaNAgIDPIp3z58ty/f5/4+HjkcjnXrl2je/furF+/nuLFi9O1a1cqVqxI8eLFGTduHOHh4UycOJFz585x69YtfvvtN77++mt++eUXWrVqxb59+7h9+zanTp3i3r17rF27Fm9vb169esWECROoWLEirq6uTJs2jRo1alC9enUWLFjw3u9E9vb2NGzYkGHDhrF+/Xpu3brF/fv3GTlypN71R44ciVqt1slK1I6RNjY2fPHFF/Tt29eYSW3EiBEjRowYMfI/jNEh8Q6WlpbY2trqpBkLIUhJSUGj0WBtbS3pPTdq1IiJEydmm9i7u7szd+5c7t+/Lxlkhw4dymeffcaGDRvo378/Z8+e5csvv2TMmDF06dKFcePGYW9vz/Xr13n16hWtWrWiePHibNmyJcdoY4Ddu3fTqFEjQkNDWbNmDZUrV+bt27d6I8STk5O5cuUKDg4ObN26ldKlS+fpuiQkJDB8+HD279/P999/z+zZs3V0m+/fv0+fPn2oXLky27Ztw9w8U1+2aNGiuLm5SYY7rbFPazzRankbpXM+nKzRiykpKdy4cSOb4UAmkzFlyhSWLFnCwYMHGTZsmGTMUigUdO/enePHj/Pzzz/j4uLCtm3bGDt2LHv37sXW1pbBgwezdOlSunXr9kf6OJJsk0ajQQiBXC6nSpUq0qTSxcWF7du3Y2dnx2effcbTp091jql48eIcOnSISpUqcfDgQc6dO0elSpUYPHgwAwcOpH///ty6dYvLly8zePBgpkyZIm3r7+/P7NmzqVixIh06dGD//v3Ur1+fo0ePcuDAAZydnXn+/DlPnjyRtNyzUqVKFZo0aSJp0+dVFuD/I9HR0dSrV4/y5ctnkzSKiopiw4YN3Lhxg4yMDNasWcPSpUu5cuUK5cuXZ9GiRahUKs6fP0+1atUYOXIkZcqUYfbs2YwdO5Z+/fphY2OjY3AbMGAAb9++lSQcDPFXi1Y+ePCAJk2a8PPPPzNixAhu3bolyZZlZGTw3Xff0bBhQ9RqNXv27GHWrFnZMkW0Edrjx48nX758rFq1Ks/HZWtry+LFi1m8eDGHDh1i6tSpf+l8/ivoi7bWF+m+a9cuTp8+za5du3JsLyoqivT0dKZMmULPnj2ZOnUqQ4cOJT09HZlMxqpVq/Dw8OD7778nNjYWgCZNmjBnzhymTZtGhw4d3rtWRE7cvn2bwMBAunTpAmQ6vXx9fXUi6Z89e8adO3eyjYmQ6WDp2LEjdnZ2KJVKChYsSMGCBXUyIm7evMm1a9d0pM2ioqJ48+ZNrjVJ9L3jfMpkfaZduXKFy5cvSxkuFSpUoGLFihQsWFDHEfP5558ze/ZsvLy86N69O23btmX//v3UrFmTU6dOsWnTJlJTU+nevTsdO3bE19eXfPny8e233zJjxgwCAwPp1asX9erVY/jw4Zw+fZp69eqxZ88ezp07x8iRIw1KZ34INWrU4MCBA5w5c4aNGzdStWpVypUrz4QJE2jbti329va5tpGRkcHRo0fp1asXlSpVYurUqTg5ObFmzRr8/f3p1atXtm22bdtGixYtsLe3l8bbsLAwIiIidO7Rv5qV86mTkZFBQEBAniW73r59y7Vr17h+/Xq2WmyWlpZMmzYNb29v+vXrx5MnTwAoXLgw+/fvJzo6ms6dOzNixAgCAgLYsGGDTtZXrVq1uHbtGlZWViiVSsqVK8eAAQMYMWIEderU4cKFC9jb2/PVV18xf/58du7cyZw5c6hfvz758uXDxcWFDh06sGnTJs6ePcvq1atJSUlBpVKRL18+Bg4cyPnz53n8+DGXLl3iq6++onjx4syePZsXL16wdOlSwsLCWLRo0V++rg4ODgZrHmmdKvv27ZO+0zoara2ts62vUqkICwvL1eFqxIgRI0aMGDFi5L+D0SHxDjKZDCsrKx2jkjai8O3bt3h4eEhyDN26dWPZsmVUq1ZNb7aEg4MD7u7ueHmVZcqUKcTFxbFy5Uqio6NZtmwZFhYW9OjRQ4paOnnyJAD79+9HJpPRt29f/P39uXLlisHj/fXXXxkzZgyPHz9m7ty5WFpasnXrVkxMTIiMjNQx9CckJBAZGYmdnR2bN2/OsxEmIiKC3r17c/v2bVavXs3o0aN1rk9wcDC9evXC0dGRAwcOSFrgpqamFC1aVK/cS1RUFKGhoTx8+JCAgIBsRXON5J2s0Yt3797Fx8dHqgvxLl988YVkQP7ss88kAx38WXD8119/5bvvvqNMmTIcOnSIcePGMXv2bI4dO4abm5tU1Br+lHtSKBQoFIpsk09t9KeVlRVffPFFtgKO9vb2bN++nQoVKnD+/Hn27NmDq6srxYoV4/nz55w8eZJy5cqxYMECZDIZERERtG3blipVqvDTTz/h6enJ0qVLmTt3LvXq1cPa2lrqm6VLl6ZMmTI6hZe1KJVKqlWrRrNmzahbt65RFsAAcXFxtGzZkmfPnlGqVCm6d+8ujVOQWZT67NmzPHr0CC8vL0qXLs3o0aN59OgRjRs3ZuLEiXh4eNC0aVPi4uLYsmULx48fp23btnh6emJhYUGbNm04cOCANFY1adKEQoUKsXHjxr/lnFQqFYsWLaJ58+bExsaya9culi9fLo1bT58+pW7dusyZM4c+ffpw//59WrRoQXJysmQwT0hI4PTp01y9epVt27Zx4cIFpk2b9kGa66NGjWLIkCHMmzeP7du3f9Rz/RTRPk+zOh/u3LnD+fPnuXPnjvRdjx49aNasGT169MixPUdHR1xcXKT+OXr0aDZt2kTbtm2JiYnB1taW7du3Exsby+zZs3N18P9VfvvtN8zNzaXCs48ePUKtVusU7XZzc6NQoUK56urL5XJsbGywsbHRGVu9vb2pWbOmTsS7o6Mjrq6uudYk0UZyA/8J6aaHDx9y9+5dHj58SJ06dahbty61a9cGMsfx4sWLExMTo+OIsba2pk+fPhw8eJApU6bw6NEjunfvTrFixZg1axYVK1bk2rVr/Pjjjzx48ECq6xIbG0vTpk3ZunUrvXv3pmHDhnz99dccOnSICRMm4O3tnaPD8d69ewwePBgvLy+Dz2BDyOVyihUrRv369TExMSwJ+i6+vr5MmzYNLy8v+vTpw507dxg5ciT379/n7Nmz9O/fP5uBNyMjg3HjxjFgwACqV6/OyZMn0Wg0vHjxgoiICCwsLHTuUUPFw/9XCAoKws/PL9t7qCEjuJOTEzVr1qRGjRqULFlSx8mqlV0qV64cVlZWdO/eXQpaqly5Mlu3buXOnTvs2bOHiRMnUq9ePZ2269evT0JCAtevXwcya7UVK1aMFi1asH79ekJDQ/Hx8WHWrFm0bNlSyjrO+hulpKTQs2dP6tWrx4gRI1CpVNy8eRMLCwud37BixYq0bduWjRs3IpPJ2L59OzVq1KBnz56sWrUqx5ojfxWZTEbnzp05d+4c0dHRQM4Oibdv3/LmzZuPUmjdiBEjRowYMWLEyCdCTgW0/hc/VatWFe+LWq0WoaGh4unTp+L58+ciISFBWnbu3DlRrFgxIZPJxKhRo0RcXJxQqVTS56tNV8RXm64IjUYjMjIyREBAgLh//75o3LixAESzZs3EixcvhEajERqNRlSpUkXUrFlTaDQaERQUJAoVKiRq1qwpwsPDdT6vX78Wq1evFjKZTDRq1EiMGjVKAOLChQsiISFBXLx4UeTPn1+4uLiIK1euSMsbN24s7t+/L5KTk0VsbKyYN2+emD59uti1a5d49OiRCA0NFTExMdLn5s2bonDhwsLKykrs2bNHZGRk6HyioqJEuXLlhK2trXj06FGer2lGRoYIDQ0VSUlJws/PT6Slpb337/JvANwSH7l//VXUarVISEgQarVa+Pv7i40bNwp/f3+pT2Vdrv1u7969wszMTJQvX14EBwfr9Nmsn8ePH4uxY8cKb29vYWpqKsgsHiHqjlgsWk9eL+bMmSMCAgKk9VeuXClWr16d7TNz5kxhb28vHBwcxLFjx4S/v7/O58GDB2LatGkCEN7e3mLx4sVCLpeLRo0aiTdv3giNRiOSk5NFrVq1hFKpFHPnzhUvX74UoaGh4smTJ2L79u1iy5YtIiEhQTpH7bln/fvdz6dGTv3rn+5b0dHRolatWkKhUIj9+/eLsLAwUaFCBWFhYSFOnz4thBAiMjJSrF27VkRGRmbbXqPRiD179ohKlSqJWbNmieTkZL372b17twDE0aNHpXFl2rRpQiaTiRcvXkjfJScni/T09Gyf8RuviPEbr0i/aWRkpNi7d6/45ZdfxOLFi8XMmTPFxIkTxbBhw0SfPn1ExYoVBSB69Ogh3r59K/WRV69eiblz5woLCwvh6Ogo9u7dKy1TqVQiISFBZGRkiISEBHHo0CHx3Xffic2bN4sKFSoIDw8PkZqamud+9+59lpycLOrVqyfMzc3FlStX/pY++6n0razjkZas41ZuvHs90tLShJ+fn0hKShKhoaEiPT1dbNq0SZiamoqGDRtKv8VPP/0kADF37lyRlJSk80lMTBRqtVpkZGQIHx8fsWjRIuHn5yfUarV0vIY+X/5yQYzbcFkkJyeL+Ph4UaBAAdGhQweRnJwskpOTxZo1awQgAgICcrwGOZ3j3zFuJSQkiJCQEJ33mQ/l7+hb2nNNSkoSv//+u0hKStJ7DbTvEhkZGQbbysjIEIcPHxbt27cXcrlcehfauXOnePPmjRg1apQwMTERdnZ2YsGCBSIxMTHbOJOYmCjS0tKyfVJTU8WxY8dE06ZNBSDs7OyEs7OzcHFxEcHBwUKj0YiXL18a/Dx+/FhER0frfL785aL48peLIjIyUu8+X79+LebPny8qVaokAKFQKET79u3F/v37RUpKikhPTzf4TA8JCRH169cXgPjiiy9EWlqa0Gg0wt/fX6xevVpcuXJFxMXFZeufufXZv4t/YtzSjiFZ30PVarXw8/MTN2/eFKGhoQa31c4PgoKCREJCgggNDRUXLlwQe/bsEXv37hUymUwMHDhQqFQqaTw5duyYOH78uEhNTRVqtVqoVCqpXycnJwsXFxfRuHFjER8fL4KCgkRoaOh7jRXa3yomJkYcPXpU7Ny5U3z99dfi4MGD0hipPb8TJ04IPz8/0bRpU+Hh4SHUarV49eqVsLKyEu3bt9f7zNVoNOKrTVfFV5uu6t23oXErOTlZpKSkSJ/Lly8LQKxZs0akpKSIGzduCEAcOXIk23nm5T5/Xz619/nMKfk/x4TNV8WEzVf/lrb/6XP5FMmtfxk/xo/xY/wYP8aP8SOMDom8olarRVxcnIiLi8s2MQgNDRUDBw4UgChWrJg4efKkePPmjXjy5IkYuvyEGLj4qNi7d6/YsGGDmD59urC2thY2NjZi6tSp4vTp0zrG49mzZwtABAYGirCwMDFr1izpBT2rQ2LhwoWSMyIiIkKEhIQIJycnUa9ePREfHy8CAgLEkSNHhLW1tWRE7t69u3j+/Ll48eKFePz4sahataq0TPtRKpWicuXKonfv3uLbb78Vjo6OwsnJSZw9e1ZERUXpOCOSk5NFs2bNhEKhECtWrPig6/pf41ObwLxL1kmbtk9lNTxpv8vIyBAnTpwQVlZWwtPTU/j7+xs0YGg/WkfXjz/+KFpOWifqDF8oAGFjYyMWLVokUlNTdRwSy5cv1/l79uzZomDBgsLBwUGcOHFCxyHx8OFD8fbtW7Fx40ahVCoFIKpVqyYCAwMlo3Hv3r0FIPbu3Ss0Go0IDQ0Vd+7cEYGBgZIx4X0mx0aHhGGSk5NFw4YNhVwuFzt37hQpKSkiPDxchISEiNKlSwsrKytx9erHmcgmJycLOzs78dlnn0lji7+/v5DJZGL8+PF5ckiM23BJ7NmzR3To0EHHcab9mJubCycnJ1GsWDFRtWpVsX37dpGeni58fHzExIkThZeXl7Ruq1atREhIiN7+o72XQkJCxPHjx8WYMWMEILZv326w34WGhoodO3boGJ303V9hYWGiaNGiwsXFRQQFBf3POiT08T7Gpnev8/3798WxY8ckB4J22bJlywQgjh07Jv127du3FwqFQly4cEHHIXH9+nUxefJkUbhwYakfyGQy0aZNG3HkyBHJQJubQ+LIkSNSf9A6JIYNGyby5cv3Xr9d1nNMT0+XjIgfc9z6mAbmv9Mh8bHvg6CgIDFz5kxRpEgRAYgiRYqI9evXi3v37olmzZoJQJQoUUIcOHBApKWlGXRIJCcni507d4oqVaoIQDg7O4t58+aJX375RXTp0kVYWVkJb29vkZSUpOOAePr06Qc5JOLj48WOHTtE69athYmJifSMXLJkiQgNDdUZSww5JK5evSrc3NyEUqkUv/zyi879kpGRIUJCQkRMTIzePvExHVjvw781biUkJEjvFjmNSwkJCZLTQKVS6VzH58+fi549ewpAbNq0SXJIvPvJ+mzQaDRi/vz5AhBXrlwRMTExIiQkxOAx5HSPHD16VHz99ddi9+7d4ujRo+LZs2fi9u3bkoMjqyNmw4YNAhBXr14V6enp0tzj+PHjep+7g5ceF51nbBf16tUTNWrUEHXq1BENGzYUTZo0ES1bthTt2rUTnTt3FkuWLBHx8fF6HRLJycmiSJEiomXLliIlJUWcO3dOAMLHx+fv+ll1+NTe540Oif8tjA4J48f4MX6MH+PH+Mn9IxPi75Uv+NSoVq2auHXr1kdtU/NHqvvChQv5P/bOOyyKq2vgv9mlLb0pgiAK9t5L7C22xB4To4mJ+dKbJjGvedN7M72+iYkx0RRLLElssfeGGsQSBCyISBOpC7uw9/uDzGQXFqQK6P09zzwLU+/MnHvunXvOPWfz5s3Exsb+e7273wTg4IJ/498PGzaMN954g/bt23Px4kWCgoJwcnIC4Pjx47Rv354PPviAqVOnkpubS7du3ejVqxcLFy4EisI0zZo1i0GDBvHLL79ocX2//vprnnjiCX755RctlMOuXbv45ZdfCAsL4/HHH0dRFNasWcOzzz4LwBdffMGwYcM4ceIEx44d48iRI1rs/aSkJJo2bcqyZcsIDw/HYrHg6ekJFBmyHnjgAb799lu+/vpr7rrrLhwcyh9moL6iKEqEEKJ7adtrQr4qi1q3hRDk5ubi6uqqhZsoLCxEURT27NnDzTffjE6no3nz5ri5udks7u7uGAwGHBwctATWiqIQpbQCoElGUSzzXbt20alTJ4YNG0bz5s0RQvDhhx+SmZnJrFmz8PLywsHBgWbNmjF16lSEEPz444+Eh4cDRWFcAgMDATh8+DA//fQTzzzzjBY7+7PPPuPFF1/ktdde4/HHH8dgMGCxWEhLS8PPz69U2RNClBlio6p5CKqbsuTraslWfn4+48ePZ/369Xz77bdMnDiRcePGceDAAdasWUPTpk0ZOnQoycnJbN68mW7dulX5mnfddRcrV64kISEBZ2dnAG677TaWL1/O+PHj+eCDDwgICCjxnnft2sX7f54hJSWVvV/PoWHDhrRq1YrCwkI8PT3x9vbWFjX0jV6vZ9u2baxfv56MjAwcHBwYMGAAo0aNYsiQIXTs2BG9vihRttpQGo1GTc+quVf0ej3t27fHx8eHAwcO2ITCUOve8uXLeeihh0hNTeXLL7/kvvvuAyg1TE5UVBT9+vWjdevWbN26tUScf8s/eWJcXV0rHD6lLshWdWDdZ8nJySE1NZXMzExat26Ng4ODVqdNJhOtW7fG19eXAwcOYDQauXz5MjfccAOKorB8+XLWrl3LL7/8QlRUFHq9nuHDh3P77bfTo0cPFi1axPz580lKSqJZs2bcc8893HHHHfj6+tqU57lfDqHT6Xnt1i7MnDmTNWvWcObMGU1eBg0ahJubm5a4vaL3mJSUxIEDB9i+fTuPP/44jRs3vi701pX6ppV9Bup5CwsLWbduHS+//DIHDx6kRYsWPPvss3h5efH0009z6tQpgoODcXNzw8XFBRcXFwwGg7ZERkYSExOjJRd2cnLivffe4++//waKwuGoubVeffVVFEUhKSmJ3r178+qrrzJ9+nSgKORio0aNbMr48q9RADw3rg0eHh788ssvPPvss5w/f57GjRszdepUpk6dWmpSbYvFUkI/fPPNNzz66KMEBQXx5ZdfcuONN1bo2VosFq0fcTVDN9WW3irv/Vrvpz63nJwcMjMzcXJy4ty5c8yePZuDBw+yf/9+2rRpU+IcQgiba2RlZdG0aVMGDBhAmzZt6NOnDz179iwhJ1AUVio1NRV/f3+t3bI+z86dO+nXrx8eHh7k5+dz8uRJgoOD8fHxsblmZmYmjRo1YubMmXz44Yfk5eXRqVMnDAYDBw8eJDU1lbVr17J+/Xo2bdpEi4lzURTQH1+Fl5cXBQUFmM1mCgoKtL+zs7M5deoU3t7e3H///dx3330EBQXZlPGZZ57hs88+49y5cxw4cICxY8dy4MABuncvtZtdbdS1/ryiKFfUe9XJnO+LQg2/e2efaj/31b6XusiV5EsikUgkEglyhkR18cYbb4jhw4eLl156SXzyySfijTfeEN9++62YMW+1uPv938XBgwdFTEyMSE5OFllZWZpHVHEP3MTERBEWFiZuuukmcfHiRZGUlCSefPJJAYg9e/aIV155RSiKIvr166edS10uXbokWrRoIcLDw8WJEydEXFxciWXhwoWaZ93x48c1L051SUpK0sI1xcbGiuTkZO1/6xkS7777rgDEM888o627HqCOeVSVRVmec2azWfOaPHTokJgyZYoYMGCA6NOnj+jUqZNo3ry5CAwMFJ6ensLBwaGEx3n3u98U3e9+U5tV8/PPP4vg4GDh4OAg3nzzTS38EiB69eolvvjiC/H111+L2NhYsWHDBmEwGETPnj1LzJCwtxw9elQAYvz48SIzM9NmtkdOTo7Yu3evSE9PtztLQs6QqDjvv/++AMQXX3whTCaTeOaZZ4SiKCIoKEg0atRI5OXliZiYGNGkSRPRqlWrarnmmjVrBCDmz59vMyPi9ddfFy4uLkKv14shQ4aIzz//XCQkJAiTyaTpoF7/97YYPfcb8euvv4oGDRoIQLRt21a0a9dONGnSRPj4+JSQ4UaNGompU6eKF154QaxcuVIkJibanUmkepFbe8qq+6mhph588EEbOcvPzxc//PCD6N69uwBEt27dRPPmzUX79u3LnCGhLmrd+eijj0R6erpYtmyZSE9PLzHbqaLUBdmqDuyFJlGff/H6Pn/+fAGInTt3iuzsbJGTkyO2bt1qIws9e/YU8+bN07yGrRej0SgWL14s+vTpIwDh7+8vfv31V3Hw4EGxePFi8cILL4hRT88Xgx79RLi5uQlAtG/f3qZNdXd3F48++mil79FkMomnnnpK9OnTR7z00kvXjd6qqRkS9mbRrVy5UnTs2FEA4umnnxbZ2dniww8/FNOnTxeTJk0So0ePFoMGDRJ9+vQRnTt3Fq1atRI33HCD+PHHH0VmZqYYN26cAESnTp3Exx9/LL788ksBiIkTJwpALFiwQJw+fVosXrxYk7vyzpD4+eefBSC6du0qVq9eLXJzc0V+fr4wGo2l6hB1hkR+fr7IyckRL7/8sgDEsGHDxMCBA8Xzzz9fb9rF+qS3rPV7VlaWyMjIEAkJCSI6Olo0aNBAhIaGiqNHj15xhoTFYhGTJk0SgOjbt6+YPXt2qX3sxMREbdaDPdku/n2xc+dOcfjw4RLhLS0Wixg3bpxo2rSpNgvixx9/FIBN29q4cWMxc+ZMMWPeKvH4/O1XvObu3bvF5MmThU6nEw0bNhQXL160mSWxevVq7RrLly8XgNiyZctVeV91rT+PnCFxTXEl+ZKLXOQiF7nIRS6Ca9+l/Spxxx13YDabadmyJaNHj9YSpEYu3ENhYSGtWrXS1pWF6lE1adIkbd2MGTN4//336dOnyItl9OjRfPjhh5oHpoqjoyPz5s1j3LhxfP7558yePdtme2FhIW+99RbBwcFs2LABFxeXMstS3BNU5eLFi7z88suMHj2al19+GbD10roeZkpcK5hMJjw9Pfnuu+/Q6XRcunQJX19f8vPzycrKwsPDAzc3N3JyckhKSiImJoYePXrwyopj5OXlEZ57K6tXr2bSpEn4+PgwYsQIkpOTbZK1tmrVyuaa2dnZGI3GEskcSyMgIIDWrVtz9uxZDAYDiqJosn/06FEiIiI4evSo5nkXFhZWTU/n+iQmJgZfX1/uueceALZs2ULv3r255557+L//+z9tFtftt9/Oe++9hxBlz0IpDyNGjKB3794888wz3Hzzzfj6+uLo6MjTTz/NLbfcwrfffsuyZct46KGHePTRR2nYsCGJiYncfPPNhPXug16vJzZ2NykpKWzatImBAweSkpJCQUEB3t7eODk5ceHCBfLy8jhz5gw9e/bEw8ODpKQkoChJqXoPxfWqg4MDMTExuLi44ObmRoMGDQAYOXIkEydO5IsvvsBoNPLGG2/w3Xff8dlnn5GQkEDLli15/fXXGTVqFD179uT++++/4nNYsWIFb7/9Np06daJ37978+eefbNy4EYvFwuTJk7WyFZ85cb2iKEqZ7WqLFi0AtKSyUJQQevLkySxbtozdu3fTqVMnhBAl3jsUtce33XYbY8eO5fDhw9x3331MnDjRZp++D7yHq6srffv2ZcOGDaSnp9vUCXd3d5sE3hXFwcGBxx9/HHd3d61OXk8UFhaW6gFeHQghGDp0KKNHj+aee+7hvffeY8qUKTz00EM2+5lMJhwdHW3WWSwW7r//flatWsUrr7zC0KFDad26Na6urjz88MM0a9YMgMjISAYNGqTNflVnmpaHwsJCAObPn0+7du3s7vPFF1/w6quvkp+fr3mpm81mhPjXQ3n69Om89tpr/Pjjj0ybNo2cnBwbr35J9VFYWEhSUhKNGzfG09OTgIAAfvvtN8aPH0+/fv1YsmQJw4YNK/X4n3/+meXLl3PbbbfRrl27Mmcg+/v7a79ClJwNa42fnx8WiwVXV9cS+q6wsJC8vDybhNKq/JrNZlJSUnjyySd54403cHR0ZM73e8v1LHr37s2SJUvYs2cPffv25d133+W1117Ttm/ZsgW9Xk/Xrl3x9vbG19eXd955h0GDBpXr/NbI7xCJRCKRSCSS+oXssVUTgYGBDBw4kIiICA4fPky/fv0AtCnR9gY7cnNzOX78OG3bttUGmHbs2EFBQQEjRozQ9gsICGDo0KFs3LiR++67j5deeomCggK75RgyZAi33XYbX375JTfddJM2IAOwatUqTpw4wQcffHBFY0RZvPjii+Tn5zNv3jztoyc9PZ3ExEQAu9PKJXWTCxcucObMGQCaNm1Kw4YNgX/l1tnZmZycHCwWC6tWreLcuXMA5OfrKCwsJCsri4CAABRF0YwQly9fpmXLluh0OiwWixY+TOWjjz7Cx8eHO++8s1xl1Ol0PPHEE9x3331s27aNIUOGaNs6dOhAeno6rq6uODk5ERISUqXnIYGUlBRNDoxGIxERETz22GP07dsXgN27d9O+fXsaNmyI2WwmIyMDb2/vKl1Tp9Px5Zdf0q1bN/773//y5ZdfatuaNWvGq6++yvPPP8/x48dZtmwZS5Ys4f/+7/949dVXeXddHEJY+PDDDxk8eLBmjDCZTDg5OWEwGEhJSSE9PR2dToebmxtpaWkYDAby8/M1uU1JScHf379EeI6EhATy8vJwdXXVtru5uSGE4Ntvv8XDw4PvvvuO7777DoChQ4fy3//+l+bNm5Ofn89bb72Foig8/fTTZT6DhQsXcu+999KzZ08+++wz2rdvT1BQEJcvX9aM0TqdzmbASFI6RqORo0ePApQYSF64cKEWArG8dOnShW3btrFo0SLc3d1p1aoVLVu25O01p9Dp9Jw8sRookpeIiAgt5EijRo20trGyNG7cmBdeeKFK56ivpKamcuHCBaCoL1RVihs4MjIyOHnyJK1bt+bVV19l3bp1PPTQQ2zbtq1MA4gQgrlz5/L999/z3HPP8d///lcL7ZaSkkJgYCBpaWk0a9aMU6dOAeDp6cn48eMrVF4/Pz8A0tLS7G4/cOAAs2fPpkePHnTr1g0HBwdtMFYNNxYSEsLkyZOJjo7m0UcfBYpC9ADlcpSRVIz4+HhiYmKAfx0kunfvroXIHDNmDKNGjaJ3795kZ2eTnZ1NVlYWOTk5ZGdns2XLFvr168d3332Hk5NTmUYjvV6v1Qs1VBTYf68ODg5aaExrY5XZbObQoUOkpKTYOJOkp6cDaCFlAwMDbcpiMuXTtGlTMjIy0Ov1WmhPVQYdHR158cUXmTp1Kn369OH222/n008/5d577yU0NJSCggJ++uknRo0aRUBAAC4uLjz99NPMnTuXXbt2aX2O8mKtK+rqd0jTpk05e/as3W2hoaFXuTQSiUQikUgktUu9M0goitIUSAV0QojMWi6ODV26dLH5BYpirOp1dmPQRkVFERUVhRBCG7Rdv349bm5u9O3bl4yMDG3fxYsXa97rQKkGCYA33niDdevW8d///pdffvkFnU5Hfn4+7733Hh06dGD06NGVvse//vqLBQsW8Nhjj9kYO3x8fFAURfPWktQP1FkFxeP6qoOuOTk5ZGVlERsbS3JyMpcvXyY6OhpTYRhOTk7k5ORog9eNGzcGigwSUJT3obj3/KFDh9i2bRtPP/10hQZWp0+fzvPPP8+8efNsDBIGg4GhQ4fazSVRUFBAWlpajXnWXqskJydr7/TAgQOYzWb69etHWFgYgYGB7Nq1i/vuu0/bJzk5ucoGCSiKuf7YY4/xwQcfcOedd3LDDTfYbFcUhU6dOtGpUydeeeUVK7mKIzk5mYSEBObPn4/RaKSgoAAnJycaNGiATqfTBvW8vLy4cOECjo6OxMTEcPHiRaBo8MZ60NN60FI1coWEhJSQo8OHD9OuXTteeeUVEhMTmTBhAm3atMHd3Z39+/fj7OzMqlWrmDFjRpnGsk8++YTZs2czdOhQli1bhpeXF1A0ADR16lS7Bm1J2URGRnLy5EmAavOWdXV11fKAWGM2m9iwYQMzZ87k+++/Z+XKlZpBIjAwsMoGiWuR8sbot/YArw6KGzjS0tJISUmhQYMGJCUl0aZNG7Zv385XX33Fgw8+WOp53nnnHT766CMefPBBnnvuOa3NhCIjQlBQEAkJCbRr104zSFSGsgwS2dnZ3HnnnQQGBvLbb7/h7e1NYWEhly5d4tChQxw4cIDevXszbNgwIiIiiIyMBNBkU860qhms2wz4V9ZDQkLYvn07Dz30EGvWrOG3335Dr9fj7u6Oh4cH7u7uuLu707x5c5544gnNEFBe1PdZ/L2qfaHS8m3Fx8dz6dIlzp8/T9euXbX1qkFCNegWN3IkJCRw/vx5wsLCaNOmDYGBgRQWFlJYWEhBQQE7d+7kxRdf5NZbb0Wn0/HSSy/x66+/8uKLL/Ldd9+xYcMGLl68aOOc8sgjj/DBBx8wd+5cNm/eXMKYXBbVrStqgrNnz9oYgyQSiUQikUiuZ+qVQUJRlJHAG8Ah4LyiKG8D+UII+xlCrzJubm7azAhrhLCfoLF9+/Y4ODjQsmVLzcCwfv16Bg4ciF6vJy8vz+ZD3c3Njfz8fKAofEBpiVH9/Px48sknef7551m4cCG33HILCxYsIDExkVdffZXMzEwbY4c1mZmZeHh42N1msViYM2cOvr6+WlJsFQcHhzrrkSSxjxACR0dHzSvLWkbVv11cXBBC0KlTJ3Q6HSdPnqSgoACRU+SZl5aWRtOmTTGbzTg7O+Ps7ExCQoLdATjVk9zHx4dbbrlFk2Uokmc1NIU99Ho9Dz30EC+++CJbt24t4Tlnz3M2LS2tWj1rrxeSk5Np27YtRqORrVu3AtC5c2fy8vLo1asXu3btwmg0aqGLkpOTadmyZbVc+4UXXmDZsmU8/PDD7N+/32YwQo0zaP3/P38RHx9P586dGT58uLZdDe8lhECv12sGlKCgIGJjYwkNDSUvL48dO3YwcuRIgoKC8PPzQwhBamqqJsMNGzbUQlcUv76a0Ltbt242Brbjx4+TkpLCypUrKSgo4Omnn7bR1+p5hBC8/vrrvPzyy4wfP56vvvoKg8GgbVcURRtcUteZzWbi4+MJCQkpMVgjw6/8+5w6duzInj1FSTv1en2Z+sVisWjJ1Ms6pz0KCwu5eDGJwsJC7rzzTuLi4vj111958sknURSFwMBAjhw5UrmbuYbJzc3VvLnLMk5be4CXl7LelzrA7+npSVxcHIGBgeh0OkJCQkhISKBz5844Ojry3HPPMWbMGHQ6HefOnSMuLo7z589z7tw5Tp8+zaZNm5g8eTLvvfdeiWvq9XqCgoI4deoUY8aMYd26dVy6dMnu4Gp6enqJems2m4CiWVuqcVINQadisVh46qmniImJ4c8//8TR0RGLxcKlS5dITk6mRYsW6PV6evfuDUDbtm213yuFOrveKUt+SgtRmJaWxurVqxk7diy+vr42bUZsbCw//fQTt99+O2FhYSxatIiMjAytzwT/zkrNyckhIiKCbt262bQD5THglfZe7fWFrO8xODiY/Px8kpOTCQkJwWw2oyiKZgRTDfEGg4GCggJNn164kMj48eOZOnUqw4cPx8PDwyah+o8//sgdd9zBhg0bGDFiBI0aNeLRRx/l3Xff5YEHHmDhwoU0aNCAYcOGYTabcXR0xMXFhTfeeIN77rmH22+/nR9++AFHR8dyOZXI7xCJRCKRSCSS+kW9MUgoitIJ+AT4P8AAjBdCGBVF0f2zXVeaYUJRlPuA+wCaNGlSI+UrrbOsfrjY+4BxdXWlY8eO2raYmBji4uJ47LHHUBQFX1/fUs9rsVjK9Jp98MEHWb9+PR999BEjR47km2++Yfjw4UyYMIGsrKxSPa9UTy17/PHHH2zZsoVPPvlEG4yUXB35qgxXmuZfFtYfq6o89OjRg5SUFM6ePYuiKGRn55CYmEivXr20D9CAgACcnJwYMGBAiXMeP36cXbt28dprr9G6dWubbWpc47LKc//99/POO+/w3HPPaQPlZd2rtbdcfR2orQ3ZSk5OZtCgQTg4OLBv3z7atGmjDeb37duXlStXcvHiRZsZEtWFl5cXH3/8MRMmTOCTTz5hzpw52jYXFxe77/HSpUvk5hqZM2eOJodOTk6cOXPGZtBeHdD59ttviY+PZ9y4cURHR7Nt2zYKCwuZOXOmdk510NLPz8/mmsXDvXh4eGixrq0HjMLCwkhOTuaPP/7g9ttvJzw83KbMOp2OY8eO8dBDD7Fjxw769+/Pk08+idls1uLAGwwGuwNP9sKBVIa6qreuRHnqssViwWKxaIOCauiu0hBClOmlbz1gXnxAUq/Xk5KSQufOnWnXrh1jx47liSee4O+//6ZDhw4EBgaSlFRksCjvTK36qq9UyiNbpXlzW52jRsqmGjji4uKIjY0F/q1Hrq6uBAQEMHDgQHbt2kXz5s1LHO/n50doaCgdOnTglltuKRH+UtURgYGBbN26lXbt2lFQUEB+fr7dkCw6na6EbFqH+lRnxV6+fNnGoLFq1Srmz5/Pf/7zH3r16kVmZiY6nc6m3bMuv5ubmzYTtz7LV23qLfXdqjMNLBaLFqZr5cqVbNmyBYvFUiLXy7Jly9iwYQN6vV5z5vHx8dG2F885M3DgwBLXLs2AV9a7VLfZ6wtZ6zsnJyftmyAkJAQHBwcURdEcl1QZ9/Dw0LYlJSVRUFDA7NmzbRxEdDqddo3Jkyfz5JNP8sUXXzBy5EgMBgPPPPMMCxcu5MknnyQyMpJHHnlEM2SozJgxg0uXLmnt/w8//CBnudYzQkNDS5XN0NBQLVSsRCKRSCSS65t6Y5AAAoCtQohtiqI0AT5UFOUTwKQoyudCiNjSDhRCfAV8BdC9e/c6O1d2/fr1ADb5I8rDhQsX+O2335g5c6b2waooCu+//z79+/dn5MiR5OTk8OKLL1a6bCaTiWeffZbWrVuXKznr9UR9ka+qEhUVxd69e+nduzdnLnkSExNLWlqaTfJBf39/UlNT7R7/3Xff0aBBA/7v//6vzOusXr2aRYsWERwcTOvWrWnbti2tWrXC39+fu+++m//973+cP3/eJtaxPa4Fb7mrLVtqaIeGDRtSWFjIvn37uOWWW7Ttai6D3bt3c+ONNwLVa5AAGDduHOPGjePll19mypQpZcZVFkJw7lw8Li4uNuU8e/Ysx48fx2KxaINyRqOR1atXM2vWLJo3b07Dhg2ZPHkyer2em266STs2PT2dtWvXMmrUKG0QJD8/n+joaDw9Pbl06RJQctaN9YCRq6sr69atIy8vj2eeecZmv+zsbF599VU+/PBDPD09+fzzz+nTpw8tW7YkLy+PuLg4PDw8yMzMJD4+nkGDBtkYiYuHA6ks17LeSkpKYsuWLVoy6cqEbDKZTPz9999ERUVx/Phxjh07xrFjxzhz5gzffPMNd9xxBwA5Obnk5OQwZcoUAEaPHs2cOXP47bffNIOExWIhNTX1upmpVR7Zqql8KHl5eZw6dYrmzZvbGAvS09NZv349I0aMwMfHp0Q9KiwspGHDhowePZpWrVqxYMECdu7cSePGjcnNzaVPnz507dqVBg0akJiYyN69e+0mJlZDQnl7e3P58mVN/5w4caJSM8kMBgMGg0HTOwCJiYk88MADdO3alVdeeUWTb9V7/lqWs9rUW8XDfRmNRk3njx8/HkVRGDduXInj7rrrLhRFYcaMGTbrS5vtprY3LVu21GZQXMmAVxbl6QudP38eoEQOCWdnZ212mTr7wmKxkJBwHg8PjxKhFa1xdnbmnnvu4a233tIcBDw8PHjxxRd5+OGHAUo8E5XZs2cDaEaJH3/8sULhmyS1S1kGh/psEJVIJBKJRFK9lO4SWPc4BtypKMrXQCSwAFgNpAPPKopS7+afm81mzp07h9lsBooSWgcGBtr1yiuNtLQ0unfvzsMPP8zs2bNtwlKEh4fz5JNPkpWVxW233UabNm0qVU4hBK+99hqxsbHMmzdPfhRcpxw/fpzz58+Tk5NDYWEhKSkpmpeoir+/vxbeQsVkMrFw4UIOHTrEE088UWqoiL/++oubb76ZSZMmsWfPHr755hsefvhhBg8eTFBQEDfccAP33HMPFouFZ555ptSQZZLKo3pE5uTkEBsbS2Zmps3Ad+PGjVEUhUOHDpGTkwNgM1BWXXz00UcoisJLL71U5n4RERH/lDHYZtDZz8+Phg0bajMdoGhg77fffgOK7nPQoEH4+/tz55134urqyv79+zEajaxdu5ZNmzaxdu1a7djo6GiOHTvGpUuXCAoKshuj2tXVFU9PT1xdXTGbzXz++ef069ePVq1aafvs37+fTp06MW/ePO644w5OnjzJAw88QKdOnXB2dub8+fNcuHCBs2fPsnXrVv7880927tyJxWLRkss7OjoSFhYm9XApWCwWdu/ezZEjR7SZJBUhLS2NKVOm4OHhQefOnZk+fTpvv/020dHRdOjQgY4dO/LAAw+wadMmAFLTigywamgcHx8fwsLC2LBhA4AWmi4lJaU6bk9yBaKjozlx4oTNu8/NzeXzzz9n48aN2nuxrkcWi4WzZ89y6dIlGjVqpBk433zzTTp16oQQgqysLPz8/NDpdDRu3JhJkyZp4ZSs8ff3JygoSMuxlZKSgk6nY/369ZWKHf/XX3/ZeKsDPP744+Tm5rJ48WKcnJw0447q9W42m4mLi9P6lpLqQX23artiMBjw9PTEYDDg5+fH3XffbdPmqAQGBjJ37lwtobSKOtstPj7eZn10dLSWYy4uLg6TyVTiHVc3aqJl6/Y+OzsbvV7Pxo0bgX9nZixYsIDcXCPBwUXGurLk+v7770dRFObMmaPpwpkzZ9KuXTt69epF+/btSz129uzZvP766yxbtoxXXnmlyvcokUgkEolEIqlb1OkZEoqi3AC0AOKFEJv/mRnRjqKE1m//s08a8CiQX/qZ6ibx8fGaF0loaChdunRh+fLl7N69u0yvIxUhBA8++CDp6en069ePL7/8ksTERH744Qdtn0cffRQ/Pz+7XlvlQQjBG2+8wQcffMCMGTOqlBBbUvexDkFQ3ItpzJgxFBYW0qVLFw7uTcPX15d1R48yefJkPv/8cwICAhg3bhwHDx7k0Ucf5ZFHHiEgIICPP/6Y8+fPM2TIELuzI86cOcOrr77K0qVL8fLyYvLkyYSEhDBgwAA6dOjAiRMnOHjwIC+//DLffPMNLVq0IC0tDaPRKONgVzO+vr6MHTuWefPmERgYSLdu3Xj99ddp27YtvXv3Zty4cTg5OdGjRw+GDx+Oj48P48ePr/ZyNGnShLCwsFJz3aiog7zu7rZh5ry8vOjQoYNNKBSdTsf06dMJCgoiICCAtm3batuPHj3KoUOHABg1apTNL0DTpk2Jj4+nefPmpYa0s/b4dnBw4KabbuLnn3/mxRdf5KWXXuLLL79k9uzZBAUFsX379hL5hoxGI56engQHB9O8eXOCg4M5efIk/fr1s/HElTJfNkajkQ4dOqDT6QgMDOTtt99m//79Wgz9K/Gf//yH1atXM3z4cMaPH0/Hjh3p2LGjJitJSUkMHz6c0aNHs2DBAny8fUi8kMj06dP56aefmD9/PqdOneI///kPf/zxB//5z3/o06ePjWFKUnO0bNkSRVFsHDuOHTuGo6MjzZo102Z2WWM0GnF0dMTb21sbUFbrc9++fTGZTLRp04b8/HzN8GndVloPEqshocaOHUurVq2YNm0a48aNY8mSJfj4+PDaa6+Vy0NYCMFnn33GRx99hJ+fnxYG6PTp06xatYq77rqr1JBF1RXWTWKLmouooKCAuLg4QkJCqqSPS5vtps6k0ev12nssHvavutm7dy/u7u6Eh4drBobp06fz/fff89Zbb9GrVy86d+7MypUreeCBBxj82Kf4+vpdsV1q0qQJr732Gv/9739JTExk6dKlNGzYsETYTXsUFhZy4MABFEWhV69e1XavEolEIpFIJJI6gpootK4twHAgDXiRoiTWLwN9AAVYD9z9z35TgW2AT3nO261bN3E1eWrhbvHkd7uFxWIpseTn54uYmBiRm5srzGazuHz5smjUqJHo16+fMJlMIjMzU+Tk5NhdsrKyxNdffy0A8dZbb4mCggLxwQcfCEVRRPfu3cWJEydEWlqa3eXMmTOlbktISBBZWVkiKytLZGZmirlz5wpATJ8+XWRkZFzVZ1cXAQ6KOiRflcWePFosFpGVlSUSEhJEZmamKCwsLLEUFBSIS5cuiScW7BRPLNgp3n77beHk5CR8fHzE119/LdatWyeWLl0qunTpIgABiKCgIPHWW2+JzZs3a7KVlZUl4uLixAMPPCAcHR2Fi4uLmDNnjkhOThZpaWli1apVIi0tTZjNZmE2m0Vubq6YOXOmAISjo6P4v//7P3Hx4kXx008/iWPHjgmz2Vzbj7RaKEu+rpZs5eXliTFjxghAvPnmm6Jbt27au3R2dhb/+9//RJMmTYSPj4+IiIio1mtby6K/v7+4//77tf8LCwtLyOumTZtE97vfFJNeWizS0tK09SaTSSQmJgqTyWRXvrOysmzOm5OTI/bu3StycnJs9levGRMTI9atWydiYmJsthensLBQZGVliYKCAmEymcTdd9+tPTtAjBw5UiQmJtqtewUFBSIrK0uYzeZStxUUFJRad+2Vx5q6IFs1TfFnVVhYKIKDg8XEiROFyWQqdcnPzxeFhYXi0KFDQlEU8eCDD2ptcHF5sVgs4tKlS2LgwIECEJNf/knc8+EaERAQoL3nWbNmiYULFwoHBwfRu3fva77trGuyVbxeZGdni3379ons7Gy7eqSsuqduz8zMtKl/9nRJ8eXChQuiTZs2wmAwiLFjxwpATJs2TZw7d06kpqaK1NRUERUVJc6cOWOz3PPhGjHo0U+K5GvyZE2XmUwm8eSTTwq9Xi/effddsWfPHrv3r/Yt8/PzK6wn6hq1IVvW+j8rK8tGZgoLC0VMTIxYv359ifbAnmyVZyntOOv3WFP3qC5t2rQRo0aN0q6rytvhw4dFRESESEpKEr/99ptwdHQUvXv3Fg9/uUk8sWCX3edj715++eUXYTAYRGhoqIiIiND6duqSn58vCgoKbJZZs2YJQLz33nvVfv9C1E5/vuizu27w1MLd4qmFu6/6devSM6hJriRfcpGLXOQiF7nIRdTNGRJKkftYd+AJIcRCRVGWAROBSUAe8A7wlaIoI4EuwAQhRHqtFbiSODo60qRJE81bzs3NjWeffZZHH32UdevW2cTmL05sbCyzZs1i8ODBPPHEE0DRbIimTZsybdo0RowYwc8//1xur8zMzEzOnz9PXFwc6enpxMfHc/z4cdauXcv06dP57LPPamyquKT2KB7DWPUCLi0BrKIo/8QwLpLZWbNmMXLkSB566CHuvfdeunTpwuzZs3nrrbc4ePAgRqORPn36aHGQLRYLe/bs4ddff+XHH3/EaDRyxx138J///EfzaC0sLMTT09MmvnhaWhrTpk1j69atxMXFERYWxrZt29i6dSsXLlzA19e33ueLqCs4OzuzfPlyxo8fzzPPPMObb76JTqfjxIkTvPfee7z++utkZWWxceNGunbtWiNlMJvNpKamXvGdqjHiMzOzWLt2LbfffjtQJC+JiYlkZGQQFRXF0KFD8fLyKlW+nZ2dadeunSanxSlv3gY1j4QQAjc3N7766iu8vLzYsmULI0aM4NZbby31WJ1Oh5ubG0KUDH+hbpNcmeLPauTIkSxZsgSz2VxmmCshBHPmzMHHx4fbbruNtLQ0GjRoAJSUF29vb9auXcuMGTM4feYMQUGB/PHHHyxbtgxvb2+CgoK455576NSpE+vWrcPT07NmblZSLlxdXenRo4cW+kzNtaBSVt2z3m49s+FKbSVAo0aN+OWXX5gyZQobNmxg3LhxLF68mMWLF9OmTRs6duxI06ZN6dq1K23btsXNzY0ffviBo+dc0OkUPv74Yx544AHtfHl5eXz33XfcfPPNDBgwoNRwN2o4KknVsM4LZK1TqiuPz5VQ32NNxtw3Go1s3bqVEydO2M3n0K5dO6AopOwtt9xC27Zt+fzzz/nf7lT0enO526VbbrmF0NBQJk6cyMCBA/nhhx9scjcV5/PPP+fDDz/kkUce4bHHHqvczUkkEolEIpFI6jR10iAhhBCKouQA0xVFWSGEOKYoSi5wBzBCCPGWoijDgXDgpBAivswT1gGsP3RzcnKIiIigW7duODs722y7++67+eCDD3j22WfZvHmz3QEUs9nMzJkzcXJy4uuvv0ZRFO0cN910E5s2bWLs2LGMGjWK7777rkRokMuXL7Nr1y527tzJnj17iI2NJSsry2YfBwcHGjduzKOPPsprr70mjRHXGKq8xMfHExtblA++WbNmVgaHKx+r0rp1azZu3MjXX3/N3Llzue+++7jrrruYMGECer0ei8XCsWPH2LZtG3v27CExMREXFxd69erFu+++q4XCUONdf/PNNzz66KPceOONfPrppyQnJxMSEkKDBg14//33mTx5Mm3btqVHjx7k5eXRtWtXuzH9JZXH2dmZH3/8kdtvv51nnnmGDz/8kOHDhzNq1CiysrL47bffKm2MUOUnJyeH/fv307NnT5tk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u+mb8pleTDMx2WjUaOxdsIIVAUFARIrUGcrM3O8PvDcDzNAEae/veeYZmNvee+95z1vOec9h//79XHbZZVx99dWYTCZ++uknNm3axMiRI4Far9/NmzdjNBrrJHtNSkpi6dKlDBkyhIqKimblBbPVth0/fpxJkyaRm5vLm2++yTXXXMOWLVv405/+RL9+/Rg9ejQvvfQS+/btY/DgwWzevJk333yTzZs3M3LkSD744AMsFgtlZWWsWbNG6Jo2QtHxhYWFLV4F1NaJnleuXMlf/vIXrr76atLS0rjzzjv59NNPiYyM5L777uPUqVN1VmEDjBo1Cp1O16KwTSdPnsTNzQ1fX191Bc7VV18N/PE8cnNzL3hVXXx8PMOGDWPAgAGdJtzbhVBWVsaIESMoLi7mxx9/vODzybLMr7/+yvz58+nXrx8333wz27dvZ8GCBfz+++9kZmYyY8YMnn76aQ4fOUxNTdMR0b744guuvPJKBg4cyMqVK/H392fChAn07t2bUaNGNSuHRP1+T33i4+MZM2YMQ4YM6VSh/AQCgUAgELQvHWqQqGeMeA2IASYq22VZPirL8l5ZljM6qIgdguKlZG2QsA7fce211+Lg4MC3337bovNu2LCBESNGoNPp2LRpk1ga28NR8kbIsqx6LkHtJKyvr28zDBIyu3btatXy+xMnTrBhw4YGv4eFhVFcXFwnv4VAYAtZlrntttvIP5tPWFgY06dPZ9asWVRUVJCQkMAPP/xAREQEL7zwAsHBwcydO5ft27fj6OhYxwhXXV3N9ddfz6lTp/jf//6nhpxQCA4OZsiQIQ3iKY8YMQInJyd0Oh2nT58mNTWVu+66i/j4eEaMGEFCQoIankX53rhxI15eXkRERBAUFATU5hqwNgK7u7sTERFBUlISW7Zs4ffff+80iX87E9XV1VRWVgJNGyROnz6tTt5aoxgkrPNI7N69m2HDhpGSksLx48d55513iIqK4quvvmL27NnMmjWL0NBQVq5cybBhw9SJYut3Leg6yLJMRUUFsiyj0+mIiYnB2dmZf//735w9e5aFCxfi6enJV199xeWXX07fvn258847ue222xgxYgQHDx7kjTfe4NChQ1x77bV1vIO3bt3KN998w5YtW9TfNBoNsixTU1ND//79iYqKshu2yZqqqqo6k4f79u1j8uTJVFVVsW7dOh544AE+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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "corner.corner(sampler.flatchain[2500:], \n", + " labels = [\"P1\",\"P2\",\"l1\",\"l2\",\"h1\",\"h2\",\"k1\",\"k2\",\"m1\",\"m2\"], \n", + " truths = [21,30,0,0,0.1,0,0,0,1e-3,1e-3]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That's a pretty good recovery of the correct parameters (but to be fair, we started pretty close to them). Let's draw a few random samples from the posterior and plot the corresponding RV curves so we can compare our model to our data." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1)\n", + "ax.set_xlabel(\"time [days]\")\n", + "ax.set_ylabel(\"radial velocity [m/s]\")\n", + "\n", + "times_plot = np.linspace(0,times[-1],1000)\n", + "RVs_plot = np.zeros(len(times_plot))\n", + "Nplot = 20\n", + "indx = np.random.choice(7500, Nplot, replace=False)\n", + "for i in range(Nplot):\n", + " s = setup_sim(sampler.flatchain[2500+indx[i]]) # skipping burn-in\n", + " for j, t in enumerate(times_plot):\n", + " s.integrate(t)\n", + " RVs_plot[j] = s.particles[0].vx\n", + " ax.plot(times_plot/(24*60*60), RVs_plot, color=\"black\", alpha=0.13)\n", + " \n", + "ax.errorbar(times/(24*60*60), RVs, yerr=20, fmt=\"o\"); \n", + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.9" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/RealtimeVisualizations.ipynb b/rebound/source/ipython_examples/RealtimeVisualizations.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..329ae41fdbefb451e93b40486c70d09452cf0d4b --- /dev/null +++ b/rebound/source/ipython_examples/RealtimeVisualizations.ipynb @@ -0,0 +1,295 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Real-time Visualization Widget\n", + "\n", + "\n", + "REBOUND comes with built-in real-time 3D visualizations. This feature can be used without python. This notebookbook describes how you can access real time visualizations directly from a Jupyter notebooks. Under the hood, the code that is running is the same as the one providing OpenGL visualizations. \n", + "\n", + "Using the real-time visualization widget makes setting up a simulation and debugging it very interactive and intuitive. You immediately see if the particles are roughly in the place where you want them, doing roughly what you expect them to do.\n", + "\n", + "For this widget to work, you will need a browser that supports WebAssembly and WebGL. All modern browsers should have those features enabled by default.\n", + "\n", + "Let us start this demo by setting up an empty simulation and calling the `widget()` function on the simulation object. This will create a new widget and attach it to the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.widget(size=(400,400))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next up, lets add some particles to the simulation. The widget updates automatically when a particle gets added or removed. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "sim.add(m=1) # add a star" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(10):\n", + " sim.add(m=1e-3,a=0.4+0.1*i,inc=0.03*i,omega=5.*i) # Jupiter mass planets on close orbits\n", + "sim.move_to_com() # Move to the center of mass frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Drag the widget with your mouse or touchpad to look at the simulation from different angles. Keep the shift key pressed while you drag to zoom in or out. Try pressing the \"w\" button. This will toggle orbits on and off.\n", + "\n", + "Next, we will try to integrate the orbits forward in time. Because the planets are very massive and on close to each other, the system will go unstable very quickly. By default, REBOUND is using the IAS15 integrator which can resolve close encounter. During each close encounter the instantaneous orbits of the planets show in the widget will change rapidly. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrate(500)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The widget will remain open until you delete the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "del sim" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are some important things to understand regarding how these widgets work. We'll go over those next.\n", + "\n", + "### REBOUND is a web server!\n", + "REBOUND includes its own web server. The widget connects to this web server to get the visualization code (a version of REBOUND compiled to WebAssembly) and the simulation data itself (in the form of Simulationarchive binary data). \n", + "By default, the port the web server uses is 1234. You can start this webserver manually (without the widget) by running" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.start_server()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can then connect to the REBOUND webserver by opening a new browser window at http://localhost:1234 or http://127.0.0.1:1234. If you want to stop the server, but not delete the simulation, you can run:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "sim.stop_server()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Multiple simulations\n", + "\n", + "You can visualize multiple simulations at the same time. Each simulation needs to use have its port. For example:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim1 = rebound.Simulation()\n", + "sim1.start_server(port=1234)\n", + "sim2 = rebound.Simulation()\n", + "sim2.widget(port=1235, size=(200,200))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Simulation 1 is shown in the widget above. You can view simulation 2 by going to http://localhost:1235 or by opening another widget:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim2.widget(size=(200,200))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "del sim1, sim2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Visualizing simulations on a remote server\n", + "\n", + "Sometimes you might run a simulation on a remote server or computing cluster. When connecting to the remote server using ssh, you can forward the visualization ports the same way you would forward the port required for jupyter notebooks (8888 by default). REBOUND uses port 1234 by default, so you might want to enable port forwarding using \n", + "\n", + "```bash\n", + "ssh username@remotecomputer -L 1234:localhost:1234\n", + "```\n", + "\n", + "You can then connect to the visualization as usual, either using the widget you get with `sim.widget()` or by pointing your browser to http://localhost:1234." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Security and resource considerations\n", + "\n", + "The REBOUND web server provides a quick and easy way to visualize simulations. It is not intended to be exposed to the public internet because a malicious person might be able to gain access to your computer. \n", + "\n", + "The visualization uses a considerable amount of CPU resources. You might want to disable it if you no longer use it. \n", + "\n", + "Depending on your simulation (e.g. for simulations with a large number of particles), the communication between the REBOUND web server and your browser might use a lot of bandwidth. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/ipython_examples/RemovingParticlesFromSimulation.ipynb b/rebound/source/ipython_examples/RemovingParticlesFromSimulation.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..5f1dcf70e546520f1140a4d46c7a99e57e8697f8 --- /dev/null +++ b/rebound/source/ipython_examples/RemovingParticlesFromSimulation.ipynb @@ -0,0 +1,296 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Removing particles from the simulation\n", + "\n", + "This tutorial shows the different ways to remove particles from a REBOUND simulation. Let us start by setting up a simple simulation with 10 bodies, and assign them unique hashes, so we can keep track of them (see [UniquelyIdentifyingParticlesWithHashes.ipynb](../UniquelyIdentifyingParticlesWithHashes))." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Particle hashes:[c_uint(0), c_uint(1), c_uint(2), c_uint(3), c_uint(4), c_uint(5), c_uint(6), c_uint(7), c_uint(8), c_uint(9)]\n" + ] + } + ], + "source": [ + "import rebound\n", + "import numpy as np\n", + "\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1., hash=0)\n", + "for i in range(1,10):\n", + " sim.add(a=i, hash=i)\n", + "sim.move_to_com()\n", + "\n", + "print(\"Particle hashes:{0}\".format([sim.particles[i].hash for i in range(sim.N)]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us add one more particle, this time with a custom name:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Particle hashes:[c_uint(0), c_uint(1), c_uint(2), c_uint(3), c_uint(4), c_uint(5), c_uint(6), c_uint(7), c_uint(8), c_uint(9), c_uint(4066125545)]\n" + ] + } + ], + "source": [ + "sim.add(a=10, hash=\"Saturn\")\n", + "print(\"Particle hashes:{0}\".format([sim.particles[i].hash for i in range(sim.N)]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let us run perform a short integration to isolate the particles that interest us for a longer simulation:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "Noutputs = 1000\n", + "xs = np.zeros((sim.N, Noutputs))\n", + "ys = np.zeros((sim.N, Noutputs))\n", + "times = np.linspace(0.,50*2.*np.pi, Noutputs, endpoint=False)\n", + "for i, time in enumerate(times):\n", + " sim.integrate(time)\n", + " xs[:,i] = [sim.particles[j].x for j in range(sim.N)]\n", + " ys[:,i] = [sim.particles[j].y for j in range(sim.N)]\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig,ax = plt.subplots(figsize=(15,5))\n", + "for i in range(sim.N):\n", + " plt.plot(xs[i,:], ys[i,:])\n", + "ax.set_aspect('equal')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "At this stage, we might be interested in particles that remained within some semimajor axis range, particles that were in resonance with a particular planet, etc. Let's imagine a simple (albeit arbitrary) case where we only want to keep particles that had $x < 0$ at the end of the preliminary integration. Let's first print out the particle hashes and x positions." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hash\t\tx\n", + "c_uint(0)\t0.0\n", + "c_uint(1)\t0.9510565162930091\n", + "c_uint(2)\t-1.0717399536588612\n", + "c_uint(3)\t-2.2765351809117464\n", + "c_uint(4)\t0.15703926303973234\n", + "c_uint(5)\t-4.897155109586999\n", + "c_uint(6)\t-4.824394540939856\n", + "c_uint(7)\t-2.2862837234997975\n", + "c_uint(8)\t2.111033731282993\n", + "c_uint(9)\t5.290067270630363\n", + "c_uint(4066125545)\t-8.776421396714463\n" + ] + } + ], + "source": [ + "print(\"Hash\\t\\tx\")\n", + "for i in range(sim.N):\n", + " print(\"{0}\\t{1}\".format(sim.particles[i].hash, xs[i,-1]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that 4066125545 is the hash corresponding to the string \"Saturn\" we added above. We can use the `remove()` function to filter out particles. As an argument, we pass the corresponding index in the particles array." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of particles after cut = 7\n", + "Hashes of remaining particles = [c_uint(0), c_uint(2), c_uint(3), c_uint(5), c_uint(6), c_uint(7), c_uint(4066125545)]\n" + ] + } + ], + "source": [ + "for i in reversed(range(1,sim.N)):\n", + " if xs[i,-1] > 0:\n", + " sim.remove(i)\n", + "print(\"Number of particles after cut = {0}\".format(sim.N))\n", + "print(\"Hashes of remaining particles = {0}\".format([p.hash for p in sim.particles]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By default, the `remove()` function removes the `i`-th particle from the `particles` array, and shifts all particles with higher indices down by 1. This ensures that the original order in the `particles` array is preserved. Note that this is helpful for example if you use an integrator such as WHFast which uses Jacobi coordinates.\n", + "\n", + "By running through the planets in reverse order, we are guaranteed that when a particle with index `i` gets removed, the particle replacing it doesn't need to also be removed (we already checked it).\n", + "\n", + "If you have many particles and many removals (or you don't care about the ordering), you can save the reshuffling of all particles with higher indices with the flag `keep_sorted=0`:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of particles after cut = 6\n", + "Hashes of remaining particles = [c_uint(0), c_uint(2), c_uint(4066125545), c_uint(5), c_uint(6), c_uint(7)]\n" + ] + } + ], + "source": [ + "sim.remove(2, keep_sorted=0)\n", + "print(\"Number of particles after cut = {0}\".format(sim.N))\n", + "print(\"Hashes of remaining particles = {0}\".format([p.hash for p in sim.particles]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the order of the `particles` array has changed.\n", + "\n", + "Because in general particles can change positions in the `particles` array, a more robust way of referring to particles (rather than through their index) is through their hash, which won't change. You can pass `sim.remove` either the hash directly, or if you pass a string, it will be automatically converted to its corresponding hash:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of particles after cut = 5\n", + "Hashes of remaining particles = [c_uint(0), c_uint(2), c_uint(5), c_uint(6), c_uint(7)]\n" + ] + } + ], + "source": [ + "sim.remove(hash=\"Saturn\")\n", + "print(\"Number of particles after cut = {0}\".format(sim.N))\n", + "print(\"Hashes of remaining particles = {0}\".format([p.hash for p in sim.particles]))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "If you try to remove a particle with an invalid index or hash, an exception is thrown, which might be caught using the standard python syntax:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A runtime error occured: Particle to be removed not found in simulation. Did not remove particle.\n" + ] + } + ], + "source": [ + "try:\n", + " sim.remove(hash=\"Planet 9\")\n", + "except RuntimeError as e:\n", + " print(\"A runtime error occured: {0}\".format(e))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/rebound/source/ipython_examples/Resonances_of_Jupiters_moons.ipynb b/rebound/source/ipython_examples/Resonances_of_Jupiters_moons.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..a2834a557da99b161c8ac54a0fc7bb5899d98382 --- /dev/null +++ b/rebound/source/ipython_examples/Resonances_of_Jupiters_moons.ipynb @@ -0,0 +1,496 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Resonances of Jupiter's moons, Io, Europa, and Ganymede\n", + "\n", + "Example provided by Deborah Lokhorst. In this example, the four Galilean moons of Jupiter are downloaded from HORIZONS and their orbits are integrated forwards in time. This is a well-known example of a 1:2:4 resonance (also called Laplace resonance) in orbiting bodies. We calculate the resonant arguments see them oscillate with time. We also perform a Fast Fourier Transform (FFT) on the x-position of Io, to look for the period of oscillations caused by the 2:1 resonance between Io and Europa." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us first import REBOUND, numpy and matplotlib. We then download the current coordinates for Jupiter and its moons from the NASA HORIZONS database. We work in units of AU, days and solar masses." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Jupiter'... \n", + "Found: Jupiter Barycenter (5) (chosen from query 'Jupiter')\n", + "Searching NASA Horizons for 'Io'... \n", + "Found: Io (501) (chosen from query 'Io')\n", + "Searching NASA Horizons for 'Europa'... \n", + "Found: Europa (502) (chosen from query 'Europa')\n", + "Searching NASA Horizons for 'Ganymede'... \n", + "Found: Ganymede (503) \n", + "Searching NASA Horizons for 'Callisto'... \n", + "Found: Callisto (504) \n" + ] + } + ], + "source": [ + "import rebound\n", + "import numpy as np\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "\n", + "sim = rebound.Simulation()\n", + "sim.units = ('AU', 'days', 'Msun')\n", + "\n", + "# We can add Jupiter and four of its moons by name, since REBOUND is linked to the HORIZONS database.\n", + "labels = [\"Jupiter\", \"Io\", \"Europa\",\"Ganymede\",\"Callisto\"]\n", + "sim.add(labels)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us now calculate the mean motions and periods of the inner three moons." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "n_i (in rad/days) = 3.547, 1.768, 0.879\n", + "P_i (in days) = 1.771, 3.553, 7.149\n" + ] + } + ], + "source": [ + "os = sim.orbits()\n", + "print(\"n_i (in rad/days) = %6.3f, %6.3f, %6.3f\" % (os[0].n,os[1].n,os[2].n))\n", + "print(\"P_i (in days) = %6.3f, %6.3f, %6.3f\" % (os[0].P,os[1].P,os[2].P))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "We can see that the mean motions of each moon are twice that of the moon inner to it and the periods of each moon are half that of the moon inner to it. This means we are close to a 4:2:1 resonance." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's move to the center of mass (COM) frame and plot the orbits of the four moons around Jupiter:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim.move_to_com()\n", + "op = rebound.OrbitPlot(sim, unitlabel=\"[AU]\", color=True, periastron=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that REBOUND automatically plots Jupiter as the central body in this frame, complete with a star symbol (not completely representative of this case, but it'll do).\n", + "\n", + "We can now start integrating the system forward in time. This example uses the symplectic Wisdom-Holman type `whfast` integrator since no close encounters are expected. The timestep is set to 5% of one of Io's orbits." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrator = \"whfast\"\n", + "sim.dt = 0.05 * os[0].P # 5% of Io's period\n", + "Nout = 100000 # number of points to display\n", + "tmax = 80*365.25 # let the simulation run for 80 years\n", + "Nmoons = 4" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similar to as was done in the Fourier analysis & resonances example, we set up several arrays to hold values as the simulation runs. This includes the positions of the moons, eccentricities, mean longitudes, and longitude of pericenters." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "x = np.zeros((Nmoons,Nout))\n", + "ecc = np.zeros((Nmoons,Nout))\n", + "longitude = np.zeros((Nmoons,Nout))\n", + "varpi = np.zeros((Nmoons,Nout))\n", + "\n", + "times = np.linspace(0.,tmax,Nout)\n", + "ps = sim.particles\n", + "\n", + "for i,time in enumerate(times):\n", + " sim.integrate(time)\n", + " # note we use integrate() with the default exact_finish_time=1, which changes the timestep near \n", + " # the outputs to match the output times we want. This is what we want for a Fourier spectrum, \n", + " # but technically breaks WHFast's symplectic nature. Not a big deal here.\n", + " os = sim.orbits()\n", + " for j in range(Nmoons):\n", + " x[j][i] = ps[j+1].x \n", + " ecc[j][i] = os[j].e\n", + " longitude[j][i] = os[j].l\n", + " varpi[j][i] = os[j].Omega + os[j].omega" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we plot the eccentricities as a function of time, one can see that they oscillate significantly for the three inner moons, which are in resonance with each other. Contrasting with these large oscillations, is the smaller oscillation of the outer Galilean moon, Callisto, which is shown for comparison. The three inner moons are in resonance, 1:2:4, but Callisto is not quite in resonance with them, though it is expected to migrate into resonance with them eventually.\n", + "\n", + "Also visible is the gradual change in eccentricity as a function of time: Callisto's mean eccentricity is decreasing and Ganymede's mean eccentricity is increasing. This is a secular change due to the interactions with the inner moons." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/wAAAHACAYAAAAfhmMEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydd5gUVdbG3yEMOWck5yhRsoqKghmz7oqCfLq6ZgyrriLmnBPqrsIa1siaRZEoOYtEBck5CAMDDJO+P3ru1Knqm6t6esL9Pc88Xd1ddbumw6170ntScnNzc+FwOBwOh8PhcDgcDoejWFEq2SfgcDgcDofD4XA4HA6HI3qcwe9wOBwOh8PhcDgcDkcxxBn8DofD4XA4HA6Hw+FwFEOcwe9wOBwOh8PhcDgcDkcxxBn8DofD4XA4HA6Hw+FwFEOcwe9wOBwOh8PhcDgcDkcxxBn8DofD4XA4HA6Hw+FwFEOcwe9wOBwOh8PhcDgcDkcxpEyyT6CokpOTg23btqFKlSpISUlJ9uk4HA6Hw+FwOBwOh6OYk5ubi4MHD6Jhw4YoVUodv3cGvyXbtm1D48aNk30aDofD4XA4HA6Hw+EoYWzevBmNGjVS7ucMfkuqVKkCIPZGV61aNcln43A4HA6Hw+FwOByO4k5aWhoaN26cb4+qcAa/JSyNv2rVqs7gdzgcDofD4XA4HA5HgaFbVu5E+xwOh8PhcDgcDofD4SiGOIPf4XA4HA6Hw+FwOByOYogz+B0Oh8PhcDgcDofD4SiGuBr+BJKbm4usrCxkZ2cn+1QcCaZs2bIoXbp0sk/D4XA4HA6Hw+FwOPJxBn+COHbsGLZv347Dhw8n+1QcBUBKSgoaNWqEypUrJ/tUHA6Hw+FwOBwOhwOAM/gTQk5ODtavX4/SpUujYcOGSE1N1VZRdBQ9cnNzsXv3bmzZsgWtW7d2kX6Hw+FwOBwOh8NRKHAGfwI4duwYcnJy0LhxY1SsWDHZp+MoAOrUqYMNGzYgMzPTGfwOh8PhcDgcDoejUOBE+xJIqVLu7S0puAwOh8PhcDgcDofDUdhwFqnD4XA4HA6Hw+FwOBzFEGfwOxwOh8PhcDgcDofDUQxxBr/D4XA4HA6Hw+FwOBzFEGfwO3wMHz4cQ4cOTfZpOBwOh8PhcDgcDocjJM7gdzgcDofD4XA4HA6HoxjiDP4CIDc3F4ePZSXlLzc31/q8MzIycMstt6Bu3booX748BgwYgAULFkT4zjgcDofD4ShU5OYCh/cl+yzCM+slYEw1YOVX9mMcPQD8MS32njgcDkcRpUyyT6AkcCQzGx1G/5CU11758GBUTLX7mO+++258/vnnGD9+PJo2bYqnn34agwcPxtq1a1GzZs2Iz9ThcDgcDkfSeai6tz3mgN0YY6rFbh/cDySrbe2k0bHbT4bZ/x9PNvG2bcdwOByOJOMi/A4u6enpeOONN/DMM8/gzDPPRIcOHfD222+jQoUK+Pe//53s03M4HA6HwxE1Odnhx5j6hLdNnQcmZGfGnAbMcWDKkT/999P3mo+xfZndazscDkchw0X4C4AKZUtj5cODk/baNqxbtw6ZmZno379//mNly5ZFr169sGrVqqhOz+FwOBwOR2Fh7AD//SP7gQrVzcaY/mT483iktre9ZiLQdojZ8VsX+e8/08I8Qv+f8/33D+8DKrrsRofDUfRwBn8BkJKSYp1W73A4HA6Hw1Eg7Frpv7/qa6D7sOScC+O/l5kb6z+ODv+6RwI6BuumAJ0vDj+uw+FwFDAupd/BpWXLlkhNTcWsWbPyH8vMzMSCBQvQoUOHJJ6Zw+FwOByOAuGrm8KPcWBL+DFM2bUi+jE/H2l33LSnYqUJxUEI0eFwFEmcwe/gUqlSJdxwww246667MHHiRKxcuRLXXnstDh8+jJEjLS96DofD4XA4EseBLTHjctbLyT4TD1ODP1h/X9SZ9njs9unmyT0Ph8NRYnF55g4hTz75JHJycjBs2DAcPHgQPXv2xA8//IAaNWok+9QcDofD4XAEeaFj7HbSA0D/W5J7Low5rwFN+ujvv+b7xJ1LQbNuajTjrP4WyDwSrqRg1yqgVFmgdqtozsnhcBQZnMHv8DFu3Lj87fLly+Pll1/Gyy8XokiBw+FwOBwONXvXAbVaFuxrZh6Jf2zVV2ZjLJ8QzbkUBt4bGn6MmS8CPz3o3bcx+nevAV7Pc7rcuRaoXCf8eTkcjiKDS+l3OBwOh8PhKOrs3+S//+5ZZsfn5oY/h6UfhB9j7aT4x46lhx+3MLBrtfkx1Ni31RF4rZe3/ayL8DscJQ1n8DscDofD4XAUBtK2AccO2x374WX++4d2mB0fVOi3IVHaAVGk+Zs4NGw/AxVfF5IyC4fDUaJwBr/D4XA4HA5Hstm5Eni+PfB4A2D7MvPjwxrsm+aEOx4A9m8MPwaP5Z/r75uVwX/cJEtgzXf6+5qweV5ixi0o0vcA2ZnJPguHw2GIM/gdDofD4XA4wjKmWuxvp6Xh/UZfb/vNE6M5JxNysr3tUmUL/vVlbJipv++fxOnQjLyP05/UH2P9dP7jUZQ9mMB7PdMuBplHozmXbUuBZ1oCj9T2v8eO5LJ/c2ze+Z1TCuNw5OEMfoejsDH+XOCVHsk+C4fD4XDocvSAt00N96LE9Ke87UYneNs5OQV/LkEy0vT3zcnyts9+3tveuUJ/jMX/8bY7EZG8Qzv1x0jbpr+vCJ4I4tZFZmPs+yP+sSP7zc/lrZO97ZeONz/ekRhe7BS7/SBEBwdHsccZ/A5HYWLJB8D6GcDetcBbA+3GyMqIeXufLmB1ZofD4SipfDws2WcQnsN7ve0ew73tHRblBckkixjJ5ap42+um2I3Xc4S3vfJL/eNWf2v3ehReKcP0p83GmDc2/rFDu+zOJwpycsJlSqRti61xxp9nP0bGodgYzxRxAcOMQ/77Jk4tysY5sfdj7eTw5xSGzKN8J5cjNM7gdxQPsjOBbUuKfprZl3/3trctsRvj0bqx28N7gMXvhT8nh8PhcMgJpoDT9Hgdso5Fdy5hzoPR7mxv27Yuv35nu+PCMpcYuFUbhB+vcR9ve+G7+sdtXxr+tee/Gf+YqQ7A4vHxj019zO58wrJzBfBwDeCh6vZjPN8+drt+OrDjV7sxnjgudpu+G9ix3P5cwrJxdszQphklJrx9qv/+G/3sxnl3SOz2/Qvtjo+CbUuAx+oBj9WPd2Q4QuMMfkfxYGfehH1kn1iwR0Xm0diEEyYNb8uC2OSdTO855aubkn0GDofDUfIw7SX/5/r4x6JoRbf6G7vjSpX2tk0jygzags5G6K1yfbvXPbDZ7jgR9L3YvUr/uCXvh39tW4NWxcovzPaPak1DDdIo3p+xAyIYo7/9sT/8E1j2qf3x754Zu/3qZrvj96yxf23G9l/8922chNmZnoaJrZORZrUyh4wpb54UO4e3TrE7vhjjDH5H8cNWqZhdyA/tBHItaxa/uCF2+2xru+MdDofDUfQxXcBPeST+sYXvhD+PpR/aHVemvLd90LC9H+P0h73t/ZvMjzdtK8hIKa3ex2i8lGjHK4r8uSH+MVvDjvHljebHFLRooowx1YA5rwIT/g/YbWF4B4NTB7ZEc16mvHmS/75NC0w6xsM1zY+PSieEOS+2LY5mvGKEM/gdPoYPH46UlJS4vyFDhiT2hZM9iQdf38abHaw7iuJ/Wv+z2f571oZ/TQBYNC52MdsYQZsmh8PhKOy80T825024LprxsgzrUFd9Hf/YonH6x9MFc6tB3va6qWbnwaBGbqkydmO0PsPbztYsWRD9HyaYitoVBBVqJPsMwjHzxfjHTIMrGQfDn0cUn20i0sVf62V+zB+BMqAXOkZzLmFZYZidBIRvCRpF+UvQ6WLrqCymOIPfEceQIUOwfft2399///tfq7Fyc3ORlZUl3yk7M/Zj37bErn1M5mGrc/MRjOgf3G4+Rvpu/32eMq6MY5z/4/u7zcZY8LbZ/iK+vjV2+66loycn20vvsk1LPbAFeL5D4Vy8ORyO4kNOtlcWtuxj8/Rz2zIyFXsNHLi0zr5aI287O4Jzs4m0V6oDlCVZArotw/at87Z732D+uoC5s6UgqN7E2052gMOGNRwBwo/+YjaGiQNLxIJ/hx8jilKCKH7z/4vIuRg1PKHIRPPjA+HHCDpdnmsbfsxihDP4SzK5uTEje9sSn+e1XLlyqF+/vu+vRo0a2LBhA1JSUrB06dL8fffv34+UlBRMmzYNADBt2jSkpKTg+++/R48ePVCuXDnMnDkTGRkZuOWWW1C3bl2UL18eAwYMwIIFC2KD7FyOabMXIuW47vj2v2/h+OOPR/ny5dGnTx8sX+6JqezduxdXXHEFjjvuOFSsWBGdO3eOOSJsUqmCJKLm/pXuZvvzxHlMvaY8NV5TtgcUmW1SrWj7nscb2p3HCx2BtK0xUZqo+gg7HA5HkGA989w3zI7fsiCyU7GGnsPAe5N3HoxKdfyOh72/6x23eb63HYXgXmFhwO3etmkwoLBiWqbx4/3hX/MXyxIVysR/xD+231D34ZePwp/HkT/Dj1FYMRUh3Tgz/rHC0A60GOEM/oIgNzcW5UzGn8yTTKMHJpEECqvh2vM7kO1F8u+55x48+eSTWLVqFY4//njcfffd+PzzzzF+/HgsXrwYrVq1wuDBg7Fv3z7fcHc9+iKee+45LFiwAHXq1MG5556LzMxYtOXo0aPo0aMHvv32WyxfvhzXXXcdhg0bhvlLOAqrpt5X21rBKPlpTGLG3f2b2f7vnuW//4dFK6OohYbedgIsDocjQXx2jf/+JMNo028TozsXW/73N2+7fPXknAPNjOjzd/9zuirkVMugXkegbofw51UYaHW6t72BY9yUVPZoOoJkrPgi/Bi//2C2/9e3hH/NRFEYMki2zFfvo+JgCAFtRxyWhVkOIzIP20c5w3LfNiC1Ev+5Y4E6prxJ4ptvvkHlypX9w9x3H/7yF076Fo2u7/SMvIcffhinnx67wKWnp+ONN97AuHHjcOaZMUXSt99+G5MmTcK///Uv3HWldyF88Pbr8o8bP348GjVqhP/973+49NJLcdxxx+HOO+/M3/fmm2/GDz/8gE++noRe3Tr5zyvjIFCmHP//LmksHg8MNmjBcyxQZ/fJ1cB9W6M9JxVBLYKw9WEOh8ORKPauU++TaGhZmm3NPaNxb7vjaI22bXQ+WE5Ho8g52X7F/IKgYq1oxqHnratnQCmdandcYWfbEqB2SJHjdVOAjkPDjTHnNeCE/ws3RkGzj9PZA4i9H61OK7jzOMBZH678EmgWsoPCzhX+LCFHKFyE3+GRE4vQn3LKKVi6dKnv7/rrr5ceE6Rnz5752+vWrUNmZib69/dan5QtWxa9evXCquVLfcf17Xl8vuOhZs2aaNu2LVatiqnnZ2dn45FHHkHnzp1Rs2ZNVK5cGT/88AM2beVE58O01mMUBi9pFMx5NdzxQceQDdkKHYcg398V/jUdDoejIFjzXbLPwE/pkAZ/b8H1XoVPlC2gbN/uHLsxu1/lbR/ZbzdGGNqdHc04pUkAYvpT5sfbiv5RMWH6XhYWFr4bfozF48OPEUWZRRTfTxNBQaqPVKqst71xlv4YphmgPHjz3/y3wo/70V/Dj+HIJ+kR/tdeew3PPPMMduzYgS5duuCVV15Br15itctPP/0UDzzwADZs2IDWrVvjqaeewllneSnIEyZMwNixY7Fo0SLs27cPS5YsQdeuXblj5ebm4qyzzsLEiRPxv//9D0OHDo34v8ujbMVYpD0ZlK2ov++hnQCASpUqoVWrVvFPH4pNRLnEEM4MCvLlPVepkiCrIAhP0C0rwy/2k8czzzyDl156CS+++CI6d+6MSpUq4bbbbsOxTM4YuSHbxQAxb7rLEjCHV9e38gug88X6Y6yzKCNwOByOZNO4N7B5Xmw7JwcoVQTjKkzTploT4IBBnTYV+6pc1/9cuap259LhfGDu67Ft23a5zU8G1k9X78eDGlJhoN+DoMCvCBp06H19TD2dlcsd3gdU1Gh/RvWJeozwl1ZkHgHKVtA7l0SxaXZyXz9Kdq8GmvQJN8af64H6nfX2pS03r/oSGJdnC815DThttN4YNgLVQUw1T3TJMRRP5ZGdCZQ2+A1vnA18eDkw/GugQZfwr1+ISOqV6OOPP8aoUaPw4IMPYvHixejSpQsGDx6MXbv4AmqzZ8/GFVdcgZEjR2LJkiUYOnQohg4d6hN2S09Px4ABA/DUU2oP6osvvoiUguivmpISS6tPxp/o/+NdOBUXoTp16gAAtm/3JoilKwKCeRyRjZYtWyI1NRWzZnlex8zMTCxYsAAd2rTw7Tt30a/5dTt//vknfvvtN7Rv3x4AMGvWLJx//vm48sor0aVLF7Ro0QK//RaBd1KEyeLCVKCkOLOU09GB9UYNg03Gxef/F+sUEEUUweFwFE4yDsZ+55M5vewLmm7DvO19hSDVXxfaU5053E2MfcCvBRSsvbcVW0spxd/WgRnrXUk5oul1pEzee5ESopTglH/aHUe1iGq1BE4mYnO6TgMqLpeb64/yR9Emz+Ex6yX9fUXfw0UG2QpzX/O2azb3trMMRI7XCrpnmAgKFuZ5zlTP690zgYwDwJsnJeZ8kkhSDf7nn38e1157LUaMGIEOHTpg7NixqFixIt555x3u/i+99BKGDBmCu+66C+3bt8cjjzyC7t2749VXvZTlYcOGYfTo0Rg0SN6/denSpXjuueeEr1XskfwIMjIysGPHDt/fnj17UKFCBfTp0ydfjG/61Cm4/+nX/QcfjK/lqVSpEm644QbcddddmDhxIlauXIlrr70Whw8fxsjLh/r2ffjFtzF50o9Yvnw5hg8fjtq1a+dnXrRu3RqTJk3C7NmzsWrVKvztb3/Dzp07w74TYkwmvOKstmrKtMfjH5v9cvhxMw1bLR1NA379NLb9zW3hX9/hcBROnsir8/z52egU0HltUnVocLy3fXifeD8R9Y9X75MI6JqgnmaEMQjNKIyq1r5hN2/btAtN+3PzzoUks+ZoZP/RwAXLTKt6nNlrU8rEZyxqQdsLli4HNOjq3ddNH6cR9IZdgR7Dvfs2GROV65kfU1IwKe2hc0Od9t62raBjFUvNjNmveNvdr/a2TddbyeagQHg7qlbVxYCkGfzHjh3DokWLfIZ5qVKlMGjQIMyZM4d7zJw5c+IM+cGDBwv3F3H48GH85S9/wWuvvYb69eubn3xxQFB7DwATJ05EgwYNfH8DBsTEN9555x1kZWWhR48euO3WW/Do3QElXoEj4cknn8RFF12EYcOGoXv37li7di1++OEH1KjuT/N78t6bceuDz6JHjx7YsWMHvv76a6SmpgIA7r//fnTv3h2DBw/GwIEDUb9+/WjKMETvxSEDZ8KRveHPozAg8joXhgyGnSvM9n8hIORo2lvb4XAUPV7upt6HItIXse3cQg2iZZqtu+i822Ig0O1K/nNGGGYv0jKqBpZOB552DnMCVKpjNyZNx2UOXF2Y04GW5umkCdMa6BrNYren3Gf22tSxkGpQWklZTQzIeh2ACtW9+7qdIajoYKnS/g4OuqVz9H8JlmYUpNYRFYm21YQw1RNKFHTdeT7RWdq9ym68KLKVzyAZUiv+F348XaJov0c7Q9G2pJvmFex5FGKSZvDv2bMH2dnZqFfP7y2sV68eduzgX2h37NhhtL+I22+/Hf369cP555+vfUxGRgbS0tJ8f0UaQf/UcePGITc3N+5v9erVAID27dtj9uzZOHz4MJZMfA+nn9QHuVsXY2C/mEjfwH49kZubi+rVq/vGLV++PF5++WXs3r0bR48excyZM3HCCSfEvf6AXt2wfMqnyMjIwLx583D88d7Co2bNmvjiiy9w8OBB7Ny5E4888gjGjxuHL955PrZDuSp27wW9YJXV1B4IQj34/W/1tm1FXGhEQlfEhXqM+95k97oiJ4du+mAioelrOmQc8N9fPyO6c3E4HIUDnYitjGBXEsafG+3Gq0KCCDs1u4tQlf/uV/lbuNk6Ks941Gz/Pzd42+z6UzrVbIw138Y/lpmXKRHFNcRUebxWnvp7tcbeYyJlcwoVqmXvQTq/1FQIDX5UsezSREskqjfxr3FWf6M3BtVVAGKlAQzdjIltS7zt/rf4I8GS4JEPus5qaakgv5O0YG52ot0Y1JF35jN2Y0QR/aaaErZr16hJJedh26rbBrruPOtZuzGoNkWni7zt377XH6Mg/+ckUATVZMLx1VdfYcqUKXjxxReNjnviiSdQrVq1/L/GjRurDyrMFJf2LjQlzTaCQNPxq1hmfNCaqRakZ/zWhXbjUZVk3ShR+h5vu3Ybu9cV9Uo+XAgyGMJ6nG2UkQFg3dTo0oQdDoef3Fzg69uAtwbaGe9h+3jPIWVpFxOtjymGBjOPzXP19qPX4zLl/FHtrYvsXttU8Iruz6KFdOFcGFjNcSgEoc4TVrtfj2R7zXhaPQZ1uLPsACrepxPVXvuTt91KXmIqRPYZitotm6ArpEiz65r0A9oM9u7rdvGhAs226yxfx4Fh4v1kzHzB27Zt+WaipC+Cpv/brteihgpLbltacK9LHYW14gXDtcggQVjbNo+7V3vbtsG/QkzSDP7atWujdOnScTXYO3fuFKbZ169f32h/HlOmTMG6detQvXp1lClTBmXKxCb2iy66CAMHDhQed++99+LAgQP5f5s3b9Z+TUcCoaIzpoI+DFr7E7Z/MeD3POumE9EoTuM+wIl3ePdFtUlB6ALDtictVfQ9l9Tdf31r/L6Jgi76aW1bWDYbpHYxpj8NvDc0liZsW9PrcDjETH4YWPRuLIr4sIbqeBBag2oDNQA7kKw/G2dtamW7c6DCWWUr+ev4dSO5QUzrxqs3iX+sJokGF4ayLh1FcbomYNF5qidwUKNU7/cfyRh5hj7TAwD0si7o9cZEJZySKRFfo1F3Wzb8rLcfTf2v2cK/1lrwb70x6Ppk8GN6xwSZTVLfS1t2UDpKDMM2g/0lD7rQ7+EFb9qdB/38CkI83JRtiwvutajTtrmlWN4f08KfB814OdMyQFSISZrBn5qaih49emDy5Mn5j+Xk5GDy5Mno27cv95i+ffv69geASZMmCffncc8992DZsmW+HvMA8MILL+Ddd8VK3uXKlUPVqlV9f47oGNivJ3K3Lkb1aoapTdSrl1rZro1eLkedOAy0B7JONAHwpzTVaOpvlbNonN4YM0h6WvlqescEoVH0lqd627aiQzbsIjVspimcUTOVLEwetxTFGVMt9vd0S/W+DkdJY+bz4Y5f+n405wHYCc1R48+2xRlNi65UC6hOMghtW8PSCPAhjXT0JZz3sSXJVisqWU6+lrx5kXhqUDXrrx6Dl+lWqba3vfPX+OeD0AiurUG34F92x0XNyi+87VKl/EENXcFiGjSwbXW4h3RlshWF/PUT/xi0fEbXqUVFiJv2szsPWkJTnKjd1tverdlFi2bMRCX2aQPV7kj22jMBJDWlf9SoUXj77bcxfvx4rFq1CjfccAPS09MxYsQIAMBVV12Fe+/1xBduvfVWTJw4Ec899xxWr16NMWPGYOHChbjpJq9eed++fVi6dClWrozVzq1ZswZLly7Nr/OvX78+OnXq5PsDgCZNmqB5c9LWoiRBRVwK0otPf+S2PXppqnlKij86bCMmY5slEBaaSnTSXX4DW7f28UhAEfq4Ht627ntxmJQF0EVnQfbKPUpq70/4P7sxCkvXBCpidXhP4REMcjiiYt8fwLhz7BTpeUQhAhZF9FMXWkplyx+SHvGrvjYba8iTsdu2Z3uPrZuqPo4n4Fannbdta/Cf96p6Hx6nW7ZYpFl6vLR3nSwBXqYf1TPYqhH9tHW6+yhAQTwTypFMFt1r7dH93naZ8kDHC81flzpzUlL8WgK28wYtx9TNAqRBiWpFvLw3LMH3vctl3rau7gV1wgBA497hzikKbLseFGKSavBfdtllePbZZzF69Gh07doVS5cuxcSJE/OF+TZt2uTr+d6vXz98+OGHeOutt9ClSxd89tln+OKLL/KNdiBWo9+tWzecfXbsYnf55ZejW7duGDvWsJ1LSYIqv2amC3eLHDp5l48oY6J6U2+7KOkU/E7S3SrVjibFq3Efb5vWNSYLXWfSlzd627Z1ihvNOndwMe3fyuO/V/jvf3hJ+DEdjsJCbm6s3GXDz8DTETnMf/sh/BgbZqn3iQyy4L3Yss3veonBv0czSsbYn1duSI0yW4ctTUU31QRgHLAsf/xTQ1yPB00P5omh8TIZgvDWDjTyqCPaVpBOp2Sy9APzY0qXAVqc7N23vdZWqOFt2zr5+5L1RlVNcUUqHpiS4olDJgvq3CtoaHbSWc8C3Yd793XT7AtLgIZSGMssQpJ00b6bbroJGzduzFdl793b8+xMmzYN48aN8+1/ySWXYM2aNcjIyMDy5ctx1lln+Z4fPnw4V2V+zJgxwnPIzc2Npr1bUaUc8USnaXi/edDIuK6nlf7Iy1YEKljUbwahkfHMIlRzTRdkZS1b+AQ56U5v+yCnXVKiadwHGPyEd3+vprgWjQTYZn6s/JL/uEnblU0ROA22L/Xf122DRMnNBR6uDbxWCLzeDgfl9UA5nWmUjSe4F0U20Y//DD+GLlFkqkVJaY7Cvk4WAu/caeq1bVmXbQbELsv2ZGE1HQC/aC4PW5G1wiLOVhhIIQ4UqplgQhfiUN88324MWqphO0atJJfrMeO0Ua+Cf22akZlSyl+CRANwJtC2ege22I3hiCPpBr+jEEA9WdmWnlZfWYBEaIZCFfbLVvSn0dm2PaH/SxRKqgXF9l+8bduazSC+91PzMwkLrWftcjlwXHfv/npNgSCfI8hykSnqbJBl8L36D6dtZzLqWD+5KhZd270a+O7ugn99h0NEsGe0qZOMpwQ96yXr00kKtFabpsAnC9YCjl4L07aqj6Nidwyq2q0TGedRr4PdcTZiakA0mVm0RpvHRssMElu1/ihISWJtNA/aAWKhZWYMVWOngQITaOr2l3+3G6Ou5Xc8Kth3vttfvcdMO56onFwiaIlM037+zKKvLNtD0/fzt4l2YzjicAZ/SSRoaEeRukJTr49plgXQeuaUFH9pQa5BJJZCUxAPR1BbaUqbs9T7FBTU4LdRqLeBRuyaDQAq1/XuRymuZUJ/IhYUtoXXxHvV+0TNqq+87fmWisAOR0Hw7plm+09+KNzrRVHvHxba55w5KBt2K9hzoIt7Xis9rfRyxXtJ5yEVx5M6Xir+avJ50XnbhIJIxVU5BEREpXNhw6kFmPWiAxW43GLZvphmltq27aXnYbvu7EG0BPZvshuDai7paP3Q3xJzqlHdCJ2gGR2DlkeYsH6Gtx2Vw5OWCcy1LMe2bdNdjHEGf0mE/phsFTFpJLdK/cBEo5lKH0z1o21WovDS20IjCzmGImtlUtX7FBSppDTAZLEWhh3LvO2crFgLHwbNAjGBfrdsFvgDbve2wzo+CoO32Qn/OYoLtvXdjMJQ+8nLaijo+m0qyhdVhlgYdq/xtmnJoMqgojovtiV+XS7nP86uP/U7240bBSeTDC2T8rIoWP2tep+CxJeNmSbeT3eMZF6byxCnga36PhUoPqTRipmus1l0njoaqSEugpYw1Ouo3p/Hii+87aicbVRLYe9auzEKW0ZLIcAZ/CURGg2o2shujGM0XT7F72mlyvnyE/HfpXPF/o1252XJuI+/QvX2ef0/qdCPjn1J0+U7XBDpeUWGbplFWOjkXDNQ16bb8zdIjxHeNi/tVEVZkn0yrwDFO9N1fwcSeEKHv30fflyHg2HrXE1mtJJBBcP6WqaPMqpoCnYVRg6QqGLpQuB0pgYcLQv4fZL8OKo1k2uYksyY9iT/cZbyvUOjpV6ioMGE7QXsFKIZf13+UrCvXdyhjqwj+82OZXX31Zt4jx3UMPhpZw+2ZqU18/PfUo9B1+rN89a/ZQxbi26x1D2QQR0H7QwFCZlY9XkkC8dm3VgMcQZ/SYR++TkR/h07duDWW29Fq1atUL58edSrVw/9+/fHG2+8gcOHOdH7SnWjaWfHa4WTDKg4kU7NN80CqHZc9OcTBbZpZqbQmtyosh2o0FG2hVI0/V4VZA2+6EJook/Bq238+Eq783E4goypBjxaF3itj3rfIKbt4hIBNd5oGrkuNGOILbiDjkobLnw7/Bgm7CCq4WEN/uN6hjse8M+zVPhPpfFADSfb9UAUYr3smtPnRvl+ptCSQx2jLkpoqUfTvuL9HOZUJToAXxuWorBMTJoBWbme+jiq+8Si2dRQ1lln0N8KmzdOGOk9VtAlU5Xrxz+2+hv1cVQ4kGWE0sDdzhXqMej/2rS/ev8iiDP4SyK+3vX+r8AfG7egW7du+PHHH/H4449jyZIlmDNnDu6++2588803+OmnvPZxh0h/zZSUYtLCIu9/oDVdWin9haCOlGKbCmkq8sIjEZkEx1/qbWtnjxBKJWmaExlE25fxH+cx8R/RnEva9phx99k10YznKPpQUdPdq8wXd1/fEu352LDsY2/bJlWbtl/rmffboCnxaZbdTQq6jzT9P8LOd9Uss/4o9bxWyT4RL5UxTtcj9Do85Knw52QCa4W46N1ox6XOD5PfG83EtO0P3uIUb3uVhhFVmOlciNvbHtHIfKLOnpanxW5pSv03t6nHOLTT207ldHaiRrDOebCSWrrGsgmwhEGnlIHHUZJR1D/vukTnEupoE0EDobrtGYsYzuAvidAfcSDC//f7nkCZMmWwcOFCXHrppWjfvj1atGiB888/H99++y3OPfdcAMDzr76Fzqddikqt+qFxkyb4+9//jkPp3sV83LhxqF69On744Qe0b98elStXxpAhQ7B9e0zRc8aMGSjbtBd27PLX8d82+hmceME1vjG++eYbtG3bFhUrVsTFF1+Mw4cPY/z48WjWrBlqdDgZtzzwNLJTvGhARsYx3PnwCziux2BUqlQJvXv3xrRp03yvM27cODRp0gQVK1bEBSPvwN4/4yfHL3+Yhu69+qN8+fJo0aIFHnroIWRlcRwAtI5UZ2KR0aBLuOMB+3o4uhhrayk+aGLM6kLfUyqQlUiiuNDRdOPL/+ttT344/NimPJ8nprP88wLuUe4otHwyzH9/5gvRjGtbV88WvoBdmYGN05m+TsU8R+lJd3mP2dbjFnRWERXNDYuopakJVICMokozpt8d2zpeqhkQliiyBeh7QbPeaIRWRWPLdmtUJ4mWSJQ1TNtmFLQYpYi67cOPUToCrQtbXSIqbN1mSOyWzl9rf1KPoeoUofOboQ4t5iis0dx7zFTDKlnQ7zYrm6GZobtWq8eguiv9CoEzOwE4g78AyM3NxeHMw0n5y+V5kQW1cXv37ceP0+fixhtvRKVK/AVESt6kVKpUCl5++C6smPoZxo8fjylTpuDuR/3tlA4fPoxnn30W7733HmbMmIFNmzbhzjtjveFPOukktGhyHN773BOSyczMxAf/+x7XXH6+b4yXX34ZH330ESZOnIhp06bhggsuwHfffYfvvv0W7730CN58/3N8NnFm/jE33f8U5ixaho9efwLLli3DJZdcgiFDhuD332MK7fPmzcPIkSNx0003YemSxTilX088+vK/fBPuz/MW46pbR+PWkZdj5cqVePPNNzFu3Dg89thj8W8KnbzZwqs7UW01Eeehi4CKtcX7ybCdpOlxva6N3Xa62HtMJ0UsQ8OrHIbNcxM7PoMaAuUjWEA2ISnTG2eK90sEh3b774+zdOa8NTCWJXBwp3JXLscOx47/9k674x3x5GTbp12um+K/H0Yxnxo1tjXSHc7ztm0j6x1IK02d94VG41gpV61W3mM6kR6W/kkNCLp4N9E6aGKZar1onN1xPKyFfMn1o4ag/3a5qvIxRC0ZTcqgmGjfgFH6xySSrYv4j5vUPlN9CppurHJM00zMVJJpQZ1aJtjO/ZQ2hp08GPT3bFtCSjVx+pA2dN3ynJ+mqdzVG9udhw/OPKVTVqP67HM0gha8LIDuV3nbG2erx4iSjhfaHUe/G2yOqUgyXXX0o37/0dsuphH+QlI0Xbw5knUEvT8s4BS/POb9ZR4qluWk+3BYu2EzcnNz0bZtW9/jtWvXxtGjsVTtG2+8EU899RRuu9br99msYTc8+uijuP66a/H6E17bsszMTIwdOxYtW8ZqIm+66SY8/LAX3Rx5xfl49+OvcNcNMeP466+/xtGMY7j03DN8Y7zxxhv5Y1x88cV47733sHPnTlSuUB4dahzDKf16YurshbhsBLBp0ya8+/FX2DT/OzSsXwdo2BJ33nknJk6ciHfffRePP/44XnrpJQwZMgR33303kHUUbUZegdkLf8HE6Z6C+0PPv4V7bhyOq68aBtRsjhYtWuCRRx7B3XffjQcffND/xvEWli1PARaPj23nZAGlLOoqy1XRby1IJ//jBSrFyjHIgo0tfk+5D1j+WWx78zygxUC7sW1of278Y39MMxuj3Tl2r00Vf09/2LwuL0hFyzKLKHi2lXofFXt+9zzgz7UBxlg4dh7PS0Vd8DbQdkhye1InmyN/Ak81i+mf3GXZKnL9DGB83m/kwf3JLas68Q7gozwhsF8/9QSgZND5pnpTf/u2ZR8DA+8xPw8qOLXjV6DB8fL9F7/nbTftF7ul0fJVXwP9bpaPwSJt2cRJSMuqTNpdVbM0IKKMxLGIoyk0Gi4qaVApgYvEtRr30m/rumFm/PnY0nRA+DEg+F2qrmX0mk6/Wz2Ge9fkLQu87y2PP9d729QApC2QVdD1TatTxfvpUoVTp60DfT9anW43Bv1OUAFFVr+uipoHiUIAkvd+6Pyeo+hQwjP4aTu7AwWg/USdedTZYAL93Hg6WlTjRMTcN7xt27LYQo6L8DuUzJ8/H0uXLkXHjh2RkRG78Pw0Yx5Ou/RvOK7HYFSpUgXDhg3D3j/34/AR78dbsWLFfEMdABo0aIBduzyP8/BLz8PaDZsxd1Fs0hw3bhwuPfd0VKpYQThGvXr10KxZM1SuXDl/UqxXu1b+uL/++iuys7PR5sShqNy6PypXrozKlStj+vTpWLduHQBg1apV6N07b0GSdy3r28O/MPxl5W94+MW3Ublxx/wxrr32Wmzfvj1euJA3OdNaPR1Pa/4/TKL6JpFlWsMpSqdUsZrUnDPlWJqauj9kCy1TdIRreFAvvm1fWNrCqLogWlWSeDWkkFdQH+J9Tq/wksRTzWK36buA8edJdxUynjjERMrkBUXD7t724v/oHUMjnJ0u9Bu7tiKjtHe7jigaNQBYZJv+3n+83+48yhLhV57wpgiqHzBojP5xog4FVIBWl97X++8zh0d7xfeUCu6J0qVVGi/0OkYxiejuyhPoCnZksWnTpXL26GBbbkHfK5+hSowRlbAhNehoi1z6XqiMVvqZUEHLwU/IjxNhKypJ54talsKaaVu9bZryvfDf+mNQBwjN5DSBliby1nkHtqjHYF0nwsD7vdEMn18/C/8aKuj62TZz47cf5M/v1HDM0MznZOk+JRgX4S8AKpSpgHl/Cdn/O8Rr69KqWWOkpKRgzZo1vsdbtIhdKCpUiI21YcMGnDP8Vtww7GI89o8bUbNtX8ycORMjR47EsWNZYPZ62bL+evaUlBRfiUHd2jVx7ukn4d1PvkLzXoPx/fffY9pn/ho/3hj5j+VNFCkpKcjJW2wcOnQIpUuXxqLvP0Dp0qV8EYXKlSsjDkFf4EOHj+ChO/6GC888NS4qUb58YBHFK5FofqK3vXwC0H1Y/D48ziTiRK1PB7YvjW3n5MgnIbpArkIM5bIV9SMdPqXnvKmB1vrV8Wd+JAQa4ek5UryfDHohtO2aQNtHNT85FlFYm/fY3nX2C46oOJYebd2uKVsWAo0MnABrvovmdXNyYou2SFIpLcnKiCnbA3aZDkHWT1fvEyRYkzj9SeCUe/n78hAJOqnmGRFVLYTEjpF5qU47f4bC0g+Aoa+bj1mjmbedraEDwHPWlibLItoqy5Y5rwKDOaVgPGgqKc2mys2VZ3DsWhW7DRoPTfsD6ybrvTYjqJ+wN0+DYNVX8uOoU6+2IKuI1snyqNWa3z+cXocO7QIq15WPw6Pd2er/Ici2JbFspDDQa7oJ9LtJAwg0Y1NVIrFG0MKVrll2rpALXtJIMs3KMvl+Uup10NsvyB6SCWXrNKDfP6oZklo50GpawsHt3rZtxqOqW4VuZmcioJ9jW4PyCyosWaqsfqCLZm7YamAVVBeqIk7xdGMUMlJSUlCxbMWk/KXoTsIVa6NWzeo4/aTeePXVV5Geni7cddGiRcjJycFzD45Cnx7Ho02bNti2za7m8v+uuAAff/Uj3nrrLbRs2RL9T+iqf7CvvWBskdatWzdkZ2dj1959aNW8CVq1apX/V79+LHWqffv2mDcvzwGTN7HOXez3AHbv1A5r1m2MG6NVq1YopbMgpvVyVElaBRWJaj3Y21a1JqFiSPSiTNPWVPAcA3RhRWucEgVt62eb+kfrzjpfKt5PxjH63SoFnPpP735huLjQkgMb9q1X7yPjX6ep96HwWgna1IM+XAN4sVNMCyBZPEp+E89ZiEdlRtDJ4vWQJWK/COakglxorpjgbfPKd2ygEXKdCL9q4a0yqCgNuurvS6FzfjfiGE4jhoUqMv57XoQr6MjRNfapzgw1aABgzbfQwpcyblDGQCnHccoDfnE0XcOs2Yn++zblXcGIo00E0lYcjmaq0bR9mnItyojIH0PwvaGZhMfEaz0A/u9nefJ7oHOFKr2cBhPaGvZVZ9C1rK3OBP1fqIDiOS+anIi3ST8LEwq63Z0xef9jLYNyQNo1wMRZS7MpWWapKSww5pDiDH5HjLwUxNcfvxdZWVno2bMnPv74Y6xatQpr1qzB+++/j9WrV6N06dJo1aoVMjOz8Mo7H+GPjVvw3nvvYezYsYoXCJAXWR88sC+qVq2KRx99FCNGjDAbg3Oxa9OmDf568Xm46tbRmPDdZKxfvx7z58/HE088gW+/jU0st9xyCyZOnIhnn30Wv69Zg1ff/QgTp/nFSUbffi3+89m3eOj5N7FixQqsWrUKH330Ee6/XzPFk16QVGnldPKnHk6aWXBAkU5PL+A08nuSgUBaM0W94oxn9MeimNRD0XouWy/+/o3edlRRcJpuPN0wYpMqWMSqSA8YX3RRElZJ+4f79Pe1UUzXQUdIhxIUKVptmTVwLB349g5xvbAJBy0cnR9cHP+YTgqnCpPPacqj/MdnPGv+urZRLtrFImzveAadd39+Tr2/Kp15p0btJ8O2fIh+9jR6Sw0SQSaaGk2HPzXWVWniIvauszuOIhLto5laKk0iVl7S+2/+x/dpnh+9HpcJfi813086RqbAoFY5RehxdF1AnSLBsoW48xB8b2jJiaoNI03/L0uup7TP+a6V8jFopwrbKG4U7SJFDpLlBqnrtGXecd2Fu0mx7YJUULC1oIkOBp3DtyzwtlWi1VSourTl3KOpU1bScQa/I0ZerV/LZo2xZNYUDBo0CPfeey+6dOmCnj174pVXXsGdd96JRx55BF26dMHzD47CU6+PQ6dTL8UHH3yAJ54wrOfKmwRKlSqF4Vf+BdnZ2bjqKkvBjgDvvvYcrrr4bNzx8Ato27Ythg4digULFqBJk1h6Zp8+ffD222/jpZdeQpdTzsOP0+fi/lv+zzfG4IH98M34F/Hj9Lk44YQT0KdPH7zwwgto2tSinlu1gKKpezSFlKYxLiGLYx6iC7tJhEpngawLjciYpMXS7IkylpGRBaQej0UFwl4Q6PuoigoC/oucbkQqCFV3PvFOf8TqD800cFEkwSTFftbL+vua8Llhycb4QBT4oyvMXzPzCPB4Q2DBv4AnIlhAAuZCkjxHx09jwp8HS+vWgXbToMrI89/UO54aqbTnui1h25nyCEaqE40oO+LUB+TH0cgYdVjQFNkDpPbYhEYn6O1HnWnBlOuymk7TX/6r3seW2qScTGWEbFscuw06kagzWab6T0sTgqrtZzwif22GL01Z4MxSRcVV13zA7zTjEcxy4KEy1mmLuMokok21LlTXVzpf0N+6iSr+FEFZjIlDXXQ9NMna43VlMmWqwOFaWGBrT5PuGLTrAc2EUbWJVmUv6RCFQGcJwBn8jhhk0mxQpwZeeeUV/PHHHzh27BgOHjyIefPm4c4770TFirGJ/fbrrsS2xT/i8LrZmDhxIoYNG4bctO2oXi3m9R1+9dXYv3+/7yWGDh3q1fCTGrKtW7firLPOQoMGDXwTxfDhw+PGGDNmDJYuXZp3zrFzGffiQ/jiiy/y9ylbvhIeuvMGrJ/7DY5lZGDbtm2YMGECOnf26tSuueYabN68GYc3LcNX417EHdcPi3utwQP7YdaX7+Lw4cM4cOAA5s2bh2uvvVbyJgq8//Pe4D/OoJE5msZPU9jSFAs+kXFc1aCGXdUvmvZnVUGFA6lisyp9kC5yrOu5NsY/1omIxKna2fCIi/QooIt/1tqwlOH/Q9Pgewz318XqCvbQtky2FJbFiY6jRcVjgTKRoJig8hw4WizvcyL2pvz6afgxpj5ud9xpo82PObLf2+55jd3rFjsE8/8UhZH4J5mvqHFIRcV2LJOPwQy7rn/1P07nPRk0wl83YPDLVOApicoEAvyO4MmaRnfwPaOOZ5kKOo0CB9+LhpoRXfp+mpTVUdJ3q/eh3xEePz0ofx5QOxvLC4IGVDxQZfDTTCi6r0n3GubICdLKoLxs4bv8x+kcpromRNGyTaShEgW2QoIU9hkdMzCkaecEml0TzFQMsuIL/uN0LWwLKxXTnQeLOc7gd8Tw1fob1BfR6LXJBT/jIA6kHcTM+Uvw4acTcPPNeWq4JhdH0WlS40xl3NlGX7lY1mXRiJ/IyFUZeD8/z39cVQpgwp8Gdd/0e9Gwm7et8hhvmmt2TrqcQYzWYP/xREAXlH1vjH9epzc3XfzbRhLGk7rVPpzzKOlMNGz99gNHGM+kC0cUiKJUrI7blJoGjjzGIVIfnyzxSLowP/6y5JwDhaY4m0DnilRiDFEjdznRO+DBriFBI1HXkbSZpOAGM9J05/0mffT2k5Gq8R7qXiOCWRFUdFZWQ03LOILX40MauhCAfy1kW/Ki46y3Lb8wYYNGq7oZTyvGmOlt07Vm/S7etm1dez0iOKga45igjKszcdqq1oyizIwqFsKliSAKgVxm8Ksi5zSTkQalKhGdG1XZm+gzqRFBd6S1eWs92hWhBOMM/pKMqGUPjd6ooKIldDyecj0lOxPnXzMKZ1xxI66//nqcfnqed5DWi6nqFtMEda/UUFKdhwiD7gahSSMTok3rIADIEhjSNDqTLYlqRA31gtclta2qz1RkPOksBGXQDIgo6qVV0Lo0lrXSY7j3mI6jie5jEgmh7PnN27bpay7jkEYEClDX8IWBijDZQMUudaBlFskiyp7rtvzvBm+bLu4YBSFKRZ2HJuJSUUIdd7Y9pGkJkghdozsorEqdELLPhEZPg0K/ulE+ZvDYahkAniq47L3UzTgIKs83Jg4J2TWAqsEHDeqjJD1Z9n5SjZVgZtfJ/4jdtj5DfDygVx9eENk1Or3mVQaVqKUvFQVWBQNo4IBCHTmHLIRgAf+acc8a8X6AWLx4iEFZa4fzY7e0VaItQeFAncyQIMHWw7op/XSNQkVSaRZHmsLgF9GNI/Rrikg/o4TiDP6SBjW4RJEZnXZGPGh0XkNkaNpnb+Pwutl44YUXvAdp+phpui2DXqRt+3pqavNEAv0/o+7/SRd8KkXfsNDFb6/rvG3aKkslgtVhKP9x28+RQRddpkaeDTQiV7t17LbFyd5jJk61qIha2EZXGZeWN1SxTIfMEDhIROmAPI4qagkLAts5jbJuavgxwpJOSkXy5ywyaSZ6rgH8wlBRpNnaQDOvbDIlAL0MicaW6tW0Y4vsmixzIjHjRAVT2969Wr6fjF8/id0u/o94H92svDaBlGAarZcJ+NEgQfC6QzUWZO8ZTWMOXtNZy1dV15vDe2O3vD7tDNn7FBW2RjRF1C2KlkyoarlFLR2pDoBt9xoaaNk8324ME9FK1jc+CkelbSciStBpkG/wK5x9R8iaj87B9Dtvm2VKHcmJDBqUIJzBX9KgUV4qrGYC9WzTCyK9GKpqlERtVaixbquiTS/stgtPE7GSsESRuiTK1qDvp6pGPyx0kUNVgKkasUqIaMHb/MczQta80e8bjeCosFUPp0I1bEFfq7X32JdJSK+3VcCl9CaR3W/v0DuGtvA7/xX/c7pZJyIjQqdGlRG2s0EULHkv/Bj/JenrVypSvQuSM0laryiiFyW0RlvkKNTFto0cvRbaZjXotBjboXCUMoIirTQaLnM2HddT/FyVenqvvfR9vf3CQp0YQehnEIysU6NTFlmlavBBQ5Ual7LUb9m6Q1SLHuTbvA47srWUStuBrc/CpJvrBICaKLIuaHYbpRH53tlm3skcIrrQ36BKZ0hEO4N2g8y5EXT62DgAglHs8141HyP4HctP6Vesg+kanWXnBJn2pHwM0RqLruN3amSZ8LC1cYopzuAvaVCvtK0KOq1Vp9EJenFM3ysfQlTDTCde6wUUMWyOaNRKR4VtLetchaifDiLvOH0vTNXETdFpHWWryHoCEUu0iZLS76aJkKGtw4gXaaCph7Z6D1FiI17Y/xZvmyeOyIMqILc8zZ8+qEqfZHxM+pPXaa93TJCvbuI/HkX0IFPze01LPfoGzmfnCr0x6O+s5al6xxQEND1XFb0U0ZsoPavm/xX/87ZF/dt1se00QOci2wwanQidrgr12QEtFyrqJoqQAt5agPfbake6Y9g64amzMyx714qfO0zWHTLRV9n/IetsQ6OYMu2Ohl3Fz+kiqm02gc0VYTpWVJY4fFjL3e7DxPsAwLJP+I/T6/Ka783OK38MasZYpmbS74qtrlN+++EQ6aF1La5tpQPr+OqkhbDuNT6uM4dmSv/ayfHHBFGVoLHsgmCWAbUFdK+vTQOtpW3ezwZd1PsUUZzBX9KggiO2gi/0YimKLItqylXP+2rYIzCKdMTReJi0kmPYpp3/kcAUXfoZ605knS5W78OD/v+iVk626rTNT/K2w6YLHzBowUO7DYSFLm5EvxsVUYo06Szeg0ZXWGGilBSgD8kS+K9maz0q/HORIAvEFt36aNn7tUvTWF/4jrc98F5/Suu2pXpjUESpsjISlR7ZZoi3vcUgLZa2n6tNDEPVQtEkU0eFbXTxV2LI6EbCg7BrcnDBS9E9v+DcSOcLWctFVn+7m9PakTpTTFS7KVEKO8p6z9OIt2yunCOJgq7+RvwczRpIkxjRrOsRLWdj1GwpPq4wIkvpZwEVVUtfHeewbTAg6jJIk4CA7zzY9y3XvnSLKtPrztNBfR9a/ibLVqDnGFfDrynap7OGULX1ZGJ/Qe0B6sigJWQygh0lqjXm7yfDpFVkEcMZ/CUN+gO2WSwCfgVa2zFE0PF0W48lAjpJ6U7eUddIRwF9P3U/K1E/aRU0giRa/PJ6kOsQRZkGQ9Wbml4ko2gNw4PWH5tg0hqRx0CiMq+T4k7rGbteGc3vnRqGulkClCj6vtP2ZbNe0jtm/Qxvu0Yz4MxnvPtvW0Tay1X2d3D48u/mYwTRWYBR7QX2P9DWmarsLBG0jGfV1/rH0VRY6vBVpStH2WElmCEQbMcmQhY112Xua7FbmdiWqpc1I6iITbP4Gkl0AL65TfwcTYuVzd9MZItnMEXpOJVBS4RkEf62Z4mfm/O6+DlqXMrU0Nn7xBMVDYoJimBp8LyUdZYdJEqVjxIW4ZcJCsuyLnRJ1Vw/0etHEFULTB1kvwUZtGSOXitkBP8X6vQQiVIDQBZZAwXb8NHAiyzAQm2BYElUqmZKv07Jo07JEg/6fZj1st4xwQBFdQuDv0AFvAoWZ/CXNOgiKRiRZl5pVfTRZ3DZ/jg0jivIOvogNG1WpvTvqxm0jL6qDNCo+P4fevsFsyJkKY4UGr0MS/A76KudtFQpb39e7FbVJomqzVaWRN2SAvm+6aa5UahhpzKoAP+ituNQ89fjQSMSFWqK9xMRhdOh8yXe9uLxesfQRUffm4CeI8KfR7tz1PuooOUuG2er96fRuKZ9Y7fUcKDtlWwx6SRAje0ul3vbWzVrnYO0P1e9T5DTAloQjSQ17ZRE9p63IZjeS38rsuuYLLrqG0MSdVySV8NP50+GSGE9aqhwMM8YYech02zQbbMpez9nPCN+TmfeBbz3sdmJ8c+xIARNqZZRzSJjkcEi/LYdj3RZoLl+kAnz6SrUp4YsAeJBAz7a2Z6BaxnNCAlqUFA2k9aUQUcJ1QEQpdkDwCqSyVIp0A47P8Kv0DOopZGtouuslKGbMRYsU6Z6HLKMCfqcr/SyeOEMfocHcwaoUqvopGq9+I6whrlK/ejG4iFb1NFosO17EYVie/M8BXjabz6ISiGfEYyM9LtZ77j9BqnyKoLfQZqqteoruzHZcbLFGADsJnXl1DC0bbsVliZ9vW0aobdJgaSLRx0HzawXve2Wpwl3M4JGrApSY4Nik7ZHF1nHXyaPIOpSoXr4MWiWwI/3q/enKcushRptpRal404ETTulLVCpo89GYwLQzwChi7xgqYpuWq/sHHnp3ImAZqAFU1op9TqKn5MZF6aObJ5haFLiAchTcWWCe/Q3yYsssoyMPyWZRbplSzKhQxmymngKM2x5JQbz8nR/dBXQqfZKlLDPQpU6XTvPiJKtJVT92qNEZgjbQr97FWuJ96MEv6PUGS5zGtCgWzDzog7R7aAlvEHobzLoENKt4f/uTvnzJvS/NfwYHc7z36f/l6w8gTqoddt+FkGcwe+InHEff4Xq7b2a6zFjxqBr167594cPH46h14xSD6Qr2idLW9JNsw9GA2h6lixtSZbur9s7fq+kFrWrZi/S9dNjt7Tvui3BjAOdPrxAwV2wbdLATaDp9rStYZkELBJ0oItTulhUpRPTSNsJ/xe7DaPUH3WtZBioGBkvoqiijGX3BUYiFoy2+HpIG/7+2SKVRjW2Lgp/TirYfAUAbUlaK3Wa2qaC0kWqqJ0j4I88BcvH6KJPVrcu67Bi2mM7GJ3XhTod2p8n3m/Gs+LnBtweu6WOHwb9HIK1vrqYHsdLe2c956kDNIhuJ5qJkmy33n+L3YrWDkzY0FazJxk1wonqUMLeb5XjgYmzLnw3/GtG0bve9rcGAOXyHNan/FO8z6JxemMFnYL1ic7Spjni4+icLws0ydo2UgHZ4LVd1+CXORRMOSDJLJPpABwkGhPBtSsV2ZR2uyBr3LA6RYWYQrSCcxQIsjqsvC/6jl17cPPNN6NFixYoV64cGjdujHPPPReTJ2umjyl46aWXMO6Fh9Q75mbHnANDhyp2jCDFN7iApxOqzPGQIrwTL6Ziw/LPzPa3VbqlWQZB0T7b1nRhkKmPy4QY6Wd10t12ry0SuqlKLgS6bbJsoXXU1CCi2SyqTIctC71tmSBYUYQZKICe2B11CrQ+I/zrRxHdt4FXzhLFAoWKqummHANAF03RxSB0vhF1XZAteGVQo5dXQ82g6elBZx5N+aYL4yDLPhY/xwxUXXjtz1htrew7S8v0ZOV4svp79n1u0ke8DwD8+qn8eRH0M9Fx5POy9ljmyVJJa9efxhidFhfWzUZUysacQ7Yic9VI9ohtJyJT5zPveyFbC/KIov1dFLobQyRt3lqcojdGpwvsX5+1CJb9L6L2woD/Mw/OEdQhL/ue0/lJJogp01aQOU50RfuiRNR6F5CXFtDOHMHvdKXa3naaJCBFdatsHc1FAGfwlzRY6yReCt/RA9iweRt6nPlXTJkyBc888wx+/fVXTJw4EaeccgpuvDGa3uHVqlVD9WpVxOdhjMTg152wpB5fyUWZpjsGPa1RCBWZLipkqqwy9X36OsEJL4qSCRaVaaxYUDJkC1xZDR9NzQqet25PVlELI3pO+9bpjaW7AAlCI1WnPuBtUxVzZcucSd52xwvtzoMH1QFQpV3TCKut+nEWR6SRRvgnXBv/fBC6mChMrexMoYtMliZb0JkX1BllK1RKjVtR1gltu2cCjQ7v4qjO558D+V4Fu7LQuULVcUZnfFvDbuUXsVtZm0M6H9rqyEx9LHbL6vBF0DlFBE9YlJbu6Gjz9Byp3odHFJoK66bEbg8JMofY9eHn5/nPq2h1urctEyZmxsvxl8U/18bQaclLMTetyT9TUQpXUMgc/rodj2w7EVHY98QUWjIoc9DJrq2yDhEUWatXWTaYboRfK5CgGZCzbRNOv8fBNTh1jMiyf9aR701hyt6LGGfwl1R4tX5ZGfj7fU8gBSmYP38+LrroIrRp0wYdO3bEqFGjMHdurIb1+TffR+fTLkWlVv3QuHFj/P3vf8ehQ/qeW19Kf5V6+Oyzz9C5c2dUqFABtWrVwqDLrkf64SMY89xYjB8/Hl9++SVSUlKQkpKCadOmAQB+XbYMp15yHSq07Ita7frguuuuMzoHAP5FmKzminoQg8hSmqhxpgNPbEq3LIAhi/bJsgVotCsY0fcJ5lnW1R7NS5/VrfOXtaGStQnypbcG3k/drg+iyDk1AnQjLLaCNdQBI0od/eW/8jFoWiFNbQsLrQVWRYPpRfbMp+1ej9awnnhH/DnovMdU3KrTRXbnERa6eGL/hynUcTHoQfF+iYRGjdpYdrGQGeJhoQ5LXtSccZR8b4LinDRqZpv+S4XBolAxF0HLysK27VSJLR6UzL2Mkzh1vSzQAMivp+x6p6vYbouu41kG1fQwgX63ZO8nM2R4NcWmGWZ9I+gAwmuNxhMUlGE799K1mm3UmYrcHtJs8yZDN4AQRNfRIvud/KQ598uuubLMJd0Iv0wkkWVYNuwqH4Nx8j16+8mIK80lAcXJD4uPY5oYxRxn8BcAubm5yDl8OCl/ucHIAjPsOEbEviM5mDh1Nm4cfikqVYpPE6pevToAoFSpFLz88F1YMfUzjB8/HlOmTMHdd9ulT29fvxpXXHEFrrnmGqxatQrTpk3DhWeeitzcXNx5/VW49NJLMWTIEGzfvh3bt29Hv379kJ6ejsFDhqBG9apY8O17+PTD9/DTTz/hpptu8gZm0V2ZIe9rLyj5KcgmNZngHo2260Q1NnEWEGcr+tsGUSnQ6xCcNOl7aFvfy/qU69b526ZM00VYFCmIFLoInf+W3jG2C/B1xEBVdc3QwdZ7zoO2AdqsaC9I3yeaXmfChpneNmunZ+qFn00U9stxnGi2nR98YyicYb8Sh5sojV0Fi8QCQKW64v0SCY1c23YYWfxeNOfCg87lss9kkaSemKZzr/5WvJ/s+lKRfN/DGuIy6G9Blu1h6jzmoZPtwKsXp99VmebGsby2krbvV5/r9fazNdYptu8n/W5tXSjej/Erx1Gvm2HG4BmnNNNABxqZZrDuHrqGPxXBNYE6tWy1E2jL0iiU4wfcJn6uh6SDi6/ThSTzhyrMB9EVepbV8MtgBr+s7l3F/Ddjt7qtS2X/rwzamUa2xpA+l6RraQGTwKuQg5F75AjWdC+gPrQB2i5ehJSKxFDJn2zi02zWbj+A3NxctGvVTDrmbdd6PaybNeyGRx99FNdffz1ef/114wv19m3bkZWVhQsvvBBNm8aEfTrXujT/+QoVKiAjIwP163vp2ePHj8fRo0fxn5ceQaWKFYDabfHqq6/i3HPPxVNPPYV69ep5/5+sFYesxZA2kgmbRlV12lTxHAu0xYoIuqhtZamkTif2YGYCNZxlIlhNBwAbZwKtBtmdA8W21/pukqYWLBfpMUK+yFdB08Nkqa3UeDz+UvF+Mmi6YNkIDP4oa86pUNmyj+WLbJqCTktcGp3giSPm5MgNlYX/9rajEGxiBlLpcl4EeO9aoC5HsExFjWZenXjaVrkyO80wqU1+16mVvffp6AG5o4r2dy6o3uZBokibtq1/1oGmdcqiWLLUYFpmMPc1YMjj/P3KVYlF4nh93SuS+UKng8sZj8U/VrG2v76Uh+5v4thB9T5VIsgE4qUb09IPUckUNWJ49eUn3wNMf1LeJpY9F6bdZaNeMQVzkQBi7TaxdGjd7jVBqMFquy4oW0ndMo1msPCM5AG36ZVoMHiOZ5ZNo6v7sWUB0PZM/ddk0FaJtKTMBDr/RqFLVJVjoJatGIuKy0QM6RpZlhIvK11sNgD49RP1Of5mqelEnYiHdvkzdHTRcRb4Wgtblj2t+EJvP5mmVhRBlSKAi/CXNNjFg1PrnUu9qJKaw59mzMNpl/4Nx/UYjCpVqmDYsGHYu3cvDh8+bNZ/GUCXLsfjtNNOQ+fOnXHJJZfg7bffxp/75d7XVatWocvxx8eMfQBISUH//v2Rk5ODNWvyvNDMm3s0QhVRHrK0Lqp4bFvDqdN2hxr8thPX7Fe97eDilE6Usnr+jXmR2LU/2Z0DTVO0rbOmEaigEdltmLdt+3noQPuYN+rlf0635jnRooBhoJGtbYpe6bQOmzodBpAuHboRACBEG1AOl5Eo8zSBQceD1hfT/0PVzo4+36Crt02F70xadCara8ISEjUKLqKotoKUCH9/snrc5Z+Ln4uiJSJz9qz5Lv45aoj/9oN6LF6Ea9CY2G0FyWKVzf+67d54MHFAKoZJYc5TWdtXBk+TgX5XRSVZdN7kGajMES2Lzs7PE0vjtbLThX1ujXvxn2cGp6zjCdMxOP7y+Ofoe6EjnMfb5ySNkiBZ6RvgdyToXA/bcZxaW/Pmf91IsK2hTf8XW6cvnVtbWmrr0OwUntOSpcDL1kBUJ0OWeSeLeNfrELvl6WVEAV2nLNNwLNii+o7qoOs8lmku1NYIrBUDXIS/AEipUAFtFxdAqyPBa3PheIdbt2yBlJQUrF67IXYB4CyuN2zYgHOG34obhl2Mx+67HTVb9cDMmTMxcuRIHDt2DKaVd6WrH4dJkyZh9uzZ+PHHH/HKK6/gn/duwbxv/oPmTTRFvniqmjpqsPT/s42AsuNKcwxtuqj/cwPQ4Hj5WK059bA0miaKhNIUW14N/0l3AzOeBupLXl9WtkC9u5vnAvUtou9VGwFpkrp8wN9uzzals66k1zR1nmQdTaA4C1k8Bb9Xp40GJubVqu1dB9RqKRjCUFApEYgWgWFa+zGaEV2IJe8BjZIQrabG6e+KSBdtjUhVto/r7m3PHQucLqkTpHoGdO4ZcLun6rz8M/v6/oJC1uIrGR09ZJ1JZIvB5icD88aqx4+iNEjHEbt+OtBxKP+5I5JsBNYpIMzimUU/Rb/tZv1j6vWy6wRDVa4iivDTrENeDb9OB5pdEpEyXZZ9FLsV1VAzB+XKL8W/1fqdgT/XA416yl9Lx0HW/ar4x9qc6dUkZx3jtxmlThPe9YQGK46lA+Uqx+9D4V1bl0+QHxPEdn6gZTW2azVaBiFr8yaDzie2/8vm+Xr7yYIerBvFn+vtzkEFdUQseBvod5N4XwBoflL8Y2c9C3zH0fOgRKGlkKMopdPBVoCxiOEi/AVASkoKSlWsmJS/FIOIWM2aNTF4YF+8Nu4TpB+KT//bv38/Fi1ahJycHDz34Cj06doObdq0wbZtpC7bVLU5pRRS8iL0Dz30EJYsWYLUsmXxv+9jqpmpqanIzvZfrNq3b49flv2C9MN50dzSqZg1axZKlSqFtm3zlKt1BFV87TwsI4ds8ZLNWVjS6BetyRbR54b4x6hxIcqeoI/X5Sy22DnK0u5+14hAAX41UxPaa6RYUueG7UV9+lPi52gmRCIj/HShFXTAUAXxMPVxYaBp57L3gTrNeCnLYaCLpTBlFmGoSaIjKnEiqpLe9Upvm36eMoE4GTQyO03y/ZVhk+Zq20FCRrMB3nZBfb9lZTPUGRpE93sXxf+xfrp6H54QqE7a7pII9BBYKzqRJgd7ftZL6rF6Xyd/XlTDT0uXeE4WXdHVqJj5Av/xnXnZV7JyEZUBwTImdOYM+pti0Gu+SDiYBkKqN41/ngo30z7kFNobnXdN7jmcfxyFllXyavhTFY4GwH/ttm2bRvWHeIET02i57RpFNidRqOhuQUPXwzrddbZysvR0RKtpEMhW16b5yXbHlUCcwe/wSK2E1x67B9k5OejVpzc+//xz/P7771i1ahVefvll9O3bF61atUJmZhZeeecj/LFxC9577z2MHUuiJFop5Z6RMW/OHDz++ONYuHAhNm3ahAkTJmD3vj/RvnVs8m3WrBmWLVuGNWvWYM+ePcjMzMRf//pXlE9NxdW3jsby1WsxdepU3HzzzRg2bFhe/T48MSWZmrqshV0U0ElTR51+18r4xxp2U49B+5DzHBdRLAgZOqmSTJ2VIlPdZ9ALuW27RpkIElU7VtXFhoHWWQfThqkjavvSxJ2DDFrfKovY0ah21BfVotb6hjoHZUJtNuiqysugi2apbglx8ATTSaP4jNud7W1HIYQogv4fMjVrGbJWd1HDDGYZvM45Ou3DciLMBuKVJpiiip6KIvzs+yJy1kdRZxvse54omLNUJJrGopK0lM53PFmb8DQzqENEFExg72e5avx1AZ3HeN89wN+6jZd1V5NkqIm+hxnEYcYTTNUxnFWtgXWcBqpyU143hCDUaaCjr8SjqNWL67y3vAwTHYFn+v2xLVGbI/gNOeJwBn9JhVcXVqo0WjRthMUTP8Ap/fvgjjvuQKdOnXD66adj8uTJeOONN9ClSxc8/+AoPPX6OHQ69VJ88MEHeOKJJ7wxdITwyFqtarWqmDFjBs466yy0adMG999/P5576B8489RYyu+1116Ltm3bomfPnqhTpw5mzZqFihUr4ofPxmHf/gM44exhuPjii3Haaafh1Vc5P3yZqnAkon2aiCKp9HFeihh9TGQg6mQPFCS80gVR6jplK6kHt04bl2Rq0NKEVSFqPFXIRGRov+8NsxJ3DjKoorJMI4LWP9sq6BYXaLQvipIGShS6BLSUgOc4ZNCygv63+p+j7ZMy4jO8tKAOVkM9FyPo2FFnnyQCHacEr9+6TteVjhfIn2cOWF7abRDbUioaZVZly4ha0bHafFEkv/ff1OfBlOdFziuVzgbFVhyOkqboSiPqG3+MvIe8lGXqMBUJqh3Ky6TIEGSoUIFGkRAnjUbzDHNqiIsCKLQlKm8MHQNYFWXWEStWdRTR0cD45WNv23bebhGBY5W1Sm7Kyf6IGqYXIINnT+hkUa5QlIS0PVv+fFQ06BK7PU5RglPEcQZ/SUVSf9SgXh28+tg/sGHDBmRkZGDLli348ssvMXDgQADA7dddiW2Lf8ThdbMxceJEDBs2DLm5ubG2fTlZGH7Zedi/yotyjhkzBkuXLs2/P+7df+OLd54HALTv3B0TJ07Erl27cPToUaxZswY3/d1T/a5Tpw5+/PFHHDx4ELm5ufnn0Llje0z59C0cWTcHe/fuxVtvvYXKlYknUqdXq0ztN2pE7aHo41QFnkEXYKJIvaodWBjF4iCVFZ52gF8PTRcXIqV/VSbCCf+nfm2ZGBi9KC39QD2UrQiWTPmYRlJo9KQgob3Tj0oEsOh3z0ZZuSChqadBoijfSKSqfBTQzgkbfhbvR/+P4Pebigfa1lbS2uuNCXRoUUOEF13Swba9Fw/ago/HoIf4j9PvJi+SRg070feYGaZthvCfr5L3Ocuy3RiszZopJp0bRBF+UQo9g11Dykk0Fao3jt027S/eRwUzQKkgJ4WW8ajgaepQhOnd5LPmZbvR74Xoe/zz8/LXpr8bkYYJNcZ5ziA6h4gcNfRx3hg6qd+qEgmdtsfsNyqKzBdUCZKs7BDQy25kaz5euYcuLEtEta7ScfYP/Ef8Y/S7L8o6ow5oHia/tTCw8hyZkn8xwBn8JQlfNFkxqWil8XA8s9Sg0Ylq8+qxqDNCNAYvNcyHhveVvQe26eP0dXjGOoUK0lGo9771GZzhyf8hurCrRKXCqDcHOSSov6TwHBBN+njbomiXatG4d636tWXQlDFViiBQ9NLOdaHfKV6PZ4YvndOybjKRDLzP2xYKgcGfWigTrizKUGfWZIlwIBXZCkao6LxrG+GvS6JBKmNHxEX/Vu9D54pgJwxdmPPStnaU0rQv/3EWcRa139pCauZ5vzFadiEyDld9HbulpV0UtpiV6bSw90LkNGAZJKISA9U1nSISIFSVfbHMGplKP4vgi+rrZd0OGCwLSyRi1/HC2K3OuuHU+9X78KDvJ2+tQ8smRGs1EyclFR+l0PeAt2ak5RciJyEVqeMFmnSiqjMVzgv6HonWjOw6IFpHUAFFUXlCFAJxKnSMzi157+m8N/jP68y9zMGhKm36VkNEtkG3+MdoeZco26uSot2fTimoitKSTghBCrLMKwkk3eB/7bXX0KxZM5QvXx69e/fG/PlyBctPP/0U7dq1Q/ny5dG5c2d8952/5mzChAk444wzUKtWLaSkpPgiywCwb98+3HzzzWjbti0qVKiAJk2a4JZbbsGBA0kS0CpIjC7KGu3seBei8sTwFf3I6QWblxZFvbWiyVsW0QP0Wi6xNkChJvG881O9X6Kom0lLPVHqquoCYdNDVYROn2ZePaCs/Uz+cdXlz7MWWFEgi2wzbNNbdVGle4owrQGkkdsgS98XP7fyC7PXkRGFp552vQD8Sv/z3hQfx0S2AKD39eL9ijI0si7Lbvr5WW87KORFHYeqaCvAb49F5/MJCvE2EXTOF0WGaJs723KTg3m/v92r7I6niJwGLNtn/lv852mrMN58Q6Pyoigma4cqcsYu/x//cQo7Vliukve5irKS6Ocu6y0uo56i+0u+gZ2rdg6v+Zb/eCVFJgbg/Y8io4+Jnora9lEqC94L5ng84zH+83TtVIej5E+d1yIHn0zMMohIIG6uoosFXQOKnK7UyOet91KJ80KmPyKDZnSISjWnPykfoyu5TorWrrQkj4cq00cHk24boqwEmQM8iI6+FA/6++CVBlIHkai0VlXeoJO91WpQ7LbLX/jP2+riFEOSavB//PHHGDVqFB588EEsXrwYXbp0weDBg7FrF99TOHv2bFxxxRUYOXIklixZgqFDh2Lo0KFYvtxb0KWnp2PAgAF46il+2sy2bduwbds2PPvss1i+fDnGjRuHiRMnYuTIkdz9ixV0IlRNTCKDmS7GeBFQ6kgQGdKqlnnUCy9qT6ZqW0aj4YkUjwoLTXtVGZi/fMR//If7+I8zqMEvcqAwg0yV9qlqMwTwU8R0ouUqxd8oDfBe1/IfpwuORBuHOsKBvDrSy0k5gsgIoJ+zqnaxIEhVZeQIoI6ZYKYK7TZAjfogNMKv0y0iEdguZClRd5YIOn2pMaTTpkiVjnlAYyHJE3ijRqfIebH3d287Cg2EsKiMK5H+Cl2McjVcyiLf2DZJm48bQwL9bh4WRN9ZuZWo0wtd/OtkT/FgvdFFUXh6Tf9TkDGnYuA9+vuK5hT2OYlKVuj7mS7IZmOfyS6Bs0mn/SFDFExgkX8d7QZRdH7TXPlx9Lv1h6AThWqMeqTdn8jQPk7RtpVqNoi6QKigGRuiMklV5qvONV01hqwdXzLozekeBfjfI172KX0/RSUjG2bKX5vnVA6y9qfY7S8fqvct4STV4H/++edx7bXXYsSIEejQoQPGjh2LihUr4p13+MIqL730EoYMGYK77roL7du3xyOPPILu3bv7xNqGDRuG0aNHY9CgQdwxOnXqhM8//xznnnsuWrZsiVNPPRWPPfYYvv76a2RlFWLDMAroZKrqISpKu/apPHOMOPrDF4m4ZCpSzcpEkFpKU/plwn3Jhi6aVSqlMgV6GdRQEl3IWFse1Xu16iv+47Qun1diQI0zUarhlEflrx2mLjOIqP82rTfUudgkHI4xQ8tHRL8PujDXydYxhapdiwxRajzoCG7xoAuCMwNOXBrZlQnVUaVsmUMrS7Ndkg3UsOt3i90YdCE7VKN/fBiizAoKQr8vvNrPao29baGhnMDPygbbntxUKZ1nmKekeM5S2+uYSviPrgtEDhaV3kgUnwc7DyoeSaEOX9v3oharF9cp+RN8pqoWtvT9FF3rmBNSlGElyggxgc2/hzXmf5EjX/W5UmebyPGwb518DGoYigx+FsUViTHS+crEWUKhv79tnDZzgFoRXqc8gbUmPFGQKi8qzeFx2mj9fUWIynh6jIjdioJ/OYrsVPp+itYponUYo8NQ+fM6mGi1qDqMFHGSZvAfO3YMixYt8hnmpUqVwqBBgzBnzhzuMXPmzIkz5AcPHizcX5cDBw6gatWqKFMmwSm8yYZOptaCRdTg5/zI6QVAlDatEpmj52Yb1aDXc2ungQEVLFt1FUSdOBXaS1Qv491rvG1VJH6uoO5MBRUmU0VMVeUBopYxtNyEVypRt2P8Y4mEFzGgF6XNghKoPSQCylP/Dgt1hoiiVHSxSI04Ez4iaZZR6AgEUwSrEqdBpmWbTlojKHJyUgcq1bMwgaZ61kvw91BHL4PX21sHGg3mCafSaJ6oFjUKBXVGp4vsjqMOLdue3DTrTvT9ZuVQomshU+k/WRC9VqXN0oW7aO5WlXKJss9MYIaOaE6j87FKw2eISBgt17vlOfjodUVU167KgvMZQgb1wxQdETpGNUGa+fd3xW53/io+ll3PRCVXJq3nVFF4EZXI2klk8DOhu/WCLAJaRrhzhd150O++bZq7TpBg0buxW1G9+El36b9eQ8F31KRuvftV/MfZfCTUMyCfFU880Jd5ZZmdRp1uJr8JytnPxW5V5RiAXmvGIkzSDP49e/YgOzvb65ueR7169bBjBz8lZ8eOHUb7657HI488guuuk9cbZmRkIC0tzfenIjfqFMyw0EWnrcFPPda2qZSqmnkqQFVWUK/MLvjC9ChybmUr8ndhDosIlDlzRYsAtlASiR1FYUCqDGyaqktFu6KEGneq75ZJfRmFLtBUZSEiw0sFrYnjXWB4LQejhkZyWw+Of75OW297z5r45wG/Q0PV0siGDud726JFGP2cebXBpqmLOh0iTBn0oLdt6xj0lVgIInqLxnvbQS0CXX791O64RNH+XLvj6DWEF0Wl15Wpj/PH2C343jNYmyUdbNsHUiFWW+FXlWI34BmYogUvu16KeqmrnDf0/xc5Us54RD7G7tXy53VgAmSiub1Uae+9EK2t2G9L1AaW/j559c90bSIydusrtAbo+0kz20ww0WmpFmJ+Z+cnciYdnxeNVjnQAWDzPP7jKucM1W5QZQPocNBSG4fOO0pRaAFdBXXkPHYIHDEmzkMq+knpPkx/jP2C1rzsmjXjaf7ztHWkKnClmq9F0PeCtm3mcfzl/MdZgETHiVNQXQGSRNJF+5JJWloazj77bHTo0AFjxoyR7vvEE0+gWrVq+X+NG4sjVmXLxr6khw9rtIYrSOgkZmusmyyKbcV76LmJjFl2HrLFgWoMtvAU1S2KHAUcjh2NGZilSweiNOzis1yghs5SKMO0CGQXTJEaP10IHlN8fo0to4904a6KxNp64E2MbdvMiUMkHZCn6F5VQ7QwLPT96fbX+Ofp70OULTH3dW9bVSpiA43YbxGUmtCe1/mptARa+qGjs2Hbfk0G/T++vJG/DzUu6rSLf546uEQOGDpv8hboA+/1tkURFSpaqRI4Kwhs09hppoIq+iyaN6coDFCTaNC+9fzHVT2uqZEkFLtToLMQVkX42XskWtDSOZ33O6PfN1HHF3Yt533/AVhH8Exh87ooS5CVgIjWN9SA4Im7UWNd6EhXrJ3o+ylyGqjWRm0FadY8VDXyMtj7IUrd/zkvOqqTGSjSvKHlXzzo+zz/bfXrqIgi0LZQo1MID+qoOWa5/le1U6SI5gRVZyaaySJyMKgCc8tIVo/KnlggeD/ZHCsKSugI/zGYBkiQ5Z/Lj/O9XgLWGIWIpOWw165dG6VLl8bOnX5Fyp07d6J+fX4kp379+kb7yzh48CCGDBmCKlWq4H//+1++kS7i3nvvxahRXl/WtLQ0odFfunRpVK9ePV98sGLFikgpDMJCmTlAVt5kmCGYKLLIZHmUE61KP6g/xsG9ADg/INVr+Mb4E8jlfDYmY+zbwve0q8YoWx04kq58jZxcYHd6GipWqm5eFsLUsGWthlSwRY5I3ZU6E0Sp8OWrxy7qWr3uOVCVcJV33Dalmda7Zh0FIHGS2Nbf0/eQ5zSgF4SsDPuUTRl0MauKECWiPl8HOp8t/wy4mHNBX0pEdFI5zrOG3YEVeQrim+f5VfcLCqoDIKrfo4th3u+j2Yne9trJ/LRAmcYA4P+uHdjM/9zpZ50IJ44O9LtpEkWnsO4ogDr7hJfhooPJ71Jk2KlakNJ5TtWWVYRO6zTdGv55Y+N1LgC/QyonK945QZ3mImctW3iLIvkdzgdWfik/vyhgLf0ObgfqipwPADbM8uq+KfSz5v2v9LcuytpQiaDS36ko2+3EO4CJ96jLSZoI2j36EBi47DOR/U5VziSdqGi1xnyVdoaq44dOh4dSZWMGqI4ArapkVAfbdnA0uLJpNv87yGAtO4O0HuTXnZEhMtabnwRMFXSAAMz0vESYrD1EzgPWYYReEyj03FSlNL/9AHQRRPllUAdRG05r7GJE0gz+1NRU9OjRA5MnT8bQoUMBADk5OZg8eTJuuukm7jF9+/bF5MmTcdttt+U/NmnSJPTtqzMpeqSlpWHw4MEoV64cvvrqK5Qvr06fKleuHMqV019EMCeEqONAUsg8DKTviU2e6YKoRnp6bD/RPod2ehcH0Rj7WZR0N1Cds6DZT6KoqjFK/QlU5aRnG41RFtjPuSiqxjh22Kuh5j2fmwsc2A0gF6Vyc9CkVXtzx45I6CZK6MKmtiDiwDz4G3720vhMECkW8xAJQqqg/bbXTva30QkiEsRRQUUJeQvCtmcB056IbWccTIzBT3sfq1KFtRaESUKVKt3zGmDSA7HtMA6vMFQnTtvfvufvQ2steZ83zTz4+VngtAfi9xGVPTB6XgNMyhNg+n0Sv4uEyW8sUVAlbpUYnIidxPmhmi/bCVqRqmh+sjhlNkir0/iPtzhFng7PjHVRDbUO1Zuoz1NllKmgRkFOJoDAeoc65kSIdDryXyPvHMNoKzQ/OfY70dH7mPGsOKIHiCPWPkV4TiYNVRMXOYJUGWxLSYmP6PvNXnvdVP7zLOtElD2lA3M2yFT6mUEVpnUZM/a/u1Pc/UYXUavatmfGrs06Bt2id4FT/yl+XueaKUpzV5Gqce1u2B3YthjocTX/+XbneAZ/dma8UU8NVFF3EHrM4X3xZav02iwSyVRRTpANFCX0eqsKJInWYrVby4U26TxQo7n+uRVBkqpSN2rUKFx99dXo2bMnevXqhRdffBHp6ekYMSKmDnnVVVfhuOOOwxNPxBbYt956K04++WQ899xzOPvss/HRRx9h4cKFeOstT9F037592LRpE7Zti00ca9bEUubq16+P+vXrIy0tDWeccQYOHz6M999/31ePX6dOnfiUbEtSUlLQoEED1K1bF5mZEXgco+CTq4FdeenCNwkuJK8SY4+3z2ePAjt+CTfGf/8J7P0t3Biq5+k+lRsCwznq8uz5rn8FunFSSzfMBiblGY7Xz45PKT6WDnx3KZCTjdQLXkGpVAtPadmK8r7ZUZFaJZbOLxLBYuy1rKGbZ6AqrNPyiweNam5bHG/w0wuhqsZfxG8T5c/T2tANP3uCWTzOfcnuHGgNvyqNvSAcRqI2WWGhC+dln8QWdYWR1aSnd8cLE/MatHxoyXvhF86JgkaZbYXqRNEcHssnAD2Gxz/e6vRYj3uRhkvvv3mK2gd3AlUkKa6iKGuqIOODwQzwME6/bsOA7++Wt61U1fAzRE5OaoTznHBH9svHBcRlJsFxw7ROrds+ZvDr9I9XlaaJRC19bYM57wVtTyfKoqH6MOl7/Bo5gLoLEeCpkx8RlBP+lKctokqrlsGyp+a8Bpwh6ICT70wqJF0vRMJqzBGv811VqfTrXGdsHSB0LhCVFW7Lq0XnaUgA/o4DGQfjjXVaiiLSVqCZJbzSld3EgVe7DX8MFY0sRRptSdsmL+us24H/ePOTvWtBbm68E24TEX2PsvVzISSp/91ll12G3bt3Y/To0dixYwe6du2KiRMn5gvzbdq0CaXIpNuvXz98+OGHuP/++3HfffehdevW+OKLL9Cpk1fP+NVXX+U7DADg8stjHsEHH3wQY8aMweLFizFvXkxcpFUrf7Rz/fr1aNasWaT/Y+nSpSNzIoTmD2LMiLIaDm2W77N1tneRsh1j42T98yhVhr8Pe750OfUYZRVjNDqe/3z5ct4+B9bGq/Zm7veeryowpFucAvwh8OIDwIDbY6lXqt6sYWELpF8+kiuRihavjXoBWwTqyYC4dtkGHe0EXiosTeVLVC0WFZRU1Z1vns83VlRMftj8mKjxtU4z6F1tAv2MVP14k8n6Gd52uQT9TqkhYlv7WbtttL9DHlTvJMXyujb7Zf19RZkRa/MisSLHHo0G7d8Yb/Cnk+4Xosh58xOBWS+Kz43NQWEMfhZRlrU/U0X4a7eJtc0TZVzQawvPcNfpfkEdnTk58cYw61kfJguFGcE0A0REV462CaWFJPrP2Dgr3rmg81mqWlbmKpwjgDwFPmp4Bh+D/Q5WTJBHxQsKlWjanFeBk+4M9xqLxgH9bw03hghadqhqafjHdKDblfGP07KGw3vjDX7axUKnqwbv899EBBZFY1Ssze8SxGDrH9vSLlMmPyTXtqBCwhTqmN73R7ygJy3jtHViFxGSLtp30003YePGjcjIyMC8efPQu7fnjZ42bRrGjRvn2/+SSy7BmjVrkJGRgeXLl+Oss/wpf8OHD0dubm7cHxPlGzhwIPf53NzcyI39IkmvvG4FIqNL5JFOFP1ulj+vk37+pyDlnyFSl6UXdl46EW07KBLdkxn7gLfAsFW8pgx6SL0PTTfk0XME/3FRP+xEcNaz6n14WgS++ssE+TKDFw8Zom4ELQUpxAyq/l0Q8IwA6jwJRrCighoa6ZalT2HELnUxiUhHwd7f1fvwEKWmc/cV1I+qWEBEtQqzwBEVz/rlv/HPU4ehyOCl3RR4QmBRRPiZ40IWUVTV8O/Jy5YTpqBTUUnOd0unNIO2XONFnWc8ox5DF1FpDeCdK08zgX5GOvM/Td9n8IRag9AsOZ4xpdOLXWScmMC+n7btMQFg5RexW502nLawtU2/W9T7srKmRBLFvCX6ntD1wcJ35WOInMf0msbTZaJdCIQGP3FwUoc1g843ovmvikIbjYnhbf9Fvp8OJ92t3oenJ+ETHxR8rtRhwut+EYWeQREh6Qa/o5DB6qRF4ii27fxMYSrUBwVCdAya/myLKLWKelp53tptS7xtVfqnCNYmb+Ns8T7tzondqoShln2ifj3VhFanPf9xnUWMLqJWhOy7RYXURGzkRITp50iF1Ci27bPyjycXx0Xj5PuKWjGaqtMnAnpuPJEjuqg36elb0NDfqOh3zDj+ssSeS2GCOiN52GYq0BrbZAkH6kC/s8q5WVBnTRfTvBr2/Ai/QQs1G3Rr+EXdZiiykiVZpI4aMlGIotnCPhNeOj51XOp0TeA5Wdi4vK4ijJQUch4cZymb32mUNUiPPMe6SKSuz99jtzKROuaEVzmIRb3ao4I5YUSvs+rr2K1O5wzV/9L2bPUYqhr9KIIBXST6QQxRhxFGz5H8x2lGDs/gp+UXOgYqzyGks45XKf1Tlf6wqMowAH4WLA1EiaLzVOyPlxlKf4M62U5FmEJ8xXYkBeaxFqVS9r8tdltJkdamg6y3K0sR/EUhKCSq+TJB1JapQnVvmyeuQ+ugRItKlaCTzkWbtUJSqaLa9pOmrehE6X+2/YQpHYbGbkUtfthrH9KI9tIWZYxficMjmAbHaNyL/7gNvH6/NMokUuilbYp2ROAdt4G+DzzBPLrQsBX1iRKRMUL7g/OElqgTIIrvcGGGpof+JhEpAoDuV/Eflxk6gJ6xJ2pFFiVswdpGkOJJnRG80gP6OxV9L+gCkjff6ET4ZYJpuujW8IsEzyi8awRr6yaL1FFHKS/Cr/reAPadDChrf4rdrvgi/jmdyCeF12KQCcqqsmzYd4r3fs57I/58grDvjChDiTmRaGaFKcwAT1T6OoN9x+sJaqgZNDvIFNZBhZcCz2BRd5W424Db7c+DQXVdTGFzl+j3QOeutRy9IxoQ0TFQ10+Lf6xhN/VxKr2nKBF1/wA8O4FXykHnRJHBT9eCvMAdE2EuATiD3+FnkSINaWZej1DbFFzKgNvCj2HbRo6is0Dl1b1Tp4do0dfaMnWWwmobVejU7/IEAqnBJ7qAiNT9TWDpg6oUadvvFp38RerIKhVWlk1Rs6V8PxE7V6jPgXqUaX/2goQKF1EVesbi97xtVeu0gkBklNGo0rrJ8c9vWeBti4S8igtUXJEn9phGSkxE/dSpKv4Bzu9Up5vCGaQdlKgNaFiYc1Bn4cor2aLGsSjbgRq5vDZdOhF+WhbAg0VHZWU+sgg/fX/LamQa8ITEftYooaIG9HqOUGiH82K3rCSQh64B0W2Yeh+e6vbWxd62TF+CPcf77vyoWcfOsgN49fomorT7BCK5bE62VYsHPHE4maaAbftaCsssYdmKiSAzTyhRFtHesSx2y7ue0bVBFEEinVpvlqVKyTrmzV06Yyx9P/4xKhqp0xWK58jbrbFWpI6HRM3jDNl7wQJvLAhIof+/yMlHSxJ569/dvylPr7jgDH6HH9vUdBt0e43K0BF440EnsBYchf4gvFSgH+5VH9dxqPYpCYmy9Rsvq4JG9UUG//EW/U1NoKntotp3FToZDjSdnsfqb2K3ooWYCpomKjof2qvXVvhMF1HqHm19Ne/N+Ofnk64Lpq0moyKdtG8UGVX0u7uS04mDCuDpCHklAhpNrqpRrmILNfh4NdV7yMJG9L2j2Se2ei1VSSqzqpd9WFR1sgC/bn3ua+rj6CK0BictVifC346kIPN0AFhEWZZFI6vhp8Zc68HiMRhN+6v34UEX/zzBOTbXyQwyVU1wkzynuq2TnL62zIBolFeexpufdfrOU9ZynIw6UMcw9/k842ZNiEgyY9U34ud0xYJPkThCmAK6qtuQzNBmz7EsQAr93ezfIH8NEdRIts2EpOg4r9pwfo/biFNKJwuFlyE6WUOricIrO/lOQ/iQ6hSE6RahQz2JWCPLruKVUNL1nI7tMvOF+MfCtKQsYjiD3+FHlCKZCGQTHqvB5hlophdlHlsXeds6vYO/uyv+MR1PMfWu2npJy2o6YUQ1YRReOj1dKIlKEOiiVtWT2QbaZqm9paCRquYM8DsTeAvwsCwa721XFdRw0syQ1ZLFmAxdLQJRiQY14nmLdNu2hjyaazjUeNCMFdGCkxoRvIUcdVyIjIDKCkNEB+pIC36vaFQ81dJBaXoOvN7urE0XIG73SOsdbWu16XeL5yiNEh2nBE9pWqenPf0/eItmnQg/fQ95ejPsc5r9ingMWYSfjq+z4I1CHZ43p8zKa0Eq6xuvMpI25enY2DpBqxMnpszgZ9FNXtaGqUaRSoldBD0/2+sQy0ZTIfufWFRcRRSZAKc/In6OrelYFiCFfsdt3yv6nY1CmK3P9ep9fn4u/jE6H+pE+OtwWubxyotk2ApC06y6ROt29Lja7jhZKQAP3hwcRalREcEZ/A4/9KJsa6Dqeo1lBj+rXeMJcdHJx1ZEkBo0OgslXjqRzqKRXmgO7xXvJ4vODHpQ/Bzt+WtbO0sNJZEQF43882rsmQGqE2XiQYVo6gqEAwGvXzVPgI3Vospoeaq3nYiLGM/QCkIFpXjphzroetxFolCUrZJFugyZOBKNrLOImim0C4Kw3pF8L3mdJOiCViQ+SNM9aSTIBJppFDQCaPp435vsxqe/OVE0RJWJQTVJRO8nHYOnbq8DLQFJdCqorcGlIwxKmfRA/GM6EX76nsu6ekjb8klq+H0K0xoGxFecrjeqFndBZEr2myVzsCrCzxDpBwGekdudYyCw90KVRcOc3hM57UZ11MIBb53EM4RF2i0Ummkh++xlPdKZ8F/ttvLXkn0vdI1fWhoVRFUmx6At60yg1zpZRwIWuFGKzEaQsaazxqVZdAzqlC3DKa8J0rhP/GOyNos8dLQ9eNDuHYmI8NOsTlsnzPSnzfbnOW4TLbpaiHAGv8MPjUrKDFQZukqXfW8UPyfrf0xRCbSI8NW1WV4AdISKKpL6IVkq2R/TxM/JvOs0zbOBRkshHjLlZoZKtIk9xqutZMgyFZgYE6BXprHs4/jHVmjUENIU2z2S2i3bunVTB5SqtZ/4hcRP0Yta779Zjq8BVSrOCixaqehf50Cva12mPu5t2zr2qMNQ5My6+N/eto7SOY/TSDup4O/8yH5vu6bm4jgIjUzY9qHmpTMGofPVL5YqzFQkSec3aQp1InTWaMvKo9kAs/3TOVkCLKot+w3TuUwnA4mHLMJPs61s1cdZJK/HcL39dTVlguhm0sh+g+xceRlIvMW8KWw9oZqzmMOI5zRmHW1EwpiAf53FWxcwTQeZ4B4z/FTaPb2uFT/HSzvnIXMayAISFN1sgiD0PZatcZgThZeirTuGDDoH65S58bJp6G9Up5PE1EfjH6P6OzpMkWRWyKDnmohuQmkkw8Y2+KITdKPwyoVUbbuLEc7gd/ihEX7TdBmGLCWPLtaiaBcjUmNXHke8zTwhoyC8iHKnC2K3stR+qoYuu2jKnCT0wiGLmNku+Hj9iIPQc9ctMQiSKYmeUseFrN0XTf23gZaIyD53Xi2hDgXVtpKmuB8L1E7SBWQiBffo/8qUqfPPgbbIknzvB4zytoPpmjTzxraNnA40QmWrvkwX8LRcCPCLVNoqH9NFSSJV8Olvz9Y5QaGtS6OCpsXa9jNnUS+dDBiAH9FjRievzzWDRq5k85+slE5Ww79lvrdtO/f8nCfE+/tP8v0Y25aKnxO1XAX8EX6ZASG7js3Nm2dYD3AKcxqncVL1ddk0J3ar6kvPzpEXbZ3+ZOxWplHkc6Bz3gsWkJCVbm2cJT9HhszRJKudpsi0b2SRe9+cLjGSZZ+5LwNR8n7MfV383JrvvG3Z9UgW7VW1OtVB1n5ZFxYAqqvoihAW6tSQdZyQ/eZtXssE3c47LOtH1BWjhOAM/pKIqEc54L84yLxnFSSGtmzxkkEibraiULopSrLJYBdxZsiMbZYCznNOsOiKzACuTbIAZLXvOmmAQLziLl042bbw0emPS9NW6SIzKgpqIqaf9RKOAi5jA0eJWgdZayseNKJqQntSvxnsakB1CnTTaG2g0aE1gSyRXSu9bVnJDI3AB/UlZBkYUVKZGH3BussMEkmU9YBuQlIvaYcDAFhC7teWZAV1usjbDpYWLCXtSRP5mVJMv8s8dI2SIG0kUSw6B9qKzP5wX+xWp/8zYG9M09IBWQrvCZIorCzCTx/TWjRz9mGOBF1Dmbf4Z63Z+t8iPo46u2TOD1kEU6Y4P/cN8XMU1tue954zTRUqrsaDzQs6104e1MDl1RWzjD/Z2kRmuNIOGzIjmV5HZPXxMtFemVOPOn6rSZzPQ/KcJLTkjkGFEWXBAFlpRNAJK0IWvKEReV0NnSBUU8YWdo2i19hE8+un8Y+xDFeZnkHrM8TP0cCgbUp/54tjt6qsUDa36XbhKKY4g78kIlOO97XikKTZyC5EusJUMq+urH8xaw2oQuaU0C0ZYC12Jv4j/rkF/4rd7tYUsZPVwfW5QfwcvbgERbBMazh5mLbcmzRa/JysBrK35H80ramNgjkSpW7bC5Cp4itPUIwh85xTAyROJI4YqY16IWHQ6OimQOSCpoPLDNRWpB3ZHkVULVHQ6FXQeUJburWVODKpQyxo5MrKdSi+2veAYbOXdI2oZOkkSgY8DRaGzIimqviZgTmPpn9GIcClwwFLoVhqhMucC9Ke7ZIaflF7RdF+tuUgKtgcJLumVyHBBFm5oE6rRR66GW4s5d62HBAAduZptfxP0oZQBl1nyTLsaGQ6iOx9ot0xZO8L/X0GSyloNqHMsSZLx6ZrSJ4xz2C/E15LQ512w4C8tl039ZtXd8+juuZ+QWw1R5JNsGQPAPbmdT+RdaqQle1S5x2vC4oO7LVVHSIcAJzBXzLRTaWXpYK1krTOoQubYAo6vV+5LoTIygKCC0ARVHQkiGntTxTIamhl50O7CAQvrjyhMlOY+FoUi2eZQFvTfuLndOtCB2q0QtRFpKIPyNtkJRKasSFzelGPdjB6QTUZEpkKL4so8tKPedBF4B9Tw51PIqCpvbrlETSF3wQqhhasC6fib4UB3VRgWVRbVn9PDdlgyjONbNlmNUWJ7veCpXrzkClv50f4Odc9ZrSqSkWYAylRvdJZRpRs4U2FIg/uFO9nW5rWT1cQM885wROfTQayrAXZOVJnbtDp6yuZkETuqYhcULyVBihkAZ4GXcXP0fWKLCouy7bT1Vg6X+LAl13rKbLAg+73RVYWoNMRimKbSRA1srW6LMOD6tfEPfen9enkE6VGTH3Na1oRxhn8JQV6AdBNlaVppID/otLpQvFxdOEavJhRj69MjE4WAdDNIIiiJRSrTzOdqHlkBGrAqPODl9bHqERq5IKpvro1x5UkE/aPeQrUut5nWQ0xq4HkQWvmgwuUlV/qvfaGmXr76SBLx2QKyAXN/o3ediVJbSSNMATf82WfRHtONugILwL+KK900ZckqJikLEIVBR0v8LbXfO9/rsUpiX1tU3RbPQUdP3TOO07iHKSptcFMM7rA1NFf4dEnL/LU9iy74ym6Dh7ZAlemLJ5fw8+5nrEIrao0gUXj9q2Lf44ZbCdqRv9l+iayuYeWvtGyI8AfXZYZlydzlPUZzHhVtatjzuWlnPmGXSdlZY9RI7s2yxzoNKMvGAigz8kcKHQtFTR2qfCqbAy6rgkGeOgYsgxEXgSZIQsUUGTp+LTkSjqGJHL/s2ZmKQtK8NZJLAil0mFhXShoBhyDfV9U3ShksOzBblfq7S/LhpT9XmVOEt33U9YNKEp0OiwVcZzBX1KghrduvTTt2wz4Iy2yVE1aOx+Mzuiqccqim7r9Z2UTEU+EjwfzotPUXgZbhHeUOD8owWgUXcjqpuPbKmdXkWRrmGopyDzYGRJRvXokRd20lyxD5jE25VDAyXKIZqZIvqdncJRzGWzRaWscUjVw3XZZrLSEoZsCqUP78+yOY7WwKmhWSWFMd6QiS7bCQrrQGtH5b/qfYxEWWW17oqFOOtvMEWroyfof0/l/c0AzxLqzBYE5DcKkdTNs1fcpMsOORfh5mW1MgVvWAUYFi37qpinzeqUzZFliNI09aPBTUUqZcblWkv7O3gPdLkE8WPcG2s0l0cicNbJuAXTNEHQ60RIjWXYQdTQFv185mtF5KpwczPCgDlPZ5yITCNWtVafGZdDxsOprvTGqEadBXKmcpmgfa2fKE3789RPxc5TF42O3vA5KbH3dc7je+fBgWjL1u+jtL1sjyhy39JoW/Ex0uzZE0X2D6ePYlgsVE5zBX1KgF4TjNFP6g/XFurWT1CMXdAzIFgsU2os9+IP/aYzeGDKjXpZeSfnte/FzLOJCDVkZ/W/z36fvp65adEbg/ZQ5Rii24nA8di4XPydbGNAau2B0vWZLvdeWpZaFhX5XUyWGgMzZxYTneLWIlCqCFEPabioKY0SKhgEbhXElPQWqBLxdvJ8MKqYnE56ygdf+qyAIRoM3sf7mEf9/JtDfrG2rRZq51VoiVEqNmeC1RrVY1oFpTvDae5pCr1Uygs4augCWpUWXkUT4oxC23J638JaV0VFkfd91e60HM9poBqJM22G35P9lXYX2hWizxVKE9/xuP4Ypi8aJn5MFAujvIljWpasoL3NWUeNXdh5UAyUoTKzrxO0nEXv88X69MahDIZhZqvs7p1kOtmsUmuEaRFfPRQYTTV4k6QKhgq3Do7i+95aI9lGHQjCIohv0kZUMNM7L3FBl4LKuHonoGlOEcAZ/SYG2FZKlkFEG3O6/T6MIsigvvYgEPZQ7V+i9dkuSyhS8gAfVvIXnQcTCojYEAC+VWtZ+ByCTUeAc6Pupm3IWnCTZRU5kQDIKql6x+zDxc7JWRLr1XLLexmGhgm2yWtQykvRbXUQiXTSamWhBMp1aWZlzp7BAI2T0c6NGhMygKgos/yx2y4v4UGRR87D8/oO3bauOTz8r3XMNli3Z1ngnCl7LPh4znvbf92V4Sf4nWQ2/Ls1PFj/HFKyDZSRBegyP3dJuEkFkit2UoMHv608umfdkbVlZppMqcnhKngEpM3YXviMfI0qCZRa+zguSJTp9z4IaQLrCxjTrIphVRNcrsuwmqtMRzCbQbZsWhXOb6hHodt8IQrNcghmALfMyOmVrX8ArzaomKTGIApWQKF3/ighmB+pChYFlTvG6Ei0W3c4nsrXx5rn8sR1cnMFfUviW9LuWtTYBPA9lcGKjEekWkgUE9bQGxXl0vaQ0ZXT/Br1jgshq3KKE1l3zYOUAQU++TxRHM6U/mGLN6u9lKs+Av9VR0PnB6rh063KD0PFkmQpRlBXQC3lYJ06wznw/uYDWbiM+roxEi4Bha6xTEUbdMcpJeiTLoL8PmkVDMxj+Ugj0AFSc97K3vYUIT9FU0NYSkdHiBM2uEgmB6jp8g9Cooa3Ti6b46hLM/FBlzzCqayg/R9EOVKZnI4O2PZQ5MWQ1/LqlaWxul5Xo7FI449PyPgdZW1ZqdMkIfqb0ei8rF9EVi5TBjFBZZkYUTqUakjR1GfS9kSnPUyM8+Hs8YCEcGoyCzws6AATQdPygEac719DuNrqizEGoU0umiSGDGsn7AwY1c36r1h3sum3b2QMATvg/+2MZpz2g3kdXayeIrOSRQte1wWykep30xtBJw9dtuyhDJjBbTHAGf0lB1is+CPOQT3vC//iqr7xt2YJPdiGqr/kjpx5f23Zd1KAJKtDqohOFKq9pcAUXqj6DX/FTZAupYB2crmAUVakNlkgwsbQtlu8RnWx1F0qzX1bvw4MawaIUcJl4DyUYxaftkcpKvPhtSHu2YAoj41zF/yeKOFOHhm7NeLDMQ5ee15AxiDFHDbso6pNtoIuqvgr1bfrdptk29PfV5YpozisMslToqGhAUihFvw/b+mS6mLetk7ZJt/7tB/U+POp2ED/H6k7PeMRubPr9rN7MbgzaalHm8JXV8DNlad0SC1mGiKolGcvwCDptjpF5VHfOOhQIBLAIncpArCf5THVh391jkiwu2xa3FN3rUBBq5Ov+zoLOrSiy0HQda/S1ghmIwSi5CCraF7wut9Wcr+gaKlhv3+fvsdsmCgHAMmR9sX+z/znWZUnVenfDDPFzrASz6QD5GMx50VgS3e4myaYE9ASdeyrEidl3OHj9pPOf7LdC14P5ZWl56M4V9HqVncBIftsk6uMUEM7gLylEUfdoUy8YvPDYnEfQm8haAjY6QX6cjnGoSnvSSYs64zH1PjxMsg5YGcMPmvVsQaiyssjzbFtDTdPxdQ3+PxVZESJqkQwRUWpdz5F2Y+vWG1YmWQzLBCKKqloxUQpjFJ5qXahQGK0nnvOqt53IzBgZdMGm6jtPozlUI+TXz7xtWUeQRGKj0xGG/rd625sX8PdRGTPUoUWJIs3Zpo2orQCmLDrKHMC2mTg0+lfGcgxq2Mg+E1rDH4wu7szLYgka0EGYkJhsjjtxlPg5QOz89kWkNbOugin9zLhKV5SeyeqFWRmgyrnHnOSyTIWg3o4NJ96ht18w7Z1eQ3XLXoKGtay0TkQwe8JGpDSosfPd3XrHyUqE2JrRxGHKvu+Mua/HbnXLQQHgwBb9fSnBzADK+jxngOq9ZQ6wzXPF+xyvcPJRAWARKiOXXQuCHRxoCr0s4EWdMMGMM5rhJIN+N/60cBgDwCV5Ioiyc5UJpxYTnMFfUjCJcDNl+g7n+x//Y7r56wajLLoCLJRgmhhT6lVFpOmFU5ThoPJA97tZ/Bz733TVjYPYLDaDqftU60AGbV8V9FyHhUYhdP8nW0V2miYpEn1hrW9MEaVAB6HfJZG4n6xbAeC/YCbSay2DGqAL/+1t0+9HWFVb23ZytL2XKnpJszHo+1qFOOtUCyxqVKZLWoLKoNkQaXm/U6qd0fdGu3EpsogP4Hd+0G4NNBNF1YrJ990kDgsTPQfRecq0MUT8/qP5MQDQnLRWCypEM1RRMFGWADUGVJFxEXVIfau0Rpp9prnx8+Yvea1z1yuuzbK2r1UaxG5Vgnsn/yN2Gyz9oo4V3fk/GIGdIul8QpHpJbDfH31fecgyRljdtaxkUQV7P2Xq+JSg85u+n7oG/w/3+e8zZ7ju+gAAOgbWezKtBhFBrSCVA4dBf2eHA+V9bB4z6T4TbF/M0FX8B4ADlusk1bUfADb8LH9eJ6tpt+L9EP0WqVNO9D4x2Bo6WCNPAxOyTCpKecvyKZq9ItIAO/Np/uMMZkMEBZfpdUEVQCwGOIPfEU/TvDrQoBCcjXctiqiQsBZTEU2gi6hfP7V77SqSCD+7eOiKjwSJYoJhdYgylVvAH0GKQpmaUoG05ZGlwlNEavuqGs1qx3nbNEWMXrhsBXt+10wdpgJbVRvw96mliChTJd+dSer/Ss+BCVACfo+6TEwsCFtI0NaJuq2MgnxHeoLrlswEMemxTmsZTdtUMi59z9vekWcc0xRqW8cgbRepMiJoRGXGM2QMEgFW1bbT+lFq5Js46UTzgKzDhRBLrQ5anx9U7WaoMpKaCVJvfQtgxfmxOvtgm0322ipxL+qstRXuk0VQWYRe9V4wAyIYxaclYratK7OOqPcBPIFBIL7EgUWCVddjWZo8y35TtQKTdXHRfT/zCbyfNg7gtEAggGVjmnQbCDpdmOOklYH+yUd/8d/XLQmj89bGmfqvJyKKFqrBSD1Lw1f9T6eS2nnbDDmd667KedpA0C2AOpRUayU2/wfX8XS9oPteB7PsuuY5nqnuDA+6dhXN46pr05rv+I/T7OE6BVByl2Scwe+I57e8iMq8N/yP29S1Bdvw2aTW/vhP82OCqIT1RARTw3jopiYFWfKeeh8VbKJT1ezRxUetVvx9hjxleQ55k6ZsERREtHA1MX6XfuBtUyMzjJq1KSv+x39cJaZF6+dlKYBhUH0e1ONOBWvoxVwFNarZ+07/n6rHwQheJNZWEX5v3mJXJwJ72mhvOxhh0oUauaw/Op3/dFL6a7WOf4y2spO1fJLha3umWKA17e9tH7J0nlGDKXSHFMvFO41EiyLcKueOqA6bzrcq1W72uQdL4phWjkrcq3Qq8t8DW0EzFp0PQg0SlXHCDOVgqQR1SJj+3hm6rW2pczk4T7EUfdV1tfMl/Mfp9zSonB9E5LCmrdyCbd2CdMwTewym/q/W7BlPoe8L4NWbhxGOYwENk9T24LWXlWCYZMGEaavIEGWjynrGBwlG+FkrT1XWG50bbNciojZz9DuqEpnrfjX/cfo7VzmlWAlC0FFrI4o4N2BPMKfpcT3kx1EHnuhaomovKGo5Sh1lha37SwJwBn9JwUSBcrdAiMwqOhOAtSxhLX50EKVumwgRBrsFMKjIFQ+R149OPGUN3ltK0Bkigy1eO13sf5yloatSKekiX1Q/LqsXk/FrXvq1rGVSEHYhCQO9IB8m9WqqftLnvBD+tRlUwIoqI6t+b/QzsF0kqy5QJq2O1pDUZpNURpoBw8QfabaFjija8Zd727yohW20ZnqeA0vn/6FZBD8/G7tVRfmC0MgPM+bo91yWLcQ4zKm7pNFPVd2mCGpEqBZrdC5ZYtnredBD3rZtr+fWZ8Ru+9xgdzw1xEUiodTxxkNkYPvKxRS/daaJQUUkAa/DioqUFO9/CRoQ7DunKp1hSupVA7W49Pcma68FeAvvoPgWi7qlVrb/rbbJqyVWOcWok1KU3q/SGhJd8+nvXTW3in7LtCxMVSLG3s+gQb3BIsItKz20hbVsE60HdWAZBsEacBmzXvTfZ5k6sg4TQYKtGVlpg4n6ffBzYY4uVWtUne4gpyhKW0W/Z2qsB0tuZVAnNo1qq7JM6wg6Wew1yBxhBN83pn8UdAQEodcjkVNS1eWq9SD+4xtn6Y9RDHAGf0lBN2UOAOpqettt+Pm52O26qeHHOkez1ywQL0jHDLKTFKIydMKjUTLqvS8Iz+CqvAU768edf055EX4TPQBRz9IsRVqUyFAQRbltMOldS0V8aGoaU8IVsfJLs3PShRqWqpQ8GrVePN7u9UTiaoyTNQWTwkAXUMygmUkcKjq/Ddpnd/nn0ZyXKXQBz2rGNxNRr8GPm41hy4Vve9tMdGnOa95jtiJz9DeqKruhr2GrkF+J1IObOk4YrG2TbYYA/T9oXS3NQFEteGm0jv4fzJjjZWToolL75p1H0OBnkUDVXMDei7SgEUPeW1l9PABMzevaE8yKYNkTKoeBDOY0aNhdvh91pNoq6YvqgGm6sCqrSJjWnauxTx7sWh4ssTPpKc7EeFVZJsmCaUyYZI0FO9iwsrBmJ8btqs26ybHbTEXNOsW2tzstGWEtmYOosgREcxc11k0y36gTfjtxhlQRlCQymLOVtjwE7DtQ8BCl6TOoE3HRu/x9VN2/RL9F2qkjis4chRxn8DviOSmvflbVOiQMtin2FJM2ckGlf+YAUaV0UtEcqmFAJ2FVDZIIkwwFEWzhadKGZ9KD/MdVRuoFAk9s6JRdwmBN8SbAr7JMFWlVF0KVUI0ttI5MlWVAI8qLOVFUnSiBqD6T1aPbiheaQFNx2cKVaiHoZBlQVW1b50cioIs121R6U+h8w6KvVH9E1bFAhEl2Fq2ntRXXpAaIrfiVKKrN5s3TFdkjdD6jnx+NvKrmLloWQI/LNph3RZ1eTBzrLIsg+F6wVrmqUij6+dOsBerEUH3Hg4KxjJkvyo/TgWlMqGqK6fdflFlxqiJ6SrMIaMSQGniqjAmRc4++n7SjjAkmavQsSzDYQpllTdHuPEUFUVeOKK4Nvwi66kQJvfbPfpW/zx+KgBc1Pnet9rZp1oHKQBVpVVDhQtUYbA4O6mLQEsqChGZJ0fK/1oPlx9HfFP3NU12dKHQfCjnO4HfEw6JyQfEUVo9VWLzJqlZEOoi8/Qy6AKdGJU0brKm4sIui1ky1WyVUJ8OmvZQosqT6P0QqzlGojzNMvOq0ZzM1ilQT9wBF+ylbNhEDUaVIqzpHHYcYja6zi1/WMc9QtC01iRIdwT1qNBVkW0IVVHFaJN4WOeR7seqb+Kdt9QwKGmoQUa0NE1gmQtBBx6J0Jp1ndpNFMzXyVdElmopM580sg8yqM/KcmME6ZtYtQSdaxn4johKDXxRCrNQQpc5vtp1Syu/o4UFLbygmmQoiJj8cu922WL4fNVCC1wp2HVVlCdCoJm0pS8dTOXJEEUNmTKSUVs/xp+U53oPiokw02aQMMxi4YIZhDQ3HsQjmkGJdmwoKkQZDFEamTe15kJPukj9PDW2Rw1ull0G/5/T3RUvEVHMP/Z6LMpx02wMGHRQm5ahMS2jA7fznRfoiPKjtQR3yKscF/T+pgF85xTqtmOEMfkc8ohoyZhyrRDYKClt1fIoo5YqRStS7qUI2XUDKVH8BsXAOcxpQ5XkRbc/mP84mb5XHWAS98Kh694oyKpgRYqLmS6GLURPBNNryxyjbgyzsbNONeayYEN1YOnQc6m2z7+MyEsEoDAa/DoXVs840CYCCO0ea6sl6Rxd1qLaFCUxQiWmEBNlhIPBJo4P0ulFRkTFRqoy3v22Enzm9gi3WmGOuniIdFQCO5qU1UwFHimrBS6PaPuM/by7UqV8VdSSxVSIPy6Jx/vvMeWFSf0/FHG1r+Olx7HuhciQBXglFUKOIrbPCiM+yYM2sl+zHqJrXpamNInqqQ+02+vuKsjxU6ywdovhfVMLT9FpxdD9/H1VAgBq21ElB5yDVNakcKdGha4Gg6KYMUXerE+/kP86D6YcExa1ZppbO/Megczd1Yph8N+h1o7hcYzVxBn9Jgf1QdNJ8ty/lP856h1KhC1uGPBl+DFXdog6qujDqyfcJnxioXosi+MxLqhKBAbwLlai/9V5LYSzay1Xl/Ral936fVyu+dpLdOdCFja2RKrqwcl+PXDRt28bx2KtQdlZBI4/1NbI+6P4sTY9mvZhEiIo6NAqVcTCaMpOMCERKTaFRVttU+MKGrRjo6m/lz+t0PeBBe9aXU9StiwTz2LVAxyhjYqZBIbHJecKGopZRFBbB/eom/vOqfu1UfJYaqMyRoBOlpxlVFJt+7VEw/y3/feb0VGWJ0age1fah12FVMIGq9FM9n2UG7X+ZMRXsDZ/fTjPCUjkZotJCdj1fJnC4mdA4giyBYDcDG5gQaBh4mVciROLELLtHBHXgrSavV0+z530Quj5ijhwdRJkskzQFRwFv3ls3xf+4TaYWbT9NM5VUDsvy1b1t+v+vNvgsiwHO4C8pMEOf1suK6H9rQk8FgHoxJyKDCAM16y/eTwYV31MZ/NQApcJXJgJdUfRZZ5OiaPGsEuISQSMRKi+prVaBCpqmqhKziQJqVEXReYIRNrWVppfqLEyoo4nV8tJeykVVhMYmYliHRJA2zgF2EWXprorFVaLgtRgsqlAjUVU7HxUq598plu1aTdJRAS91loqafnNb7HbbEvXxNqrrIkQR/jMU2ielSntGLF0oB/try6BGLnWoscy3MJo/rGY+KNhmg6osiGo7UIOfZqKonPjUEKJihXvXqs+PEezakCxUQnZ71sif14FmS9nSyKClHiVd8JuxxUQvieLr7GRQmkU1fpg+gI7GD4VqCexcKd4vSK9rzV7HBp1ACcu4YeKLgN+IV5U30DUfzQZVZXgVM5zBX1IwEXczSbGxRWdRz6ttpP1xbdto0PpoUZoiD1qLahI9bXeO/r4iRH1lGSZCPxSTftn0exGlUB/tIKHbjzkMzYiKP09cr6AE2oLsXO5t6zg+aIST13kgbBp6skp3aBphH019CFpfvOY7YDrJILJdKIaFRi7qWkZmbIhCDDQIna9FPchNCNYt8+C1UqXO2oo145/XIVsRAQ7ComP7BaVZKgpC80ZHB4Cl8tJMLROHJ/3caWbDljwDO6j5YwJLkzbJ2hOJHpqk96YRg98k1dmn7UNS0IPiwFIKIII/+An1PgWBSsRWBA0GUA0lE3xZbxHU8JuMQXWPaKcCk+8o1WdgEWlT0Ws6xlID5wstbYmy/JGiE5hgWTu0BJcFOQC14DSFzuO8NrjFGGfwlxTy+7VrTFZ0MqLCVYyB94U/H50fOW+BFYWhSaN/Jm2VaM/iHxVKwBQqSkLPnxnpql7QgHrRWEkgqKeiLNEoUCmA08+MpsIfl2dQ2RqI7KJeUAIqlYmhzOuVrEqPTRTU8yxSKqZEUVce/F9pFDNZgja0L28tRb0ko2FXb3vRu34HiK7DrRwRGKTtekygv+V/E02LYFujRNKFOD+iqq+mCu20dtIEehwTgJXR7a/xj9EsGNtuG7aL/u8sU4o7X+JtR5n1Qa8lwbazMljbSUDdwpRCU/qpo2Dua/H7mrKPlaQZXN97CXqqmzi/00hU38QxSMVIqWPKxLkv0uWJAiZcyOqnZbQS9ChndOX8Dk3Rac9aI+9caWDBp7dj2SaPzhkmTh0RJlFv6uilvxnb7LtgGYsutmsa6mShpStR0uF8u+Ns2yuz0uQSiDP4SwrMy1lGQ1U4RZD+wtCpOVdhexGhE6VtvTf1wptMvHQhsVfQEo0HTTeibVUO5QkG6UT/anMcE9TjapsKSb3fqveC/h/riEggEx1iPaFNYRH+guz+wBavvBpc217nYVn7k7dNHTGJhL7nGYe87yQA9L8lfn8VURg0tNa521V6x8jer8qatd5UiT/YG1sXkZjRCSPtxrOBOmyDi2TbTAOalk4NWBOoA1cnwtXrOm+bfa/ogt120VzHMhuKRoNZBo6Ow1hHxMsG+l6I1Pt50Gs6yxLS+V7QaKWqfZ4pTHR27lj1viydnjo86LzTtJ/+61LRPoaOfgqdb+icyZxJx2k4D07M6xZTIZCp0utvsVud8ksR+d0ONJzCqk4qdM1iS1eN/4W1PaaZbnT+YiKHptA1jqgmXQXVb6qqIbLMoMYlXVebZDxEIU69/HPLA8lvTFROZDUsGVfnt8IjjKhlCcUZ/CUFJgCVJRBeo9AfI518GbyLZBBeCzf62o1OUI/BhVzAqGq+CbT+yWQybSIQzFPhS4siFzDm8f3lv+oxeGUWNKpjm97KhKN0oIawT8Aqzwuso3jKS+Vli1VbHQIb8oW4OBH+gjTOKFQMs6BU4c8n0bnda/zCOiKRLhk7iBJvT4P3UWSw6zgogWgUnAc96G2zGm1TRM6iWq3sxrNJY+1+tbe9drL/uXaWUcUF//K2befdDeT7rdPqi87NTEiWdiOxLT2bp2FU8qAaHXvyarV1jEvaHitKQ5leS0y+//R9ZdFPGgUVQZXFbVviqgwuHaFM9tpMLBawfy/oNZRd03Qcz3R+pushpvNjIkQWbKnHRBx51yZTgkJpPOh8wcPG8Ruk4wV2x9Gghs6asSlH14nOobZtTWkmiG15Av3upxo49Klj7wRBVkuioOcc5ZpkDwmY6WR/8K4XttfUEowz+EsC1IDXUX6mbeJ4F3ZRb1EKL1WQjqUjcMZrf0LbK9mSP4GmmE1i9LV1ogAMKhjCSynT8aDTaBZznNB0XZ1+5zxM+p77IoeW9Vy8BV9+hL8AVeWZs4UtMGm6nc6FpIZGqmRRgIpPbpzlzzLQ/U4xwS0AeGugt12jmf55DDJwPCUKkTGiUx+dP4Ygm8B2sUQV3HXTr+sTQ3jDTK/NF2CXzp6VEd9SyYY0Ms/pROdpNJylfNOFdxT1uCZQ0VKmvK9zPaIR3H3rozsfauSaqKC3JqUm3+aVKeiUBFBn1iHiuKjWWP+1bSOsPOj/T4XndAwIRhopVTEx+Cl0XSNqY8aDCvzRDAW2RtNp89r+PP3XEyEq+2GCZlU0dI6ogBqDrjttv/c+JXYNc4XnFGDtjwG9eZiXSeDLlLIsK6WlNLawdUeni8OPpUMDomekUw6sC9Vt0gm6BTucAEDHC2O3pqWHJmW8xQxn8JcE6IRumha1n+Mg0GntR9Nj2cTv88JrXJTrtIt/jAqf2LLo3bwNw4mbpj3yBKVEqMQFdeq1qbHNtASo88Bk0WULvVhS5VgTaJouwzTCH4UQETP0fxoTu6VRAJ0LEI162KaxU6G5ZEGF/2Y+D6z62rtfXfM7dfxl/Me7/kX/PBolSSCQIpobB9xesOdB+epmb/sCi/rN5Z/7NUuaD9Q7jnaJiKKECwAWvutt6yy86XzLIqdzIqgXt8X22kOzVEwMQhX0emrSonA+ydZQKbRT6GdGjVxWg9tX0DKQojIeT7pL/3woa773tk0MfhpdZ2nbpqnLttkO9DxzLR3oqiwAqm0igrUzDMLWjTqGHq/VG/1+2jrnROcmgtcGb8HbZmPw1lI+7ShL5y3NkrLlx7zOJMs/Cz+WKTrZIjx42XvZhg4UXvr+D/fGbk1bK0fZmamI4Qz+kgD1kuoYlxReRoBpdJ6JK/kWeRqTJm13k+80MDSueMI4ti0Bab/cdI6YoQhqOPkWE3nvQY/h6jEadIl/bMG/ve0olLNN4LUH1NERoOfJhNFMI/yZloJqPFjk0tQZRRdBJt8FCo3EJquFG/08dNJ6eYjSxE3SJ5PVEYAiUvplAlgFxfmC0pjyhpEMIPbdpBEu3jzCo/253nZU6symCzOaBcAW8lHWkSaD4y+Nf8y0xRYj23DOYoRR02fQ0gTWvUZHOVzUzpZFZm1/a7TzgMl7QfkuT3+DXud1MHH+U6iTxlaQrolCN0dnvUezQ+h3ijnFdcqqeI4c02sqj18MtVR4WaGm8Bzd1NmnEjcWka1RTluYoQr5JnTjtMWlDqCCFkm2Xa8VA5zBXxKgKZ2mkxWL8NMLgU4tFa1zYt5rqnzNE6ELQntksmh2B8MUNl7qvY6OQaKY9RK5k+fE0PF+1ycLddaa0FQd2baNoS5122ucA7nwszQt0wg//T5HBf2+6jhParX0toMCbzVbQgua8s5qlIsiIkPUVlSzsKFrJEdFDYEBaFt/Ov0pb1u3vpmmjP5g2ZUlSuHJFgXY5cAE3T7OLGuIF4k/4xH18TxnKo242Qp76WTr8aDde5ijkGYHiRBF+Fk02cQwrEZKbehxtnoetmVxVLSva55xo/O9oIY2z+DXaUnKqyenDjqdaz5Nx2fBIdq7XkfEltfemGaW0rIvE0wzYnhZoabwIvw0SKSTndSdIzbb7ET7cyoM8FpO6uio8Na3NLNGZ/1b0NoFxRRn8JcEaJqTqaeV1SpS771OWQD15LM6OSrqpjNp0nYd7CJmKrhEJxOWJUBrGAsalppEHSg6kVXads82osC7KEeJTlmBT4sgL1OERf50a8Ro+6Rgm8bOnAiaDmvIBV3HUKUdCYKLNd3vV8vTvO0fH9A7RoZtK7nCyukahhCl9eD4x2wVgCmm9fdBgaGunAiHyfFRomsM0Tpmk5ZvFNNsMhk6xiQPk1R3G3SjdkwHgmfY6Yiz8dqr0RpwW40I9vvglVrJsE1jr0Jq+KlhyhyeOsrbrI0cvZaYtOITwdTxRSVKIuj1mImxtddozycS82WG4XEa2Q683/OOX71tnf7kVLOJBVaouryWwc9RrqcZPbZRXNPfL81MsoUX4TedA3klj8y5VpDZbGwOTpTAnY6TjGbtsPXa9KfNXieKThGO5Bv8r732Gpo1a4by5cujd+/emD9/vnT/Tz/9FO3atUP58uXRuXNnfPfdd77nJ0yYgDPOOAO1atVCSkoKli5dGjfG0aNHceONN6JWrVqoXLkyLrroIuzcaXkBKwpQb7ztwoAa/LXbqPenrY/YwuSQYSoN7Q/LugWYpnTSCYktMFZ+YTZGl7xa5Cg8tGxxRxeKpmq8JkJ7FB3xnTDoGBO+VPi8tFCWSvn7D3qvQw3lYBrpn5biQLTNoA70dxTsB67rVKMLVts0WxrBoanb575sN15hwrQt1Umclnis9VVB8pdAxsfgR82O1+1MkEh0BLJU0H7Ve9aK90skUYrE8dAVUmStS3klcjpdb2zL0FQseS92u4PTjUeGrZ5BZRII4Bn3f0xTj8GERVmmG+BlEZoIhQZhRnewTZ4KKkDG+qQvGqc+jl4nDhAxSpM+4dSQY8YUdcboRPhplgDrpEG7M+lEYOnagpWn0ei8ztqAl41pmtEp6p5gAl0zsms7Ew0Nw/w8LQHb9RvlhGvV+wBeZkUUju+VX8U/puO8oM4stm1a3kV1aBzWJNXg//jjjzFq1Cg8+OCDWLx4Mbp06YLBgwdj1y6+YTh79mxcccUVGDlyJJYsWYKhQ4di6NChWL7cm5zS09MxYMAAPPXUU9wxAOD222/H119/jU8//RTTp0/Htm3bcOGFF0b+/xUaVn8TfgwqilPPsJczE8ngKdTLoBfEVZzJRgeaJWArjMPq1U0uxCLYApGmR/EEb2T8/Kzdayeizp9G2HXUzGnEwVYMjF7Uty72P2eb9vyHocFP+fk5f59eHU0GwL6ukUL7G39HDF6qrltUuPhd/32R4r0IXqmRjnOSMjwCw6piTaAs+R4WdI1iYYGWQmxbLN4vkdBWqkGdjPoR/EZMDYFv8gQg6byp07GAl0mgqt8OwlqW9b7Be4wZh5tmm41Fz4elhJ+h4diimX+ZR+KfN1XIZ7BrCXOs2MD+J53PIwrodYyXwaKT1ULnPJZCT8s7dAxtus8vH8ZuqbCZqWhffgtoEsjQCTQ1HRD/mKlQHA0q7V5jdiyDXjPY/9BOI2ODwvse747QaNUVImTOGp7ulu46hcEz0nWEeX3tnPPOw7S1oakSvyklpMVfUg3+559/Htdeey1GjBiBDh06YOzYsahYsSLeeecd7v4vvfQShgwZgrvuugvt27fHI488gu7du+PVV1/N32fYsGEYPXo0Bg0axB3jwIED+Pe//43nn38ep556Knr06IF3330Xs2fPxty5HCGy4gBtZWSLqbo/ZUteT9p6Hc2OoxPFZnnmhxBaR2rrJYzCu8tgF1Ka0m/aT9o2anVkv7fNFpxMUMU07ZhB+6m2Pcvs2F9tlWYlXnxTp1JUbFvibevqZETR1/Y00jt+ywJvu34B151XFohxmdAppNOV937qaIVQmgT6qp/xmN25/HMb8MAe4MH9dscXVnTSe/MhnwfrhlHQ0G4xwXR62+4L1JARCVaKYPM/TWfXiSjLrr+61w+2+OcpmYeBdVPQKemqSErTqJOUQbVRTJj5ot1xlHxV+iRk2PAMsmDmGPc44nhhxjF17OtE56njmTlhaOsyHacBdeSwEkXTazEtLWD/O81a06FhN2+bXg9NoCVVzHliGjQ76xm719ZFVx+FfZd5ulWmWT2MjIPeto52CHM0Al6gq9tfzV6zFcnqjEqDi87BUZSCFAGSZvAfO3YMixYt8hnmpUqVwqBBgzBnDj9dbM6cOXGG/ODBg4X781i0aBEyMzN947Rr1w5NmjQxGqfEYVuzB3g/clMDj6aVshIBljrWbZjmGORiVhjSgubkOafoxchUZMjW+dKUGDNs8bvk/ditrVNoJ60XNIyMmPQ3p1CDevF//C31WlnqM+iKb4mgNXtRRO51EV1ww6Zk1+DUDMvoc4P//kX/5u+n4pwXYrd3GC70oiL4vvHEl3QpXTYapw7A1ydIBoPG6O9L56konM420JTmoMGvkz7OgyrU28431MBro/HZ8pyp25bGbndqLtyZQbgrAtFTatyz7AAdA7VCdW/7ECfl2tSBko9lb3QKM55tW8iFgRdh1HF+VCLGPaszZwaRruOCV572/V3850VUIRF+poFDjW8daEq/bceYcmTOsW0dTK/fpm0BGVGUEsnKU3Q7FbH91nAy12wzz9KInoHOmo+u15izkbYG1eGEkd62TjcQHaioJE+DohiSNIN/z549yM7ORr16/h9GvXr1sGMHv/Zmx44dRvuLxkhNTUX16tWNxsnIyEBaWprvr0TBWu9YkXfBSAshvMH6MLOLGqs9VEEnb9u2KLILp2m9H2P9dLvjAH/togm0vIFG+wH7lHZfayhDg5+X0qlDRfKe713r13UwXWQwDu9R7yODLnZ12wuKON+g+0Ki0sUbG6YLB0W/Ol1k97o9rwHGHPCLe5lAUylN0wYZ57wYuy2datcKLwranOm/P9gw0+DEO6I7F4qJCraOYFiioQZAMOKnu3AMKowzEVrAPBW0+9WxW1rOZKtSPfkhs9eWcfzlZvvzjBEdnYHUKt42y86ikTYdI7X/bfGP1ePUf5sSRUo/y2Doe5Pe/mx9wjM4eoxQH08dviyiztZqNusd5swy7VhAy69+nxS7Na1Vr8oRD+zz99itzecbdKQF51QR1Ok78wXz1wX4/zsTrzv5H3pjHJA4SZtrdi2hpbhBbNPYaVs7nXbC1GHEOiyZljfQlH72/TKlaiP/fbpurGtYplxESbpoX1HhiSeeQLVq1fL/GjfWSF8rToQRw9E1zmXYenzp5G2r2Cyr9bSNSOzfZHdcGOgET1PQw0Anc9NMhSj6oTbtB3xJFlc8NeuCYC25CIU1dBr3Ue/DiCKCzFPD73+L2RipFT3nwxmPRRfZNuXu9bFFcKU6wGjLnu09R8ScDg/sVu+bKIY87r8ftjQBMK/Z5BFFJMS2/ZkNNJ10SqDGXNchFMwMoIatbjSYOQGZ04Fez3QygmzFSHVpbihIy9Oz0TGU6fWYOe9pirDOe8Hq1mnqNaslDlOLm20YGefBjIhqjeT7Mdh3iycwp9Omls6z7Lv4m6b4LY/8TM4Q8zfrEjDDMK2dl6bOOjulW8zFNIILAL9JjF8Rv/9ofgzA/w4xHZNF4/XGkGk7Ha/ZjUiW+m/bbpbqJJg65k0Fqhm0c1KwxFZXTJuWBQD+9adpuXERJWkGf+3atVG6dOk4dfydO3eifn1+PWj9+vWN9heNcezYMezfv99onHvvvRcHDhzI/9u8maO2W5xJDxkBLQywLAFTaBpiEF0hPHYBYGqpUQgpmkIvQsEU25otLAcNYfBHwfrp/ui67kKLXiSCrf2STe0CFpDhOa1sLoD/2ACM/hPopxndSgSpFYEH/wTuWps8p0MU0N/jJZoLRAqvJZ5pFJeny1A3gj7XPUeq91GhW9ZEjdByVfwLzlP+qTdGcKFI51FdkTmm5L5rZd59ch46Ri7t2c5aVJlm4cgw7XfOw9SAYEYuVfzXcRqwfVgrPwD5Kf20BZgp7D3QKU1QYZpO/s1tsVvafkzne0HnOKaJYCtODHiOKN2UcR4Ht6n34eFrDxi4JvPKP1Qsele9jwpbEcnqTb3tzEA3Ct3/pc0Q/30aTdddswR1FKgTxFR8m0Ej4+WqiPfjYXtNpnNulcB1SfdaQNtVAsCfJMOrIJ3QSSRpBn9qaip69OiByZMn5z+Wk5ODyZMno2/fvtxj+vbt69sfACZNmiTcn0ePHj1QtmxZ3zhr1qzBpk2bpOOUK1cOVatW9f2VKI4dSvYZ+DHt0Q0Ayy1F4mStAGmavAw2QW9daHcOUUAn22D65YmclmY8qOgSAEzgpJoWNDYGMk25jFKUsSgSJnsnSBTt3BwxxhwAHtgLdBxqfizvc2iqf50EoKe6bkNry7p3ik10KrWSX6hKNxuI1klnZwF7iVCpbTaPr/REYxFMI3UZeddiZhB0GKr3mjK19WCJlw2m31Nm8NPUcx0jlwnF0uOmPRm7/fUTs3PgMe/N8GOYlhOxFoVUHd90jEkPxG55zj5TbMsfAe9zDSP0nMx1EmXgvXbH0e4gtj3kUwPRedrZSTe4Euxcw2uFaQqvtaguaZbOIDpH/vaD3+Ghu37pQhzeubn+LNeiHBwwIKmrs1GjRuHtt9/G+PHjsWrVKtxwww1IT0/HiBGx2qWrrroK997r/eBuvfVWTJw4Ec899xxWr16NMWPGYOHChbjpJm/xvm/fPixduhQrV8Y86WvWrMHSpUvz6/OrVauGkSNHYtSoUZg6dSoWLVqEESNGoG/fvujTxyCVtrjTYmCyz0DOXou+zrYK7jR1EPBHZ/ZrTn45mep9CpKgUrNuy0GZ88MGOnEH68B1OWqhp0FTcaNY7BZlkpGZ4dAjmXXwus5MU0zakNZp723T6JSOOnSQVV8FekJrRkJpdD37GNDyNPG+Ilh2BTvWtH0cdRCwY5lRphud4inBM6IQGjVNhWeGIY0S6hi5vPfOtK+3VG8mgoyvKFr72Y7BBFerGPzOooSJuoUJEi2fEM25UGyCRLalNLQ9cLCl9JAn9cZoR5Tj9/3hN9Z5LWh5BNXw6brZtDsUY9ZLdscBwLKP7Y9lbJnvX4c26y/el9L5Em97z2/Axlnhz6WIkVSD/7LLLsOzzz6L0aNHo2vXrli6dCkmTpyYL8y3adMmbN/uKUL269cPH374Id566y106dIFn332Gb744gt06uR9cb/66it069YNZ58dS1O9/PLL0a1bN4wdOzZ/nxdeeAHnnHMOLrroIpx00kmoX78+JkxIwARTpCmEHi9qHIZJW2PoLtyan+RtZ2V4tYcAULd9/P5FgWD0LhmtiAD/Aty2jspGcJBGH0zT0qLkzKejH7N+BAJWDkeZBM0JJhkltL6bGnpdDMsTGNTRp2so0/M9sAWY9oT567K5jelczH7Z7HhaVsYcJuw8FluUfAShvcdN2EsEZE1FW9l1lGrr6GQIRXGtYt1+eOhmj8gi6aZRdqbqTmuVddu7MpizZFqe/odtan1Yjh1U76MiKOhr2vKXx+415scs5LcIV0IzcoLRY109FqrhsG0psOIL777uHEodhTtX+jNIirKjn2ag6K7jqQNt/6Z4jYcSQNLzL2+66SZs3LgRGRkZmDdvHnr39urSpk2bhnHjxvn2v+SSS7BmzRpkZGRg+fLlOOss/0QwfPhw5Obmxv2NGTMmf5/y5cvjtddew759+5Ceno4JEyYY6QAUWSpp1psD/v7qUWOrbO9T87VsnUOdBtSQl0FrJXNz/BFh2cKBUs2yBZ0ONil8v3zorwmrqPmZWNf6C6Btb8oVYJkMVfP/72Xedvvz9MeIovWObVYD5dT7/ffPe9V8jAtIGuugCNW/HcnjLxGkN4els6a4lIhLSB0uTcHUnbuD0LpeXYcGjX6v/cmuxSBrnWdbVkaxyW4A5K02e//Nbkx6LTSNSOen9OctvHUFIU0FBnlUlVy3dcvbjknq3DtdqDcGa/vJujCwNY7NtbC+ZcS2MBJcf0ZRdmcj/GcLdSwGHWGb5uqNQdfJuTnAkX1kTN2MHOJsWPsTrAJ5hbG+3UY4lWYPZWeaZwUVA5Ju8DsSDDVwZSl9QQaS1iHZWeL9bGhiWEvKoGnxJ99tNwZNi9JdoNBaqlVf++vYg3VWIqJQpBdB61J12bbE74nXVYanab5Ri9017BrteDJoqjRdTMhUbYOw9m1hCHr/bUSCet/gv2/zPna5HGh3TuzzHXCb+fGOwgdtSzUqgn7St1nMM92utHtdBo3+0hZTWZY1xhvnqPcJQn+jti1Ro0hlZSz90O64YEtFGkXVvRYGnZw00mZaB8uEDFnnAl1HCi0JYUZ36zNit31u1BtD5qjXvaYff4n/PhVn0702MuOPifxt/yV2a2OMsGOLAwcCXYxsyxtoFLcgszHpbyGYgaibCUNbwlauGyhp0vyt0XXO3rXApNF6x1F44q1Rca5hphODdv7SdYDStVWl2iVSu6kQNMp1JBSaMm1Sl08jubtWRHY6AOzr2df+5G3TGikTaJuVzpeI96NQz+CK/9m1CIxCLEWErTMhjZQm6LYzoim2GRGk7tFFStTZAzaYZEvUaRv961/0L/NjaK9xkwyFIJd/YH+so3Ay5oB6HxmjVsfUy+t1BKpbtKJt1DPc61NWkLK7Wi3txqDlWDYsi0DNPiybZtsd1/4cf2sy2l5L10BtfTqw5H3vPnV+l69ud14znjXbn0Y3M9JiBjpbvOt2zQnqSFBj6qC/E5SQsoE1CDXSdduP7fktdsuE0BZYzP9RUKe9eW/0gsQ2o5PWene8IPx52JTLBdPvdTVM6Br3+3vsdLVodN629GePRSmELrssv3N03ajr/KDlQgv+bfe6RRwX4S/uUEOzo2aaGeC/kO+1jGqIsE3dpoa2qYItI4MIyeimKlHv8qGddimdiaQtp62aDtTzrOtA6XSxt22bIkcFZ1Z9bTdGotAVgAH4RseA281fsxdJp7WtVRxzALh/F3DZe+p9HQ5dSpUCulxmny5cpoJ6HxmiNpu2qsph0zgzLB0oukr6WucQcLTqZgXRaPzRA/61gW5U+/dJ/vvMeV+hpv1nYhoAoNdtFgRgYmQLNRfywQg/DYzo6gMteNt/nzpNbLuVhFHHD9J0gP6+ImNft2QxEdAsHtuMTiqqbNs1gDqDTMpi80nxt7W2ucbvWgHMfc3itSMgyrkrSLLS6pd9lJzXTTLO4C/ubF3kbZukK9OFFk19qWvQu5NemGm9eP9b9cegjoeVX3rbtoIjdHGhK/5DX2vrIjvvYBRdD2iNI3V+8Pqoi2AR7I4Xej2hAf06KGrkrpviRTlMIsu0pOO3ifrHUTpdZHecCltHEqO6hVbDWU8D/zcFuPP3cEI6up+hw1FQBA0f0zKYKNTOCwMix4UNwc4wuplGDbp625lH/calrtMgaDSxcjJaX2xKXUOxVrqOCdYy7w+kgoughmzGIb/Br5tynRFQoaddgGwN5cMh3scgG2eGH8PESLbVZhJBv1PBdsC6/PhPb9vm2gz4P5Mew82PX/A2sH66dz9Zc5pMw0PGqQ9Eex6UZAoml0CcwV/coSkzJulI9If4xzRv26QFGlUEpcalrkAc4E/Joi1FbI0bKrRjG5GwaTdDI+PWF3VyvgdIlkGLk/WHWDcldrtiglc3CHjq0SqCTqPM9Ngtq8PU4WjINGMg+sUFg9YM20A/ZxMa9dBPR3U4iipRpNUWRaqRcgjq/LYhqMWjW2JGr3cpKf4MLd0049MCi/85FgKhQTrlfSd0jWR6DQpeB3QdF1VIXfKulXbdYvoQ7ZTcXL8DpYpl3bNtG7hEobsuAPy95ynVLEqBAL9Is23bSNrZw7brCF2D2pYS0XVnsjoi2X636G8jirUb1QSzFQt1WOEM/uLO/Le8bZkyrQzao93Ew0lr5NNIixiTKGpTkmJt2ruYxzTNHqhRQ1PF6Xtx9vP6Y/Qc4W37alEtHRfUe6/r/KCLLaqpYFIb2+Nq/X1F8JwcjXrFP2ZK2L7ntmmDDkdx5cb5sdtmJ/rby5UkqpHsrEyJursNutdTnzMzJaZHYwqrR2Zlebq16jJ+zBMS072G0HZlR/f7n9PtcU4dHGUrAIcsnB90v+xj8f3WdehyhfkxiYBmf1BMIutrvuM/bi2WlyvYNuCQph5DkN7Xe9uHSTq+TeZG0/5+oU3bCH/94+2OixKTgJ8IGhyy1f1wWOEM/uJO1EqUJqnptDaZegZNJjyT9H8RtM2YbQ1mWKihTNWRTWrYmRIxABxL97ZNvPAUm0wFmqJr+92qGkF6azNOfaJJ5kiisK3ddDiKK3XaxjQmhn+TnNevaNjPPBFUIcbh1oXRjn2apvI2LSvYv9FOS4dlJ2SkxbbLW+rxUDLT1fuIYNmHtdvk3Wr2OKfp3WUrAkuJEKGu85tmZB1Lt+vzvnGW+TG61DPQ3RD1JKedPkygegZ9b7Ibgwosmxi7VCPIlnljve1fSL13WQtNko2zAi31LMv2diyzOy4sVAX/wJbw41HtENsWow4rrN7t9PQQE7SjaGNiVFEhoFkvetuVDBZgUaQ/2ajqRw0tQaBiP0ylVwdaZvEpiZLrCi5FDT330x7UPy6K8+VdKHT7JzscjpKDbop2IqGZDbkhU/oBf1mATcr07Ff8+j660I4wOZlA17+YjxElLJDArkW69fc06LDmO7HBK4NGvw/v8xuoukTd2pZCNX9U0HR8+l4E2zDqQjM/bLv5rCeZpSZGMo3ORwFda9gY/ACw27ItamGAdnBa/pndGPS3Qn97xUWjpYhgZfDXq1cP11xzDWbOjEAUxFG0MKlhqkNSuXZa9HAGgMYRpGnb1n9FCY3C057MJhkMNS1FV3znkaAouMniIoq0d16HBdMIfxRtAP9KLoAnWSoJOxyOxGHSatOEZifq70vnfxvjMkgWyRKzcWjnZPmVw3WhBnVOFvDLx+J9C4Kti/33bcr+lv7XTh2fZkik77KLLEdxTRddext00R+DGtRU98l27UTFkW31lmjtuAlRtMttc6a3HexMUdLwtbMjbSOD7QZlNO7tbdPvl0l7bVvRRRWmoqFFGCuD//3338e+fftw6qmnok2bNnjyySexbds29YGOkkUU6c0mE4KI5gYLs4KAejtbDSrY106UknuwllKGrViiCtMLwoUR9DxufTpwwZvA+a8Bp/5Tvb/D4QiHSXtZgF/+Qxegtpgo79Na1aUfeNtUo8YEKmhmEyXLzQUO7VLvF4QaqFkZwOa55mMEYVl8Ni0cc7P9UXKb8oBdK4A9v5sfRx3XB7f7I9K6RKE706int+1rDWhgrNPAw/LPve3GBk6Mdud427SE09ZpYNv+OGynHcD/PT+0w26Mcpptn02JIlARBQ276e9LnVI/G+hWUWxbFqs4cVRixi2EWFlkQ4cOxRdffIGtW7fi+uuvx4cffoimTZvinHPOwYQJE5CVZemZczgSQXMDFfuCgKq+0nr+giBRDgZbdfooMV34BiMBHc63e90ulwPdrrQ71uFwyDnzaf/97leZHX9cj/jHalqqbVPaDNHflzq/aXvZkyzLkGj008bgr9/ZrtSBtvZaMcH8eB4sut7AQpSsWiP/e1HNIgpYr5O/bZouVOB17ht2+kBUE8k284N+l6lIXWuDaz11SC0a522b6APRtczCd7xt2oZXBdX3sSk5AaKJ8Dc/KfwYtkKDKqLQ5bJt0UcxySxqR4x12xJbk5bgJpSg1oChQrB16tTBqFGjsGzZMjz//PP46aefcPHFF6Nhw4YYPXo0Dh+OWI3WYY9tH9PiQKIiysEWdTYU9OeSKIO/MAjmmVIuUFrQ6vTknIfD4RATbOVnIkYG8Od/U6cBj/bnhR/DVgSLlsg1FrRDUx1vEymkjgsqZhYFm+eZH7N1kd9QFrWGk2FbbkixKY8A/MbPkf12Y1Chwk1zyONt9McoI+l8oMvpRBx5AxEjLKvZKhEAWp5i99oUW1E8ShRrgYwIFO0TRRTtH7MNArtUtDTLMsh1/KXxj9HSCx06c8YobAHBBBLK4N+5cyeefvppdOjQAffccw8uvvhiTJ48Gc899xwmTJiAoUOHRnSaDiuoknthaf9SnIii3MC2VaItiUrpD+tUuejf0ZxHGHgXFIfDkVyoGjoAVK7D388E0+h2MMsAiKZkrbTlfLziCzKGRcr06m/8yvQ2ND8ZaHlabLuFgaHW6aJwrxuE1osnSwTMNqpMBRxtDUQqJPfnRm/bRPA4bDtawF/iYpuOP/De8OcRBVG8H4lqo3fBW+p9KLwMiwERpLFTB48KE+eTCJ5gIq89s+l5mDikijhWV6wJEybg3HPPRePGjfHhhx/i73//O7Zu3Yr3338fp5xyCoYNG4Yvv/wS06ZNi/h0HUbQ2qnefxPvJ8K0VrKg6Dky2WcQw9arn0yiqBlMBDaCR31u9LZthVdoy65EOUMcDkc4zng0dmsilCfDVDjUVq1cRTDLSMYJ/+dtLywEDtKj+4F1k2PbJhFDXSV9Xbb/krixdfltItCwu/lxDbt627YK8NTZQrMkkilWfGCz3XGJatNmIjAXFV3/Gn6M/rfFP1bFcC7izXUdIshOMmnrmah2xaaOto5DE3IaRQWrGWHEiBG4/PLLMWvWLJxwAn+h3rBhQ/zzn07EKqmUKQdc+p9YyxgbhcsGx0dXpxclA24PP8bA+8z2L1MhPhWpzw3hz6OgqVRISjs6Xuj/btVoaj7G6Q8Dc1+Lbf9tht153LEm1iaxw1C74x0OR+Lpd3PsLypMF6CJKoUySSfdnqQ+3CKoYreJOr4oCj9ojN15UKX+RBkWKkqVBbblnYeJ4U8NUZ+YI0doUgStQV7zHTmnCFLbTYii+06iMjQKWhwZiCZLgKcDkHk0/jEZfW8E1iag04DNmi1qTDuwRKHdUoSx+kZu374dFSvK65crVKiABx806M3tSAy2QmQA0PVK4KcxkZ1KZJi0gBNh2g6nYTdg02z/YzwxqKIIjZTrUKEmcGRfuNfs+pfwzqTSZYAxFkJJwTGKouPG4XAUHCaR+ESNm1ZMOiHt38h/vFpju/HKFIKUXFpWsG2xeD8Zh3Z7290MosMFbdiLiMJYr1RbvY8NUWUGmcBLHzf9rva7BZj1kv+xpv3MxqjVKv4xUx0UHkUxIzJZDsFCgtV/X6VKFezaFd/SZe/evShdupBMPo7wBCffbsPCj3n8ZebHdL7Efz+KH237c832P+OR+McSdXEywaR2UsRxhqmIQ18P/5qs9tPhcDgcaqLQLkgUJgK2VJmetpGj/blVUJVxG3V/EckqCQD8GYS0TKGkUzaK1swRqO6bZjA04RjmtCxHh/Kc1n7lDVLpAb5TMVlaF46kYmU55eby201kZGQgNdVAKMRRuAkKsfW9yXyMYFsXG2G0E641P0aFab0cr+doMrzGwf7RtAbQFlPnRxS1gdRpU8LTrBwOR4K56itvO4qSsGRgm/JeELQ7W39faggd3O5tb12oPwbVDNi1Uv84FTmWrfGiYNkn3vaxQ8k7j8KGaUSbRxQdlXpdZ7Y/L6W/kqHTLoq1Fm256CjRGH2bXn75ZQBASkoK/vWvf6FyZc9zlJ2djRkzZqBdu3bRnqEjuVRvAuzfFNu2UaI98Q7gx/u9+w04hrOK+hGkH7U6PVwdE09MJhmpdE37+4V5el4TfkwTNV8goh61AO7dEmvf09agn7XD4XCY0uLkWHu/PzcWbsNZRoMuyT4DMSaGCb2eHyUlWbY14N/eYXdcYaNuB68cIArBt+KCqRI7EAvGbPjZux+FEnvd9uHHMM2mjKKldKLaUoelrYGTkFGvM7Dz1+jOoeuV0Y1VBDAy+F944QUAsQj/2LFjfen7qampaNasGcaOHRvtGTqSy02LgLmvx9QtbSaOThf7DX4b0Tja/u7UB8yPB4BT/xnS4I9g0ux9AzDvjXBjdP0LMPN5776px5iH6f8WVe1WuSrO2Hc4HAXDJePCHd90ALBxZmzbtDVWFKQU4nJJk2sCFZmjbeR6jojufIoiO4ghU7dD8s6jsGGagQgA570MvGwRXJLR8YLwY0QVLClo6nYEdq2IdszGFh2jhr4OvBkys/ZvP3tjnPO8fN9ihpHBv359LI3qlFNOwYQJE1CjRg3FEY4iT5lUYMBt9sdH1Wd+zIFYvZ+t4c1LyS9oTr47YPBb/C/B9HfbVj5RctazyT4Dh8PhSCxXfg48ltcSy6Y07aS7gBnP2L9+oupuU6uo91FRoabdcdOf8rYr1dU/ru1ZfkX6qIiiE0RFS20fWk5QWIT4CgU266QW3vawL+xetvlJwHrS/ack171f9C/gjb7RjmmTxUL1Ou783e51GxwPPLgfyM0pcb8zqxr+qVOnOmPfoc+wL4AqDWMp3GEIG2W/dmqsa8F9SVI7DuoZ9DVUxwf8te9BMUNdTrrb7jgRPUdGO57D4XAUNsqWjzmexxywuxbx1LKNXj8C5y4vclyhevhxu1sK+lJF+zoG5aCJMPYBYONs9T4qju4PP0ai+tHLCJaMnHRXwZ8DD5uW0oD3W21pKWx84p12xxV2+t9qfkwUJRFBguthXdjnWtnAQRgkJaXEGfuAQYR/1KhReOSRR1CpUiWMGjVKuu/zz5esNAmHgpanAHcYKPAmiuO6A5f+J3mvH1wk2nY9CNuKrutfgBlPhxvj2qnA26fEIi0lvNWJw+FwKCkMbVx5ei0XRFCGWY6jJm6KSQS1XDUgI+x18K/A0g/8j+VkmY3RtD+wcZb/sZPvCXdegL+MsaDocyPwPyJM17hP+DGHWny3ul0JLHnfu5+sGvSm/ZPzukFGTATezSt9/Msn8n1FnPYgMPmh2PaJFpoXtCsG4M+g0OW8V4CvSAYNT9TQkVC03/ElS5YgMzMzf1tESmEViHA4oqT14PBj2IggRkFNMnnfIv4tSzmue3jHg8PhcJQUardO9hkAp94PfHCx/zHTdPzSqUD2Mf9jtuu+Gs09xX2TMdqcAfz6qd1rMo7sj3+MtgzUgaddEEWtdzII1pc3G2A+xoDbgZkvePdtugid9qDf4E8WpcsA3a8GFo8HRq22GyOK2vemfYEL3gQyDgJtLNedJ46KRcSrNOC3+lMR/G32vsF8jLZnA4igZMZhjbbBP3XqVO62w1FiOP814Mu8NPyL/mU3xshJwL9Pj20n0znmjHWHw+FIHsEWqzaYatPwnMymIqxVGwJ/bvA/Vs5SB4C21zOh3dnhDf7GJwBrvvU/1sIw/Xvv2vjHCoOujo24cVBvySaNu8P5foPfpEyDYauBkAjOezn2Z8vQ14G3LLoMBOlyefgxukWoSN/pQvNjKtUCqjYC0rbEhPMcBY5VLu6BAwewb9++uMf37duHtLS00CflcBRKul0JnPtyrKdz+ap2YzTuFRMMcQa3w+FwlFzOeCz8GO1MW1txnMyV65kNkb43/rGCFjRrEoGAWPer4x+rYigyzEuPTkb9fbtz/PdrNufvp0sty2yU+gEdAJugRqlSwMXvAmUrAaMKQSloGGiGw99mCHcrErQhHZUqWnTbAoBRK2JrXyq+5ygwrGamyy+/HB999FHc45988gkuvzwCT5TDUVjpcbVdX1iKK3txOByOkk2jnuHHaH2G2f6VONHTcpXNxuh9nXqfRMOrcU81/D941DWMSPParEXVmciEHsP999tYtru9fzdw6zLg5oV2x0e1tul0IfDPbbFskqLO/buBezbFiyIWNa74KFZacNNCt4YtolgZ/PPmzcMpp8SnPg0cOBDz5s0LfVIOh8PhcDgcxYqbFsVuz3kxmkVzKcPIehTp5lWPCz9GWMpyDH6eIKGMSITxojB8Ihgj6Hiw/d/KpAI1mtqfR0oKUK9zbHvgffbjFCfKpNrVzRc2UlJipQWFQYvEYYWVTGJGRgaysuLVTDMzM3HkyJHQJ+VwOBwOh8NRrKjdKtpyrmQsvgtDtwFeZxjTMjtT7QLuGBG0Kxs2AXgvpNBfFP9LVNwwM9ln4HA4OFhF+Hv16oW33nor7vGxY8eiR49CcDFwOBwOh8PhKE70vcl/v6Br54HCm5ps0188LFGk71euH34MAOh8aey2qYW6vsPhKPZYRfgfffRRDBo0CL/88gtOO+00AMDkyZOxYMEC/Pjjj5GeoMPhcDgcDkeJp/15wJxXk3sOhbV+t1LdZJ+BHVUCBr+tSv1Fb8f+HA6Hg4NVhL9///6YM2cOGjdujE8++QRff/01WrVqhWXLluHEE0+M+hwdDofD4XA4SjbHdU/2GRReSlnFr5JPxZr++/1vSc55OByOYo31DNm1a1d88MEHUZ6Lw+FwOBwOh4NH1Cn8rU6Pdrxk0jJeSLpI0uniZJ+Bw+EohmhH+NPS0nzbsj+Hw+FwOBwOR8RcNy3Wd/3erXbH37nW2778w/Dnc+G/zI9pe1b41w1iI1xXOmKxuyjGC6b4OxwORwRoR/hr1KiB7du3o27duqhevTpSOHVcubm5SElJQXZ2dqQn6XA4HA6Hw1HiadgNuDxEdmXlOsD9u2Ip8KVKhz+fjkPNj+lwPrDmOzLGheHPw4aRPwBvDYxtR9FG7sa54ceI4jNxOByOANoG/5QpU1CzZqzWaOrUqQk7IYfD4XA4HA5Hggjbxm3E98C7Z8a2bcoMarbw32+dpNKCht2AMhWArCPASXfZjfGPjcBTTYFKdeL/L13uXg+MPxcY/Ljd8Q6Hw6FA2+A/+eSTAQBZWVmYPn06rrnmGjRq1ChhJ+ZwOBwOh8PhKGQ07Qf8YwNQrprd8Y17+e8f19N8jCoNgIPb7V6fcv+OcMdXqA6MORBujIo1gRtmhRvD4XA4JBir9JcpUwbPPPMMsrKyIjmB1157Dc2aNUP58uXRu3dvzJ8/X7r/p59+inbt2qF8+fLo3LkzvvvuO9/zubm5GD16NBo0aIAKFSpg0KBB+P333337/Pbbbzj//PNRu3ZtVK1aFQMGDHBZCw6Hw+FwOBw6VKgBlLJq9BRPnTbmx5zxaDSv7XA4HCUAq9n61FNPxfTp00O/+Mcff4xRo0bhwQcfxOLFi9GlSxcMHjwYu3bt4u4/e/ZsXHHFFRg5ciSWLFmCoUOHYujQoVi+fHn+Pk8//TRefvlljB07FvPmzUOlSpUwePBgHD16NH+fc845B1lZWZgyZQoWLVqELl264JxzzsGOHSE9vQ6Hw+FwOByOxNLhfG+700XJOw+Hw+EoAqTk5ubmmh40duxYPPTQQ/jrX/+KHj16oFKlSr7nzzvvPK1xevfujRNOOAGvvvoqACAnJweNGzfGzTffjHvuuSdu/8suuwzp6en45ptv8h/r06cPunbtirFjxyI3NxcNGzbEHXfcgTvvvBMAcODAAdSrVw/jxo3D5Zdfjj179qBOnTqYMWMGTjzxRADAwYMHUbVqVUyaNAmDBg3SOve0tDRUq1YNBw4cQNWqVbWOcTgcDofD4Sjx7F4DvNYLOPt54ISRdmP8/Byw7BPgbz8DZVKjPT+Hw+EoxJjaodo1/JS///3vAIDnn38+7jldlf5jx45h0aJFuPfee/MfK1WqFAYNGoQ5c+Zwj5kzZw5GjRrle2zw4MH44osvAADr16/Hjh07fEZ7tWrV0Lt3b8yZMweXX345atWqhbZt2+I///kPunfvjnLlyuHNN99E3bp10aNHD+V5OxwOh8PhcDhCUKdt+Nr3E++I/TkcDodDipXBn5OTE/qF9+zZg+zsbNSrV8/3eL169bB69WruMTt27ODuz1Lx2a1sn5SUFPz0008YOnQoqlSpglKlSqFu3bqYOHEiatSoITzfjIwMZGRk5N9PS0vT/E8dDofD4XA4HA6Hw+EoeKxq+P/zn//4jF/GsWPH8J///Cf0SSWS3Nxc3Hjjjahbty5+/vlnzJ8/H0OHDsW5556L7dvFiq9PPPEEqlWrlv/XuHHjAjxrh8PhcDgcDofD4XA4zLAy+EeMGIEDB+JTsQ4ePIgRI0ZojVG7dm2ULl0aO3fu9D2+c+dO1K9fn3tM/fr1pfuzW9k+U6ZMwTfffIOPPvoI/fv3R/fu3fH666+jQoUKGD9+vPB87733Xhw4cCD/b/PmzVr/p8PhcDgcDofD4XA4HMnAyuDPzc1FSkpK3ONbtmxBtWp6fVlTU1PRo0cPTJ48Of+xnJwcTJ48GX379uUe07dvX9/+ADBp0qT8/Zs3b4769ev79klLS8O8efPy9zl8+DCAmF4ApVSpUtJShXLlyqFq1aq+P4fD4XA4HA6Hw+FwOAorRjX83bp1Q0pKClJSUnDaaaehTBnv8OzsbKxfvx5DhgzRHm/UqFG4+uqr0bNnT/Tq1Qsvvvgi0tPT87MErrrqKhx33HF44oknAAC33norTj75ZDz33HM4++yz8dFHH2HhwoV46623AMTq82+77TY8+uijaN26NZo3b44HHngADRs2xNChQwHEnAY1atTA1VdfjdGjR6NChQp4++23sX79epx99tkmb4fD4XA4HA6Hw+FwOByFFiODnxnNS5cuxeDBg1G5cuX851JTU9GsWTNcdJF+P9TLLrsMu3fvxujRo7Fjxw507doVEydOzBfd27Rpky8S369fP3z44Ye4//77cd9996F169b44osv0KlTp/x97r77bqSnp+O6667D/v37MWDAAEycOBHly5cHECslmDhxIv75z3/i1FNPRWZmJjp27Igvv/wSXbp0MXk7HA6Hw1EEeXvGH3jsu1Xo2LAqvr3lxGSfjsPhcDgcDkfCSMnNzc01PWj8+PG47LLL8o3okohp/0OHw+FwJJ/c3Fw0v/e7/PvLHxqMyuWsGtY4HA6Hw+FwFDimdqjVKufqq68GEFPl37VrV1zte5MmTWyGdTgcDocjoXyy0C+42unBH7DhSVfO5XA4HA6Ho3hiJdr3+++/48QTT0SFChXQtGlTNG/eHM2bN0ezZs3QvHnzqM/R4XA4HA4fFslpAIB/fP5rxGeSHBZv+hPN7vkW6RlZyT4Vh8PhcDgchRirCP/w4cNRpkwZfPPNN2jQoAFXsd/hcDgcjqjZfTADJzz2EwDgo+v6oE+LWkk+o4InJycXF74+GwDQ0WUoOBwOh8PhkGBl8C9duhSLFi1Cu3btoj4fh8PhcDiEMGMfAC5/a24kxq6o1ayIg0cz0XnMjwCAVQ8PQYXU0qHPwYTTnp/uu//7zoNoXa9KgZ6Dw+FwOByOooFVSn+HDh2wZ8+eqM/F4XA4HI4C4ZGhXneXZVsOGB3LjH0AaD96otXrT1y+A+Nnb7A6dv2edN/901+YYTWOw+FwOByO4o+Vwf/UU0/h7rvvxrRp07B3716kpaX5/hwlg2b3fItm93yLzxdtSfapOByOEkBGVnbcY7sOHtU+nta7n9elYf726K9WhDsxQ96ZuR7Xv78ID361Aic+PaVAX9vhcDgc9qzfk45m93yLtbsOWh2fm5uLs176Ga9M/j3iM3M4xFgZ/IMGDcLcuXNx2mmnoW7duqhRowZq1KiB6tWro0aNGlGfo6MQ8sg3K/O37/j0lySeicPhKCm8Of2PuMeGv7NA+/j56/flb1erUDZ/u0wp/XT+QxyRvOwcMwHBh8n8uXnfEaNjAUTSRnDqml35TtvDx5zwn8PhKDhM58zCQk5OLk55dhoAYNDzM6zEY5vf+x1Wbk/Dc5N+w4NfLo/4DB0OPlarhqlTp0Z9Ho4ixr9nrvfdn7NuL/q2NBPPys3Nxex1e9GtSXVUTHV9sB0Oh5yKnFr5ldv1s8o+E2QjLdr4p/YYb8+Idzp8v3w7zjm+IWdvPUw0BHalHc13OpzUpg5m/Lbb6jVHvOs5SjqMdsJ/Docj8WzaexgnPROzIUb0b4YHz+2Y5DMyY8rqXb77t328FC9d3s16vPFzNuKh8zupd3Q4QmJlZZ188slRn4ejiHPF2+biWc3v/S5/e93jZ6G0QZTN4XAkh6vfmY/peUamjZF45Fg22o+eiL4tauG/1/UxOpZFhc7u3ADf/rrd+LVtjgkydvq6uMfenP6HtsHPi6ZPXbMLp7arp3X8K1PW5m/fcXqbfIP/z/RjqFEpVWuMohpdczgcRRtm7APAu7M2FDmD///+s9B3/8ul24wM/g0B/ZWizKrtaWhbrwpKubV7kcAqpR8Afv75Z1x55ZXo168ftm7dCgB47733MHPmzMhOzlE4yYlgsRhccLa87zvBng6HI0r6PjEZze75FnsPZVgdP51ElJ/8frXx8Uzkbs4fe/HMD2bHb9sfS39vVrui8etSmtaKHV9L00CmZGTlxD3261Z90b+vf9kW95jJ+3jwaGb+dpfG1fO3X56iXw9692fL4h5zaf0Oh6Og2brfvKSpKHPdewvjHiuKOljN7vkWZ770M1q4tXuRwcrg//zzzzF48GBUqFABixcvRkZGbOF44MABPP7445GeoCMxHM3Mzq/f/H2nmfDIh/M3hX79Wz5aEnoMh8Nhxjsz12P7gZjIXY9Hf1LsHc9PK3f67vOi3Sa8NtXs+K37Y+fesHoFvPoX+zTKjXsPAwDO6tzAegxb7pnwa9xjv+08pH18q7qVAQADWtX2PT7OQPH/88XxC8wr3p6nfbzD4XCYsi/9WNxj/Z80Fy2duHwHmt3zLXYftHNaR41JHT9vri9qOlhfBZzWD3zhdAiKAlYG/6OPPoqxY8fi7bffRtmynvBR//79sXjx4shOzpE42j3gtZIyben05dKt+dsX92hk9frfLgufWlsYYE6TZVv2J/tUHA4lVCwOALYfMIuuBNMZTZn7x95Qx7MIf8PqFdCpYTUAQIWypY2Fkx7Na8lXuby9dkj5sqXwjyHtAPgj7SrCJj/uTIstcrs18b+mhXaUD5tsB4fDUbI4fCwrf91jylsc/RNTDmVk4fr3FwEATnjM3GkNeOu2Gz8ws1c27zucv03buibD8XDvhF/R7J5vkZUdn3GmA3sPbM79lv/6A3bvzd1odQ6OgsXK4F+zZg1OOumkuMerVauG/fv3hz0nR8Skz56NPz/9FPveex8Hp03D4cWL0W3Xb+iwdz3a/LkJ/bb9igPffIvDixbh0MxZODhlCo6uWYOjK1fi0MxZOPLrrzi8eAnSvv8eR1aswMaV69D44E7UOJqGUb3r4biDu9AkbQdWLfsdGevWIeOP9cg+cABZe/fi2ObNyNq3D1m7dyNj7Vpk7dmD7EOHUP3oQZTLykCp3BxUzDyCyscO44/t+5G9fz+yDx1CblYWco4cQc6RI8jNzERuZiayDx5E9v79yDl2DNmH0pGbHWvRlZub623n5CA3Kyv2WE6OzxDIzclBbk5scmT7Pz/pN2vnQ/dHJuVvn/fqLKsxHI5k0veJ8C3hMg0WHK9NXRv3mEk9+bY8B8Vx1SugfrXyAIAjmdlIO2KWjr56R0zo76+9m/w/e1cdJkexfc/IenY37iFKCHGIIyGBQAxIkKAPd3s4j+A/XB483F0CIUiwCHEg7u5uG1v3sd8fM9V9u6aqunp2Idbn+/JlpLu3Z6a7qu69555jvOaU0v7RVT3QvnEWAKC8Mt4uUAb6cU/kgnYd7CmMshzqZ6U63leFqiZjXLhwoYdVuwoPWx2N9o9NNB7TNZAORs2temDY8fGJlucrHLRTAVF2AINTTZeN+8zq/GU9zbnj2XGrHR0HsNrCOsVns7bg6xjTts3D4x3v//nsLcbjRJMmLg4/JFTeaNiwITZs2IAWLVpYXv/rr7/QqlWr6jgvF9WASDiM3SMfQsFPP8W9xzde7Jqnf9zPyOOCCU/iQ/Zk6n+hm7/9WvBaxbjHsE7/NKoFg2P/Ox+uga+456vH3lfFs5HDm5kJj9cLT2oqPMnJCJeXIVxcgkgwCF+NGvBmZMBXqxZSWrVCJBJGaP9+eDOzEAkEEC4rRXLTpoDfj0hFJZIaNoSvVi0Edu5EqLgI/po1ES4rh79ePSQ3PyaaMAmF4MvOBiIRBLZvh79+fXgzMqLb1a8Hb0oKgvv3w5OUBE9KKkIF+fAkJcNfvx4QCsGTlARvRkY0UVNYBF92FjwpKYiUl0ffy8xEuLQ09pnSEC4sQKioCEkNG0ZLlX4/vMnJgMeDSCAA+P3w+P2IlJUBSUnwJCUB4TDgjeUsw+Hofuy5x6Oten60wIkSvRN8NmsLrj9Vb9xfvC0/7rUVOwu0KuQlFUHkl0b71xtlpyI1yYda6UnIKw0gp7Ac2elJyv1p8u+yns0BADXTzar23sIKtKirnhLLA2Zg36RmmpHsWOuwLQqI6ggM7NAQiwTfiQos4G+QmeL4b/L49+lt8HpMBLDUQdLChQsXiYFWxtc+PQgp/njnETvsLSxHzfRkJPsTluFKCJWcfomIoq9C56Y18deG/chOS0J2WhK2kYp5ojj7jb8ciccydgDDuOW7tVu7Rs0121mpyPTYJbvwqkOl/rM7N8L2vFLhnGiHx39e6Xgfisd+su6/r6gC9ao4n1QEQwldyy7+OSQU8N9www2488478fHHH8Pj8WDXrl2YPXs27rvvPjz66KPVfY4uEoXHIwz2XRx+CBfFAoqC+Gx2KC8Pobw8BHbsQPny+P5gAKj6tOpCBW9mpvkbMSQlIblJE0QqK5Hcojm8GTUQzMsFIoA3Ix0IhuDNyEByy5bwJCcD4TA8qamABwhs3wFPagr8deshXFYKf63aSGraBOGSEoSKipDcrBkiwSBC+QVIatQI3tQUhCsq4a9XF97UVAQP5CKUnw9/ndqIBALwpKTglZ83IbOyBKnBSpT5UxDw+pBdWYJgbi58mZkIV1TCk5wUTawEg9EkCkMkgojPb/DGb+zbCu//uRmIRPDhn5u1A35mJ5fs9xqLxwMlepRC1n6QlepHZmo0uG+QlYq80gB2F5ThuIaZyv0Ly80Kfuv6GQCsfvZr9xShRd0M5TFyYvoHAHBM7XQUEgG9/NJKSwLBDqe3q28559LKoJY9KaP0M4bDiG5NMcaB6FNF0AzsB3ZsiFW7izB59R7FHnIs3JqLLftLcUGCrV0uXBxNYMwihuMemeDY6eT8t2caScJJd/fFsQ3U4151QhRoOrEUTU2KBoT3ndUWNdOTcUeMGl4eCBnv/dO49atF2r/BFM6Szykofb536zrwejxVbpMDgPHLd2NwFfRoLnpvNqbd109r2/xSM8nz9Q29cekHcwAAczbl4rS29RI+Bxd/PxIK+B988EGEw2GcccYZKC0tRd++fZGSkoL77rsPd9xxR3Wfo4sE4VY4Xbj4ZxAX7ANAIIDKLVuiD3fFK7P/03hE8vr63/WFVg3y4E/AeeT11Z873J9irD7Dhu2/fko9+OrWxcitOSj3JsG7KBubUiKAPymaXElJBTwe+Bs2gMfjQeW27SgORnDj+kJkhitR+PYmJDVrhnBpCS5cvxg7M+rBM3kfDswJI6XtsfCmpSESCMDfsKHBZokEQ5i7pQTH5m1H2ONB+MB+1PB6Uau8EAGvH1OXbMO5x9WCx++PsltCIXi8XsAfm2ZjrUfecAi+SBhDOzZEhyY1jc/269LduKhHM+XnD4Uj2BdzV2gQo/TbJSl47MwzdRvaN8pCt+a1jIDfyeL9u4U7cF9MbOreMUsTsmh04eJowqBX/6zyMSgj6Mz//fGP3ndfCwSbl+3QY2gBwI68aOmhWe109Gldx3h97ma9YJEyrA4GWBtGRnJiyYlZG/cbj7NSk9C0dprxXDfhWyZgYt3iIGkh+g43O7AK/IW0wPZuVdt4/NAPyzHzwdO1jwNEGSPhSOSgJXuONiQU8Hs8Hjz88MO4//77sWHDBhQXF6N9+/aoUaNGdZ+fCxcuXLhwYUFw3z4E9+1DffZC8V6w2knFann6gCUp9r9tKtJfxx7MA+zqN50BvB57vP7UVwEAo9ib4wAdYzyD0PsLsAUkCTJWL/Hxa+z/3LFALoDTY/8AcVuRJyXFaIHxZmSgvKQM40uLEfD4sH7m8+hfUYkmnkwUJadj9TnvIy0jFf7adRAuK4PH60XKccfBm5aGcFkZkpo2ASJAYOdOLJu5DcOTM1AjUIbipDQUTUlFuLQUkcoA/A0aIFJehnBJCZLbtIE3LT2aQKldC57UVIQKChEJh9DrlVlIC1Zg9E290bR1s6jGSjgcTbiEQohUVsKbHrNg9PncJLaLIw5OkmzjHPaci1AeCKHdoxOQmerH8icGVvl4L09ah8+v7Wm7XSQSMSj8zWqnW+jf63KKtAJ+ymQa1KEhJqzMUWwdj4KygP1GGhjaObFq+rzNuZbnxxF2xp/r92Ngh4a2x/jwz6oJHybK5mKgivz0unVqr/jO9I14YULUjnbk4Ha46bTWVTovF/ZIKOAvKChAKBRC7dq10b59e+P13Nxc+P1+ZGVlVdsJunDhwoULFy4SQ6SiApGYdW64tNSY9JMiIYT2RStOxyJGNd4HlHP7l8yaJTzupdzzHbf97PjcmJZLyWRgreO9Dw48KSnwpqYiXFEBb2YNIBBEKD8fnuRkeLOzgEAQvrp14K9TF6HcA4iEI/DXi7bmeOBBSvvj4U1OQSQcRlLDhoiEQgjs2AFPcjJ8tWshUl4Bb3o6kpo0QbikGOHyciTVr49QYSFCBYVIbd8evswa0QRKgwYAogkwT0oqfFmZCOXmwpuVBV+tWoiUlUV1XrKyEC4vR7i0DP769YFwCPB4jGRKJBSKukf4/YhUVES1Wfz+qLit1wuPxxPVwAiHAY/H0EtxEzBVx2/Ld+PsznoCbrcKVOX3F1egbg39/mvm0FRUHsTDPy7HM+d10t5XhD/W7dPaLrekEqWVIXg8Uf0TINpSVVwRRP0svfPPTjN1Wu45q60R8O/IK0XTWum2+1PR2LsHtMX/JiemGrVlfzRxcd0pLfHRX5u19+MTNvT++WL2Vq2Af9G2qmnxfDNvu/E4NcmL8kBiKv9VBQv2AeC58WvcgP8fQEIB/yWXXIJzzjkHt956q+X1b7/9Fj///DPGjRtXLSfnwoULFy5cuHBxqCBSUYFQLIESKjfTI5HKSiOBEsrPR+WGjcZ7lRvNx2VLDy/P7YMOjwfetDT4atZEuLISkUAA3vR0hEtKogyUdu3gq1kTHq8XvprZiASCCOblwpdRA77ataPbJScjuUWLqIhsXh6SGjVEuKQEwQO5SG13HLyZmYhUVCCp2THwJCUhlHsAnpRUeNNSEdy7F/4GDeCrVRuRslLA6zU0W8Jl5fDVrBnVSfEAvtq1o8KxwWBUODY5GZHKSsDnw47iIPzhIMIeL8becSrOfeMveBDBW5PXYWj7+tHtfc6pzf/5bhk+urqH1rZhzhngq7nbEgr4X7moC+751tl1zKr7DTJTDQp3/cwUFFcE8fFfmzGsaxPbY+yOVZGHdW2MY+ubjOLXJq/HSyO62O6/ZHu+8fjSns2MgH/FzgJ0bJKt/VmYJeqF3ZoaAb8OUyOvVM4w+GvDful7FNPWmgmWs9o3wO+rnFXs6d+54/Rj8dLEaKo1GArD77MXgWzboAbW7SlGz5ZROv9t/VvjrWkbbfayoqQi3hGnuCJo0dRxUf1I6NudO3cuXnnllbjX+/Xrh4cffrjKJ+Wi+uBv2BDBHGe0JxcuXLhw4cKFi4OOSATh0lKES03p2TARry2dM+dgnFVC+IU9+MmqZ7Lmfb39ZQZsq58Xv+5JTUWEJqU8HnyVXAO5qVkoSMlApTcJO+6YCE9SEoJ79yISCiGlTWt40zPgq10b/gb1gXAEoYIC7POn4+SdG1Grogjdd/rQu3grKkvLUeZLQfnadQjl5yMSDMBft240yQHA3yCqoRIJBjFn8S5kVJYBuw8gmJcHX0YGcnbvR4rHh6Xb8xGuqIgySHw+RCoroyyT5KgIKmOYMNp401ppluB62lo9MT1Kqae2pi9NXIvPbNoSaJB69cktAAC1M0yR1k37S9C6nl5b8xnt6ttvpIHereoYAX8gFEaSRsBO8a9ezY2Af8WuQnTV0GJgn5lZ2gYTsJd88pdVca/1eXYKlv9f1VtMXMiRUMBfUVGBYDA+QxMIBFBW5qyPw8Xfi2OnT4sOpJEIPH4/Ksoq0PnJSQh4fXjngvYY0KYWOjw7A+nBctx+UjNcM/SEKI2PUfa8XgTz8uDxeOBJT8evM9fi5fGr0LFdM7x2bluEy8qwP+jBNW9MQ72yfLx1+wCkZUbt23yZNQC/H6EDBxAuK4cnyY9QQSHenboWs/cFce1JLdC3QRJC4TDuHrMMdcoKMLxTfXTq0AKRikp4/D74atZCuKQYgZ27orZuoSCCe/fi3UX7UeFLQoNgCSqDYRQnpaFueQGG1aqMZtljauLJzY9BJBBEYO8eIBxBJBBAYPdubN6dj6LkdLStnYLdOXkoSk5DZmUZmpTnwZOUFKXARiIGTdObkopATk40c+/ChQsXLly4cHEIgwb7AOCJRFC7ogi1K0yR2aIcq/J+2eLF0uMx4deS+3/E4+T1zX++aXsu/WL/AGD9pOcAAN+T99dqGEpdGvvH9E5oAmT1l/b7W7Yfex/GAwh6vNhZqwm2/F4nKrhaMxuRikoED+yPskTq1IHH60VJgyY4Z9M+ZFeUIPm7PSioVxdJRUUYunkV9qbVwt5JITRoVgv+unUBrw+hA/sRCYUN1okvswa61/Zhw658dE7NjiawIhHULc1HUXIagl4/wpWV8Ph88Ph8UTtijyeaAAkEogkQjkEwontTPPlrNHj+a8N+9D9OP5GQ5PNYrGx/XbpLK+BnTjUNYwmTi7s3w3szoroCBaUBW3tcABi9YHvca0WCqr+L6kVCAX/Pnj3x/vvv44033rC8/u6776Jbt27VcmIuqg/eFLM/aum+AlT6ojdkn07HwJ+WhAp/Mir8ySiu3QDejHjF52Ty2o70Otie2QC9G9ZHcvOol3WjcATra23A+lrNUNj6eNSqwx2jZUvL0+lr0rDKU4iMU7oju120B3HG7CjFq/0Zx6OvjcVXOBzBZw9F20Y+vro7rv3UtDW5U0OpdOO+Ylz/8gwAUR/cz8euNAagzc8NsaVlLd2ej2FvzQQAbHhmMPw+r8Vbl6ml2lG8Wjz4m5GYYH2Rm9n5B4NRa7SYUFUkHDYVv4PBaAY8JQXh4mJEQqFoj2ZFJSKVFfCmpCASiSBcWBgV3vL7ESoshK9Wreh2xcUIFRfDl52NcHExwkVF8GZlI1JZgVB+Pny1asPj8yKwOyfa6+nzI3RgP7w1akSpjMXFUVpjenr0WHn5seRQNJPPMvOhgkJEyssAjweBPXuiNnTZWfB4vfD4/YDXh3B5GSKxyo0nORnh0jKEy8qiImEV5fD4/IgEAgju3YtweRkQiFIlvUwnJNZXGiouQri0FKG8/Oh37vVGxb+ysxEqyI9SbT0eo/LgwoULFy5cuDi64Y+E0Tx3O8py44NQHqyJee9Lk4zXbmcP5gB2R3iKPZgArH0i+vAL8v7an/9jew40abFjrHPRV7Z9OCsb6/94HqPzS1CcnIaKqcnY8IoHyS2aI6l5cyAYhCc5Bb46tRE6kItwSQmSmjbBKXM24dRAAPUWBlC8ozay9x9Aj5yNKEpOw5ZfJuDYNo2R1DCmReDxwJuZGS0cHjgAeH3wZdZAdkURyvypqPT64YtENQRCHm9UJyQSia51XVQ7Egr4n376aQwYMABLly7FGWecAQCYMmUK5s+fj99//71aT9BF9WI6EVihAigA8OqUdbhzwLHK/fcWWS2hAMDnNYPaSav22Hpy7ylkGcK0uPcWE8sZGQ6UmEFb9xa1MbBDA0xcqd/HNHvjAeNxit+Hewe2NQL+/NIAamWovbSp8ArrefJ6AJ7ZpCVoRLfxeMx9kpKiytrsLboPec9Xs6bxsi8pCYCZbPFJXDN8WVkwjhwTfRIhpU0b+/M/wkGTNpFIlCHi8fsRLimBNy0tKmwVCEQTD0lJiAQCBh2RJW08qanw+HzR5EwwCE9KCoL79gPhULQvNcaK8taoEe0Pzs2N7uP1IlRYaPSSjpq8Ap/P24GAz4+6ZQWoXV6IF685Bck+DwAPfFmZiARD0f7T9HR4fD4E9+wBfH7c+fNaJFWUocKXhLeu6IHgvn0YP28jFuwsRlZlCW47rZWR7IsEQ0A4hHBFBYK7c+BJ8sOTlo6f/1iF4uR0DOnVGlllhQgVFGDxqu2oW7gftdL8SKmZHU30FBUZ30swJyeOVhpKSoYv4CZeXLhw4cKFi4MBb2EBggCyAGQFokWXQGHMQnjWbOl+l8f+r3h0spHgeJK9+QewVeNvfyN5fc1P92vs7QAeD5IaNYKvTh2ECgrgy47qNAR27IC/bl0kNYva4Ppq1oy2rwQCCFdUou4tN8Nfu7bqyIclEgr4Tz75ZMyePRsvvfQSvv32W6SlpaFz58746KOPcOyx6oDRxcHF9LXxiqrH1E7HttxSXNrzGNv9N+4rBgCpquqYBTuUAX9FMGQE7I2yU+Pen73pQNxrPKgqbFZqEvofV99RwB8IWVVJ62emGsLDe4rKbQP+X5bGe6q3bZCJNTkCL3aHCIcj8Hpd5eNDBTRp44mJMAGAL9O007EkZpKTgdg2SLHeI5bkDNmfh5Ed5/DEuuVAzaiw0fbMaKLm1k3pGH1TH9vPMWOuyUDJOussAEDznvvx8EdRe7pH7hqs7P/LK6nEc+XRqsaNI89CZmr0M9/46h9Yk1OEL67riVOPVdsq3fzFQkxYmYP/O7cDrjqpBQBgUGz/z6/tib4KW6ZwOII2D49DOALMe+gMo/8yEomg5chxQCSCGXeejGMa1QRiyuLGTR17fu5bs7Bm+wG8d2U39O/YNCa05cHafaU47+XJaJgUxuRHhiBSXhYVBqtRA/B4EC4tjbJSkpIw5LEfURj24O0b+6JDrejv/Mz0rZgwdwNqVRThxzv6IpSXF1XDr98AiIQRKiiAJzl6Ldz75kSEPF707dQMZzdLgSc1BbOK/Ph26krUK8vHQ+edgMCuXQjs3BldgARDCOzdE6WJejyYMWk+Qh4v2tSrgXqBKEvHX78elq7dhbK8fIQ9XnRNLkdwN2ffFWO8uHDhwoULF0cFIpHofLorumankomhvDxUrBcb6eZ98QWOX6PDlzi8kLAkYteuXfHVV19V57m4+Aewendh3GsXnNgU/5u8zmCXqzBzQzQg35En1mpoUVdtjbK3MMoQSPZ7UVPQ65NbYl/5+2HxDsvz7i1qGY/zSytRM10dsBeWRXuFLunRzHiNffZv5m3HE+d2UO6/q4A3rgIu6t7M6KXSUWstJv1K9w88zhBO+WP9PvRz0IdVVUQiEUxatQcntanrKqQehpjL+fragdo3dWxi2qcu3Z6P7i3kGe0DJRXGYxbsA6aAz4Fi+/t2b1H0vqmfaZ5D9HyKsL+4QrJXFEUVQYNBk0WYScZ95vFgYU4JmjeuFW17MTeIBrsA8ssDCPiSkJ1Vw5K8qZmRgrKkVGwG4M1Ih6eGtSWJMWUikQjWpkWTEo2bN0JyLOkwqE8qPluRhz0ZdZDWSa14PfHXfABAZcN6uPKKqEhUxaIdmLEuei4vXa5uKXqwLJq4eWpYB/Tq08J4/ewnfzcUoLco2poKygLo8n9RFt6apwYZatlvTl2P//6+znZ/IKrm3ObhKDH01Yu7YvgJTYyWJj7xwyia4D5Tqwd/hQfA9T0b48GzO+LYRyfCgwiuOKklHju3IyIVFdF2pJiGTKSyMmozVxFtOxr4zjz4ImE0K9qLt284Bc/O2I7NG3aiZ4emuGV4DwR27URw/354k5MR2J2D4L598DdsgEh5BYJ798CbnoFIIIDKnTuAQBCetLSomrvPh6TGjRAuLUPl5s2Az4fgvn1R4dsYsypCxONcuHDhwsWRhz0vvoQGD1Qz4+AgI6EV/rhx4+Dz+TBwoFVRceLEiQiHwxg8eHC1nJyLfwZ1arBFu3rRTeGXVKHtKu27Y8Fyo+xUy8L2ou5N8e2CHUhNsu/d2bSvxPKcKqPmlQZsA/49scCDtiUwfDpri23AL8LAjg2NgL+wLGgrXLKEtC7c1r+NEfBf/cl82wV3dcGojsaw8JEBqOPAz9fFwUFakg9lgVBC+157SgvjMb1PpqzZqwz4l24vEL7OrpcDGom6RbFrnl5jJZVB4++ff2JT6b4FsWA2LclnBKk8/ly/X3mM/Ngx+ERjWrJ5vG25pWjOa5DEsK/IHB/pMRoSppKutVH7RmaypXtz83svqggiK9Ve9OiEY2pZnt/Wvw2e/s2+IsESK5kpfsv3OKxrEyPgtwOz1wKAwZ2sbJQrPppnGb88Hk9csB8MhRHxeBEBMLhHK3hTUhDyRs/lkznb8fjwzvCkpcGbFm35oswYAAg3aYptWdsAALdcNwg1ujfD2CkTUNq4FmbnAXcf1xapx7XV+iyHEiKxrDNTJKetRGBCukBUVDccjmqelJdH2SgpKQjl5SFUUAB/vXpR/ZdwGN6MaGIjsHdvtC/W60MwZzfg88ObkY5wSSnCRYXwJCUhXFqKwK5d8CSnwJuejlBhIbwZ6fBlZSO4dw8CO3fCk5qG0IH9COTsgb9B/ajNXW5eVGQsEkZw3z4Etm2PJtM8HkQCASQ3b45IMGixJnThwoWLQxnhovji6OGOhAL+Bx98EM8/H+8DEolE8OCDD7oB/2GGOrEqnU51neFiUh13gmU78gFEKcIULIgvD9jTTjs1ycbugnIM69oYgJV2PWlVDm7s21q5/x6mMipoKXACql3QmBzr45mbcfeZ6gXnk7+uVL6vC5FYoC7OeGWG5Xm3pyf/Y8mGwxWb9hXj9JjgI62Q6qK4IoiOj09En1Z18PWNvbX3KyD+vZ9f1xMj3pX32KlQGRTfX1NX78V/BrWT7seSZDzqZOglC6n/M43/GKtkhqDViCKvNDpe1FIk0pg3sgjBUBhF5dHkQk1OuyQr1ZwGQwqLIdoOleI3f3fKWCgsD1qsmmRgYxcANKttaplsO1Aq9YOm58azcY5tIG8RodgfS1rUzbQm9mgCY0deKZrWkjO1ZN+DLmjblhPva4a9JPFy/gnRFpdhXZvg63nbHB/rio/m4s/1+/HQkHa288bfDb59yPKYsFZoCxHVafGmpyOpidjL3F+PtMscxGQIna8YdOccY99IBJufG4JWI3+DJ8Ye2fjM4GiCIRiMOukkJSG0f3+UGVK3HiKVFYDHg47PTENKqBLZFSUo9afCFwlh+nWd4UlJgSclFaGC/KhoWFIygvv2IVRYAF9WFiIVFbjzywUoTE6HBxF8MLwt/vPNQngiEXRMDeCS7k2jgrjl5QiXRtcykbIyBHPzEMrNRWFFCIu25yMMDwb27YBwaRkqNmzA0r1lSAkF0LDkADJrZyMSCCBcUgL4fEAoFNWHceHCxT+OcIV+AfRwQUIB//r169G+ffu419u1a4cNGzZU+aRc/LPQrdKVk6oi3+d+Re/m+GKOvVzHpv2xyZB7/abTWmPB5wuQrFEdWxVrS2goqND/tmy37cJtypqoZysNHprVTsP2XGeWkrecZv4dukDbKwmOKNbtKbY8P/GYmkYFVBfr91g1A1o8+JujgJ1nSgB67QhHM1iwDwDtHp3gOEHS8fGJAKJBz0nPTcGskWdo7ffKpLXG4x4taqNv23qGloXdbxYhvTpnd24s3GbtHrX+xJezxfd2HU1Kf0GZuXBtQSroJx5TC3+u329JnomQH9s/W8HeeeynlbiS0NwpCsvNFhperNTj8aBhVipyCsstrTY8mtcRB8EZJPguVgT8QaIdQsdS+ttt3FcsDYILyXfYuKZV8JRPoMqwL5aYqVvDeo60TaOsMjH2iC5255vjo1PfaADYtD86dmal+g02xeW9jjEC/tLKINKT7Zc23y3cgT/X7wcAPDtuDfofV187ceLCORZuzRO+7li3xuOBx+uNskRYR08sIeLx+QztFG9jOtZFx5xyfwrK/SkoSDF/57SuXbX+7LQZ5v1ba9hQ/B5zFpoI4I7b1fPAa5PX43+Towyaq58ytz3dQcKeJTw+vLI7BrRvYHnNcPgJh6MZVaZfEgxGHX58Plz/2iQs3p6PkqQ0rHzoNAS9PnR6ZhoyAuV4/4J2OPH4pogEg1Gh2KQkUzQ2OQURAFc8/zOyK0rwxOV9kO0LAx4vHp6yFbv3FSCzsgyvXdULkfJyBPftgycpGd70NMN6bndhBb7/fTHSk3y4okcThPLz4UlLg8frw9S1e7Etrxx96/lxTHYywhXlCBdH22siJOjae6AQ5QdyUa9MzDZz4aI6UTh+Apq8+OLBPo1qRUIBf3Z2NjZt2oQWLVpYXt+wYQMyBLZuLg5tMEq/XR8tq7L5vR5kchWmaWv3av2t5TuigzVPW20SW8BmpdnTWZl+QL3MePr50h36k0Gy31xsNqmpF/DTSiWbdHls3BsfSNvBLuAR4cz//eF4H4awpJL5/IQ1GDn4eO3jsAVHv+Pq4dNreiZ8PocDXv59bdxr6/YUoa1mkLAz33p9ibQgZKBVTSDaO33iU1ERvUXb8tGteS3RbgBMoU0gcVaL7Fx1k4W5peb79L5duSuavKMJARHyY/vz1XkKVTsQ2z+TBIkUWWl+5BTCYAGIMGFljvIcAeDX5btwaz+xuwU9dofG4qC+Toa8pWbZTnNso2MXAJx+vKn7UR4ISZknrDovGusyU/woqgjaMr2+1EjsqvDA98viXjuuQaZt0onhuXFrAFiTOMc1NO/Bz2ZtxS397Kv1941Zanl+5v/+cBlOfyMueGeW8XjU9b1w2YdRwdAnflmJJ4d11D5Od8VYp8JfseQOD90EUVUgG9+SfV5UhuxZjVRouF0j81o39mcOPz5y33s8QHKy4fCzsjIFuWnZaNugBvy1a8MPIOBLQr4vCbsz60WFQSEWjd1fXIEFDaLrgncHDTASdRe12ocrPpqHJjXTkHXW6dLzX7Z2Lz7e2QTtGmbivrv6Wt/7fhm+mb8d6We2xUlnyEW/Pxq7Al/M2Ypb+7XGA4SNxtYgL17QGRfFmKcsCU7bZJ74aQU+n7kJXkSw/tmhhpvMcU9NRUagDF/e0hcdW9VHqKgIkdJSeNLTES4pibbMZGSgzzOTUKOyDLcPbIdzOjdGYNduhIsKsTgvhHcmrkSFLxmj/t0focJChAoK4cvOQrisHMED++FNScW93y9HWrAClV4/Xrywc3T/khLA68V3k5aizJ+CUzo2xTFJQcDnBUJhBHJ2I1xUHP0tQyFs31uA/SE/aqb60LQsF/D7Edovvq5dVBFHILsmoVFu2LBhuOuuu/Djjz+idevoxLphwwbce++9OPfcc6v1BF38PehJ+nXrxhaZReVBVARDUppmXgnrgU2OqyiOHHw8bhu1yPbvbooFH8fUtlbLWFVsf3GFdpW5bgL95pTSXJssrlULfYp9JCnCJxyS/V5UBsMI66gfxvDo2VGmzOntGmD+FnEFxAl0e4jfmWH2U066u6+RPHhvxibtgJ/SM6ev3Ye3pm3Abf2PXCu/N6bGs5fOchAknPz81LjX9hVVCBNXPMavsAablJ0ybvluZcBPr+1EhRkzkn0oqQyhZ0trn7+h/1GiThaygJu/75vWirfmFO8fHXtqZcQH/MO7NsbYJbuUi3bGEBAJhQJmhbtQkXgQOZzwaFJT/nloUoQP2Bm+nrcNpxxbV/jedwt3CF8HosG63+tBMBxBfmkADbPFYzhrvRAFGUUxdsOPi3eiV6s60r/FWFoUDw1ph2djgbgd6tZIiUsu39i3Fe7lAnAZlu+MT+pSpsDns7fYBvwRB2P0oYhIJILJq/filDZ1LRoUhwtOamNe45/P3mob8G8h19zDQ6Pz06nH1jUYGjprhn/FHEkAYMEjA9D96ckAgNu+WoRPHCSrnzgnnt1qh49nbha+ftVJzfHBn+L3KHYSkeRG2eYY8+z5nXDfmKXo3creQiwnZod8gUDn5PPZWzGsq7gdBLAmS+i9xhKUfDKbB0siitZs7DW7ghNjkG4WjD8A8OLEtUbAz64Fek38smw3wl4fWtbLgMfvh79WdM4Mev0oSMnEwn0V6NQ29nrsPeN/ALnpNbE/rSY69OqMlEZZSGkVdaPqXFKJOcuif8fXsTPSJGP7lPnmZ3//Quua4aW86FpqYv0amHTPadLvoH9szdX/uHrGNVtYHkDnJ6JCrIsePVPZUtbiwd8MEdUtzw81RFVbP/grMoLlePSCEzGiV4uoM01SEjwpKVE74YoKeNLS0GfkjwCAO8/vhou7NES4qAiepCRMWrYDH3w7Ex5E8OHNfZFcUQ5vago8aekI5R5AuLgY3uxshHLz8NhXc5DvT8V5x9dG32aZ8GVn4ZWxi5CeswOpoQAu7NIQgV274K9dG57kZARycow2psptWxEuKER+ZQTJ4QDCHi9KklKREgwY1oLVhRajZeaBhy8SWv29+OKLGDRoENq1a4emTaODx44dO3DqqafipZdeqtYTdFF9oIuc044ze/qy0szFYm5JpWVCochX9NG2bRDtJZQtqBnaNMjE0u35uLCbddKhC/m5m3PRW7LgpJ+hfeMs4TYq7Ck0K5WdCXX2fxd3xVmxoFe1eMgjlUp+cX98oyws3Z6PrbnqgYf24p7eLlqZu6znMXhhQnTBvHR7Pro0q6k8hmzBOui1PzFZMWEwMJFAQL//1+7vvzRx7REb8P9dAUKPZxLTTaDX50d/bTYSRyKs2FV18ZmSGM27XUPrtaJL6c8tYQG7dTFydudG+HTWFtu/zwL+7LT4xczYJbtif0N+DkwDoaZgf8AMhCkbgscFJ0aF7ai7AQMLPlQaACWKdgGGConGAiB2WGHweDyomZ6E/cWVyC2plDI5psWSFp0UvfN2bAsRKoj2il3wxRb2tH2rSzPzfArLA1rChTLs1mDOPD9enJyYu+mAMtlxKIAXW31qeEdc0bv5QTyjvx8/LTGtcJlg5QMD2+HP9X8BiF6zdmK9FDTwnKaRyKNtLqfG7EOPb5SlvCd1oHvOC0g7BGUDMv2QOZv03VpEBYFSmzaeFEkQS9dtJRVBS3sTBZsfRMFoXU2GKcOkVVZhaMZMOqdLI+V+LOG6UdDKCADbJc5TQJQR6Ym1SfCfISstCV4PEI5E18j1Ba2muli/Vz7/UGw9YK4x6Vi5ZHseTm8nZp4a8Hjw/PmdYg+j7R9hrw9FyRn4fsU+XHRyG/iyzDmOPkbDRthbVIEubZvAXzsbiHnVn1SzLm6dHr2Pclschzb15WvKn2ZGr987Lu+D2rHCY9NanfDMuKjo7J0a6yFabJoz8gz0fm4KAODbm/rEFSXs9t/y/NA4fZBIMAhvsv54crjAeQMdopT+WbNmYdy4cbj11ltx7733YsqUKZg6dSpq1UqMbuXi78eeQnNAPY14Xns8HqLUL180b4kNMqKFK1Olzy8NSOniQDSYBYCMFGtVgrIK5hBRJx75RLysEVnUjhwsFxyjoAE77Ruk/bmqBe/+ouj+LMFBURHry91XpJ64dpFsOKt4ZqWZE+Wvy3bF7cODZtQXPXqm8XiD5oShgk5wSxkCFOs0abkHEy0e/A0t99cRQAAA545JREFUHvwN3Z+epL0Pra7+eOtJlvdU17toG1UV2A439m3leB+VoJ7MbUOGNI4qzij9djRw1mNem0sI0ntQFSznl8Uo/YKE4tmd1Qs9wLzvZQlJNraplOrZopiq6jOwViQVQ0BFWb+05zEAgA6KJKbdvb0/Nnav0ghCRMwK1hKh209NWQo0gVykkdgAgBHdzaQvdVqZsMK+daKqeO+PTcbjzc8NMR5f/P6cv/1vM5QHQnh07ApL9VoHNNgHgEfHrqjO0/pbQOe8/47o4nh/1v9OQRNvMptgERJhOf2x3kwKtKobbVt9cpjp5qMzBwCIK3Sc28XUGZAJqgLAa1PE4xLNq+kmpUXJPrvExf7Y+H0W18ZIdZRUa0cWbNepIQj4Y0kLu3UTw4PcWu+yXtGx06epPcSz4VgCRZXsLSoPGvMTP4f4vB4jcUNb1/5O3H66uLDi1fwO+EQTW4fScZxHJBIx5nn+d6THo3EGD3qf1M80rx0quFtU7izhTJPbF71nL2ZcWmnOT3FsnZg+yJEY7AMOA/4hQ4agoCBKp/N4PFi4cCFuuOEG3H777ejbty8OHDggFPNzcWjgrw0mLSu+UmdPq/osVokT9fPSyllOoX2FpV6mPAuqouozwSbAKjSlYwtGt+MX1il+nyHmpZp42Pcj6rXVVZz+bflu4zGbbGhFbMY6+4rDQz+aizwdVXA7/PlAf0d//8UJJkNg6r0mo+CsKugK/BOgmd39xZXo99I0rf3u/87sOz7hmFoYdUMv4/mrgsUoD5qg+eSaHlp/U4T6GvR/HiyBJarSMIaJLgZ3sgbXbOIvrghahOh4sIUQX+Gn92FJpTxQNCj9goD9rA7xPaey/XnBPicojC1EqKo/A6uyFCpag1RBCftchQ4XOyLoMAlEto792kavBZGYpwgvXdjZeNy5aU3jca4N24OB/hZ0/Ptx0U6t/d+49ASt7exwMERKywMhtHt0Ar6YsxX9/jvdmFvtIEuKffjnJuHrhwo+J6KfzFnhMcJKCmj0sfPweDzo3DQ65245oJ80ScRhiCZ82fVCtVt0kmwA0KWpdY1A27l25MmZgbJAjrIxC8vk9z1lKLSpbybX/h3rmT+ljbiNiIEljXnbXnrv/LpcXqjILWHrJlGFP3pMlWgxDRSppSlgJih/5yr/Mpx/orV1gd1TqpYtNn9lJPuELa9s/NZxurJjwarAkrKipDMA/LJ0t/B1hvRY+8+xXMFqwPHRRI6q2FVYFkQw9l2p1pxvTZMLt1MdmvpZ5rVELYEpe0EEKn475uY+ym1F+JmwhS7rdWQzo3g4CvgnTpyICqKa+eyzzyI316QSBYNBrF0bL2zl4tAADRZ4WpdOhb9DLKN+osD+ilZ7xiwQ95rSDLRKPGy5Qnhv7mYxde2i7nqTuIpaxgaS7YqJlwX8vK0VYGVNqMD3Y/PgFfxF+EMjKJeBDpivxxbNzUhv9Ud/2fcUUrSqF892OBRREYwPcrbYTC4ynNTaXCC9Lujt5zHyh+XG47YNMpWVXB40kO5PAnRdDQt2210umNxowC+rUtEgg69CZab4keSLLrhUSbdXYpXzPznhLLp4WqjQsDBF++LvWx2Wgl0P/6BY0kAl/McW1CJhUZYk/HmpfNHLFoUDO8RTLtkxE6HT81gasz5VoSVxSmBgdNw0xXdAwQfKrEpkp+fAIEvUzFYwvOi9wN9DdkHL34FIJJJQkqbdoxMszx//Wc+mtf9/pxuPzyTV1qd/W+34HBLF8+PXoMWDvyk1JXhQRgkL0K7oY45Hb0xZr3UcvlCxLLZWuH3UYuV+9Lo5uY3zlo2ughY7mrCavVF+zdL59ozjrfc+FddUVUZZBbUvt8agwfvK3fJ1Ey2U0KTpcbGkhV3BhK2beHcPirU5cgYT259PGAAma0zF8KI6NM04HZji2HvbbFopGXhGDZu/VMiTJKwZ2HqS6VypIBKd5EWwRSgPhAzb6poCLRtALGTNUBEMGSy1ulzBiq3/VclaNq5npviVdqzHN5KvbTaT61AmLGuXuFlDrrMTj3HOKJ9HYggWtzwy1NSt0kmYH65wFPDzlKHDXfjmaMMyxUKwrqG2LZ90GGWKn7R4ZKeJBy9a/aqt6F0bvWC79L1mEn9oOhGpsqyMFisKElifsqy/E5DbWgHA8UQ9VxRcMrSLTbKibHeiGNzRXDzbVUtoQDC0Uzwdmg/KeFBP+AyBYJRq4j6YOO6RCcLXn9BcbFcFlF0DAM+c18l4bBfkrScJIGpp16OF3mTHeuRFYpL0XpbRESlNnfe693g8BttFtVgIhqPXZMu6chcXFUPAtOWT64fI+kwBoECRMACAiatyYucgv3eMRZ9g7GLjieozsIRBbQE7yGAIKKp0l8Qqk1f1UVclftCokIuC7V4x4a9MRf88rRTy119tDT0HOjap5gAZqAYLfy3dQNpdVGsTeg5PDY+KxdEFn261edmOfLQcOQ6dn/hd6C8vg+zcnvp1le2+NKj54MruWsflsXFfsdHW5HQNN2HFbrwba+e6b8xSrNyl54rDLBPPIAlGKv5mlzRtEWu5e/ycDsrtZKDtMCfHEkOMaQDYf3cs4Lz6pBbC95n+jghUU0JEaWeQtckBZivkBkVbkCrgpqJ/NFEXin1uO0r/AUWFnkFV9WUJBdE21GJUdu/RuYkP+PlqtR3+xeldiNZAPPIU5w+Yc4JsDqXXVzdBdf5mDVcRKlbIJwgaxKrlG/baJ10AawspYH4u1drZ+A0V1zCgLhj5vdF7XlWssBt/z3/bdPtIxN2qdSxJRttyryL39Vdzq+ZCcygjoR5+F4cnShTCLDriW6oFL8W8LeIqPPWKTlRZmJ3DIG7BSnuI8hV9VEwtd+YGeUa+gUJ0hfXwiwasVnXNAWSuQkSHTbLXnNxCuo0u2KL33rPaGq+NXaxe8P9vkllNSWTAvPh9s09qxf8NBAD8cvspxmvvTLeveB9sbHrW7Nu1E42bSOzYaOuDEzCNCLbgpRWjuYqKJmCledPfiwp16SzcRdl/+toeSSvO5NVmxl3km27YeiqShYz9cqFAIZppGqQqxgST0h8/9jAhv8pQWMpSsKvw36EhNsm0RUTHODmmrK/q5WWJHX6xBZjVQlW1mCUTmkqSniwA7yMRnaOJuExBWwILwPMU4ydd0Dbkxsm6hmODfH/a1tBE06GBggVPLetmxDEMqFL5PAkTDLDSyy+LaSecR4K/GRoibgBw7pszLc9Hzd2mtd/do5cYj/uTnlmnzCoAuIjoIKjYJQyhcARnvDzDeM7rAdjh5i+tTjxDX/9Laz9mv6krzEYRDIWN6+aYOtZrX3at86BjOKtOPn6umTxYuFXOLgLMsbGRhJkYVNz3NIhSVUZ1WHsnK1gsqkQdSwY0yLLOAa0UCViK/YoKPcMnM7dI32MJA1GhpE5GsqFFkCcZO9h3KNIeEc1JPPaSuY1fe7bWYCiyvy9b+7I5UHb+VNdE5KijShQzUHYdP/Yxto9KH4jqK/H7G8laxdida5P0YMWAXgrRPMaE66VwlfjKxvZV5DDzb4mmgQisdWZQRzPRQ68hXbeZwxGOAn4P8/rkXnNxeGCWgnZWx7BG0bnh1T1I9SSTAhtMmtVOXLTMoOQrsoxfKAYMNmiqBhxVhZstWESfkYpdqSZvtnjgEwt00akCDe7euuxEALCoospaKhj4arNTUEoVu/87kd5ElfDZwQKvy6ArTAYAr042EyS0ukCDdruAm7Fjrjm5Zdx7N36xULnvzZL3TyQLh0Xb7C0d7XoHZaJwqvYbgFQHFGNHvhHsxp8Do4KrBO/yFaJ7LFiOROT2mgWKvw8APVtGA4fjFI4VgVD0Nxb9Dfb7qxSaiyuYBkD8ObAkgOo7YH9XFKwDZuJDRomn1WHRoo0pbisD/thv3DArVb5oVAR1Ywh7K5FkY04s4OeTDYA1mJqpmOtoJZ2dAw1krv98gfZ5UDz043LBlvEYS3pIndjB0TnlPzEf8hcvNAXw7vxmie0xWj8UH+DraLYA1qCJQlewDoC9grgAuwvKEQxHkOzzxv3ulNKuwkzBnEcp+TQhID6HaMLBbiwUgQW7IncPp1CtEVTrng0xQTq+bYAmMLYrKPEsgcaLLQNmW9ipEjtRwBw3ROwmr9djJBtlFfKtMY0GkQ6KqN2CB3Uh4PWXWJuEaExhYGOibYVfEjCvIG2qIncpkVUij/mSQhpgMv/ySuXzh0pfpo5GhX9yjGq/WKK1MDxm66hieuyNrcNUWkSq8wTMe4C2DvQjzCE7Sj67hpolkHA+3OGY0n/11Vfj/PPPx/nnn4/y8nLcfPPNxvNrr73W8Qm89dZbaNGiBVJTU9GrVy/MmzdPuf2YMWPQrl07pKamolOnThg3zjqBRSIRPPbYY2jUqBHS0tIwYMAArF8f3x/222+/oVevXkhLS0OtWrUwfPhwx+d+uIHRTnkvbEDPT5tV2WRWMkzBVabSbCQMEqByMhgDr+IYqkwzg6jaqeMJbmSqM9WfQeQVzWAsWrnFA9UAUAWQlPbbom78byljWNhh9I29jceyau/hih7PTDYeM1bCTaeZFOA/18sXvTK642uXdDUeL1PoTgRCYSPYalVPr6JCIbufaA+cjIruhLIrs3ZiPZIi7Q5Arx2oQFFhN4JdyUQfDkfM/QUBO9UP2Vcsvm5ZIC2ze2NBtMzjmUIkzsnGVJWtXnGFPGBn57VGQcs1A37xZ9ikUJkGrPe0qH+SLVrzFX2o7DcWLerqGNeBfNHYVpFQGdLJXnwxx6bSyvC6Zk94omA2UDwSaXOklGJG3Rbhyo/NtdEtGhRgXVz1sXrNxdDzWfMz30EqapfYOBtQ1e2hGo4aPNjY2bR2WlyS6Byicq9qo1MJwgHAB3+q2RWqRJMdmO5Qog469JpKEehrHBtLepygCHynrdkLIF7wjt7HdtZ8ALBlf3xSYFWMvSErlJQHQga7VBow2ySNVcUqyhSSVcrZ2FsrPSnuGmLaJSqxaTvRV6OHX5KwoHZ7IpcIOi/K3BpUYtK1NNhZVKyOhw6lf4yNZgc7xpTYtSYC+wwqrQE7/BhjsJ7ezlwv02t/7BI1w5UltvjWkKMBjgL+q666CvXr10d2djays7Pxr3/9C40bNzae169fH1deeaX28UaPHo177rkHjz/+OBYtWoQuXbpg4MCB2LtXfMHMmjULl156Ka677josXrwYw4cPx/Dhw7FihalY/uKLL+L111/Hu+++i7lz5yIjIwMDBw5Eebl5M3///fe44oorcM0112Dp0qWYOXMmLrvsMidfxWEJJo4iyhLX1RDts6P0T1sb/d1kPaS5isWiLlS9YAyqrH/rWMB1TufGce/piD6pKP0UMnHBSCRiDP78oEdFmFSBx58bzOA0Pdm5xZAM1H/6FUmVni4+bj6t6ovOonK1jePfATbhjhxs9u1e8ZHeopeiOemnf1+hkr0ttxTBcARpSb6EFoyM9kstnHjIekhpEH3+CeoqwnpJf+iKWJ+uzKeYORComCUFpfKAn2X9Z0mYJ0XlQbBLRNTDT8GowzzY9yCi0wPmok9GWKPBhIjdw5KgapaCPOlAK2cyDQyWyPNLRKbs+kDtqK9sTC2qCEoXnSpap05bGAv+eHsvALi4xzHGY1ngzAKvBglUWv8ufH+LadP5jI14Hm3ZYPonb15mug0Me2tm3D7VhSWKZIJT3HvWccZjuwQzra7zczNTiQfkvzlT7W4uWKB3JswyVQ87g0qUU4ZIJEISTdaigE6S6r0Z0blBpQ+iArUi7tA4Ptk4MNbeKNJoYWDjH+8mQFk6Mls6Oh6dI5iD2jWSJ/EAc82W5PMIHU4Ae0o5Ez4UidtlpviNIF6mh8O+Q9G6jZ6TzBKOtbXJAmq7Cr9d2wBN4socJ1hS5HzB+p0xXlUB+5Q1cjE8xnoorggqE2cqsMq5yl5yb1H0PqovcOk6qbUzMc1ckpim1zF1kOIRCkeM9Qof8NP2qCMVjka/Tz75ROufLl555RXccMMNuOaaa9C+fXu8++67SE9Px8cffyzc/rXXXsOgQYNw//334/jjj8dTTz2FE088EW+++SaA6MD86quv4pFHHsGwYcPQuXNnfP7559i1axfGjh0LIOokcOedd+Kll17CzTffjLZt26J9+/a46KKLnHwVhyUYlVtkIcNueBkdMxSOGLRckTUWAFzZpwWAeOsZBjYgZEgUSXUsx5ifr2jBmRxb0KqstzbGLKdE4jl2ll2RSIT0oiWWoaS0Wv4Y6aS3bFe+PNtsp0isAl1UyQSIALlwIq2UXN7rGMt7L17QmWynpphHIhG0ePA3dHrid7R6aByeG//3qUxXRVyU7ita7DD8tkxuh8NszlrVy7C0EsjuEx7TYj3FfP8lhayXld3PNVL8troZAUmg+da0qJiUrMLAgvn1kgpWOBxRMnMYRVDmXpFfFt03XWKJRCGrUrGFoF2FpiIYFooGseq6xyOu0DPmgUo/xKgSCcZP2pdfbENJTJaIE9pVvdm5iXy4gWgigl2ess+hDPg1Fp0qP24qeir7Dhi12u6z6uD+gcfZb6QB2pP7oU0f/sXvmdXwJY+fBaDqbZF03F2gCL6Hk2TC+mcGW97b6sDWzimohSyPa8gctGKnOFm3NTd6biJmImWq6Dgd0CSvLgrKAkawXp8bg2kr3d8FumYQMXOYJhDVppBBFVTJ7jmquyBKmNrR0dkcVDsjWXqts6S/jAXB2mBESQ2Px0wkyAJ+FrCL5ihaeJGxzJhzkoy5yRLZSyRMkp9sqs467U15Rltb/NhZ2ybhAJhuPSJkpfkNBrDsGGz98eDgdsL3e7a0FxFWVfhViQIRRFoIgFoEeU9hOQKhCPxeT1zxhSac/87x8GDioIn2VVZWYuHChRgwYIB5Ml4vBgwYgNmzZwv3mT17tmV7ABg4cKCx/ebNm5GTk2PZJjs7G7169TK2WbRoEXbu3Amv14sTTjgBjRo1wuDBgy0sgSMVLCDuR4SCGEzhrUphgFRYFjAGDBmlny2El0rozW/ElHh/lQRHvAK4CCw4EInksCqZTIAnrLAXA6y2ZaLvoKAsYPTxqtR2VaAaCTxTgk6GOt7uPFQVYAaaQU+kQv/sODMw5zOkI0iGlCqpisCLRb03Y5NU8EaEt6ZtQIsHf8N9Y5babktF+cbfear23wCsQSj1HXcCVjnh7Qsv7XmMaHMpRBS0K2OK7bIg0BRbkl+vI7pFf7dE7WiuPCl6DqJxBYhWNcM2Y4cKRiuRTUIOgNTP3C7gp0F8sWDRxyr3NZL9Qv0HdtySypBUZZgtqEVVrtQkn+EyIGIJ0PGItyYzP0P0HGQJWbZoldlXeb0eW7VpFcOK9eeqhNnYYpLvowWsVZ9pEuG8nFgPsowpc2NMqV9kfQVY5wB+G2ZRym/HYwVZ9P9028nS7USg7UEyxoWI4UEF+abce5rlPTruXviueO3EI8nntQiXnvbSdOX21COejYO02qr6vlRBCLU5e3OauA1jW6zCf4zASpJCdg7UFk/G8FGBCUXWzkiOC7ipeLCduvgDg8QJJlXvO6C2CQbkzCgKZmEp0pBhzBxZOwnt7RclXFVJToAk+QT3PMOC2JrtNZtWHJloIZtX8iU97CKhNwa67pq3WS2gK7PP88aOIWu/U7UkMNhp2bBWK9H4Tin5sgLHxTHr6isFLi8ej8dYQ8gYWozdIhu3WhLRallrxT5FD/+Twzoaj2X3MmUfUEthXbBruXHN+PYgqgWhEvU+nHHQAv79+/cjFAqhQQMrta9BgwbIyRFXenJycpTbs/9V22zaFKVXPfHEE3jkkUfw66+/olatWujXrx9yc+XZ8YqKChQWFlr+HW5gPeoiehEbjCuDYaGaP6twpSZ5pcGFqsdIB048NUVjjkqwBABKKs3BWGQPRoUAywQDFlvIZqbKfUjtqrYFsWplE8GAQ7FOYb8jA134yQSWvid9WIkIEKnUjHUrVUHJ5HvCU5O09m/x4G94aWKUtvXdwh22llj/94sp0sV7xDLRQwAYvzw+EXXrV6Yqtai6IrsXKFhvNa+I3JOo2aqCJHadiFpO2CLzQ0kP6oFie0YKq4rLLJfYIkeWUGJBoixhQO9L0fd194C2ca9Z95dXNngMF9AdywMhI8EnC/jpIkakRVBktASI96evyxZsBTY6AuzcRBUKSgcW9YACZgUmrzQgXPSx1gxVBcROgJG9LrpW2GsyajBgXud2bV2LJONMjlHhF+utMKX+BZL96cL7eE48i95fjPYpwnWfzTced4ktEgccby4+nVaqAODHW822gP98vyzu/X9/bbK6+PlbZ9wVnZMT4VKqHzAiFjhMva+f8Zqqb1cXJRXiIIElqESUfgpZ9ZX2Zp96rDUpef6J9kK5qv59agln1zKRIWm/+z/iFiC6b2fbBIt3DjhW+T5gtjqJEr8sIJfdt4yhJgNVOxcFagc0ks7MvcaurXK6JBHIWiBl4otsDruslzrJbsfcvOtM8VxFW1VEvyFro+3bVpwUB8zrXMZyMOZBYbLVZKiJ1q4AUB4LlkVMGcBcB8hactn1LXMCoElzEYs4EAobiWRRhZ+2+8nWQ1S0kU98qGx5GVhbokg4nK7HdQVYDzccdbZ84Zgf9MMPP4wLLrgA3bp1wyeffAKPx4MxY8ZI93vuuecMrYLs7Gw0a9bsnzrlaoNJyY8fMCjdd6NgwGG9N6o+NLuKJVscPXFOe+H7J5CAX0Qvo5WPY2rHB+w8xZwH9cMVLTgzkn3KLOe+WP++zIUAUFvjAKZKrqxKx2CnVArEZ0lpALluj3jSkLErGCg1XFWx0BlcZWjz8Hjpe3ZVElm1aE1OYgk42oN5CwnudaFSdWeYvDq6GOYF+2jFXyYyVlwRNK57kV3k1/OirReySX5/iTxAY+gfW2ylCBIagBkYnSnouwbMyrsskBwnSKRQjF+hfl8l+MfAaOqiHn62v8/rkQbLFKK2ANZ7LVPI93k9Rk+2SMU/HI4Yx5AlLrIU1nxUcE8WONBxXTR+sHFdxaSqZdNLq/JiZgv6QCgirfCMWx5dkJfb9Il+NntL3GuBUNjQe2iQLR6DK4PmHCFaeNMKEZ94oXOCSA2cgVc6B4Bnz+9kPP5AoudBz6c35xJD577vbMSxEkH3p81k6pqnBjneXxT00UX7DRrOBnbUb5F7TCQSMSr8zeuIAxVG7RUpwAMmQwCID+hUFrwMKqFImii0S/TIAi3qQy+qELNAS5bXaVJTnQihQXi6oK3r+lOiVf/2jcTFCmaXyifLGeiYKhp/mXaTag7qE2s1sGNO3m5jvzZG0or4U6wlQJZIZJamMpcXO9A2rX2CYJXNKR0ECv08ZNaspjVt/DxIf1eZlkWejei2LmQMMnov+AQX64HiSkQi0blS1NpH74PdAhcUAPiSOFHwic52kuuTgjGVmkmsbY90HLSAv27duvD5fNizxyoksWfPHjRsKBZCadiwoXJ79r9qm0aNotnI9u3NoDMlJQWtWrXCtm1yH92RI0eioKDA+Ld9u3hgOVQRiURsaa0MImGSCZL+Wgq6IBctthhljNHieVDbGtHfo5WzzoJKup1FD61AiqoiHo9HaU+yX6Naep9NXyhbuKvsu3QxghMZoayDd2ZsEO6zcpdcTR6wKs9/yrkd0N9UZC0DWGlROmJ8W54fiutOMWmGxyqSAQBwooQFMOjVP4Wv251DVftnHx5q9oSKrplIJGK8rlKmlWk2sOpSZopfqH1xRe94eh4Fq/Cr/JOZzWauRGU/30asky12ZJaedovqAcerrbp0xi1W3ftF4EVuiuX5lb83U7sWUfqNCr8ioceSfaJFY0ll0GiJkiUNWGVHpHZNkymyyixloIhYBswBgAZAPNiRZS4dqsV7A0LJt2N7qZKmgLjfdF9RhfF6XUlwR9tKRD3hTAOGVuQpWOJo8XZ7m0sK2o7A2Ec8aNXrfxd31T62jgYJ/dwiy0CaAKLXCWXXqKj3iYKeO62G6yKvNGAEwTJV7d2x31RWFbzm0/nC1wGT5gzIaci7Ja46PESsEJpgEinsA9bfY83u+GCNBdGyy4AGe2WCZCUNQFvVjf8N2OeSuawUxMZ/GcOCCiGKhlezDUh+z7Mg1M4iUqZBwJI+l0qKPmzMlemXqNhVFMdK1pg0CStKFrKWnGSFcCqrnC/ami98XyWarbOOYb+jXWvcj4vjE46hcMT4bfnWRBFEWiZsTqhbI9mWXcSU+HmoxKxvIS2qsjFze65YsO9owUEL+JOTk9GtWzdMmWJavYTDYUyZMgV9+vQR7tOnTx/L9gAwadIkY/uWLVuiYcOGlm0KCwsxd+5cY5tu3bohJSUFa9eak3IgEMCWLVvQvLl88ZySkoKsrCzLv8MJtFJo58ctyhCKrKh40B4tUVsAg4zOSRXnkwRK1GzAy0zxC/uIREkAihUSBW8KNjltFfS5GgG/wpKPqryKejFZdUgmwOa3GQjpQHZcQ/k1KOtBYsJzMkVSmoh4hvTrA6YLAwB8cGV34f4fX93DeCzSIRAFEo+eLWZ88OC/zy3PD7U8Fy12qOr17JGna/0dBtp6cK2g9xGwtqF8JfBBppnqzk1rSv/Wsh35wtf3Ggki8fVid82bSSr5NcsWYnkSOzbGFpGNG2yxJOsfZEJLMtvLIcSWTIRCjYCfBXAi5oxuopMtCkXVcXYOsmCdvidSeqZJADt2jChpsVazxYeNK7JeVkB9zTB3kaclavNMtFPmp82wfq/6fJsmUGGh1pk6SQ9RW5Sh+C7pB2eJI5XSM4OO0BbFTV8sNB6LWhIGdzQLHTRQHDXPLERQ61SKty83W5MueEetn2I5J2JN2u+labbb67QwUVA6+lUxUV8eKho3dQ4RtVQBwC391VVflVUmZQ0wYTcejH1lZ1X7wHfxrRg0idK7pb0Kuaq16ypB7zVgHVdFASvVnBD9foxZ9JPEts3Oko4GmyJ7WuZspKres95q1bgV/Vvi11mrIXNE4MHmT5kGAGsV+GRmfKBaSlpBZQwxOhaITpH9rqLqP4M39tPIgto8hdMNxVRJew3bv1aGXcEv/jfIK600Ek6yCj+FKDHCWMI6lnytJYkVllRvLEi+0YKfTEuB6WHI1iKq+f1IwEGl9N9zzz344IMP8Nlnn2H16tW45ZZbUFJSgmuuuQYAcOWVV2LkyJHG9nfeeScmTJiAl19+GWvWrMETTzyBBQsW4PbbbwcQHXjuuusuPP300/j555+xfPlyXHnllWjcuDGGDx8OAMjKysLNN9+Mxx9/HL///jvWrl2LW265BQAwYsSIf/YL+AfBBtIUv1c6cTKI/DZVvvIMtL9fJMDGBksdcT5RsJynULkG5BVIBp1KCaPl0Z5JBp0Kfy8yqYt8XVkAJ6t6PkIqxiJQOqnI2soOrFWht0TVXQUaBMi+A5rMeX1qPMugF/FyXv7EWcJj7JL0z7Z+yBT6Y98T/b6Of2xC3D70upX1/b5yURfj8cKtpo7Ht8RmTia4RBdQor61VSTJpKKTyyoL7BqSVZdOIz2BTMGcgv3eqmtWpfBLkx4yFWd634kSfY/EVLplNGmmwg+IGRkseSWbxAGgU5OaAMT9j7oBfw2jQh//W7BEoKyHH1AnDOYT9XS7aozIceEPm8oXA/st6HfKwPRFLuxm345mZ19m1xoh0pSg7Tqyaq9IW4XBqY/5A4JeeJbIldHD7UDHpgkOBUBVbQIA8Pg5Zi/3gFdmGI8fJir3vSTjNk2W85VmSjXnfdgtrBAJnZkGIDPu72d5b3hXU9dDNL9StxaZS0h/Ir7F67u8O2OjcB+KXqSVTXQO7DOLKOn0XhQxIygSYeWxYLdBVoqWZsKDgmuWQTS/ANbPMHtTPDvIrk1uj83nfnlSNHG/QaHNwSBqLft+UXQeVVmWygJxwMq8SNQVgVm4yYJlJgItaoWkSQi7OQRQX7P0WuXBChai5G4kErFl2jGIWASRSMTQCJCx1E5UrMvZ2qBmehL8CpbCv3pHGRaia84U7LO/j96QtDiyK729wJ6SBvyf/LVFuP+OXBbwi8f/VwnzSuZYdjjjoAb8F198Mf773//iscceQ9euXbFkyRJMmDDBEN3btm0bdu82+ztPOukkjBo1Cu+//z66dOmC7777DmPHjkXHjqa64wMPPIA77rgDN954I3r06IHi4mJMmDABqamEcvfSS7jkkktwxRVXoEePHti6dSumTp2KWrX0ReMON+gsetm8Icq4s6qUqmeZ2qPwmdpAKGwEDHYDFgC8LPCBtxvw6IRMs7IMwVgrwdmd1RVFQCxMwiZvVfBEA8AfF8UnTvYUsYBffIzuLaITgiwLSu1d7BI3IrA+ycYS4RUV7MR7nILqHcx7+Azj8UnPT7Xd9/pTW1n+rwrOJ72lF7xjqlxT4Rad71pkKyejpjEMjV2LsiqUwQiRTJKUqj9vc7zoqI5gEsv4lwVCcSwJmoiQiWqmJ/uMRYYocdHVJsFHmQ+i3u6iiugxZUJyADBqXpRdIXLvMMTyNCv8Iko+qzSqqvP+WIlGlDCwC/YA4JqTWwAA6grufbYgtrMuZeO7qErD3FNUbgzMcmlIx/gxkiZjZIwTBlGFh84JsjFcZT35gUSYUgZR0thQfJdQOofasE1oFfhYbi58ari5DrGjBotAk3qMeloduOR9c0wb69BVAAAu+8C0EuSTpv8hFl2TVsVXyFUir8bxifYPX2WXuTVQUFacqPeXBcot64p/87TY2G5H2Zf1sN9wapT9JWpN2u/Qxlel3XNTX3tXHdHYNXaxuHLPcKLE0YKHzm/51K+rpO+pvoMmkoorYCZbk3weocMJADx7XlRDQ2bVxtaOMnapSlOJMUvr1kjRos7L2EOA2m5ZNF4xFFcEjbnNbv0sWnPQREwtyXewTTHmsHWEndgqC+b3CnROmP6Kqp2LJR1kv+PM2Pr15DbqgpVIgLIyGMbuWAFFJNoHAP2OM5OPXwgYm4c7Drpo3+23346tW7eioqICc+fORa9evYz3pk+fjk8//dSy/YgRI7B27VpUVFRgxYoVGDJkiOV9j8eDJ598Ejk5OSgvL8fkyZPRtq1VWTMpKQn//e9/sWfPHhQWFmLSpEno0KEDjmToCF+x5PinAmsrZofXw8Zrk/Xx8iJqbLHn8dgvvAGxem6+DaUpgwQeItG9PJtBHzAXzKJ+PJ0KP4VIU4AFcLIsJ6v87yuqEGZJZV7nDDI/dsCadRWJ9zDo+sM7hSrQsMv66vaXUps+2ppiR33/u/CbjWDdTptAkNFIG0gWo5RKKKrA7zd6ruXXbI0Uv3Hf8PodbNyokeKX0nk9Ho9xT4ssmthnkE3S6SSZIlLqZskOmWggANwjUU8G6NinXqywxaToe8witnsyzItV8d8QMFuYsrrKPz5TwTBg904fhY82YC4GCxRWWU0lix0Ahk7EzI3xlUKqcG9HffxM4Am+mFR7ZXT4K3q3UB63KqBVLtmifBCh1Yt6ulWUY9oPfqNCxE5GJ+URCkekrBoRKHOOjvWLiDe4U0o+IBfQAqwJgBtJywKDTsBOK/+vTlbbsolAe4pVSvnZaeL7v3HN6D0pU4BnkInysURAWUAw/hbZa6joIj1FPmez+U1UvQ2G1RV++v3LHHQA+2QjoC4IqeZgmkjl9T/yiUuLLOBumG26TIlgKNxLrgHVeMbu+do2VHjWkqPSrOmpqPA/MjTa2igS9qMMXRlTpnVMFJh3HwHMViZA3sN/71nyOTRXQ/wXMK8RUeuCUeFXJHWHdo4yhmRsGJb8sUug/yxoi9uVX4ZIJMpekyUd6Lz0znR7dtHhhoMe8Lv4Z6BT4WdZTtGY2ig2Kdr1WDHw4iusf4epdMrAlP5F27CbXOYD6vF4DL9VEZ3epCXJBy3VgkinH5qCF98KhsLGMWTVBDqginxx7RSchxGKJZ8woD2wHQSUKIZb+pk9kSz4oFRJmeAVw3tXdDMeU/HFDo9PNB7PfegMqMAnB6hY3zKuFYD6SdPvZ+CrfxiPf7jlJOgiHI44stbSUX6X4ebT1AwFI+DXWGyJFsv7i+yvWXrf8HRClpW3CzxYEk5V2fQIuxutk/vWA/EsEmanKap8M7DrWWSdZY596t9JFXAzSv0ximCZQcSmYFVG0bjEkKVgGLDKn12g/UfsHv+cC7hpdV61IF0QS1qIlOhpEldmS8oq57QfnUGHEkwrfTIqciL+y0B0wVkWCMHrkVtLnUbE70T9yK9MimeeMdC5Yy7HtqHtNj8pquz3E9HXIa/9iY5kzOTHPR6fEP0Umvi0w9c3mLoAB5vGukaiMG7X6sbwmiJhIJu3NsaYa6K5lSZ9zhdYfgLm7y7SzWHzn8wm1w6UcdVBoqIPmAWOX5fFBzrsXpVZwtEAU5XQpD7pPNh3wM8fkUjE0GNSjTtUtZ1nma2MiW+qhEBZMkfUylQeCBnuUjUlQTtrCRNB1xaWFZL4OZCOY7w1r2h/kdOBSrCPgSUrRcGslyzqZZR8FbuKibXaVfgZM5Wt9yl0eviNhIFg/qGwE/oVwezfT9diaqi0Pw5XuAH/UQI7D2gAuChWoTheIAbH+ttkPYQ8+BtqvoBuLAILHESJhf/FROBkoiQUYwW0JqPCr2A5UKVPHoy9oAo8KL6aa3V92B+zJfFLbEkAa/CjQwPmcTbxSuf3n0UWJKqky8AO5mD6r4+i/suj55uuFC+P6Ko8h4EdzMX+zV/GV30A8eS/4JEBxmOaHODBX8N8Nlhk0afqOwOsi+VWD41D20dMt4A/H+iv3Le/RgBy6rHiHkXa1iCqKO6x6eGn4CmBlcGwESjqslLu+maJ5fnnAns0EVh/tcj2iFV9BgmCQB4ipf/CsuhnUCUr2TUhsjRi1W7bHv4UcTsSAGyJVUjW5siD1tv6R8eOLgJxxjemRgMRlYwI+/vCgF9j/AZM+yeeCUQXoaqFt0pAkaewi8Do0aL2FpmdIAWl1opYWoB9T/K/JdZdf8QSsOGIPLFLv19etLQquGe0GYCrqr239jPnHz54svvtaUDCBNjGE4bRvRIWDLUIvOi92cJtAHVAYAeaiNYFTVKdIGkn4sF/ZwXkXu6UAMuLahDImImqVrcpsbXKFkEik4K6JVCsIK46WYqEJWMkipwpGMtslsD2ELAm72hRgIEFaCpmiixBXlQRNFyZVOMOncN5duWvNiw5wCZZGhv7vB6ghmQMOrtLdNwTicExPSo7sTo2v/BaBTRRoUrYygpZgJ5gH2PHfS9IXFF2lc7f59cSOk4LgJrSb/bwawT8gsQjHfcTEddj6+FmNgwrtlY6WKzQvxNuwH+UgA3kewSZNwYmSCQSh6F0Th3wStN21GYGJnImaivQAcsmi2zjmAe0jBIFiHt/gGimmk1EMksoOxiWfJl6Aj73fLsk7jVGfZNl62m1+aWJayzvzdT8DWmyhrEMHvzB7GeXiSaqUKDBDJEFpe9pCDd9eZ3ZCjTo1T9x1v9mKLaOhypot7NwuYMEGMznFbAuWG+WJJKoeKKogmG0gGgIRvFtD1RVWkdsCIjvbdax46QQBXo6PfSMFiu6LVgQr5rk2WK4tDIUFxDqivatjo17ItFSFuwMP0EeuGQqkg6MudSzhZzSyX5/UUKTaW+ENIRHRaAMDRUjhbUciFoPdHp4VW4CojYpHlQr4+3pYmvRS3qIrbcYhpFKLGUm8eOhHUQMK4b/DGonfU/0t2dvcj72Vgdu+WqR8VjmYU7/5kYueKVjiMyZRQZ6zen0n/NYSpxLeLFBXWwjbjsyGq/KzpeOybIkOU3myjzU29oky3IKxfcGrXarrg2WKDqrQ3zlkyVcb7JhkwHAFoFCvM74+ZjEaYcFy2lJPuW6i+KruVZ2UksNgU02txSVB+OEG/PJ+cvWXTXJ/jwMdXubCj+7PsYssFp20zYTVeGBzr1xn0Gjws/2EYnb2tkdAkAPMjeVcBpY2pT+2Dy5v7giLmlg9PCrAv4sljCIj1N2E/0DmZ6GClNWR+dVu99xwSMDsOyJs/Dz7ac4/huHOtyA/yhBRYzSFAjKF4w61fvVEqVYO1B/dhVEdnwMTJX+/86V6y2cE+sBEnlpM6ho+5f3Elvf0GBKJYCmghHwa6r9ijRc2sUGukt72Ctt81nWRH+7qmLTvmJ0efJ34/n0+/pp7ccECp8bby7UNz83RLjtKVwFnartrn9msO6pJoQ2pIeU9svuIjTe7i3EFSqf12MEk3xWOxyOGDQ4EVWdQeZ6QRkeOgkmIN5OjQkaysSSGFgQKeo/ZAtGVYWEXZvUgoyBLcJUFU7KlOArLGNj1U47ITWVkCU7vorSmJUqXzQyYbFereQBv0iwkIExKN7/Q2w7xUArxKL97cB6XEUsB1HlSPfvA8CcWNCr28NOq4Z08Wjn506PT5MUojYFJ6A01Ut7isdfapsns0a1g2i8ko17PM4gicsrP55neS+RZMK/PpxrPJbZiv54q9kuRRO73xJWmEoUDbC6jTBQ4V7dYJEHa6Hp0jRb+vkHdZAzj0TiwTzo2kbkTgSI20MoZBo2+ZrijwaVWnCNsyScjlAvn3Qurgga96Eq0S/7fczKsP6aiReNZoUKlWUxSwaHwhGD5cSgk7Bg7xVVBON0DAw6vc1nWLAlOtbwbRG6Ap61ybqStSAY58BYBgodAdaOJHI6YWsEWSsTYNVRmMHpWej+jnUykuHxRNeuB0rMaykSiWip9LMKf0llKK6tkxZTZMm3/47oInwdMAVBV0vahijs2FSHK9yA/ygBsycbqKDVsqAiTaFIbmfnJqPuMYXRC7uJ/d8Zzo4F7JmCKhQbOJWie6wlQDHIyhSaAeuASL2QV5C+qgybnm3Z98f6axOr0UXBqk52/WQAsECjIicDXThSP2tVQoZi1ZMDjcenv2yttrdQ9LGteWqQ8fjOb5Zg2lprtVO1aL1FEmyoqHIUvOUUAMyz0RoArMH0TKLb8OMis61E1vMMmNccn9XOK6006JCqrList/Gb+fHBswzMpoxfFDJxx6tOaqHcn32GpdvjF7Y6/YcM/KIuHI4YPfUqSqvP6zHGDJnS9eRV6lYgxpoRBSfGOSiTDrG/Lxh7ijR68FV0eoY7bDzHZfapugkfNn6WBUJxLSYtYirnKsFP1l8vGmOZQnVjiT0mj29IwEgXjy0UKtiA9V4TKccnihs+M4X4ZOMvTZr/66NosEwZJyrRLoYknxf9iJbAh1d21w7WP7zKrMJTK0cVs4QHrS7aicQC1oD39almD/2TRLHd7vr79xnHGo+ZheVfEgq6CJf3ErM+psfmDxUzhoqIVXBJN53kvsfjMcbPvZKx+K3LTlQeg4pxUr0HNiec00W8rmJg7S8TVsoZWTouOzyT8y9C8RetyRhkDi65Gi4xDOfGPiOvF9Mi9t2eq2gLSUvyGWsTPsDON+yc7cWaASCXEzzNL7VPWAPy34hZnIraBSgyyLjKM6VMSr/CbSf2nqi9gtH9VesIOsbwc7Xu7+j3eQ2BYJp8KiwPGj3xqnPISPEb8wt/L7FEiip5SOn6sjaT09uJ2bFHA9yA/ygBu3nWKKq8bNArC4SEftgA0N3GwiVVEtiwaqPKegQwe5VFg4JO4GD4UHMVKpq19Xnllz0NKmgPqRObpdMl4kAsMMsR+KXrgC7EqtJPOVTDlvCdf5nCe2f9zxS/+/OB07X+RrqkV66HpNLNwNvfXfPJfOPxqOt78ZtbIKLZ6lbGALFyty4bg9m8UGGyKRpaE4BZPeYFq1h1qm6NZGXSonU9ccVzhST4E4HR+fhFYW6JXrDOlK5FlFZjwaWosDDKe8cm1r65ksqgwXSxy7pnSXooGVQqxIDJUuDpjIBewJ6loIUWGW0J8s9Af2N+/GWUZjsLrRskNpWsWmJ3/2Wm+I22Cv57ZP2bKjola8sRJaGYYKmqD1WGP9aZwZ8Tpfn3BIyIIZ3UWhIyN4mlNlVaGej4qUuL//Santjy/FBseX4oBijcKXjIEgOjb+otfJ3h9UtPMB7rskFEf/Ojv5xZJzJQD/A3BS4XdmguoX0zHR1RbzsDLULwFfLFhLGlQn1BhZ3O10z0WAaaNKHOLXs1+p4BdRKdQRaUA+Y9zTMtaN+9KulERWHpWivXQYVfLvwa/bsyqzZ2bky4j3eaMVT+FfMPpdrz7Yc6Ys+AWIMHMANPleUiYP1+k7n53nCaUXwGNkeLHI1Y0rFVPfvrBABembTW8tzJ7yjqw6fVeTuLY/NeshZA2LikYvvQa4Syu+i9uHq3fYX/SIUb8B9lUN1sdTPNm7mUDF50ALSrbsuCSaYhsMumj5MtGDcJesl0hEtM0T/roEezxqoKPx10//u7Oei9PkXfLoiqAdPJb+LKaLXJr0g4qED7EVX0PJGaMD2Py3uqe2AB+aJaRzyO4fpTWsa9NuZme7X8X+8Q906dxFH9RNjy/FD8d0QXnNOlMTY/N8QxjXXL80Mx+sbe+Pza6IJbF8w3m04yrHfPrv+U9dfxKvts8agSOwLEFpaAuQCwo+MDwNzNYvqxjpUlYLaa8BZe5YGQkdlX3bdzY3TvtzkrHBY8J/u8FsqhCKxHfCu5TyhUlQXADOb5dqBAKGzQRFVJC6PCL0h6FGq0JdBkaTGXdCiqsE8YAGbvPf9dM9Ewu2DO6/UY4no8S2pZrKdaZf3JvuOyQDwlk0G1cJfhA5tWBjvQBMrVJ8WPSxQPDjIV4TcL5iGnf5ceQ1dLoyqg7CoGu3HwXFKdHPTanwCsi2RdZ5pEQc9Pp9+YB2MGAmJRRz6AoqDJ6elrxUlaO2capn0wap7Zf04DPLs5gK7LaM+34dJik+CXUbXpvK9K9rGWqg+5hI1Kx4KiZnqykSikFXInlH7GjOT1n3TtkNl2vNWtroYLo8LzAbNO/zwACyuH3jtsXtdZirBz4J1idIpdNRXsLPYdNK1lr4cAWFsTAWe/Yz2B0v46hbYLD0P4j0savzAh2tqpSsLRxA3VgKEtno+fI9abOBrgBvxHGVTUNkpFp2I9+wmd0i548Eso36wnyU7RnNKm6MRNe4BUvVTZhh+4mNYF6PeT7cg1Jw6VfzaPvseaA/9iwYSpsuYC5BZEVPRKlbg5RlDtoItOHbVtQM93V4VHOCEfWSDPg6/yAlaqvx0u7NYUb1x6QsICWL1a1ZGKIspwoqSPHhCLYOqACV2KbHooLGI7JMhiApQ6vZvMA5gH60NW0bgBYP0ecSDJFip+r0cpFscSfDwNjwr26f6eX0icBexcL9j5FZQFLAs2Wq1WfQZVDz+rlqsYAvS+5avrurRSqhRNg9zlsep0noZ4JhN9msgJMDIv50375UmDjBS/MY/s5zQpGDU3EbV0lb6BDr4kQmB2ejIdm5jBGU366mLMzX2Mx8Pfnul4/6oiPdlv6KQM7tjQUeISMFl4vywzhXZ/vFVuJSgCvX/OcsBQYKAJ+/9dLO/LZWiYlWoE9SJaPQ3GVJAxqezaSFiQSHUb2BoqM9VvW9WkeJa4Q5gBv3r9cRyhOdN1E03aqdY9bP7ie6N/FLgdieDzeozjU2akYeem0c7Fxh2+kq4b8DPw86VRHbcZO9n58wE/GzNrK/rnAWsxhLIUMhTuKzxYoM8nGnWKXTSZzCfedecPBppgikQixjxeR0Owur7Amk9ll8mjXhbbv2qaK9QWm9pVipicRwvcgP8og6jqykAX1KUVpMIfG7ya1EyzXXTTKpyI4qTyUgWsSt600sasuQB10oEtyHlV5O8X2QtO8aCWPEyp/WqbXmbAarv0ycx4iuO1J6uPQUVX6MLpk5lbbP82AFxLfmNWlaP0crtKJ8O8hwdYnjtdOLJ92D9RIK/ab+aDp+OWfq2x+bkhjhZMBwP3Ef/sHXmllmDrDJskl6xNRuQLLQIN6GkyiS0SdPxkeUZM/PvqQPHimIgkLy6YTxYqqrGDCXHy1V9DsM9BZfSY2ub9Q3tyaSJOBBaMhyOwCD/RhZpKZdm0hgrEqSzrtAQA5r1Jx7tgKGzsb1elYt9TOGJlCbDjMutAHcyRsD7stAYYU4wP+Jm1YWaK+jNcIxgfWbJBF/25AI8uOO1aAuh1+lss6KWV0mfP66TcnybgqFibKilY3WhRNwNbnh9qac1yin9/vdh4bOdU8vRw06N9d0GZxa1j5BBxAlsFpqgN6GlbeL0eg4XAWIT0HjzbpgeegbrRAGYQqNI+AsQaCew8dDUrGGg3z5b90eteJXQGWMcFqrS/jrSJqcauTrG5mW+5ZMkxnWCbBYM04GeVVTvBO8DUh+KZXOx4diwTZqPGr290K/wGJb6UD/j1KP20YEZbSBir6jwB85IHm7MPJMAyoDoZfOLciY4OYBU4LSwLGteFSjSQob4gYN/iYPwWJQyqim8554SjFW7Af5SALXLsgj1mUcMopIA52OhUxts3MoM6kRWRnegfzbBT0R7KMlBV2WQZUN2qNoWXLPxGxXoBVxJfXB2kJcWf68U2tlKnksCEBnC6AlQ00/tGrB/yeaJ07wQ0YP+n0aRmGv4zqF21W1X9Hejd0ryun/h5lSE8BaiVYwGrXRYfKDrFKgEbICPFPllC70s2udPFnx3jgVUO+GBKp38fkFewdCrjDEwHgOkpANZ2pBqaTgOAtTLG2oHocUWgwTav1KzTww+YSQNaIaLUYLvEB02Mzd1kXoNs7NBpJ2L04/7HiRNVwZD6GhX18dPES4Ns9Rw0opupgM8njQccr1ctvpP4mq/YWRC3gHYKOpedbpPAk+H7W+zbmQ4mXrqws/H4wz+dtVBcStrEznljJm4ldoAi1XARJtx1qvH43jFLjccqwVOKXbGq5tMxsUB6/dklXRkoNT4cjpj92zb3nYg5yaqsjW3692UIhyPG/G9XnaaVeRqzq2yYKSaTBAvFZ7OjzBg+eScCE3SjApusPUMmoEZRS9DDX1IRRFlsDLBLOjD7Qalon81vyCznqNNCgCRb7YJluk4R9ZnrtPMwNgy/5DGdAvQS30yR3txfj+Ugig/Y75mZ4te6Fw1KPkkasDZTnfuQ7S8rDuq6vFDoJA2PBrgB/1GA8kDItFaxGXTYAnsbycjllegNFoB1oJsWqyrTIEblecuDUqRYlrdFnXRlAEjpOrTKyqjOdr14FJWCXkCZNZEM7WM2ZctJpccu6UKDJhrAJdJHeahXxo8U0Oz65NV7cPH7c4zndtUNej3wCsWA1efZDiLBq6eGdRRsaQW911g/53bSC2+nzsvGhm1c/7xu/yMTy+Sp7LqV8ejfiG/nocGyzMqHweMxq4T0PDbGKjRhmzVrit9rKEXT/SORiPG72rVEGcKDpIeT0jt1HScA09YSMIMPnYX7ic1rArD2ElN0saHEM7/zfbTSl2O2AdS1oYVSYSmmPcBwThe9hVsX0jbw9G+rFFvq4YqPTIs7HR2TWQ/Gi5se6onLEd3NRMvTv61WbBkPem/pXGMitGvo3FtbBCauSO1c7bSH7oy5BFBLOPo5mtgEGSL3od2xCn8jjZYqEegYYMewsPxdIgr8DqeJIoNM14gp8x+rsW5jzMb9xfHJNR1dBjZHUNE99hukJflsf0OZflO+QelXz0FsnqbJQTaXeDzO9Dfem2F+70YCVSPYZWw9Xjgwv0TvMzBsT3Ae7iJotzIE+zTXnyLRvh9irSE6Y6exvyTgf0AgzkwhmueZzaBI3+poghvwHwVgi0+vR10dB0waDqW2OaUDMTBLNTqA6tLJASut74BmHxf9fBuJYrqu2jgADFfYv+io4VI8Fas2UHqSk4nj01lbjMdsIm2lcQ6sUsEL4Lg49EAFnURWilf2aaF9LMbCoX2cOotFmrln9wpd8NoFmpRVIuohtUsWsv15G7DFsbYaSnGXgd3btMJD1YF1wM6jUHCMnTaCox6PR9jHX1IZMqpudhX+bIHTQLiKrA8K3uNaBNZKRcdS+pvajV91Y2P8frJgo+OfnUUbTVI+NnalJWGsm8CkwfUcwnS4ondzrf2pxWdZpXP9gMY109CaJC6cuIUcalj6+FkH7W+/cIG6fUKFoI0jEAVLaI4m1N/tRPND5jrD0LGxGSgxVsqb06LJV11Pb979Yv4Wcy6wW7dRTCPtex7oJZmeGi5OCrO++sE2LQ2AWSE/IEj43EFYbDKwgHtPYYVxz+93YOtX00gYWINlXUo/69HPswT8lca+dgljikqRU4HG2pN9ThosB0Jh43fQXYNTS1NAfw0vshY8oOlSwFBPQcnXmcuMlgDCEKBJLDunsEt6mIlLVvRjGkG8zfPRBjfgPwrAqjvhSGJVBnOwcKYwzJTL6QLcycT1LsmSsuDDbuCn/V9UkZoN4jq9ZCoVfztbKwZ+cuArn7oQiaGdolHxpcEJpdM9OFidHXWROJzeHwz0nmQVGUqBPsFB7y+jHtM+Sp2FBmBm1llwx4Q2darrVLeCBqsmnVJ9DrLqDTsHkdUQj2xBhUdmlSRDpsBa73UHNmGZpI+fgT32ez2GJ7MMLDigY2aZhv8wBVvYioL7FJu/D5iimUWEbULdVexYCnWNSp+5YEt0/Ju3JdfSD+vET16EhzT7yW/uawb8t41apNhSjin39jPaoQ716j7DY5zQKqCfoH5aEDROvKuvo78/e6SVGWHX/kbBz81MaPdcjf59UTBnp2tC0aGxGaz/HmufYfmGcct3i3aJw/GNrPe3nYUxDza2UP0R3s9dBirSJhozRYno+L8fTcb9KtC9aCWxjqWg8yefdNbREGDBLM8wKTB68O0C/pgGAZlr8gyxO2fFLsbKikQihiaALh0fAH5YZLKzKGMtEZeP8kDImEdr2pxDI6I3wYLl32PuUrqODZTSz7contHOviXLVOk3EwYryRzA6wTx+BdJ6vIC2aq1/dEAN+A/CjBxZY79RjGw4ILSys3+n8SseeYIevl1QOn/+w3hFvXATxdWdODPdcBSOJ30iYbDEcvivVGWHj2PX5iKeqt1wAYsOnBecGI8fZDHvWeaPawf/mX2Y/5Ls8LlwjmmxZSxKX6/29mCd97maDWSWQulJ/uMyokKvHf4dwvNDL9dRZWBtZ+wZMGq3VFqrJ1CNGBdMFOxnvwyvWQhfZ8mqFgiQKfCxPps8wX97zqVbcAMZimdlgmdyry+KVgFv9AS8JttCXaBn1HhJwkH3QoVA2sBYd8DHTuOrW+fNGBtWb8RlXaagFCJfwFAvRrxC+/xK/TnIB6Lt5vBhk7CVgWVhzNFNrkep5KK6ZPDOlTp7x/quJYT9Z0z8gztfUVzy3GaSSqGRtlp+OP+/jinS2NsetYZK+KeM03h1O25pXg/ZuVop70BAAEy5rD7ZW5sLNZhJdIx9iPO2o4Kuqpw31nmdmWVISPJNlSz/5gFdWMEYq92+SZaiFktcJVhLQ8qMDYWS+7RwFnH5YiyKJhonJOAn80109da2wccV/hLacCvlyzgwURGSyvNdlpddyge1NLOCcuAgTrlZGq2RQDmvOWUJcoq9BXBMArLg5bEj45wMys85JUGjO+ujCSh7NYzlCnz5rQNlvX7f2zaAY50uAH/UYATj9H3PWYel3TRnZ9ghZ8hKUHfeVqhZ8IhdTStWQBgzmaTypmvaa0CWLP1B0oqkUMsTrI1v4OWhM4ZDkeEk7AK/CKD9sXRHlcZbu1vUuhenGBaSzlhWLhwBlFCrG0CYpGAuWg6prZas4KB73d7PwHfcua/zhYYa2IKz3be7Tzo5Jyvqf9BK/y0ml8cEw/VCfTY90/7HxnbQHexJaLkr86JLoDbaFSpmBYB3V9XsI/ub2FJaLZFMLAxnAmN0u/Tzl4RsKp8M8j6+UUQifY5Ufvm8dhPKx3vA/w9NHrdloDDGVueH4qNzw7B5ueGaPXcUoy+sbfx+KvreyX094+pk443Lj1BO1HJ0LuVmWR/Y6rpykDtuWQ4s4OZUGS2bh/EhAvtnIV4LN2ebwlyOmm609DK5ZxNB/B2jO2lSw5h/deiwJYWAESgcwxb+4XDEfhjv4HI6pfHVZyD0XRCn9ZtxWEsJkZp318UHbvqZdqP31SklCEcjpi2fLYBfyzQLDHH3jwHraAAcGusFYjRztnYm+L3WlT8ZeghYDBVlRvEPk8wHLFdS1CthvV7iywn0ELjGgCivzVjm+wrKrco9Oskz+g8x2wpE1nPANE58FeSuLYTDT/S4Qb8RwF0KWWAOAM2bnm0OpOeYLDIBKt0M9WiQYEN/E6E66jirpMe/iSf16C47S4os1gr6eJ2EnDvJrQi3cDjou7WKv6ns8yqgU7Qnkgm2EXVcTdRB7ejb6vA+kd1xZruON2swEQiEYtVny5+i40TH8YqVJRWqAOWKLMGq7EeSJv7jmoEUEZSkaCfXAZDtElQ4WeBtB0YJZ9+BuatTa0tpfunxPfgFzoQHhRpCDhJGABmQpAljShbQGf8GSRgUzB7MB2w8ZsmKb+eF00+6P4OuowMFfjF7fpnBjva/1EBvf1woeZXFT6vJ6HP2qtVHaON4eRq+A2dgJ7vtwvMBPsrF3W13ZeuFViCkxFjaCJBF7M2mqzG5ppjOE1w3PTlQqO6bWeJysCYVbxKvZNjAGb/d0FZwNBB0PFfZ8ltxpISaB7boh6n/2EUejT+viggLaoIGq0Vdg4nrPWNugw4pfQzUWfm2sCq6zrsLkCsF8J+T96yVhe8Yr8K9Bxnx65hlgBqTwphdmBsk+lr91nEY3XWpfQcHv85muzVbU0RYSTRI3OaRDzS4Ab8RwF+dRDwq7wvKzT7YflAh1nD1M/Sq+6wpAO1AmODsJMKEc0K5jmwFgTMXqZd+eUJ0VFpwPXyRLPCfjERFFHh5NbmYikUjmAtUblOdNHJe1O7qH7cOeBYLHr0TMx7+AysecpZgEGxnVT4ddCd9K/uLig3gr7rOIru3wlR/zlbaNpVVygoJW9VjF6qQ2c3KP2llUb/IQucdYWz2KKQ9q+zRMLF3e3vXaNCb6nw6wf82QKVfiZepMvO4Z0OZpPgQ2fsYEwJer7+mPsALywmgqiHH7FFt+71bOd1r4stzw/F5ueGYMvzQx05HADx987n1/aslnNy8c/CiTMQALw1zarZMaiDfTsRjys/Nl0dEgkyKMOySODcIoKKNn+BwEVABqM6G7t/a6YnxdmtisBazwrLg6gMhvHceGdODwB1+OAp/fbrtmtONu9XfvwH7FkGrMe+PBA2Am+n7NZ6nMI8K5aJnAtEoEE103BgrRE6a9cUwe/kRCibYiunu+JLgKk7a+MBS4XdKVg7lY6towt7uAH/UQBmRddHg87Svbk8m62bJeZ9itmCVacXGBCrpRpqrRqDHlM9pxM966nS7QFl3rm7C8qwdk806NCZ9ESgCQOd/nsA6NnS/B3mbjrgKEvLsOSxMy3PP766h+NjuHCO2hnJhvCMLp4/3wxwgqGwYYupGyBRsZ33Zmw0Fhq0HcUOMsr4M+fZ2/oBZlC4iAg85ScgerRql8moYfetzr3HgvVwBCiujC6SF8eo6LoCWKzHcTf53hhzoU9r+/FT1MPPAu45AsopD/YZaNLkizlRL+wSzYX/uV2t1kPbHToVsN+qqDxoCDiy5Kmov5cHU+kvrQwZ58wWnedp2iKJ+q7fu6Kb1r48qlKVX/d0NGn3yNDjLQloF0cueKeQeppj+TCFu09V8KBm3/FITpCSiu85YXx9PS9a4WdVdt0iC03KTl69x9LWpAs+YDaYnRpBa6Oa5u/E2E2LttmLDTLUSPEjOZYUZJpPhmC15rqxvqFQHxWso8LTOqDfIUtWMHaqztpX1L7LGKpOW3IXbLHOV2e1txfcY7i0ZzQ53qxWmsVWtqqwE+xjGOEgwXU0wQ34jwIUOaC19iL0tVA4YsmsXdZLTzG333FmwB8OR4w+nAaaFX624My1BPz6PfxssGGZarpQtvOAZmAZ3lcmrTPcBpom6KdLe5p1qw1UGIst+J2iZnqyEaxNvue0o4aOejiC0qjnb8kzFiw6glM8PpttXi+6yu6AXBhPt7LMFmmVITO4ZpR+J6JHotA8oMEPTU3yGX2SrI+fKQvrWtv9tSHa70uFipyI5ok0ABidXQcmpd/cnyUrdPvo+eQISxrp9mDSz8kWa4zWfHZn+7asjGSzh5ON28wWyas5BonGqgHH6y84qwvJfi+2PD8U15/a6h//2y6cY/I9p1XLcagNGE2+q3Bj37/nGtFtKWhAEhPhcMQotKT4vbbOGiLsc1BdB6xMhkRXGnEBvwNmJ7WWDSVgZerxeIwqf24xC/idJazZ+VfGBOu6xLRLdEFZSKyyn+ugwn9i8/i/t3l/NIHlxKYSALYcKOWSRvpFDNbawLMEdCFiKgD662eRG8v7CSaMjyS4Af9RgC0HoostHfEYPsPIMpw+r0d70OtHqOOrdheaAb9mppwNbOxvVwRDxgK6nsbAX1wRHaSYnRNVXdXtIWUVPrpw11Hp/jtAGQK6AkAMl/dqji3PD3VMa3Txz4IK/l324RyDyl5VG5leDkRqBnU0gznKDNDNqneOiUYt35lvvGba8tkHy0zjQ7RY1GVMGH38sb/LqvMnafYTi/rknVDyRRoAzBdYpy9dROln0BWApH8nEokY48eJmj2gtM+SOTawRMqpGpagHo+H9PFbBc+qMoa6uiQu7MDPc06V/hkmrTIZdboBb3uNdhc7nC9gwOgm6mlAtr+kwtJKmUiynwXdugwHwEwIUltgJ+DHDZNloMnMjLU1sDH7zm+WOPr7RrGJVfhLnFH6U5N8xhywr6gcbWPX431nqUUTRfhi9hYAzij9HRub60NW6GJr2UQ0AKhgpRPxbzbO844JuqAxRGmluQZ//Jx4XRURRIyMMx0wFI5UuAH/UQBWodbpwaEZxh8X7zQWfLXSk7V70ejifNqavYbFSn3NwIHdrKWVIZQHQsY5JPk8WgE7PzlsJSqhuhPfaQL65giNHl6Kv0PReXAn5/2ELg4v0OJE01pVC/h5b2oVaCXp3jFLjMcnaE70TCiLJdrKKkOoiDGEdCiRczdHqe/fx8QCaVWf96iWgQXMLMnHFLd1Le2uObkFAHPhCDis8KfFV/jZmHpizPJUvb/ZUsB7GF/aU49hRXt5C8uCxnFE6vsysMoUEwx0OoabSv2VFqaWk9aOLc8PNR47tbd0cfRi83ND8PTwjlj79CBH/fO9SCWfJux01wyi7b4hrgU6+O+ILo62p/D7vEbAvKegwgj0amuyGnntJdMKWf+eZfPVjjwz4NdpJWWgDh8VwZChhaLbVuCLtZXtd+iswFCnBmOXRvc3bfn0vwNK62fuTE71QwBgQaw1LtdwqLI/h4FEb4LNW2z9u0szCUOZuKxYCDhrjRK17759+Yna+1MR4nnEbasqhSuX4eoG/EcVVpDeWB2EIxGikpqYh+gPi3caKv26lH7qFTpj3T4j4K+ToZepTiHiLIn0UQEQUjidZgifGm7tfb7ptKpT/m50qaVHFXTtjACgtcCu0ckkRymRTJke0Neu4EWjKLMmQ8MOji0wl++MjlNUMyRDs61ApNQPQJvSyqozLNQOhsKmDoHGGGhU+EmF3onKPv0b1Mca0P8d6DUzc+N+w5ZMl04PALXTrYkTJuZaX1MAigr3USFYpzZvTPE9UXtLF0cfPB4P/tW7uWU80wGdr//7+7pqOZdemu0ADHyC4rVLujran1Vkv5izBd/EWomWarYC9SetmPRYTkTfWAvaKqL18cZlJ2jvz/7W+r3FxroP0E/YsuLW94uc2SAzMJcVluA0x379ljS+LQFITHSOJUrZ96CTuKHXz8KtVv2CdXv07HWpztTHf21WbClHq7rxaxFZy6AITWuZrYxXfzLfeOxkPUMTxkyL5WiHG/AfRbg2Vr3SxfS1+7AzlqlN1M6CCnbo9gLTm3pvUYXRx6WT4QSAM0mvZ3FFUFuwi0I0ySWSpaUYOTi+r0iFty6Lz4j6q3gOLo5cfH2Ds2pSdeO+s46zPF+x00ww6kzUTNCNVdepcJ3uvVczLTpGFJRWWiyOdGmpbGHJqmNUXVnHaUDUw8/owekp9gEIdRMorbC6ojjpoeT/NmCt1thhbqyq8vnsrQiEwkbyQVd4lVbq5hCXgKqOoS5c/F2ojqTS97f0sTxPpKr45wP9jcfDuuqJXPL4dsEOizWgDvoTseVAKEwU8vUDfmZtx6qyaUk+R/vTlk2n7iKAmfDVdWPiMSFmCfv8+DUIhyNG4ri2gwo/E2d94LtlxmuJVKbZHLQmJ2pJ57ToxovltRIUBESg18G0BCn5ot/Lyb2gm+CxA0sYJyq4faTB/RaOcAQJLbZlXWeDTsPsVLwTq47rqDPbIZHJb8bavQY9S0ewDwDSSDVxZ36Z44mvOsEGHJpt1MVQDYEsF0cOlj52VpX25+nWOv3W1Qm+79xplaVZTK9gV2yhw7Q/nGB1TnSc+mruNizbkW+8nqnLEEgzF1XFFUGDbQDoJdtEPfwlscSDyGNZhd+W77b0LyayCGpGKiUiX3kZSmPnunJXIfYXVyASAfxej/bCd2/st3ttynpMSsBhxIWLQwG392/jaPtuzWvj/Su6YWinRgnN+UB0HEx0zSCCLrvpZKL9sW5PEdbHvM+dVPhTOSZXmaaVMwMVd31lknOWxSU9om1PTtkdIuSXBYxikRNKP0MFqerrtsUBVpcrWqzSZbmx6jrPuBO1qYrQo4UzVsrfAZd+//fADfiPcLAMpcejv2BkAk3fLdxh6X8/GJi8eq9RXXLSS8bw34mJU/Neucjsp/v2pj6KLf8ZzH94wME+BRd/I7I5YaBEEgCPDDVZJF9c16vK5+QETHQPiLbSqCw+ReCrIEx0yEm1ho1Xa3KKsJ30keoylKhGSGFZwJGtE2COsSJLqo4OBTcXb8szqKUZyT6tlgAer081PcWdiC5RNX52DvUyU7S/R9rDS9tDXLg4nHBLv9aO9zmrQ0O85aBf+e/GOV307AKpbsn0tfuMxKsuMxMATju2ataVNNBLRPiPVcFZ3zuD7u94DWHBfh4TzQMSt2RmcNLKxLznAeAAET3VFfBl+iu5JZWWVoKquEjcP/A4+4040IRVdSSveLtvF87hBvxHOJjKaM20JG2VY6dZWRGqU9HeqR8sRWUo8QHv/BObYu3Tg7Dx2SHa1jzVjS3PD8WfD/TH+mcGO8q0uzg8seGZwWhdLwMz7u8XlwDQwfWntqpSdYhvCxhzs36iqwapJG3cV4xAOHrv0Z5AFfjqMaP0O3GmuO6UlgCAZJ8XuxNYMNIF5+6CchzvUHmbVfjLAqE4K0GndPY6NVIMtwRdKr0KTRzYitJKG6vW6wr2AVabSQZRX6cLF4cSfr79ZMtz3arqoYKWgnusu6ZwKx37qMCnk7Vcoq2f1QWWHGZFIuYwM6iDXv/4hr1mn3uiAnFUYT4RnH+i2cZBafm66/e1sRaA5yessbDkdF2yRNB16uFRlbXINVwL8odXdk/oOC5MuAH/EQ4m/KEjOKUCW0jr4sULOlue8wqwTrA0Rs1NRDjwj3VmD1Ii+6f4fQfdDqpZ7XS39/Uogd/nxZR7+6F5nYMTHPVpbVVU7u7AyifNIpZpehnram/U5BIcCw2V4krR5kKwe7WS9J0nig17i5AfE63TXTDSalhReRBhQsl02oP/7YLtpliepuApQ5pA7NHJYrxnS/M62BNLuOoK9gFAu4bx/dCiYMSFi0MJnZvWNKrBGxO09DuY+OTqHnGvndvFuQ4AU5cHgLqaKv8iLHjkn2Ul1o7NNX+u349IJIKcQuZUoDcH3UBEkRlLy2ll+QVu7esUtLBFW8p0wQQTIxGrbktVkjE0CfFP4fFzOlieH+xk0pEAN4o4wrEtN0pxZfRYHdzWP57+pEsLY+D9v/8gQjQ6SCe9YPO3RBf+exO0WmEYqLlod+HiaMZn1/YEALx6cVdHvXR027827DcCbt1EG1WXL6kI4pv52wE4W/RQCyhmAXdJD2d2mgxbD5SatqSaKs1+n9dwJCgsC6CY9ODrWtL1jfVant25kVGhcVpheXioM4FQHieRxM+YBdHfIb9UP4Fy+vHxi+R2mtaKLlwcTPxnUDtseX7oQU/0JwJRNb6qn8NpoLXl+aH4+faTseyJsxJiZfKJxQGCsUQHhWXm2KubdKaJgdenrAdgVsx1UVU2Fk06PP3basf702RvIg5VADDrwdMtzw9WT/2W54di5f8NrDY9i6MdbsB/hGPmhqglE+vD1MHF3eP9nnUUqlWo75BOdE7n+ASD36c/6IjmKKeWUC5cHI04rW09bHl+KIafkHhW/4dFO7G7IEqp1xXbpBXg/LKAQae/uLt+wE4ThTvyoslOJ1R0ii/mbMXkmOCcExEoJtK3p7AcBTFbpxS/V9tisW9MbDEcMcdtp4vIEd312ihkqJORbCQulu0osPyvA9H3dd0prqWoCxd/Jw4VsbPOTWtaHEec4PPrelqef+CAyt2aCFNTa8D0ZL3WjA6NzRYuppKfiJYAxbT7+jnaPlELbIZhXc21s26SmUdj0v716x2nVOl8qorDra3mUIYb8B/hYDYjTnCMIEucSE9+VRTqL+kZv8h3Ijp1ea/mca858TR34cJF4li+s8CwJwqF9TyIaSVq/uZcwxnkQIl+srI7URhmtNSwQ1vOLk2jmgFntKtv9LJSL3ldfDV3m6FDwLcrqMAWp78s3WVQUp0mLaqqUu3xeHAM11ZCvZETQaJWWS5cuPhncOcZxx7sU0C7hlbdFCdJDDpGvTbFuWCz6G85ES1kmD3SrJA7bWWqKnX9XMLGZed+VZ/49bAd2Nrdqdisi0MXbsB/hKM8oLfYtsM/nTnuGlMapRhwfAPt/SktyoULFwcPTWs5TxaGI2aQ3r6x/oJDRF/dnufMaeTsGLsoHDGr9d4Exr/uLWoZAb+Tate0taZK894EKf08lj3h3PGBWgsCwEUOmBYuXLg4ONjwzGDjsdNiy796Ow8M/w6sf2YwPrmmBzY/50xHgQbLLOGcnly15GciTg2NstOq1VrRiZYOFZhmbXElDi1hXRyZcAP+owQHS2U+UYgSDE560UQsBRcuXPy96N0qfpzRtROiuOfbpcZjSrNMBJf2jG9RUoEJ5FGFYxFjyA7fL9xhsBTWE/VnO9xE3ERYhb+BQ9E+AFj95CDjeInQa3kq65V9Wjjaf9WTA43H/x3RRbGlCxcuqgt+nzfhYJN3AkrEGrY6kOTzov9x9aul0FRaxWD3XIf6VX8HnGiy+AUCz/mlAcGWLo42uM0RRwlObVPX0fYT7+qLga/+AcAU8TqccYrDz+/ChQvnaJwdT/tu7MAOjqFTk2xDrO/YBO2RGHq2cJbsZNX0HBLw18t0TkdfuqMAxwnU6u3QhNBSt+dGg+5EhKDSkn3VKnaU5rBSlp7sx+bnhiAcqbpwmAsXLv4ZXH1SC3w6awsAJGQNe7gj2ee12Dk3SyBhXd0QMV6doJsDhoCLIxduhf8IRoTQYod1dSbAdVzDTCx9/CysenIgTmtbNV/RREGrhYloCIy6oZfx+Mvreym2dOHCRXVAZP+ZSLBHlfkTaQmgcNoTyYLrrQfMVgAni74kIi7627Ldjv42EKWD8nBqy1cdWFgNlloej8cN9l24OIzwxLkdqpWOfrhh3sNnHOxTwJ+cq1VVmQ5XJtDD7+LIgxvwH8EoD4RRt0YKvB6gbgIVquy0JG11078D39zYB12b1USj7FTMuN+ZrR8AnNS67lE9cblw8U/jxr5V084Q9Som+51NU19VMbknqqY7EcG7jLQQVFfvZFVF+BJBnRophogXaw9w4cKFi0MZvI2f03aimunJSInNOb/f3bfazssJaIL5ufM7Vfl4rtK9C8Cl9B/RSEv2YcEjAxAKRw7bKsvY204+2KfgwoULTVTVg1jEEHCKk0n7zvyHnVepnVLXeWQLLEzPbK8vOHoo4e4z2+LuM9se7NNw4cKFCy3ccGorTF5tCp8m0oO/9unB9hv9zahKoWrMzX0w4t3Z1Xg2Lo4EuAH/UYDDNdh34cLF4Y2OTZwJ7tUUBMuJ4GCyeo5vFP+ZUxyyFFy4cOHChXP0alXH8twpQ+xIQA+iW/Pbv085iGfi4lDCIXEnvPXWW2jRogVSU1PRq1cvzJs3T7n9mDFj0K5dO6SmpqJTp04YN26c5f1IJILHHnsMjRo1QlpaGgYMGID169cLj1VRUYGuXbvC4/FgyZIl1fWRXLhw4eKoBPVb//FWZwydRCyQDjWIFpiDOjZ0dIz3ruhmPL7YtcNz4cKFC208NKQdAODbm/oc5DM5eGDtrB0c2Nq6OLJx0AP+0aNH45577sHjjz+ORYsWoUuXLhg4cCD27t0r3H7WrFm49NJLcd1112Hx4sUYPnw4hg8fjhUrVhjbvPjii3j99dfx7rvvYu7cucjIyMDAgQNRXl4ed7wHHngAjRsffNsNFy5cuDgSsOjRM/H25Sdiyr2nIUlgEaRCq3pWRf7T29WXbPn3gvaBfn+Ls0XjSa3jHUFEVX8VBnZoiIu6N0WvlrXxwoWdHe3rwoULF0czbuzbGlueH3rY2VG7cPF3whOhUu4HAb169UKPHj3w5ptvAgDC4TCaNWuGO+64Aw8++GDc9hdffDFKSkrw66+/Gq/17t0bXbt2xbvvvotIJILGjRvj3nvvxX333QcAKCgoQIMGDfDpp5/ikksuMfYbP3487rnnHnz//ffo0KEDFi9ejK5du2qdd2FhIbKzs1FQUICsrKr5RLtw4cKFiyhaPPib8XjiXX0TsrarDtw/Zil6tKiNi3o4r7DTzwBEPekPpgCqCxcuXLhw4eLIgdM49KBW+CsrK7Fw4UIMGGAKK3m9XgwYMACzZ4sFJ2bPnm3ZHgAGDhxobL9582bk5ORYtsnOzkavXr0sx9yzZw9uuOEGfPHFF0hPP/g+my5cuHDhAnj90hOMxwcr2AeAl0Z0SSjYF8EN9l24cOHChQsXBwsHdRWyf/9+hEIhNGhgVTBu0KAB1qxZI9wnJydHuH1OTo7xPntNtk0kEsHVV1+Nm2++Gd27d8eWLVtsz7WiogIVFRXG88LCQtt9XLhw4cKFM5zbpXFCysouXLhw4cKFCxcu4nHQe/gPBt544w0UFRVh5MiR2vs899xzyM7ONv41a+YKKblw4cKFCxcuXLhw4cKFi0MXBzXgr1u3Lnw+H/bs2WN5fc+ePWjYUKxq3LBhQ+X27H/VNlOnTsXs2bORkpICv9+PNm3aAAC6d++Oq666Svh3R44ciYKCAuPf9u3bHX5aFy5cuHBxNOBotIJy4cKFCxcuXByaOKirkuTkZHTr1g1TpkwxXguHw5gyZQr69BErI/fp08eyPQBMmjTJ2L5ly5Zo2LChZZvCwkLMnTvX2Ob111/H0qVLsWTJEixZssSw9Rs9ejSeeeYZ4d9NSUlBVlaW5Z8LFy5cuHDBY+1Tg4zHG54ZfBDPxIULFy5cuHAhw/bC7Xhx/ovYU7LHfuPDGAddSeiee+7BVVddhe7du6Nnz5549dVXUVJSgmuuuQYAcOWVV6JJkyZ47rnnAAB33nknTjvtNLz88ssYOnQovvnmGyxYsADvv/8+AMDj8eCuu+7C008/jWOPPRYtW7bEo48+isaNG2P48OEAgGOOOcZyDjVqRK2gWrdujaZNm/5Dn9yFCxcuXByJ8Hg82PL80IN9Gi5cuHDhwsURi+LKYpQFy1AvvV5C+z/818P4eePPAIA/d/yJX877pTpP75DCQQ/4L774Yuzbtw+PPfYYcnJy0LVrV0yYMMEQ3du2bRu8XpOIcNJJJ2HUqFF45JFH8NBDD+HYY4/F2LFj0bFjR2ObBx54ACUlJbjxxhuRn5+PU045BRMmTEBqauo//vlcuHDhwoULFy5cuHDhwkX1IL88H6eOPhUAMP2i6aiTVsfR/qFwyAj2AWBL4ZbqPL1DDp5IJBI52CdxOMKp/6ELFy5cuHDhwoULFy5cHM0IR8KYtn0aOtTpgIYZYs02FRbtWYSrJpiaay+f9jLOanGWo2NM3z4dd0y9w/JajaQamH2Z2Bb+UIPTONRVFnLhwoULFy5cuHDhwoULF38rIpEI3lz8Ju6adhfO/O7MhI5Bg30AuHfGvfhjxx+OjpHkTYp7rThQfMT28rsBvwsXLly4cOHChQsXLly4UGL85vEYNnYYdhTtSGj/J+c8iQ+Wf2A8ry6i+W1TbtPetiRQgneWviN8b2vh1mo5n0MNbsDvwoULFy5cuHDhwoULF4coAuFAlfaPRCI467uzcO3EaxEMBxM+zgN/PIBNBZsw+IfBKKoscrz/d+u+szzv/HnnhI5TFby68FUs3bdU+F6aP+0fPZd/Cm7A78KFCxcuXLhw4cKFCxeHIH7f8jtO/OJEvLn4zYSD45m7ZmJ3yW7Mz5mPE744AXN3z3V8jPeXvW95ftLXJyV0Ljzunn639rbVUYH/Zu030vd+3PBjlY9/KMIN+F24cOHChQsXLly4cHHEIBAO4NJfL8WXq76s0nEe+esRdPqsE4orixPa/5UFr6DTZ53QZ1QfLNqzKKFj3DvjXgDAe8vew0lfn4SKUIXjY0zdNtXy/Prfr3e0/7q8dXhj8RuO/y5FOBIWvu736JvGnf3j2VU6BzuUBEqqrc3gUIIb8Ltw4cKFCxcuXLhw4eKQwKI9i3DKN6dge+H2hPYvDZTi7B/OxooDK/DC/BcSOkZZsAydPuuEnzb+BAB48M8HHR8jHAnjk5WfAIgKwvFic7rH4LExf6OjY8zYPgNj1o1x/LcpRq0eJXzdSXBcUFEgfL1fs36JnFIcFu5ZWOVjjNs8Di/Of7EazubQghvwu3DhwoULFy5cuHDhosr4Yf0PcdRvp7hqwlUoqCjAkB+HJLR/r1G9sKtkl/E8ker8TZNusjzfkL/B8THKg+WO9+Fx1fj4JMGvm351dIzbp94e91q9tHqOjiFjFRQF9FoMCioK0Hd0X+F7o9eOdnQuMlw94WrsKt5lv6ENvlxdNVbIoQg34HfhwoULFy5cuHDh4ihGXnkeun7eFQ/MeMCxxRk9xuOzHscbi9/A8LHDpRVdFbp/2d3yfN7ueQmdC0Wfr/tg+b7ljvZZvHex5fnO4p14ZcErjo6RX5HvaHsegXAAS/YtiXt95f6VVTouAOwr24cf1v+gvX2Phj2Erz81+ymt/SdvnSx9b0P+BszPmW97DB3hwvV562236VS3k+02RxrcgN+FCxcuXLhw4cKFi8MUJYESLNu3DPNz5qMkUJLQMfqO7otQJITxW8bjtim3YVP+JsfHOFB2wHi8sWAjTvnmFEf7b8jbEFdJvu7366qlp/qycZc52n5wi8FxrzF6vg5ySnIw8PuBca+fO/Zc7WPIEiaL9i7Ckr1LtI8jw+OzHtf+bmUV/glbJmj19n++6nPl+9dOvNb2GJWhStttknxJyvdD4ZDtPXJ/9/tt/87hBjfgd+HChQsXLly4cOHiIKIqQW3vUb1x+bjLce3Ea9F7VO9qOZ8Pl3/oaPvSQCkuH3d5lf6mrCIejCRuI8eQ7k93tH1WSlaV/t6Z350pfH1zwWZsyNNrD1DZ510x/oqEzsvJ32DYVrgNz859Vvq+TgtHm5ptHJ2XCDotEvtK9ynfv2HSDdhUoE5mdW/YXfn+4Qg34HfhwoULFy6OciSi+szj4b8exl3T7sLUbVMT9nkev3k8hvwwBGty1yQcABVUFODycZfj0xWfJrQ/Q6fPOqHTZ50SoiVT5JTkSNWpXRz+2Ji/EXtL9ya8f0FFAZ6e8zQ6f94Za3LXVOOZ6SMSiSDZm2x5rW2tto6O0WtUL5QGS6t0Hh6PR/h6WbBM+xjbCrcJXz/9mNO1j/HCvBeqra9cBN3Pkyhbwwl0frOhPw5Vvp+ZlGl7jA51O2ifkww689S3675Vvi9qHRg7bKzleZo/zdF5HQ5wA34XLly4cOHiICESiVhosIkeY87uOcgrz0to/2X7lqHPqD7o9FknPDrz0YSC09JAKX7e+DOmbJuCO6fdiRO+OCGhc3ngjwewvWg7RvwyArdMucXx/ntL9+LK8Vdi2b5leHnhy1iXt85x4iCnJAfDxw43nt/w+w2Oz4MdZ+SfI3Hmd2dW2a86FA65SYNqRl55Hj5c/mGVgvWckhwM/2k4zhhzRkIJqj0le3DKN6cYweWIX0YkfC5VQefPO6MybKVL/7b5NxRWFv6j51EaEAefukm3UDgkDU6dCN1Vh2hb57qdpe/pJkaqIxFrp4HgJJkiw5UdrrTdpqptGeFIGP83+/8sr7102ku4tcutltfOan6W9BiiRHS3Bt3QumZrNK3R1HjNDfhduHDhwoWLIwDV0RP64/ofMXHLxCod485pd6Lft/0wa9eshPafsm0KOn/eGTf8foNUAdkOl4+73BBDGrthLOblOBfJGr95fEJ/m2LF/hWW5zN3zkQoHHJ0jKvGX2Wha17w8wX4fv33jo7x7tJ3sbHAtL1anbsaU7ZNcXQMIErpZUFGopW6tblrcdX4q9D1i67o8nmXhIP+mybdhHum34PJWycnfIzSQCnGbRqXMHuDwelvKsLivYvx/TpnvyuP63+/Hq8teg1njDkjof1zSnIw9AczuJy6fapiazGmbZ+W0N9miEQiePivh+Ned6riLsKa3DU4+euTq3yc5+Y+p7VdJBKRjoO698/c3XNt/0ZVoXuMuml1pe/pBNnhSFhppZfiS9E6j+t+v075/rJ9y7SOo8LHKz623Uan/14lyjd129S466NHgx64pas1Maw6Bn8O9dLq4c3T3wQA7CjeYbzuBvwuXLhw4eIfxa+bfsUnK/SFgkQorizGl6u+TNgiKBQOYU3uGuwt3SutwNghHAnjkb8ewXfrvquSwvCUrVPw7NxnEz4PAJizew46f94ZP234KaH9w5EwJm2dhMdmPYb7ZtyHQMheOZhHKBzC7VNuNxb8d0y5I6FzuWvaXQntp0J+eb6j7VfsX4EnZj9Rpb9ZVFmES3+7VPi6E9BFGwNfFbKDKEHg9HsWBQX3zbjPcbB9y+RbsGjvIuP5nF1zHO0PRHuGZ+2ahUlbJ+Hu6XfjrO/kFTAVeo3qhf/8+R+c8MUJeHrO0wkdY3PBZnT9oivO+PaMKtHXrxx/JZ6Y/QQmbJmQ0P5vLH4D6/LWGc8TTejQqvhd0+6yDTh5pPpT416T+Z2LMGHLBPy88ee410f+ORJrc9dqHaO6mCOyHu1Ra0ZpzT2PzHxEWlkf8csILWu9rUVble93/lxeddeFLuOnIiyvzuvMX5+t/AzfrftOfnyN6n9OSY7tNtVhY6eTwOC3mXHxDDzS6xHLa6qkgEgwURSYv7boNWkykD/+Z4M/Q43kGgCAC9teaLyemWzfonC4wQ34Xbhw4eJvwIa8Dej0WaeEF8ZAlMY48s+ReGXhKwln4bcUbEGfr/vghfkvoN+3/RI6xmnfnoYRv4zAGWPOQK9RvRI6xrNzn8VPG3/C/83+P1zy2yWYuXOm42OEI2HcNf0ufL3ma/Qa1QsP/flQQufCFmyPzHwEc3Y7D6DeW/oe7pl+j/H8naXvOKZFztw1EzN2zDCeV4Yrq0Vs6/yfz3dUQRX1ub+//H1H7QHXTLhG+PqDfz6ofYzdJbuFr1dHpfJgYPn+eAuwiVsmOr6P95VZBagmb5NbW8mwv2y/5fme0j2Oj8Ej0f5mplC+t2wvRvwywrFVWjgSxo/rfzSe3z/jfsdBdigcihMZu2vaXdVS/b3+9+sdbZ/kjVcUf26eXkUcAJ6Z+4z0vVcW6lnIVQdtHACKA/KAXPUegyhxQTHkhyG2xxB9n9WNuTlztSzk6qTWkb43ao19Ukf391NBp6r+8sKX48YIp+jRsIfy/vll4y9xAXvt1NpoVKOR5TWV4B4/dt7d7W6kJ4mFGGUJaL5FpUZSDeNxdnK28djrOfLC4yPvE7lw4cJFFTF712xcMe6KKvUvnvfzeQCiC+M/d/zpeP+dxTstlkaXj7scC/csdHSMQDiAc8aeYzxPlFZcVdEyID5AcLKoZeAXjb9s+sXxMR6b+Zjl+Q2/3+CYLfD20rctzz9Y/gGGjR3m6BgiVWOnv48osF+ftx6PzXpMsLUYLy98WXgMJ+0B5SFx9e63Tb9pLyQnbBZXal+Y/0Ic1f/vxC8b5deUbiIlEolIA4LtRdu1z2Vj/sa418asG2OrME0xZesULbsrFcKRMJ6Y9UTc606DhNzy3LjX3lr6lqNjPDrz0bjr22mQnVchTmYlUuWvCjbkbXCUFBNhSEt5EKxT3QWAimD1BPyqv5cou4xC9rtR/FNUbDsK+4KcBcoExtJ9SxNmmFH0GdVH+f62IrGAIY/+3/bX/pv9m/XHX5f8ZXltfs58JXviob/EyfndxdZE7zljz5FeR6c1Pc3y/NqOzsc1vh0p2WcKVV7T8Rp0rdc1jnVwpMAN+F24cHFEIRgOYuGehbhjyh0JLzJunHQjluxbgpO/Phk3TbrJ8f6PznzU8vzWKbdifd56R8cY9P2guNeunnC1o2MsyFkQ91qnzzo5OoYITntwRQGKU6Gs8mA57pl2j/2GCgTDQfy44ce41xPpWechq1DL0LFuR+HruvTacCSM5+c9L3zPrlLGoOp1rC7oJjHa1pYrgouo/jwikQgen/W49H3dvnPZwhTQ/77Gbx6PVxe9Knzvs5WfaR0DAIb/NFz4uhMRwbum3yV83cn9N23bNGGbg9Ne/tNGnxb3mlOmj+61rUJZQMzG+acF6lhSWARdtkGjjEbS905qrCcUKUvYOYHdvKJT4beDjq2bTkXbDjrXdfOs5sr3r5koZj1RPDJTHVjqfN7iQLEyIS+yIlzwr/h1gRP0b9Yf2SnZ9hsq8MKpLwAAOteLTxLIdHHqpJmMCZ498dWQr7T+Li9MSQP+7JRsfDHkC1zc7mKtYx1ucAN+Fy5cHFLYWbzTcQ8xQ1FlEU744gRcPeFqTN8x3VHWWoZExNTGbhgb99pHKz6q8rk4haza4YS6+u7Sd+Ne6/pFV0dVf1H1uyxY5oix8NScpzA3J56664SOuqMovr8bQJU1EpwiEolIKYO6rQEzd87EN2u/Eb53+fF6XtjVVdlTYUvBlr/9bwDR3vAf1v8gfb+qVW4A2terKig9qYleEKZKqlVFVZ7BiVAd7XWnGPLDkCqzfzrWESe+ZOCt4xLB9mIxy6JZZjPtY4jYFwBwfO3jEzonHrrjmmq8qJdeT+sYiQqGMujMJ4UVVU+mZCVn2W6jk1iwS9zpKOhXh6e8HXj3lg51OuCuE++K207FUOMD3OVXLUeKLwU9G/ZM+Lxm754NIFoRTwTXdLgGQ1pFmSnHZB0T974s4VI7tbbx+EC59bvpXK8zBrWIL5Lw4O8rv8dvu8+RAjfgd+HCxSGBfaX7MPC7gRj0/SCcOvrUhDL1/II/karCfTPuc7yPDhK1TKsKQhFx0KAbVO4v24+3logptzdOujHh82JwwliQBVHdv+yuvTiWBdlO/Jn/2vmX/UY2eHXRq/hi1RfC93Qr4j9tlNNBv1qtV+2ojgq/naXgm0vetD3G/Jz5uH/G/VU6j71l6iB48d7FVTo+ANw8+WYtps7MXfKq9a7iXVrfu5342D8JWc9/IBxwxFgQYcWBFba2YRR8AOMUWwu3SllbTrzRZeyL1bmrlX3IutBlp6nOWecYs3bOUjJjANiK5em0dlSH9ZtOIP7i/Bctz8efH+8eokp0VoYq45wJ7u9+P+7rbl0XONU96NesH05tcqqjfWqm1rTs/83Z3+DajtfGed7L5nlA/lk/GviRZT7sVFfO0HhmjlUnom2tKBvr1i63olcj55o+lN2WkZSBb4ZaE9c1U2oK97MTx1W5IjDwrEePx2O7z5ECN+B34cJFtSAYDmLpvqUJWzadPuZ07Cox1WITEalL9cUrHsuqUyJ8t+67KtusySjZA5oPcHSc+mn1q3QeOSU50oBal7r65Sq5F7HTFoWqQiWi8/Fye0sgQL5I+++C/2L1gdVax7hlstwbXtRCIYKq//OMMWdo9d6qrlOdShhQPQH/gDHq6/qK9lfYHuPfU/9d5fMYs1ZuX6ULnXaKpfuWVulvTNwyEc/OfdZ2O12F9apAlymgUtP/YPkHWsdQJbLsbMMYVGwC3Xvv7B/Plr5325TbtMYBu7np9DH6CUQZluxbYrvN2ty1+HTlp9L3J22dZBv06/x+fb7uo7w3IrCv8G8u2Gy7DUWvhr3wYl9r8G7HEuBb6QCgaWZTTLzAOlaqrnuRDd6gloNwVYerLK+p1PN5XNvxWrzW/zW8PeBt/PsE/bGOBdYAMH37dADRAHXChVa9E9WaqywkT7TQ31QkMgpEg2yeSXZl+ysBRB0mhrUeFre9HSiNHgA61O1gef7b5t+E+9klWcZtHqd8f97ueZZWq6kjnNtoHs5wA34XLlxUC+6edjf+Ne5fOOGLE6rleM/Pe75ahH4u+PkC7W1fXhAvYAZE+xN1rddklYwnZz+JbYV6AjrjN4+XViyvn6gnUHXmd2dK39Ol4cr6zAHAg382M35Kk1Ok78mUeikCoQDeWPyG9P2Lfr3I9hh2lTudvk0dqH47BpVgUWFlIT5arm4hCYQCtvoUOloNwYg6wTdv9zzbxIIdE0enciPqBeVhN57oJEA25G+w3ebsVvKgEtALFnQ+sx3sxEJ1x4Gu9btW+Vyqg9JNRUx5XDPxmmqpIuuMA1TZW4aqKv7fMfUO26Tqhb9cqHx/Q/4G9Piqh3Kb1jVba53PlsIt0vdEbLyxw8Zanr+88GVbJgfVIzi16akY3HKw5X1aEBBB1EoHxPvVq44zY/sMy/NLjrsE9dPjk+864wDDgGMGGAlrXvBVBVmSjP881O2FIhgO4qX5L2n/PREW7rW2MS26YpElYOevn4JK+zHFbhyWsSEpu4fS+xmGtVEL5/KsOt2WlyMFbsDvwoULbC3c6tjaiKLTZ50wfcd043l12ButzVsrFHmS4d7p9+LpuYlb4AHqIEqkZi6CbNEBAEN/HKp1jAf+eED63tycuVXyoAeAubvnav1GqqC+qtRap8ivyJe+1zSzqe3+by992/C8TxQ6FdHqsriyA7/o4yETjWP4eePPtovWnl/1VLbW6FyHP238Ca8vet12OxXS/em212t19PduyrdXv9dpl1BRbHUQCocwdZu6+mSnJ1AZqsStU25V/x2N83x90evKz6xD6S0PluPf06rO4rCDEweEqkCHBmw3PuqwSara5qKDhhkNLc9PaXKKsAq9LlfOlOM/64QLJggTCSomxwU/X2ARPpUlx1mlWwfTLoqO97yWzS2Tb5Emu1YcMB1BMpMz8XDvh6XHl2kN8YnDJJ9pFahyVaCoCFVY2scykjKMx/zYL/ssj818zDJn3XnindK/161BN+HrPGuStz3k5wcdhqedc4DoOxq/ebylZfPHYfHiu7VTrEkA/tzoGvVohBvwu3DhAmf/eDau//16fL7y82oJ1lX2LCLsKRH3iOr07DH8vvV36Xu6n6lGsrxyIxN8o5i9a7ZUOb06kVOqZ7ckw0sLXsK7y+LF+Hio6ICtsltp/S27/k6d32ZD3gYljVYn8Pxw+Ye221QHqoOVwtsPiaCr5i+DjohkZbhSSWHXTW6oaMc62Fa0zZb2r6P5odpmT8kereouX3Xk8dnKzzB+c3zfsBN8ufpLfLla3k4D2OtfFFUW2f4dnd/PjvLdIquF7TFGrx2tbAuoLkzZ+s/Y6unYrNqNAzptO/vLndke6owbPGiAlpGUgXcGvIPrOl2HJjWaWLZTVcWX7rWOEUwZ/vxjz9c+D7717pau0dapEW1HWF6/Y+odWsd7qNdDBktGxACTadPc1NlkPdndQ6eOFvfk833zlHnC09ll6P5ld8tzvs+dolVN8VxMbWs71OmA6ztZ2YH03l22b5kwcbC1UK0l0r5Oe8tznXH4jGPUgqGiZBktgvRt2ldY4aeJFSDqCiKbJxO5Vw53uAG/CxeHMcqCZTh37Ll4e8nbCQfqdL+XFrzkmJYsmxSX7F2itX84EsaA75z1tzuFbmCiChxlGXAKVX+3LnQCOTuhNB28vcSeWqj6PjYVbJImahjKgmW2Tgnr8+21AFT2VYBz/3oRVBoBDDr2VdVhC8VX3XhsyNuA95a9V6W/oVsNVV2Povuqf7OqO2OIoKrOFFQUxCUVrulwDU6ob20vUo0Doh7Wzwd/HlcdtAtw/7vgv8r3dfDbJnEPqxPo3BOjVo9KWHOFQSfBVR22lzrtFm1q/f3K6QDg8/pst1G1F5QGSjHw+4GW185sHt/GM7iFOrlEcU6rc/DSaS/hmVOesd+YgDqUsGvG6/FiwgXWPnGVDR2fDKiVWgsA8H8n/R8uONa+pY4P9ideMNEI1h/u9TC61utqeV9nrcNXppdftdzioPD1mq+F+6nGu0kXTtJqZeNFLqkTRZ9GfSzv6Th/fHfOd2iR3UL6/hervrBdN/RoGN/aQdugAuGAsGXGjs3CV/xfXfRqXCsY3w4pUuanGLthLHLLc6Xvd6nXRfj68DbDLUyI4kCxdD7OTM4Uvn4kww34Xbg4jPH2krexuWAz3ln6Djp/3tmxRdLmgs1x1XgnVmmAfGFplxlmUJ1zdVgwAXrVeUBdjdahv1aVygtUT4W4OjBv9zw8Necp5TZ2iRodIbULfr6gyv7X07ZPs10E8hUrHjqJFp3EkUqhXRd2i0q7BAiD6jvhg2EAeKXfK3GvqX4b/vvoWKcjHu4lp8DKUCullvHY6/Fi3HnjHKk//+eP/2BHsfUev6f7PXhnwDuW137a8JP0OxH9/un+dMy42Nof67RlIzM5EyN7jnS0z+rceOE4UcuCyr60KGBf4R+3eZxQpMwJftr4k22bQ700+15Zu/tXZwzXSV7onIsdaFABADd0uiFuGxU77ddNv8a9NrzNcHSoYxUv0xHDYxjccjDS/Gk4t/W5cWJ3Kuiy6GTzUjgSxoY8eWuQzBrWcg5cYplS1n1eHx7q9ZDlfZ12Mru/KwsaVUndhhkN8dTJ6jkRQFx7JK08t6vdzvLe1ROutk0S80E1j1UHVuHiX9Xe8X5vvP3c3d3utk1029nW8QmBSVsn4YcNJvU+EongxC9PNJ7/MvwX4eehyvw5JTlCK18G0dwFRO/LX8+z3ls0UejzmIk6HX2aIw1uwO/CxUHCD+t/QKfPOmHcpnEJB3n8wnDELyMkW4pxw+/xCxWnkFUKqQCPCqo+4urqE9fpvb5y/JVKGq1Ohcmp7Y4IOsJT1ZEUaJndUvm+rnK2CiqhJwqVZoEOZu2aZdtG8k9ZZckshRjeXWptpWhTsw2+GGwVE7ITwhNh/Pnj4+yaVNcs7zl+X/f7cGqTU+MSIyoHBD74/eCsD9AgowE+PMtZ+wStmF7f6Xo0y2omZArIFmmyJAtPn/1oxUfSHuAw4gP+mik14wKHlQdWOqqKB8NBXHb8ZXiw54Pa+4hwQdv4SumCPXJlepGVmiihM3vX7CqdFwDbNiaV+CfD5kK1irtO8Gt3f67JXYN9ZeY4UD+tfty9ZwdR29a/T/w35lw2x/KayoZVlBg+tcmp+OZsK21bFYzxyR56nerSxgGrErwKsu/2+/XfY/K2ycZznqmgkwDlA8BUv7pvXOf+4+ndgHW9NOAYcbLaLvi2+273lu7Fc/OeM56PO9+qHH9M1jFxY8GivYuUxxQF6/wYa9cyIxo766bVxWeD1LaaOusePrFKxRl59gc/7zB8OcS69lJp9qgSIPzvQ6+Vc1qfY76ewBx7uMMN+F24SADhSBjhSLhK/e7M+/Y/f/7HVklXhOt/vz4uk0xFb3RQVQ/SiVsm4tqJYqE7O4EsBrtMvK6nuAo3Tb4J83PmK7ex8+nWseOyC6J1oBPwf7LyE9tt7KBr3VYVqCZty3aKSmV1ga+siKBaNG0q2IQ7p1lFj2ZcPAPzL7deVyqmQCgciusd7dagW5wK+sTNE7GzeKft+VI0zWyKF/q+YHlNtXilVfUG6Q1wVYerkOpPjauQnNFc3m/JH59V5no16oVzWp0j2iUOry16zcKsYXT2i4+7GLd3vd2yrZ3YEw+vYIkjs5/iF8RvnfEWGmQ0iNtu7u65ePgvMYtBFIj897Qoxb8qrhbdG3THdR2vi+uXVSn58+Pvgz0fFAY5ToUsnQbIQHyweMGxF+CN062OGcPGDlO2EPG04J+G/YQfz7UKd9klGPmE+N6yvehav2tcn7gKN066Ufg6H4So1ga8/snyq5YL52JVFZJPttHfe+ZOPZbRxvyN2ra1ssr3k7OfNB4PbDEwLqlE7fj4hCQDP+fxdHw+2aPjmKMSGQTk6xO7pJFdwE8tNzvW6SgMcC9rd5nlOS/CFyf6JwhwezXqJa10iyBbM9iJv+oE/Kc0OQXZKdnGc/od8QlWWTtM86zmSlFBClECxPjbHCt0bo65Rqb3THVY0h5ucAN+F0cdIpEI/tr5F37Z+Iv9xpL9u3zeBV0+74LOn3e2DSRFENHYnSqvi1T1ezbs6egYsv77Kdv0xI/um3Gf9L1Rq0dpTcx2Aa6OCJ4OHVuWmNDFzJ0z8cEytYCVznlsKlArgfPfR8+GPfHsKVbf7vk585V/q9NnneJe4yfTRPzE+QAMUC9KRQuS2ZfORoN0ayClsjETLZyZD7ATUGulJjWaYO5lc9GvaT/LNiN+GSG9HkUUw9qpteMWTHdOuxPL94mDyjm758S9Jkq8FAWKMOj7QcJjiPDz8J8BxLctqBgydPFDe075xZQsIZdbnotLf7vU8hrdl3oiqwJTXkyRXdd+rx+DWlq/A92gecqI6Pjl9XjjKpg89Z+BDyr6Nu0rPb7M75lPgLx02kvGcXi7qhfny2nXJ9Y3KbBNajTBh2d9iOyUbIwaMkr591TvXX785fB4PFXSWHisz2PoWr8rzmuj11LCwN9TT5z0hLB6LUvobC/aHmdBVz+9flzP/tzdc6XjomgcObnJyQDivdfHbVL7eVOc2/pcAPH3jcomUFfAUDU38vf2MZlmX/SJDU60vCeriA//abjlOV+NptCxlBUFjzRYbZYlru7yyQQ+KOTbMERtNfw8dPoxpyvPVaSBsr9sv8UyU1T9tmszpPOMrKDCv85/b7zonwx2RYqTGp9kPBaJ3AHxCQx+zUbXKxcfJ28boPs1rtHYeOzEXlS3hVOlYaSq8NNzbJiu1sk5EuEG/C7+UVSlIr63dC++X/c9rp14raMJmWJBzgJ0/rwzbpl8Cx766yFL9lkXvMiY00CyNFAqFEepDg/heTnzMHHLRO3t+Z5Bhrum3aUUTdHB3Jy5OHfsubbb6XxuFYWPJWD+Cby+WG0vxi9c/rj4j7ggbNjYYdIqQmmgFOf/bFU2frHvixYqGoNT0TZeodcpLmt3Ga7vdD2uaH+F5XUnPc3zLp+HGsk1hJY6MvCZ+I8Hfoz7e9wfRwFUYU/JHgvtdGfxTqQnpQv9xZ2yDUSLusvGXSbYUkzlvalLVBXaTmNAhlf7vWowS7JSrMmDmybdJKxkBMNB7aBDFlS+sfiNuNfod9G7cW/jMe2dpBDd+5SqyrcF6VRlOtbpaCy6PR4PRp892iKCKFPQV1X27GivDPx3dWzNY43HdVLrWN77YtUX0nGNBsPFgWIjAOIDIVlCZ2/pXjw681Hhe6+f/rp26xE/z7J+3sf7PB43DsgQCAWEmgQiKvk3a8RK5KKkr8hRZeWBlVI3DtG18+RJ0eo0L8j6nz//IzwGj7NbnY2nT45awYoSGDIR1/eXva91/Gnbpwnvv3AkjCE/WK3LqFJ79wZWhXcd0cTX+r8WV42mSeJRa0bhnaXv8LtZgjRRJbpNTTMpIwtk7QJcXmBN1CZAmYBnHHMGjqt9XNw2dtXs/t/2N+bwu7vdHZc4AexFZunn1dVU4nWQ+HWEiGkE2Kvd0yQITURQ8NftxoKNxuN9pfss3vWP9H5E+reoFgQtjDgprMnGMz5ukH0WIP7zsIT6iv0rLGuA20+IL14c6XAD/iMcy/ctx82Tb1aKqtghGA6i02edcOo3ifcn/7HjDzwx6wmc/M3J2FKwJaFjnDHmDDwx+wnMz5mvPSHz4BXoE7Hq0s2+yiDrE1f1/DmBqupOsa90H1YeWCl9X+Unz2AnrCWrplHo2EepBADtvMQZaNVMB/d3d+aBHAqHsL3Q1DPwe/yolVpLKGIm65sV/XayzLxMZV/EIPhp2E/CbXWvuYd6PYSRvUbC5/WhdbbVX1mVsOEX2axazC/gVMJR/PGZ5VOXel20BJQAubjgWS3O0tpfBL5vUQd8tXz5VcuNRajT642BVjT44GBN7hqhn/t9M+7Dkn1LtI7/66Zfhf3gtBIGRDUAKGiQv6d0j5D1sKvY2t/53TnfWRSc+WqNjqbHiOOs9Gy/1y9NOFCoruMTG5yoJUbIJ7/odT6szTB0qmtl3sgCflqlVgUNsmTbw389rJ2IG9pqqPD1faX74uZZllDyeX1x6uuyyvptU27DpK2T4l5vmNEQ351jvYZqJIltURfkyLUKeIgSUUD87/vL8F+MwOHtM+LHUh3GXeMajS1JLr7FQCaAe9FxcvvH1/q/ZjwuDhSj25fx7jAfr7DqavCidg0zGqJfs37G85sm3WSbwBcF69d3uh5Xd7jaeC6ac+gYKlpP0NaNjQUb8erCV+O2Udm/AvGJruzkbMvzUDiElxa8ZDznW5uM/QjtXOSKQCFLDvRqqF7z0PtAtwWJdwzg712ZloOI5Wl5n9DZRcKSQPxcTBM4p48xWRIqlwYeNHHUu1FvxZZWyJhT/DipqzsBmHMiZaM91ucxy7VwtMAN+I9wXDbuMszcORPn/Xyeo8ovw8r9K3HCF1Fabn5FvmMVeCAa7N825TZ8v/57FFUW4cE/qyZexFAdfvE/b/xZW00eiFKoRNU7J8r2lHpHcd7P59nSvasTp485XWndRHt8Zaiqiv78nPla14OKyivqQRUtzptmNtU+rxdOfQFXdrgST/R5Qnufc8eea5lgGa2tT+M+ca0W8/eI20D+3Gn1d76u43XGgvLN09/UOo/CCquq+qQLJ0l9evuOltOWKajgHf9ZVKrGqw6s0jq+KtjiK6+0Ss6rZeuCLZCbZTbD2GFjLe/pVJGvbH8lTmlisnQ+GainqaAKws5ofgaeO/U56fsy0Hu4fnp9NM5obHlflFDjW3b4lhGKdXnrtBKsV3W4yvKcrzKKxk0+yLBjOei0CIlYFPQaElWmA+EAFu1RC2fZvQ/INQ3Y408GWa+T9Xnx1cJPVnxiK+LFMH37dGFLjd25UqFVWdJBqL9Bplyewi5jgszeLRcF5Kuwx9Y6VrgdnxB8/0yzQj7zUr1+df7eo97s6UnpcVocOraG/HfXplYbS6Atg6oP/PRjTre11qN992n+NFza7tK4bXiNBFmbET2OCLyAHg86Z4n0AHgRz49WfGR5PxgOWlwLBrWwb2X6YcMPlvUfz2CQKcvT1rFJWyfhy1Vylpgs4K+Xbm0voEl+IDFbVn7MnrVrltZ+Kp0kKlTcpEYTaXKbp9zLkqqqtjse9B6wu34oZFoavDaHji0mw93T745rfagOodLDEW7AfxThvhn3OaaNX/LbJZbnp3xzisW3VQe8gMzKAyuxMX+jZGsxRNZQ5/98viM68ffrvhe+fvaP+gPZlePFvcNXT7ha+xgqWtmIn/XEg/7a+Zf230sUdEEkAx+gOoWoHUKUiVYFlbwYW8+GPXFh2wux6Aq9RbMIbNK7oO0FBmXTDnw2//lTozRUv9ePjwZaFzkySyCKng174q5udxnPT2t2Gv51/L9s9+MXk1Q1nq9AAXqJMzpBZqdaM+MyKnRlqFI7ySgbl4LhYFx1nv7edhRNEe468S5LL2LrmlbGwm+b7T3Q+Ypx94bdteyn7MYrXttA9L3wAR5VQfZ7/fj1fKvonp26+VnNz4prGWHXLsMfO/5QHoOnqwPAZcdfZlvd4RPIdgmc//zxH9vKqyj5eqDc7PkUXe9Pz3naQvcUoW8zdXKssLIQQ3600qz5oJgPRESB/SsLraJntA+Xx9gNY/Htum/jXucX7Z8O+tTynC6gZdckH8w2z2pu9LwD8VVHXUeVazvKW+B05vP2ddqjT2PTyzwrOUuLHcMz8/ixg/+tdERn+Uo7AOwvlVu7AtHxcuJm9bgoY3Ux1E8zKc26jhF24oxpSZKA36cO2Og9LGN50JYawNqD/fqi1401Yue6nePGHgaaBPljxx8W3QXeKUgWEN7W9TbL/fTCfDETAJDPLXVS61iq4kN+HGJhQDm17QSAJplmojMSiVhYWXzihuK0pqcZj2krARBlxDK8O8DqDKPC+8veF15TdtaAFPQ7cOJowlP1iyqLkFeeZ2lzXHLFEu3jMfDr9gvbXijZ8siGG/AfZdBVZFWBX5DYYdSaUXGv8WIxKqzLW4eTvz457vUN+Rsc9fI/MfsJ7W0TgY71G6CmL+ssmhbuWSjtDaxOiGi8/wT+feK/45SgVYkqfiL68KwP4ff6keRNsoj9/LzxZ+kx+Kou7b3VSXzweOHUF9CpXrxwHoNs8qSTtojGR/uuZX7S/GehC9k2tdrgo7PiKyx26N7QrNbyInPDfxouvFZ4KuqNncXq1kC0/5KvlADAS/Nfsjzv36y/I8spIH4RevoxpyvtrmS/TdMaJkNE1P+uQ3m0awfiE5uiZAp/HfN9nPz5/7FdHawPaB7f7jC01VApBZSBKsaLHBBSfCl4tLe4j1wGkR4CTXLtKtkV14bFjw12KtuiCtwP63+wPBcp0dvZjIp6VVn7CQMfiPCLdB710+vHVXt/v+B3S3JpwuYJymOc2fzMuB51Ctk1+csm6+f5Zfgvlmodv59OZfOS4y5RKnHLfjv6eUWsIVmwSsHTxuN+Gy6JJ0ss0bGjT6M+ce/T5NLxtY+Pe7/HVz0sfdKi6ryth3x9M2GsqzbOj4PUGQMA0nyJVfgt20qSAyoVeqoe3zK7pTRYP7f1uZZg/ak5ZjuXrjtOsi8Z5x97vv2GkP8GPq8P0y+abnmN3is8PV8Hz8591tCOmbp9qlHQaV+nvZIxQhlRG/I3SNc4Tn7DSVsn4dOVn8a97iTg/3rN14YbjZOAn79GT/r6pDj9Dp3qPnNGkcGJkOCRBDfgP8og62/7u7Bk75IqH+OOKXdI3+M9rWXQoYJWFTq96PvL9ltsbHjIgjgKUQ8cD5Vyui7sPo9I5d3JpCDCmHOiWXteTO2FefJMPF1gAdaggXouq0B9YwHrZM+rE+t4sdtNsHxFgoEGACJFd+q7LftsfADEL2R5ASARe+KJWU9Ynl/Szsr04XttrxivFvC6tuO1uK3rbZbXeAV/vjoKWBOU7eu0x+unW0UT+c/21Oz4nn7+97JjBcgCOyqIJ6Ip0ySALJCzq/7wPd58EFUaKMVjsx4znp/c5GTbRMOqXHVbhWzxY7ewosGMTC2aT87wfcQ61bD/9PwPOtftbDznky2njT7N8vzebvcqj2f3N/91/L+EYo52ehc0EM1MysTiKxbb2p7aBcmv9X8t7vdpVMN6fdrR/0X983d3u9t4PHv3bLyzJF6Pgr/H+c9SP8NajdOZizvV66RMtsmYXENaxo8NFDIKNwWfoOB92vnPJwqkw5GwpfpOGQ8M1BpXJS4GRBNrvCc7EB9s8qyU0WtGK48rQo+GVutfPkkru9/tvlsq/Du8zXDhNnwiQLYes5s3nSZ7dc5FBr63XXUedL1F52VV4oZqIwDAqaOjGll3TbvLeI0yOUTg9TeYXShffLJbl/HuH6PXxl9fdnpMzK2C4d2l72LG9hkWFsVbZ7zF72aBaO7lE1M6GNhioLI1RGXrdyTDDfiPMuh6IwPxgkqJQBUI6PbgU8oqjxbZLbSO4dSfPhHoZDL7f9tfWeHXOcYJDey9V1V/A9BbaIvaKCj+Nc5KL29Tsw0WXbEoTsxJBdqzeVX7q6Re6atzV0srLq8vUivnU7y3NF7ZPr88HzdPvtnyGu155zPsOteS3QT73wXiDLRdgsJu4QsAX6+2Vhj4hSz/2/PPy4Pl+H692f4y+uzRcb3Vv1/4u4V+bSec2Cq7VdxC/+XTXrYVzqF98iJPdT6w/nbdt3F90XwQYbdolAVhNGAQVe4oaqXG619Uhipt1bl53Qye8TN1u1WAT4eqyfdF8uOuLAHCJ8F40O9VNt7w98Ha3LWW57o0cLro421QaYLru3O+E1p/0cDsp40/KbUlRArgQHz1if8eaXWtKFCktaisCFvvPf6Y1C6Rwq41r0VWC+MxvYcYru14LUb2HGk8f3tpvBibXSIpKzkLN3cxx83Ra0dj5X65CCxgbyMmS6baVbH5+4JHbnku7v/DmSgm/zcjkQh6j+ptuRbtxi9VcgMQj4tAfKDInwvVitEFv7bgtS5kvzffP03x9JynLUJ9N3QWs4L4Vh3ZfW83NtPkA72unVga2wkEMuRV6IsoM6FRvtVS5UZzb/d7bdfjfFKKR+d6nYVzAN+OYjcWdarXycKSqJsaTTJSNp+d/fSjvR+Naz+6fapVCV9ldQoAHet2jEvY6jhMiKC6lpI8VStMHa5wA/6jDI/MfETLiq6gogADvx8ofb86FOV1qWgqqPobKXTVUqsCVZ+5LnREyCi1WIaTvj5JmVDhnRKaZTbDPd3usbz2wfIPpMG06NgP9HgAACzBIqDu/6XBmV2C4dm5YmExvnJBwfeuvrkkXvhub5k1G778Kqu4EZ/p1xFzsptgB7ccLHzdTvxRpyWHrwDy4AWC+OCBCvQB1uCBITM5Ey2zzAWCndia6Puol14PD/V8SLC1CTpprziwIu79BhkN8Pngzy2v8WJjOowMit+3/h63z6b8TRYa7j3d7+F3sygTi5IG9824z1Il4RXKAYHtGnccu/5gEfiFfVwgI+nxlwmoMeh8r3wvMr2XIpFInL6LDDTpS8dZXuRUxlZ4rf9rFlXui3+V+0lf1f4q4eutsq3Cl/y92LVeV+kxZeArnXwgJEuA2vWg0vtNlsCyCyZ0KPo8a8fO+eGUxvHJh4EtzHXGB8s/iHMUikQicSwuHnZj8rNzn8XO4p3Gc7trG4j/bSpCFZaxsnej3rZCZnaJdZnoLR/w82sLHS0XHvz8KhRlFECVzKWV4I8HfixlNPDXGg1IaaJhT4k4wcVAdTbovCTSUpBB5r/OJw3aZKvbbSjYeoi2Wr7U9yXbeVGUGKbQcSDiNWhC4RD4IV2HeUmvd5YgpeO1nSNTqj9VaRNI9QZUuOx4saWtU6gcDIIR/TaDIwluwH8UYuSfI223UWV1AWDoD2IrHyfQDZBVtKadxTu1mAJ2Svw6dEQ7sUKngogiNKnRxPbzyKrDPHg1XAq+6vu/fv/DNR2vidvug+UfxL0GxAcNXw/92hBS4lWwb5tym1TMh4Kn+7IEAsNPG8XWcqre2m4Nutl6aNudG7+IufS3S+MWB/xzu6RMZpKcLqjCeW3OMx6LXBQKKgosXtYiRXI+880HbhO3WgWlZBVgeg3IqJwMsoWvnT6Czr3NCyDyixv+84kE5miw/tfOv/DITKvf8LCfhhmP7+12r1CMjroXLN23FJ+vtCYiqGhWm5pthD7RfLVv+E/Djd5OwL63VwSeysyPuzJ6LS+0RVFQUYDp26cbz2X9/vw4Q4PIXzf9is9Xmd/RN2eLPdhVoOJfgJyGm+JL0fael40nbWq1sQiKXfjLhZa2J6rZoaIDU/BzRlnA+pwKblLQ44us7GjAL0sS8p7r/L2WiNq4XcsgtVxkeP7U5y0MjPN+Ps/y/v1/3G9JDPGJFwAWEU5R0EnFQ1tktcDoofaUeL6yyCfOnjr5KWEi84OzzDlzV/Eu5RgmS7rw9zl/D9u1iohA1w0b8zdahIYpU4MHrzFAxyMKJwKqVO+Cfj9OHJNW7DcTwHXS4sd0GWRtRU/PsYrz8oG0CqLeeZ32A9F3RosBOsU5/lqpDFfGrc90evhpMvq9Ze/hyvFXWpJkOmOaKrFAhTYTPYYTyNhRgDOLwSMJh0TA/9Zbb6FFixZITU1Fr169MG+emsIxZswYtGvXDqmpqejUqRPGjbMKt0UiETz22GNo1KgR0tLSMGDAAKxfb1YSt2zZguuuuw4tW7ZEWloaWrdujccffxyVlc4nuEMZsolG5b3OMGun2hakKGDfr263WB/0/SCtIFnUT8nw9Zqv8d6yeJo2fx6/b/lduc1bS95Snm9ZsMxWrPCG32+I6/d2irk5c9Hv237KbXg68YQLJghpXSrvYj77KVtYysD/bnQyuKHTDXF9cjuK1P1fADBjxwzL8yvaX2HbHrDqwCrL7y+ydUnxqxciOnRA3hKPF6LkFypeb/zQSimI3677Fh8ssyZTIpGIZRFO+2xFx8iryEOnz6w930/NecpYmA5qMSguaQLET6h8ME57MgF5b+faPJOebZc0kVF57QJYndYTPkjmPx9P4RQtlr85+xtLxYgGCPy4IFNrv+vEuyzsCeoLzYPvd6TgE1RUBCoRKm9OSY7lM/DBg2x8VVVNz//pfOM6O7nJybi1661a50J/Tyq6BcRfdxQ0gSazbgLUi2xdRpmKacQzcyi9m+pJqPRPnjrZ/NxPzXnKQpXlx1XZ56HJZz5wX31gtUXnQEYrb1fLyh6glO9wJGyr/SAC3zfLJ9tE44Tf64+zcKTgnT7+1+9/cdvQtqu9pXuV832jjEbSQHvCBaYA4kcrPrJY2fGUeNlv07tRb7zeP8qM21K4BZ0/7yzcDgB+2yR2BOGTOPR7XLZvGb5YZYpK2lVeKdg98O+p/zZea57VPI6pQXFKk1Ms8znrNefhJOAvrCw0xiQajNI5xQ6MTbIhb4NFp8LO4YAXnS0JlKCgosAivHd719sdJVVEfeY6Ab/oOsxOduYPzwfzOSU5lkAdsG8tEYGfs1XuGgyqVlLdQD6RZJZTJPJ9HAk46J969OjRuOeee/D44//f3nmHR1VtbfydhPSQRjppQEhCCYEECEHpgQBKL6GIiICFckEUFaVdrwqiooAIlisgojQBGyC9KDFIIEAooVyaQECIJPRAsr8/8s3knH36TEggWb/nmSeZc/Y5s2dmzzl7rb3Wu6Zg7969iIuLQ0pKCi5fllc837VrF/r374+hQ4di37596N69O7p3746srBJv34wZMzB79mzMnz8f6enpcHNzQ0pKCu7cKb5oHj16FEVFRfjss89w6NAhfPTRR5g/fz7eeEM9vPRRQytEWg05FWoerZBOrXz06wXXNQ3xD/78ABvOaBvranx//HtddY0PXDmguE/vascTq41FPsiFOfEeaB6hOjZQHBXAC6CpnWf96fWY8ecM0TZzbdlNvTdJSoPJwU9MhTd7b2dv7OgnDuNX+myFr9UhXFonVnheuZVZYWhuu7B2mNhsoqSNUtikGS29A6C4JJ5wQr/zL3E5Qt4olgvlm9FyhsionL1PnC4x6fdJFjG/hIAEPF1XWgKypldNfNzmY9E2YVkk4eRYaQLG31D579KaG67WtUAphUFLnMqaa5gwEqSwqFAU0aRU8snD0UNUiUAIH2at9Ll6OXthekv58/PwYoNC4gPiRc+Fobd6V0neal4iDLru9DrM2jur5PmpdZb/I70iFdNPTCgZB3x/hWkw/aP76xZBEl5HjURECVefhE4DNacmj1YOqhl+siyEnygK+6L3/XSP7C4S2xq/vSS3nD+HnkkyHyXT9+e+oudKNd3544SOsU/2fSKpXKCHkKoljpmb926iyRJxupXS+9ErpDaj5QyRvooZJ3sn/Ni9ZJX15e0vKzrw1Qyx6u7VRQ71AWtLwov5tAK1+4reyi7B7sGy2+3t7EUVLoSl3wauHWjZHuQWhA9aKkf8fdNZXGf+nT/ekfRPa27jaO+IDb3Fc7C8u3mSz9eIoN66U+uw+PBiMMZE1xmtMp48V25fkUSEfNPpG4XWxfBzpVbLWiH/rvg+83zc84b6sffyXmw/J16w0OMA+e9BcRTmuevnsDTbWKQTPw6H/joUY7YqV8KwhqVPLtUVXXbk6hHFfaUhuFga7EhVr1pTkSl3g3/mzJkYPnw4hgwZgrp162L+/PlwdXXFV1/J5+TMmjULHTt2xPjx41GnTh385z//QXx8PD75pHgFjjGGjz/+GBMnTkS3bt3QoEEDfP3117hw4QLWrFkDAOjYsSMWLFiADh06oGbNmujatSteeeUVrFpl/Ab3MOPp5In9T0uV1PUgpz7LozXB0eOtXXRYPdxaa78e+NJeSqjd+EojXJ/nzcQ38Uk7aU65GtcLrmPXBWn0hauDq2SVX0nfYMIOcUpHx4iOlolsgFuAqrffDG8k8xdz/ibEr0IBxQauMOxK7nXPXC9ZOdcqYRXtEy3rueVvvPwq08lrJ6EHoSHMh2P/eKJksqn026nqWFV1ZVdoqI5sOFLRiBIqlgPKK5dqObpCh8Szvz4rytu3pqIFHyauJ4UDkJbG4nPr5MoDaSGM2Pgo4yNLWGSMT4xE1ViI0gTeiMq/lnPJjBGVYOH3q9fx2KN2D1GEiDm95/yN85bIA5cqLpaqGHIInQuFrBBLjiyRbWek5NOoLaNkDerkMGlpQCWEn0GUT5Tu45QiA/gIH70lvgDg+2MleiVG6m9fvFEi/Gk2JO/cv4NXd0gjcuQQXufUIhdmtJwhK9oHqKe+CFO5HOwcsK7nOuhB6OTnnTG9o3orfrZaUVhm1H5f/LmVxH75SDIe3uFm5sDfYqe1mgGj9psQ6vQI9Qt4+kb3FaVtrTst/Q4G1hkIL2cvxXPE+cWJrgNmfZ22oW0t2/QIBfMOjJPXTkqu8VoG7k/dxWUe39/zPhK/TRTNE5XGqtL+NsvbiJ4/VecpWdFOIXIRa58fVBdT1QMvUKfHwOWvGZ1XaYvy8vAOer2ViYwQVlWaiiNHryjliEy998bSQum3paWbUJEpV4O/oKAAGRkZSE4uudnb2dkhOTkZaWnSskcAkJaWJmoPACkpKZb2p06dQk5OjqiNp6cnEhMTFc8JAHl5efDxUQ4Funv3LvLz80WPRwE5A0ir1Aegb2KpNsE5f+M8+v8irS/LwytqPwjkVnDlbk5qIf1yhsfSJ4znnAoxT3yH1JPmzisZXc2/ay4RqjLDG5pKAoB8zeIZLcWr/XpCX3kjiF+h4W+qfJnAe4X3sObEGsvzecnzZFdubhaUhBULS9LJoXRD0SoNplcTQTgxEopp7f97v8UxFewWjHntpCWuzOgNe1Rb2eMnx0oTNjWje1XXVaKIibYrSiaAapEuQoTRGVrK/0rCirxTQs3Z8H5LfY67Bn4lDpElR0uMVK1VRKX8UbVoFh7+/SiVx9x5fqfsdjmEuf9GBAh5ZwogDgWv6lBV1fHQJLAJpiZNtTyfvnu67PvRMvjTB6SLcianp0ujINT0AnjWn15v+a6M1HiWE/QrLCpE4rfikGi1utc85rG2+vhq0fWM15XgkYs4W3p0qcj4kYt4MrOhV8mK64G/D1gcD/y1Wy0PWSvSx0xqdKpo5V4N4e+evwdMSZqiGD2kd4XfiKNMOFajvaV6GYqvoVCGjp83qV2jJWXo/v972XV+lyhVRivtUTi+hZoZevpgRu6+KHQS6DEQ+XO4ObhJNA60DNwIzwiJEcaPObV0HUCq68Oj9/46rcU00XM1YWEl1ATqAH0GrlwUnxA1B7VehJEvaqj9BvWG4z9oo1543dPitSavPcCePJqUq8F/5coVFBYWIiBAHEIcEBCAnJwc2WNycnJU25v/GjnniRMnMGfOHDz/vHIYz7Rp0+Dp6Wl5hIaqexEfZrTqK98ruqeqcGlGzSkgzH0zI7dCq1aWRG4yp5WfpZefe/ws2aYmIsiLfKztsRb1fJVzTuXgRbzMSrXjGo+ThBrrCTMHlBWlAeXSNwPrlIQE+rv4SyZhWiWOAOmNWivci/9s+b4prd4LVZ950SQepQkHP0nkhXD0VnoQIjS8pqWXTB6cqzirhsTrXQ1V+zz5SY3wdyjMg869rZwa4urgiihv+dVRYX6oGsLQyFXHV4miBITVHSYnTVacMPCh4sLJsFBE6fWmr6NjDeW6ukKERo8wp1hrFVGpHBv/W1SbGPEOC2EJR2Eeup5KD2aEn52RVWS5ya/QAaxHh4U3fguKCiRGipax5urgKlp9TbtY7HiP9y9ZSeXrRvOs7SHW6Xly9ZNgjImEu7TgHWCFRYW4eV/8Pfza61er8jsn75ps+b9DeAdNoVA5Y17oaKtXrR4+bP2h4vEBbgH4vH3JquTUtKkA9GmlKKHkTMq5KT9vkkM4/o0485Veg//OjuQqhwzzCJ1qchFmSigpePPOFLXrvNw1+tqda3h+k3iO2SxYPYRd+BuV05rRs4os10aPSLEQ/r3eK7qHTzPFpRzlHIw8ws+FF1f87onvNFMhanjWkOjpCNEbNs5XV9BKo5Rjeovpqo49Pc5ItdVmH2cfTEmaYrhfQpLDknVHLD1VV7nyg16DX80hZ+TeJceY+DGaFYiE+Ln6YdmT2uKclYlyD+kvb86fP4+OHTuiT58+GD5cXmkYACZMmIC8vDzL49y5c2XYS9tY3GmxaBJz8eZFVTXd6enTse2vbaJtc9vNleR2q/2AzbnIQuRyCdUMeLnzD4gZgCWd5UNL9fLv5v9GoFsgMp4Sl0BTmyzxiujmsLGDgw9qKpQDxZ8HL+LVOqS15f+EgATRPj0RFj0ie2BswljF/ZvObJLdvuxoyUWQL0kHSMNr5b4HfvKhlfe95vga0XO9AkhGUBqPfO4/P6mQU33WQujAEOaZa93k9a7GqzkGeC+6cKwIjVOtUlZKryH8/nm9CCFvJr4pqjZgjhLIuZmDb46U5FGqrdoEuweLypm1XdHW8nkKSz4ZUWHef3m/5XMWrupq6ZII34vwWscbQmqpEvyKqtA4Fpa/UyslyWNe5dn/937M218SPbK171alQwDIf7/C/GQ9aUr8ey0oLJAYRHqcWC72JQ4s8+9UKPSppdMS6hEqiURac2KNKPJKq1QZX/P+n7v/IDtXnHZmVLxUzkncOrS1plNdWNHBjFB4TJjXrISe1W4/Fz/V/UIj7d30d2WjgoSl0OQQpgcd/eeoZWXdSGixUvg9fx/kRQHVEJXJVHB+yyH8DMyr+kWsSLNkqhDekVlQWCCpjf5T958kAnJqyNUw12OIyd0HrKn2IaT/L/0lJRj16BYIq2rwTj69q/NqcwWjJVhtwbmKs6rmgFKJQiFqlUOmJE3R/T0ptTPirBvRcAS61eomu0/remYmyjtKcRFPScdHjq9SpCndakKoSihF2FVWytXg9/X1hb29PS5dEpdPuHTpEgID5UP8AgMDVdub/+o554ULF9CmTRs0b94cn3+unsPj5OQEDw8P0eNRoaF/Q8nF9PMDyu93+bHlkm0tQ1pKyib1/LGn4o9Qrt65h6OHJLyoCMphx/zNfmz8WAyNHYoGfg3wabtPFY6SIlQAbuTfCD1r9wQgvXGohbKrTRiEE2clA0nucxJGCPA3Sz0TlISABNVJn1IN13/u/qN6Xl5wjhe0+TPnT4zYXKLKrccLza+k8Z+1UijYi3Evip6rOWWUcox5Z8SM3TMshtjft/4WGady1Q7kEE4szOMJ0DaylVSZ+RuT2qop/36Eq17C6IWDV6RRNkKETkCz02rt/9ZatAR8nH1EJaZ4vJy98FpTadjc3kvaApnCPnzdSRz5suWsNMJEa2I7MbFErHHd6XUYt20cALHBLRQ3lEOYUiJ0RBrR7+CNX+HvWJi7LmfwKWG+Dj61tsSgHR47XLHmvBm5ibHRUmv873JPzh7JOdQECNX6YnRyzo8B4ap6vWr1NMN9fZzEzuU2y9vgnzvia6ERPQIAoqgWI+cQapfICXxqRTMBUoOpoLBA8plq5asKVen3Xt5rSR8Rfu9KJRfNfNnhS8v/6RfTMX13cbRabS/tWvdmlAwN/j7o6WRMwRwoFiAUhmxrrXgK79VmjYivsr7CgkPqZXmFBLiJF0cKCgsk92qj70XOuaQnNYiPOurxQw9VYcoHiZpwpt60DjXHgFDgtCxQcz7wY0COaJ9ozEuWTwHUK/wIABt7b5S9R2rNR4Q42DnIOpWMYDKZ8G6LdyXbN/TaYOja2iSwiaQalTULMzHVYrQbVSLK1eB3dHREQkICNm/ebNlWVFSEzZs3IylJXo04KSlJ1B4ANm7caGlfo0YNBAYGitrk5+cjPT1ddM7z58+jdevWSEhIwIIFC2TLaFUk5DxdRr1fcl5E4SqckAExA0TPh9QbgpCqIZKbrXBVg4efWMb5xVlumvyFXW1lVeidVCoPBhRPDMxKuELy7uZJSqgJESqjK920+Enxhl4bRBN2PhxOjzdT7sbHv/7k3ydL2mjlnvFe67Yr2oo+32d/LSnP0jigMXpH9dbs69+3/hZ9n7zxpXQTH1xvsGii1GmV2EssnDQJhYh4hCG2ey/vtTgHhLnrY+LH6BKrBMSTL+GqoFaotpJoHz+ejdwclaIrtDzqm8+WXCPNda5f21liwD9Z80nNFSi5fv52/jfVY3j4/sutMmoZ/KkxqegX3c/y3Gy4GKk4IFydP37tuMWYs2ZlwYx5NbvbmhKDxt/V31ApraVHl+LCDfEKqJ7xIWfcq6UtycF/7h5OHhKj0lzhQw1hdENiUCKm7poqKjGoZ6KpNrk+dPWQ5ncd5B6EvlFiBXu+RK3RcP55++dh9fHVom16DJevD5c4uexMdihiRSLHoR54AbOb924aDpv1dvYWTazNSuNCY0NrdS+kaggSA0vGs1llXE+lHzO802Pz2c0oLCrEu+li40HvSiNQ4lTmy/ZqOTB+/l9Jup/ZWBZWuQCAWW3Ez3n4383czLkSJ46RMnYA8Gnmp+j4vTjCQaglowRfCYBfCLB1tR8A/tvhv9qNoL6QoTfKT63d6hOrFfc9CJTu98J0Gy2UvkMj34unk6dsREGQm/4QeEB8nS5NjGi0mOHTd7Qc3HLwv0OhJk1lpNyt3HHjxuGLL77AokWLcOTIEbz44ou4efMmhgwpFjJ7+umnMWFCiar4mDFjsH79enz44Yc4evQopk6dij179mDUqGKFTJPJhLFjx+Ltt9/Gjz/+iIMHD+Lpp59GcHAwunfvDqDE2A8LC8MHH3yAv//+Gzk5OYo5/hWB91q+J9mmFEbH80rjVwDIT2S+PfKtZBsg/YGPazxOtl3OzRxFo5+fsArz6Pn8wPYr2ysK4Oh1bNwpvCNaRTMzdddUnM4/rescey/vlc0H4wXB+Fwk3vsvzAtXQpgfbCZ9YDqG1h9qeS53A9S6sZpMJux9SrxKe/b6Wdm2apMWYfm4I7lHRKUA+VVcpUgFNwc3iTii8HsW3hTVcvHjA+JFE9v3/pT+HrQEZzrXKFHQXZC1wJIaYSRXNdyzZAybJ/qANPzViHff/Ds59s8x0XYtx44QufBbPRNSuWuC3tJxSvA1qAF9oaty/TUi6iZMsblfdB9tV7RFxqUMjN4y2rJ9Y29lB6UcqT+n4vyN8yKhTT0pScLfQ0FRgUS9Wc93wxt/n2Z+qlsbxAxvYO29tBetl7c23Bdhner0i+kWtXAz7zwmXzpOiNp1XE+UAQBMSpokem5ES8EMP2kURhoA+pwxwgiSc9fP4YWNL4icvnrKUfLX8Uu3Lkn6ogehQ2vbuW3Izs0WOSCPXtU23PlIPcaYbuV9oNhp9PZjJZodY7eOxaazmxQjovQg99t/OeFldKmlrBsEALW9SyIT0nPSJfnubUPbom2YsnMZkDoaV59YjRm7xSkpRg1+QFoyUk8ZO16zhsdIqLUcwW7BaBqkP2JJCaPRNXIoRYo8KBYdktfqMHIPVBoHeiMezMhFbcil1qqhJFxrK9aU+hWWMAb0RT3J8UbiG+hcozPSB6SrVhGoDJS7wZ+amooPPvgAkydPRsOGDZGZmYn169dbRPfOnj2LixdLDJvmzZvj22+/xeeff464uDisXLkSa9asQf369S1tXn31VYwePRrPPfccmjRpghs3bmD9+vVwdi7+AW3cuBEnTpzA5s2bERISgqCgIMujopIcniwJV9ZSiAWKjajB9YqF4ezt7NGrtvgHo5SnZ2SlwRx+K6SIFWFOplhnQDiB6FxTPAG+cvuKrPDTnH1zROru/EVUOMkHgJN50hJtfA4jb0j9q9G/RM9bLWslOYcez7NQVX/v5b2SHHx+wisXCmpnstMUExROhJTCCvncXeHES2hkqxli7cLaifJqhdEgfFk7IwJI5hzigsICUUgtL6zII5zEymlHaDlCpiRNEYWVvZ1ePEH99qi800sO4U2siBUh7us4MMZw7c41UTu9IjkAMGXXFKw/tR69fiz5bSYGJqJ9eHur+mVGz4qL3KTe2huzGbkVdTknAA/fX8aYKF1Di9ahrTE2fqxo2zPrn7H8nxSUpGulgtf0eH3H66LnevLEv+8qNoj5z1TPZJA3guftnycR2jIKn6r1RuIbuo6TKyVq5utOX6uWFjMjV8XDDJ/6oxelCDU1ekX1kq2sYkbPdyN0hgLFQobCsaon5Jq/RszaO0vTuJNDeF2M849D75/EEVt67uXP1HtG9PyzA5+JKkLogb+vCiPnAKB/TH9DOe+vbH9FIj4sNOaV+LqjOMVobuZc0XO9K9GTk8TOF14M10i0gi2oOTga+DXQrWbeJrSN7HYjcz1hBRUevZ+rWoqVljNHD3PbzdVu9P8YEYNUQtHgLwUHiNESfXJiou8+Lg3RLwv4yNFY31irztM/pj/ea/meoUWUikq5G/wAMGrUKJw5cwZ3795Feno6EhNLwsO2bduGhQsXitr36dMH2dnZuHv3LrKystC5s9j4M5lMeOutt5CTk4M7d+5g06ZNiIoqUaR+5plnwBiTfVRk+BVQPfmcvJjc1OZTRc+VQobUbgJ8SRQ5Np3ZhHWnxHVnhRfGGJ8YSWienLgQr1XQLVLsAZ7Tbo7q5I2nbWhbzGw9U7TtmfrPSBwhPHqMr9/6/SbK7Z30u3g1SqJs7y2vbK9mLM7ZN0cUUTHtce3vAhALmglDSbU8yEo3cSPpJPwN8V7hPTDGkPBNgsUQeq3Ja4qfhxlhRIScwJfWhMPVwVU2fcHIJDTQLRCftReHmO48v1Ok3qxUsUAIX2Vi/I7xoucvN35ZMzxZONZO558WhfgD+oTD+FDzgsIC3L1vmxqvsJSeGT03a371+p108arxhKYToIbJZFKNEtEbYvmfx/4j+g55cSs9zpyanjVV+6tHsE3L8ad3VVyN/jHapVe10LuSpfb5qwkpPgjUJuN6VufrVqtrswI3//0ZTaUxI7zuHb56WLJfSxsBkKak8UayHtwdxU49Ps1Jj3OJj0wbtmGY6Lme3567oztWdlmpuF9v2kefqD6qoqd6ULsGONs7K1ZaEaKW+9yrdi/dhtCHrT6UNbqM5Im/0OAFxX16rwNCTSYhKREphrRR5Hgx7kVDeewvxCm/H70Yce4bxej44+8rER4RVjlRrNHa4OlVuxd6R/XGJ20/wfbU7Zp6JIQ2D4XBT5QN/Coqr1osh5xBL1TVlvOY37p3S1Z4y8yTNZ/U9Cr/dUMszta1VleJ4fevePHKupYicZxfHMbEj5Fs93DSb7BVc6kmueE72DlgRMMRom28F1rPqmcVuyqilUxe1Zd30CjVLFebkAgdIP9u/m+0CFFWiRUS5hFm+V/oMJCLiBCi5L0WTuaU6h6b4Q3xu4V3JaFnRlazAfnPyJqw8d/P/y6a4At/G0rwTrSRm0da/vdy8sLyJ6WimTzhHuGqoZh6wmn53M6xW8eKnquJWJrhyxLl3snVVFzXonONzvhkn3glWY/zgRdtFK7etg9vr8s4VXP6GFH6VnMe613ZU+uL2oq5mZqeNVVzSXf11z5HacHnmwvRu5Kl9vs0GrpqK2rh2LzhqoTaaidfWUQOtaio5sHNcXCwuminGeG9io+SW9RxkaYjFQBcHNSdYau7Gs+tVhN4U8LB3gFJQcrh1HpXo9VKzK09tVZxH8+x3GPajVToH9NfojthZke/HbrL8v0x4A/ZfUaMTQd7B1EUojU8Xv1xvJTwkuw+vWHfSu1eb/q6odBxodiktehJqdBCqc9GowdqedaSbFMT3ZUjpGoIUqNTLc/1prLyLOm8xJICKRc1oAd3R3dMSZqCVqGtSq0cd2WHDP5KjJ4V/szLmZJtQgNHTihk3LZxigrxZviQbh7haoWHo4dsST8eXnCEX0Ue32S8qBSUGS2DU3jzN4ubSc7BeUZ5NXm96thKOaV3C+/i8aUlk2Zne2dEeEbItuVzuZUwlCduwNgRIizfZ/b6rjmxRpRruq7XOslxQvjJ9Z37dyRGk9HwN7OwlBA9IlP86t0Lm8QefjmtDB61SVagW6Du1Uo11Xk9+aHjEsap3kjNwndqhFQNET1vv7I9dufs1jxOjVl7Z0mEtpTGuhC1yIhetXvpmgyqfTdyiuxKlIb4kVoUjN4cUaXVsNebvq77918aE+OP23ysGE6tN3JCzZG58pjyiqxehKKPWqhdbxr4KhvyQtQcar/2/lVxnx7khC+VUAuR1nKimxGWXeR5tv6zupwGpYWaI0Xv52JEf0ANvoSlUUwmk2KkjhFRNyVD3Wg5XFsF/kwmk6xgqd7qOGbW9pA6XYxqIiQGJeL1puJ0K6OindVcqhnWdZEjxF18Hx3VcJThvrz9+Nui5z90/8FQ9KGZic0majfSINwjHO+1fA8Hnj6AD1t/aPP5iNKBDP5KjJK3W7iaJjcpEQpQyZVW+v2C2Cj+qftPkjZanmWhd19PiCQgrQ3Pl59TCmHlowl4hKvbSkKH/Ln5Gylf/kkJoXK1ME1g13nxatzOfjsVb3B6xdq0ROqEHPy7ZLVIWKddC+FKvtlAFaYqtA5prZkXzX+WO8/vlKygGp245NzMkYwXPU4ZuVx3MxMTJ0pWzeVQu5EbyX/na4gL0TP58Xb2xuy2sxX36xE003KW6a16oEaniE66Jj9qRrDelSw1p4CR1a3SMPj/uCi/KgcUC2XpQSn038jEPTEoUSRYaUaY5qOFk72TYmi43om6Wpho69DWuvuixJvN3tTdVunzW99rve5VRqWydVOTpur+TBZ2XCi7vbTSE/U6H9UcIKWROmIEtXuBXnE5awT1jGBkxfJB9sWI4CwAWUFio/Ch+872zobvE6Ee0tVvoyJ3gDQlzUhlCTPWqMfz8Jotz8c9r9BSmfq+9UVaJlr3ZjXMKY96BGbVsEasj3hwkMFfiRm+YbjEEH11x6uiyapW/o5WiNzIhiNlV+e0LgRKK1Nq8M4JfoVMybsvDP2VC+UTOkD8XaQRDYDUoBCG2684tkK0Ysl7lZUQ3uj5z0ttgsVPJuTEDAFjRrKwjJRwtb9eNfU8YXNNdyX0TCj5z/Zo7lGJArM1k6LEb8UrDXoUXNWMMKNOBzku3byk3ej/UTNA9X4eaobfcw2e0zxeLTzdx9kHM1rOUNwvxNtJOT9vRit955CL3jGj97tRcz6pRVTwnM47rbutEmrjUe8Kv9J11uhKnZy6//V7xsoV2ilMN4xE5yiFqb/f8n1DfbEVpWgPOSFVJZTG5MEr+kLxgeL0ILmyXrxqvmo/VBy/elcI1RxqfKpNeaLX8af2+7A1T9yliovEwFPDGkNWL2rREHLs/3u/ZNsTNZ8wdA7eCWm0VKje8+ph8eHFoud6F2aE8A6ttT31p3yYKS1Bub7RJekftuS8v9b0NWQOyjQ8PoiHGzL4KxmdIsR5v0LVZsaYSCjvreZvoUlgE9XzbTyzUbL6LERJBflsvrjMG2+MN/RvqPq6cvAGv0TkTiHkV3gDl5vYCifNSit3/ORN2Je30t6y/J8anYqBdQbKnoPn5LWS/Hg9OcxmeMMn/25xhAS/6qPkCJDDx9kHd+7fwbT0adjx1w7L9iH11QUP+Xz1m/duiibFegxT3mhZcWwFJvwmFjPSswKsJWCjlrdpRs0gLA3hML3RLIA0gkWIboNfJRRXry7CjtQdstv7RPXRbTDYupIAqOsn6DVw1QwCLb0KIaWxwq+k5r974G6bV06MGvzbzm2z6fUA5Ym9rSuYG3tvtFnRWqs2Ow8vcFmaWJvzKsSIc0otpUqvIaK2Yt2zdk/dfSkN1O6Veo1CtetAfd/6ivv00KJ6C0Orwg+qNjpghagbt2rcwLeB7kodZmzVAVDCmmvi6EajRc95UWqjrzslaYrVyv1vNS+eJ8oJA+vF18UXs9rMwsetP1Z1gOuhrKpIEGUHGfyVDH61TJjLzAuhKZVh2Z66XfRcqDDOI6wJL0RYEx2QhlMbKfVihg/R5kXtlFZU+kT3ET3nIwOExrtS6Td+IqHUfyMiOcLwfr15+UCx8Su8qfb4sQfu3L8jySfUCisU3nhy7+RizNYxohJ04xLGISUiRfUcfChws2+bIaxqSYqEWv6oEF64SE5NWgu1igTJYcmi1A0l1CbjRlIkSgNeME+I7pUsBbGtH7r9oHvCoLSSYMQIC/UItbq0mpmk4CS80vgVm/uiRGmEbhoJPVeKSCqNEF+jk261VBa9NPJvJLvdaK4qj1HnhZyDqpqLtkiekK61uhpqbwQ/V31582oYuV/4u/rjo9Yf2fR69nb22Dtor+w+I1EPpYHwvimkY0RH3edQMh7r+NTB8w2Mh1sLybiUYai9Ece8EWJ9Yw2Loc1qO0v0vEutLobzxEvjOsrDl1PVy+B6gxHhEYHHgh/Dyi4rUcOzhlXnWdNtDSYnTbbJudWjdg+kD0i3uXpH27C2aBeuL62TqFyQwU9Y4EMJlSaFPs4++KTtJ7L7eJTEtmp5iRVF+bA/vaW9hBOv2ftmI+dmjuU5v8Kv5N1PCU8RrWY2XNzQ8v9HGR+J8tyGxYrL/Cix7/I+2e1aq8C8eIt5pWbbX9t0va6ZLX3EVRK2ntsqcYDEB8SrnuPNxDdF6tq8MrgeI0DOIZB2Mc3yv96VsklJkxQNBr3U9KqpWFNWT6lIQN24sCak0BbUJlp6VzuUwkVtXR0AjJcbKg1DVkm/ojTCYo0ojctNauP94zGn7Rzd51DSg7DVQLYGObXmiYnGxJ3kvoM9T+2xtksW9ETmCPF29pY4sz/b/5lCa3kG1hmoWnnAFoymBuXeLoW86lJwiCn93s9ePyu7XQ6lCiUDYgboPoc5oo3n/Va2p328kfiGofBrudVvI2XsAKBDhNTJXBr135d0XmL4WtKiegtMTioR3OVLJ+rlh24/WBzWX6V8ZdU5tvTZghENR2BT700YGiu/sKSFo70jfurxE+a3n68pJK1GLa9a6BPVx+ZrM9WKJx4kZPBXQoRlN4QEuAaInqsZp3onCErCXyaTCZ+2K0kn+Hjvx6L8Zb15XeYwKDPtV5YY7qfyTuk6h8lkwtuPiRVOzav8X2WV3Iymt5iuKi7zXosShfaZGTNlRdV+PvmzZJsQXoTp2V+fBQA8UcNYnpyrg6toArb6+GpJuoKWqEsVuyqqYdJ6JqaeTp74sfuPmu30UBriT0p91jvJ9nP1k5RgNGMk97Y0UNJPGFJPPc1CiNLvuDRUqo1+X3pEArVQ+h71lkoD5A37xZ0Ww8vZS/c5vmgvLYdkNKfS18UXizst1m5oBXLlVtXgnVkftPoAqTHy9xG95wBKx8ljTSoN/9sxeg6TyaRbn0IN/r4DGP/dXL4tXQE2qnr+IIXh1CKReOpUqyNxqveI7IHXmqqX8RVSWqrgwvmJGaNO3X7R/TAuYZxN/fB18ZWkYlpzXdjaV1x1xZoQeJPJJIraM1LZQkhNr5r4pvM3yHgqQzNtVAk/Vz+8GPciAtwCtBsTBEEGf2VHuBJlJIxer8F/9bayN5uvAT97X7Fi+IpjK/DjyRIjUWlVFigOJZQTwcu8nIlXd5SoQmsZQfyERy4/Oso7SvUcnWt2RtvQtpbnvX+S5mL9fVu9tFeAW4BoomEOzTSi3m5GmIoQ5R2FNsvFq1p6crTUJoJ6jWS1FTgjocJKoY1K5b7kUHo/RjzzSqHnWukNQpRWi42Ei/av0x8tqreQbB/XWP8EU2kCWxor4kbCigHgi4PGagbLoZRWYSSEPdI7UjIejIaNR3pHYnqL6aJt1hhV1miZ8PzaS1zibVDdQZJyilrMbDVT9Nyack8mk0lT5FMPRqoDKMFf+1Z2MV7WrzSiYLpFdpNsszUEvo5PHcOq53K/dz51zxrahrY1FEoPSB0eN+7dMHR9Dq0aih+6q4vF6qFFSAtJ1ILRVEOTySQRVewe2d1wX/hUTKMpKEDxXE8pJdEIbg5uWNhxoWEnqBylIXRLEIQ+yOCvhAjF24Rh0oYMfm6CIFeeD9Be1RJOxM353EKRu0nNJmlWCpCbjP90sqQUYJR3lKYRxE8A91zaI8nl13NzkjOghHlynWp0kuzn4V+HMYaLNy9qHqfGrovicPyJiRN1GSBqK196Q7bVnENqtdN55EJD/V388XXHr2Vay/MgV7L4dAw1Ir0jRc4hAHgs+DFdyvhmHOwcFKMNjCDnkDEaji/HldtXDLXXEoDUg9xK/qquqwyfh8+ftybUkhdgLOuUDzN8aoBSeTw12oS1ESnhW/tevnviO8v/apUZ1FjVbRWea/AcnO2dFTVitKjlWZJSduDpAzYpWptRymHXwt+1pPLLwcEHDa+88g5xvWKbQuTuL0bzu+WY2nyqYfEv3il+6Zb+yiVmAl3VS73qhRcCNhKtYCavQCygOLLhSJv6xOsfGeHLDl8i3j8en7f/3KY+JAQklIozkiCIsoMM/kqIcLVYaKgbKY/CG3G3798GYwxjtowRbdda9RSG8cpFA+gJb5Qz4vZeLpl88TdtPQS7BeP4NXGNWj1K+XKKukYnx7zB//6e9yXlY4zC19vVG46r9p71TsTUHCWtQlvpOocSTYOaGgrXPnf9nE2vp0TP2j0N9QOQGpV9ovsYXvHgDXMj1RzM8KGeQOnUzzVqwNfwkAomGS0LJPdbMxIBooQ1ytK8EOn6U+tt7odalQg1jK74yiHMJebTv/RiMpkwu81sRHpFYn57Y2HnZgLdAjG60Wj8+dSfGJsw1qpztA5tjTcT38TXnb4ulbG+/MnlVjvJzCu+cuX19NClVhes6LLC8twao7RxoPEyuHqw5nez6rjYQdetljQKQovS0CSQwxpHVzXnktX4bX23Wf0b/qDVB2gd0hpfd9Lv4OYJdAvEok6LdJf1JAii4lA+Sw5EuSI0SoX1zPUK5QHSaIC7hXdx5fYVbDlXIha3q/8uQ6F4Nb1qSrZtOrtJsz66XDjiiWsnLP/rzeUXUlBYAHcHsQGnZ8VDWEov3j8eC7IWiELR9QhM8eJ6vLH/bedvUVbsuaQsqqV30qC0qv5UnadsVrvmjSotYn1jbXo9Jf7d/N+Gj+GFGNVK5CnBO5isKeFUGkJBc9vNxcjNJStXbULbSEoyasE7f6K9ozEveZ7hvlSxqyK6rpUGRkP6Aenvo3pV60K1ne2dcafwDkY0HIEXGrxg1TkmJk7E6C2jMajuIKuOB4rTXj5q/RFu3b+lq6KFEm3C2qBNmHwFmLLCZDKhX4x1+cdCMgdl4ub9m1alOJgZWn8oQtxD0DKkpdXnqOlZcu+0xnj3cfbBmPgxmLV3lnZjFfhzWBOyPbjuYCw6vMjy3BrldH7eIZePbxRrNRsaBzRGn6g+CHANsCoU30xKRIqhtDGCIAghZPBXQoQraWkX07D48GK0CW2DqWlTLduFEwjZc3A34buFdyVh/UbDp8OrSvPLlEoDil6nFATGeAqKCiQq/0ZXcN0d3TEzQ5z7qscIUssNHVJvCGL9HozRKoew6gGP3lxaJadPu7B2Nqva5t4xplBdGurGD4rcu8bVtq0Ni1ZjatJUw8e0DGkJfxd/i4DY7LazDZ/Dx9kHW/tutWhNRPtEW2VIbei1AW1XtNVuqMJTdZ7CN0e+sTy3JhVEqI/i4eiBJZ2XqLRWZlXXVUjPSUf3yO5Wr0aHVA3B6m76qwwokRyebPM5KhL2dvY2GftAscOtR+0eNp3D0d4R6QPSYWeys/qaOix2GP7M+RO7LuzCB60+sPoc+QX5WJC1wKrjAWBEwxE4cOUACgoL0Dy4ORoH2BZ9sKTzEsORQmZ+6P4Dhv06DB+2/tDqKjEmk0mkbE8QBFEekMFfCRlQZwC+P/69pdTSjD9niHLeQ6uGYtmTy1TPwYcvPrn6SUkIr9EQR97ABoC61epqHid0NJhD7gbVHWRZGa9frb6hfgDFZZqsyVEzl9EDgB1/ies994jsgSdqaqvtq+WTlnUe8KC6g0Tih0JsDYU1uvozouEIfJopXqlRi0CQw93RHb1q98L3x7+3bHshzrpVU1t5LPgx/H7hd5vOwSsUNw9ubtP5AGhG1CghpxZuFC8nL8v/f13/y6pz+Ln6Ico7Csf+OQZ/F3/tA2QYEz8G8QHxiPKOgr+rv1VGlI+zD7574ju4ObhZXd8ZAEI9QhHq8fA6qoiHg9KI1Pms/We4V3jPqsoHZl6KfwmBroGygqJ6cHVwtSls3czG3htx9c5Vm4Qia3rWxJa+W7QbEgRBPORQDn8lxNHeUSLscyT3iOX/pKAkXTlwH7YSl785ly/OjzZqEO6+uFuSb69noi1c5b1fdB/pF9Nxo+CGZVvW1SxD/QCKNQCEJfn0olZjd2jsUJtXtI0YyXx5I2tQMiBtCQ02Y3TVdFj9YZJ8Tmty1qc2nyp6bo2IktGyV3Lwqz7Whmu+8/g7aBvaFuMSxmFWG+tCchd2XIgo7yibysDZKgQFiB1aY+LHqLRUZ0WXFVjcaTHW9lpr1fHOVZzRPrw9wj3CrQrnN1Pft75Nxj5BlDW2GPtA8X1/QJ0B5e6kCnQLLJWqEARBEBUBMvgrKe3C2ynu0yt40yGig6iE0Kazm2zqU3pOOuIXx4u2mZX71WgXJn4vwzYMw+oTxsNX32r+lnYjDYQCPTx6DVw1Qayd53fq7suohqOQHGZbCK6nk6ekrBdgXOlbzpC8z4zlWTvYO0jKWJVGHq41PFb9MXzU+iMAQGJgolXnCHYPxt5BezG33Vx80eELq0W/utbqilltZ2FI/SFWi1UlBCTg+67f26S8nBSchCWdl8iOFyP8MeAPrO66GvEB8dqNFbAz2aGhf8MHWpWBIAiCIAjiUYAM/kqKmlFpZJJ8/sZ5m/qxI3WHdiMNqrlUw/Inl9t8nh61e6Bn7Z6y+2a30ZeTvKjTIsV9eg06k8mkGA6Ze1t/nre9nX2pqC/bIjRkpqF/Q0mua5R3lOHzCMO8Xaq4GCpjJ0eXmuolH9VIDk/Gb/1+w5cpX1p9Dgc7B7QMaYlmQc2sPsfDRAO/BpIycEZxc3BDpLf+co0EQRAEQRCEMmTwV1LUwlTLclXM29kbA2IGKO5v6NdQ13nqVFOuTTuz9UzFfTxyqu91fOroVpUO9wjHnLZzZPcZCZWc226u7HY9GgBC5CoYGMXRzrjSshx8XXJrVrSFzoclnZeIhNGMsHvgbsxPno93Hn/HquPNeDp52nQ8QRAEQRAEQTxISLSvkqJmCN68f7MMe6Jcf3hDrw2wt7O36dxTkqZI9ArU4DUElLapoVS+T6+qPaCsf2B0tV1O5O+bzt/ItDTeF1uwpowdAFHkg1YlCTVcqriUSm1ygiAIgiAIgniYoRX+SoqaIb3ksHXlo4QYEbpSUp4Pcg+yuR9GleDlROBOXDth6BxKERKlYTj7ufgZap92MU30/Om6TyPOL87mfliDUO9BKXVCC5PJhIODD+Lg4IM2O4MIgiAIgiAIoqJDK/yEBFuEu4DiEPDNfTbrbm+t0JgeTuedNtTeVk0C4MG9n04RndA2zFh9cd75kJ2bbXM/1FIw1Pipx0/49si36BDeweY+EARBEARBEAShDRn8hIShsUNtOr5rZFdUddQfvu5axfb6wUqEeYQZan/wykGbX1NuhV9NvV8vbzZ703BZv2frP4tVx1dZnqfnpFv12ttTtyPrShaquVRDtHe0VedwsHPA4HqDrTqWIAiCIAiCIAjjUEh/JebLDlJ18RENRyjWXpcj3l9aOsto3WpraqnrpYFfgwd2biXk0gh+6vGTzedVSn1QI9wjHG8/9rbl+ehGo616bR9nH7QMaYl61epZ1Q+CIAiCIAiCIMoeMvgrMYlB0vrhPSON5VZ/0eELdKrRSbTNqEGYfy9fu5GV2Bkc4nKCdiHuIYbO4eXkJdlmJOLBTKcI8edqreJ+t8huaBbUDFVMVdAnqo9V5yAIgiAIgiAI4tGDDP5KThWT2Dh3cTC2Ou9o74iutbqKthUVFRk6R3JYsqH2SsiVWDMaAh/nF4cvOnwh2ja//XxD57Az2eHNxDcNHSPHuy3eFUVQ2CJS91n7z5A2IA3ezt4294sgCIIgCIIgiEcDMvgrOffZfdFzo+H4gDQH/6f/GQtfr2JXBQcH254737VWV0mKQZCbcaV/YY5644DGCPcIN3yOfjH9DB/DU8WuCma1mYWwqmEYHjvcpnPZmeweqDgiQRAEQRAEQRAPH5SMS4hwsHMwfAy/8twqpJXN/fhjwB9WHbf38l7L/+kD0uFgb/z9uDqUODDGxI+xqh8AkBqdimXZyzCn7Ryrz+Hl7IVfev5i9fEEQRAEQRAEQVReaIWfsJkiVhLC39CvISYlTbLpfM2CmsHNwc2qYxv5N7L8LzTcjeBoVyK6F+1jnSI9AExsNhHpA9LROrS11ecgCIIgCIIgCIKwFjL4Kzmft//c8n8DX+sU7etXq4+anjXRMqQlFndebFWUAFCiqD+k/hCrjgeKqwwAQK/avaw+h8lkwu/9f8f21O1WpTgIsdbpQBAEQRAEQRAEYSsmxhgr7048iuTn58PT0xN5eXnw8PAo7+6UO0WsCCaYYDJZX2KvoLAAF25cQIRnhE19+efOP/By8rKpLwRBEARBEARBEA8bRu1QyuEnSgWjavhyONo72mzsAyAleoIgCIIgCIIgCFBIP0EQBEEQBEEQBEFUSMjgJwiCIAiCIAiCIIgKCBn8BEEQBEEQBEEQBFEBIYOfIAiCIAiCIAiCICogZPATBEEQBEEQBEEQRAWEDH6CIAiCIAiCIAiCqIA8FAb/3LlzERERAWdnZyQmJmL37t2q7VesWIGYmBg4OzsjNjYWa9euFe1njGHy5MkICgqCi4sLkpOTcfz4cVGb3NxcDBw4EB4eHvDy8sLQoUNx48aNUn9vBEEQBEEQBEEQBFEelLvBv2zZMowbNw5TpkzB3r17ERcXh5SUFFy+fFm2/a5du9C/f38MHToU+/btQ/fu3dG9e3dkZWVZ2syYMQOzZ8/G/PnzkZ6eDjc3N6SkpODOnTuWNgMHDsShQ4ewceNG/Pzzz9ixYweee+65B/5+CYIgCIIgCIIgCKIsMDHGWHl2IDExEU2aNMEnn3wCACgqKkJoaChGjx6N119/XdI+NTUVN2/exM8//2zZ1qxZMzRs2BDz588HYwzBwcF4+eWX8corrwAA8vLyEBAQgIULF6Jfv344cuQI6tatiz///BONGzcGAKxfvx6dO3fGX3/9heDgYM1+5+fnw9PTE3l5efDw8CiNj4IgCIIgCIIgCIIgFDFqh5brCn9BQQEyMjKQnJxs2WZnZ4fk5GSkpaXJHpOWliZqDwApKSmW9qdOnUJOTo6ojaenJxITEy1t0tLS4OXlZTH2ASA5ORl2dnZIT0+Xfd27d+8iPz9f9CAIgiAIgiAIgiCIh5VyNfivXLmCwsJCBAQEiLYHBAQgJydH9picnBzV9ua/Wm38/f1F+6tUqQIfHx/F1502bRo8PT0tj9DQUJ3vkiAIgiAIgiAIgiDKnnLP4X9UmDBhAvLy8iyPc+fOlXeXCIIgCIIgCIIgCEKRcjX4fX19YW9vj0uXLom2X7p0CYGBgbLHBAYGqrY3/9Vqw4sC3r9/H7m5uYqv6+TkBA8PD9GDIAiCIAiCIAiCIB5WytXgd3R0REJCAjZv3mzZVlRUhM2bNyMpKUn2mKSkJFF7ANi4caOlfY0aNRAYGChqk5+fj/T0dEubpKQkXLt2DRkZGZY2W7ZsQVFRERITE0vt/REEQRAEQRAEQRBEeVGlvDswbtw4DB48GI0bN0bTpk3x8ccf4+bNmxgyZAgA4Omnn0b16tUxbdo0AMCYMWPQqlUrfPjhh3jiiSewdOlS7NmzB59//jkAwGQyYezYsXj77bdRu3Zt1KhRA5MmTUJwcDC6d+8OAKhTpw46duyI4cOHY/78+bh37x5GjRqFfv366VLoBwBzcQMS7yMIgiAIgiAIgiDKArP9qbvYHnsImDNnDgsLC2OOjo6sadOm7I8//rDsa9WqFRs8eLCo/fLly1lUVBRzdHRk9erVY7/88otof1FREZs0aRILCAhgTk5OrF27diw7O1vU5urVq6x///7M3d2deXh4sCFDhrDr16/r7vO5c+cYAHrQgx70oAc96EEPetCDHvSgBz3K9HHu3DlddquJMb2uAUJIUVERLly4gKpVq8JkMpV3dxTJz89HaGgozp07R7oDhFXQGCJsgcYPYSs0hghboTFE2AKNH8JWSnsMMcZw/fp1BAcHw85OO0O/3EP6H1Xs7OwQEhJS3t3QDQkNErZCY4iwBRo/hK3QGCJshcYQYQs0fghbKc0x5OnpqbstleUjCIIgCIIgCIIgiAoIGfwEQRAEQRAEQRAEUQEhg7+C4+TkhClTpsDJyam8u0I8otAYImyBxg9hKzSGCFuhMUTYAo0fwlbKewyRaB9BEARBEARBEARBVEBohZ8gCIIgCIIgCIIgKiBk8BMEQRAEQRAEQRBEBYQMfoIgCIIgCIIgCIKogJDBTxAEQRAEQRAEQRAVEDL4Kzhz585FREQEnJ2dkZiYiN27d5d3l4gyZurUqTCZTKJHTEyMZf+dO3cwcuRIVKtWDe7u7ujVqxcuXbokOsfZs2fxxBNPwNXVFf7+/hg/fjzu378varNt2zbEx8fDyckJkZGRWLhwYVm8PeIBsGPHDnTp0gXBwcEwmUxYs2aNaD9jDJMnT0ZQUBBcXFyQnJyM48ePi9rk5uZi4MCB8PDwgJeXF4YOHYobN26I2hw4cAAtWrSAs7MzQkNDMWPGDElfVqxYgZiYGDg7OyM2NhZr164t9fdLlD5aY+iZZ56RXJc6duwoakNjqPIybdo0NGnSBFWrVoW/vz+6d++O7OxsUZuyvHfRXOrRQ88Yat26teQ69MILL4ja0BiqnMybNw8NGjSAh4cHPDw8kJSUhHXr1ln2P3LXH0ZUWJYuXcocHR3ZV199xQ4dOsSGDx/OvLy82KVLl8q7a0QZMmXKFFavXj128eJFy+Pvv/+27H/hhRdYaGgo27x5M9uzZw9r1qwZa968uWX//fv3Wf369VlycjLbt28fW7t2LfP19WUTJkywtPnf//7HXF1d2bhx49jhw4fZnDlzmL29PVu/fn2ZvleidFi7di1788032apVqxgAtnr1atH+6dOnM09PT7ZmzRq2f/9+1rVrV1ajRg12+/ZtS5uOHTuyuLg49scff7CdO3eyyMhI1r9/f8v+vLw8FhAQwAYOHMiysrLYd999x1xcXNhnn31mafP7778ze3t7NmPGDHb48GE2ceJE5uDgwA4ePPjAPwPCNrTG0ODBg1nHjh1F16Xc3FxRGxpDlZeUlBS2YMEClpWVxTIzM1nnzp1ZWFgYu3HjhqVNWd27aC71aKJnDLVq1YoNHz5cdB3Ky8uz7KcxVHn58ccf2S+//MKOHTvGsrOz2RtvvMEcHBxYVlYWY+zRu/6QwV+Badq0KRs5cqTleWFhIQsODmbTpk0rx14RZc2UKVNYXFyc7L5r164xBwcHtmLFCsu2I0eOMAAsLS2NMVY8cbezs2M5OTmWNvPmzWMeHh7s7t27jDHGXn31VVavXj3RuVNTU1lKSkopvxuirOGNtaKiIhYYGMjef/99y7Zr164xJycn9t133zHGGDt8+DADwP78809Lm3Xr1jGTycTOnz/PGGPs008/Zd7e3pYxxBhjr732GouOjrY879u3L3viiSdE/UlMTGTPP/98qb5H4sGiZPB369ZN8RgaQ4SQy5cvMwBs+/btjLGyvXfRXKpiwI8hxooN/jFjxigeQ2OIEOLt7c2+/PLLR/L6QyH9FZSCggJkZGQgOTnZss3Ozg7JyclIS0srx54R5cHx48cRHByMmjVrYuDAgTh79iwAICMjA/fu3RONk5iYGISFhVnGSVpaGmJjYxEQEGBpk5KSgvz8fBw6dMjSRngOcxsaaxWPU6dOIScnR/R9e3p6IjExUTRmvLy80LhxY0ub5ORk2NnZIT093dKmZcuWcHR0tLRJSUlBdnY2/vnnH0sbGlcVl23btsHf3x/R0dF48cUXcfXqVcs+GkOEkLy8PACAj48PgLK7d9FcquLAjyEzS5Ysga+vL+rXr48JEybg1q1bln00hggAKCwsxNKlS3Hz5k0kJSU9ktefKsbeMvGocOXKFRQWFooGGgAEBATg6NGj5dQrojxITEzEwoULER0djYsXL+Lf//43WrRogaysLOTk5MDR0RFeXl6iYwICApCTkwMAyMnJkR1H5n1qbfLz83H79m24uLg8oHdHlDXm71zu+xaOB39/f9H+KlWqwMfHR9SmRo0aknOY93l7eyuOK/M5iEeXjh07omfPnqhRowZOnjyJN954A506dUJaWhrs7e1pDBEWioqKMHbsWDz22GOoX78+AJTZveuff/6huVQFQG4MAcCAAQMQHh6O4OBgHDhwAK+99hqys7OxatUqADSGKjsHDx5EUlIS7ty5A3d3d6xevRp169ZFZmbmI3f9IYOfICo4nTp1svzfoEEDJCYmIjw8HMuXLydDnCCIcqFfv36W/2NjY9GgQQPUqlUL27ZtQ7t27cqxZ8TDxsiRI5GVlYXffvutvLtCPKIojaHnnnvO8n9sbCyCgoLQrl07nDx5ErVq1SrrbhIPGdHR0cjMzEReXh5WrlyJwYMHY/v27eXdLaugkP4Kiq+vL+zt7SWKkZcuXUJgYGA59Yp4GPDy8kJUVBROnDiBwMBAFBQU4Nq1a6I2wnESGBgoO47M+9TaeHh4kFOhgmH+ztWuLYGBgbh8+bJo//3795Gbm1sq44quYRWPmjVrwtfXFydOnABAY4goZtSoUfj555+xdetWhISEWLaX1b2L5lKPPkpjSI7ExEQAEF2HaAxVXhwdHREZGYmEhARMmzYNcXFxmDVr1iN5/SGDv4Li6OiIhIQEbN682bKtqKgImzdvRlJSUjn2jChvbty4gZMnTyIoKAgJCQlwcHAQjZPs7GycPXvWMk6SkpJw8OBB0eR748aN8PDwQN26dS1thOcwt6GxVvGoUaMGAgMDRd93fn4+0tPTRWPm2rVryMjIsLTZsmULioqKLBOqpKQk7NixA/fu3bO02bhxI6Kjo+Ht7W1pQ+OqcvDXX3/h6tWrCAoKAkBjqLLDGMOoUaOwevVqbNmyRZK6UVb3LppLPbpojSE5MjMzAUB0HaIxRJgpKirC3bt3H83rjyGJP+KRYunSpczJyYktXLiQHT58mD333HPMy8tLpBhJVHxefvlltm3bNnbq1Cn2+++/s+TkZObr68suX77MGCsuLRIWFsa2bNnC9uzZw5KSklhSUpLleHNpkQ4dOrDMzEy2fv165ufnJ1taZPz48ezIkSNs7ty5VJbvEeb69ets3759bN++fQwAmzlzJtu3bx87c+YMY6y4LJ+Xlxf74Ycf2IEDB1i3bt1ky/I1atSIpaens99++43Vrl1bVFLt2rVrLCAggA0aNIhlZWWxpUuXMldXV0lJtSpVqrAPPviAHTlyhE2ZMoVKqj0iqI2h69evs1deeYWlpaWxU6dOsU2bNrH4+HhWu3ZtdufOHcs5aAxVXl588UXm6enJtm3bJiqZduvWLUubsrp30Vzq0URrDJ04cYK99dZbbM+ePezUqVPshx9+YDVr1mQtW7a0nIPGUOXl9ddfZ9u3b2enTp1iBw4cYK+//jozmUxsw4YNjLFH7/pDBn8FZ86cOSwsLIw5Ojqypk2bsj/++KO8u0SUMampqSwoKIg5Ojqy6tWrs9TUVHbixAnL/tu3b7MRI0Ywb29v5urqynr06MEuXrwoOsfp06dZp06dmIuLC/P19WUvv/wyu3fvnqjN1q1bWcOGDZmjoyOrWbMmW7BgQVm8PeIBsHXrVgZA8hg8eDBjrLg036RJk1hAQABzcnJi7dq1Y9nZ2aJzXL16lfXv35+5u7szDw8PNmTIEHb9+nVRm/3797PHH3+cOTk5serVq7Pp06dL+rJ8+XIWFRXFHB0dWb169dgvv/zywN43UXqojaFbt26xDh06MD8/P+bg4MDCw8PZ8OHDJRMYGkOVF7mxA0B0XynLexfNpR49tMbQ2bNnWcuWLZmPjw9zcnJikZGRbPz48SwvL090HhpDlZNnn32WhYeHM0dHR+bn58fatWtnMfYZe/SuPybGGDMWE0AQBEEQBEEQBEEQxMMO5fATBEEQBEEQBEEQRAWEDH6CIAiCIAiCIAiCqICQwU8QBEEQBEEQBEEQFRAy+AmCIAiCIAiCIAiiAkIGP0EQBEEQBEEQBEFUQMjgJwiCIAiCIAiCIIgKCBn8BEEQBEEQBEEQBFEBIYOfIAiCICohzzzzDLp3715urz9o0CC8++67qm0iIiLw8ccfl0l/CgoKEBERgT179pTJ6xEEQRBEWVClvDtAEARBEETpYjKZVPdPmTIFs2bNAmOsjHokZv/+/Vi7di3mzZtXLq8vh6OjI1555RW89tpr2Lx5c3l3hyAIgiBKBTL4CYIgCKKCcfHiRcv/y5Ytw+TJk5GdnW3Z5u7uDnd39/LoGgBgzpw56NOnT7n2QY6BAwfi5ZdfxqFDh1CvXr3y7g5BEARB2AyF9BMEQRBEBSMwMNDy8PT0hMlkEm1zd3eXhPS3bt0ao0ePxtixY+Ht7Y2AgAB88cUXuHnzJoYMGYKqVasiMjIS69atE71WVlYWOnXqBHd3dwQEBGDQoEG4cuWKYt8KCwuxcuVKdOnSRbT98uXL6NKlC1xcXFCjRg0sWbJEcuzMmTMRGxsLNzc3hIaGYsSIEbhx4wYA4ObNm/Dw8MDKlStFx6xZswZubm64fv06CgoKMGrUKAQFBcHZ2Rnh4eGYNm2apa23tzcee+wxLF26VPdnTRAEQRAPM2TwEwRBEAQBAFi0aBF8fX2xe/dujB49Gi+++CL69OmD5s2bY+/evejQoQMGDRqEW7duAQCuXbuGtm3bolGjRtizZw/Wr1+PS5cuoW/fvoqvceDAAeTl5aFx48ai7c888wzOnTuHrVu3YuXKlfj0009x+fJlURs7OzvMnj0bhw4dwqJFi7Blyxa8+uqrAAA3Nzf069cPCxYsEB2zYMEC9O7dG1WrVsXs2bPx448/Yvny5cjOzsaSJUsQEREhat+0aVPs3LnT2o+QIAiCIB4qKKSfIAiCIAgAQFxcHCZOnAgAmDBhAqZPnw5fX18MHz4cADB58mTMmzcPBw4cQLNmzfDJJ5+gUaNGIvG9r776CqGhoTh27BiioqIkr3HmzBnY29vD39/fsu3YsWNYt24ddu/ejSZNmgAA/vvf/6JOnTqiY8eOHWv5PyIiAm+//TZeeOEFfPrppwCAYcOGoXnz5rh48SKCgoJw+fJlrF27Fps2bQIAnD17FrVr18bjjz8Ok8mE8PBwSf+Cg4Nx5swZaz4+giAIgnjooBV+giAIgiAAAA0aNLD8b29vj2rVqiE2NtayLSAgAAAsK+/79+/H1q1bLZoA7u7uiImJAQCcPHlS9jVu374NJycnkbDgkSNHUKVKFSQkJFi2xcTEwMvLS3Tspk2b0K5dO1SvXh1Vq1bFoEGDcPXqVUvEQdOmTVGvXj0sWrQIAPDNN98gPDwcLVu2BFAcRZCZmYno6Gj861//woYNGyT9c3FxsZyPIAiCIB51yOAnCIIgCAIA4ODgIHpuMplE28xGelFREQDgxo0b6NKlCzIzM0WP48ePW4xsHl9fX9y6dQsFBQWG+nb69Gk8+eSTaNCgAb7//ntkZGRg7ty5ACA617Bhw7Bw4UIAxeH8Q4YMsfQ7Pj4ep06dwn/+8x/cvn0bffv2Re/evUWvk5ubCz8/P0N9IwiCIIiHFTL4CYIgCIKwivj4eBw6dAgRERGIjIwUPdzc3GSPadiwIQDg8OHDlm0xMTG4f/8+MjIyLNuys7Nx7do1y/OMjAwUFRXhww8/RLNmzRAVFYULFy5Izv/UU0/hzJkzmD17Ng4fPozBgweL9nt4eCA1NRVffPEFli1bhu+//x65ubmW/VlZWWjUqJE1HwdBEARBPHSQwU8QBEEQhFWMHDkSubm56N+/P/7880+cPHkSv/76K4YMGYLCwkLZY/z8/BAfH4/ffvvNsi06OhodO3bE888/j/T0dGRkZGDYsGFwcXGxtImMjMS9e/cwZ84c/O9//8PixYsxf/58yfm9vb3Rs2dPjB8/Hh06dEBISIhl38yZM/Hdd9/h6NGjOHbsGFasWIHAwEBR6sDOnTvRoUOHUvh0CIIgCKL8IYOfIAiCIAirCA4Oxu+//47CwkJ06NABsbGxGDt2LLy8vGBnpzzFGDZsmKTs3oIFCxAcHIxWrVqhZ8+eeO6550TCfnFxcZg5cybee+891K9fH0uWLBGV1BMydOhQFBQU4NlnnxVtr1q1KmbMmIHGjRujSZMmOH36NNauXWvpa1paGvLy8iRh/gRBEATxqGJijLHy7gRBEARBEJWH27dvIzo6GsuWLUNSUlKpn3/x4sV46aWXcOHCBTg6Ouo+LjU1FXFxcXjjjTdKvU8EQRAEUR5QWT6CIAiCIMoUFxcXfP3117hy5UqpnvfWrVu4ePEipk+fjueff96QsV9QUIDY2Fi89NJLpdongiAIgihPaIWfIAiCIIgKwdSpU/HOO++gZcuW+OGHH+Du7l7eXSIIgiCIcoUMfoIgCIIgCIIgCIKogJBoH0EQBEEQBEEQBEFUQMjgJwiCIAiCIAiCIIgKCBn8BEEQBEEQBEEQBFEBIYOfIAiCIAiCIAiCICogZPATBEEQBEEQBEEQRAWEDH6CIAiCIAiCIAiCqICQwU8QBEEQBEEQBEEQFRAy+AmCIAiCIAiCIAiiAkIGP0EQBEEQBEEQBEFUQP4PPnOGgAz7XDUAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "plt.plot(times,ecc[0],label=labels[1])\n", + "plt.plot(times,ecc[1],label=labels[2])\n", + "plt.plot(times,ecc[2],label=labels[3])\n", + "plt.plot(times,ecc[3],label=labels[4])\n", + "ax.set_xlabel(\"Time (days)\")\n", + "ax.set_ylabel(\"Eccentricity\")\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can plot their x-locations as a function of time as well, and observe their relative motions around Jupiter." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Y7OysjL6XRAEo21lN/N6vR4AkJubi65du+LEiRNGr7/++stwM36vWrVqIT8/HxqN5rFiu3z5Mrp06YLGjRvjp59+QmJiIubNmwcARmUNHToU8fHxAEqGEQwePNgQd3h4OJKTk/HJJ5+goKAAffv2Re/evY3qycjIgJub22PFRkREZI6YGCAiIqJKFx4ejjNnzsDX1xcNGjQwetnZ2d33Pc899xwA4OzZs4ZtQUFB0Gq1SExMNGxLSkpCZmam4ffExETo9Xp89dVXaNGiBQICAnDjxo1y5b/66qu4cuUKYmNjcfbsWQwcONBov1qtRr9+/bB48WKsXr0aP/30EzIyMgz7T58+jbCwsCf5OIiIiMwKEwNERERU6UaOHImMjAy8/PLLOHLkCC5evIgtW7Zg8ODB0Ol0932Pm5sbwsPDsW/fPsO2wMBAdOzYEW+++SYOHTqExMREDB06FCqVynBMgwYNUFxcjDlz5uDSpUtYtmwZFi5cWK58Z2dn9OzZE++++y6ioqJQp04dw75Zs2bhhx9+wPnz5/Hnn39izZo18PT0NBqysHfvXkRFRZng0yEiIpIWEwNERERU6by9vbF//37odDpERUUhJCQE48aNg5OTE2SyB1+ODB06tNxyhHFxcfD29sa///1v9OzZE2+88YbRBIWhoaGYNWsWPvvsMzRq1AgrVqwwWmrwbkOGDIFGo8Hrr79utN3BwQGff/45mjRpgqZNm+Ly5cv47bffDLEeOHAAWVlZ5YYXEBERVUeCKIqi1EEQERER3U9BQQECAwOxevVqREZGmrz8ZcuW4e2338aNGzegVCor/L5+/fohNDQUH3zwgcljIiIiqmpcrpCIiIjMlkqlwtKlS3Hr1i2Tlpufn4+UlBTMnDkTb7755mMlBTQaDUJCQvD222+bNCYiIiKpsMcAERERWZyPPvoIM2bMQOvWrbFhwwbY29tLHRIREZFkmBggIiIiIiIismCcfJCIiIiIiIjIgjExQERERERERGTBmBggIiIiIiIismBMDBARERERERFZMCYGiIiIiIiIiCwYEwNEREREREREFoyJASIiIiIiIiILxsQAERERERERkQVjYoCIiIiIiIjIgv0/9KUGomNWW5gAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "plt.plot(times,x[0],label=labels[1])\n", + "plt.plot(times,x[1],label=labels[2])\n", + "plt.plot(times,x[2],label=labels[3])\n", + "plt.plot(times,x[3],label=labels[4])\n", + "ax.set_xlim(0,0.2*365.25)\n", + "ax.set_xlabel(\"Time (days)\")\n", + "ax.set_ylabel(\"x locations (AU)\")\n", + "ax.tick_params()\n", + "plt.legend();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Resonances are identified by looking at the resonant arguments, which are defined as: \n", + " $$ \\theta = (p + q)\\lambda_{\\rm out} - p \\lambda_{\\rm in} - q \\omega_{\\rm out/in}$$\n", + " where $\\lambda_{\\rm out}$ and $\\lambda_{\\rm in}$ are the mean longitudes of the outer and inner bodies, respectively,\n", + " and $\\omega_{\\rm out}$ is the longitude of pericenter of the outer/inner body.\n", + " The ratio of periods is defined as : $$P_{\\rm in}/P_{\\rm out} ~= p / (p + q)$$\n", + "\n", + " If the resonant argument, $\\theta$, oscillates but is constrained within some range of angles, then \n", + " there is a resonance between the inner and outer bodies. We call this libration of the angle $\\theta$. \n", + " The trick is to find what the values of q and p are. For our case, we can easily see that \n", + " there are two 2:1 resonances between the moons, so their resonant arguments would follow \n", + " the function:\n", + " $$\\theta = 2 \\lambda_{\\rm out} - \\lambda_{\\rm in} - \\omega_{\\rm out}$$\n", + "\n", + " To make the plotting easier, we can borrow this helper function that puts angles into 0 to 360 degrees \n", + " from another example (Fourier analysis & resonances), and define a new one that puts angles\n", + " into -180 to 180 degrees." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def zeroTo360(val):\n", + " while val < 0:\n", + " val += 2*np.pi\n", + " while val > 2*np.pi:\n", + " val -= 2*np.pi\n", + " return (val*180/np.pi)\n", + "\n", + "def min180To180(val):\n", + " while val < -np.pi:\n", + " val += 2*np.pi\n", + " while val > np.pi:\n", + " val -= 2*np.pi\n", + " return (val*180/np.pi)\n", + "\n", + "# We can calculate theta, the resonant argument of the 1:2 Io-Europa orbital resonance,\n", + "# which oscillates about 0 degrees:\n", + "theta = [min180To180(2.*longitude[1][i] - longitude[0][i] - varpi[0][i]) for i in range(Nout)]\n", + "\n", + "# There is also a secular resonance argument, corresponding to the difference in the longitude of perihelions:\n", + "# This angle oscillates around 180 degs, with a longer period component.\n", + "theta_sec = [zeroTo360(-varpi[1][i] + varpi[0][i]) for i in range(Nout)]\n", + "\n", + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "ax.plot(times,theta) \n", + "ax.plot(times,theta_sec) # secular resonance argument\n", + "ax.set_xlim([0,20.*365.25])\n", + "ax.set_ylim([-180,360.])\n", + "ax.set_xlabel(\"time (days)\")\n", + "ax.set_ylabel(r\"resonant argument $\\theta_{2:1}$\")\n", + "ax.plot([0,100],[180,180],'k--')\n", + "ax.plot([0,100],[0,0],'k--')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Io, Europa and Ganymede are in a Laplace 1:2:4 resonance,\n", + "which additionally has a longer period libration argument that depends on all three of \n", + "their mean longitudes, that appears slightly in the other resonant arguments:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "thetaL = [zeroTo360(-longitude[0][i] + 3.*longitude[1][i] - 2.*longitude[2][i]) for i in range(Nout)]\n", + "\n", + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "\n", + "ax.plot(times,thetaL)\n", + "ax.set_ylim([0,360.])\n", + "ax.set_xlabel(\"time (days)\")\n", + "ax.set_ylabel(r\"libration argument $\\theta_{2:1}$\")\n", + "ax.plot([0,200],[180,180],'k--')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For completeness, let's take a brief look at the Fourier transforms of the x-positions\n", + "of Io, and see if it has oscillations related to the MMR.\n", + "We are going to use the scipy Lomb-Scargle periodogram function, \n", + "which is good for non-uniform time series analysis. Therefore, \n", + "if we used the IAS15 integrator, which has adaptive timesteps, \n", + "this function would still work." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "from scipy import signal\n", + "Npts = 3000\n", + "\n", + "# look for periodicities with periods logarithmically spaced between 0.01 yrs and 100 yrs\n", + "logPmin = np.log10(0.001*365.25)\n", + "logPmax = np.log10(10.*365.25)\n", + "\n", + "# set up a logspaced array from 0.01 to 100 yrs\n", + "Ps = np.logspace(logPmin,logPmax,Npts)\n", + "# calculate an array of corresponding angular frequencies\n", + "ws = np.asarray([2*np.pi/P for P in Ps])\n", + "\n", + "# calculate the periogram (for Io) (using ws as the values for which to compute it)\n", + "periodogram = signal.lombscargle(times,x[0],ws)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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XKHPP/88bFnPnj1VUlJyxm2tWrVKP/3pTzVs2DBddtlliouL05EjR8LatGnTRkVFRXr11Vc1f/583XfffWH3WywWXXPNNfrFL36hTz75RE6nU//zP/9j3r9lyxY5HA5ddtllTT4OAABaCnoYAACAJl166aUaNWqURo8erZkzZ+qKK67Q4cOHtXz5cl1++eW69dZbz2o7CQkJeuihh/Tzn/9caWlp6tixo2bMmKGamhqNGTNGkvSTn/xEM2fO1M9//nM98MAD2rBhg+bPn9/ktocMGaIFCxaELXv00Ud17733qn///rrmmmv02muvaevWrbrkkkvMNt26ddNf/vIX9e/fX263Wz//+c/NIQQne+CBB3TbbbcpEAjonnvuMZeXlJRo+fLluvnmm5WRkaGSkhIdPnxYPXv2NNt8+OGHGjx4cKPbBQCgpaKHAQAAOCuvvvqqRo8erccff1zdu3dXUVGR1q1bp44dO57Tdp5//nkNHz5cd999t6688kp9+eWXevfdd5WamipJ6tixo/77v/9bixcvVt++fTV37lw999xzTW531KhR2rp1q3bs2GEuGzFihJ555hlNmDBB/fr10zfffKOHHnoobL0//vGPOnbsmK688krdfffd5lc+nqqwsFDt2rXTkCFDwiZXTEpK0sqVKzVs2DBdeumlevrppzVz5kzdcsstZps33nhDDz744Dk9TwAARJvFOPk7fwAAAL7Dfv7zn8vtduv3v/99s2+7urpa7du316uvvqof/vCHZ73eP/7xDz3++OPatGlT2DAPAABaOnoYAACAfxmTJ09Wp06dFAwGm22bwWBQhw4d0q9+9SulpKTojjvuOKf1PR6PXn31VcICAMB3Dj0MAAAAzmD37t3Kzc1Vhw4dNH/+fN10003RLgkAgIuCwAAAAAAAAERgSAIAAAAAAIhAYAAAAAAAACIQGAAAAAAAgAgEBgAAAAAAIAKBAQAAAAAAiEBgAAAAAAAAIhAYAAAAAACACAQGAAAAAAAgwv8P97bmuGSfiEcAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(12,5))\n", + "ax = plt.subplot(111)\n", + "\n", + "# Since the computed periodogram is unnormalized, taking the value A**2*N/4, \n", + "# we renormalize the results by applying these functions inversely to the output:\n", + "ax.set_xscale('log')\n", + "ax.set_xlim([10**logPmin,10**logPmax])\n", + "ax.set_xlabel(\"Period (days)\")\n", + "ax.set_ylabel(\"Power\")\n", + "ax.plot(Ps,np.sqrt(4*periodogram/Nout))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first spike at about 2 days is caused by the motion of Io around Jupiter\n", + "in its orbit.\n", + "\n", + "The other spikes, corresponding to oscillations with periods of around 1 year, \n", + "are caused by the MMR of the moons. The largest spike at ~1.3 years is the from \n", + "the 1:2 resonance of the two inner moons, Io and Europa." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/Rotations.ipynb b/rebound/source/ipython_examples/Rotations.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..b9694b445a639d330ed819bf7d7cd44c471d2f5d --- /dev/null +++ b/rebound/source/ipython_examples/Rotations.ipynb @@ -0,0 +1,525 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ba32220e", + "metadata": {}, + "source": [ + "# Rotations\n", + "\n", + "This gives an introduction to REBOUND's built-in rotations framework, with a focus on rotations typically encountered in celestial mechanics.\n", + "\n", + "REBOUND has a general `Rotation` class. This is implemented used quaternions. However, you don't need to understand anything about quaternions in order to use it. Let's create a rotation that rotates counterclockwise by 45 degrees around the z axis [0,0,1]" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "e12cb8f6", + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "\n", + "rot = rebound.Rotation(angle=np.radians(45), axis=[0,0,1])" + ] + }, + { + "cell_type": "markdown", + "id": "178b4821", + "metadata": {}, + "source": [ + "Alternatively, you can create the same rotation with the shorthand:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "127d5b0f", + "metadata": {}, + "outputs": [], + "source": [ + "rot = rebound.Rotation(angle=np.radians(45), axis=\"z\")" + ] + }, + { + "cell_type": "markdown", + "id": "e34d9a17", + "metadata": {}, + "source": [ + "A rotation can act on various objects. For example, we can act on three vector:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "b060b7d4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[0.0, 1.4142135623730951, 1.0]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "result = rot*[1,1,1]\n", + "result" + ] + }, + { + "cell_type": "markdown", + "id": "9b8ebb1e", + "metadata": {}, + "source": [ + "We can also get the inverse of any rotation object and undo the previous rotation:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "c35dd4cd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[1.0, 1.0, 1.0]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rot.inverse()*result" + ] + }, + { + "cell_type": "markdown", + "id": "63020a64", + "metadata": {}, + "source": [ + "We can chain rotations. Here we first rotate around z axis by 90 degrees, then around the x axis by 90 degrees. Note that the order matters, just like when multiplying matricies." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "e9308e6a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[-0.9999999999999996, -0.9999999999999998, 1.0000000000000004]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "r1 = rebound.Rotation(angle=np.radians(90), axis=\"z\")\n", + "r2 = rebound.Rotation(angle=np.radians(90), axis=\"x\")\n", + "r2*r1*[1,1,1]" + ] + }, + { + "cell_type": "markdown", + "id": "3f09f64f", + "metadata": {}, + "source": [ + "# Orbits in three dimensions\n", + "The `Rotation` class offers constructors that are useful when working with orbital elements. \n", + "Suppose we create a simulation with a planet on an inclined orbit, and one in the xy plane:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "b27861bd", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdgAAAHCCAYAAABMlNhkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAACCdUlEQVR4nO3deVxU1f8/8NcMwzDCsMomsgjI5r6CuOSGmaZpi5qampmWZWaWJp9MUytNray00sxccs/cV8SF3JBVQREB2WFA1mEYhmG49/eHX+YXyTIgM3cG3s/HYx7KnXtn3pfh3tfce889h8eyLAtCCCGEtCg+1wUQQgghrREFLCGEEKIFFLCEEEKIFlDAEkIIIVpAAUsIIYRoAQUsIYQQogUUsIQQQogWCLguQN8xDIOcnByYm5uDx+NxXQ4hhAMsy6KsrAxOTk7g8+m4hGiGArYROTk5cHFx4boMQogeyMzMhLOzM9dlEANBAdsIc3NzAE82LAsLC46rIYRwQSqVwsXFRb0/IEQTFLCNqDktbGFhQQFLSBtHl4lIU9DFBEIIIUQLKGAJIYQQLaCAJYQQQrTA4AJ2y5Yt6NSpE0QiEQICAnD79u165925cyd4PF6th0gk0mG1hBBC2iqDCtiDBw9i8eLFWLlyJaKjo9GzZ0+MHj0a+fn59S5jYWGB3Nxc9SM9PV2HFRNCCGmrDCpgv/vuO8ydOxezZ89Gly5d8Ouvv8LU1BQ7duyodxkejwdHR0f1w8HBocH3qKyshFQqrfUghBBCmspgAlapVCIqKgpBQUHqaXw+H0FBQbh582a9y8lkMri5ucHFxQUTJkzAvXv3GnyftWvXwtLSUv2gTiYIIYQ0h8EEbEFBAaqrq586AnVwcIBEIqlzGR8fH+zYsQPHjx/Hn3/+CYZhMHDgQGRlZdX7PsHBwSgtLVU/MjMzW3Q9CCGEtA2tuqOJwMBABAYGqn8eOHAg/Pz8sHXrVqxZs6bOZUxMTGBiYqKrEgkhhLRSBnMEa2trCyMjI+Tl5dWanpeXB0dHR41ew9jYGL1790ZycrI2SiSEEELUDCZghUIh+vbti9DQUPU0hmEQGhpa6yi1IdXV1YiLi0OHDh20VSYhhBACwMBOES9evBizZs1Cv3794O/vj02bNqG8vByzZ88GAMycORMdO3bE2rVrAQCrV6/GgAED0LlzZ5SUlGDDhg1IT0/H22+/zeVqEEIIaQMMKmCnTJmCx48fY8WKFZBIJOjVqxfOnTunbviUkZFRa6zG4uJizJ07FxKJBNbW1ujbty9u3LiBLl26cLUKhBBC2ggey7Is10XoM6lUCktLS5SWltJoOoS0UbQfIM1hMNdgCSGEEENCAUsIIYRoAQUsIYQQogUUsIQQQogWUMASQgghWkABSwghhGgBBSwhhBCiBRSwhBBCiBZQwBJCCCFaYFBdJZLWTaVSQaFQqB+VlZVQqVRQqVSorq4GwzC1/l9dXQ2VSgWGYVDTIRmPx2v0fYyMjGBsbAwjIyPw+XzweDwIBAIIBAL1//l8PgQCAYyMjCAQCCAUCiEUCtX/Fwho0yGENIz2EkSrVCoVZDIZpFIpysvLIZPJUF5eDqVSCaVSicrKSvX/GYZ5ankjIyN1oNWEX00w1oQfj8dTB2ZDwffv16/ps1qpVIJlWXVQ/zu8a+Y3NjZ+6rVq3l8oFKoDWygUol27djAxMYFQKIRIJFL/++8+sgkhbQMFLHkmDMNAKpWisLAQxcXFkEqlkMvlkMvl6iD9t5oQsrCwgFgsRvv27dWBVDPYvUgkUj+EQiFHa/b/KZVKqFSqWv9WVVU99f+KigrI5XL1Ufe/CQQCmJiYwNjYWL2+ZmZmtdaVENK6UMASjahUKhQUFKiDtKSkBCUlJZBKpaiurgbw5GjT2toa5ubmsLe3h5mZGcRiMczMzNSBaoinVmtOD5uammq8TE34KhSKWkfqlZWVKC8vh1QqRX5+vnp+Pp8PY2NjtGvXDiKR6KkvGnQETIjhMby9HdE6lUqF/Px85OTkID8/H3l5eSgvLwcAsCyLdu3awcrKCh06dICvry/at28Pa2trWFlZcVu4Hqm5pttQKDMMow5huVyOyspKKBQKlJaWorKyUn2KuuZ1RCKROoBrfiaE6C8KWIKioiJkZGQgNzcXjx8/RlFREaqrq8Hj8WBtbQ0HBwfY29vD0dER9vb2enHatjXg8/nqI9S6vpwolUrI5fJaR8EFBQXq0898Ph8mJiYwNTVV/2tqamqQZwkIaY1oS2yD5HI5kpOTkZaWhoyMDJSVlUEgEMDa2hr29vbw8/ODg4MDnJycaGfNoZpT0/+lUqnUwVtRUQGFQoHi4mKwLAuBQFDnkS6dYiZE92jv2QaoVCqkpKQgLS0N6enpKCwsBABYWVnBw8MDbm5ucHd3b9I1RsIdgUAACwuLpwb+/vfp5oqKCpSVlalPM9eEbs1RLp2FIET7KGBbKZVKhcTERNy7dw+PHj1CdXU1xGIxXF1d0a9fP3Tu3PmpHTQxbDVHvP/+XGsCtyZ0i4uL1aemawJXX1prE9LaUMC2IjWhmpCQgKSkJCiVStjY2KBv377w8/ODs7Mz1yUSHau5xmtjYwPgScOqmo485HI5Hj9+DOD/30ZE13EJaTm0FbUCOTk5uH37NlJSUiCTyWBjY4N+/fqha9eucHJy4ro8okf4fL46RG1sbNSBW3NN99+Ba25urj6dTNdwCWk6ClgDxTAM4uPjcfPmTWRkZKBdu3bo2bMn+vbtS6FKNPbvwAWe/F39u+WyXC4HAGowRUgzUMAaGLlcjps3byIiIgJlZWXo0KEDJk6ciN69e9NpPfLM+Hw+xGIxxGIxgP/fP7RcLkdRUREAqLt/pFPJhDSMtg4DoVAocOnSJcTGxkKlUsHLywsDBw6Em5sb16WRVkwgEKgD99/Xb2v6l6YjW0LqRwGr5xiGwY0bNxAaGgqFQoHevXvj+eefp16TiM7993SyQqFQ35Mrl8vV9+DSNVtCnqCA1WMxMTE4f/48ioqK0LVrV4wZMwb29vZcl0UIAKi7ahSLxeprtjKZDABqjSZESFtFXzP1kEwmw/bt2/HXX39BLBbj/fffx6xZsyhcid4SiUSwsLCAjY2N+nSyVCqFVCqtcyjCdevWwdzcXN1aed26dRxVToj28NiakapJnaRSKSwtLVFaWqqTjhkSEhKwf/9+VFZWYuLEiQgMDNT6exKiDQzDqEcVAqAerN7X1xdJSUlPze/t7Y3ExERdl6kRXe8HSOtAR7B6QqVS4ciRI9i2bRusrKywZMkSCldi0Ph8PoRCIcRiMUQiERiGwZo1a+oMVwB4+PAhNmzYoOMqCdEeOoJthC6+uSoUCmzfvh1ZWVkYPHgwxo4dS41ESKskFovVQx/W93xZWZkOK9IMHcGS5qBGThyTy+XYvHkzcnNzMWvWLPTq1YvrkgjRGoVC0eDzFRUVOqqEEO2jwyQOyeVy/Pjjj5BIJHj33XcpXEmr165du0bnkUqlOqiEEO2jgOWIUqnEtm3bkJ+fj/nz58PHx4frkgjRus8++6zB56urq2FjY4OPP/5YPbA8IYaKApYjR44cQUpKCt5++214eXlxXQ4hOrFs2TJ4e3vX+Zy3tzdOnz4NLy8vfPfdd7Czs8OJEyd0XCEhLYcClgOJiYm4evUqhg0bhi5dunBdDiE6lZiYiPXr10MsFsPIyAhisRjr169HYmIixo4di4SEBGzatAkVFRWYMGECBg8ejIKCAq7LJqTJqBVxI1q69aBSqcQXX3wBgUCAFStWUGfphNRDKpXitddeQ0hICIyNjbFixQosX76cs1qoFTFpKjqC1bGwsDDIZDLMnj2bwpWQBlhYWODChQu4ePEiLC0tsX79evTu3RslJSVcl0aIRihgdSwsLAzOzs5wd3fnuhRCDMLIkSORl5eHV199FXfu3IGrqyuuX7/OdVmENIoCVodycnKQmZkJf39/rkshxKDw+Xz88ccf6m5En3vuOeq/mOg9ClgdCg8Ph0AgoIAlpJmmTJmCBw8ewNHREcHBwZg0adJTAwkQoi8oYHUoKysLjo6O6vE0CSFN5+7ujvT0dLzwwgs4e/YsBg0aRCFL9BIFrA4VFxdTuBLSAgQCAc6ePYtXX30Vt27dwpAhQyhkid6hgNWhqqoqmJiYcF0GIa3Grl27MH36dNy4cQPDhg2jkCV6hQJWh/h8Pu0ACGlhf/75J6ZOnYpr165h7ty5XJdDiBoFrA6JxWIUFhZyXQZpBpVKhQ8++IDrMkg99u3bh5dffhk7duzA1q1buS6HEAAGGLBbtmxBp06dIBKJEBAQgNu3bzc4/+HDh+Hr6wuRSITu3bvjzJkzOqr0aR4eHkhPT290yC6if15++WVs3rwZ48eP57oUUo/9+/fD3t4eixYtQlZWFtatWwdzc3MIBAKYm5vTbT1E5wwqYA8ePIjFixdj5cqViI6ORs+ePTF69Gjk5+fXOf+NGzcwdepUzJkzBzExMZg4cSImTpyI+Ph4HVf+RK9evcAwDOLi4jh5f9J8Fy5cqPUv0T9CoRDHjh1DVVUVPDw8EBwcDJlMhurqashkMgQHB9OoVUSnmhWwI0aMwKpVq56aXlxcjBEjRjxzUfX57rvvMHfuXMyePRtdunTBr7/+ClNTU+zYsaPO+X/44Qe88MILWLJkCfz8/LBmzRr06dMHmzdv1lqNDfH09ISDgwNu3LjByfuTpvH29oadnR3s7OygVCoBPOlLumZafaPCEO4EBgbC398fVVVVdT7/8OFDbNiwQcdVkbaqWZ3hXrlyBXFxcYiJicHevXthZmYG4MnO5+rVqy1aYA2lUomoqCgEBwerp/H5fAQFBeHmzZt1LnPz5k0sXry41rTRo0fj2LFj9b5PZWUlKisr1T+39ODP7du3x/79+2FqagorKyv19P82gOLz+WBZFv8di4HH44HH4z31uizL1jkdABiGqfe5mtdsbMyHpowJ0dB71TxfXV2t8es09t48Hg98Pl+j1zQyMtJoXYqLi5GUlFTnczUjuxQUFOC3336DlZWVxrXW1AtAowZvfD5fo3lrXrOx331NfZrM19jv1MjICAzD1LvONe9R32vU91nUt5yxsfFTY8QKBIJa04yMjBATE1NvzQCwevVqLFmypMF5CGkJze5t/uLFi3jnnXcwYMAAnDx5Ep06dWrBsp5WUFCA6upqODg41Jru4OCABw8e1LmMRCKpc36JRFLv+6xdu7bOo/OWEh0djTt37uDDDz+EjY0NKioqAAAikajWtVmRSAQejwe5XF5reVNT06emAUC7du3Ur1XXc3Ut09hr/vt5ACgvL69/xf5vPh6P1+B8NV/GZDJZg6/VlHnFYrHGr1kzb1lZWaPzWlhYNPgFSygU4qOPPgIAmJubA9DsC5m5uTl4PB5KS0sbndfS0hIsyzY6b1Pm4/F4jXaYb2lpCQANzlfzBbG4uLjZz9f1nLW1dZ3LWVtbo6ioqNY0GxubWg0HbWxsGm3jUN92QkhLa3bAdujQAVevXsXs2bPRv39/HD58GH5+fi1ZGyeCg4NrHfVKpVK4uLi02OuvXr0aHh4euHHjBl5//XV07NgRAB3BNvQ6XBzB1qgZ+ei/duzYoQ7rptT673npCFY7R7AzZsxoMGTbtWtX73OEtKRmBWzNBmBiYoJ9+/bhyy+/xAsvvIBPP/20RYv7N1tbWxgZGSEvL6/W9Ly8PDg6Ota5jKOjY5PmB56skzY7g+jRowfWr1+PZcuWITk5Ge+++y5EIpHW3o88m5kzZ9Y5/erVq9i5c6duiyEaSU5OrnUp6b9WrFihw2pIW9asRk7//da5fPly7N27F99++22LFFUXoVCIvn37IjQ0VD2NYRiEhoYiMDCwzmUCAwNrzQ8AISEh9c6vKwKBALNnz0Zubi7dOqDnjh8/DuDJkeTWrVvVR5RHjx7lsizSgGXLltXbAM3b25uuvxLdYZshLS2NZRjmqenx8fHszp07m/OSGjlw4ABrYmLC7ty5k71//z47b9481srKipVIJCzLsuyMGTPYZcuWqee/fv06KxAI2I0bN7IJCQnsypUrWWNjYzYuLk7j9ywtLWUBsKWlpS2+PhcuXGBfeukl9rfffmvx1yYtY+HChWz//v3ZqqoqlmVZtqqqiu3fvz+7cOFCjisjjRk3bhwLgOXz+axYLGbXr1/f7NfS5n6AtF7NClgu/fTTT6yrqysrFApZf39/9tatW+rnhg4dys6aNavW/IcOHWK9vb1ZoVDIdu3alT19+nST3k/bG9b27dvZl156iT127JhWXp+Qtio0NJTl8/ns1q1bn/m1KGBJczS7kRNXFixYgAULFtT53JUrV56aNmnSJEyaNEnLVTXfnDlzUFxcjN9//x0KhQJTpkzhuiRCWgUjIyNYWFhQGwfCGYML2NZo8eLFYBgGu3btwuPHj+v9AkEI0dzt27dRVlaGbt26cV0KaaMoYPUAn8/H0qVLYWdnh8OHD6OwsBCfffYZBAL6eAhprujoaAgEAvTq1YvrUkgbZVB9Ebd2s2fPxnvvvYeIiAgEBwc32CEGIaRh6enp8PDwULf8JkTX6C9Pz4wbNw6rVq1CWloa3n33XZw6dYrrkggxOPHx8YiKisLQoUO5LoW0YTyWbUK3Nm2QVCqFpaUlSktLYWFhobP3LSoqwjfffIOYmBj0798fS5YsqdV3MSGkfs8//zyuXbuGR48eNdixjKa42g8Qw0ZHsHrKxsYG33zzDebPn4+7d+9i7ty5CAsL47osQvReUlISwsLC8Pzzz7dIuBLSXHQE2wh9+OaalZWFr7/+Gnl5efDw8MCCBQvg5ubGSS2E6DOGYdC/f3/I5XKcOXMG7u7uLfK6+rAfIIaHjmANgLOzMzZv3owpU6bg4cOHePvtt7Fhw4YWH0qPEEM3c+ZMxMXFYebMmS0WroQ0Fx3BNkLfvrnKZDJs374dZ86cgVAoxOuvv47XX3+dbukhbd4PP/yApUuX4sUXX8Tff//doq+tb/sBYhgoYBuhrxtWVlYWtmzZgvDwcLi4uGDixIkYP348BS1pk/bv34/g4GCYmZnhzp07Lb4d6Ot+gOg3CthG6PuGFR0djd27dyMmJgY2NjaYOHEipkyZQt3DkTZj9erVWLduHfz8/BASEgIbG5sWfw993w8Q/UQB2whD2bCio6OxZ88exMTEwMzMDGPGjMEbb7xBt/aQVothGMyYMQNHjhxBr169cPHiRYjFYq28l6HsB4h+oYBthKFtWElJSdi9ezeuX78OgUCAYcOGYerUqdTgg7Qq+fn5mDlzJq5cuYKJEydi3759Wu2xydD2A0Q/UMA2wlA3rJycHOzevRuRkZGQSCTw9vbG+PHjMWbMGDp9TAzad999h6+++grm5uaYP38+Pv30U62/p6HuBwi3KGAbYegblkwmw/Hjx3H27FmkpqbC1NQUgwcPxuTJk+Hn58d1eYRoLDExEdOnT8e9e/fg5eWF3bt366wjf0PfDxBuUMA2ojVtWPfu3cNff/2Fa9euQS6Xw93dHWPGjMGYMWO00jCEkJYgk8nw+eefY8eOHeDz+fjkk08QHBys0078W9N+gOgOBWwjWuOGpVAocPr0aZw+fRp5eXkoLi6Gr68vhg0bhnHjxlHYEr0glUqxfPly7N+/HyYmJvD398emTZvg6urKSS2tbT9AtI8CthGtfcNKT0/HmTNnEBYWhtTUVPD5fPj4+GD48OEYO3YsbG1tuS6RtDFFRUX47LPPcOjQISgUCvTr1w9ff/01Bg0axFlNrX0/QLSDArYRbWnDysrKwunTp3H16lU8evQIPB4P3t7eGDhwIIKCguDp6cl1iaQVi42NxZYtWxASEoKCggIEBARg3bp16N+/P9eltan9AGk5FLCNaKsbVk5ODk6dOoWIiAjcuXMHDMPA1tYWPXv2xJAhQzBs2DCt3XNI2g6ZTIaffvoJ+/fvx6NHj2BmZoYRI0ZgyZIl6NOnD9flqbXV/QB5NhSwjaANCygpKUFoaCiuX7+Ou3fvoqSkBHw+H507d4a/vz+GDRuGHj166LTRCTFcDMPg3Llz2LJlC27evAmlUgkXFxdMmTIFCxcu1Ms2ALQfIM1BAdsI2rBqYxgGCQkJuHz5Mm7fvo2HDx9CqVSiY8eO6iPcgIAA9O/fn/pFJmoKhQJHjx7FX3/9hcjISFRXV0OpVGLYsGH46KOPEBgYyHWJDaL9AGkOCthG0IbVMIVCgatXr+L27duIiYlBRkYGVCoVjI2N4e7ujm7duqF///4YNGgQ/f7aGIlEgj179uDMmTOIi4uDUqmEmZkZ+vTpg0mTJmHatGkQCoVcl6kR2g+Q5qCAbQRtWE2jUChw+/ZthIeHIy4uDsnJyZDL5eDxeHB1dYW3tzc8PDzQq1cv9OzZE6amplyXTFpIUVERzpw5g9DQUKSkpODRo0eQSqWwt7fHoEGD8Prrr2P06NEGeSmB9gOkOShgG0Eb1rNhGAb379/HjRs3kJiYiMTERGRkZIBlWfB4PDg4OMDd3R2+vr7o3r07+vbtq5fX4MjTMjIycOLECYSFhSEuLg4SiQQsy8LExAT9+/dHnz59MHnyZHTr1o3rUp8Z7QdIc1DANoI2rJYnl8sRHR2N2NhYJCYmIiUlBTk5OaiurgYAWFlZwc/PD+3bt4enpyd8fX3RpUsXCl4OpaSk4Nq1a4iKikJCQgKys7ORk5MDADA3N4ePjw8CAgIwZswYDBgwoNVdf6f9AGkOCthG0IalGyqVCnfv3sWdO3fw4MED5Obm4uHDhygtLVXPIxaL4ejoCGdnZ7i7u8PLywu+vr7w9PQ0mGt5+k4qlSI6Ohq3bt1CXFwckpKSkJ2djYqKCgCAsbExHB0d0b17d/Ts2RNjxoxpFUeojaH9AGkOCthG0IbFLalUinv37uHBgwd49OgR0tPTkZ2djcePH6Oqqgrt27dHZWUlAKB9+/awtbVFhw4d0KFDB7i6uqJTp07w8PCgo9//wzAMsrKyEB8fjwcPHiA5ORkZGRmQSCR4/PgxysvLIRKJoFKpIBKJ4OLiAh8fH/Tq1QsDBw5Er169DPIa6rOi/QBpDgrYRtCGpZ8YhkFKSgoSEhKQlpaGrKws5OXlIT8/H0VFRSgtLQXDMOr5RSIR3NzcIBAI0K5dO1hbW6N9+/bqUHZ0dISDgwOcnJxgZWVlcCHCMAwkEgnS09ORmZmJrKwsSCQS5Ofno6CgAMXFxTAyMkJpaSmys7PVy7Vr1069/i4uLujcuTO6du2Kvn37wtHRkcM10i+0HyDN0boulJA2g8/nw8vLC15eXnU+r1KpkJmZiUePHiEtLQ3Z2dkoKSlBTk4OCgoK8OjRI8hkMvWpz38zMjKCk5MTAIBlWbRr1w4ikQimpqYwNTWFmZkZTE1NIRaLIRaLYWFhAaFQCIFAACMjIxgbG8PY2Fj9f6FQqP4/n8+HSqVCVVWV+lFZWan+v1KpVP9bXl6OiooKSKVSlJWVQSaTQSaTqafL5XIoFAqYmZmhoqICEomk1noIhUJ1fdbW1nB1dYW9vT06duwIX19f9OjRg/qaJkSLKGBJqyQQCODu7g53d/cG51MqlZBIJMjLy0Nubq76iE8mk6GoqAhSqRQVFRWoqKhAaWkpFAoFKisr1Q+VSgUbGxsolUpIpdJG67KwsIBKpUJZWZlG68GyLIRCIUxMTCASiSASiWBmZgZzc3M4OjpCLBbDzs4OlpaWsLa2RseOHeHq6gpXV1c6LU4IxyhgSZsmFArVgdQcSqUSJSUlUCgU6t6Jqqqq1Eep/z5arfk/n89XH9GamJioA7TmaNfExAQCgQAikQhisbjVtcglpK2gLZeQZyAUCmFvb891GYQQPWRYLTkIIYQQA0EBSwghhGgBBSwhhBCiBRSwhBBCiBZQwBJCCCFaQAFLCCGEaAEFLCGEEKIFFLCEEEKIFlDAEkIIIVpAAUsIIYRoAQUsIYQQogUGE7BFRUWYPn06LCwsYGVlhTlz5kAmkzW4zLBhw8Dj8Wo93n33XR1VTAghpC0zmM7+p0+fjtzcXISEhKCqqgqzZ8/GvHnzsG/fvgaXmzt3LlavXq3+2dTUVNulEkIIIYYRsAkJCTh37hwiIiLQr18/AMBPP/2EsWPHYuPGjerBsetiamoKR0dHXZVKCCGEADCQU8Q3b96ElZWVOlwBICgoCHw+H+Hh4Q0uu3fvXtja2qJbt24IDg6GXC5vcP7KykpIpdJaD0IIIaSpDOIIViKRPDXmpkAggI2NDSQSSb3LTZs2DW5ubnBycsLdu3fx6aefIjExEX///Xe9y6xduxarVq1qsdoJIYS0TZwG7LJly/DNN980OE9CQkKzX3/evHnq/3fv3h0dOnTAyJEjkZKSAk9PzzqXCQ4OxuLFi9U/S6VSuLi4NLsGQgghbROnAfvxxx/jzTffbHAeDw8PODo6Ij8/v9Z0lUqFoqKiJl1fDQgIAAAkJyfXG7AmJiYwMTHR+DUJIYSQunAasHZ2drCzs2t0vsDAQJSUlCAqKgp9+/YFAFy6dAkMw6hDUxOxsbEAgA4dOjSrXkIIIURTBtHIyc/PDy+88ALmzp2L27dv4/r161iwYAFef/11dQvi7Oxs+Pr64vbt2wCAlJQUrFmzBlFRUUhLS8OJEycwc+ZMPPfcc+jRoweXq0MIIaQNMIiABZ60Bvb19cXIkSMxduxYDB48GNu2bVM/X1VVhcTERHUrYaFQiIsXL+L555+Hr68vPv74Y7z66qs4efIkV6tACCGkDeGxLMtyXYQ+k0qlsLS0RGlpKSwsLLguhxDCAdoPkOYwmCNYQgghxJAYxH2wXKqurgYA6nCCkDaspKQEwJM+0UnbxLIsysrK4OTkBD5fs2NTCthGJCcnAwDdC0sIgbu7O9clEI5lZmbC2dlZo3kpYBvRuXNnAMC9e/fo2gshbVR2djYGDBiAzMxM2g+0UTWdDpmbm2u8DAVsI4yMjAAAzs7OtGER0sZZWFjQfqCN4/F4Gs9LjZwIIYQQLaCAJYQQQrSAApYQQgjRAgpYQgghRAsoYAkhhBAtoIAlhBBCtIAClhBCCNECClhCCCFECyhgCSGEEC2ggCWEEEK0gAKWEEII0QIKWEIIIUQLDCpgw8LCMH78eDg5OYHH4+HYsWONLnPlyhX06dMHJiYm6Ny5M3bu3Kn1OgkhhBCDCtjy8nL07NkTW7Zs0Wj+1NRUvPjiixg+fDhiY2OxaNEivP322zh//ryWKyWEENLWGdRwdWPGjMGYMWM0nv/XX3+Fu7s7vv32WwCAn58frl27hu+//x6jR4/WVpmEEEKIYQVsU928eRNBQUG1po0ePRqLFi2qd5nKykpUVlaqf5ZKpdoqj3BEpVJBLpdDoVCgoqICCoUClZWVqKioUH/+FRUVYBgGAsGTTcTIyAh8Ph8CgQBGRkYQCATg8Xjqn4VCIUxNTdXjhYpEIo7XkhDCtVYdsBKJBA4ODrWmOTg4QCqVoqKiAu3atXtqmbVr12LVqlW6KpFokUwmQ15eHgoKClBYWIiCggJUVFSguroa1dXVT80vFAohFAohEonU/xoZGYFhGFRVVYFlWahUKlRXV9f6f81r8Xg8sCwLADA2NoaZmRnEYjHEYjHMzc3VDwsLC3VwE2Io8vPzcfLkSYwfPx729vZcl2MQaCv/j+DgYCxevFj9s1QqhYuLC4cVkcYolUpIJBLk5+fj8ePHKCoqQnFxsfpMhJGREaytrdG+fXtYW1vD0tIS7dq1Q7t27SASidQPPv/ZmiQolUpIpVKUlZWhtLQUMpkMZWVlyM7ORnl5ORiGAQCYmJjAwsIC7du3h62tLRwcHGBhYfHMvwdCtEkikeDy5cvo378/BayGWnXAOjo6Ii8vr9a0vLw8WFhY1Hn0CjzZ+ZmYmOiiPNJMDMMgKysLycnJSE9PR0lJCQCAZVlYWlrC1tYWbm5uaN++PRwcHGBlZfXM4akJoVAIW1tb2Nra1vm8TCaDVCpFaWkpSkpKUFhYiEePHgEARCIR2rdvDzs7Ozg4OMDGxkYnNROiKR6Pp34QzbTqgA0MDMSZM2dqTQsJCUFgYCBHFZHmKikpQXJyMh49eoSsrCxUVlZCKBTCxcUFXbp0gYuLC+zt7fX61GvN6WInJyf1tJqj74KCAjx+/Bh3795VX/u1sbGBo6MjXFxcYGVlxV3hhODJF9uaB9GM/u6N6iCTyZCcnKz+OTU1FbGxsbCxsYGrqyuCg4ORnZ2N3bt3AwDeffddbN68GUuXLsVbb72FS5cu4dChQzh9+jRXq0A0xDAMUlJSkJycjLS0NJSUlIDH48HOzg69evWCp6cnXFxcDP4oTygUwtXVFa6urgCerHdBQQHy8/ORn5+PxMREJCYmwszMDC4uLnB1daXTyYQzNW0MiGYMKmAjIyMxfPhw9c8110pnzZqFnTt3Ijc3FxkZGern3d3dcfr0aXz00Uf44Ycf4OzsjO3bt9MtOnosJycHkZGRSElJQWVlJczMzODq6oohQ4bAw8MDpqamXJeoVXw+H/b29uprXAzDICcnB9nZ2UhKSsKDBw9gbm4OZ2dnuLm5QSwWc1wxaSv4fL66NT3RjEEF7LBhwxr8BlVXL03Dhg1DTEyMFqsiz0qhUCAmJgaxsbHIz89Hu3bt4Ovriz59+sDZ2VknNSiVSigUCiiVSiiVSlRVVUGhUEClUgGAeqfC5/Pr/T+Px1O3Pq5pifysOyM+nw9nZ2c4Ozurrz1nZ2fj4cOHSEhIgLW1NZycnODm5tbqv3wQ7unTESzDMMjPz4eVlZXe3hZnUAFLWpeUlBTExMQgMTER1dXVcHNzw8svv4wuXbq0+LVUmUyGkpISlJaWQi6Xq+93rQnTuhgbG8PExATGxsbqhh3/vgbFMIx6h8MwDHg8HoyMjGo1Aql5DZFIBBMTEwiFQpiYmMDU1BSmpqZNWk8+n68+naxSqZCdnY3MzEzcv38fDx48gL29Pby8vKiFJ9EKhmGgVCr15hrs/fv3kZCQAIZhMH78eL38gkkBS3RKJpMhMjISd+7cQUlJCSwtLTFgwAD07du3RRryyOVydZBKpVJ1y92ae1WNjY1hYWEBsVgMKysrGBsbQyQSwdjYuNZ9sAKBoFlHnyqVSn0kXNOBxX87slCpVODz+erwNTMzg7m5uboRlCbvKxAI4ObmBjc3NyiVSmRmZiIzMxO3bt2ChYUFPDw84OzsTKfzSIsyMjLiugQAQFZWFgoLC9G3b1+Eh4ejqKiIApa0XVKpFJcvX0ZCQgKAJ9fHx44dC09Pz2cKgZKSEuTm5iIvLw9lZWW17n0Vi8WwsLCAk5MTLC0tYWVlpfWNUCAQNHpdtCaE5XI5ysvLUV5ejszMTPWRQbt27WBubq7uqMLU1LTB35FQKISnpyc8PT2Rn5+PlJQUxMbGIjExER4eHnBzc9Pr1tXEMAgEAvWDS3K5HNnZ2ejUqRPs7Ow4r6ch+lsZaRVkMhkuXbqE6Oho8Hg8+Pv7Y8iQIc1unKNQKJCbm4ucnBzk5+dDLpeDz+fDysoKLi4usLW1VQepvh691YTwf38HMpkMMplMHbr5+fkAnhx113SQYWVl1eAOpaaBVM1tTQkJCXj48CFcXV3h6empt9eqiP6ruSTC9Sni9PR0mJiYwMXFBVKpFEqlUm9DVj+rIgZPJpPhypUriIyMVAfrsGHDmnwEyTAMJBKJOlCLi4sBAJaWlnB2dkaHDh3g6OiotxtYU/w3dBmGUYduWVkZMjIykJGRATMzM3XY1heYVlZW6NevH+RyOR49eoT09HSkpqbC2dkZ3t7eenk6jei/f/fTzoWioiJUVFTA29sbfD4fMpkMAPS2Nb3h75WIXpHL5bhy5QoiIiLAsiz69euHYcOGNXkDyMrKwqNHj5CdnQ2GYSASieDg4AAfHx906NChTQQEn89XDx4APDm1XHN9ueZLh4mJiTps6/odm5qaolu3bvD29kZqaioyMjJQUFAAFxcXeHp6toovJkR3uDwrVHPLmqWlpfpvvaSkBAKBQG/3B7R1kRahUChw9epVhIeHg2EY9O7dG8OHD29SpwhSqRSJiYlITU1FeXk5zM3N4eXlBQ8PD9jY2GixesMgEAjUXTEyDKPudrGoqAj5+fkwMTFB+/btYWNjA6FQWGtZoVAIHx8feHp6IjU1FWlpacjNzUXnzp11disUMXxcBmx+fj6USiU6d+6snlYTsHp7OYjrAojhi46ORmhoKBQKBbp3746RI0dqHKxKpRIpKSlISUnB48ePYWxsDFdXV3h7e8PR0VHLlRuumuvONS2vZTKZepCDwsJCiMVitG/f/qmjWoFAAC8vL3Ts2BEPHz7EvXv3kJmZCT8/P+qOkTSKqzMeDMOguLgYjo6OtS6LFBUVoX379pzUpAkKWNJsJSUl+Ouvv/Dw4UO4u7tj9uzZ9XZ0/185OTl48OABsrKyUF1dDUdHRwwePBju7u502rIZaq7f1hzZFhYWIj09HUKhENbW1k81jjI1NUWvXr1QUFCAxMREhIeHo2PHjvD29n7q6JeQGlw1cCooKACAWvd4MwyDkpISdOrUiZOaNEF7MtJkDMPgxo0bOH/+PIyMjDB58mT069dPo+WSkpIQFxeH0tJSmJubq68P6msjBUPz7yNbuVyOoqIi5OXl4fHjx7C0tISNjU2tIwBbW1vY2NggMzMTKSkpyMvLU9/ao6+n3Qh3lEqlzt9TpVKhsLAQ1tbWtb4kFhUVgWEYvb58RAFLmkQikeDw4cPIzMxEz549MWHChEbDkWEYJCYmIjY2FlKpFB06dMCoUaPUHdwT7ajpLcrR0VF9+ri4uBimpqZwcHBQNwzh8/lwc3NDhw4dkJSUhIcPH0IikaBr1640sADhXFFREQA8dXZMIpGgsrJSr3suo4AlGlGpVAgJCUFYWBjEYjFmzZqFrl27NrrMgwcPcOfOHchkMri4uGD48OF0bVXHBAKB+v5YqVSKgoIC5ObmwsTEBLa2tuojWqFQiK5du6Jjx45ISkpCbGwsOnXqRF+EiJquz2owDIPy8nK0b9/+qUtHeXl5sLa21utLGhSwpFFpaWk4fPgwCgoKMGDAALz44osN/lGrVCrEx8fj7t27qKioQKdOnTBq1Ci9/qbZVtTc9iOXy1FQUIDs7GyYmZnVanlsZWWFvn37IiUlBY8ePUJRURG6dOmi1zsyohu6DtiSkhIAqPM0sEQiQceOHXVaT1NRwJIGhYSE4OrVq2jfvj3ee+89uLm51TuvSqXC3bt3ERcXh8rKSri7u6Nv3756fY2krTI1NYWrqyukUimKi4uRmZkJc3Nz2NjYqG978PLyQvv27ZGQkICIiAj4+Pho3IiNtE66bIDIMIy6rcZ/31cul0Mmk6FDhw46q6c5KGBJnZRKJfbs2YP4+Hj4+/tj0qRJDW5cKSkpuHHjBsrKyuDl5YX+/fvTbR8GoGbgg5qgLS8vV3dcwefzYWNjg/79++PBgweIj49Hx44dn7n/aGK4dNmKWCqVgmGYOvcj2dnZAEABSwxPfn4+fv/9dxQVFWHy5MkIDAysd16pVIorV64gPT0dHTp0wOjRo+lUsIGpaXlsYWGh7imqtLQUdnZ2EIvFEAqF6NGjBzIyMpCWlobS0lJ06dJFb3vPIdrBsiwqKyt1NiZsfUevAJCZmQmhUKj3jfAoYEkt8fHx2Lt3L0xMTLBgwYJ6TwkzDIOoqChERkbC2NgYI0aMaLTRE9FvNUesFhYWKCoqQklJCeRyufq0saurK6ysrJCQkIDIyEj4+vrSlymiFXK5HDwer96zYDk5OXByctJtUc1AAUvUzpw5g4sXL6o7jajv9puMjAxcuXIFpaWl6Nq1KwYOHEijtLQiNa2OlUolioqKIJFI1H0dW1hYoG/fvkhMTMTDhw9RUVHR4HV50nrweDz1Q9ukUilMTU3rbFgnl8tRXFyM3r17a72OZ0UBS6BQKLBr1y48ePAAzz33HCZMmFDnNTa5XI6rV68iOTkZ9vb2mDRpEt1y04oJhUL1rT0lJSVQKBTqHqG6du2KrKwsZGZmQqlU0nXZNkIXn7FCoYBKpaq3cWR6ejoAGMQXOwrYNk4ikeCPP/5AcXExpk+fXm+PTPfu3cOtW7egUqkwdOhQ9OjRQ8eVEi7UXJ8ViUQoKSlBfn6+umGUs7MzhEIhUlNToVQq4ePjQ91ckmcmk8kgFArrvS0sOztb/Teo72hraMPS09OxY8cOCAQCLFq0qM5rGkqlEhcuXMDDhw/RuXNnBAUFUeOWNkgkEqkHcv/30ay9vT2EQiGSkpJw//59+Pr60v2yrZi2P1ulUgmFQtHgrX3p6ekGMwIUndNpo1JSUvDjjz/CyMgIH3zwQZ3hmp+fjz179iAlJQVBQUF46aWXKFzbsJpGULa2tlAqlcjPz1cHbdeuXaFUKhEfHw+FQsF1qUQLWJZVP7RFJpM1OL5rTeM7Q+ldjAK2DUpKSsKWLVtgY2ODxYsX19lSLzY2Fvv27QMATJ06lU4JEzWRSKQeNkwqlUIul6sHdufz+YiLi4NUKuW6TKIFFRUVWntthmHAMEyDt948evQIPB4P7u7uWqujJdEp4jbm3r172L59OxwcHLBw4cKnvikqlUqcO3cOSUlJ8PPzQ1BQEJ3yI0+pOZpVKBSQyWRQqVQQi8Xo1q0bHjx4gISEBHh5eVEvXkRjNWc+GrojIT09HQ4ODgZz1wIdwbYhd+/exfbt2+Hk5IRFixY9Fa41p4RTU1MxatQojB07lsKVNEgkEsHCwgIqlQpSqRR8Ph9dunSBlZUVkpOT1SOhENIYhUIBkUhUb0tlhmGQk5NjEK2Ha1DAthHR0dHYvn07XFxc8OGHHz71DfDfp4SnT59Op4SJxmp61KkZAJthGPj4+MDGxgYZGRl0urgV0dZtOgqFAgzDNNjGIysrC0qlUq8HWP8vCtg2ICIiAjt37oSXlxcWLlxY66iUYRhcvHgR58+fR+fOnTFjxgzq0J00mUAgUN8jW9PK2MPDA2ZmZnj06BFkMhnXJZJnpM2OJhQKBYRCYYMBnpycDBMTE4PowakGBWwrFxkZiQMHDsDX1xfz58+vdZ8iwzA4evQoIiIiMGTIEIwbN45OCZNm4/P5sLCwgEgkgkwmg1wuh6enJ9q1a4dHjx5R62JSJ6VSCZVK1eh11dTUVDg6OhpUhyaGUylpssTEROzevRudOnXCu+++WytclUol9u/fj6SkJLz44osYOHAgh5WS1kQsFkMsFkOhUKhD1sjICMnJyVAqlVyXR56BNr6AKxQKCASCBl9bJpMhPz8fHh4eLf7+2kQB20rl5+dj69atsLW1xTvvvFPrW59cLseePXuQk5ODV199la63khZX0/gJeDJOsJeXF4Ant4ipVCouSyPPQC6Xt+jrMQwDPp/faK9MDx8+BAB4e3u36PtrGwVsK6RQKLB582YYGRk9dc21pKQEu3btQmlpKaZOnare8RHS0oRCIUQiEVQqFRiGQefOnVFdXY2kpCSdjitK9FfNl63Guth89OgR7O3tDaJ7xH+jgG1lGIbBzz//jOLiYrz33nu1OpGouQ2nuroaM2fONJjuxojhEggE6pAFgM6dO6OyshIpKSkUsgRKpbLR084MwyA9Pd1gOpf4NwrYVmbfvn14+PAhZs2aVesPMiMjA3/++SeEQiFmzpxJLYWJzvw7ZPl8Pjp37ozNmzerB9M2NzfHunXruC6TaKAlWhCvW7dO/dk7Ojri22+/bXD+9PR0KJVKdO7c+ZnfW9coYFuRkJAQhIWFYdy4cbVGxUlLS8Phw4dhaWmJGTNmNNgVGSHa8O+Q7dWrF3788UfI5XJUV1dDJpMhODgYPj4+XJdJGsDn88Hj8Z6pFa+3tzeCg4Mhk8lQXV2N8vJy/O9//2vws09OTlaP3mRoKGBbibt37+LIkSMICAjAuHHj1NNzcnJw4MABtG/fHjNmzKDO+glnBAIBfvjhB6SkpNT5/MOHD7FhwwYdV0Wa4lmOYNetW4ekpKQ6n2vos09KSkLHjh0N6vacGoZXMXlKTk4Otm/fjk6dOmHWrFnq6UVFRdi/fz8sLCzw+uuv0z2uhHONnQpevXq1jiohuvbVV181+Hxdn31BQQEeP35skKeHAQpYg6dUKvHbb7/BwsICCxYsULfGk8vl2Lt3L3g8Ht544w2D6RybtG6NjcaizdFayLN7lv1Icz77Bw8ewMjIyOBuz6lBAWvg9u/fj8zMTMyePVvdhF2pVOLPP/9ERUUF3njjDbrmSvRGu3btnul5wp2a4eSa2/q7OZ99zelhQz1AoIA1YPHx8bhy5QpeeOEFeHp6AniyERw4cACPHz/GlClTYG9vz3GVhPx/n332WYPPBwcH66gS0lQ8Hg9yubzZ12Eb++xXrFhR62eFQoHMzEyDPXoFKGANllwux44dO+Di4oJXXnlFPf3o0aNIS0vDK6+8YlDDOpG2YdmyZfXuMJ2dnTFp0iS6P7aVWrZsWb23B3p7e2PJkiW1pj148AAsy8LPz08X5WkFBayB2rNnD2QyGebNm6duXRcSEoL4+HiMHTvWoP8oSeuWmJiI9evXQywWw8jISH36T6VSobKyEllZWRxXSLRFKBTCyMhI/dmLxWKsX78eiYmJT8378OFDtG/fHjY2NhxU2jIoYA1QREQEbt26hYkTJ6rvDYuMjMTt27cxZMiQWvfAEqKPlixZgrKyMqhUKlRUVGD58uWQSCR4//33UV5eTmPI6qlnuU0nMjISOTk5mDRpkvqzLysre+rIFXhyqSsjI8Pgu3KlgDUwUqkUe/bsQefOnTF27FgAT27TOX36NLy9vTFixAiOKySk6dasWYPhw4cjLCwMO3bsQHFxMZ0qbmWWLl0KABrd65yUlITy8nIKWKJbO3bsQFVVFd555x0AT1oMHzhwAObm5pgwYQLH1RHSfBcuXICjoyM2btyIy5cvo6ioiOuSyH80t7MHhUKBsLAw+Pn5adQj0/379yEUCtGpU6dmvZ++oIA1IGFhYbhz5w4mTZqkbixw7NgxSKVS6kiCGDyBQICIiAhYWlpixYoVyM3NpUHaW4mvvvoKFhYWjbYkrpGUlAQvLy+D7L3p3wyu+i1btqBTp04QiUQICAjA7du36513586d4PF4tR6Gej+VTCbDqVOn0LNnT/Vp4OjoaNy5cwejRo2Ck5MTxxUS8uycnZ2xZcsWZGZmYuHChSgoKOC6JPJ/GIaBSCRq1qn7bdu2QaVSYfr06Y3Om5WVhdLSUnTt2rU5ZeoVgwrYgwcPYvHixVi5ciWio6PRs2dPjB49Gvn5+fUuY2FhgdzcXPUjPT1dhxW3nIMHD+Lx48eYNm0agCddiJ08eRI+Pj4YNGgQx9UR0nKmT5+OwMBAXLlyBSEhIdTgSY+wLNvkZa5fv478/Hy89tprGs0fFxcHoVBo8NdfAQML2O+++w5z587F7Nmz0aVLF/z6668wNTXFjh076l2Gx+PB0dFR/XBwcGjwPSorKyGVSms9uCaRSPDPP/9g5MiRsLe3h0qlwoEDB9CuXTuN/2gJMSQnTpyAUCjERx99hLy8PGrwpCdkMlmTl/nss8/A4/E0HpLw4cOH8PT0bHQQdkNgMAGrVCoRFRWFoKAg9TQ+n4+goCDcvHmz3uVkMhnc3Nzg4uKCCRMm4N69ew2+z9q1a2Fpaal+uLi4tNg6NNeBAwcgEonUHUqcOXMGeXl5mDRpEo2OQ1olW1tbrF+/HqWlpVi6dCmdKjZQCoUC165dQ/fu3TXqVa6oqAj5+fno0qWLDqrTPoMJ2IKCAlRXVz91BOrg4ACJRFLnMj4+PtixYweOHz+OP//8EwzDYODAgQ3eyB4cHIzS0lL1IzMzs0XXo6mSkpIQGRmJsWPHwtTUFPfv30d4eDiGDx9ea0B1QlqbDz/8EH5+fjh27Bhu3rxJDZ4M0FdffYXq6mqNGzfdvXsXRkZGFLCGIDAwEDNnzkSvXr0wdOhQ/P3337Czs8PWrVvrXcbExAQWFha1Hlzat28f7OzsMHbsWCgUCpw8eRJubm4YNmwYp3URogunT5+GkZER5s2b12BbC6Kftm/fDnNzc0yePFmj+RMTE+Hi4mKwjVH/y2AC1tbWFkZGRsjLy6s1PS8vD46Ojhq9hrGxMXr37o3k5GRtlNjiIiIikJSUhFdffRUCgQBnz55FaWkpJk6caPDN1wnRhLu7Oz7++GPk5+fj66+/pqNYDvH5fPVDE+Hh4ZBIJBq3E5FKpXj06BF8fHyepUy9YjB7aaFQiL59+yI0NFQ9jWEYhIaGIjAwUKPXqK6uRlxcHDp06KCtMlsMwzA4dOgQ3NzcMHjwYOTk5ODWrVsYPHgwjZBD2pS1a9eiY8eO2LZtG+7evct1OW1aU7pKXLZsGXg8Hr7++muN5r979y5YlkWvXr2aWZ3+MZiABYDFixfjt99+w65du5CQkID58+ejvLwcs2fPBgDMnDmz1nBXq1evxoULF/Do0SNER0fjjTfeQHp6Ot5++22uVkFjISEhyM3NxdSpUwEAx48fh4WFRa1GXoS0BXw+H6dOnYKdnR0WLlxIR7EGQKFQIC4uDiNHjtT4DOO9e/fg4uLC+WW5lmRQ7aCnTJmCx48fY8WKFZBIJOjVqxfOnTunbviUkZFR6/RFcXEx5s6dC4lEAmtra/Tt2xc3btzQ+wvoSqUSJ0+eRLdu3dCtWzdER0cjNTUV06ZNo96aSJvUq1cvdO3aFZcvX0ZkZCQGDx7MdUmkARs3bkRhYSHeeustjeaXy+VIS0vDqFGjtFyZbhlUwALAggULsGDBgjqfu3LlSq2fv//+e3z//fc6qKplXbhwAUqlEq+//jqUSiXOnDkDd3f3VnXqhJCm+uOPP+Du7o4PP/wQN2/epC+bHGjXrp1G823btg1isRhTpkzRaP64uDhUV1e3un2cQZ0ibisuXLgAZ2dndOrUCRcuXEB5eTlefvllrssihFNubm4YMWIEoqOjcevWLa7LaZM06ckpPj4emZmZeOmllzRuEBUfHw9HR0eDHvu1LhSweiYyMhL5+fkYM2YMCgoKcOPGDfj7+2t8HYOQ1mzHjh3g8Xj48MMPoVQquS6nTWEYBjKZrNFetZYvX96kxk1KpRIpKSnw8/NriTL1CgWsnjl//jzs7OzQv39/HD9+HCYmJhgzZgzXZRGiF1xdXREUFITY2Fg6itVDDMPg/Pnz6Ny5M9zc3DRaJj4+HiqVCr1799ZydbpHAatHJBIJ4uPjMWLECDx8+BAPHjzAqFGjWs1N14S0hJqj2A8++AAqlYrrcsi//Prrr1AoFFi4cKHGy8TExMDe3r5VnqWjgNUjp0+fhlAoxOjRo3HhwgXY2NhgwIABXJdFiF5xdnbG6NGjcffuXVy/fp3rcsi//PDDDxCJRHjvvfc0ml+lUuHhw4fw9vbWcmXcoIDVE0qlEteuXUNAQAAKCgqQkpKCIUOGUI9NhNTh999/B4AmHSmRZ8Pn88Hj8erdJ2VkZCApKQlBQUFNatykVCpbXevhGrT31hOhoaGoqKjAiy++iNDQUIjFYjp6JaQeTk5OeOmll5Cfn9/oCFmk5TQUnGvXroWdnR3WrFmj8evFxMTA2toarq6uLVGe3qGA1RMXL16Et7c3zM3NERcXh8GDB7eK8RAJ0ZaNGzdCIpFg5cqVXJdCAOzfvx8ikUjjo1GVSoUHDx6ge/fu2i2MQxSweiA+Ph7Z2dkYPXo0Ll68CGNjYwwdOpTrsgjRa15eXnB1dcX58+dpQHaOHT9+HKWlpepuazVx//59KJVK9OnTR4uVcYsCVg9cuXIFDg4O6NmzJyIjI+Hv708thwnRwJw5cyCTyXDw4EGuS2n1WJaFqalpnZ1NrFu3DgKBAEuXLtX49WJiYmBlZaXx7TyGiAKWYwzD4Pbt2/D19UVYWBiqq6sxcuRIrssixCAsXboUAoEAGzdu5LqUVo9lWfXj32QyGSIjIxEQEABTU1ONXqvm9HC3bt20UareoIDlWGxsLMrLy9GvXz9cv34dPXv2hJWVFddlEWIQRCIRAgICEBsbi5KSEq7LafWkUulT09auXQuVSoVly5Zp/DoPHjyAQqFo1aeHAQpYzt26dQtisRgVFRVQKBQ0HB0hTfTZZ5+BYRiNu+YjLWvXrl2wtrbGuHHjNF7mzp07sLKygru7uxYr4x4FLMdiY2PRo0cPREREoFOnTnBycuK6JEIMypgxY2BpaYm9e/dyXUqbEx0djZycHLzyyisaL8MwDBITE1tl38P/RQHLoZSUFBQWFqJz58549OgR+vXrx3VJhBikiRMnIicnB9HR0VyX0qasWrUKPB4PX3zxhcbLxMfHo7CwEH379tVeYXqCApZD169fh1AohFKphFAobJWdXROiC6tXrwbwpDUr0R4ej6f+P8MwuHz5Mry9veHs7Kzxa0RERMDKygqenp7aKFGvUMByKCoqCr6+vrh//z68vb3p1hxCmsnV1RX+/v50BKtFfD5f/QCAP/74A0KhsEndVapUKty/fx89e/bUVpl6hQKWI/n5+cjKyoK7uzvy8/Pp9DAhz6h79+5ISUlBRkYG16W0CZs3b4ZcLsfcuXM1XiY+Ph4KhQL9+/fXYmX6gwKWI9evX1efbjExMWkz3+gI0ZZZs2YB+P8DARDtKSoqQlxcHIYOHdqkLl0jIyNhY2PT6lsP16CA5UhMTAw8PDyQnJwMX19fCIVCrksixKANGTIEIpEIZ8+e5bqUVu/LL78EwzD47LPPNF5GpVIhISGhVfc9/F8UsBxgGAaPHj2CnZ0dCgsL6fQwIS3E29sb9+/f57qMVsvMzAwAcODAAdjb22Pw4MEaL3v37l0oFAoEBARoqzy9QwHLgZSUFJSVlaGyshIikQg9evTguiRCWoVRo0ahvLwc8fHxXJfSKpWUlODOnTuQSCSYNGlSk5aNjIxE+/btW3Xfw/9FAcuBhIQEAEBFRQX8/PxoWDpCWsicOXMAANu2beO4ktZr27Zt4PP5+PzzzzVeRqlUIiUlpc0dTFDAciA5ORmmpqaoqKjQeOxEQkjj/Pz8IBaLcenSJa5LabXCw8Ph5+cHe3t7jZeJiYlBZWUl/P39tViZ/qGA5UBqaiqEQiFkMhm6dOnCdTmEtCrdunVDUlISjRGrBZmZmaisrMR7773XpOUiIiJgbm4OV1dXLVWmnyhgdUylUiEnJwd8Ph8ODg4aD+9ECNHM2LFjoVQqce3aNa5LaXWysrJgbGzcpHtfFQoFEhIS2uTZOgpYHUtKSoJKpQIAdOrUidtiCGmFpk+fDhsbG5w/f57rUlqV0tJSyGQyjBgxosn3vlZVVSEwMFCL1eknClgde/DgAaqqqsDj8dpEX5yE6JqHhwfKy8sRERHBdSmtyu+//w6VSoVp06Y1abnIyEh07NixTY4URgGrY8nJyRAKhRAIBPD19eW6HEJaJWtra6SlpXFdRqty9uxZCIXCJo2CI5PJ8PDhwzY7kAkFrI6lpaXB2NgYYrEYjo6OXJdDSKvk7OyMvLw8rstoNeLj45GXl9fkfdbt27ehUqkwcOBALVWm3yhgdUilUqGoqAgsy7apm60J0TVvb2/IZDJ1ewfybL766isAgJeXV5OWi4qKgqurK2xtbbVRlt6jgNWhnJwclJSUQKVStZnOrgnhQo8ePcAwDGJiYrguxeAxDIOzZ8/Czc0Ntra2Gt/+JJVKkZKS0iYGVq8PBawO5efnQy6XQygUwsfHh+tyCGm1ak5JXr9+neNKDN/x48chlUoxYcIElJaW1hp0vSE3btwAgDbZergGBawOPX78GBUVFTA3N6cWxIRoUUBAAPh8PqKiorguxeB9//33EAqFeOONN5q0XGxsLNzd3WFlZaWdwgwABawOFRYWQqlUwsrKivofJkSLhEIhzMzMkJSUxHUpBk2hUOD27dvw9/eHSCTSeLmCggIkJiaiT58+WqxO/1HA6lBhYSGMjIxgaWnJdSmEtHr29vbIzMzkugyD9tNPP0GpVOKjjz5q0nL//PMPBAJBmz49DFDA6lRxcTEAwMbGhuNKCGn9/Pz8qCvSZ3TixAl4eXlhwoQJTVouMjISvr6+EIvFWqrMMFDA6lBxcTF4PB7at2/PdSmEtHrGxsbIysriugyDlZOTg1u3bqF3797g8zWPioyMDOTk5LSpgdXrQwGrQzVHsG31njBCdEksFtN9sM9g3bp1YBgGy5YtU0/TpAXx9evXYWJi0uaGpqsLBawOPX78GCYmJrCzs+O6FEJaPXNzczAMQyHbTH///TecnJyaPApOZGQkunXrBqFQqJ3CDAgFrI4oFAqUlZVBJBI1aaBiQkjzWFhYAACKioo4rsTwREdHIzc3F6+99lqTlktMTERRUREGDBigpcoMCwWsjhQUFKCyshImJiYUsIToQE1r/cLCQo4rMTzr1q0Dn8/HkiVLmrTcjRs3IBaL2+TYr3WhgNURZ2dnzJgxA2VlZSgoKOC6HEJaPWtrawB0BNtUDMMgJCQEPj4+tYaYYxhGfdq9vuViYmLQs2dPus///1DA6lBBQQFyc3ORn5/PdSmkiVQqFT744AOuyyBNUNODEB3BNs3JkychlUoxa9asWtNVKpW6+8O6xMbGQqVStfl7X//N4AJ2y5Yt6NSpE0QiEQICAnD79u0G5z98+DB8fX0hEonQvXt3nDlzRkeVPk0ul3P23uTZvPzyy9i8eTPGjx/PdSlEQ+fPnwfDMHj55Zdhbm6OdevWcV2SQfjhhx8gFAprfaFct24d+vfvj6ysLPTu3bvO3+U///wDU1NTdO3aVZfl6jWDCtiDBw9i8eLFWLlyJaKjo9GzZ0+MHj263iPCGzduYOrUqZgzZw5iYmIwceJETJw4EfHx8Tqu/AmlUsnJ+5Jnd+HChVr/Ev3m7e2NP/74A8CTU5cymQzBwcE0yEYjlEolbt26hX79+qm7RvT29kZwcLD61DDDME/9LpVKJeLi4tCjRw9O6tZXTQ7YWbNmISwsTBu1NOq7777D3LlzMXv2bHTp0gW//vorTE1NsWPHjjrn/+GHH/DCCy9gyZIl8PPzw5o1a9CnTx9s3rxZx5U/wTCMxiNREO55e3vDzs4OdnZ26i9HSqVSPc3b25vjCkld1q1bV28fxA8fPsSGDRt0XJHh+P333yEWi/Hee+8BANq3b9/g77Lmnv5bt25BoVBg6NChOqvVEDQ5YEtLSxEUFAQvLy98/fXXyM7O1kZdT1EqlYiKikJQUJB6Gp/PR1BQEG7evFnnMjdv3qw1PwCMHj263vkBoLKyElKptNajpWg6jiLhnkQiQVJSEgoKCp5qlFYzLSkpCRKJhKMKSX1qBgevz+rVq3VUieH5/fffYWxsjClTpkAikTTaQKywsBASiQTXr19Hx44d4ebmpqNKDUOTA/bYsWPIzs7G/PnzcfDgQXTq1AljxozBX3/9haqqKm3UCODJTq26uhoODg61pjs4ONS7k5NIJE2aHwDWrl0LS0tL9cPFxeXZi/8/LMvSEayBcHR0xK5duxqcZ+/evXB0dNRRRURTFRUVz/R8W1VSUoK4uDj4+/uDz+fD0dGx0S4S+Xw+TE1N8eDBA+q5qQ7NugZrZ2eHxYsX486dOwgPD0fnzp0xY8YMODk54aOPPjLoIaKCg4NRWlqqfrTkaBx0BGtYZs6cqe7e8r+Ki4sxbdo0HVdENNGuXbtner6t+u6771BdXY2PP/5YPa2xwRJMTU0RFhYGlmXp9HAdnqmRU25uLkJCQhASEgIjIyOMHTsWcXFx6NKlC77//vuWqhHAk/57jYyMkJeXV2t6Xl5evUcRjo6OTZofAExMTGBhYVHr0VLoCNbwLFy4sM7pixYt0m0hRGOfffZZg8+vWLFCR5UYloMHD8LOzg6DBw9WT9Pkd3nz5k14enpSH+t1aHLAVlVV4ciRIxg3bhzc3Nxw+PBhLFq0CDk5Odi1axcuXryIQ4cOtfh1DqFQiL59+yI0NFQ9jWEYhIaG1nvfVWBgYK35ASAkJISz+7Sqq6s5eV/SfMePHwfw5FTY1q1b1afMjh49ymVZpAHLli2rtwGat7d3k3snagvS09Px6NEjvPDCC7WmL1u2rN6DAh6PhxkzZiA9PR0DBw7URZkGp8ndbXTo0AEMw2Dq1Km4fft2nV1iDR8+XH2Td0tavHgxZs2ahX79+sHf3x+bNm1CeXk5Zs+eDeDJKb2OHTti7dq1AIAPP/wQQ4cOxbfffosXX3wRBw4cQGRkJLZt29bitWmCjmANz5tvvombN2/ixo0bEAgEeOuttzBw4EC6mV7PJSYmwt7eHo8fP4aRkRHatWuHFStWULjWY/369QCApUuXPvXcBx98gCNHjiA/Px9VVVUwNjaGvb09Xn31VVy9ehXGxsYYNGiQrks2DGwT7d69m62oqGjqYi3mp59+Yl1dXVmhUMj6+/uzt27dUj83dOhQdtasWbXmP3ToEOvt7c0KhUK2a9eu7OnTp5v0fqWlpSwAtrS09JnqTk9PZ93c3NjnnnuOzc3NfabXIoQ0zsXFhW3GLq5OmZmZLbIf0FfOzs6su7t7g/N88803LAD2m2++UU9bsmQJu3HjRm2XpxeakwVNPoKdMWNGC0d80yxYsAALFiyo87krV648NW3SpEmYNGmSlqtqXM31CU9PT2p5SogOUGthzdSMnPPRRx81ON+/O5oAnpwlKC4uxksvvaT1Gg2VQfXkZMhMTU1hbGxM/RAToiOVlZVcl2AQNm7cCD6fX6v1sCYuXbqE6upqGpquARSwOiQWi1FSUsJ1GYS0CdRzmmbu3LmDHj16NOnMmkqlQlRUFPr160cj5zSAAlaHLC0tW7RnKEJI/aqqqmBkZMR1GXrt/PnzKCwsbPI93REREZDJZBg+fLiWKmsdKGB1yMbGBuXl5VyXQUirxzAMlEolzM3NuS5Fr/3888+QSqWYN29eo/MaGRlBIBDAyMgIV69ehZ2dHfz8/HRQpeGigNUhW1tbKJVKOoolRMsSEhIANN4TUVvGMAyuXr2Knj17QiwWa7xcZWUl4uPj6dqrBihgdcjJyQlVVVU0ADQhWnbp0iUAQJcuXTiuRH/99ddfKC8vx5tvvqnR/CzLQqVS4dGjR1CpVBg5cqR2C2wFKGB1yNXVFQzDIDU1letSCGnVasbtHTFiBMeV6K9t27bBxMRE3VGPplJTU+Hh4UG3G2qAAlaHOnXqBAAUsIRo2d27dwGAOqCvh1KpRHh4OPz9/SEUCpu0bGFhYa3+ikn9KGB1yN3dHQCQlpbGbSGEtHKPHz8GAPTv35/jSvTT7t27oVAoMHfu3CYva2RkhOeee04LVbU+FLA61KFDB4jFYjqCJUSLGIaBQqFQt3olT9uxYwfMzMwwZcqUJi/bsWPHJjWKassoYHVIJBLB1NTUoMfLJUTfJSYmgmXZFh1qsjWRy+WIjY3F4MGDGx1Q/d9yc3MBAC4uLtoqrdWhgNUxDw8PSCQSrssgpNUKCwsDALi5uXFciX767bffwDAM3n///SYtV3NgQL9XzVHA6livXr1QXl6uvk+PENKy/vnnHwCAv78/x5Xop1OnTsHR0RFjxozReBmlUons7GwAaNJRb1tHvykdq7l3rOY2AkJIy7p48SIACti6FBUV4dq1a03uJOLatWtQqVRaqqr1ooDVscDAQAiFQty+fZvrUghpdYqKipCXlweRSET95Nbhl19+QXV1NT744IMmLXflyhVYWFhAIBDQEWwT0G9Kx4RCIWxtbamhEyFasGfPHgBPTmN6eHhwXI3+OXToEGxtbTFo0CCNlykqKkJCQgI6deoElUoFlmW1WGHrQgHLgZqGTjUDFxNCWsapU6cAAN26deO4Ev2Tn5+Phw8fYtSoUU1aLiQkBADg5eWljbJaNQpYDvTu3RtyuZwaOhHSwiIiIgCgSQ142oqffvqpWaeHr127hq5du8LMzExLlbVeFLAcCAoKAgCcO3eO40oIaT2io6PVI1XNmjWL42r0z99//w1HR0f069dP42WSkpKQk5NDPTc1EwUsBwICAiAWixEeHs51KYS0Gn/++SdYloW5ubm6W1LyRFZWFlJSUjB69OgmLXfx4kW0b9+e+h5uJgpYDggEAjg5OSEmJobrUghpNWpuz+nRowfHleifH3/8ESzL4sMPP9R4GZVKhX/++Qddu3aFUChUtxmhtiOao4DlyODBg1FUVISoqCiuSyHE4CkUCjx69AgA8MILL3Bcjf4JCQmBk5NTkxp/Xbt2DeXl5Xj++ee1WFnrRgHLkTlz5oDH42H79u1cl0KIwfvzzz+hVCrB4/Ewc+ZMrsvRK2lpacjKysK4ceOatFxNKPv5+WmpstaPApYjPj4+cHBwwPXr17kuhRCDt23bNlRXV8PS0hKurq5cl6NXtmzZgrKyMixYsEDjZYqKinD//n1q3PSMKGA5NHDgQOTk5ND4sIQ8g4yMDNy5cwdCoRC9e/fmuhy9c+rUKTg7O8PHx0fjZc6ePQsATW4URWqjgOXQzJkzwbIstm3bxnUphBisdevWgWEYqFQqTJ8+nety9Ep6ejrS0tIwduzYJi33zz//oFu3brCxsVFPqxlf18jIqKXLbLUoYDk0aNAgWFlZITQ0lOtSCDFIDMPg2LFjEAqFMDY2pvtf/2Pz5s1gWbZJnUvcu3cPubm56oFJalRXV0OlUqG6urqly2y1KGA5xOfz0adPH6SmpqKoqIjrcggxOCdPnkRBQQEqKysxcOBACAQCrkvSKydPnoSzs3OTujk8f/48xGIx3fvaAihgOTZt2jSoVCrs3LmT61IIMTibNm0Cn88HwzD4+OOPuS5Hr6SmpiI9Pb1Jp4eVSiVu376NwMBA+rLSAihgOTZ+/HiYm5urOyknhGimqKgIERERMDY2hpWVFfU//B/NOT18+fJlGBkZ0e+yhVDAckwgEKB///5ISEhAamoq1+UQYjA2bNgApVIJuVxOnUvU4fTp0806PWxpaQlPT08tVtZ2UMDqgXfeeQeVlZX4+uuvuS6FEINx4cIFiMViAMD//vc/jqvRL6mpqZBKpU06PZyTk4MHDx5gxIgRWqysbaGA1QMjR46Ei4sLLly4AJlMxnU5hOi9vXv3Ij8/HyqVCh07dqTxX/9j586d4PP5eP/99zVe5uTJkxAKhXQ2oAVRwOoBPp+P2bNnQyqVYuvWrVyXQ4jeW7VqFSorKyGTyTBp0iSuy9E7f//9N0xNTTXuXIJhGISFhaFPnz7qswLk2VHA6ol58+bBwsICu3btotEqCGnAH3/8gczMTDg4OIDP5+PTTz/luiS9kpOT0+Sh6W7evIni4uImd0hBGkYBqydMTU0xZswYZGVl4cyZM1yXQ4heYhgGX375Jezs7FBUVITnn38e9vb2XJelV3799VewLIt3331X42XOnTsHOzu7Bgdjp56cmo4CVo8sWbIExsbG+OGHH7guhRC9tHXrVuTk5KBz586QSCRN6sC+rTh58iScnJzQtWtXjeYvKSlBbGxsox3713RHSWfYNEcBq0c8PT3Rs2dPxMXF4d69e1yXQ4heYRgG33zzDTp06ICoqCh4enrSKc3/yM/Px8OHD5/q5rAhp0+fBsMwGD9+vBYra5soYPXMokWLUFVVhY0bN3JdCiF6ZdOmTcjLy0PXrl0hk8mwZs0arkvSO7/99hsYhmnS6eErV66gW7dudKpdCyhg9cwLL7wAFxcXXL16FSkpKVyXQ4heUKlU+O677+Di4oIbN27A2dkZU6ZM4bosvXP06FHY29ujT58+Gs1/9+5dFBcXIygoSMuVtU0UsHqGz+dj7ty5KC8vp2/ohPyfDRs2oLCwEP3790dJSQk+++wzrkvSO0VFRU3uKOLEiRNgWRbDhw/XYmVtFwWsHpo1axYcHBwQGhqKa9eucV0OIZySSqX45Zdf4O/vj9DQUNjb2+Ptt9/muiy9s3v3bgiFQsydO1ej+eVyOcLDw/Hcc89Rx/5aQgGrh8RiMRYuXAiFQoG1a9dSqz3Spr311lsoLS3FgAED8PjxY3zyySfg82nX9V9//fUXrK2tMXDgQI3mP3PmDCorKzFx4kSN5q/ZD9H+SHP0V6qn3nzzTXh7eyMqKgr79+/nuhxCOHHmzBmcPXsWL7/8Mg4cOAArKyt89NFHXJeld+RyOeLj4xEQEKDxMhcuXICPjw/c3Ny0WFnbZjABW1RUhOnTp8PCwgJWVlaYM2dOo/32Dhs2DDwer9ajKa3ruCQQCLB06VLweDxs3rwZUqmU65II0SmFQoH33nsP7du3x/Dhw5GTk4P333+fjl7rsG/fPiiVSsyYMUOj+RMSEpCWltak3p5I0xnMX+r06dNx7949hISE4NSpUwgLC8O8efMaXW7u3LnIzc1VP9avX6+DalvG+PHj0a9fP6SkpOCXX37huhxCdOq9997D48eP8eOPP2LNmjXw8fHB8uXLuS5LLx0+fBjm5uYaB+bJkydhZmaG559/XuP3EAgE6gfRjEEEbEJCAs6dO4ft27cjICAAgwcPxk8//YQDBw4gJyenwWVNTU3h6OioflhYWOio6mfH5/Pxv//9DyKRCHv37kV6ejrXJRGiE9evX8fhw4cxevRohIWFIS0tDQsXLoRQKOS6NL2jUqkQFRWFAQMGaHR0r1AocOPGDQwcOLBJv0/qyanpDCJgb968CSsrq1r9ZAYFBYHP5yM8PLzBZffu3QtbW1t069YNwcHBkMvlDc5fWVkJqVRa68GlwMBAjBw5Erm5ufj+++85rYUQXVCpVJg9ezbEYjG++OIL/Prrr+jatatGZ6zaomPHjkEul2PatGkazX/+/HnI5XKNGzeR5jOIgJVIJE/1MiIQCGBjYwOJRFLvctOmTcOff/6Jy5cvIzg4GHv27MEbb7zR4HutXbsWlpaW6oeLi0uLrMOzWLZsGaysrHDx4kUaCIC0ekuXLkVWVhY2bNiA+fPng2EY7Nu3j+uy9NbevXvRrl07vPrqqxrNf/HiRXTr1g1eXl5aroxwGrDLli17qhHSfx8PHjxo9uvPmzcPo0ePRvfu3TF9+nTs3r0bR48ebbCHpODgYJSWlqofmZmZzX7/luLj44PXXnsNBQUF2LhxY6OnxQkxVJGRkdixYwcGDx4MoVCI8PBwTJs2TeOO69sahmEQERGB3r17a3RtNDExEffu3cOQIUN0UB3h9Gr1xx9/jDfffLPBeTw8PODo6Ij8/Pxa01UqFYqKiuDo6Kjx+9U0YU9OToanp2ed85iYmMDExETj19SVDz/8EFFRUUhOTsbq1avx888/U2tK0qooFAosWLAAdnZ22L59O/r37w9ra2v8/PPPXJemt65cuYKKigqNu42sGYj9xRdf1HJlBOA4YO3s7GBnZ9fofIGBgSgpKUFUVBT69u0LALh06RIYhmnSfV+xsbEAgA4dOjSrXi45OjpiypQpWLt2La5du4bffvsN77zzDtdlEdJiJk2ahHv37mH37t348ssvUVhYiF27dkEkEnFdmt7as2cPGIbB1KlTG51XoVDg2rVrGDJkCDUW0xGDOATy8/PDCy+8gLlz5+L27du4fv06FixYgNdffx1OTk4AgOzsbPj6+uL27dsAgJSUFKxZswZRUVFIS0vDiRMnMHPmTDz33HPo0aMHl6vTbLNnz8bAgQMhk8mwZ88e9RcGQgzdF198gcuXL2PevHno0qULdu/ejb59+2L69Olcl6bX/vnnH/j5+UEsFjc67+nTp1FRUYFJkybpoDICGEjAAk8u5Pv6+mLkyJEYO3YsBg8ejG3btqmfr6qqQmJiorqVsFAoxMWLF/H888/D19cXH3/8MV599VWcPHmSq1V4Znw+H+vWrYOjoyNyc3Px5ZdfNtrZBiH67tSpU/j+++8xYMAAbNiwAdOmTQOPx6OGTY1ISEiARCLReEzc06dPw9vbu97LY6TlGcwdwzY2Ng1ucJ06dQLLsuqfa4Z8a22cnJywePFirFy5Eg8ePMA333xDo+4Qg5Wamoq3334bDg4OOHbsGDZt2oSsrCwsWLCAgqARO3bsAI/Ha7QdC/D/e25atGhRs9+Pz+fDyMiI2n40Af2mDNDkyZMxbNgwKBQKXLx4ESdOnOC6JEKaTKFQYNy4cVCpVDh69CiSk5OxfPly2Nvb45tvvuG6PL138eJFuLm5wdnZudF5jxw5AjMzM7zwwgs6qIzUoIA1UF999RU6duyIoqIibNu2DUlJSVyXREiTTJkyBRkZGdiyZQs8PT0xbtw4CAQCnDp1io6SGlFQUICUlBSMHDmy0XllMhlu376NYcOGPVPjJpZlUV1dXetMIWkY/RUbKBsbGyxbtgzGxsbIzc3FsmXLUFBQwHVZhGhk1apVCA0Nxbx58zBlyhRMnDgR+fn52Lp1K43uooE//vgDDMNg9uzZjc57/PhxlJWV4eWXX9ZBZeTfKGAN2JgxYzB69GgolUrk5+dj8eLFjXYFSQjX9u/fjx07dmDIkCHYsGEDvv32W4SGhmLq1Kka3W5CgLCwMPj5+aFXr14NzscwDE6fPg0/Pz94eHjopjiiRgFr4FatWgUfHx8IhUJkZGTg008/hUql4rosQup04sQJfPDBB/Dw8MCRI0cQGxuLzz//HJ07d8Yff/zBdXkGQalU4u7du+jTp0+j80ZFRSE7O7vFjl55PF6LvE5bQQFr4MRiMZYvX47i4mIYGRnh7t27WL16NY14QfTO2bNn8dZbb8HBwQFHjhwBn8/HSy+9BGNjY5w7d46uu2roxIkTKC4u1qg3psOHD8PGxgbDhw9/5vetufZK12A1R3/RrUCvXr3w+eef4/Hjx7CwsMDVq1epezmiV0JDQzFz5kzY2tri8uXLsLGxwYQJE5Cfn49ff/2Vrrs2wZEjRyASiRq9/7WgoACRkZEYNWpUi43hSuHaNBSwrcTLL7+MN998E2lpabC3t8fhw4dx6NAhrssiBGFhYZg6dSqsra1x5coV2NvbY8OGDbh06RKmT59O112b6NatW+jZs2ejoXno0CHweDxMnjxZR5WR/6KAbUUWLVqEYcOGITExEU5OTvjll19w5coVrssibdjNmzcxadIkmJub4+LFi3B0dMSRI0fw008/YdCgQfj999+5LtGgxMbGorCwsNHTwyqVCiEhIejbty9sbW1b5L2po4mmo99UK8Ln8/Htt9/C29sbSUlJsLOzw8aNG3Ht2jWuSyNtUEREBF555RW0a9cOly5dgqurK65cuYJZs2YBAP766y/aWTfR3r17wefzGx1cPTQ0FMXFxS3a7/C/hxElmqG/7lZGKBRi27ZtsLCwgEQigbW1NZYvX47z589zXRppQ27fvo0JEybA2NgYISEhcHNzQ2xsLCZOnAgzMzNcu3atxY6s2pJLly7B3d0d9vb2Dc73119/wdHRUT36WEuorq6GSqVCdXV1i71ma0cB2wrZ2Njgl19+gUKhQFlZGby8vPDll1/SNVmiE6GhoZg2bRqcnJxw/vx5eHl5ITU1FaNGjQKPx0NoaChcXV25LtPgFBUVoaCgAGPGjGlwvsTERNy/fx/jx4+nMwQco99+K+Xj44O1a9ciMzMTAoEA/v7++OGHH2qNQERIS9u6dSumTJkCCwsLHDx4EH5+fsjPz8eQIUOgUChw6tQpdOvWjesyDdLhw4dRXFyM8ePHNzjf3r17YWZmhldffVVHlZH6UMC2YiNHjsSiRYsQGxuL0tJSjBo1Crt27cL69evpPlnSohiGwYcffohPP/0Uvr6+uHTpEjw9PSGTyTBw4EAUFRVh7969GDRoENelGqxz587BysoKAQEB9c4jlUpx7do1jBgxQisD1dP116YxmOHqSPPMmDEDSqUS3377Lfz9/fHaa6/hr7/+QklJCVavXt1i98eRtksul2PSpEm4fv06xo0bh507d0IgEECpVGLQoEHIysrCL7/8gpdeeonrUg0WwzCIjo5Gnz59Gjzte+DAAVRVVTXaCKq56D7YpqEj2DZgzpw5+N///oeIiAhERkZizpw5CAsLw0cffQSFQsF1ecSAZWVlYdCgQbh58yYWL16MP//8EwKBACqVCi+++CIePHiAr776SqNO6Un9IiIiUFpa2uD1V4ZhcObMGfTu3ZuucesJCtg24o033sDKlStx9+5dnDt3DgsXLsTdu3exaNEiGoWHNEt4eDgGDx6MnJwc/Prrr1ixYgWAJ+O8BgUFISoqCp9++ik+/vhjjis1fDW3NE2ZMqXeeS5cuID8/PwG53kWfD4fAoGAGk41Af2m2pDJkyfjyy+/xIMHD3DgwAEsW7YM2dnZmD59Oq5fv851ecSA7N+/Hy+99BL4fD7Onj2r7i2ooKAAvXv3Rnh4OD766COsXr2a40pbhytXrsDd3R1WVlb1znPgwAF4enoiMDBQd4WRBlHAtjETJkzAunXrkJycjJ9//hlr166FtbU1PvnkE/zwww/U+Ik0SKFQ4N1338UHH3yA7t2748aNG+pRXZKSktC7d29kZmbihx9+wOeff85xta2DTCaDVCrF888/X+888fHxSEhIwNixY7V2hMkwDKqrq2kf0QQUsG3Q2LFj8f333yMzMxNLly7Fpk2b8MILL2Dfvn14++23kZ+fz3WJRA+Fh4ejX79+OHz4MKZPn45z587B0dERAHDt2jUEBgairKwMhw4dwrx58ziutvU4fvw48vLyMGrUqHrn2bVrF8zNzenWHD1DAdtGjRw5Ej/++CMqKirw1ltvYdq0aVi5ciVSU1PxxhtvUPeKRI1hGAQHB2P8+PGoqKjArl278MMPP6hboB86dAhjx46FkZERLl261OgoL6RpLly4ALFYjGHDhtX5fH5+Pm7cuIGxY8dCKBTqtjjSIArYNuy5557DN998g/LyckyaNAkMw2DXrl1o3749lixZgk2bNtHpoDYuISEBAwYMwNatWzFkyBBERUVh3Lhx6uc3bdqEN998E+3bt0dERIRGg4CTpomMjESXLl3qPfW7a9cu8Hg8zJw5U8eVkcZQwLZx/v7+OHjwINzc3PDxxx9j9+7d2LVrF8aNG4cDBw5gzpw5yMrK4rpMomMMw2DDhg0YMWIEcnNzsWnTJhw5cqRWI5uPPvoIy5Ytg7e3N2JiYujWEC3IyspCbm4uhg4dWufzCoUC586dw6BBg6hvZz1EAUvUQ4i99NJL2L17N2bNmoUPPvgAq1atQkFBAWbNmoXt27fT0WwbkZGRgVGjRmHt2rXo1q0bwsPDax0dyWQyvPbaazh06BAGDx6M27dvN9i6lTTf0aNHAQCvvPJKnc/v378fIpEIb775ptZr4fF4MDIyot6cmoAClgAABAIBNmzYgJUrVyIuLg4vvvgiOnbsiN9++w1du3bFr7/+itdeew3h4eFcl0q0RKVS4csvv8SgQYOQlpaGFStWICQkBE5OTup5wsLC4OfnhzNnzmDGjBm4cOECXffTotu3b8Pb2xt+fn5PPccwDA4dOgQHB4c6n29pNcFKAas5ClhSy/Tp0/Hnn3+CYRhMmzYNYWFh+PHHH/Hdd99BqVTi/fffx5IlS6hzilZm//796NmzJzZt2oSBAwfi3LlzWLRokfp5hmHw6aefYuzYsVCpVDhy5AjWrVtHnQ5oWXh4ODw9Pet87vjx43j8+DHeeustndTCsiyqq6upu8QmoK2DPKVXr144efIkfHx8sHz5cvzvf//DwIEDcezYMbz55pu4ceMGXnnlFfz+++902tjAXb9+HYMHD8YHH3wAExMT7N69GwcPHoSXl5d6npycHAQEBODHH3+Ev78/7t271+iQaeTZpaamoqioCP7+/k89xzAM9u7dC3d3dwwePJiD6ogmKGBJnWxsbHDw4EG8/vrrCA0NxeTJkxEfH48FCxbg8OHD6N69O3755Re89tpriIiI4Lpc0kSpqal49dVXMWHCBEgkEnzxxReIjIx86habgwcPokePHkhMTMSKFStw6dIl2NjYcFR123Lq1CkAqNVqu0ZYWBjS0tIwY8YMndVTc+RKR7Cao4Al9eLz+Vi9ejW++uorZGZmYvLkyfj8889ha2uLLVu2YOPGjVAqlZg/fz6WLl2KpKQkrksmjZBKpfjggw8wcOBA3Lp1C2+99Rbu3r2LBQsW1Drdq1Kp8MYbb2D27NmwtLREWFgYgoODOay87QkLC4ONjU2dp4j3798Pe3v7OsOX6A8KWNKooKAgXL58GS+++CIOHDiA4cOH48qVKxg2bBiOHTuGOXPmIDY2FlOmTMG7776Lu3fvcl0y+Q+ZTIY1a9Zg2LBhOHjwIIYPH46IiAisX78epqamtea9du0aBg8ejL///hsvvfQSEhIS0KtXL24Kb8PS09PRpUuXp6bXjIr1xhtv6PQaOB3BNh0FLNGIWCzG999/rx7r8+2338b7778PmUyG+fPn4++//8asWbOQkJCAmTNnYubMmdQblB5ISUnBvHnz0KVLFxw4cADu7u44d+4c9u3bV6t1MPCko/5JkyZh/PjxyMvLw2+//YYDBw5QK2EO5Ofno7S0tM4B6n/++WdYWVmpB1jQFSMjI/D5fBgZGen0fQ0ZBSxpkkGDBiEkJAQzZ85EaGgogoKCcOTIEYjFYnz44YcICQnBBx98gNzcXCxYsACTJk3C2bNnqTGUjl26dAnjxo3D4MGDcebMGQwZMgR79uzBkSNHnuptiWEYrF69Gr6+vjh37hzGjBmDqKgoTJ8+naPqSWhoKIqLi5/qHjE6OhoxMTGYNm2auqtKXWFZFgzD0BFsE1DAkiYTCoVYsWIFjh49Cnt7eyxduhRTp05Feno6hEIh5syZg7Nnz+J///sfKioqEBwcjAkTJuDQoUNQqVRcl99qqVQqbNu2DQEBAXj99deRmJiImTNnIjo6Gnv37q2zG8NTp07B19cX69atg6enJ65evYp9+/ZRQyaO3bx5EyYmJujbt2+t6T///DOsra112riJNB8FLGk2Pz8/nDp1Ch9//DFyc3MxZcoU9T2yAoEAkydPxokTJ/D111/DxMQE33//PV566SV8/vnniI+P57r8ViMnJwfLly9Hly5dsHz5crAsi1WrVuHevXv45ptvYG9v/9QyKSkpGDlyJKZMmYKKigr8+uuvCA8Pp76E9URcXBzc3NxqXWONjIxEeno6pkyZQqftDYRuzzGQVofP5+O9997DK6+8gm+++QZHjx7FyZMnMWHCBHz66aewsbHB2LFjMXbsWNy4cQMHDhzA2bNncezYMTg7O2PUqFGYPHkynJ2duV4Vg1JQUIDdu3fj7NmzyMvLA4/Hg7e3Nz788MMGhzWTy+X45JNPsG/fPvB4PLz99tvYsGED7bD1TFVVFfr3719r2nfffYfKykqddSxBnh0FLGkRjo6O+P7777Fo0SKsXbsWR44cwYkTJ/DKK69gyZIlsLKywsCBAzFw4EDI5XKcPHkSJ0+exO7du7Fz5074+Phg7NixePXVV2FhYcH16uil/Px87NmzB2fPnkVCQgIYhoGrqytee+01zJo1C25ubvUuK5VKsWbNGhw7dgyVlZUICAjAtm3bGlyGcCMrKwspKSm1roFfunQJcXFx+OSTTzj7MsTj8cDn86mrxCaggCUtys3NDb/++itSU1Px1Vdf4cCBAzh69Chee+01fPLJJ7CwsICpqSmmTJmCKVOmoKCgAIcPH8b58+fx3Xff4aeffkKfPn3w/PPP4/nnn2/znchLJBJ1qD548AAsy8LNzQ1vvfUWZs6cWavHpbqkp6djxYoVOH36NCorKzFkyBB88sknGDFihI7WgDRVTcctNbdGMQyDTZs2wcnJia69GhgKWKIV7u7u2L59O5KSkvD1119j7969OHLkCKZMmYKFCxeqg9PW1hbz58/H/PnzkZKSggMHDuD69evYvHkzVq1aBWdnZ/Ts2RODBg3C8OHDW/3RrUwmw6VLl/DPP/8gKipKHaqdOnXC22+/jRkzZjQaqsCTnfQXX3yhvlVq8ODB+OKLL5467Uj0T2JiIkQiEXr37g0A2LdvH6RSKT755BNO+36mVsRNRwFLtMrLywt//PEHEhISsG7dOpw8eRJnz56Fj48P3nrrLTz33HPqeT09PfHZZ58BAO7du4fLly8jIiICly9fxsmTJ8Hn8+Hq6opevXph0KBBGDZsGMRiMVer1iLS09MREhKCW7duIT4+HtnZ2WAYBgKBAF26dMGCBQswZcqUejt8/6/jx49j3bp1iI+Ph4mJCV5++WWsWrWKTgUbkOzsbNjY2EAkEqGkpAQ//fQT3N3dOe+1icfjqR9EMxSwRCf8/Pywa9cuJCUlYevWrThz5gwuXbqEDh06YPz48Zg3b16t1q5du3ZF165dATw5RRYfH68O3JCQEBw7dgxGRkbw8/ODm5sbXFxc4O3tja5du8LZ2VkvR3kpKipCVFQUbt++jaioKDx8+BDFxcUAAAsLC/V16GHDhmHAgAEaX2uTy+X45Zdf8OeffyIpKQmWlpaYP38+li9f3uqP+FujvLw8GBsbAwDWrFmD8vJyrFmzhuOqqCen5qCAJTrl5eWFjRs34uuvv8bhw4dx4MABbN++Hb///jv69OmDN954AxMmTKgVkHw+Hz169ECPHj0APAnc2NhYXLlyBQ8fPkR0dDROnTql7sxCJBLB3t4eHTt2hJubGzp37gw/Pz/4+flp9YhXqVQiKSkJDx8+xKNHj5CWlobs7GxIJBIUFhaioqJCHXimpqbo378/BgwYgBEjRmh02vffFAoF/vzzTxw4cAAxMTGwtLSEs7MzVq9ejYULF+q8EwLSciwtLWFnZ4dDhw7h9OnTeO+995r896EtdPTaNLQVEk4IhUJMnz4d06dPR0ZGBrZu3YqzZ8/iww8/xMqVKzFq1CjMnj0b3bp1e2pZPp+PPn361LpnU6FQ4MGDB0hISEBSUpI63GJjY1FRUQEAsLa2RlVVFXg8HkQiEdq1awczMzOYmprCzMwMZmZmEIvFsLS0hFgshkqlglwuh0KhgFwuR2VlJSoqKlBZWVnrwefzUVBQgNzc3Frf7q2srGBra6seUszd3R1dunRB3759mxX0KpUK+/btw/79+xEZGYnKykpYW1tj3LhxmDt3Lg1b1koIBALExMSgoKAA3bp1w4IFC7guSY16ZGsaCljCOVdXV3z11VdYs2YNzp8/j927dyMsLAynTp1Cu3bt0K9fP4waNQovvvhivcEkEonQq1evOjull0gkuHfvHlJTU5GXl4eSkhLIZDKUlZWhoqICxcXFyMnJQUVFBRQKBRQKBSwsLKBQKFBRUQFjY+NaD6FQCBMTE/W/tra28PHxgZ2dHTp37gxvb294e3tDJBI98+9GpVLh77//xt69e3Hr1i31UXDNF5CRI0fq5elw0nzBwcHIz8+Hubk5Nm/erFefLx3BNg0FLNEbfD4fY8aMwZgxY1BSUoLjx4/j9OnTuHbtGs6ePYslS5agc+fOCAwMxLhx4xAQEKDRzsfR0RGOjo5NqkWhUIDP5+v8nkOVSoUbN27g/PnziI2Nxb1791BUVAQzMzMMGTIEM2fOxLhx4/Rqp0talqurKw4fPkyfcStgMAH71Vdf4fTp04iNjYVQKERJSUmjy7Asi5UrV+K3335DSUkJBg0ahF9++UVvrmeQ+llZWWHWrFmYNWsWGIZBREQETp06hRs3bmDPnj3YuXMnzM3N0b17dwwdOhTDhw+Hn59fi+2UWuLoUxMymQznz5/HpUuXEB0djUePHqGyshI8Hg+Ojo4YNGgQXnvtNYwfP56uq7Yh+hiuLMuCx+NRI6cmMJgtVqlUYtKkSQgMDMTvv/+u0TLr16/Hjz/+iF27dsHd3R2ff/45Ro8ejfv37+tsB0qeHZ/PR0BAAAICAgA8CaUzZ84gJCREfa/otm3bUFpaCkdHR7i7u8Pb2xs9evSAv78/XF1dOV6DJwoKChAfH4/Y2FhERUXhzp07yMrKUt+W06lTJ4wfPx7Dhg3D2LFjqcN9oldqwpVOE2vOYAJ21apVAICdO3dqND/Lsti0aROWL1+OCRMmAAB2794NBwcHHDt2DK+//rq2SiVaJhaLMXnyZPV4mOnp6bh+/TpiYmKQlJSExMREXLt2DdXV1QCetNjt0KEDPDw84OPjAycnJ9jZ2cHBwQH29vZwcHBokS9cCoUC9+/fR0JCAhITE5Geno6srCzk5eWhqKgICoUCAGBmZgYbGxvY2Nhg9OjRCAoKwvDhw6k/YKLXeDweBAIBBWwTGEzANlVqaiokEgmCgoLU0ywtLREQEICbN2/WG7A1LUNrSKVSrddKno2bmxvc3Nwwbdo09TSlUom7d+8iOjoa9+7dQ1JSEmJiYnDr1i0YGRmhsLCw1msIhUKIRCKYmppCLBbD3Nwc1tbW4PP5KC0thVKpRFVVFaqqqqBUKqFSqVBVVaX+19jYGCqVCkVFRerXtLCwQPv27dGpUycMGTJEHfC9evXSm6NqQjTFsixUKhWdIm6CVhuwEokEAODg4FBruoODg/q5uqxdu1Z9tEwMl1AoRL9+/dCvX79a01UqFdLT0yGRSFBQUICCggIUFhaisLAQxcXFkEqlKC0tRVlZmbqhU1lZGQQCgTqELSwsYGJiAmNjY5iYmEAkEsHKykp9762fnx+6dOlClyFIq9K7d294e3uru3AkjeM0YJctW4ZvvvmmwXkSEhLg6+uro4qeNJFfvHix+mepVAoXFxedvT/RLoFAAE9PT427HiSEPBEUFISEhASuyzAonAbsxx9/jDfffLPBeTw8PJr12jW3ZeTl5aFDhw7q6Xl5eXXeK1nDxMQEJiYmzXpPQgghpAanAWtnZwc7OzutvLa7uzscHR0RGhqqDlSpVIrw8HDMnz9fK+9JCCGE1NC/m63qkZGRgdjYWGRkZKC6uhqxsbGIjY2FTCZTz+Pr64ujR48CeNLibdGiRfjyyy9x4sQJxMXFYebMmXBycsLEiRM5WgtCCCFthcE0clqxYgV27dql/rnmQvvly5cxbNgwAE/GUSwtLVXPs3TpUpSXl2PevHkoKSnB4MGDce7cOWp8QgghROt4LLW5bpBUKoWlpSVKS0tp6C9C2qisrCy4uLjQfqANa04WGMwpYkIIIcSQUMASQgghWkABSwghhGgBBSwhhBCiBRSwhBBCiBZQwBJCCCFaQAFLCCGEaAEFLCGEEKIFFLCEEEKIFlDAEkIIIVpAAUsIIYRogcF09s+Vmq6apVIpx5UQQrhSs/3TfqDtqvnsm9J9PwVsI8rKygAALi4uHFdCCOEa7QdIWVkZLC0tNZqXRtNpBMMwyMnJgbm5OXg83jO9llQqhYuLCzIzM1vliBytef1o3QxXS6xfdXU1kpOT0blzZxgZGWn1vfRVW183lmVRVlYGJycn8PmaXV2lI9hG8Pl8ODs7t+hrWlhYtLo/0H9rzetH62a4nnX9+vfvr7P30mdted00PXKtQY2cCCGEEC2ggCWEEEK0gAJWh0xMTLBy5UqYmJhwXYpWtOb1o3UzXLpcv9b8u6R1azpq5EQIIYRoAR3BEkIIIVpAAUsIIYRoAQUsIYQQogUUsIQQQogWUMBq2VdffYWBAwfC1NQUVlZWGi3DsixWrFiBDh06oF27dggKCkJSUpJ2C22moqIiTJ8+HRYWFrCyssKcOXMgk8kaXGbYsGHg8Xi1Hu+++66OKq7fli1b0KlTJ4hEIgQEBOD27dsNzn/48GH4+vpCJBKhe/fuOHPmjI4qbbqmrNvOnTuf+nxEIpEOq9VcWFgYxo8fDycnJ/B4PBw7dqzRZa5cuYI+ffrAxMQEnTt3xs6dO5v9/q3p7x+gbaBGi20DLNGqFStWsN999x27ePFi1tLSUqNl1q1bx1paWrLHjh1j79y5w7700kusu7s7W1FRod1im+GFF15ge/bsyd66dYv9559/2M6dO7NTp05tcJmhQ4eyc+fOZXNzc9WP0tJSHVVctwMHDrBCoZDdsWMHe+/ePXbu3LmslZUVm5eXV+f8169fZ42MjNj169ez9+/fZ5cvX84aGxuzcXFxOq68cU1dtz/++IO1sLCo9flIJBIdV62ZM2fOsJ999hn7999/swDYo0ePNjj/o0ePWFNTU3bx4sXs/fv32Z9++ok1MjJiz50716z3by1//yxL28C/tdQ2QAGrI3/88YdGAcswDOvo6Mhu2LBBPa2kpIQ1MTFh9+/fr8UKm+7+/fssADYiIkI97ezZsyyPx2Ozs7PrXW7o0KHshx9+qIMKNefv78++//776p+rq6tZJycndu3atXXOP3nyZPbFF1+sNS0gIIB95513tFpnczR13TT9W9U3mgTs0qVL2a5du9aaNmXKFHb06NFNfr/W9PfPsrQN/FtLbQN0iljPpKamQiKRICgoSD3N0tISAQEBuHnzJoeVPe3mzZuwsrJCv3791NOCgoLA5/MRHh7e4LJ79+6Fra0tunXrhuDgYMjlcm2XWy+lUomoqKhav3M+n4+goKB6f+c3b96sNT8AjB49Wu8+o+asGwDIZDK4ubnBxcUFEyZMwL1793RRrta15OfWWv7+AdoG6tIS2wB19q9nJBIJAMDBwaHWdAcHB/Vz+kIikcDe3r7WNIFAABsbmwZrnTZtGtzc3ODk5IS7d+/i008/RWJiIv7++29tl1yngoICVFdX1/k7f/DgQZ3LSCQSg/iMmrNuPj4+2LFjB3r06IHS0lJs3LgRAwcOxL1791p84Atdq+9zk0qlqKioQLt27Zr0Wq3h7x+gbeC/WmoboIBthmXLluGbb75pcJ6EhAT4+vrqqKKWpen6Nde8efPU/+/evTs6dOiAkSNHIiUlBZ6ens1+XdIyAgMDERgYqP554MCB8PPzw9atW7FmzRoOK9MN+vsnLbUNUMA2w8cff4w333yzwXk8PDya9dqOjo4AgLy8PHTo0EE9PS8vD7169WrWazaVpuvn6OiI/Pz8WtNVKhWKiorU66GJgIAAAEBycjInOxhbW1sYGRkhLy+v1vS8vLx618PR0bFJ83OlOev2X8bGxujduzeSk5O1UaJO1fe5WVhYqI9e29rfP0DbQGOauw3QNdhmsLOzg6+vb4MPoVDYrNd2d3eHo6MjQkND1dOkUinCw8NrfaPSJk3XLzAwECUlJYiKilIve+nSJTAMo95paCI2NhYAan2h0CWhUIi+ffvW+p0zDIPQ0NB6f+eBgYG15geAkJAQnX1GmmrOuv1XdXU14uLiOPt8WpImn1tb+/sHaBtoTLO3gWduJkUalJ6ezsbExLCrVq1ixWIxGxMTw8bExLBlZWXqeXx8fNi///5b/fO6detYKysr9vjx4+zdu3fZCRMm6PVtOr1792bDw8PZa9eusV5eXrVuU8jKymJ9fHzY8PBwlmVZNjk5mV29ejUbGRnJpqamssePH2c9PDzY5557jqtVYFn2STN+ExMTdufOnez9+/fZefPmsVZWVuqm+TNmzGCXLVumnv/69eusQCBgN27cyCYkJLArV67U61sUmrJuq1atYs+fP8+mpKSwUVFR7Ouvv86KRCL23r17XK1CvcrKytTbFAD2u+++Y2NiYtj09HSWZVl22bJl7IwZM9Tz19yms2TJEjYhIYHdsmXLM9+m0xr+/lmWtgFtbAMUsFo2a9YsFsBTj8uXL6vnAcD+8ccf6p8ZhmE///xz1sHBgTUxMWFHjhzJJiYm6r54DRQWFrJTp05lxWIxa2Fhwc6ePbvWl4fU1NRa65uRkcE+99xzrI2NDWtiYsJ27tyZXbJkiV7cB/jTTz+xrq6urFAoZP39/dlbt26pnxs6dCg7a9asWvMfOnSI9fb2ZoVCIdu1a1f29OnTOq5Yc01Zt0WLFqnndXBwYMeOHctGR0dzUHXjLl++XOf2VbM+s2bNYocOHfrUMr169WKFQiHr4eFRa9trqtb098+ytA3UaKltgIarI4QQQrSArsESQgghWkABSwghhGgBBSwhhBCiBRSwhBBCiBZQwBJCCCFaQAFLCCGEaAEFLCGEEKIFFLCEEEKIFlDAEkIIIVpAAUsIIYRoAQUsIYQQogUUsITU4fHjx3B0dMTXX3+tnnbjxg0IhcKnhugipDVLS0sDj8d76jFs2DCuS9N7NOA6IXWws7PDjh07MHHiRDz//PPw8fHBjBkzsGDBAowcOZLr8gjRGRcXF+Tm5qp/lkgkCAoKwnPPPcdhVYaBRtMhpAHvv/8+Ll68iH79+iEuLg4REREwMTHhuixCOKFQKDBs2DDY2dnh+PHj4PPpJGhDKGAJaUBFRQW6deuGzMxMREVFoXv37lyXRAhnpk2bhjt37uDWrVswNzfnuhy9R18/CGlASkoKcnJywDAM0tLSuC6HEM58+eWXOH/+PE6cOEHhqiE6giWkHkqlEv7+/ujVqxd8fHywadMmxMXFwd7enuvSCNGpI0eOYOrUqTh79iy1QWgCClhC6rFkyRL89ddfuHPnDsRiMYYOHQpLS0ucOnWK69II0Zn4+HgEBARg8eLFeP/999XThUIhbGxsOKxM/1HAElKHK1euYNSoUbh8+TIGDx4M4MntCj179sS6deswf/58jiskRDd27tyJ2bNnPzV96NChuHLliu4LMiAUsIQQQogWUCMnQgghRAsoYAkhhBAtoIAlhBBCtIAClhBCCNECClhCCCFECyhgCSGEEC2ggCWEEEK0gAKWEEII0QIKWEIIIUQLKGAJIYQQLaCAJYQQQrTg/wEaqZUA5CpquQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "Omega = np.radians(10) # Ascending node\n", + "inc = np.radians(20) # Inclination\n", + "omega = np.radians(30) # Longitude of periastron\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1) # central object\n", + "sim.add(a=1, e=0.01, Omega=Omega, inc=inc, omega=omega) # inclined orbit\n", + "sim.add(a=1, e=0.01) # orbit in the xy plane, periastron on the x axis\n", + "rebound.OrbitPlotSet(sim);" + ] + }, + { + "cell_type": "markdown", + "id": "d24c647e", + "metadata": {}, + "source": [ + "We can create a rotation that moves the orbit in the xy plane into the orbital plane defined by Omega, inc, and omega:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "0a11f675", + "metadata": {}, + "outputs": [], + "source": [ + "rot = rebound.Rotation.orbit(Omega=Omega, inc=inc, omega=omega)" + ] + }, + { + "cell_type": "markdown", + "id": "2f033e3b", + "metadata": {}, + "source": [ + "After applying this rotation to the second planet, the two planets are on identical inclined orbits (the plot only shows one planet because the particles are at the same location):" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "7d686778", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim.particles[2].rotate(rot)\n", + "rebound.OrbitPlotSet(sim);" + ] + }, + { + "cell_type": "markdown", + "id": "f553db19", + "metadata": {}, + "source": [ + "# Rotating to a reference frame align with a planet's orbit\n", + "\n", + "Let's construct a simplified Solar System to demonstrate a different use case of this constructor." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "f9d937a2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Sun'... \n", + "Found: Sun (10) \n", + "Searching NASA Horizons for 'Jupiter'... \n", + "Found: Jupiter Barycenter (5) (chosen from query 'Jupiter')\n", + "Searching NASA Horizons for 'Saturn'... \n", + "Found: Saturn Barycenter (6) (chosen from query 'Saturn')\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "date = \"2023-01-01 00:00\"\n", + "sim.add('Sun')\n", + "sim.add('Jupiter')\n", + "sim.add('Saturn', hash='Saturn')\n", + "sim.move_to_com()\n", + "ps = sim.particles" + ] + }, + { + "cell_type": "markdown", + "id": "5f99aae1", + "metadata": {}, + "source": [ + "The reference axes used in the above simulation uses the ecliptic as a reference plane (this is what the NASA Horions query returns by default).\n", + "\n", + "Suppose we want to construct a rotation from these reference axes to reference axes aligned with Saturn's orbit (where the new z direction is along the orbit normal, and x direction is toward pericenter). This is the inverse of what the `to_orbital` constructor returns:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "71dd8e16", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[-5.755225420998638, -7.967620173574598, -5.440092820663267e-15]" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rot = rebound.Rotation.orbit(Omega=ps['Saturn'].Omega, inc=ps['Saturn'].inc, omega=ps['Saturn'].omega)\n", + "\n", + "rot.inverse() * ps['Saturn'].xyz" + ] + }, + { + "cell_type": "markdown", + "id": "bedf73d8", + "metadata": {}, + "source": [ + "When we act our rotation on Saturn's xyz position (in our original coordinate system, in AU), we see we get a vector with vanishing z component (good since Saturn should be in its own orbital plane!), and that Saturn is a bit past apocenter (both x and y are negative).\n", + "\n", + "If we want to get the direction toward Saturn's pericenter in our ecliptic coordinate system, we can use" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "89779f01", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[-0.03324223170028384, 0.9993183366324941, -0.016056652878168994]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rot*[1,0,0]" + ] + }, + { + "cell_type": "markdown", + "id": "09739283", + "metadata": {}, + "source": [ + "# Invariable plane" + ] + }, + { + "cell_type": "markdown", + "id": "4d2be7c4", + "metadata": {}, + "source": [ + "Now say we realize that the ecliptic plane should have very little to do with the dynamics of Saturn and Jupiter, and we want to rotate into the invariable plane, where the z direction points along the total angular momentum. We can do:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "0c3c39ef", + "metadata": {}, + "outputs": [], + "source": [ + "rot = rebound.Rotation.to_new_axes(newz=sim.angular_momentum())" + ] + }, + { + "cell_type": "markdown", + "id": "88919802", + "metadata": {}, + "source": [ + "We could also have passed a `newx` vector perpendicular to newz in order to specify the new x direction. If we don't, it defaults sensibly to the line of nodes at the intersection between our reference plane (here the ecliptic) and our new reference plane (perpendicular to newz, here the invariable plane)--specifically the $z \\times newz$ direction.\n", + "\n", + "We can now, e.g., get Saturn's position (or any other vector) in our new coordinate system:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "bf693526", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[-7.549431805655818, -6.293586822293665, -0.04934773414991059]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rot*ps['Saturn'].xyz" + ] + }, + { + "cell_type": "markdown", + "id": "f020014f", + "metadata": {}, + "source": [ + "However, we might also want to rotate our entire Simulation into this new coordinate system, so the z axis is always a physically meaningful direction. We can do that simply with:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "ce9d96b3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[8.371971695560277e-05, 2.4357882968012634e-05, 0.0030550235653400053]\n", + "[0.0, -3.3881317890172014e-20, 0.0030562675410134763]\n" + ] + } + ], + "source": [ + "print(sim.angular_momentum())\n", + "sim.rotate(rot)\n", + "print(sim.angular_momentum())" + ] + }, + { + "cell_type": "markdown", + "id": "97edf2b3", + "metadata": {}, + "source": [ + "We see that before rotating our Simulation, the angular momentum was almost, but not quite along the z direction (the ecliptic is of course close to the invariable plane!), but after the rotation, the x and y components are at the level of the machine precision." + ] + }, + { + "cell_type": "markdown", + "id": "1a30caee", + "metadata": {}, + "source": [ + "# Technical Detail: Copies vs in-place rotations\n", + "\n", + "There are two ways to apply a rotation to a `Particle`, a `Vec3D`, or a `Simulation`. \n", + "\n", + "We can act (using the multiply operator `*`) a `Rotation` on ab object. As a general rule, `Rotation` * `object` always returns a copy. For example:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "11d99b73", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(8.148225160959612, -7.549431805655818)" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ecliptic_saturn = rot.inverse() * sim.particles['Saturn']\n", + "ecliptic_saturn.x, sim.particles['Saturn'].x" + ] + }, + { + "cell_type": "markdown", + "id": "2ac2f7a9", + "metadata": {}, + "source": [ + "In the above case, the `ecliptic_saturn` particle is a copy. The original Saturn particle in the Simulation is unchanged. \n", + "\n", + "On the other hand, if we call the `rotate` method on a REBOUND object such as `Vec3d`, `Particle`, or `Simulation`. then the object is updated in-place. For example, if we wanted to update Saturn with a rotated position (and velocity) in our simulation, we could do:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "e9a1ccd1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(8.148225160959612, 8.148225160959612)" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles['Saturn'].rotate(rot.inverse())\n", + "ecliptic_saturn.x, sim.particles['Saturn'].x" + ] + }, + { + "cell_type": "markdown", + "id": "2ac88909", + "metadata": {}, + "source": [ + "Now we see that the two yield the same x value, since we've actually updated the positions of the particle in our simulation. \n", + "\n", + "In most use cases, we probably want to rotate a Simulation in place with `sim.rotate(rot)`. Note that if we do `rot*sim` we get back a shallow copy that doesn't keep any of our function pointers (see `sim.copy()`)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8f57cb68", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/rebound/source/ipython_examples/SaturnsRings.ipynb b/rebound/source/ipython_examples/SaturnsRings.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..275f2aeeebc53f3901597eac4e6e6a10376cab78 --- /dev/null +++ b/rebound/source/ipython_examples/SaturnsRings.ipynb @@ -0,0 +1,369 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Simulating Saturn's rings\n", + "\n", + "In this example, we will simulate a small patch of Saturn's rings. The simulation is similar to the C example in `examples/shearing_sheet`.\n", + "\n", + "We first import REBOUND and numpy, then create an instance of the Simulation class to work with." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "sim = rebound.Simulation()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next up, setting up several constants. We will be simulating a shearing sheet, a box with shear-periodic boundary conditions. This is a local approximation which makes the approximation that the epicyclic frequency $\\Omega$ is the same for all particles. \n", + "\n", + "We work with a value of $\\Omega$ that corresponds to a semi-major axis of $a\\sim 130000$ km. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "OMEGA = 0.00013143527 # [1/s]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we need to let REBOUND know about $\\Omega$. Within REBOUND $\\Omega$ is used by the integrator SEI, the Symplectic Epicycle Integrator (see Rein and Tremaine 2012)." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "sim.ri_sei.OMEGA = OMEGA" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let us define the surface density of the ring and the particle density." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "surface_density = 400. # kg/m^2\n", + "particle_density = 400. # kg/m^3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The gravitational constant in SI units is" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "sim.G = 6.67428e-11 # N m^2 / kg^2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We choose a timestep of 1/1000th of the orbital period." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "sim.dt = 1e-3*2.*np.pi/OMEGA" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We enable gravitational softening to smear out any potential numerical artifacts at very small scales." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "sim.softening = 0.2 # [m]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next up, we configure the simulation box. By default, REBOUND used no boundary conditions, but here we have shear periodic boundaries and a finite simulation domain, so we need to let REBOUND know about the simulation boxsize (note that it is significantly smaller than $a$, so our local approximation is very good. In this example we'll work in SI units." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "boxsize = 200. # [m]\n", + "sim.configure_box(boxsize)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Because we have shear-periodic boundary conditions, we use ghost boxes to simulate the gravity of neighbouring ring patches. The more ghostboxes we use, the smoother the gravitational force across the boundary. Here, two layers of ghost boxes in the x and y direction are enough (this is a total of 24 ghost boxes). We don't need ghost boxes in the z direction because a ring is a two-dimensional system." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "sim.N_ghost_x = 2\n", + "sim.N_ghost_y = 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now setup which REBOUND modules we want to use for our simulation. Besides the SEI integrator and the shear-periodic boundary conditions mentioned above, we select the tree modules for both gravity and collisions. This speeds up the code from $O(N^2)$ to $O(N \\log(N))$ for large numbers of particles $N$." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrator = \"sei\"\n", + "sim.boundary = \"shear\"\n", + "sim.gravity = \"tree\"\n", + "sim.collision = \"tree\"\n", + "sim.collision_resolve = \"hardsphere\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When two ring particles collide, they loose energy during their bounce. We here use a velocity dependent Bridges et al. coefficient of restitution. It is implemented as a python function (a C implementation would be faster!). We let REBOUND know which function we want to use by setting the `coefficient_of_restitution` function pointer in the simulation instance. " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def cor_bridges(r, v):\n", + " eps = 0.32*pow(abs(v)*100.,-0.234)\n", + " if eps>1.:\n", + " eps=1.\n", + " if eps<0.:\n", + " eps=0.\n", + " return eps\n", + "sim.coefficient_of_restitution = cor_bridges" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To initialize the particles, we will draw random numbers from a power law distribution." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "def powerlaw(slope, min_v, max_v):\n", + " y = np.random.uniform()\n", + " pow_max = pow(max_v, slope+1.)\n", + " pow_min = pow(min_v, slope+1.)\n", + " return pow((pow_max-pow_min)*y + pow_min, 1./(slope+1.))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can finally add particles to REBOUND. Note that we initialize particles so that they have initially no velocity relative to the mean shear flow." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "total_mass = 0.\n", + "while total_mass < surface_density*(boxsize**2):\n", + " radius = powerlaw(slope=-3, min_v=1, max_v=4) # [m] \n", + " mass = particle_density*4./3.*np.pi*(radius**3)\n", + " x = np.random.uniform(low=-boxsize/2., high=boxsize/2.)\n", + " sim.add(\n", + " m=mass,\n", + " r=radius,\n", + " x=x,\n", + " y=np.random.uniform(low=-boxsize/2., high=boxsize/2.),\n", + " z=np.random.normal(),\n", + " vx = 0.,\n", + " vy = -3./2.*x*OMEGA, \n", + " vz = 0.)\n", + " total_mass += mass" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To see what is going on in our simulation, we create a function to plot the current positions of particles and call it once to visualise the initial conditions." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.patches as patches\n", + "def plotParticles(sim):\n", + " fig = plt.figure(figsize=(8,8))\n", + " ax = plt.subplot(111,aspect='equal')\n", + " ax.set_ylabel(\"radial coordinate [m]\")\n", + " ax.set_xlabel(\"azimuthal coordinate [m]\")\n", + " ax.set_ylim(-boxsize/2.,boxsize/2.)\n", + " ax.set_xlim(-boxsize/2.,boxsize/2.)\n", + "\n", + " for i, p in enumerate(sim.particles):\n", + " circ = patches.Circle((p.y, p.x), p.r, facecolor='darkgray', edgecolor='black')\n", + " ax.add_patch(circ)\n", + "\n", + "plotParticles(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now integrate for one orbital period $P=2\\pi/\\Omega$." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrate(2.*np.pi/OMEGA)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The integration takes a few seconds, then we can visualise the final particle positions." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfoAAAHkCAYAAADWye2iAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOyddzzW+///75cdkoqUIk3aS0lLkpC0h/ZpaSvtqb0n7anSHtJOeyhKiyaJQiiUvV3X748+3r9zHSOkcc7X/XY7t5P3fF3r/Xy9nuPxFEkkEkoooYQSSiihhP8mMr97ACWUUEIJJZRQws+jxNCXUEIJJZRQwn+YEkNfQgkllFBCCf9hSgx9CSWUUEIJJfyHKTH0JZRQQgkllPAfpsTQl1BCCSWUUMJ/mN9q6EUi0V6RSPRZJBK9+Nu2ciKR6KpIJHr7v/+X/d92kUgkchaJRIEikchPJBI1/X0jL6GEEkoooYR/B797Rb8PsPzHtlnAdYlEUgu4/r+/AayAWv/7zw7Y9ovGWEIJJZRQQgn/Wn6roZdIJHeAL//Y3A3Y/79/7we6/237Ack3vAF1kUhU6ZcMtIQSSiihhBL+pfzuFX1uaEkkkoj//TsS0PrfvysDoX87Lux/20oooYQSSiihhDyQ+90DyA+JRCIRiUSF0ugViUR2fHPto6Ki0szAwOCnjO1Hef78ORoaGigpKRX63M+fP1O2bFkqVKjwE0b2a4mMjCQiIoIyZcpQtmzZHPtjY2ORk5NDR0enyPdITU3F398fXV3dPI/5+PEjenp6qKqqFvk+vxuxWExQUBCJiYmULl0aOTk5srKySExMREFBgRo1aiAvL/+7h/nHIJFI8PX1pWLFiigqKn73+MjISMqVK4eWltZ3jy2hYPj6+qKhoYGysjISiYTPnz+jpqaGtrY2fn5+VKxYMcd3Njk5mYSEBP6UZ3tGRgYvXrxAV1cXGZm8184JCQmkpqZSu3ZtAN6/f09mZibly5cHICkpia9fv9KgQYMc5z5+/DhaIpFoFnWMot+tdS8SifSA8xKJpP7//vYH2kskkoj/ueZvSSQSfZFItON//z7yz+PyurahoaHk0aNHP/9F/I+jR49y/vx5NDQ0mDFjBtra2rke5+npyZAhQ1ixYgUikajQ93n16hUnTpzg5cuXPzrk38rz588xNTXF2tqaly9fMmPGjBzHbNq0iQEDBjB27Ngi3+fx48f079+fpUuX5nnM6tWrWbZsGRYWFkW+z+8kKysLMzMzZGVlGTFiBHJy/38OLxaLcXNzw8/Pj4cPH6KmpvYbR/p9fHx82LNnD58/f6ZNmzYMGzYs10ng30lJScHNzY3Xr18jFoupVq0affr0QV1dPc9zDhw4wKZNm5g+fXqBxuXv74+LiwuBgYFkZGQwbtw4Dh8+jEgkYvDgwWzatAkFBYXCvNR/NT4+Pjg7O+Pt7U1ycjLq6ur07NmT0aNHU6VKle+eHxMTg56eHnv27BG23bt3jw8fPuDu7k6/fv1QVFSkS5cuUue5uLjQrFmzfH/PvxIXFxf27dvH+PHj8z0uIyODkSNHEh0djYqKCsbGxpibm1O/fn0AMjMzGTx4MBkZGTkmDCKR6LFEIjEs6hj/RNf9WWDo//49FDjzt+1D/pd93xKIy8/I/2o2btzIjBkzUFFRISgoiBYtWhAdHZ3rsR8+fEBXV7dIRh5AR0eHsLCwHxnuH8HBgwdp164dZmZmBAYG8vTpU6n9fn5+vHr1ioEDB/7QfWrUqMGnT5+Ii4vLdX9qaiqBgYHUqVPnh+7zO7l48SIRERGMGjVKysgDyMjI0Lt3b8qXLy/1UC0OfH19mThxIjY2Ntja2nL06FHS09OLfL3Vq1djbW1NfHw8VapU4ezZszRo0IDg4OBcj09LS2PmzJlUrlyZjRs3EhAQwLt37zhw4ABVq1Zl1KhRxMbGSp2zf/9+WrZsybRp0zAxMSnw2LJXYt7e3syYMQNfX1+2bNnCpk2b8PHxYc6cObme97sXU8VNeHg4xsbGdO/eHYAxY8Ywe/Zs+vfvz5MnT6hXrx5jx44lIyMj3+tkT8I+fPggbHv79i3VqlUDYN68eZw/f54bN26Qnp5OcnIyZ86c4dmzZ0yYMOGnvDaJRMK9e/c4fvw4z549K9A58fHxBfIEysvLo6SkRGJiIvDt++Tr6yvs9/X1pWrVqvl6BYrKb3Xdi0SiI0B7QEMkEoUBC4CVwHGRSDQC+AD0/d/hF4HOQCCQDAwrzL2ysrIICgpCUVExXxduUVm7di2TJk2iatWqwDeX86lTpxg9enSOY1NTU3M8jAuDgoICqampRT7/TyE+Pp7SpUujpKTEtGnTWLt2LTVq1KB69eq8efOG8PBw3N3df3gFqq6uTo8ePXB3d2fIkCE5JlgXL16kVatWP+V78avYsmULHTt2zPchYWFhwdatW3FwcPjh+yUmJjJgwAC8vb1p3749tWvXJjExkZUrVzJ58mTc3Nxo1apVoa757t07VqxYwYoVKyhXrhwAbdq04cyZM0yYMIELFy5IHZ+SkoKFhQUZGRksXLiQihUrSu2PjY3Fzc2Nli1bcvfuXTQ1NTl8+DBz5sxh6NChBAYGUrlywdN8RCIRlStXJiwsjDNnzjBp0iThAd+/f3927tzJ2rVrheOfPXuGvb099+/fp1KlSsyYMYMJEyYUeYL/JxAREYGxsTGtW7dm0qRJUt+3ChUqULt2bfr06cOWLVvo06cPp06dQlZWNtdrycrKsnPnTiZMmEDLli358uUL0dHRuLq6AtCgQQOuXLnCjBkz2LNnDzIyMlhZWeHp6Znjsy4sYrGYU6dOcfDgQTIyMujVqxcGBgYMHToUsViMtrY27969o0qVKhw7dozq1avnep2jR4+ybNkywf2eG/7+/ri7uxMSEkJ6ejrPnz9HS0uLNWvW0KZNG1auXImqqiovX77k7NmzP/S68uK3GnqJRNI/j11muRwrAfL3jeTBzp07Wbx4MVlZWaSnp6Orq8uGDRto3759US6XK1lZWVKxJHl5eTIzM3M9tkyZMqSkpBT5XomJiX+8+7UgdOzYEUdHR6ysrKhduzabNm3C29sbb29vxGIxHz58KLaY+fr162nTpg1bt26lc+fO6OjoEBkZiYeHB69fv2bAgAFUrVqV1NRU+vbty8qVK1FRUSmWe/8K/P39sbT8Z6WqNLVq1SIoKAixWPxDqwaxWEy3bt2QSCRs3LhRatJqZmbG06dPsbGx4datW7nGG588ecLWrVt5/vw5SkpKdO/enb/++otjx47RqlUrwchnY2FhwZgxY0hISKB06dLC9jFjxgDkMDjZqKurM3z4cI4dO0b37t3x9PTkwIED9OvXj8aNG6OoqFjo1bZEIkFGRgYlJSUSEhKE7QkJCZQqVUr4Ozo6GnNzc3r27ImdnR0fP35k/fr1qKioMHz48ELd809i0KBBtGzZUljN54aysjKTJ09m5cqVbNy4kalTp+Z5bP/+/TEwMODWrVuoqanRp08fqWeboaGhsKKXkZH5oQVSNhKJhGHDhuHl5YW5uTny8vI4OTkRFBTEyJEjMTY2RiQSIRaL8fDwwNTUlNevX6OsrCx1HS8vLyZMmMCYMWPYuHEjnz9/zpE39ebNG9atW8eAAQP466+/ePPmDf369ePkyZOYmpry5MkTLl++TGpqKiYmJj+Ui5Qff6LrvljZvHkzS5cuZfz48Tg5ObFlyxY6dOhAz5498fb2Lrb7jBw5ku3bt/PkyRPOnz+Pn58f3bp1y/XYli1b8vLlyyKvyh8/fkzr1q1/ZLh/BF27dkVFRYXt27cTHh5OZmYmmZmZBAcHs3fv3mJNjCtXrhxeXl6YmZmxefNmhgwZwpo1a2jWrBl9+/bl/PnzjB8/nrlz5+Lr68ugQYOK7d6/AgUFBdLS0vI9Jj09HTk5uR9eUV65coUPHz7kGiYAaNKkCV27dmX+/PlS2yUSCfb29lhaWpKcnEznzp0xNjbG3d2dWrVqERAQIGUs//7aZGVlpV5feHg4p0+fZvjw4d+dtPTp04cPHz7w4MEDSpUqJbhOK1asyLt37wr8urOTHWvWrMn06dPZvn073t7eeHl5sXPnTqlY/5EjR6hfvz5mZmYoKChQrVo1Bg8ezIYNGwp8vz+N169f5/tc+zvy8vL0798fJycnsrKy8j22SZMmODg4MGLEiDwXMAoKCsVi5OFb6OXatWvMnz8fExMTWrVqxZw5c9DS0kIikQi/j2wPgpaWFqNGjaJx48bUr1+flStXkpmZyZUrV2jXrh0NGzakU6dObNmyhZcvX/Lq1SshbHH69GkGDBiAqakpWlpamJiYMGjQIBYuXMjXr1+Rk5Ojd+/eDBo06KcZefjDs+5/FIlEwqJFi5g1a5bwJsrIyGBkZERSUhILFy7k8uXLxXKvRYsWUa5cOc6fP0+5cuW4e/dungkpVapUoV27dnh6etKxY8dC3UcikXDjxo1ij7X+DuTl5bl+/ToLFy5kxYoVJCYm0qZNGy5fvkyLFi2KfN3MzEwePnxIVlYWRkZGQoJUmTJlcHR0xNHRUer48uXLs2DBAsEdaGdnx/jx44mMjPxhF+GvolOnTjx48ECIb+aGl5cXHTp0+GFDv2XLFiHxLy/at2+Pvb09ERERVKr0Te5i/fr1XLlyhVWrVkl5S5o2bcqzZ8/YsmULZcqUoWfPnlIP9WfPnqGjo8P+/ftJTEykdevW3L17l9atW+dYZWUjkUgICgoiJSWF2rVr06FDB5ydnZk5cyadO3cmNjYWeXl5zp07V+A4va+vL1paWjRu3JjGjRujoqKCi4sL8G1B0bt3b+HYqKioHImA5cuX58uXf8qG/FokEgnh4eF8/foVRUVFtLW1C+y52rJlC+3bty+wwa1ZsybKysrs2bMHeXl5NDU16dSp029PWLx48SJGRkZSlRYyMjKYmZnx7NmzXBdR9+7dY8iQIcjJyXH06FGCgoJo1KgR4eHhSCQSGjRowMWLF9m5cydKSkp8/fqVUaNGERISwsiRI6WuVa9ePbZv346uri6pqakYGhpib29P7969f1pVzH/a0CcnJ1O2bNlcZ0qtW7dmz549P+zGzEZGRgYHB4cCxz/t7e2xs7PDxMSkUB+ur68vsrKyxRp2+J2ULl2adevWsW7dumK53s2bNxk0aBDKysrIyMjw9etX9uzZg42NTa7HSyQSEhIShJVEQkICt27dQiKRYGxsjLKyMnXr1mX8+PGYmJj8sfHV7Dhnhw4dci27TEpK4sKFC+zatUtqu0Qi4cGDB7x79w5NTU06dOjw3Qf5y5cvMTPLEV2TolSpUujp6REQEEClSpXIyMhgzZo1TJs2LVfD0rhxY4yNjQkODsbJyYlevXqhoaHBkydPcHV1JTMzEw8PD0qXLo2rqyvx8fEMG5Z7mk5sbCyrVq0iJSWF0qVL8+nTJ2xtbbl27RotW7bkxo0buLq6oqOjw+HDh3n69ClNmjTJ9/VkZGRw5swZqVW7ra0ttra2uR5vZWXF7t27sbGxETxT165dw8rKKt/7/CwSExM5ePAgmzZtIjw8HHV1dTIyMoiPj6d79+7Y29tjaJh/Uvfjx48LVZWSHSqdNm0ahoaGREVFYWdnx/nz52na9OcpmLu5ueHs7IxIJMLBwYGuXbtK7VdWVs7Vm5qUlJSjzDIzM5Pnz5+zdu1aNDW/VbdNmjSJSZMmMX/+fHbt2sXy5csJCAjAwcFB+B69ffuWJUuWICsri7+/v3AufAuz6enpsWTJEjIzM3n8+DHLli1j27ZtnD9//qeEZf/Thh7I020kFot/8UikMTMzo0GDBuzcuZOxY8cWaLIRFhbGzp07hZKeEqSJiIigV69ejBs3joYNGwIQEBDA0KFDefDgAbVq1cpxjkgkwtraGjc3NzIyMrhz5w5NmjTB3t6esmXLkpGRwdu3bxk2bBjy8vLs27ev0ElmvwJ9fX2WLFnC0qVLGTp0KE2aNEFGRgaJRMLr1685ePAgPXv2lHpQ+/j4MHToUBITE6levTpRUVHExMSwfv16BgwYkOe9ZGVlv5tRDd+MY/akwdvbmzJlyuSb8NiuXTuCgoKwsrLC2dmZr1+/YmBggJycHKtWrRJi93379sXBwSHPCbKLiwsNGjSgf//+iEQiXr58yfr164X4fvaKHKBnz57Y2Ngwfvz4XPMJ4FvIY/PmzdSsWZMhQ4Z893UDGBsb079/f2bMmEGTJk2IiIggKyuL3bt353mORCJh27ZtbNiwgQ8fPqCvr8+cOXPo3z+vVKaCcefOHXr27Ent2rXp0aMH9evXF5438fHx3Lp1CxsbG9q0aYOrq2ue2h6pqamFWpRcvHgReXl5tmzZIhhQb29vunTpwocPH37K6vXChQuMGTOGIUOGIJFIGDFiBEeOHJHynPbv35/Vq1fTqVMnoQQ6NjaWixcv5liopaWlSdW6w7eJgoqKCqmpqXh5eTF+/HhKlSpFRkYG7u7uVKpUiWbNmmFmZkZoaCh79+5FVlaWevXq8ebNG1xcXIT8Ejk5OYyMjGjevDl79uyhd+/eeHh4IJFIePLkCUCxTIr+04ZeWVmZ2NhYgoKCcmRN3r59Gysrq59SygDfjLKdnR3Pnj2jSpUqODs707JlS2G/SCTi6NGjWFlZsXHjRoYPH55nzW+2sMfOnTtZt24dnTp1+ilj/rdz4MABmjdvLhh5+FbCYmJiws6dO1mzZk2u5zk7O9O0aVO0tLRwcnLKMaOuXr06nTp14tGjR3Tp0oWjR4/+kZ/BhAkT0NHRYcmSJbi4uFCxYkW+fPlCqVKlmDlzJiNHjhQmiK9fv8bS0pIhQ4bQsmVLYfu7d+9wcHBAUVGRXr165Xqf9u3b8+jRI6HCJDeioqIICQnh/PnzeHp6oqGh8d2VipqaGtHR0ezatYukpCTk5eVJTEykZ8+eUgl6IpEIXV3dXMtXJRIJjx49YteuXcJrqlevHpUqVco1ObZ169acPn2aXr16UbNmTdq0aYOhoSEikYi4uDhu377N9evX6dChA3v37uXBgwd4e3uTkZFB9erV6dq1a55iO+vWrWP48OHcuXOHKlWqYGVlla+3xNHRkWPHjjFkyBCqVavGmzdvmD59OvHx8blW7xSEW7du0bNnT6nJ799RU1Oja9euWFpasmPHDqytrbl8+XKuRlhDQ6NQoYebN28yZswYqfenZcuWXL16lStXrmBtbV2k15Qfrq6u9OzZUwj9xcbGcuDAASlDr6enx9q1a3FwcMDQ0BA5OTkePnyIgoICjx8/pnLlypQuXZro6GiOHTuGmpoat2/fxtTUFPgWSlJUVKRGjRrIyMigrq6Ov78/cXFx1K5dm8uXL3PkyBHatGlDWFgYvXv3Zu/evWRmZqKjo8Po0aOFiWY2MjIyDB8+nBkzZnD48GEWLlxIeno6IpGoWHIT/tOGXiQSsXz5cubMmcOIESNo0KABGRkZeHp64u7uzo0bN37KfZOTk+nQoQNNmjRhzpw5vH37ls6dO+Pt7S3U4sI39+aVK1eYOnUq06dPp3HjxpiamqKrqys85B49esTNmzeRkZHh0KFD/1pBl19BaGhorqplFStW5OPHj3met3r1aqpVq4aDg0OecWeRSETz5s0pXbo0tra2+Pj4UKNGjWIbe2G5fPkyT548QVdXF1tbW+Fh0K1bN7p164a/vz+RkZGULVuWBg0a5PAALV26FEtLS4yNjaW216hRAzs7O2bPnk3Pnj1z9RxNnDgRMzMzzM3NczXeqampLF68mNKlSxMQEEBKSgr3798nKyuLzMzMPB9cly9fRiQSMXHiRKpXr050dDSbNm3C398fc3NzqWPbtGnDqVOn6NChQ47rKCoqkpiYKMTvJRIJcXFxaGhosGPHDgYNGiQVPqhQoQJNmjThzp07PHnyBFlZWdLT0ylVqhR9+vTh4sWLREdHY2hoSFxcHI0aNUJWVpZjx44xduxYJk2axNy5c3NdNNSrV4969erl+nr/TmxsLM7OzqxevVoQB2rYsCH29vYsWLCA4cOHF3oFHBMTQ69evZgwYYIgypIXCgoKjBs3jg0bNjB37lxWr16d45jsEkIjI6MC3T8hIQENDY0c2zU0NPLUGPlR/lkNkZiYmKvY0ogRI+jcuTPu7u5kZGSwfft2VFVVmTp1KpMnTxZW6EOGDGHVqlV069aNBw8eICcnR2BgIO7u7sjIyCAWizl//jydOnWSmhifPXuWixcv4uTkRIUKFbh//z5LlizJ1xMrKyuLqakp9vb29OrVSwiP3bhxo1BJo7nxn8+6HzZsGE5OTpw6dYpRo0ZhZ2eHv78/V65cyTGryovsmd3FixcLJAby8OFDZGVl6dWrFxUqVKB169a0atWKU6dO5ThWQUGBTZs28eHDB3r06MGJEydwcHBg5MiRODo6EhMTw+7du3n79m2Jkf8OxsbGPH/+PEfJlJ+fXw6Dlk1MTAwHDhzAzs4u3+SybAwMDGjdujWmpqa4uLj8lhDQnDlzsLOz4+HDh6xcuZIuXbrkCFHp6+tjYmJCw4YNczxcJBIJbm5uwgrln9SvX5+kpKQ8lRcbNmzIyJEjWbFiRQ7hppSUFBYvXkzNmjXZsGED/fr146+//mLt2rUoKSlx6NChXK8pFovx9PTEzs5O8L5paGjg4OCAj48PycnJUsc3aNCAiIgI3rx5I7VdJBJhbm7Orl27iI6OJjU1lRMnThAfH0+jRo3Ys2cPNWrU4MyZM0gkEkJDQzExMaFKlSrs3r2bAwcOMHHiRNTV1Tl9+jQuLi68e/eO/v37Y21tzZo1axgyZAgDBw5k1qxZzJs3j+PHjwuuYvjm6vf19eXNmze8f/++QKW0vr6+6Orq5jBKenp6iEQiKVGZgrJ3714aNWr0XSOfjaysLEOHDhU8Kv/E1tZWmEAWBA0NDR48eCC1LTU1FV9fX2JiYpg3bx6LFi3i7t27xSYqNH36dC5fvszBgwdxdXXl+vXreeZNVapUibFjx2Jvb0/16tWpUKECrq6uREZG8vjxYyIiInBycqJly5a8f/+e+fPnM336dD58+EC7du2Ii4ujdevWhIaG5sgD6Ny5MykpKXh7e+Pj40O9evUKFG7N9jyZmZkhEokQiUS5TmYLy396RZ9N37596dOnDzExMcjLy1OmTBnEYjG3bt0iMjKS9u3b55ldvWvXLqZNm0a9evVISEjgy5cvXL58Oc94Hvz/Wtu/kz37ywt1dXUmT57M5MmTi/QaS4DevXuzYsUKXFxc6Ny5M7Kysly5coWIiAiGDh2a6zl79+6lWbNmhUqAsbCw4MaNG6xYsQIfHx+2bt2a7/HZbuxKlSoRHx/P4sWLuXTpkpAf4OjomGv+QG5ERESwefNm1q9fj5qaGllZWSxcuJBLly7lkArNi8zMTDIyMqRq0v+OSCSiTJkyxMfH53mN5cuXo6WlxfLly6lUqRKVK1cmJSWFx48fk56ezsyZM6V+A2pqatja2rJv3z4MDAxo3ry5sD87USw1NTWHl0RdXR0FBQV27NhBcHAwEomEpk2bIpFIqFevHps2bWLmzJlSsf8+ffpw/Phxpk+fTlpaGioqKnTp0kWo/d6/fz9//fUXLVq0oHbt2hgbG0slyRkaGpKVlcXcuXOpX78+o0aNYs6cOejp6eV4H7S1tZk5cyZLlixh//79qKmpMXLkSOTk5IiLi0NJSQmJRIKtrS2LFi0SKhD+iYaGBlFRUTmSg1NTU0lKSvquBPA/EYvFbN68GTs7u0Kdp6mpib6+PkePHmXEiBFS+5SVlVmwYIGw6s/vN+Pv709UVBSnT58GwMjIiM+fP3PkyBEyMjI4dOgQ1atXJzMzkz179qCqqsqhQ4e+mxT5PerVq4eXlxcHDx5EJBKxcePGQnveVFRUciSMlipVih49egh/p6en07lzZ2RkZChTpkwOb4ucnBxly5bl7Nmz6OvrU6ZMmQLdW15enqysLKkyv+KYBP2nDX1iYiJ2dnYkJCTQsWNH+vfvj7KyMjExMXTs2JGEhAS0tLSws7Nj3bp1jBo1Sur8oKAgZsyYwZIlS4SJwO3bt+nXrx8vX77Mc4bWokULUlNTOXv2LG3atOHdu3dcu3aN4OBgPn78yIQJE6hbt+5Pf/3/11BUVOT27dvMnz+fpUuXkpWVRbdu3bh3716eD6UTJ04UOt5eoUIF9PT0sLCwYO/evcyYMSNXIxAVFcXYsWO5cuUKFStWJDIyEolEQocOHVixYgXw7fvUqlUr7t69KzTpCA8PZ/ny5Tx+/JimTZsye/ZsoVQzKiqK8uXLC69HVlaWKlWq8OnTpwKPX15eXsiI19fXz7E/MTGRsLCwfCcfIpGIyZMnM27cOC5dusSHDx9QVlZm6dKl9OnTR+rBFh0dLawCy5Qpw6VLlzhx4gT6+vrCCq9bt25oamry8uVLKe9LcHAwaWlplCpVimnTpiEjI8O1a9e4c+cO9+7d482bN4wdO5bWrVtjZmZG5cqVkZOTw8LCAllZWS5evIiNjY3Uiqtz5854enoSHR3N69evc41/Gxoa4uzszNatWzEyMsr1881GQUGBXr16sXLlSj5+/Mjs2bOpWbMmKSkpbNy4ER0dHT59+oSRkRH379/Ptey2Xr16VKlShUuXLgmxa4lEIoQn8lNey41sz1bNmjULdR5Aq1atOHbsWA5DD98yzj99+sTChQvp06cPzZs3lwrFJCYmcvPmTS5cuMCJEyeoUKECCxcuZP78+SgoKJCcnIyjo6NUfoetrS337t2jY8eO3Lx5M9dcgsJQu3ZtFi9e/EPX+B6HDx8mKSmJ6dOnM3HixBx5YNmenKVLlzJjxowCT+Rv374tqPb16NEDkUiEm5vbD4/3P23og4KCaN68Oerq6uzYsYNVq1Zx584dFi9eTIUKFZg1axYikYiIiAimTp2KjY2N1Mrezc0NIyMjqW3t2rXDzc0Nf3//PLsnqaiocP36dfr27cvJkydRVlamR48e1K5dmxcvXtC2bVvmzZtXLFKkJUhTvnx5tm7d+t1VdjZfvnzJocRWELIz8uvUqcOTJ09yGIKUlBRMTEyoVasWzs7OKCsrk56ezsWLF7l27Ro2NjaoqanRo0cP5OXlmTNnDm5ubiQmJmJsbEyjRo0wNzcXwg4vX75ETU2NmjVrkpycjI+PD82bNyc0NJRnz57h5ORUqPFPmDCBffv2MWPGjBwx8zNnztC5c2epkqC8UFBQkBJQSU5OJikpiS9fvhAbG8vx48cJDAxER0dH2N6vXz+sra0JCgpCSUkJc3NzHj58yJUrV9i3bx8KCgo0atSIkJAQ1qxZQ8uWLYUsZYC//voLOTk5du/ezebNmzE2Nmb79u0sXrxYKJvKysoScl3+6enIzMwUSlRdXV1zdVOnpKQgKyvL0aNH8yzj+zsNGzbE2dmZZs2aCcY1O8a/detW1q9fj6KiIvb29nk+uLMnnT4+PlStWhV/f3/U1dXx8PD47v2ziYmJ4cmTJ7x584Zy5coVqTqnXLlyecbQRSIRK1aswMjIiNWrV3Po0CEaNGiAoqIi8fHx+Pn5YW1tzZ07d4SQwZkzZ/j69St6enosXbo0Rx6NSCSiTZs2pKSkMHny5J+WO1WcODk5YWlpiby8PAMGDGDt2rUMHDiQWrVqERgYyKFDh7C1tUVTU5M2bdrg6emZq3Le33n8+DEvX75k/vz5HDx4UPjcCyPTnBf/aUNfuXJloX7a1NSUw4cPM2nSJB49esTYsWOFH0GlSpWoX78+t27dkqqLFYlEOdwmEokEsVj83R+QpqYmISEhjB8/Xip5pU6dOpiamrJkyRLq16+fI8mohF+LgoJCnlLF+ZFtLEJCQnIVqTl69CjKysoMGDBA+K4oKCjQvXt3IiIiuHbtGj179gSgQ4cO2NnZkZWVxfHjx9HW1haU+erXr090dDRHjhxh9OjRKCsrc/bsWbp3787u3bvJyMhgx44dBYrDZid8eXp6UrNmTcqVK8eyZcvo3LmzUF539epVoqKi8PT0LPR7At/cu4MGDWLLli18+PABW1tbpkyZIoikfPr0iZMnT3L37l1u3rwpuEg3btxI3759UVFR4eTJk6xZswZNTU3k5eVzrdlv374969atY8OGDVStWhVZWVnk5OTo0qUL9evXR1lZmefPn3P69Glu3LghZF1LJBLOnDlDy5YtiYmJoWrVqly5coWGDRtKucwvX75Mt27duHr1aq4JZf9ERkYm30RO+OZJsLe3z1OIKTvT3sPDg+DgYGbMmEH79u0LZKzT09NxcHDA1dWVGjVqEBkZWaDWu7mRmZn53cS/7t270717d168eMHDhw+F7nUWFha5ThD37dtHkyZN8m3xa2JiwqlTp3j79m2BV8C/g4iICIKDg4Ucr3bt2qGmpsaFCxc4dOgQlSpVYuTIkUIYonXr1rx48QJnZ2cWLFiQ53t7+PBhhg4dSo0aNViwYIFQ4VCuXDn69ev3Q2P+Txv6f8bJu3btysSJE2nQoAGfPn0S4noSiYSoqKgcP75evXqxZMkSLCwsBHfbzZs3heYN+XHo0CGqVauWa4aqhoYGPXr0YO3atSWG/jdTt25dAgIC8nXN/hOxWExgYCDwTf0rt7iim5sbrVu3zvUhbWJiwqFDhwRDr6CgIEwgP336lMOwaGhoSLnmjYyMCAsLIyoqinLlyhVIaSw5OZlWrVqhpaWFoaEh79+/x8/Pj2nTpuHu7o6rqyvlypVj2LBhjB49+odEO5YtW0blypWZMmVKjlwWLS0txo0bx+bNm+nXrx+1atWifPnyeHp6MnjwYJSVlYUYvEgkYs6cOblqYWRlZREXF4euri5//fUXR44cYcWKFVLjrlq1KrVq1WL58uU8evQIPT09oSOZjY0Nhw4d4vTp08ycOZOVK1dibm6OkpIS3t7evHnzhnv37tGmTRsSExPzbXf7d3x8fPD390dfX5/k5GSOHj1KmzZtgG+ToGxjHhERwa1bt4T4e5cuXYQJS+fOnQv9nk+cOJEnT54IuRufP39mzpw5+VY55EVYWBhVq1YVMsoPHjxIYmIiHTt2zFEGXL9+/QJNMr28vAqU+V+vXj2ePHnyRxv6uLg4ypQpI2Vf/q7N8E/U1NSQk5MjMjKSxYsXM2DAAAwMDIRnw5cvXzh37hwfP36kefPmwnlF8TTmxX/a0P8TFRUV5OXlGTp0KHPmzOH169doaGjw7t07VFVVadeundTxenp6ODk5YW9vT+3atYmPjyctLU1IpMqPixcv5qs01bJlS3bt2iWVdFGCNNlSnQYGBgXKiC8K48aNY9SoUZibmxf4c3jy5AkpKSnUq1eP9evX53pMfg9YOTk5KeP14MEDWrZsiby8PFZWVqxfvx4rKyuhbvn+/fvMmzdP6hqysrKFkuc9cuQIqqqqjB07FoDmzZujoKDAy5cvi7XnA3z77uvr6+eZsBoVFYW/vz9lypRBXV2dgIAARCIR165dE2Lp2Z9F8+bNuXr1KnXq1JH6fK5cuYKZmZnwGUyZMiXXyYm+vj5Tp05lx44dNGjQADk5OUJDQ7l9+zZjx45lwYIFPH36FEVFRXbs2IFIJKJp06ZcuHABXV1dunTpwv379+nbt2+Oa/+doKAgAJo1a8aGDRtQVFQkISEBY2NjKVXG+Ph4xowZQ2xsLE2bNhXKwebOnUurVq1YsWIFjRo1KtT7HRkZyZEjR3BychI8JBUqVEBHRwcfH588K05yQyKRcOvWLTZv3kzfvn3x9fWlQ4cO6OjocObMGTZs2MDdu3cLNTGG3L2j/xaysrJIS0sTyjXV1NSIi4srsKpqtvLm/v37sbKyYtWqVcjIyAhta5OSkvKsgCku/k8Zek9PT0QiEbNmzUJXV5fIyEiCg4P58OEDhoaGXLx4EWtra6kHytChQzEyMmLy5Ml8+vSJmjVrEhYW9t3e5VlZWfnOpOXk5JBIJCWGPhcSEhIYPHgwt27donTp0kgkEvbt21fovgAFwdTUFBkZGR4/fvxdCVD4ZsAvXLjA1q1b88zkh2+Z+dk5Hv8ke3UjFot59uwZBw8eFEovGzduzMyZM5k9e7bQEnXOnDlSY0tPTxdkPv38/EhLS6NMmTJ07dqVCRMm5Kqk9eLFixyrJAMDAyErujj53iTXyckJKysrKcEUa2tr5s6di4GBgZS3zMLCgoULF+Lk5ESnTp2QkZHh+vXrvH37lsWLF6OmpkaFChXynQg2aNCAUqVKMWnSJPbv38+XL1/o0qULJ06cwNzcnBEjRgju1JCQEK5fv46JiQl79uxhwoQJtG3bFgsLizwzpyUSCWfPnqVv375cvXqVTZs28enTJ8qUKSNV2RASEkJERARjx46lRYsWUmMePHgwt2/fpkOHDkJns4Li7e1NnTp1cmSKd+rUiUuXLkkJIn2PN2/eIBaLiYyM5NWrVyxcuFB4b4yMjDhz5gzjxo3j4sWLBR4ffEvwc3Nzy7evQHp6Oi9evKBZs2YFvm50dDR79+4lKCgIc3NzevToUWwiaKmpqcyaNQsXFxdSU1PR19dn1apVWFpaoquri5+fX4FKtL28vOjWrZuQsGppaUnjxo1JTk7m1q1bvH37lg0bNvD06dNCT8wKyn/a0CckJJCVlYWsrCxnzpzBzc0NGxsbOnToIOUWSU9PF1oOurm5sXPnTsFIJyUlYWVlRcOGDZkwYQJhYWEMGDCAgwcP5lvX3rZtWzw8PPL80J4+fUrTpk2L/KXMzMzk3LlzPHjwgKpVq9K/f/8Cuxf/dOzt7YmPj2fz5s0oKCjw/Plz+vTpQ0BAQIESxL5HSEgIiYmJ6OjoULp0aVxcXOjatStqamr5hmQyMzPZtWsXVapUYeDAgfneY9iwYaxZswYPDw/Mzc0FOVpvb29u3LiBoqIinp6eVK5cmcOHD0v1Lpg2bRrDhw/nzZs36OvrS2Vce3p60rt3b7S1tTE1NWXUqFEoKCgQFxfHvXv36Ny5M40aNeL48eNShqlZs2asWbOGrl27Cg/9Z8+eFWhyU1jS0tLyLAd7//49cXFxOTTfNTQ0sLa2xsPDQ+ozkJGRwdzcnDNnzhAQEICMjAy6urosXboUVVVVxGIx8fHxeZYKwrfVZNmyZYmLiyM5OZlOnTpRsWJF7O3tc/z+dHV1GTZsGCYmJtjZ2XHgwAHGjh3LqlWrmDJlSo6wSnapWFpaGhs3bsTExIQzZ87Qq1cvKeOanJzMpk2bsLKyyvWZoKSkJIQIe/fuzePHjwu8ai5VqlQOnQH45g05deoUx48fL1CM9+vXr+zYsYN169axfft2rKyscsSTLSwsGD9+PDExMYWqBBg6dCiOjo5STY7+yc2bN6WSGb9HZGQkjRo1QllZmXLlyuHh4cHZs2fZv39/gceVH4MGDSI8PJwVK1ZQrlw5nj17xuDBgzl9+jQTJ05k+/btNGrUKN9JVHx8PPfu3RM099u1a0dmZiahoaG0aNGCOnXqcOHCBYYNG8aWLVuws7NDX19fyj4Vh1aH6N/qTikIKioqEiUlJWRkZEhJSWHhwoX5am2npKSwYcMGmjdvzs6dOxGJRLi4uLBjxw6mTJkiHJctgnD37t0c15BIJOzZs4dly5bx8eNHFi5cmOOLm5KSIuiS59UUIz8SExMxMzMjISFBEA7x9/fn2rVr+db3/2zS09OZN28e+/btQywWM2jQIFauXJmndnZuZGVlUbp0aZydnaVcsVu3bqV///5FlgKFby0jFy9eTEhICKVLl+br16/06tWL5cuX8+zZMwYOHEj79u0xMzOTeqCLxWKePn3KhQsXqFy5Mm5ubgXq+PX27VtsbW2JiIigWrVqfPz4EUVFRQ4ePEjFihURiURUrly5wKutO3fu0L17d8aMGZPnSiIrKwtXV1fCw8Px9PQUGqqkpaXRrl07srKyhBj9s2fP8Pb2LrQb9ns4Ojry+PHjXD0ePj4+3Lp1S6o5TDYvXrxg8+bN2NvbU6dOHZ49e8amTZuoUaMGurq6BAcHExMTQ0pKCoMHD6ZSpUp4eHjw6NEjtm/fnmfyWWZmJvb29nh7e3P8+HHOnTvH5MmTv/u+v3nzhs2bNxMaGsr69etZuXIljRs3pmHDhsjJyfHhwwehPPLgwYOUKVOGoKAgjI2NSUxMRElJiYYNG6KpqYmHhwfVq1cXKn3y49ChQ9SsWbPAjZ5SU1OpXLkys2bNyiFLvGPHDnx9fWndujW9evXK87cYFBTEunXrmDJlCrNnz6Zhw4bY2trmanQnTZrEvXv3csiKf4/syojJkydLfefEYjF37tzh+PHj3Llzp8Clx2ZmZjx69AgzMzMSExPx9vZGRkYGLy+v73pc8yI5OZnVq1dz6tQpgoOD2b59u1QOzM2bN3n//j2nT5+mTZs2VKpUiYEDB+a6YEtISGDZsmWULl2at2/f0rBhQ6pUqYJYLCY4OJh3795hYmJC165dmT17Nvfv3+f06dOsXLmS9u3bU6NGDb5+/cqdO3cIDAx8LJFIijwr/08bekNDQ8mhQ4cwMjJixowZBZopJicnM3/+fFxdXWnfvj2Ojo68evVKKkYXHh7O+vXrCQkJyXH+unXr2LRpE8OGDSMpKYlt27bRqVMnTExMUFJSws/PjwsXLmBpacnWrVuL5LZfuHAh165dY8KECcIX7Pr16/j6+hZ7vLUw2Nvbc//+fQYPHoysrCyHDh3CwMBAaOVZEDIzM1FWVmbXrl1Svcl37dolJFMWhc2bN7N8+XKGDBlC48aNkZGRERpZPH36FG9vb5KSkti4caOQSJnd4SswMJDKlStjb2/PgAEDCp3c9PTpU4KCgqhcuTJGRkZF+swTEhKoVq0aY8aM+W6dsUQiYdeuXejq6rJ3715he0pKCvv378fT05NatWoxevToQsX509LSmDt3Lrdu3UJbW5u1a9dSq1YtHj58yO3bt1FVVaVXr16kpaXRoEEDNmzYIEw0sgkJCWHlypVs2rQph7v9zJkzvH//ns+fPxMVFUVqairz5s2TWuHfvXuXY8eOUb9+fSIjI7GyssLHx4f69evn2tExOTmZffv2ERAQQKNGjbh//z6zZ88usJGaM2cO1tbWODk5ERsbK7x/6enp1KpVi1GjRklpEXTt2pXY2Fh69uxJamoqe/bsQVFRkbCwMLZu3Vqg705kZCQLFy4kPDy8wJNkV1dXpk6diq2tLc2aNSMhIYHLly/z4sULLl++zMyZM7l9+zZt2rTB2NiYMmXKkJmZSXBwMOfPnycmJoaNGzfy119/ATBq1Cji4+Nz9DsIDQ1l1apVPHnyhFWrVnHs2DFSU1Np27Yt8+fPl+rnkRsuLi7MnDmTSpUqUaNGDaF7m6amJq6urgVeqERHR6Ojo8P69esFz4KnpyeHDh1i9+7dUuI2hcHS0pK4uDiqVq3Kq1evcuTGREZGsnbtWkJCQoiJicHa2pq4uDg6duyIkZER8vLyxMbGcvv2bS5dukRmZiZdunShY8eOObxOnz59wt3dnTdv3lChQgWWLFlCly5dCAgIYMeOHbx+/ZqyZcsyePBgrKysSgx9XhgaGkomTJjA1q1bmTZtWoHP8/Dw4OvXr7i5uXHlyhVGjx7N0qVLBTfWqVOniIqKolSpUkJMK9vl5+DgwMKFCwX3VFhYGOfPn8fLy4tSpUrRtGlTJk2aRJcuXYocm2/QoAF9+vSRquPPysrCzs6O4ODgApUDFTdZWVmUKVOG9evXCyGExMREJk6cSFRUVJ59w3Mj+0dqa2uLSCQiLCyMxYsX8/z581xbDn+PiIgI9PX1Wb58ea51rNmJaq6ursC3cM2tW7eIiYlBUVERAwODQidIFTfbtm3j4MGDTJo0qUDHx8fHM3XqVIKCggottpIXQ4YM4c2bN3Tp0oXAwECuXLkidORq2rQpSUlJPHr0iBUrVhAQEMD169eZMmVKDmM/c+ZMDA0N6dOnj7AtOyPZw8ODpk2bMmHCBD58+JBrt7gVK1Ywc+ZMwRvm5eWFtbU1kydPFn4T2WV07u7ugmxxZGQkDx8+zLO5UW54eXmxZ88e1qxZg42NDZUqVcrzdxsSEkKjRo3YvHmz8KyIjo5m+vTpGBkZSWkBfI/Zs2dz6tSpAst0A1y9epVly5bx4MEDlJWV6d+/P/PnzxdK2j58+MD27ds5e/YssbGxyMjICG2YO3fuTP/+/YXP6s2bN7Ru3ZpRo0bRpEkTRCIRUVFRODk50b9/fw4cOEDdunWxsLBAWVmZhw8fcurUKY4cOfJdAar09HTOnTvHq1evUFBQoH379rRo0aJQz8Pr168zYcIEFi1aJHXdIUOGEBISkqso0fd4+fIlHTp0YOPGjURERLB06VI2b94sNTm7d+8efn5+3Lx5E/j/IdTsslX4JtxlaWnJjRs3sLOz+273OTc3N86fP8/58+fzbD8uEol+yND/p2P08G0l973e2f+kbdu2TJo0ifDwcLS0tKhTpw6Ojo40b96cjx8/8ujRIypVqoSFhQUdO3ZEJBIRGhrKxo0bSUlJITo6WjD0VapUYcyYMaSkpDB16lR69+79w69JXl4+R+13VlYWYrG4UKtNDw8Pli9fTnJyMr1792b69OlFzhkQi8Wkp6dLrUAUFRWRSCQFamn6d7Zt24aVlRUzZ86kXLlyvHv3jk2bNhXJyAPs2bMHY2PjPMUqrK2tmTp1KrGxsairq6OiovJTOmsVFYlEwqZNm/LsJpcbampqNGvWjL179+bqJi/KGI4dO8aOHTtQVlbGwMCA69evk5KSwtq1a4XV+efPn1m0aBGnT58W+oG3adOG6tWrk5qayqNHj4iPj+fRo0e8ePGCevXq8fXrV3x8fFi7dq2QiBUcHJynC7dWrVq8ePFC+NvY2JjDhw8zaNAg9PT0aNSoEY8fPyY6Opq1a9cKE9/r168XWg5VV1cXRUVFpkyZwowZM6hWrRqLFy/OoW0O38Rq1NXVpeLa6urqpKenF7ohjZKSUq5x9/wwNzfPt1y3atWqrFixggkTJtCvXz/evn1LkyZNUFRUFBQeFy1ahL29PQYGBpw6dYqRI0dy+PBhVFVVCQ8PZ+rUqcTHx6Ovry8VmunYsSMaGhpMmDABf3//fI12tpJgYb7P/6RWrVpERESQmpoqPHMCAgLQ0tIqkpGHbyvs7MTOKlWqULVqVfbs2SOUfQYGBnLs2DH27dsnnCMnJ0ePHj3o0aOH8KxTUFBgxIgRdOzYsUAtZnv06MGLFy948+ZNnob+R/nPG/o3b94wYcIEJBIJMTExpKamoqamlm+dsLKyMhoaGhgaGiIrK0tycjI6OjqIRCKePHnCoEGDcvygtLW1MTIy4uXLl2zcuJGJEydKuVi/fPlSbCurwYMHc+DAAfT19YUHyPnz52ndunWBE/Ju377NwIEDGTx4MGpqari4uJCUlFRk6Uh5eXksLS05efIktra2yMjIcPr0acFNWBgqVqzIkydPePjwITExMbRu3brQ1/g7z58/z7cuNztzOzg4ONea+PDwcEaOHMmTJ0+oWLEiTk5O+WYPFzfJyckEBQUVuDlJNo0aNeLu3bs/ZOizy62ePn2KjIyM0BUuLS2N6Oho5s+fL+WCr1ChAlZWVoIHYurUqezevZtXr16hpKTEjBkz6NmzJ3Jycly6dAkfHx/Kly/P4cOHpcRUKlWqlKesb1RUVI5SWEtLS8LCwjh+/DgnT54UVPXyS9IrKNliOBKJhICAAAYOHIitrS2bNm2SmtjWr1+f1NRU/Pz8hN/+tWvXqFWrllRHte8hkUiK9Xnxd75+/Uq7du0wMjJi/PjxUp9dtltaLBYzefJk2rdvz9u3b3n27BlJSUk0btwYVVVVqlWrxrhx43Jcu1GjRri4uPD69eufLvGtq6tLnz59WLFiBZ06dSIhIYGzZ8+yffv2Il/TyMiIjx8/EhAQQO3atZkwYQLz5s1j7NixlC5dGnl5eSHrPjdEIhEKCgrExsYKok8FQSQS0a1bNzZt2sTo0aN/ShXWf97Qp6am4unpybVr14iNjUVFRYXY2Fhq166NtbV1rvHO1NRUwsPDsbe3p1mzZmRmZnLs2DGuXLnC0KFD85111atXDwcHBzZs2MCWLVsAcHd358uXLwVOEJFIJHz9+hUVFZVcE4wmTJjA/fv3mTp1Kg0bNiQ0NBSxWMy1a9cK9qYAu3fvplu3bkIG8JgxY1i1atUPaUTv3r2bvn37Mn78eGRkZKhduzYnT54s0rVEIlGB22F+D1VVVRITE/PcL5FISEhIyDW8kJaWRseOHalbty6Ojo4EBwfTo0cP7t69W6D2o8VBUlISSkpKhX4AZNfoFpUDBw6wePFixGIxdevWpUaNGixcuBBLS0tevnyJgoJCrqIeVatW5fr16wDo6OhIuVf/TpcuXfJsxDNy5Eh69OhB+/btpYx1WFgYT5484cSJEznOUVJSYsiQIVy4cAEbG5scRl5TU7NQvxH45o5PTk7GxsaGNm3aoKSkREBAAKdPn6ZVq1Zcv35dqDCQl5fnyJEj9OzZk2rVqpGamkpCQgInT57E3NxcEFr5Hi9fvkRdXf27olxFwdnZmapVqwoNfv5OxYoVmTZtGo6OjowYMYLSpUsjEolyTH7T09NzfS6JRCKUlJQK1OGzONixYwcHDhzgxIkTqKmp4e7uLogTFQUVFRUOHjzIwIEDqVy5MlFRUTRp0oS9e/eSnp6Ojo5OgfQ8zp07R/369QtVBdWgQQP27t0rdIwsV64c2traRX0pOfhPG3qJREKpUqW4c+cOAwcOpEGDBsjIyAjldDt37qRTp0453HBPnz6lWrVqghtRTk6OPn36cPny5QK5YurWrUuVKlWYP3++IHepo6ND7dq1hZVAXhnC586dY9q0aXz8+BGRSMSgQYNYv369VGKavLw8J06cEOoudXV1MTc3/2miMgWlQoUK3Lp1S5h4/DMD+HfRu3dvJk2ahJWVVa7G8tWrV5QpUybXB6uvry9paWn06dMHkUiEhoYGb9++5eTJk7/M0KupqZGcnFxolbOEhIQie0IWLVrEnj17GD58uJRYjY+PDz4+Pnz+/JnMzMxc9bvfvXtX5KznbIyNjfnrr79wdHSkU6dOVK5cmbdv33Lt2jU2b96cZx5KRkYGZ8+eFSbZf6d+/frEx8fnaECSH+fPn6dfv35SceemTZvSpEkT9u/fT//+/bl8+bKwr3379kItvpKSEh06dEBeXp6ePXvi4eHxXeEdiUTChQsXaN26Nfv27aNevXo0b968WFZ5EomEHTt25Nshs2LFitSrV48dO3ZgaWlJ9erVc0yAO3bsiLe3d47JQvak6Ff9LmRkZPjrr7/o1q0bFy9eFLxGP1Iy2rlzZ8LCwnjw4AFaWlpFei2RkZGF9sbIyMhQvnx5OnbsiJycHImJiVhaWnLgwIECKV9+9/o/fIU/mI8fP1KtWjUWLlxIo0aNhPizgoICJiYmLF68mKtXr/LkyROp8yIiInI8UGVkZAoVv65SpQqJiYmsWLGCVatWMWvWLDZu3Iifn1+uXaHgW6LHsGHD6NOnD3v27GHdunU8f/4814QkgCZNmmBnZ4elpWWhjfzIkSNxd3fHy8uLly9fsn379hzd+4qKjo7OH2Pk4Vvtr5KSEqdPn86hzvXlyxdcXFyYO3durg/T3BS9fnUP+uyH16NHjwp13qNHj4qUa3Dx4kV27tzJ/PnzqVu3rtT70rx5c8aNG8eaNWsoX748u3btIi0tTdj/4cMHLl++zIQJEwp933+ycuVKDh8+TFpaGnfu3KFs2bLcvn2bwYMH53lOXFwcCgoKORIA4dtvuGPHjri5uRVIpc3f359Pnz7l2g88exL+6NEjXr16JbVPVVWVbt26YWFhIYTWFi5cyN27d7l3716e98vKymLx4sW8fPkSX19fDh48SM+ePWncuDG+vr7fHe/3SE1NJTo6+rvllHp6esyfP58uXbpQrVo1Hj58KLV/9uzZeHh4cPv2bUHhMSgoCGdnZxwdHQudj1BUJBIJCxcuRE9Pjy1btnDy5Em6du1K8+bN+fDhQ5Gvq6KiQocOHYo8YZGTkyvSMyI+Pp42bdqwfv16Nm3aRGBgYJ7Km4UeU7Fc5Q8lOjqaBQsW5LkKKleuHAMGDODcuXNSK/VPnz7x7t07AgMDqVmzpjDLrlixYoE0wLOysvDx8WHmzJlS7hdVVVXGjx+Pvb097969y5EYtHr1anr27CmEE9TV1RkzZoyQgVycxtPExITDhw+zYsUKkpOTGT58eKEqE/5NyMjIcPnyZTp16oSvry+tWrVCTU2NwMBAPD09mTZtWp6TqUaNGqGiosKRI0cwNTXl/fv3eHh4UKpUqQJLYBYH9vb2rFy58rvlS9l8/vwZf39/+vfvX+h7rV69ml69euXrDZCTk2Pq1KnMnz+fSZMm0bhxYxITE3n79i1bt24tVLZ4fpiYmBQqH0JZWZnU1FRBKOufdO7cmcWLF7N//36GDBmS5+cXFBTEypUrGTduXL5Sxm3atOHo0aPfDXlVrVqVq1evYmlpiZ+fH+bm5tSoUQORSCQoJLq4uKCkpMT69esFj4VYLObu3buYmZnx4MGDQicT/pPMzEzS09PzXSUmJydjZmbGkCFD8PHxoVu3boSGhgrvg4GBAR4eHkycOJFDhw5RqlQpZGVlcXR0xM7O7ofGVxhWr17N4cOHWbVqlRBCEovFXLhwAVNTU54/f56n3kVUVBQfPnxAT0+v2KuUateuze7duwt1TmpqKp8/fxYSx7Mz90+fPs2sWbN+eEz/aUOvpKT0XRdK8+bNcXFxISoqCk1NTfz8/Hjx4gWrV69m7ty56OnpkZCQQHR0tNBR7HuEhYWhpKSUa1czRUVFDA0NuXLlCubm5ty5c4fU1FS0tbXx9/endevWUscrKCigp6fHu3fvin2VbGFhka+6338JbW1tfH19uXTpEkePHiUoKIgGDRqwadOm7/Yav3btGs2aNePmzZtoaWkxbdo0Tp8+zbZt2xg/fvwvGX/Pnj2ZM2cON2/e/K48amZmJnv37mXs2LGFKmuEb9nufn5+BfLuVK5cGQMDAwYOHCjIvVpZWeW6mv5VKCsr06BBA548eSLVICQbRUVFZs+ezZo1a5g/fz6WlpZCnwH4Vid+8eJFPD09UVBQyPUaf0ddXZ2YmJgCja1hw4Y8f/4cR0dHli5dipKSEsrKysTHx1OuXDni4+NZtmyZ1GJCRkYGExMTPn/+zIoVKwptQP7OjRs3KFu2LPfv388zzyh7YpHt3s9+PkZGRkplsxsaGuLl5UV4eDgpKSno6en90tBhSkoKq1atYuHChVJ5IjIyMtjY2PD27VsOHTqUY+KRnJzMmDFjcHd3p1KlSkRERNCrVy+2bt0qFR79ESwsLLCzs+P9+/cFFqO6d+8ecnJyUhOTmJiYfNvaFob/tKEvSDwzOjoaWVlZXFxcqFChArdv30YkEjF79mzEYjFBQUF07dqVjIwMYmNjC3Tf7E5keSEWi3FycmLu3Lk0btwYRUVFIiMj+fjxI69fv5b6cqSkpBAcHCwlylFC0ZCVlc03ASwvtLS0SExMZN26dcJD+MuXL3h6ev4yQ6+goMClS5do164dqampdOrUKdcHa3x8PNu2baNy5cosWbKk0PcJCgqiatWqBXa/6urqkpSUhIODQ6Hv9bOYNGmSUKqX24pdVVUVR0dHLl68yP79+9m7dy9lypQhPT0dWVlZRo8ezcaNG2nZsiVpaWn5tnv99OkTbdu2LfDYypcvT5MmTfD396d79+6kpaWhoqKCj48Pb9++zdNj2LFjR6ZMmcKuXbuKHK+Pj49HS0sLNzc3mjRpkqvHJlvkJdtzEBkZSUpKSp4LpuJMGCsM3t7eVKpUKU/BJ2NjY06fPp3D0I8aNYqQkBCcnZ1RVlYmKSmJ3bt3M2bMmGKTzpWTkxMmE5MmTfru55Wamsrly5dp0aIFGzduxNLSki9fvnDy5Enc3NyKZ0zFcpU/lH/G4WJjY7l69aoQu69fvz6rVq3C1NQUTU1N3N3dqVixIlOnThXcOeHh4Vy/fp2bN29SqlQpbGxsvuuu1dHR4evXryxevJjo6GgqVKiAtbU1TZo0IT09nfv379OtWze6dOki5UJ7+PAhW7duRV1dnRYtWvD582dcXV3p0aMHlStXLv43qIQCo6mpSXBwsCCcExISIiVYVNxcu3YNFxcXZGRkGDVqFO3atUNfXx8vLy8GDBjApUuXMDU1pV69ekJJj7e3N48fP2bYsGFSte2FQUZGplDxxV8Zvigoffv2ZdOmTRw6dChPedKoqCiuXbvGtm3bsLa2JiYmBiUlJbS0tIQFQtu2bbl3755UjD4kJEQQRmnRogVeXl7s2LGjUOPT09MjJCQETU1NwQgkJibm25Y0ux4/r4z37yGRSIiOjubdu3e0b9+e+fPn06dPH4yMjFBQUCA8PFxQ0qtVqxYrVqygcuXKPHr0iA0bNhRqtZuSkoKiouJP/V5k16vnhYKCQg79joiICM6fPy9VFqmiosKoUaOwt7dnzZo1xbaCnjp1KmfOnBGy+PN6L1JTU9m4cSOmpqbs3LkTZ2dn3Nzc0NTU5PTp04WaRObHf9rQJyUlkZGRgby8PFFRUTg6OmJoaEjz5s15+vQp58+fx9LSUhBuMDQ0ZOLEiVJlOdra2gwePBgzMzPmzZvHpUuXvpvg5O7ujqysLK1bt6Zu3boEBwezZ88ebGxsePLkCbVr1xZ6kf+dFi1aoKyszNatW3FycqJs2bKMGTOGhQsXFuv78icRFxfHw4cPkZWVxdjYuNjcZ8XNli1bsLW1pWXLlsTHx/Px48dCSfsWhl27duHo6Ejnzp0Ri8X07t1bUCSrXr063t7ePHv2jC1btuDm5kZKSgply5alV69enDx58of6WNepU4fg4GCSk5ML5PYPCAhg5MiRRb7fz0BRUZFLly4J8fiOHTvSokUL5OXl+fTpEzdv3uTWrVssX75caE6UWymUo6MjNjY2VK9eHT09PXx8fNi1axcdOnRAIpEI7vc6depQvXp1Zs+ezYABA747vuyJw5UrV+jUqZNQzXHr1q08zwkNDUVDQ6PIRt7BwYGzZ89ibW3NlStX0NLSwtXVla1btyIrK0upUqUYN24cBw4coGzZspw6dYpPnz6xaNEiWrRo8d17JCcn4+TkxPbt2wkPD0ddXZ0FCxYUS1JmbhgaGhIUFER8fHyuXpCnT5/mCE+8ffsWXV3dHLLCysrK6OjoEBgYWGyGXllZmStXrtClSxeWLl2Kubk5zZs3FyaRycnJ3L17lytXrtCxY0d27tyJvLw806ZN+ym5Uv9pCVw1NTVJz5496dy5M3v37kVJSUnqhzh58mT69esn1U1q1KhRrF69OtfuW8+ePWP9+vUMGDBAaJn5dyQSCT4+Pmzbto3Ro0fTsGFD4WH5/v175s+fT4UKFVixYkW+s9Ho6GihRv7Lly8YGhoyY8aMXMVc/s28evUKc3NzNDU1SU9PRywWc+PGjd/mDvwer169wsPDA2VlZfr27Ztnh7YfQSKRoK2tjYODgxDCefXqFQcPHiQwMLDY75cbPXr0oFy5ct/N3wgKCmLz5s18+PDht5d25kZmZiZnz57F2dmZe/fuIRaLKVu2LEOGDGHcuHEF6n1x4sQJRo0aRYsWLfD19cXOzk7QY3/69CkuLi6sXLmSwMBA9u3bV+CEtMDAQGxsbEhLS0NHR4dXr16RlJSEo6NjjtK/bGXEWrVqMXLkSJo1a1aoRlHnz59n/PjxLFy4EBUVFRITE3n16hUqKirUqFFDEBd69epVkTyHcXFxtGrVCrFYjLa2No8fP6Zz587cvn2bPXv25Ckw86OMHj2aly9f5kiY9PPzY9u2bbx69UpKhCk0NFTIy/n7hCk1NRV7e3tevXpV7M+ejIwM3N3dcXJy4sWLF2hpaSEWi/n06RMdO3Zk4sSJtG/fPod7Py0tjZMnT3L69OnsktESrfu8aNCggeTTp0907tyZe/fuMXjwYCl369atWwkNDWXBggUoKSlx8+ZN3N3d2bBhQ56ulhUrVhAbG0tqaipmZmbUrl0bGRkZQkNDuXLlCvHx8SQkJKCgoEBmZiY6OjrY2dlRtWpVxowZw6BBg/IVdZBIJGzfvp3g4GD69u1LhQoV8PPz4/z58xw5cuQ/lTzXuHFjjIyMhEzT48ePk5aWxrlz537zyH4fGRkZKCkp4erqKjX7HzNmDKmpqb9kDA8fPsTKyoo5c+bkKTuclJTE0qVLmTJlyi/LU/gRsvNmijIhiYyMZMeOHSxatAhXV1chfyElJYVRo0Zx8OBB4P9PfEJCQgrktpZIJNy7d08wQK9fv2bs2LEMHDgQIyMj5OTk+Pz5M8eOHcPX1xctLS1EIhFycnJCYmhB6NixIwYGBjnUBP+Oi4sLzZs3L5Jg1pw5c/Dy8mLMmDFCb4p58+bRr18/UlJSOHr0aKGvWRBSUlLo1asXz58/p02bNqiqqvLq1SvevHmDu7t7rm7vHj16kJiYyNChQ1FQUCA9PR0XFxfKlSuXqwhTcRIWFkZkZCSysrLo6urmmffw8eNHOnTogLKyMsbGxsjLy+Ps7Fxi6PPC0NBQsmzZMvr06YNEIqFr165069ZN2L97927u37+PRCKhdOnSSCQSZsyYka+m+uPHj7lz5w5dunRh69atQk9sTU1N2rdvT0BAAI8fP2bGjBmoq6tz584djh07xurVqxk/fjxr1qzJt2OYv78/W7ZsYc2aNVKzTl9fX44cOUJgYOAfFxMtChKJBHl5efbv3y88OCMjI1mzZg2hoaG/eXS/F2NjY+rXry/ILJ87d47IyEiuXr36y8Zw+PBhJk6cSM+ePWnbtq2wgszKyhKU6aytrWnbti1isRhra+sfkin+N9CyZUuaNGkiVD1cvXoVLy8vHB0dhWNGjBhBSEhIkb09N27cYMGCBTx9+pRSpUoJLWhr164thBmOHj2KgoICx44d++71srKyUFJSwsXFJV8v4uvXrzlz5kwOTZGCYGtrS/ny5aXKIMeMGSMYqwMHDhT6mgVFIpHg5eXFsWPHSEhIoHnz5gwaNAhVVVWioqJQUVGRymSPj49n8ODB3LlzBz09Pd6/f0/79u05cOBAscglFwetWrVCV1dXKrzbr1+/kqY2+WFiYoKcnBzdu3fn2LFjiEQi6tSpw5MnT7h//z5ZWVmsXLkSiURChQoVvpupX6lSJSIjIxk0aBBr1qxh+fLliEQiPDw8uHDhAsHBwfTr10+YrZmamuLp6cn27duRl5f/bgzax8cHExOTHLG4hg0bsn//fl6+fPlbe84XFyKRSNCXz1akCw4OLlTb1P8qu3btolOnTnh7eyMWi0lMTCy0dOuPMmDAAKpVq8by5cuxt7enZs2ayMjI8OHDB3R0dJg4cSKrV6/Gx8cHWVlZ7O3tuXTp0nfL0f7NbN26FQsLC548eUJCQgJhYWHMnz9f2B8REYGCgsIPGYwOHTqQnJzMrFmziIyMRFtbm/fv36OgoEB0dDSampq0aNGCQ4cOFeh66enpggZ7fmRPKopCvXr1uHjxIm3btkVGRoY3b96QlpbG7du3cXd3L9I1C4pIJKJVq1a0atVK2BYaGkqbNm348OEDaWlpjBs3jrVr1yISiVBTUxPaIQcGBlKrVq0/Stwru6W1vb19sV73P2/olZSUmDNnDps3b8bW1pbnz59z7do1EhMTOX36NL1790ZVVbXAP87MzEzk5eWpWrUq/fr1Y/Xq1SQkJKCtrY2lpSWfP3/m5MmTqKqqCrF/sVgszDZzSxL5O3kJfYhEoly71v2bcXZ2ZsyYMZiZmZGZmcnNmzf/CLd9ZmYmx48fJywsDENDw1yV0X4m9evXJzg4mJs3byIjI4OpqekvUxv7O8bGxpw7d46wsDBevHhBZmYm1atXp27dupibm2NtbS3EX+/cucO4cePw8fH55eP8VTRt2pSgoCAuXLjA7du3OX/+vLAvMjKSzZs3065dO44cOYKNjU2htM6zOXz4MJMnT2bYsGE0adIEGRkZkpOTuXDhAgsWLGDx4sX4+fkVKL8A/r+WyPcEtwIDA4usrT99+nSuX7/OnDlzKF26NP7+/lSsWJF169bl0AX5FfTt2xcDAwPmzJlDYmIiq1atom7dulKKpHp6egWucf+VPHz4kIYNGxa71/Y/77rPlg09dOgQGzZsIDw8HGNjYxYuXEiDBg0wNjamVatWBW6g4uHhQVxcHCdPniQrK4vBgwfz+PFjFi9eLCRUvHnzhs2bN+Ps7MyrV69wcnISynKmTJnCokWL8vwg/fz82L9/P6tXr5Yy+IGBgUL8L9vrkN3I5sKFC5QqVQpFRUUePnxImTJlGDt27C/tsFZUvLy8cHNzQ1ZWlkGDBhW6Q1txk5WVhbW1NWFhYVSvXp1Hjx4xYcIE5syZ81vH9aehrq7O2rVrhYznzMxMBg0aRFZW1k/pvvUnsmXLFpYuXUpKSgoSiQSJRELTpk1JS0sjIiICLy8voV11QUhJSaFy5crMmjUrVyN0+PBhvLy8UFJS4u7du+jq6hbougsWLOD+/ft5iiBlZWUxf/58tmzZUuQcoMzMTO7evUtsbCyGhoZFbin9o2RlZaGoqIirq6vw/Lxx4waJiYlCLsWfzP79+9m9ezcTJ06U2v6jrvt/f7C3gAwcOJBHjx4RHh7OqVOnBPf3xIkTuXnzZoGuIZFIuHHjhlAyIisrS7ly5WjZsqXUw01fX5+4uDimTZvGrl27OHXqFGXKlMHExIQyZcqwf//+PGuVNTQ0iI2NZe3atQQFBZGUlISXlxcbN25kzZo1gpHPysqiX79+jB49Wqi3P3LkCAYGBqioqNCvXz/27NnzI2/ZL8HY2Jg1a9awcuXK327kX79+zezZswkMDGTu3LkMGjSIBQsWsGLFigKrn/1foXbt2kKnLfjWca127dr/Z4w8wPjx4wkLC+Pt27c0atSI/v37M27cOBwcHGjcuHGhy2LPnDkjlPLlRpcuXUhMTGTKlCn07dsXTU1NKlWqRNeuXbl27Vqez5SJEyfi7++Ph4dHDm2RzMxMdu/ejY6OTr697L+HnJwcpqam9OjR47cZefimA1G6dGk+fvwobAsPDy+2srmCEBwcTK9evdDS0sLIyIgrV64U+NzOnTvj6+tLfHx8sY7pP++6/x69evVi+vTpPHjw4Lur+itXrqCqqiq1Uq5VqxanT5+WOi4yMhIVFRXc3d1p1KgRz549o2vXrly9ehV5eXkyMjJ4+vQpPXv2pE2bNsjJyREdHc2NGze4ceMGK1as4OvXr2zbto2YmBiaNGnCgQMHpMpUTp48iZ+fH0uXLsXf3x9PT08WLVokzGINDAyYPXs2Q4YM+S1u338Tr1+/ZuTIkQQEBKCmpoa2trbwPpYtWxZ1dXWioqJ+Sn/w3JBIJHh6euLq6kp8fDydOnWif//+f5TGwNq1a+nevTsBAQHIysoK4/2/hqysLJqamkREREh1waxRowavX78u1LXev38vJTP7T9TU1JCXl2fXrl1YWVkxdOhQ/P39uXDhAtbW1mRlZaGtrc2wYcMYPXq0UCqWXaPfpUsXbt++TevWrVFXVyc8PJzbt2/TokULjhw58p9I8hWJRKxbt45Zs2ZhamrKly9fePXq1Q/1qS8MqamptGvXjjZt2rBgwQLevXsndDgsSP6KpqYmdnZ2bNiwgYkTJ/6QJsbf+T9v6BUVFTl37hzm5uakpqYKCSV/Jysri8uXL+Ph4cH9+/elVi1Dhgxh1apVuLm50a5dO6KionB1dWX69OkYGhpy6dIlBg4cSM+ePdmxYwdKSkqEh4fj7u7OoUOH2LFjB/Ly8kLZjFgs5v79+6xZs4ZZs2Zx9uxZHj9+zOvXr2nUqJHgCjx58qTQAjMoKIhGjRpJufqrVq2KjIwMHz9+/CNjUX8K7969w8TEhG7dujF+/HhCQ0NZuXIl4eHhaGtr8+DBAzIzM3/pezht2jSOHj2KqakpZcuWZdu2baxdu5a7d+/+ssnG92jXrh2PHj3i0KFDZGVlsWbNmv/TMs1GRkZcvXqVYcOGkZmZye3bt6UqfOBb6aSrqysnT55EXl6eIUOG0LNnT+F5oqGhwZcvX/K8R1paGqmpqUyZMgUlJSW2b99OYGCgoNdfqlQpIiIiuHnzJs7Ozri6ugpyz9WrV+fFixdcv36dY8eOERYWho6ODlevXhXUHv8rDB8+nGrVquHh4UHDhg05ePBggUsRf5Tz58+jqalJjx49gG+faXR0NFu2bGHfvn0Fusbq1atRUFBg5syZ1KpVq1ja1P6fidF/j+fPnzNo0CBiYmJo37694H4KCgri5s2b1KpVi0OHDuX6wA8KCmL27Nlcv34dDQ0NJk2axJgxY0hLS6NKlSrY29vnKpe6Z88eqlevLrjo+/bti5KSEh4eHjx8+BAFBQVUVFSoU6cOX7584eHDh6xfv54RI0Zga2uLmpoaHTt25OHDh1y4cIGFCxcKD42YmBhmz55NeHh4oRub/F9iwIABiMViqVKWW7dusW/fPuTl5UlLS2Pfvn3Y2tr+kvHcu3ePPn36sHTpUqE5jEQiwcXFBT09vV+2MilO4uLi8PLyIiEhAXV1dVq3bs3Zs2e5ceMG5cuXZ9KkSf/6aovY2Fi6dOnCq1evyMjIwMrKikOHDgneNLFYjI2NDaGhoXTo0IGMjAwuX76MpaUlW7ZsAb71T6hWrVqegl3Xrl3j8ePHzJw5k927d/P582emTp2aq1peYGAga9eu5cKFC1KCYCX8XPbu3cuBAwcYN26csO327dt8/Pix0BUI8fHx3Lp1i4yMDHr37l1SXlccNGjQgGfPnvHw4UN27drFgwcPkJGRQV9fn2vXrgmtY3NDIpHg6+tLVlYWISEhJCYmIhKJcHNzo2rVqlJG3s/PDw8PD+BbZ6iDBw+iqKiIk5OTEH/v27cvN27coEuXLtjY2AjnWltbM2PGDFq0aMHAgQOZNGkSrVu3pmnTppw4cYLdu3djZWVFXFwcR48eZcKECb/NyKempjJ37lw8PT2pUqUKq1ev5tmzZzg5OREcHIyenh4TJ06kT58+vy2um5iYyLlz59i4caPU9vbt29OqVSuhrO3Bgwc/1dCnpqby6dMnQSjH1NRUqgOcSCSia9euzJ49+19l6N+9e8fKlSs5fvw4NWrUEDq1BQUFoaCgQKdOnYTKhsePH/+yVdfPQF1dnbt37xIeHo6CggKamppS+z08PHjz5g1LliwRfufNmzdn6tSpTJw4EQMDA8qVK8ekSZNYt24dkydPFvptSCQSnj59ypEjR5gzZw6fPn3C29s7h8Lb36lZsya2trbMmzeP69ev/9wXX4JA586dcXBwENqQJyQkcOXKlSIJEampqUmFg36EEkP/N0QiEUZGRt+N1aekpPDx40cqVaqEiooKvXv3xsjISGiOsWTJEpo1a4avry+1atUSznv16hWbN29m4MCByMrKcvDgQeTk5KhSpYpU/f779++RkZHB3Nyc27dvc+fOHb58+YKMjAyqqqrMnDmTs2fPcv78eWbOnEmLFi2oWrUq9+/f5/nz52hqamJvby81q/zVDBkyhJCQEKysrHj79i2GhoaoqanRs2dP+vTpw/v375k1axYPHjxg3bp1v2WMUVFReZZWKigoUK5cOapUqcL79+9/yv3fvXvHqlWrOHbsGEpKSqSmpqKoqCi4/f6OqqoqycnJP2UcPwMvLy9sbGwwNTXNsUL99OkTFy9e5Nq1a8ydO5esrCy2b9/OggULfuOIfxyRSJSnhOz169dp0aKF1O9cWVmZpk2bcvPmTWExsGjRIuTk5Jg9ezb6+vqoq6sTGBhIeHg4NWrUYOfOncjJyRWoL0SrVq04evQogYGBBS7HK+HHqFixInv37sXOzg41NTViYmIYOXLkL/MI5kWJoS8kN2/epHfv3igoKJCSksKuXbvw8/Nj5syZwLc2lM2bN+fhw4eoqKiQkpIinHvnzh169uwpJPNlZGRw6NAhgoODSU9PF2Ixnz9/RkVFhQkTJlCjRg0sLCzQ1tZGLBYTHBzMhQsX0NPT48CBA4wePZpLly5RunRpjh8//ke4QNPT03F3d2fv3r0oKChQtmxZ3N3dmT9/vlCOpaWlRb169ZgxYwYjR46kTp06v3ycZcuWJSEhgdTU1Dy1w6Oion7KSvPhw4d07tyZ9u3bs2rVKsqVK4dYLObw4cPcvn2bDh06SHk6vLy8/hXlkgAfPnyga9eujBo1Ktf+DFpaWgwbNoyqVauyYsUKTExMCtwC+t+KhoYGz58/z7H969evwso9LCyM1atXc+DAAZKTk3nx4gUtWrSgZ8+ebNmyhVatWqGnp8f169fx8/PLU3MjGwUFBerWrcvTp09LDP0vpFevXlhbW+Pv70/lypWFz/d38u9Ps/yFpKSk0Lt3b8aNG4eTkxOzZs3Czs6OsmXL8vbtW+BbLC4gIIDSpUvTo0cPvLy8BJEbWVlZ0tLShOtlGxgrKyvWrVvHmzdv+PDhA6dOnSIhIQFHR0dmz55NixYtqFKlCrq6upiYmLB69Wr++usv+vTpQ2RkJHPnzsXe3l7KyEdERHDjxg2pMhP45q7evn07jRo1QkVFBUVFRapUqcK0adMIDg4ulvdJRkYGkUgkKG15eXnRtm3bHF2mVFVVadOmzU/Twv4e6urqtG/fnjt37uS6PzupaujQocV63+TkZGxsbBg+fDh9+/YVMmtlZGTo27cvaWlpbNu2jc+fP5OSksKNGzc4duwYS5cuLdZx/Cw2btxI69atv9uEqUOHDtSsWVPo4vZfZvDgwTx8+JBXr14B39zx9+/fJzQ0lC5duhAQEEDz5s358OEDS5cu5dChQ6xduxZ1dXV27txJjx49MDc3p1atWowePZpSpUrlOnH4JzIyMmRlZRV4nC9fvuT06dPCOEsoGkpKSjRq1OiPMPJQsqIvFKGhoZQqVUqowa9evTqVK1dm8ODBLF++HH19fSIjI0lPT2fZsmX06NGD5s2b4+LiwogRI+jUqRNLliwhIyMDGRkZ3N3dGTFiBMuXL2fHjh3s27eP2NhYkpOTWb58eb5fkoYNG+Lg4MCgQYN4/vy54DIUi8VMnjyZffv2Ub16dYKDgxk4cCCbN2/mxIkTjBkzhrp162JjY0PNmjWRlZUlKiqK27dv07RpU/r27cvmzZt/qCRPTk4OBwcHVq5ciYmJCV5eXnmGQ5SVlUlISCjyvX6U7DamFSpUoHHjxsL21NRUdu3aRaNGjWjZsmWx3vPo0aPo6elhaJgzt0ZBQYH58+fj4uLC1KlTgW8Z7hcvXswxDrFYjJ+fH5mZmTRu3Pi78s2/guTkZPbt28eSJUsKdLylpSWBgYH/qWZNuVG5cmWOHDlC3759UVZWJjMzk5SUFA4dOkSpUqUYMGAA1tbWUhMeDQ0NBgwYwPPnz6Um8dltbePi4vK9p1gs5t27dwVSvIuLi6N37974+vpSs2ZNAgMDadKkCSdOnMi1DWwJ/y5+/5PhX0SlSpVISEjg/fv36Onp8fnzZz5+/MiAAQM4ffo0KioqmJqa0qRJEw4fPszatWs5cuQIPXv2ZNq0abRt2xYLCwsePHhAZGQkysrKXL16lcOHDzNmzBj8/Pzo3bs35cuXL9BMsHbt2hgZGbF9+3bhwXrgwAE8PDxwcnJCRUWF5ORkVq9ezYgRI7h48SKzZ8/OUTlQpUoVoQRw8+bN9OvXj5MnT/5QXe2KFSswMDDA09OTVq1a8eDBA3r16iXljs5OMlq9enWR7/OjNG3alNOnTzNo0CDc3NzQ19cnOTkZHx8frK2t2b17d7EnCx4+fDjfDoaqqqpMnDgRR0dHduzYkavL3svLi0GDBgkhn+TkZLZv356jpOtX4+fnh5aWVoEFSvT19cnKyiI8PDzfGvL/Ap8+fUJLS4u+ffsKUrFz584VEvWCg4N5+fKlMAnPxsTEhPPnz9OsWTPk5eUJDw/H19f3u56mZ8+eoampWaD21nZ2dohEIjZu3IicnByZmZns3buXMWPGcPjw4R9+7SX8XkoMfSEoXbo0u3btYvTo0ejo6BAaGsry5cvR0dEhLS0Na2troZZYS0uLL1++oKamxtWrV/H29ubIkSPcuXOH5ORkZs6cKSjBff78GRcXF16/fs2NGzdwdnYu8JjMzMxYs2YNjo6OyMvLc+DAAWxsbISOTcrKyrRt2xZXV1eWLl2a78O0VKlSTJ48mZUrV+Lk5ISDg0OR3yuRSISFhQW7du3Cx8cHeXl59uzZw8CBA4UGGidPnkRBQYHOnTsX+T7FgYmJCe/fv+fKlSu8ePECZWVl9uzZU2CJ0cISGxtboE5vZcuWzTV2/fnzZ7p06cLw4cMxNDREJBLh7+/P8OHDuXXr1m9tehQfH1+oXukikQhlZeV/VaJhYclOujx69CgSiUToQhgaGkpsbCylS5dmzpw5lClThidPnrB69WpGjx5Ns2bNgG9tZq9du8bYsWPR1NQkPDwcTU1Nzp49y/Dhw3OdiMbExHDgwAE2b9783Ynqly9fuHTpEs7OzoJXSE5OTqjsiY2NLZJufwl/DiWGvpD07duXNm3aEBAQQLVq1YRGEdbW1pw8eRI7OzuhYU716tXR0tIiOTkZNTU1TE1Nefv2LU5OTlLusAoVKuDg4MDEiRPR19cvVEmcrq4ucnJyQhe4rKysHCtxX19fzMzMCrRikpeXx9bWlo0bNzJp0qQfWtX37t0bFRUVlJSUWLZsGUeOHGH8+PGULVuWmJgYOnXqxPXr14vUI7y4kZWVxcrKCisrq59+r0qVKvHp06dctRWykUgkRERE5Jpc6eLiQtOmTaWUtvT19enUqRObN29mx44dP2Xc+ZGSksKMGTPYs2cPSkpKSCSSAnlCMjMziY2NLTYFsD+NZ8+e0bFjR0xNTVm6dClycnLcv3+f06dPU79+fXR0dHBwcBDeKwsLC6pWrYqzs7PQ1EZOTg59fX1atWqFtrY2t2/f5ty5c9y7d4+wsDB69+5N3bp1EYlEJCcn4+npyblz55g+fbqUPkReREdHo6amluO5k93iNSYmpsTQ/8v5Iw29SCTSB/7ebLk64AioA6OAqP9tnyORSC7+2tGBtra2IC+ZzcKFC0lISGDevHmkp6dTvnx5GjVqxF9//YWSkhLx8fHcu3cPWVlZduzYwYQJE6TKYxQUFNDX1y+Sm1hZWZmkpCTgmwCMs7Mz9evXR0lJiYSEBJ49e8batWsLfL2aNWuiqKiIh4dHkQ1famoqPj4+jB8/nq9fv6KlpcXkyZOJjY3lwYMHPHv27Ke3sCwsKSkpZGRkoKamhre3N+vXr+fFixdUrlyZcePG0b1792Jx4w8fPpz58+fnm0X/5s0b5OTkaNGiRY597969y9XbULVqVQoqEFXc/PXXX4SFhbFmzRqWLFnC27dvCxQb9vHxoWHDhn9M0lJxY2dnR79+/aQ+665du1KrVi3WrFnDtGnTcnynDAwMKF26NAEBARgYGJCens7jx4/ZunWrkIyXmJhIUFAQp06d4siRI0RFRaGsrExcXBzm5uacPHmStm3bFmiMenp6pKamEhYWJrUYCAkJISsr66d5tkr4dfyRWfcSicRfIpE0lkgkjYFmQDKQLSi/IXvf7zDyeREXF4elpSVycnIMGDCANWvWYG5ujoaGBqqqqmhra9OnTx+2b99OmTJlWLZsmVQGvp+fH58+fSIwMJA3b97kuH52Nn9gYKBUYwqJREJ8fLzgIRg5ciRGRkaC8IaDgwPlypUrVFMHkUhEw4YN8fLyyvOY1NRU4uPjczTJyEZeXh5ZWVnKlCnD27dvhTJDdXV1vn79mqsB+13Ex8czYMAAypcvj5aWFrVr16ZLly6oqqoydOhQDAwMcHBwYNq0acVyPxsbGzIzM7lw4UKe43FxcWH27Nm5TiwaN26Mv79/ju2vX7+WSij8VYSGhuLh4cGYMWPQ1NTE3Nycc+fO5fndyCYrKwsPDw8GDhxISEgIGRkZv2jEv4aAgADev3+fq8GtU6cOIpFIShjp76iqqpKamopEIuHYsWO0aNGCw4cP06JFC6ysrAgKCqJhw4YsWrQIf39/Xrx4we3btwkPD+f06dMFNvLw/xNAnZycePnyJenp6bx48QJnZ2chJFjCv5s/0tD/AzPgnUQi+fC7B5IbHz9+pFevXlSrVo2hQ4eSmJjI8+fP8+x2Jicnx6hRo6hQoQKHDh0iJSWF6dOn4+zsTKtWrTA3N8fZ2ZlLly4J50RGRjJlyhR27drFli1bmDVrlqCJHRAQgIqKCtWqVQO+uaD37t3L48ePmTdvHrt27SqSW1RJSYnExESpbQEBAUyaNIly5cpRunRpKlasiLy8PO3bt+f06dNCGWH2OObOncu+ffvQ1dVl1qxZuLu7s23bNry9vZk9e3ahx/SzGDJkCJ8+fWLLli1s2bKFsLAwZs2ahaWlJdWqVaNt27Y4Ojpy4MABXrx48cP3k5OT4/Lly3h6egoP15SUFL5+/cqFCxeYP38+AwcOlOqf/XcGDx7M+/fvOXv2LGlpaWRmZnLr1i08PT1ztLf8FQQHB6OjoyOotJmbm/P582eOHDmSp7HPyspix44dfPz4kXnz5tG8eXO0tbWZPXs2X79+/ZXDLxASiQQ3NzdsbGzo2rUrZ86c+e45kZGRaGlp5Rn+UldX5+HDhzm2Z6sHxsbGsnLlSkJDQ6lVqxYnT56kc+fOVKlShQ4dOhAWFgb8f6GemjVrFjlDftKkSSxatIjjx48zfPhwTp48ydKlS4VOnd/j5cuXgvT3rVu3ijSGwhIUFMTEiRMZNGgQu3fv/u7E8v8yf6Tr/h/YAkf+9vcEkUg0BHgETJVIJFJPBZFIZAfYAT/d5RQdHS30snd2dkZZWZmUlBRBd37ZsmW5Jl2JRCIGDRrEtGnTSEhI4NOnT6xdu1ZYdbdq1YpZs2bRvn17SpUqxe7duzEzM8PGxgaJRMLhw4c5ePAg9vb2XL9+nQkTJuR4mFSvXl1oZFGUloeJiYmC6zUmJobBgwfz4MEDTExMWLRoERUqVEAkEpGens7Dhw+ZP38+48ePZ+fOnUIjjblz51KtWjUuXrxIXFwcCgoKWFtbc+LEiT/GVRsZGcnNmzfZsmULCgoKPHjwgNq1a+f47mTX/B85coRly5b98H319PR49uwZ+/btY/v27bx//16QhT116hStWrXK89zSpUtz584dxo0bx6hRo5BIJFSvXp09e/YIOSO/EgMDAz58+EBiYiKqqqooKSkxe/Zs5syZw+vXr7G2tsbQ0BA5OTnS09O5f/8+Z8+eJSUlBXt7e+rXr49IJOLjx4+cP3+eli1bcvfu3V/aWvR7rF69mq1bt9K1a1fEYjETJ04kKCgo34TVmjVrEhoamqsgk0QiISkpiXPnzqGnp0ezZs0QiUTExsayYcMGlJWVefnypdCStlq1asycOZNKlSpRt25d3r59y5UrVxg+fHixvca//vqLv/76q9DnPX36FDMzM8zNzVFSUhI8l7169Sq2sf2TwMBAWrZsiYmJCZqamqxevRo/P79CJTL/X+KPbmojEokUgHCgnkQi+SQSibSAaEACLAEqSSSSPL/phWlqUxQcHR3x8vJi1KhROfbt3r0bVVXVfKUPs0Vyypcvz8qVK6X2zZgxAzs7O6pXr86AAQNwdXUVXGjR0dHMmTOHESNGcOjQIV6/fp1rEwz4luxUtWpV7O3thVX/9xCLxUydOpXTp0+jq6tL27ZtqVevHn369MnXjff69Ws2bdrEmjVrGDZsWIHu9bt5/fo15ubmrF+/HoC7d+/y+PFjJk+enONYd3d3tLS02LBhwy8eZe6cP3+eMWPGUKpUKTQ0NAgICKBZs2a4urr+ct347Emnra0t5cuX5969e1y9epVFixbh6urKo0ePhOx6PT09RCIRCxYsyLX2/8iRI2RmZnLu3Llf+hryIi0tjYoVK7J48WLhfQ0PD2fJkiV8+vQpX/2Cbt26ISMjg62trVQY5tq1a1y4cIHhw4dz7NgxkpOTUVdXJzQ0lJEjR7Jq1Sqp69asWZMhQ4ZgYGCARCJh5cqVzJw587dLqwL06dMHVVVVIZ/n+fPnnDp16qeK7gwbNoyUlBQh2TApKYlJkybh7+8vdPj8LyESiX6oqc2f7rq3Ap5IJJJPABKJ5JNEIsmSSCRiYBfwWwO9R48epUOHDrnu69ixY74xbvgWa83IyCAyMlKqvCg5OZmIiAjBNVeuXDlCQ0OF/aGhoSgpKbF//34uXryYp5GHb27iMWPGFKqxha+vLxoaGtSvXx8LCwuaNWvGgAEDvhurq1OnDvPmzWPatGlCCdGfTu3atRGJRIJL3sDAAD8/PynpYvi2Anvy5Emenzd8k0fetGlTgeLTP8qdO3cYOnQoI0eOZNmyZTg4OODs7Ezp0qUxNTUlPT39p97/n2zcuJFRo0Zx8OBBFixYQEZGBvfu3RMSxMqXL0+PHj0IDg7my5cvjB07Nk8D2bNnT+7evcuHD39GtC42NhaJRCLlYahUqRJpaWnfFXvatWsX/v7+rFq1ijt37uDl5SU0+qlatSohISG4uLhw4cIFtm3bRkhICOvWrcvx3ixevFgQvXJ2dkYsFhdbw5MfJT4+XspDp6GhUSQvYmGIioqSSohWUVGhXLlyREdH/9T7/lv50w19f/7mtheJRH+fqvUAfjxg+gMkJCTkGRNTU1MTJGDzQkFBAWNjY2RlZVm6dCl+fn74+vqyZs0arKysuHPnDtOnTxcydC9fvsy5c+dwdnamfPny3L17l6ZNm353nHZ2djx+/Bg/Pz+p7aGhoZw5c4YLFy4IMf/4+HgOHjzI3LlzhTabuTVZyQttbW1GjhzJlClT/hUxs+ychk2bNrFz5048PDwQiUSsWbOGyMhI4Nt7snfvXlRVVfOs+Z85cyaDBw/m4sWLODg4YGtr+1Nf/6JFi7C1taVu3brCNnl5efr27YuCggJubm4/7d65ISMjw+TJk/H39ycqKorjx4/j6+vL3Llz6dOnD7NmzSI4OJg+ffqgoaGRo2rl7ygqKtK0aVOuXLnyC19B3mhqalK2bFl8fX2FbU+ePKFy5crfLTurUKECT548YfLkyYSFhXHz5k3evXtHp06dhEz83r17c/z4cdq2bSsV6hOLxVy5coUlS5bw6NEjLCwsSEpKwtraWphE/QlYW1tz5swZvnz5QnJyMkePHv3p2hitWrXi9u3bwoT22bNnJCUlUaNGjZ96338rf6zrXiQSqQAhQHWJRBL3v22uQGO+ue7fA6MlEklEXtf42a57GxsbtLW1MTMzy7Hv5s2bPHz4UGh2kxvnzp1DWVmZWbNmMXfuXB49eoSamhpDhw5l3LhxyMjI4O3tjYuLC8+ePePz58+UKVOGWbNm0b9//0KNdc6cOcKqy9jYmJcvX+Lk5ETbtm1JSUnh2bNnjBkzht27dxMfH0/Hjh0JCAigd+/ehc7kFovFTJ8+nePHj//UXtiZmZns3LmTM2fOoKGhweTJk6VqywtDeHi44EK1srLi1KlTbNu2DXl5eZKTk+nZsydOTk65PthfvXqFiYkJq1atQlVVlYyMDBwdHdm8efNPqctPT09HVVUVFxeXXL0sN27cIDY29pf1EJBIJGzatInt27cjFov566+/mD59Oh06dKB58+ZChUV6ejqjR4+mRo0azJs3L99r7tu3Dysrq9+SXBgUFMSWLVu4du0aMjIyWFhY0KhRI8aNG0fjxo2FttTu7u6FajQUEhJCw4YNWbhwodREJz4+HkdHR44dO0bbtm2Ji4tj9+7dbN68GTk5ORo0aICysjIZGRlERETg6+tLz549mTx5Mo0aNfoZb0GhkEgkzJkzB2dnZ7Kysujduze7du36bne9HyEjI4P+/ftz9+5dypcvT1RUFKdOnaJdu3Y/7Z6/kx913f+xyXgSiSQJKP+PbYN/03ByZcqUKfTv3z9H84IvX75w6tQp7Ozs8jxXIpHg7e3N5s2bqVatWp4yk8bGxsViLKtVq0bdunVxd3fnxIkTpKenM378eEEe093dnY0bN2JhYYGNjQ03btwgNDS0QLXQ/0RGRoYOHTrg7Oxc6LFHRkaybds23N3dycjIoFWrVtjb29OwYcMcxw4bNoxnz57RqVMnYmJisLCwwN3dvUg/dm1tbanEqqZNm+Lo6Mjnz58pV66coDSYGyEhIejq6gqlUvLy8tSoUeOnuZ4lEkm+gjSysrJSFRA/m9WrV7Nnzx4GDRqErKwshw4dIi4ujrS0NKEjI3wLI8nLy/Phwwepbo25ERQUVKTv3o9y+fJlBgwYQNu2benTpw9isZiHDx+ya9cu9u3bR0REBDIyMpw4cSJHz/nv4eLiIoje/B01NTUsLCzYtm0b2traWFhYUKlSJUaMGEGtWrVyfM5xcXHcunWLDh06sHz5ckaPHp3vfVNSUkhMTKR8+fI/JICVFyKRiBUrVrB8+XIkEslPucc/kZeX58SJE7x584avX79St27d/5yoj0Qi4eTJk2zfvv2Hr/Wnu+7/aExNTZk5cyZz587F1dWVmzdvcuDAAWbMmIGFhUWuximbgIAAMjIyMDc3/yVjtbCwIDg4GBsbG2xtbYmPj5dyc9WsWRNtbW369++PqqoqXbt2RV9fP9fyn4LQqFEjfHx8CnXOkydPaNCgAd7e3vTq1UsoVzQ1NcXFxUXq2Pfv33P+/HlmzJiBkZERnTt3pn///gVuplIQFBUV0dHRydfIw7e4fnBwMOHh4cC3B7Gfn1++n/+PjsvQ0JDHjx/nuv/Ro0e/VFZ48+bNjBo1CgMDA0HQZevWrQwZMgQ3Nzeio6NJT0/nxIkTGBgYYGRkxO3bt/O83ps3b0hOTqZjx46/7DXcvXuX5s2b06VLF5SUlKhRowa1a9fGwMCAIUOGMG7cOEaMGMHgwYOxs7MrtJGHb+178+pXX6VKFQIDA2nXrh3t27dn4sSJQv7IPylTpgzdunXD0dGRRYsW5WkIPn36RJ8+fVBXV0dHRwctLS127dpV6HEXFJFI9EuM/N/vV6dOHVq1avWfM/LwLdl7xowZxfIc+WNX9P8WHBwc6NatG3v27MHNzY3ExEQWLVqU5w8avhmCHTt2sGzZsl/2w9DV1RVETd6+fSso3/Xu3RuxWMzly5dzrKCqVKlS5JpmZWXlQiXkZGZm0r17dwYNGiTlBahWrRotW7Zk6tSptG7dWhhjaGgolSpVEmq34Zsy3O9IAtTT02Pt2rVMnToVXV1dQkNDmTx5cr4lcj/K/PnzGTZsGNra2ujo6ADfQiYeHh5ERkb+0mzs5ORkKTetsrIyqampjB49mo8fPzJr1ixSU1MxMTHh1KlTfP78GTMzM8qXL58jx+T9+/ds3ryZrVu3CtLI9+/fZ926dbx//x4jIyNmzJiRozFTURGLxWzdupWZM2fSvXt3Jk6cyNu3b4WwTbbefIMGDahZsyZHjhxh5MiRRbqXvr5+nkmxQUFBhISEYG5uXuCWvZUqVWLWrFnMmzcPQ0NDqW6IKSkptGjRgujoaAwMDKhatSpv377F3t6ekJCQYp0Ql1D8REVF4eTkJLQq3rhx4w9d74+N0RcHPztG/0/S09Pp3r07ERERDB48OIe2vEQi4eXLl+zdu5dRo0axYMGCXza2bC5cuMCECROwt7dn/fr1iMVi0tLSSE1NpVWrVtSpU4f4+Hjq1KnDqlWrcHBwKJILNSIigg0bNvD+/fsCHX/27FlmzZrFwoULc91/5MgRqlatKnzhExMT0dHREbrxSSQS9u/fj66ubrG4uopCaGgoAQEBVK1aVar72M9i7969TJ06lRo1alC2bFmhVNPNzY3q1asX+nqvX79m9uzZXL16FUVFRfr168fy5cvzreoAGDduHM+fP2fEiBHIyMjg6uqKhoYGR458y6PNysoiIyNDqpb8/v379OvXD1VVVaHF7ps3b3j37h2bN29mwIABAJw5c4YRI0bQrVs3qlatiq+vL3fv3sXLy+uHE6/EYjE9e/bk6dOn6Onp4evry8CBAzExMeHBgwd4eHjg6OgoHH/58mXk5eWL3Evg06dP6OvrM3PmTKmxR0VF4ejoiIKCAhs3biy0zPK5c+fIysqSCv9t3bqVqVOnMnnyZKnudffu3WPnzp1ER0d/11NVwq9FIpFw69YtXr58SVxcHG5ubkKOV79+/f6bMfp/IwoKCpw9e5bly5ezcuVKtLW1adCggaB17+3tTalSpVi9erXwIPvVHD58GDMzMypXrsyqVasICwsTGm2cP3+ejx8/UqFCBY4ePYqCggK1atUq0n3ev39f4Lp9gMePH0tlkP+T+vXrc/PmTeFvVVVVduzYwahRo6hfvz4xMTHIycmxf//+Io23ONDR0RFW17+C4cOHY2try6VLl/jy5QsNGjTAyMioSHr879+/p127dlhZWbFp0yaSk5M5e/YsJiYmPHr0KN94+po1axg5ciTjxo0DoFOnTmzbtk3YLysrm6NxUatWrXj//j0XL17k1q1bZGVlMXHiRPr06SN4ByQSCdOnT2fMmDGC+9LAwABZWVmWL1/Onj17Cv06/87ly5d5+fIlK1asQE5OjrCwMObOnUvbtm2pXLmyUImSTVJSkhBfz8zM5PXr14hEIgwMDPKtpc9GS0uL/fv3M3ToUFq2bEm1atWIiIjg9u3bVKtWjUaNGhXps2vfvj0ODg5ER0cLuUL79++nYcOGOVrUtm7dmkuXLrFr165ctSJK+D3Ex8djYWEhTAZfvHhBcnIyYrG4WLy+JYY+D+Lj4zlw4ABHjhwhPj6eWrVqMXbsWDp27Jjvj1FOTg5HR0dB8vX+/fskJCSgq6vL+PHjadu2bbH3Ny8M6enpQkmgnJyc4AJ9/fo1nTp1YtCgQQD06NGD6dOnExAQILTeLQw3b95kzpw5BT4+W1UwL5KSknJk8fbt25f27dtz/fp1NDQ06NChwx/RCe9XoqysXCwKZGvXrqVt27aCqqGqqiojRoxg2bJluLm55RsKUFFR4ciRIyQlJSEWiyldunSB7ikrK4uNjQ02Nja57o+Pj+fjx4852u4aGhqyd+/eAr6yvImMjBS6PwJUrlwZiURCamoq9+/fl+ouKBaLuX//PkePHuXz589YWFgQHR2NRCKhYsWKeHh4UL58+bxuJdCtWzdev37N7t27efPmDQYGBixYsIB27doVucKgdOnSNGvWjCNHjgjXSEtLyzMjv0GDBnz8+LFI9yrh5zBv3jxKlSrF8uXLkZGRQSwWM2HCBE6ePFksv++SZLxcePXqFXXq1OHo0aO0a9dOaHhiZ2dHr169CtR8Q0FBgb59+7Jx40b27NnDmjVraNeuXYGN/OHDh+nbty/Dhg3LUf/+I3Tv3p27d+8iFouFbVlZWYSFhdG6dWthW8WKFdHV1S2SOllYWBjh4eF07969UOPy9vbOU+jl3r179OvXL8f2ChUq0L9/f8zNzf/PGfnixNPTM0e8XCQS0bhxYzw9PQt0DRUVlQIb+YJeT0FBgaioKKnt/+yyVlSMjIx4+vQp79+/RyKRcOHCBUqXLs3OnTu5deuW8IBNT09nz5491KpVi1atWjFmzBh0dHRYu3Yt69ato2LFioI3oyBUqlSJ+fPnc+jQIVauXEmpUqUoW7bsD7nSq1SpQlBQkPB327ZtCQ4OzvXYoKAg6tSpU+R7lfDN2xQVFUVERESxNGM6fvy4oKII3yqXpk6dyqVLl4qlxLTE0P+DtLQ0LC0t6d69O/b29jRp0oQaNWpgbm7O0qVLCQ0N/ekNWdatW8esWbPQ1NQkIyOD9u3bF5ux79u3L1paWqxcuRIvLy/u37/P8uXLhbaY2SQnJ/P582cCAwMLfO83b96wcuVKZs2aRVpaGg4ODkIm+vfQ19fH3NycrVu3SgkNicVizpw5Q3R0dKG1A0qQxtfXFwcHB8aNG8fdu3el9lWoUCGHQYVvcsu/Wk43Gzk5OUaPHs2ePXsEN3pQUBAnTpxg6tSpP3z9evXqsW3bNpYuXcqQIUO4desWbdq04cuXL2RlZeHu7s7OnTuZOHEiKioquLu7IxKJePjwoeDZE4lEmJmZFbk6Bb791v6eVPo9Pn/+zN69e5kwYQJjx45l8+bNJCQkCK2qAUaNGoWPjw8LFizg4MGDwm/q9evX+Pv7F6hPfQk5SUxMZP369dSoUYMaNWpQv359NDU1mThxIu/evSvydbOysnIsVLLLIR88ePCjwy5JxvsnBw8eZMOGDXkK3cTExDB79mzCwsLybDH5o5QrV44FCxYIms3nzp1DRkam2OLP6enpuLq6cvz4cUQikaCwZmlpSfv27Slfvjw3b97EwsICW1tbunXrxujRo3PE+/7Oo0eP2LlzJ3379qVFixYkJydz7do1njx5gre3d4FWYKmpqYwaNYqzZ8/SrFkzFBQU8PX1RVdXl5MnT/7S+Pd/jWxdBzMzM+Tl5blx4wYzZswQtAPc3NyYOnUqc+fOFUI779+/Z/ny5fj6+v7SZjlhYWEkJSVRvXp1RCIRs2bNYteuXcjJyaGoqMjSpUuLtZmLRCIhJSVFSmnu9evX3Lp1CxkZGczMzKSSKw0NDTExMcHIyAj45m168OAB3t7eRbp/UFAQrVu3xsnJ6bvHfvjwgWXLlmFqaoqJiQlycnI8ePCA06dPY2lpycmTJ4mNjaVx48Y0bNiQOnXq4Onpyfv376lZsyZPnjxBQ0ODSZMm/edi9GKxmLt37xITE4Opqel3k0gLy+fPn+nQoQNqampYWlqir6+PSCQiKiqK69evc/v2bU6cOMHr16+5d+8eDRs2xN7evkAKhqNHj+bDhw8MGzZM8PoePHiQMmXK4Orq+sOCOSWG/h/06tWLihUr5qt4tXLlSpYsWYK1tfWPDjEHEomEUqVKsWPHDiEmfffuXT5+/PjTZU0DAwPZtm0bnz59olu3bvTu3RuRSISXlxfdunWjVq1amJmZUa9ePakQRFRUFLNnz2batGlScU34FoKoUKECO3fuLPA4QkJCuHTpEunp6RgbG0uVDZVQeCQSCXp6egwfPlxw2X7+/Jl58+YJE9ZsdbOtW7fSpEkTUlNTefPmDbt376Z3796/ZJyZmZkMHTqUCxcuoKqqSqlSpfDw8KB69eqkpKTw5csXKlas+NtDNHfu3KF79+60a9cOsViMp6cnFy5cKLKwVXp6OpUrV2bOnDn5luXCt7JKU1PTHD0X3rx5w4YNG/j8+TMHDhxgz549giEXi8VMmTKFevXq0bdvX0JDQzl//jxPnjwp0niLC7FYLMiI/2je0pcvXzAzMyMhIYFy5coREBCAq6trnvkfhUUikdCyZUsqV65Mv379ch3vixcvWLNmDaqqqlhaWvLy5UuhbXlwcDDr168nMTGRPn365JAVj4mJoX379kgkEmrXrk1gYCAZGRncunULLS2t/64y3u8iOTn5uzOw7yWO/QgikQhLS0sOHDjA0KFDiYuL49y5cyxevPin3O/v1KxZk3Xr1uXYbmxsTGBgIK6urmzatEnIPpaTkyMhIeH/sXfWAVVs7du+9qYlRcVCSkpRURELERXFQkzsTixsbOxOzGN3B3YniIpKqFgoAoKghEj33t8f/pjPfQBFxXjf1+ufcxz2nlkze2bWWs+6n/shJCQEbW3tfJ08fDLqmTJlCtOmTUNDQwNtbe2vtkNPT++rbl/FzZkzZ1iwYAHh4eE0aNCABQsWFHg+/4mkpKQQExMjcz46Ojpoa2sTEhIiqL0XLVrEiBEjuHz5MioqKrRt2/a765t/D6tWreLJkyesXbsWJSUlzp49S9euXXnw4AEqKipf7QR/FY0bN8bb25sjR44AsGTJkh9a81ZUVGTw4MFcvXqVvn37Fvq5qKgoYmNjC5yEGBoaUqpUKdavXw8g45kvFospXbo01tbWaGpqEh4e/lsFwfApzbdPnz5kZGSgra3N8ePHBavk72H27NmUKVOGKVOmIBKJCA4Opn///rx9+zZfieDv4ebNm7x//57x48cXeu2qVatGkyZNkEgktGvXDkdHR6ZMmcK8efPYuHEjDg4OaGpqMnLkSOLi4mSqnpYqVYqAgADOnDlDUFAQvXr1wsnJ6auFxIrK347+X9SoUYPnz58X6pmek5NDcHAwFhYWP60Nu3btom/fvgwZMgRlZWWmTJlCnz6/1/1XQ0ODkSNHMmLECAIDA3n79i2ZmZmULFmSjx8/Mn/+/AK/p66uTnJyMtbW1mRmZtKmTRu2bdv2R+Xwnjp1iiFDhtC3b1969eqFr68vjRs3JjAw8IvFV/5TUFVVpUyZMrx8+VLwRIiLiyM+Pj5fvn2lSpWKNSz+Ldy+fRs7Ozthvbply5bs27ev2FKMihMLC4tifQe4uLhgaWlJly5dCp1ofPz4ER0dHZmIRm5uLkeOHOHKlStoaGiwbNkysrOzSU9Pp2HDhpiamnLv3j3CwsIwMjLi48ePHD9+nJEjRxZb27+V0NBQ+vTpw/jx44X2tWvXjlevXn23mPPq1av06tVL6IRNTU3R0tIiKCioWCKCmzZtomnTpl8dILVp04bp06czYMAAxGIxOjo6HDhwgCZNmgizeF1dXZYuXZqvvLm8vDwdOnT4JhFzUfnb0f8LFxcXateuTZs2bQpc47l58yYmJiY/VbWqqanJyZMnv+hn/rsQiUTUqlVLZr0+NjaWV69ekZKSkk+34OfnR6VKlVi6dCmZmZls27aNcePGfVMo/2czf/58+vXrJ7wQ2rVrR3x8PJs3by7UwOc/CbFYzNKlSxk1ahQODg4oKChw5coVpk2bVqwq+R+lfPnyhIeHC9kf4eHhaGtr/3Gd/M9AX1+fHj16sHbtWiZMmIC8vDxZWVmIxWIh/a9s2bLCADtvMLRp0yYSEhJYuHChUEb39evXrFy5kuXLl5OWloaOjg4qKipMmzaNzMxMhgwZgpOTEzExMTKld/PIyMhASUnph989EomEuLg41NXVZVJj7927R9WqVYVBZ926dTl16tQXJ1hfw8DAgPDwcEFLkZaWRlxcXLFkZwCEhIQIqadfomzZskLxoaioKIKCgtDV1ZUZvKmqqpKZmVks7Soq//1P0DdiaGjIxIkTWbBgAU+fPhVKjWZkZHD+/HmOHTv2y5zXvuVBy83NJS4ujvDwcBISEmTS5342ZcqUoWfPnmzcuJG0tDRh+5s3b9i+fTs9e/ZEJBKhrKxM7969hVlacSGVSklJSfnufRZk7pNnGfrfQvfu3blw4QJaWlrIy8uze/fuL1ZW/B1Mnz6d+/fv888//3DgwAFWrFjB2rVrf3ezfhlr166lbNmyLFq0iHnz5jFw4EAGDhzIhg0bSE1NpVSpUpibm3PixAng00Do0aNHTJw4UabDNjIywt3dHZFIxNu3b1m6dCl169alQYMGjB07ljNnzlCjRg2MjY2pX78+d+7cAT4JEKtUqYK6ujqlS5cWjvOtSKVS/vnnHwwMDDA1NaVMmTL06dOH+Ph44FO9+qioKKHwUl6n/HlhsG9l5syZHDlyhJMnT+Lt7c3ixYvp0aMH5cqV++59fo6CgkKhqb+fI5FIyMnJYcaMGRw6dAhtbW369OnD+fPn8ff35/Xr12zfvv2XWlTDXzFeoezatYt58+aRnp6OpqYmUVFR2NjYsGzZsi86uP1qQkNDWb9+Pdu3byc3NxdlZWXS0tJQV1fHxcWFYcOG/ZL0qLxqeIcOHcLMzIy0tDTBj/5zX+20tDSGDh1Kenp6sYiqrl+/zvDhwwkLC0NbW5sFCxYwYMAAmc9IpVKePn1KYmIilStXznc92rZtS9myZWnVqpXw+ZUrVwrlgv9SfKSkpLBjxw727dtHSkoKtWvXZuzYsUIOf0xMDPv27SM5ORkHBwfu3r3L+fPnKVWqFLNnz/4tFe1+JQkJCejr69OhQwdatmxJZmYmBw4cICYmhunTpxMTEyOUuVVRUaF8+fKFumyuXLmSkiVLEhISItSyP3z4MC1btqRr165IJBLu3LnD3r17uXz5Mp07d6Zly5Y0a9aMkJAQli9fjo+PzzdHLz08PFi1ahVDhw7F2NiY5ORkjh8/TkREBH5+fsjJydG+fXtCQ0MxMzMjMDCQtm3bsmbNmh+6dg8fPmTNmjXExsbSqVMn+vbtW2zRoGnTpvHw4UP69ev31Tbkrcffv38fS0tLjhw5wtmzZ5kzZw5paWl07tyZ2bNnF8lNMY+/qvsv8KNe91KplKCgIJKTkzEwMPgt67UBAQEsX76ckJAQGjZsyKRJkyhfvjxpaWkMHDiQCxcu0LhxY+zt7YV0PPg0ALh69Sp3796lf//+rFy58pturG9FIpGwYMECVq1ahaKiIrm5uYJYb8aMGRgZGSGVSjlw4ABisbhYMgjevXtHlSpVGDp0KLVr1yY0NJRVq1Zx7NgxGjVqBHwS/UyaNImEhAS0tbWJiIjA3t6e9evXC7/no0ePaNq0KTY2Nujp6eHn50daWhq3b98WtARv3rxh8+bNPH78GHl5eZo0aUK/fv1+qVjtP524uDgaN26MpqYmTZs2RUNDg6CgIC5cuMCiRYvyrVlOnTqV48eP4+TkRFRUFJcuXSIgIKDYwrF/Ijt27GDz5s0yJZPzCgQpKSmRk5ODmpoa1apV4+XLlzRt2lSoVJiZmcm1a9fw9/dHTk6OzMxMIZMmb0ntyZMnbNu2jZUrVwr7P3v2LLGxsQQGBsoUT9m8eTPdu3f/piI+eRkEU6dOlfmdpFIp8+fPx93dHWdnZ3Jzc5k3bx67d+9GJBLh7OzMvHnzik18Vty8efOG6tWrs3z5chmh4+dIpVKWLFmCgYEBBgYGODg44ODgUCyDjb+q+5+ISCTKZ7/5K7l9+zaOjo60a9eOli1b4ufnR926dfH29sbZ2Rk1NTVBofxvDA0NGTx4MN27d2fdunV07NiR48eP/7QHacyYMVy7dg13d3ehA3316hUrVqxg/vz5GBkZkZCQQJkyZbC3t8fExASxWMyQIUOYMGHCd60HHjt2jNq1awsVxoyMjGjZsiU7d+6kUaNGeHp6MnToUIYMGSIoy9PS0jh79iw2NjacO3eOEydOcPXqVXR1dYU0mC5dujBhwgRUVVXJzc1l7Nix7Nmzh0aNGmFiYkJOTg6HDx9m5syZrF69mv79+xfnpfyvxdXVlcqVK9O7d2/h9zYyMqJu3bq4ubnRokULmap0mzZtYt68eUJJ2JiYGI4ePfpfl//9OZGRkTLh5vj4eBYuXIienh5t2rShbNmyxMTEcObMGd6/f8+9e/do06YNmZmZzJ07V6htn52dzYkTJ1BWVpZZHzY1NSU6OlrmmPXr12f69OlkZ2eTlJSEhoYGEomE6OjoImXJfE5wcDCqqqr5BmN52p4bN27g7OxMcHAwa9asoVu3bpQvX55jx45x5MgR9PX1qVq1KsOHD88ndrxz5w6jRo3i3bt3NG7cmH/++afQTre40dPTY9SoUSxbtoxJkyblO65EImH37t2IxWL27duXz677d/O3o/+DcXd3p3v37jRp0gT4pPTdvHkzLVq0wNDQkEGDBn21g1RTU2PixImsXLmSkSNH/hQRXFhYGHv27GH16tUyLxVjY2NmzJjB3LlzWbhwIeXLl+fo0aOCyj0nJ0fQO0ycOPGbj1tQNCrveuTm5jJmzBhGjx4tk1ZWokQJnJ2diYuLo3bt2jRq1AgrKyuhtOrjx49ZuXIlfn5+bN68mTlz5uDj48OqVatkMgVsbW2JjIxkypQpKCkp/XXt+woJCQmcOXOmwOps5cqVw9bWls2bN7Nw4UKZv/37N/5Z4tQ8z4Ds7Gx69OhB/fr1f8pxvkb9+vXZsWMHzs7OgojSxsZGxsnOyMiI+vXrc+LECTw9PXn06BFv375FQ0MDNzc34RpZW1szfvx4rl+/jr29PQB3797NV6gqzyyoT58+zJ8/H2tra16/fk2pUqW+OQ9dXV2dpKQkcnJy8kUQk5OThQFAnr1406ZNARg7dixDhw7F2dmZ169fY2dnx8iRI5kzZw7wSY/Qtm1b+vXrh5GRESdPnhQKOv0q5s+fL1jT1q1bF2tra+Tk5AgNDeX69euYm5sLqal/Gn/FeH8wQUFBVKtWTWabhYUF8fHx9O/fv8gvPXl5eUaPHs2xY8dkbG6LC09PT+rVq1dgWlDFihXR09NDLBZjZWXF9u3bGTZsGAYGBhgbGzNw4EC2bNnyXcft3Lkz/v7++Pv7I5VKCQ0N5cKFC/Tr149bt26hrKxcaC5827ZtUVVVZciQIVhZWVGlShVq1apF3759Wbt2LYqKitSqVYtDhw4xfvz4AtMBdXV1cXV1Zfz48YKw6C8FEx4ejo6OTqFukoaGhjx79kxmm4uLC2vWrOHevXucPHmShw8f/hTznsePH9OwYUNCQ0OJiYmhbdu2XLx4sdiPUxTs7e0xNTVl6dKlHDp0CIlEks9cJY/27dtTvnx5lixZwoULF7C3t5d5J8jLy9OyZUv279/P3r17BS3Pv1N1L126RLdu3Vi0aBEeHh6YmZkxdOhQrly58s0RQH19fczMzGQqTcKngZ6Xl5dQNEskEsmIZ/MyjGrWrEmXLl1YtGgRu3btEkrvXr9+nRo1atCgQQPKli3LwIEDuXLlSrH4zBcVkUhEt27dkJOTIywsjN27d7NmzRrevn3LyZMnuXbtWrG78RUXf2f0fzBVqlTh2bNn2NraCtsePXqEkZHRN6+3q6ioYGdnx/r164tktfktpKamftFkSE1NTVDj563d5yEvL//davm8kF9eh6ChocGCBQvw9/dn/vz5MpqFf6Ojo0NycnKBf1NWVqZr1668ePECAwODL56bsbExysrKwstx2LBhaGlpfdf5/DdTpkwZ4uLiyM7OLrDziI2NzaeQnj9/PmXLlhXEeD4+Pj/FNGfx4sU4OjoK6VMVK1Zk1qxZtGzZstiP9TXEYjGnTp1i+/btLFy4kBYtWhQ6oM/z2d+/fz+5ubkFdnpZWVm0a9cOc3Nz0tLSCAoKws/PDyUlJbKysrh+/TqhoaHs2bMH+DR4aN++fYHHCwsLY9KkSYSFhVGrVi2WLl1a4L2+bds2mjVrxuvXr6levTqxsbFcvnyZCRMmCELmXr164eHhQenSpalQoQKenp7Y29sL69mampr06NFDUM+rq6sTHx8vDAg+fPiAoqJige/B1NRU9u3bx5UrV5CXl8fJyYlOnTp9sdRyUZkxYwZOTk6CK2pYWBjLli2jZs2aP7xv+KSXCAwMpFKlSvTs2bPYdFV/Z/R/MHPmzGHfvn1cvHiR4OBg9u/fz507d757TbhZs2bs3r1bJgWuOKhTpw5PnjwpMJSelZXFkydPBFV1jx492Lp1K3Fxcbx7946dO3cKo/zvoVmzZrx48YJ3797x9u1boqKiWL9+Pc7OzsTGxhY6iAgLCxPWfr9EXh30L1GrVi10dXU5d+4cderU4d27d998Hv/tVKxYUVij/Tfp6elcv349n1GPWCxmzJgxXLhwgX379uULORcXebapeWhra5OSkvJTjlUUFBUVcXFxoXr16l8dNGppaaGiokKJEiU4deqUTGQpLS2Ny5cv4+Ligru7O4sXL8bPz4/y5cuzYcMGdu3aRb169fD19f3qsxAXF4eNjQ0KCgo4OjoSHh5OixYtCoxkVa1alaCgIBwcHAgLC0NNTY0zZ87IlK02MTGhV69eXL58GU9PT2rUqJFP0W5paUloaCjx8fE4OjqirKwsiG3zUhD/PQh69uwZpqam7NixgzJlyqCurs7ixYupWbNmPm3C9xAUFCTzTjAwMCA3N7fAglDfipubGyNGjOD+/fssX76cNm3akJub+8P7hb8d/R9N48aNuXDhAh8/fuTo0aNkZWVRpUqVAk0uioKOjg6lSpUq9vB9nrL0ypUrMtulUikHDx6kUaNGggPbihUrsLGxYdasWSxYsID27dszY8aM7zpunh/7hw8f0NDQICsri1WrVuHq6oqdnR3KysoFFhrJq4j3b7/wfyMWiwscvBREuXLlGDlyJNWqVWP8+PHfdT7/7axZswZPT09OnjxJSkqKkPa4ePFi2rVr91WzlNOnT9OgQQOUlZUpW7YsEyZM4OPHjz/crg4dOnDixAkiIiKIiYnh4MGDhc5qfyUGBgZfrRv/5s0bKlasSLVq1YiKimLy5MmcPXuW48ePM3HiRMRiMYcPH5bZ5/r163n9+jUvXrxg/vz5lCpV6qttOXPmDIaGhnTo0IEqVaowYMAAQalfEKVLl2by5MmcOHGCTZs2ydjb5ubmMmXKFHbv3k3t2rWZNWsWHTt2zKdOF4lEyMnJkZOTg5KSEl5eXvTs2RMjIyO2bdsmPGdPnjwRCvzUqVOH9u3bM27cOOzs7LC3t2fq1KlUq1at0Nz1Xbt2YWhoiLy8PDY2Nl+sAWBtbS1TqfDZs2eoqKj8cApzWFgYW7ZsYdasWfTs2ZNp06YRERHBqVOnfmi/efwN3f/h1K1bl2PHjgGfbsgfrWCnqqpaLC/HzxGLxZw5c4bmzZvj7+9PrVq1yM7O5u7du6irq3Pp0iWkUik3b97k0KFDZGRksH79ejp06PBd4TSpVMqCBQtYsWIFampqJCYm0rx5c6ZOnUqJEiWEgdCQIUNYsmQJ8fHxNGvWDFVVVd68ecPRo0dJS0vDwcFB2F90dDRisTivgATwKSwfEBDwxbCcVCrF39+fXr16AZ9c9caOHUtqauofZfP7J1C9enVu3brF7NmzGTFiBLm5uRgaGjJ+/Piv1jb4559/mDNnDj179mT48OF8+PCB06dPY2try507d36okuSAAQOIj49nxYoV5OTk0KtXL0EE9jsZNGgQbdq0wdHRscDnJDs7m2vXrjFhwgRBoDdr1ixOnDhBw4YNcXV1pWLFiowYMYLVq1f/UBg4JydHpg1isRhFRcUia1MkEgmXL1/m9OnT3L9/n6ioKMHEKc9QCz49T8+fPyc2NhYFBQU0NTWF51lFRQVXV1eZ/WZkZNC8eXPatm2LlZUVp06dEsTLeYhEIjp06MDYsWPz6Z7Onz/PlClTGDlyJAYGBvj4+ODg4EBwcHCBGQcLFy6kUaNGhIWFoaqqip+fH3v37v1hT5D3799TtmxZ4T4Wi8Xo6ekVW3Tw74z+PwhlZeUfFp9kZWX9FFWosbExL168YPz48eTm5qKkpMSqVavw9fVFQ0ODzp07069fP1JSUhCLxcyfPx8rKyvi4uK++ViLFi1i7969zJkzR3BPy8rKYvjw4SQnJwu1y42NjXF3d8ff35+hQ4fSu3dvFi5cSKVKlZg+fTqKiopERkYyefJk5s+fz+zZs5k2bZrwcNnb2+Pt7f3FgdHjx4/JzMwU0jDz7D4TEhK+/SL+D2Bubs7BgwdJTU0lOTmZ4OBgXFxcvigsTU1NZerUqUyePJl69eqhrKxMhQoVGDp0KOrq6mzduvWH2iQSiZg0aRJRUVHExMSwatWqn+o5UVRq166Nra0t69evz2eZmpmZiYeHByYmJkK0zNTUFAMDA0qWLEn//v0xNzdHTk4OqVRa5MhUYbRs2ZJHjx7h5eVFTEwMnp6ewKfweh5SqZRr166xfPlyLl26JCybxcbGYm1tzahRo0hISMDc3BxVVVVOnz5Ndna2INxLT09n9uzZbNmyhYCAADZv3kzlypW/eG9cunSJcuXK4eDgwJs3bwodlMvLy1OtWjX8/Pxktq9bt45OnTphamqKoqIiTZs2xcLCQiYK8jmGhoYEBwfj6upK165defr0abFUyDMzMyM2NpagoCDgU8fv7+//3ZbA/+b3381/AJmZmYwdO5Zjx46hqKjIhAkTGDt27B/nM29gYEBERMR3e+BnZWURHR1N+fLliY6ORlNTs0i1kouKkpISvXr1Ema3eaxYsYLQ0FAWLlwoCLEcHBzYu3cvw4cPF6qAFfUcVqxYgbu7uyDeUlFRoU+fPkyZMoXWrVuzceNGBg8ejI6ODikpKcTHx7Np0yYmTJjAhg0bhBChRCJh6dKltG/fnmbNmiGVSrlw4QLLli1j+fLllC5dmrZt2zJr1iymT5+eb8nk6dOnrFu3jlGjRgn7jI2NJTs7u0jr///LyMnJFXkWdO3aNQwNDfMZVolEIpo0acKhQ4f+a3Pr9+7dy+DBg3F1dcXGxobSpUsTFxfH1atXsba2ZujQoTKf19LSIiEhgW3btlGlShWuX79O//79f9g/o1KlSly8eJHhw4dz7NgxatSowdWrV4VJg0QiwdnZGX9/f6pVq8Y///yDqakpp06dwtnZmUqVKtGjRw/hvZWX2XD27Fn27t3LixcvkEgklCpVilmzZiEWi0lJScHd3Z2bN2/mm6Xn8fkARllZ+Ytr5SkpKfmibAXV51BVVf2iRkNVVTXfO+5H0dLS4siRIzg7O6OiokJiYiJLly4tthLdf2f0fMrhfPDgAbNmzWLMmDGsXr2anTt3/u5m5aNu3booKirmS0MqKj4+PpQpUwYrKyuqVatG2bJl6dOnz3fNqr+FjRs30rlzZ5mXjUgkonPnzly8eFGYgReFt2/foqiomE9RLxKJsLCwoH79+rRr145Zs2YxYMAAdu7cyapVq+jduzc5OTkkJiYK33n+/DkqKipCWpJYLKZ169ZIJBJCQkKATy+kxMREpk+fzpo1azh79iwnT57Ezc2NlStXMmLECEGck5uby4EDB+jfv3+BJkZ/+T6ysrIKXeJRUlL65QVCfiVKSkrs2bNHMMsqUaIE1tbW6OvrC++DPGJiYnj16hXXrl3DwsKC8PBw+vTpw8aNG4ulLVZWVty7d4/o6GguXrxIpUqVhL+dP3+ehw8fsmDBAvr06cPcuXMFp8rnz58XWMO9ZcuWwkChRo0aBAQE4OjoKAya1dTUsLW15eTJk4W2ycHBgejoaC5fvoyVlRW3b98uUGwcExNDcHCwYHOdR5cuXTh//jwZGRnAp1LAd+7cwcnJ6fsu0g/QrFkzIiMjuXbtGm/fvmX48OHFtu+/M3rg6NGjzJkzRyiq0KVLFw4fPsyAAQN4+fKl0EG2atWqWPzZ/010dDSbNm3i+vXriMVi2rVrx4ABA/LlZIpEIkaPHs2RI0e+y2//6NGjlCtXjmnTplGxYkWSkpLw9PTEzs5OqPn9M3j79i16enr5tpcoUYKSJUvy7t27IjtwlS5dmtTU1AJH4lFRUVSqVIlx48Yxe/ZsUlNT0dDQICwsjJ07d1K7dm0uXrwoiHKysrLyRTREIhEqKipCAYs7d+7QuHFjjhw5wv79+wkKCkJBQYEpU6awaNEiLl++THx8PBkZGfj4+KCnp5fP9OUvP4atrS0DBgwgOTk5X7U9X1/ffC/v/0byCtXkkVf2NDo6GgsLCyIiIjh58iRz5szBwMCAVatW/dL2+fr6YmlpKSx5yMvLU7NmTc6fP0/NmjULfW82bNgQJSUlPDw8uHPnjsxAHCAxMZHMzEyWLFmCtbV1PgGtioqKkFmwbds2tLS0WLp0KS4uLkLELywsjA0bNjBt2rR874zhw4fz4MEDQc8QGRnJ8uXLf1tNBRUVFZlj+/v759MlfA9/Z/R8Smf5fBSYmpqKkpISFy5coF69euzatYtx48bRrl27Ykt3yOP69etYWFhw9+5dbGxshJKNeSkq8Cl02aVLF2F26e/vz9KlS/Hz8ytyDrqnpyepqalMmjRJyEXW0NCgb9++KCsrF7omVRxUrlxZqAT3/PlzJk6cyIABA5g7dy7x8fHf5F2urq5Ohw4d2L9/v8y5+/r6Eh0dLayXycvLo6mpiY+PD1ZWVoII8Pz580KaTZUqVYiIiJDJQnjy5AlxcXGYmpqSm5vLlStXcHV1RV1dnWHDhrF27VpWrlyJi4sLz58/Z8SIEaSkpCAvL8+6deu4cuXKH+mM9Z+Mjo4OAwcOxMPDg/fv3wOfhGgXL17Ez8+PUaNG/eYW/jixsbHMmjWLDh06MG/evK9Guezs7PDy8kJeXp5Dhw4RGRnJzp07f9sSRtWqVXn16pUQSpdKpbx8+RJdXd0vCvaysrKECdbIkSM5ePAgkZGRSCQS7t27h5eXFy9evMDHx4fevXuzdOnSfPuoXr06Pj4+Qpqbs7Mzs2fPZsaMGUyePJlVq1YxadIkJk2alO+78vLy7Nq1i0ePHvHPP/8QERGRr+ZCWloaq1evplOnTkybNq1Y0vSKQlRUFA4ODjI6iO/lb1EbPlV58vDwoEuXLqSlpXHo0CE8PT3p168fffv2pVq1auTm5jJ37lzmz59P586di6V9CQkJVK5cmdGjR+fzdfb29ubMmTMsWrSIMWPG0L59e5SUlDh8+DClS5fGysqKGzduUL58ecaNG/fFwgleXl5Czuy/1/Ty/h4dHS2o+4ubLVu2sGzZMkaMGMGsWbMYMmQIVapU4cSJE/j5+REVFfVN+0tKSqJDhw68ePECCwsL3r17R1xcHKdPnxZ87/MwNzeXSd3av38/vr6+LF++HAUFBfz9/Vm3bh1VqlRBIpHw8uVLxowZg4WFBVu3bkUkEnHx4sX/iZrofzJ5RVDWrFmDuro6iYmJ1KpViw0bNnxzdbU/jbi4OKysrDA1NaVq1ao8fvyYiIgIHjx48Mu83H+UrKwsGjVqhEQioUaNGjx58oSMjAwOHz5MvXr1WLNmDcrKyjLfkUgkuLm5ceDAAWxsbJBKpaxatYpFixaRnJyMjo4OioqKgvXshw8fmDBhAu/evcsX2fk36enpQgGqGjVqfLe4Mjc3l8aNG5OdnU29evUICQkhMDAQf3//YiuBWxgHDhxg/fr1uLq60q1btx8qavP37QWMGzeOWbNm8eTJE6KiooRwdmxsrKBolZOTQ19fv1jNUHbt2kX16tXzdfLwKVypoqLClClTGDp0KM2bN8fW1pZZs2YRHh6Og4MDixcvFgpc/BupVEpwcDAbNmzg1KlTTJw4sdDZf25u7k9Zkshj8ODBtGzZkpkzZ6Knp0fdunVRV1enV69efPjwgdTU1G/an4aGBteuXePEiRN07tyZefPmERYWlq+TB4iIiJBZ5rCwsEAsFrNo0SKCg4OpVasWa9eupUGDBjRq1Ig1a9agqanJqlWryMjI4Pjx4387+e8gNjYWb29vIiMji2V/cnJyzJ49m6ioKM6fP8+zZ8+4fv36f3wnD580LCYmJgwZMgQbGxsh7Lxjx47f3bQio6ioyM2bNxkyZAhycnL07duX27dvY2ZmhpOTExs2bCA9PV34fHZ2Njt27MDQ0JCGDRsCn5bNxo8fz/v374mPj8fd3R19fX3h+dPW1kZVVbVIGS0qKirUrVuX2rVr/1AGxeXLl4mNjWX8+PHY2trSv39/LC0t2bBhw3fvs6ioqakRHx//3c6hn/N3jZ5PN9jAgQPzOXM1atSIo0eP0rNnT968ecP9+/dZvHhxsR339u3b+bzsP6datWqcOXNGRvSSZ26Rnp6OpqYmLVu25MCBAzx8+BBDQ0MUFRXJzMzk+fPnZGVl0aFDBzw8PChVqhQrV64UqlPlIZFI8Pb2lln/K25EIpHQmY4fP16wQX3//j1ycnL5RvpFxdra+ovpJ5GRkejq6gq5sRKJBF9fXzp27IiJiQmrV69GQUGBWrVqCUVtVqxYQVxcHC4uLkLBml9FUlIShw4dIjQ0FEtLSzp27Fgstp2/EolEwqRJk9iyZQt6enpERkbSpk0bduzYUSzXUllZ+bv0KX8yjx8/xszMTGabmZkZjx49+k0t+j5UVFQYNmxYPk+ELVu24OLigqurK7Vq1UJeXp6AgAAaNmzI4cOH84n0xGIxqqqqNGzYEDc3N16/fo2hoSFXr15FVVX1l5YLDwkJwdDQUGawb2BgICxF/kxatWrFkiVLWL58+Q/v62/o/gvExsbSrVs3vL290dTUZN26dYW6K30P/fr1EwpPFMTevXsJCQnB3Nycbt26AZ+U856enixbtgyRSMT58+fJycmhS5cuBAcHk5KSgqamJjk5OSxZsoTSpUsTExND3759UVJSwtPTk169emFubs67d+84fvw4OTk53Lx586fXgpZKpXTv3p2AgAAqV66Mn58f8+fPL3A54UfIzMxk6NChnDx5Ush7LV26NFKplPLly3P58mWhFOfly5e5du0aiYmJqKur06BBA9q1a/fL62I/fPgQBwcHjI2N0dXV5cWLF2RkZHDjxo2fHiIsTjZu3IiHhwcTJ05EQ0ODjIwMNmzYgI2NDStWrPjdzfsjWb58OSdOnGD06NGIRCKkUinLly9n8ODBXzUS+k8iMjKSS5cukZubi52dXZEEb0ePHmXw4MGkp6djYGDAiRMnfmkU5+HDh7Ro0YLFixejpqaGRCJhyZIlDBs2DBcXl59+/MzMTHbu3ImLi8sPhe7/dvRFQCKR/JTw7alTp5g8eTKzZ8/ON6rNyclh7Nix9O7dm61btwodVXx8PFOmTMHY2Jjk5GRmz57Njh07aN68ufDd1NRU9PT0BEvW1NRU5s+fz8KFC0lMTGTFihW8fPkSbW1tBg0ahLu7+y9zcZNIJJw+fZqIiAjq1q0rY42ZR0REBIsXL+bu3bsYGhoyceJEmbKhKSkpuLi4cOXKFcqUKcO6deuws7MT/j5o0CCePHnCiBEjUFZWJi0tDV9fXw4ePMiBAwf+OJW2VCqlRo0aNG7cWOY89u/fj7KyMgcPHvyNrfs2LC0tad++vUykKiYmhhkzZpCQkPDHeVP8CSQlJdGwYUNUVVWpUqUKQUFBSCQSbt26Vaw+F/+pSKVS0tLSfpvTpJubG9u3b6dmzZqEhIRQuXJlzp49+0ujfSKR6G9HXxjF1dH/LHJzc6lTpw56enp069ZNWEvKzMxky5YtaGtrY2FhwfPnz7GwsODVq1ecPn0aIyMjSpYsycOHD3FxcWHRokUy+w0KCsLR0VFGoerp6Ymuri7Lli0Dft7g5UeJiorCysqKevXqUbt2bcLDwzlx4gQHDhwQLGt79OjB27dv6datG2FhYWzbtg1/f38MDAx49+4dpqameHh45HsxeHt78+TJE65du/Y7Tq1Qnj9/TpMmTVi9erXMb5KSksKwYcMoXbo0SkpKtGnThtGjR//R69IGBga4urrKZFJkZWXRv39/srKy/sh77k8gNTWVPXv28PDhQ+rUqUPPnj3/Zm/8IiQSCVKp9Is6pSdPnnD79m1MTEyws7P75QPWH+3o/z51vxE5OTkuX75McnIyY8aMYevWrWzatInRo0dToUIF9u/fj7GxMTdv3sTY2JgOHTqwdOlSXr16hYGBAQ8ePMjXyUskEry8vIiLi2PSpEls376d6OhowsPDZUp8/qkv3JUrV2JlZUXPnj0xNzenZcuWDBw4kKlTpwqfuXjxIr169aJMmTJYW1sLHuoAAQEBmJqaFjj6r1WrlkxBij+FzMxMlJSU8v0mioqKSKVSpkyZwujRo4UKYv/8889vaunXcXBwwMvLS2bbzZs3sbOz+2PvuT8BVVVVXFxc2LhxI4MGDfrbyf8CYmNj6dOnD6qqqigrK9OyZUuePHlS4GctLCwYMmQITZo0+Y+MSv0V4/1GEhMTmTJlCvfv3wc+5YI7ODgQEBCAoaEhR48eZfz48ZQsWZKxY8dibm7Os2fPqFSpEioqKlSuXFlmf1KplIEDB3Lnzh2GDRtGqVKluHfvHlOmTKFSpUr58kP/RPz8/GjQoIHMNktLS1avXi38W1tbm4iICEqWLElOTg5RUVGCSDGvyE1BJCUl/VDxk5+FhYUFOTk5PH/+HHNzc2H7zZs3sbCwEFwAK1WqRKNGjXB3d8fExAR7e3vhs3FxcWzbtg1PT08SExPR0tKic+fODBw4sMhmRMXBrFmzaNiwIR8/fsTCwoLQ0FDu3bv3x0VR/vK/TU5ODk2bNsXQ0JC1a9eirKzM9evXadKkCYGBgTKTov8G/nb0v4nc3FyaN2+OlpYWK1asQEtLSwhDb926FXt7e0aMGIG+vj4NGjSgcuXKvHnzhi5duhAeHs7Tp08ZNWoUV69eRV1dnb59+2Jpacnly5dZtGiRoGQ3NjZGR0eHFy9efHWNKzc3l2fPniGVSqlSpcpvKexhZmZGSEiITHGKV69eYWhoKPx77dq19OrVi9q1axMRESHM/OGT01Z6ejpPnz7Np87Oq5T1pyEvL8/GjRsZMGAADg4OGBgY8PjxY27duiVTwxs+lcN1dnZm8eLFQke/atUqZs+eTZ06dWjevDkaGhokJiZy7tw55s2bx8KFCxk5cuQvOZeKFSsSGBjI9u3bBdvWrVu3/lKl9F/+8jVOnz6NSCSid+/ewgy9ZcuWvHv3jo0bNzJ//nzg/7vqXb9+HXl5eTp06MDgwYOLVNr3T+JvR/+bOHv2LMnJyUycOFG40QwMDBg/fjxubm7cunWLrl27kpubi5eXF40bN0ZPTw+JRMLu3bsJCQlBXV2dfv36kZSUxLZt2wRRz7/T1ezs7Ni1axeNGjXi7du3WFlZMWPGDGrWrEl8fDyBgYE8fvyYlStXCgVzcnNzmTVrVrEr4r/GuHHjaNiwIZqamtSpU4fw8HB27twpk9bYunVrbt++za1bt9DR0aFt27ZCWFhOTo5NmzbRt29fOnTogKWlJSdPnuTx48fk5OQwefLkX3o+RcXJyYnr168zbNgwvLy8qFOnDgsXLhRcwz6nQYMG7Nq1iw8fPrB9+3bWrFnDggULZIrupKSkkJOTg66uLu7u7qSmpuLm5vZLzqVkyZJMmDDhlxzrL3/5Hh4+fIiZmVm+MHyVKlWEevRXrlyha9euNGrUiLZt2wpujB4eHly/fj1fSuSfzN+O/jdx9epVrKys8t1oJUuWpHLlygQFBeHs7Iy2tja+vr5MnjyZ6tWr8/DhQ9LS0mjfvr1M4YXq1at/0RNZIpFgaWlJ586defjwIc2aNWPIkCFs3LiRihUrEhoaSr169RgxYgQikYjXr18zb948cnJyqFq1KrNnzyYsLIwmTZqwaNGifEVligszMzMuXrzI9OnTOXLkCHp6eqxYsSJfWqO5uTnm5ua8efOGly9fYmxsLEQg2rZty4ULF1i0aBEzZsxAT0+PESNGEBkZSZcuXXjw4IFMhOBPoUaNGtja2hIREUHHjh0L/ZyioiLq6uo8e/aMefPmsWjRImFAEBkZyenTp7l37x7GxsaoqalRoUIFZsyYQWBgILNnz/5tPt4A8fHxXLhwAalUSqtWrQocyPzlL/8mJiYGd3d3Tpw4gby8PN26dWP27NlfdcgrDENDQ86fP59ve3h4OJUrVyYlJYWuXbvi6uoqExm0tLQUBgCBgYH/Mev1fzv630SJEiVknKI+JyUlBV1dXUJCQtDR0cHNzY2goCDCw8ORSCQkJSUJCvQ85OTkaNCgATdu3MDJyUkm9cPb2xsjIyMhdatixYpkZGSwdu1ali5dKpRznT59Ok+ePKFatWoYGRkxZswYpk+fLoS4nJycuHnzJk2bNiUoKOinhfbr1KnDxYsXv/iZBw8e4OLiQmhoKCoqKuTm5uLu7i5UfLK2tubgwYOoqanh5uYmGK1ERkZy7NgxJk6c+FPaXhBZWVmcPHmS+Ph4bGxshNr1BVGhQgVhRlEYaWlpJCcnc+LECaF0KUBgYCDr1q2jbdu2rF69WsY+9ePHj1y+fJkGDRpw5MiRfMVBfgWhoaE0atQIfX19RCIRbm5ueHt759Oa/OUvn5OamoqNjQ1mZmZMmzaNnJwcTp06RfPmzblz546MyDM3N5ezZ89y6tQpPnz4gKqqKjY2NvTu3VtGn+Ps7MzUqVO5cuUKzZo1QyQS8fjxY65du4aPjw8HDhzA3Ny8QHOmZs2acf78eXx9fWXSfv9k/spgfxM9evTg1q1bQt3jlJQUTp8+zaRJk3j79i0fP35k+/btwo1cpUoVMjMzKVmyZKGjyLJly6KlpcXChQt58OABr1+/5ujRo+zcuZMBAwbIfFZJSYlq1aoJ4V41NTUaNWrE48ePhc/o6ekhJydHmzZtaNSoEbq6uvTq1QuRSPRbxVUvX76kZcuWNGjQgPXr17Ny5UrGjRvHokWL2LRpk/C5vOv0uYVk3tLEryIjI4OmTZsyd+5cjh8/LtRPL4zu3btz7969L9bD9vb2pkWLFpw6dQpbW1sAXr9+zbp165g0aRIdO3bM55GupaWFs7Mzo0aNwtnZWSiY9CuZMGECTZo0YezYsYwZMwZ7e3vGjRv3y9vxl/8s9u7dS6lSpejbty/lypVDV1cXFxcXPn78KDMh+Oeff9DX12fKlCnk5uZSqVIlSpQowe7du9HV1WXcuHFCSeMSJUpw9epV/P39GTlyJOPGjWPfvn3s378fc3NzHj58iImJSYHtEYvFmJubF6rQ/5zMzEyOHj3K8uXL2bdv3zfbfRcXf2f0v4kaNWrQr18/Zs+eTaVKlQgICKBmzZr07duX0qVLk5mZiZ+fH9u2bWP79u3Ap3r0ly9fpn///mzdupXq1atTq1YtweXt1q1bLFq0iJSUFLZu3Up8fDx16tQROuYdO3YgkUgoV64campqREREyOTTR0REFDjb/NwyN+/fhSnbfwUrVqygWbNmQicHn/QNI0aMYN68eQwePBg5OTkUFBTo27cvHh4etGnThsjISPz8/NiyZcsva+vWrVvJyspi+vTpiMVimjdvzpAhQ3B2di4w3axcuXL07t2bjRs3MmbMmHwWuK9evcLT05NLly7Rpk0boZTxsWPH6Nq161fXDS0sLHB0dGTOnDkcOXKk+E60CISHh9O+fXvh32ZmZhw9evSXtuEv/3ncu3cvXz0QsViMhYUF9+/fp3Xr1kyaNIkjR44watQooT5JHvb29sTFxbF3715atGjBxYsXUVFRoUqVKjx48ICwsDAyMjIwNTUVnslSpUrx5s2bQtuUkJCAlpbWF9t94cIF+vTpg66uLrq6urx//55Ro0axbt06evXq9X0X4zv529H/RpYuXUpMTAwXL14UQuifY2BgQIcOHdi9eze+vr6kpqYyatQo7ty5g5GREb6+vmzbtg1tbW2kUim6urp06NABeXl5+vfvT3Z2NkOHDkVeXp4SJUrQq1cvxGIxr1694uzZs2RlZbF06VJsbGwICgrizZs3MraO7969IyMjg4sXL1K7dm00NDR4+vQpL168oEWLFr/6cgncuHEjX4QCPtXszsnJITw8XHjY//nnHxYsWMDVq1cpU6YM3t7e6Onp/bK2hoeHY2xsLLxADAwMyM3NJSkpqdAXhYeHB/369cPNzQ17e3sqV65MZmYm9+7dw8/Pjz179lCnTh3U1NRISUkhNzeX58+fM3r06CK1qUmTJowZM4Z37979UnvdOnXqcPPmTUEj4OXlRe3atX/Z8f/yn4m+vj537tzJtz06OhonJye2bNnCkSNHcHd3LzR9tnTp0ri6urJhwwaGDBnC3r17hb8ZGBjk+3zPnj1Zt24dnTp1yudOGBUVRUhICK1bty60zYGBgfTs2VNIi87jzZs3jBs3jnLlysmkx/5s/jrj/UYCAwNp0aIF8+bN+2Kus1QqZd26daSkpPD8+XMWLFggOI9FRUUxY8YM7O3t8fHxYc2aNfTs2ROpVEqvXr0IDg7G1dU1nxJfKpVy4MABbt68ibq6OikpKUyYMEEIV8XExODh4cGAAQNISEhg06ZNaGpqkp2dzc6dO3+rjWydOnVo1aoVNWrUkNmek5ODi4sLL1++pGzZsr+pdbIcPnyYadOmMX36dFRVVfHx8eHEiROEhYV9dQnh/v37rF+/nmfPnqGkpISjoyODBg0SUntGjx5NVFQUWlpavH79WtAnFIX169fTv3//AgdMP4ukpCTatGlDSEgI8OkFe/78+a/OjP5SMPHx8URHR2NgYPBH+kMUF2/fvqV69eoMGjSIOnXqIJVKuXHjBidOnODly5dYWFgwbNiwQkPtn5ORkYGrqysPHz5EX1//i58dPnw4Xl5eDBgwAD09PaRSKc+ePWPz5s3MnDnzi89bjx49kJeXp127dvn+9j0OnX8tcL/An97RDxo0iPT0dDp06PDVz+aVSrSzs2Pw4MEyf9u1axdqamrUqlWLlStXcunSJQ4dOsTmzZtZvnx5ofnzUqmUpUuX8vHjR1JTU8nKyqJcuXJIJBLevHkj+OsrKytTo0YNOnbsSNeuXX97RTUPDw/27t3LhAkTZMLfV65c4cWLF9y8efM3tk4WqVTK2LFj2bVrFyVLliQjI4Nz585Rq1atH973ixcvaNiwIXZ2dkgkkm/yCNi9e3exrZFnZ2fj6enJrVu3MDQ0pF+/foUOXCUSiVD5y8TEpFC3vIyMDE6fPk1UVBRGRka0atXqlxca+pPx8PBg5syZaGtrk5SUxIEDBwotjvXfgLe3NwMHDiQ5OZmcnBwqVarEnj17iIiIYOzYscydO7fI2pvdu3dTvXr1fK6i/0YikbB06VKhymVWVhYaGhrMmTPnq8+atrY2CxcuLPA5yM7Opn///nh6enLo0CGhymiXLl0Kvcf/WuD+YjIzM3FxcaFs2bIYGRl9UVj1JTIyMjhy5AhNmjQp0ufLlCmDtrZ2gUUuVFVVycjIwMjICCUlJRo3boyXlxdaWlosXbqUrKysAvcpEolo3749aWlpGBgYMGfOHGxsbIiMjKR+/foMGDAANzc3XFxcUFdXZ+rUqTRo0ICIiIjvOufiYujQoSgqKrJs2TICAgIIDg5m7969eHp6sn79+t/atn+TlZWFgoICEomEiIgIdHR0+PDhw1e/J5VK8fLywtnZmcqVK6Orq0utWrVYvny58H0zMzN69erFnTt3Cs3gKIzMzMxiKRKSlZVFixYtmDNnDgkJCZw6dQoLCwth1i6RSLh37x4nT57k2LFj3Lx5Ez09PczMzArt5I8fP07FihVZtGgRly5dYurUqejp6f1RA7jfia+vLwsWLGDx4sUsXbqUMWPG0KNHjyLVaf9PxdbWluDgYLy8vLh37x4BAQFCGW9ra+tvEtjWr1+f06dPf/VzYrGYKVOmEBERwaVLl/Dx8SE4OLjIA+rC7m+RSIREImHkyJEoKiqira3N/Pnzad26daHv6h/lj12jF4lEYUAykAvkSKXSOiKRSBs4BBgAYUBXqVRa5Lvbz8+PI0eOEBcXh5qaGo0bN8bJyemb0sTc3Nx48OAB7u7uxMfHM3LkSPT09PLZtn6NmJgYVFRUvilsaWZmhre3N506dRJC8VlZWdy6dYuhQ4eSk5NDXFwc48ePx9LSEolEwsqVK7lw4YJMzv2/95menk6JEiU4efIkYWFhLF++PN9ItFKlSrRq1YqzZ8/SsGFD7t69K3SsEomEQYMGMWnSpF+iaFdRUeHq1ats27aNffv2kZaWhr29PevWrful6+9FYciQITx//lwwv3nw4AHOzs5cunSJOnUKHqC/efOG9u3b8+HDB5o1aya8EGJiYgS3uxkzZjBx4kRWrVrF+/fvuXDhAgMGDCiSn3xOTg4BAQF4eHj88PkdPHiQhIQEZs6cKRzb09OTCRMm0KhRI9atW4dIJKJcuXKIxWISExN5+/Yt/fv3Z8SIEfnCrXfv3mXo0KFMmDABY2NjYfvDhw/p2LEjvr6+RQrR/jfz4MEDateuLaRVVqlSRXC//E9J9/oeRCJRPg+Ijx8/5hMLfw0NDQ2Sk5OL/HkFBYVvLiTVpEkTfH19C4yy+Pn5oaqqyrx584T3uJ2dHYsWLWLPnj0MGjTom45VFP7Yjv7/aCqVSuM++/cU4KpUKl0sEomm/N+/v2p15u3tzdixY4mKiqJhw4aULFmS2NhY3N3dGTlyJFOnThVqQX+Ns2fP4uLiQpkyZShTpgx2dnZcvHjxmzt6sVjMty6baGlpoa2tzZQpUwQ3uIsXL2JsbIypqSkHDx5ELBZjaWkpHKNatWpERkYWuD+pVMrLly/Jzc3lzp07qKqqsnjx4kIfHLFYTLt27cjOzqZly5YkJSUxdOhQxGIxmzdvRl5envHjx3/TOX0vysrKjBw58rusXVNTU5kyZYogaly5cqVMtbXiIioqipMnTwpe2vApcyI+Pp5ly5YVGA2KjIykYcOG2Nvb06ZNG5l7UkdHh2rVqhEXF8fy5ctJTU1l9uzZHDp0CAsLC/z9/QsdPHzO/fv3qVKlSoE5wt/K1atXqVu3rswAo1SpUmzZsoXExEQGDx6MiYmJzHm8f/+ea9euUbduXSZPnszkyZOFvy9cuJCOHTvKdPLwyaikWbNmrFq1ig0bNnxzO+Pi4lBUVPzmTuFPpHz58oSHh5Obm4ucnBzJycm/XFj5p6CmpkZGRsY3fSc9Pf2nFw1yc3PD0dERc3NzGS1ATEwMO3fupGbNmjK6KbFYTLNmzTh8+PD/ZEf/b9oDTf7v/3cBN/hKR3/mzBn69u1Lv379qFevnswLqX379oSFhbFmzRpevXqFh4fHVzv7kiVLEhUVJYgz3r17J1NDvKjo6OiQnZ1NXFxckd3BXrx4IbTPy8uL6OhoofKZq6uroNp/8eIFZmZm5OTk4OfnJyibJRIJ165dw9fXF3l5ebKysnj//j1t2rTBz8+PZs2aFelF2K5dO86cOUPPnj2FEXafPn3Ys2fPL+vof4S8MKeTkxOPHz/Gzs6Ox48fF3vt75cvX6Kvr59PCGlqasqBAwcK/E6/fv2wtbWlbdu2he63dOnSTJkyBXd3dxwcHGjYsCELFixgxIgRVK5cWUi5K4i4uDj279/Prl27vu+k/kWlSpV4+PCh8O+AgAB2797N1KlTCx1IlC1blh49euDg4MDy5ctJTk5mwYIFwKeBw9q1awv8Xv369dm4ceM3te/Nmzf07NmThw8fIpVKadu2Ldu2bfuPFq+1b9+ezZs3s2DBAipXrkxAQADDhw8vUD3+307jxo1ZuXLlFxXw/8bf318mNfdnUL9+fdatW4eLiwvVqlWjYsWKREdHExgYiLW1NWXKlCnwe3nv9/T0dNauXcvLly+LxWr3T+7opcAlkUgkBTZJpdLNQFmpVBr9f39/B3xRWp2ZmUnfvn2ZOHFivhlCHgYGBsyYMYO5c+dSs2ZNBg4c+MVGrVixgg4dOvD06VM+fPhAWlraV79TEIqKivTu3Ztr167RtWvXr34+KiqKN2/eMHfuXBQVFVm9ejVr1qwBPjmOaWpqoqurS0BAAMuWLaNy5cpERkZSpkwZIRVu+/bthIeH4+TkREZGBvv376dt27Y0bNiQc+fO0ahRoyK1XUFBgWbNmuHv70/z5s2BT9f6dxTBOXnyJFOnTuXjx484ODiwfv36L649p6enc/HiRXbs2IG8vDzm5uY8fvwYf3//Ip9/UTExMSE8PDzfDOLFixcFdoIvXrwgMDBQ+F2/hJaWFq1atcLDw4OGDRsK9+TcuXMZPHgwVatWlRm0SqVSHj9+zNatW5kyZUqxZU0MHTqUWrVqUaFCBYyMjFi3bh2TJ08uks1uqVKlmDp1KrNnz6ZmzZo4OzsjEokKjXR9q9mRVCqlQ4cOmJmZMWLECLKzs9mxYwdjx45l69atRd7Pn4acnBxnzpzh0KFDREREMHz48GL5PXNycjh//jzPnj2jevXqODg4fLFG+59Aly5dGDNmDFFRUUUqnJSTk8P169e5fPnyT29b9+7dadOmDYcOHeL169fY2tpy/Phxnj9/Trdu3WjVqpUwucjNzeXq1auMGzeOrKwsmjZtikgkomrVqsXiNfEnd/SNpFLpW5FIpANcFolEzz//o1Qqlf7fIEAGkUg0FBgKoK6uTrNmzQrt5PMoUaIEffr0YcmSJQwYMOCLL5PGjRtz+/ZtLl26hLq6Ol27dv1uUdOoUaOwtrbG1tb2i97xEomEgwcPMm7cOMaPH4+JiQl9+vQRbpLPzSRq1arF4sWLCQ0NFWxz5eXl+fDhA3fu3GHdunVCp2NoaMjcuXPR19dHV1c338zzS5ibm3Pz5k28vb0Ri8UcOnSIVatWfdd1+F58fHwYNGgQw4cPR0dHh8OHD9OvX78vPhjy8vKIRCJSUlLQ0tIiJyeHlJSUnxLKq1ChAh07dmTdunX06dOHMmXKcO/ePU6dOsWVK1fyfX7z5s3Y2dkVWV3euHFjxo4dy4cPH9DW1mbatGkYGhoya9YssrOzqVOnDqqqqqSkpHD//n1UVVVZv349nTt3LrZz1NPT4/Lly0yaNIndu3fTrFkzmU4+JycHLy8vbt68SVJSkqD1yBvoaGho0KdPH+bPn0+XLl1o0aIFt2/fLnBt886dO980cwsODubt27e4ubkhFouRl5enV69ejBkzhi1btvzH+JQXRN65FBcJCQk0bdqUrKwsTExM2LZtG5qamly5cuWPXu5QUlJi1KhR7Nq1i0mTJn11suHp6UnVqlWF5c2srCwyMjJ+2jlqaGjkKw9uY2ODk5MTs2bNomnTpigqKgr+Hr179+bYsWOkpaUJ9uMtWrSgR48eP9SOP1Z1L5VK3/7ff2MAT6Au8F4kEpUH+L//xhTwvc1SqbSOVCqtk5aWVmRP76pVq5KZmYmXl9dXP2tubo6rqysDBgz4IeVy5cqVEYvFzJ07l9DQ0AI/k5GRwYYNG1BWVsbd3Z1bt26Rm5v7RXFI6dKlsba2pmvXrrx69YqDBw/y+vVrKlSoINOhVaxYkaysLNLT07955C4nJ4exsTGhoaG8evWKDRs2/PDN+K0cPXqUFi1aUL16dcqWLcvQoUM5deoUOTk5hX5HQUGBKVOmsHDhQo4dO8ayZcuoUaNGsaS7FcTmzZtp1qwZs2fPpnfv3ty6dYtjx44VaBTz7Nmzb/J9V1NTo2zZsoSHhwvbevTowYsXL9ixYwcmJiaUKFECMzMz9u7dy5MnT4q1k8+jdu3anD59GmVlZZmZZU5ODitWrMDLywsnJyfGjx9PtWrVWLduncyMytLSkri4OO7fv8+0adM4ceIEz5/LjOvx8/Pj5s2bjB07tsjtKig68KstkP9TmDlzJjo6OsyaNYtevXoxd+5cSpQoISyp/MnMmDGDihUrsnLlykKto3Nycjh8+DD+/v4cPnwYgMWLF6OpqUnZsmVp1KgRcXFxBX63uBGJRGzYsEGIKoWGhmJoaIi6ujqDBg3i+PHjlC1bVrhPiyKw/Rp/5IxeJBKpAmKpVJr8f//vAMwFTgH9gMX/99+TX9qPWCwuskBFJBJRrVo1/P39v2vN/Xu4f/8+ZcqUoXXr1ixatAg9PT2aNGmCtrY2WVlZ+Pr68uDBA8H9SVFRkWvXrqGnp1ekl5Wqqip6enpkZmbyzz//kJmZSWxsrLA+9PjxY7S0tKhQoQLv3r2TscP9GtHR0VhYWLB79+4fugY/gpKSkkxaWXp6OvLy8l8dtMyePRtLS0vu3r1Ls2bNGDhwYLE8TAWhqKjIkiVLWLx4Mbm5uV+cceTm5n5zO8RiMbm5uTLbRCIRTZo0KXLqZnFw6tQpjI2NZYyKvL29SUtLY+bMmcJ5V6pUiZo1azJlyhSsra3R0tJCLBbTpEkTtmzZwpYtW9i1axeDBg2ibNmylCtXjvDwcCGv/lsGQiYmJlSqVIkTJ07g5OREVlYW+/btE+o1/OX/4+npKZM1IxKJaN26NVu2bGHJkiVf/X5QUBD379+nUqVK2Nvb/9LrKy8vj6enJyNGjGD48OHY2NjQqFEjNDQ0yMjIwM/Pj2vXrmFtbc2dO3fQ0dHh4sWLrFu3jlWrVqGlpcWePXsYNmwYx44d+6ZjZ2ZmcuHCBWJiYqhRowZ169Yt0rmLRCKUlJR48OABiYmJNGrUiNKlS5OVlUVwcDABAQGIxWL69etXLHbjf2RHz6e1d8//u2DywH6pVHpBJBLdBw6LRKJBQDjwxcXtb73Z5OXlhaIHv4Ls7GwUFRVp1KgR9erV4+7du9y5c4fk5GSkUikfPnwgKCiISpUqERUVRbdu3Xj48CHVqlX7puPY29vj7+9PVlYWkydPxsHBgfT0dLy8vHB1dUVXVxdNTU0ePnxYpJltnjPVzp07v/PMi4fBgwdTr1491NTU0NHR4cyZM7i6uhbpd+/YseMXS8EWJ3mOhoaGhoKrXUHo6+sTGRmJlZVVkfabJ6asWLFioZ8JDw/n4MGDSKVSunTp8tVlrO8lLCwsXzu8vLxo165dvsGNjo4O1tbW+Pj4CKJDPT097t+/D4CjoyORkZFcuHCBqKgoDA0Nsbe3/+aok0gk4sSJE/Tp04ehQ4cKa/a/eompuAkKCiI4OJg6deoUWzqpkpJSvndfZmZmkcyx9u3bh6urK5aWloSGhtK4cWN27tz5Szt7BQUFtmzZwtOnT0lISODQoUOkpaUhLy9PfHw8mzZtkok4+vr6UrduXSGNuGXLlixduvSbjpnnZV+xYkXKlCnDnDlzKF++PCdOnPjiMwn/XyQ+aNAgrKysZAb49vb2fPjwgbVr1zJ69Oh8A/nv4Y/s6KVS6WvAsoDt8UCRDYJzcnLIyckpskgsPj7+l1qn1qlTh6ioKCE1xtbWVlCD7t+/n4SEBFq1asX79+/Jzs7G1NSUSZMmsXbt2iLNvj9+/Eh0dDRTp05l+PDh1K9fn9evX7N+/XrEYjFKSko8ffoUAwMDHBwc8PT0pEaNGsILNS0tjUuXLpGYmIipqSn169dHJBLx4MEDFBUVf1nkozCMjY25desWCxYsIDg4mDFjxjBixIjf2qZ/s2HDBqZNm4aOjg7v3r1j+PDhLF68uMCX4KBBg+jUqRPt2rUr0sz+zp071KlTp1B9x7Nnz7C1tcXa2hqxWMyyZcu4cuXKT1mmSEtLy6ctSEpKKlRdrKOjI5PLrKCgQFpamsy/C7IPLSp5IfpKlSpx48YNPnz4gIKCwlfrl0ulUgICAkhJSaFOnTrFnonxI+Tk5NCjRw9u3rxJ5cqVefbsGaNGjWL+/Pk/vO8+ffpw9OhRxo4dK7jAeXp60r9//y9+TyKR4OLiwqxZs9DT0yMrK4upU6dy+/ZtbGxsfrhd30pe4RpFRUUMDQ15+PAhbm5u+ZYV9fT0OHr0qNA/PH369JsGTc+fPxf0Hnle9hKJhBMnTtC6dWsCAwMLfYbDw8Pp27evjOX4v9HW1mb69OksW7ZM8KP4Ef7Ijr64KFGiBL6+vkW64RITE3n06FGR7GiLixIlSjBlyhRWr16Ni4sLBgYGZGdnc/36dS5evIi5uTnOzs5C3uzJkyc5fvw4GhoaBAQEfHXmd/XqVSQSCc7OzjRs2BD41DnOnz+fxYsXExcXx5UrVzh37hy5ubmUKFGCDRs2CApld3d39PX1MTAw4OjRo0RERFCjRg22bdvGqVOn/ojwZ5UqVWQKVPxJBAQEMGvWLObOnUu5cuVISkpi0aJFWFlZUbt2bT58+IClpSVKSkrApxz70qVL4+Pj89X0n6ysLC5cuPDF2emsWbNo06YNjo6OwCdNxrRp0zh//nzxneT/UbJkSZmOGj69TJ8+fVqgp/jTp09linqkpqbmM49KSEjg4MGDxMfH06ZNm68WwPnw4QNubm4cPHiQrKwsWrZsyfLlyzEzMyMxMZHHjx9ToUIFrKysCrx3Hz16hLOzM+np6airqxMVFcXChQu/qYbAz2T79u28ePGCVatWoaCgQFJSEjNnzqRt27bf7OPxb6ZNm8aTJ09wdXXFxMSE4OBgWrdu/VWL5IyMDLKysqhUqRLwaamqUqVKvHv37ofa870YGhry/Plzrl69SmxsLHZ2dkLbPqd3794cOXKEadOmUapUKSIjI79Jie/h4YG9vb1MwRqxWEzHjh158OAB165dEzKS/s2GDRuwsbH5qvGTvLw8AwcOxN3dvcjtKnRfP7yHPxgdHR0uXLhAvXr1vjqrP3/+PB06dPhiDvLPwM3NjRIlSghruKmpqZQuXZrq1aszYsQIFBUVkZeXp2TJklSvXp3Fixejp6fH9u3b0dfXLzQH/8WLF5w8eRKxWJwvbUxVVZW5c+fi5uZGdHQ0U6ZMYePGjWhqahIUFMT48eMxNTWlXLlyQkW0xo0bM3LkSK5evcqhQ4eKPRXtv5HDhw/TuHFjQSeioaFBq1atGDt2LNnZ2WhpafHx40c2btxIly5dEIlE7Ny5E3t7e6F2QUFkZGSwdu1arK2tvzjrjY+Px9raWvh3hQoVCAwMLNZzzMPGxobly5fTp08fYSbTqlUrVq1aRa1atWS0Mt7e3rx79466desK2wIDA3FwcADg+vXrzJgxA39/fywtLdHR0WHNmjWMHTuWadOmFXj8nJwcmjZtSvny5Vm+fDnKyspcu3YNW1tb3N3dcXd3x8TEhIiICFq1asW2bdtkOvu0tDQcHBzo0qULtra2iEQioqKimDNnDkZGRn+Ej/ypU6do2rSpEDnR0NCgYcOGnD179oc7eiUlJY4ePUpwcDDPnj3DwsKiSMs8JUqUwMLCAk9PT9q1a8eLFy94/vy5zH33q5GXl//q7yUvL8/p06e5ffs2iYmJ1KtXr8h+JvAp9N+pU6d820UikVA+t6COPisri23btjFjxowiHads2bKYmJgIy1rfy391R1+yZEnKlSvHxo0bcXFxKTRt6cqVK9y7dw9fX99f3MJPN8bo0aMZPnw4ERERBAcH07lzZ6Kjo3FxcSEnJ4fKlSvj4OBA/fr16dy5M5s2bcLR0RF3d3c6d+6MjY2NkBqXmJjI9evXOXfuHKVKlSI1NbVAFbpIJCIjIwNLS0u2b99Ojx49sLW1RSKRcOrUKY4ePSoz49LQ0EBBQYG2bdsSEBCAqanp/6RBx7egoqKSb90zPT0dJSUlVqxYgZycHCEhIQwdOhRLS0tMTEyoVasW586dw8nJCVNTU5o1a4aFhQUikYikpCRu3LjB1atXadGiRb7O6t+0bNmSXbt2CWVyT548+UUjnh/B2tqa0qVLy+g8zMzMcHZ2Ztq0aVhZWaGjo8PTp0+JiYlh8uTJwuA7OTmZ+/fvc+jQIa5fv46zszPa2tp07txZsG5u27YtkyZNYsCAAQUuVZw9e5bs7GyZ9FhHR0fevn3L5MmTmTdvHrq6umRmZjJ37lyOHTtGly5dhO8fP34cPT09GjduLGzLS4/s0qULQ4YMYe7cub/VaKegOgkJCQn5ylv/CKampkXyQPicEydO0K1bN/r160e5cuU4ePDgH2dFXRAFTYKKipaWVqG1BRITE/NFp6Kioli7dq3QYRcl5z+PKlWq/HBH/8em1xUXR44cEWxjL1y4IIQXJRIJfn5+wrrl9evXvyqg+FmEhITg6uqKnZ0dzs7OWFpa4uHhwe7du9mzZw9OTk5cv34dd3d3dHR0iI6OplWrVowaNQp/f3+GDRvG5MmTmT59OmPHjiUkJIQKFSqQlJSElZUVN27cyHfMqKgoEhMTyc3NJTc3V7jhxWIxHTp0QFdXFy8vL8LCwpBIJJw8eRIlJSVBiFezZk3atWtHbGzsL75a/zn07t2b27dvExAQgFQq5dWrVxw9epSePXsKOojKlSvTqFEj9uzZI3yvfv36hISE0LNnT44cOUKvXr3o168frq6uiMViTp06xe7du7+abz9hwgSaN2/O6NGjGTFiBNbW1syaNeunnKtIJGLMmDGcP38eiUQibLe3t2f16tUYGRkhlUpxcHDAw8NDpiO4dOkS7dq1o3Tp0ixatIju3bsTHx8v49tesmRJDAwMBIOUp0+fyhzfz88vn0kQfLKLLVmypGBx/Pr1a3Jzc5k5c6bgygcQERFR4Mu3UqVKaGtr4+/vj729/S8V6/6b0aNHc/bsWXx8fIiNjeXs2bMEBQV9U9XCn4Genh537twhOzubyMhIITKTR3JyMqdOneLw4cP50iZ/FKlUSlhYGCEhITL33feSmpoqFFEqV64cgwYNKtBCvH///ly8eDGfUC4mJoaAgACZQWRERAS1a9fm8ePHaGtrk5GRwalTp4q8vFEcRmT/9R29iooKJ06coESJEnh7ezNkyBD69+9Pr169OHHiBCNHjuTJkyc/vVDGo0eP2LdvH9evX5fJ7Q0MDKRu3bpER0fTt29fevXqxZs3b4R1VDk5OaytrZk5cyaWlpYsXLgQVVVVwTVp4MCBKCgoULlyZd6+fUtubi5JSUm0bduW8uXLk52dzZUrVzh16hTp6emCQ9qSJUtwcnLixYsXBao65eTk0NLSYsaMGfTq1Yt79+4xd+5c2rdvz4ABA1i7di0KCgo0bNiQ+Pj4n3rt/lMxMjLi8OHDgvI7T1BTo0YNmc/lmdp8jrq6OiNGjODZs2ekp6cTGxtLamoqu3fvLnJYVE5ODg8PD1JTU0lLS2Pz5s0/tdRrr169UFFRYf/+/TL3uIaGBq1bt6Zr1640aNBA5sV17949bty4QZ8+fZg3bx6PHj1CV1eX8uXLC+Vs4VPI8/Xr1xgaGhIVFUWjRo2EfGj45HAZFRWVr00pKSl8+PBB0KOsWbOGxo0b07ZtW06cOEGDBg1ITk6mVq1aPH36NF/e/aNHjzA2NsbFxUWoOPm7ePPmDZqamqxbt46pU6cSFhbGjRs3ihxyfv36Ne7u7owaNYpz5859sWN89OgR9vb2WFhY4OrqWiQ/+X8PsnJycnBzc0NXV5c5c+awdu1aGjVqhK2tLa9evSpSm79ESkoKzZs3p06dOjRo0ID69ev/0LsoNzcXBwcHfHx8cHV1Zfr06SQkJNCgQYN8OfY9evSgQoUKLFmyhEePHvHu3TuuXbvGggULWLBggYwIdcWKFdSrV4/GjRtz8eJFqlWrRmxsLDNmzChSFLk48vv/Z+rRlyxZkqVLl6Kurk54eDgHDhygRo0atG7dGkNDQ+rVqyfcqE+fPiUiIoJ69eoJIZikpCRGjBiBt7c3ZcuWZf369UV+4a5evZr58+djYWFBeHg41tbWHDp0SMgfrlixIkFBQYKXvZWVFY8ePWL+/Pkya5tSqZR58+YhEomYOnUq9+/f5/Dhw7Rs2ZKTJ0+ioqLCxIkThZlJcnIyO3bswNfXFwUFBbKzsxGJRCgqKjJgwABsbW35559/8PPzo2PHjrRu3RqRSMT9+/fx8PCgTJkydOzYkYYNGxY6qty9ezfa2tq/NZ/+T0cqlZKRkYGSkhJVqlTB0dGRevXqAQh55nv27Pmlee8/iw8fPtC0aVNKlSpFr169ClW55w1Az5w5g4GBAeHh4dSvX5/g4GChGuTq1atxdHSkVKlSnDt3jooVKwpFjEJDQ1myZAlRUVEoKyuTnJyMsbExzs7Owhp7cHAwq1atYuDAgWzevJnMzEwWL14sPB9SqZQ1a9bQqVMnxo0bR926ddHQ0KB79+6oqqri4+PD3r17mT17Nrq6uvj4+PDy5UvOnTv3y65nHv7+/jg4OODi4oKpqSk+Pj4cP36ckJAQGVe3vMH8v7MFzp8/T69evbCxsUFTU5M7d+5Qt25d9u/fn6+Djo6OpkaNGnTs2BEjIyNOnDhB6dKlGTVqFCVKlKBWrVpfzV6AT3UbHj16xNChQ4W00pycHC5fvsyFCxe4d++ejFDu4MGD/PPPP0ilUoYNG/bVSIWLiwvPnz9n2LBhiEQi9uzZQ4kSJb57MHbu3Dmhtv3nivnNmzfTpEmTfOvqWVlZbN26la1btxIXF0f16tWZMGGCjEmbj48PnTt3Ji4uDiUlJXr27ClYkufdn+vWrSs0dTQ7OxtXV1c+fPjwQ/Xo/2c6eltbW7S0tHjz5g1hYWFUqlSJ7OxswsPDUVFRoWTJkhw8eJB58+bh6+tLxYoVef36NatXr2bAgAFCreB27doREhLC/v37efjw4VernoWEhGBtbc38+fMpXbo02dnZLFy4EDc3N7p27YqmpiYVK1akbt26gqnHtm3biIiIoEmTJvnWVAMDA1m9ejVZWVmUL18eExMTYmNjiYmJYeHChQU+gHkz9tzcXNLT01myZAkWFhb06tWLnJwctm3bxu3bt1FWVkZeXp6UlBRatmzJ/fv3Wbly5RfXgZOSkpgwYQKhoaH5Stv+COfPn2fFihW8efMGKysrpk+f/s3+AT+Ld+/esWDBAmFm6erqWuQc7zt37uDo6Ej16tXR0NDg/v37dOzYkfXr1/8RWQzFQUpKCmZmZiQkJFC3bl2aNm1K2bJlkZOTIzExES8vL27dukW1atWIiorC0tKSunXrcvHiRe7cuUNGRgZqampoa2sLM7QOHTrQtm1bmes8d+5cVq9eLYieHj58SI8ePfj48SPKysqCq+Tq1au5desW5cqVY+XKlTJt9fX15fHjx8ydO5fIyEjGjRvH+/fvyc3NpWrVqvTo0UMQpfn7+3Pv3j2uXbv2i67k/2fUqFHEx8fLeD+sWrWKESNG0KdPH/z9/XFzc8Pb2xuRSIS6ujoNGjRg5cqVGBoaYmhoSP/+/YVnKCsri5kzZ7J582ah48njwIEDrFu3jjFjxgCffs9hw4ZhaWlJRkYGERERdO/encmTJ2NkZFRge/PElXnCyH+zf/9+KlSoIFQiPHDgAOPHj6d3796IRCL27t3LkiVL6NOnT6HXpEaNGnTv3l34fd69e8eyZcuIiIj4hiv7/5k5cybPnj3LV3vk/v37PH78mAsXLnzT/i5fvkz37t2FSNbIkSNZvny5jOB7yJAhLFmypNB355UrV3j06BG+vr4/1NH/14fu85g6dSpXrlyhTp06bNiwAXd3d+bNm8f69etp0KABKSkptGjRgqioKFavXi0U2xg7diyhoaFcuXKFQYMGUaFCBWxtbalWrRrXr1//6nGDg4MxMjISwmsKCgpUr16dJ0+eCC/2tLQ0OnXqhIKCAqqqqgwYMKDAMCR8urlFIhE6OjrUrFkTExMT4uLiqFq1aqGjbDk5OeTk5FBUVERTU5OJEydy8eJFQkNDkZeXp23bthgZGVGzZk3c3NxQVVXl48ePwszoS2hoaGBhYVGkhyA3N5cXL17w6tUrIUR69epVrK2tqVy5suACtWXLFgYOHCgsTaSkpNCoUSMCAgK+eoyfTXx8PHXr1iU8PJwKFSqwY8eObyor2aBBA4KDg+nWrRv16tXj1KlTbNiwodDrnOeMaGRkhJOTE3kD1z8BqVTK7du36dmzJ9WrV6dmzZqMHj0af39/UlNTWbVqFbq6uuzcuZOpU6cyYcIEVq5cia+vL0uXLqV9+/aUK1cOMzMzFi5cSNmyZfHw8ODAgQNMmTKFMmXKkJubi5KSEnXr1s03mPrcaTAyMpJjx45hampKvXr1mDBhAmFhYZQpUwY/Pz/c3NzIyMjIF66Oi4vjzp079O3bl8WLF1OiRAnEYjENGjSgW7duMspzf39/mjZt+vMvbAFkZ2fni6rlRemCgoJo0aIF5cuXR1VVlZYtWzJy5EgUFBSoW7cu3t7eZGdnywyUFRUVqVu3LpcuXcp3LDU1NRISEoRr9eHDB1RVVXFzc8Pd3Z0lS5YQHx9PvXr1Cg09b9++nSZNmhRaP6Nly5bs3btXmIRs2LCBvn37Ym1tTZ06dejXr99XyxHr6OjI2D+Hh4cX6ttQFMqVK1dgmPz9+/dfrEVSEFKplLFjxzJ48GCaNm2KsrIyBgYGPHr0SPhMaGgoYrG4UJ99Hx8f9u/fz7Nnz77tRArgv1p1/zmzZ8+mf//++R5UdXV1+vfvT2ZmJkFBQVSsWFF4oCpWrEitWrW4cuUK8vLyfPz4kdKlSwuudUXxudfX1ycsLIyUlBTU1NSQSCS8fPlSeAisrKwIDQ2VedHLy8sjkUgKVK6KxWJEIhHm5ubCaNfKyopRo0YxZMiQIgk3tLW1qVGjBvPmzQM+pciMHj2aadOmIScnh7a2NmPHji2yyEdDQ4OPHz/m256amsqxY8cEoczx48f58OEDubm5WFpa4u7ujrOzMwMHDqRChQqcPXsWJycnnj59ipubG8+fP2fRokWoqakJ0ZSHDx9+0V3uZ3PgwAEMDQ3p3bs38EltPmrUKJYsWVJks6VSpUoVKTc7L1zbuXNnmjZtypMnT3BwcODq1as/zZu/qGRmZtKrVy/u3r2Lvb09PXv2JDc3l4CAANq3b49IJEJLSwsnJydBOZ/HmjVr0NDQYPHixXTr1o21a9cyadIkmXKcJiYmTJo0ic2bN/Ps2TPOnDnDoEGDZJbXEhISsLGxYdeuXbi6ulK/fn1SU1N5+vQpZ8+eZfbs2VStWpX27dtTs2ZNypQpw9GjR+nSpQtisZi3b99y8uRJBgwYIKO+TklJ4caNG3h4eGBjY0P37t3x8fEhMDDwt3k29OnTh86dO1OjRg309PTw9/fn8ePHODk5MXz4cNq2bUtGRgZWVlZCsZuqVauSnZ3N/v37SU1NJSMjQ6bjTUhIoE6d/JPEli1bMnjwYBYuXIiJiQk3b96kW7duwt+1tbXp2rUrlStXxtHRkcDAwHxC5sjIyALz1/MoVaoUubm5pKSkoKmpiVQqlQmXi8XiQqsY5rFs2TKaN2/O27dvkZOTw9vbmxMnTnzxO1+ie/fuzJw5k0ePHgk6mqioKC5cuMDp06e/aV/h4eG8f/9e5jnt3r07S5Ys4eXLlygpKXH9+nVUVFS4fv06tra2KCsrI5VKefnyJVevXuXBgwfY2dnRs2dP4X3zvfxPdPSBgYFERER8sVZ6x44duXPnTj6FZVxcHJcuXUJBQYGZM2fi4ODAixcviIuLK9AI5N9UrVqVwYMHM2vWLGrWrEl4eDiampo0atSIhIQEtm7dKijj7ezskEgkHDlyBH19fU6cOEH16tVl9peRkUFmZiaamprCtryZ/Le4ANrb2yMWi7lw4QIaGhoyD9mgQYMIDAwssir048ePaGtrk5OTw8GDB9m2bRsvX74kISGBypUrY2pqSkBAAJUqVWLmzJlIJBLWr1/P+PHjadWqlZBPPXjwYEaOHImSkhLR0dGcO3eOWbNmCWlRe/fupWPHjkUqPPSzSE1Nlbn2SkpKqKio5DOLKQ4WLVpE+/bthdBqxYoVycnJYdGiRTJCtN/BkCFDiIyMZPHixTI2qaamprRs2RJ3d3eOHDmSLwyalZXFkydPqFmzJqGhoURFRVGtWrUCa26LRCJ69OjB6NGjiYiIYNGiRdSoUYO3b99y9+5dhg8fzv3795kwYQIzZsxg9+7dKCkpMXHiRMqXL8/z58/ZsWOH8NuMGTMGDw8Prl27hrKyMklJSfTq1StfipWamhqOjo40btyYefPm4eXlhY6ODpcvXy7WVLZvoVGjRsyfP5/p06eTmppKxYoV8fT0pHTp0ly+fJmlS5eyd+/efMtbZmZmPH78WEi17NOnDyoqKjx48ABfX18hgjhkyBDBVOvVq1fk5ORQu3ZtUlJSGDFiRIHLZlZWVgQFBbFu3ToWLVok87e8+hmF8eHDB8RisZCuOHjwYGbMmIGcnBwikYjdu3d/1SimVq1a+Pr6cvDgQXJzc1mwYMEPLe+VKlUKT09PunXrRsmSJVFRUeH169csW7YMMzMzLly4gKamJvXq1fuqc2Vubq5wLnmYmJiwePFizp8/z40bN/Dy8qJPnz6cOnWKnTt3oqioiFQqRUdHh/79+/PgwQN69OhRLALa/4nQ/b1796hevfoXfxwdHR3U1NR48eIFAQEBxMbGsnnzZkJCQkhJSWH27NkMGjSI1NRUjI2NadSoES1atGDChAns27evwBSMPBYvXsz27dtp3LgxTZs25dWrVzg4OKCvr8+yZctQUFDA09NTsHANCwtj0qRJhISEkJSUJLMvHx8f6tWrh5eXF0+ePCExMZEdO3Zgbm7+TWVmdXR0iI2NFYqK/Js+ffrg4+Pz1ZSVDx8+8OzZMxwcHOjYsSMLFy6kVq1aDB8+HEdHR8LDwzEyMkIkEtGsWTOhXGjDhg358OGDTDhWJBIhJydHcnKy4AVdsWJFgoODuXHjhiDWevjwYZHPs7hp2bIlt27d4unTp2RkZHDixAlKlSr1U/KGnz9/ni+n2dTUtNhTlL6VkJAQTp8+zciRIwv0QtfS0sLNzY2zZ8/K2NxKJBL27t1L/fr1qVSpEgoKCjx9+vSLDo8aGhro6+uzePFiNDQ08PT05N27d7Ru3Rpvb28cHByoXbs2b968IScnh4kTJ2JsbIyqqipWVlbMnz+fx48fEx0djba2NnPmzMHKygplZWU2btwo4xVR0LHHjRuHRCJhz549QmnT38WQIUOIjo7m7du3vHjxQhBv5lnWGhsbc+/ePZmZ8K1bt2jYsCHbt29HR0dH8OzYu3cvysrKlCpVColEQocOHdi3bx8A69evp2nTprRp04auXbt+sfNs3rw5W7ZsISsrS2b7wIEDuXnzZr7teVy+fFkmzbR///7MmTOHixcvcuHCBdzd3fOVdy0IY2NjZsyYwaxZs4pFw2NnZ0dERATr169n/vz5REZGkpycjL6+PtOmTaNXr16Ympry5MkTnj17xokTJwrMIDA0NKREiRL5wu6lS5dGVVWVLl268PbtWyQSCR4eHuzYsQN3d3dyc3N5+vQpgwYNEszSioP/iRm9SCQqUo6lRCJh9uzZ7N+/n4iICDIyMnBxcRFcp3R1dWVCXfXq1WPWrFlUrlyZ4cOHY2lpSWpqKtnZ2XTs2JGJEyeioqIiKO3Lly9P48aNBee51NRUNm3ahEQiYfr06YIyu2zZskIls8/bnZ6ezunTp9m5cyfp6emMGzeO6Oho9PX1mTRp0jddk6955VtbWyORSLh8+XKhLlNSqZSjR4/SvXt3Tp48SWhoKDNmzBBuThMTE2rUqMHSpUtRVVUlMDAQc3NzpFIpfn5+aGhocP78eQwMDITQvZGRERUqVODy5cvo6+vzzz//8OzZM6pXr86FCxeQSqWsXLmS6OhoNDU1GTx48C91LatZsya7du1i5MiRxMTEYG1tzcWLF7+54EpRj/X48WOZim2PHz+mZs2axX6sb2Hbtm00btxYsO4tCF1dXfT19Rk7diy2trYoKChw9+5dpFIpSUlJaGtro6OjU6jpCHy6Rx8/fkxcXByDBw8mJyeHOnXq0Lp1a8GsKTAwkHXr1hETE4ODg0O+e1pLS4t69eoxc+ZMbGxsePPmDeHh4SxduvSL7c/KymLLli08ePAAeXl5WrduzeXLl3/7kkle2uvndOrUiStXrtCpUye8vLxYuHAhNWvW5NGjR4SHh3Pu3DnU1dU5cOAAiYmJREdHY21tzYABAyhZsiRmZmaYmJgwZcoUevbsyd27d4tsBV6xYkWUlJR48+aNoGeQSqWoqqpSs2ZNVq5cyfDhw4UoWG5uLtevX+fWrVvcu3dPZl+DBg36Jr3Lz0JBQUFQzl++fJkVK1awcOFCypQpg1Qq5fr169jY2KCgoICxsTHBwcG0adOGHTt2CO8+sVjMkiVLGD16NIMGDaJGjRrk5ORw48YNrly5wp07d7h37x5lypRBLBajqKiIgYEBioqKpKeno6urS4UKFbh165aMidP38j/R0Tds2JDp06d/MbQdFRVFbm4urq6uTJo0idmzZ3P79u0vWkvq6enRr18/7ty5I4jinJ2dUVBQ4PLly+zbt4+UlBTk5ORISUnB0NCQZs2aCbM0VVVV+vbty6RJk7h06ZLMOsytW7eoUKGC8FCnpKSwbNkyEhMTsba2pmTJkrRv3x4XFxeSk5OLlO7yOV9bQ/v48SMpKSkcP36c7OxsHBwcZGZvycnJHD58mJiYGI4fP06bNm1o3bp1vutrYmKCnp4e4eHh+Pj48OzZM7Kzs0lKSqJ8+fJs27YNNzc3YmNj0dHRoV69emhqaqKoqMilS5cIDg5m2bJlKCkpkZOTw6RJk/Dy8qJLly4kJiYyaNAghg8fzvTp07/p/H+Edu3a/VDBlaIyY8YMbGxsyMnJoUqVKjx9+pTr16/j4+Pz04/9JV69elWkCIapqSlOTk6UKVOG5ORkbt++jaOjI82bNycnJ4etW7fy4MED7t27l8/b/+PHjyxbtoysrCw6dOiAqakpubm5BAYGsnTpUqpWrcqwYcOoWbMmderUITg4uNACNJqamvTt2xdjY2OWL1+Onp4eu3btwtTUlCZNmhT47Bw7doy0tDQ2bNiAsrIyt27dom3btoSHh/9UL4Lvwd3dnXr16pGbm8uQIUMIDAzkzp07REdH4+3tLaPyVlNTY+nSpWRlZXH16lWysrKIjY2lR48evH//Xlga/JZzVFRUFIyEAgIC6N+/P+/evUNVVZXY2FjGjBlDjRo1UFFR4dmzZ+jr63Pz5k2Zpc+8gdXFixfR19dnzJgxP63S4rewYcMGHB0dBZGfSCQiLi4OAwMD3NzckJeXJysri+XLl7NmzRqZ5eGuXbsiLy/PzJkzWbt2LTk5Odja2nL9+nVMTExQVlbG1dUVX19fzMzMOHfuHObm5mhrawvpgi1btiwWx9b/idC9hYUFJiYmhabFSKVSTpw4wZAhQ1BSUiI3N5dNmzYVWpTgcxo2bMirV6+IiIhg5syZwnrjyJEjEYvF2NnZsXr1alavXk1sbGy+l4q6ujqZmZk8efKEJUuWcP78ecEVz97ensDAQLZs2SIUm9DW1iY6Olr4/qBBg7hx48Y3u0LduHGDoUOHFvr3iIgIdHR0mDNnDo8fP2bEiBFs3ryZAwcOsHLlSkaPHk3ZsmXx9vZGQ0ODuLi4QhWvZcqUQUVFhU6dOtGpUyd69OiBubk5YWFhGBkZCR171apVkZOT4/3796iqqnLp0iX09fWFmZe8vDyNGzemWrVqWFtb07x5c2bOnMmSJUuIiYn5pvP/T8DMzIw7d+5QsmRJLl26hLa2Nnfv3i1wPbsoFGSF/D2UKFGiSJqE9PR09PT0mDRpEmXLlqVKlSq0bt0aBQUFVFRUGDVqFOrq6gQGBvLkyRPhexkZGSxYsIDq1auzdOlSHBwcMDAwoHLlynTu3JnVq1eTnp7Ohg0bkEqlQidXUEaCRCIhICCAtm3bsmfPHuTl5bG1taVhw4a8efOG8ePH8+LFi3zf8/HxoXv37qioqCASibC1tUVNTa3AQVbeLK9jx46UL18eLS0tdHV16du37y/JkqhYsSL37t3DyMiI9evX4+XlRbNmzQqM/kyfPp179+6xZs0aZs2axYIFC5g2bRqHDx+mdOnSKCsrU7FixUKzfv5NRkYGcXFxlCtXjtjYWBwcHLC1tcXDw4PFixfj7u6OpqYmjRs3ZsCAAVy8eBFfX1+ZYjAAXbp0YevWrRgaGhIdHS0s0/0IycnJzJgxA3Nzc6pWrcq8efOKZPzzOTExMfneaz4+PvTs2VOY1CgqKtK+ffsCvUQ6depEUFAQYWFhxMTEcOnSJUF3ValSJU6dOsWlS5eYMmUKmZmZnDlzRljXz9OxfGu0tiD+J2b08Cndw9bWloyMDFq0aIGKigrwKV0qL6Q1c+ZMYVt6enqRvNzzyiH+ez0l7+WQl9OppqZG+/bt8fT0xN7eXpgdX7p0CVtbW+Tk5PDx8RGEMObm5ty/f5+XL19SrVo1li9fTlhYGHfu3JFpl7W1NTo6Ovj5+RXZwOfNmzdERkYWWJQhj0qVKhEXF4eamhpTp07l3bt3BAQEkJ6ezocPH5g5cyZTp04VPl+rVi2ePHmS75pJJBKePn1Kx44d2bdvH1ZWViQmJhITE0NGRgZNmjTB2dmZcePGyYS/O3XqREBAAGvWrOHBgwfUqVOHJ0+ecPXqVRQVFUlOTqZFixaYmJhQtWpVbt269cXz+U/FxMSETZs2/dA+du3axdy5cwkNDUVXV5fp06czdOjQ787bb9euHXPmzPnikklWVha3bt2iZMmSDBw4sMAoQJ45lIKCAsuWLcPOzg5VVVVevnxJ6dKl6datW4FtVFRUZMyYMUycOJGXL1+SlZWFsrIyDx48wNTUFFtbW8RiMZmZmezZswd9fX22bdtG2bJlcXNzE/bZoEEDAgMDWbFiBWvWrJHRuMjLy5OdnS1z3Ozs7Hwz3WfPntGpUycyMzNp2rQp06dPR1lZmbS0NHx9fWnXrh2GhoYcO3bsm1O0voUKFSrg4eGBh4dHoZ9JTExk48aNLF26VGaWb2BgwNChQzl69CgikYjBgwczf/78IvnA51VaLFWqFEuWLMHS0lIm1Kyvr0/v3r25efNmvnrvOTk5PH78mIcPH+Lr68uqVauEd6icnBwrVqz47ns/JycHe3t7lJWV6du3LxKJhDNnznDz5k0uX75c5Hu/SZMmPHjwQMbNsqDIcF6qY0GIRKJCM4VsbGx4/PhxoccvUaIEXbt2lcl6+B7+Zzp6MzMzbt++zciRIxk6dCgmJibk5OQQGRmJvLw8Z86cEWbbeYrJoiInJ1fgWmN0dLTMelqjRo3YsWMHkydPxsrKivfv3xMZGUnp0qUxMjJiy5YtKCoq8vTpU9asWYOXlxdpaWl07NiR8ePHo6GhwcmTJ/OFKJctW0a3bt2oUKHCV/36ExMT8fDwYMGCBQUKqfIoWbIknTp1Yvfu3QwdOpRy5crRunVr/P39uXz5cr70sPHjx9OyZUuqV68uvNDz1vA1NTVp2rQpFhYWPHr0SBgczZw5k379+sl4muchEomoXbs2M2bMYO7cuVhYWBASEkKnTp3Q19fn1atXrFixAmdnZ2JjYzl69CiLFi1CU1OTgQMH0r179yLVdP9vZ//+/UybNo1hw4ZhZmZGSEgICxcuBGDYsGHftU8nJydcXV0JCAgodM36zJkzKCoqEhMTQ+vWrQXb5M9T7SQSCU+ePOHAgQM0btyYmTNnUqtWLd68ecPYsWO/+DJWVFSkRYsWXLp0iaysLBISEtDW1ubQoUMcOHAAbW1t3r17R/PmzVm9ejUNGjRgzZo1+faZ50Xh4+MjI8xr0qQJe/bsYdSoUWhoaHDu3DmkUqnMvRoUFETTpk3p0qULTZo0kdm3hoYG7du3p127dpw8eZL69etz586dbypm8qPkiUVDQkLIysoiPj5e8P7/N5aWlqxevZrk5GQ6dOjw1d8XPi0nnjt3jm3btgGfDIsKKohTpUoVNm/eLPw7MzOTpUuXsnHjRiGCqq2tLdN56unp/VClxTNnzpCcnMyECROE32XMmDFMmTIFLy8v7Ozs8n0nL6f/83f/mDFjsLKyYs+ePdjY2JCYmAjAyZMnGTFihKD/On/+vIy//Z/G/0xHD58Umjt27MDExARHR0eUlJQwMDBgxowZBAYGMmfOHF6+fEnZsmXJysoiJibmq+k0EomEiIgIsrKy8PHxoWHDhohEIp4+fcqNGzdkRrG+vr5Uq1ZN6MQrVqyIkZERXbt2ZerUqULHVLVqVVq0aMGGDRvYsGEDkZGRJCUloaGhUeDLr3nz5qxcuZLx48fTv39/rK2t83VyUqmUp0+fsnXrVoYOHfrFsH0e69evp3v37ri6ugr+zAkJCZw5cyafIMja2poVK1YwbNgwqlevTpkyZXj06BGqqqpMmjQJkUhE2bJlhVSx9evXU758+QI7+c8xNjamWrVqPH36lJUrVwoOUlWqVMHa2prJkycjlUpJTEykbdu2JCYmMnXqVKZOncqAAQMYN26cTDpcXlGeGzdukJycjJaWFo6Ojl+tdf6fyvz58xk4cKAQKjU2NmbYsGEsXLjwuzt6BQUFjhw5gqOjIx07dqRJkybC8kpSUhJnzpzBx8eHpKQkhg0bxty5c1FWViY1NZWdO3fSsmVLsrKyOHnyJMbGxujp6dGmTRvmz5+PlpYWrq6u+UK7BWFlZcWZM2fQ0NAgNDQUb29vgoKCSElJoXr16tjY2KCnp8elS5eoXLmyEMX7N9WqVSMsLExmm5OTE2lpaUycOJGsrCxKlCjBgwcPhE4gMzOTNm3a0LNnT2xsbAptY16NcpFIRIcOHfD19f3pDojv379n6dKl7NixAyMjIypVqoS8vDwfPnwQhIiOjo5UrVpV+E52djZSqRQFBQUUFBQ4evQo7dq1Y9CgQdSpUydfm+Pj41m9ejWdOnUSitgYGBgQFBSUrz3h4eHCBCQjI4OWLVuSlpbG2LFjMTAwIDExkbFjx/Lu3TvKlSuHRCLB29tbxgXwS6Snp3Pw4EGePXtG/fr1cXJyEjKtPm+3nJwcNWrU4P79+zIdfWpqKqNGjeLgwYMAODs7s379etTV1dHR0cHX15clS5awc+dONDU1mTFjBnv37mXGjBmYmJjw/PlzKlWqxOTJk4v4C/16/qc6eviU6qagoMDZs2exs7Pj/PnzKCsrs3jxYjp06ICjoyNRUVGEhobmE8gVhL+/P1KplNzcXPbv38/x48dRVFQkLS1NqBtfu3Zt3r17x927dzl79iz169cXclZPnz6Nrq5uvo65QoUKQtqGSCSS6az+jVQqxczMjD59+nD8+HH27NlDs2bNqFChAmKxmJiYGLy9vYUQaVGNcDIyMpg6dSqJiYmCWM7e3r5Qoc6AAQPw9/fnxo0blC9fnoYNG2JmZpbvJZGWloafn98X7S0/R0NDA1tb23w2keXKlRPUrP369RO216pVi/Hjx3Pq1CmOHz+On58fCgoK7Nmzh3nz5pGdnU3t2rVRVlYmJCSEDRs2oKury4IFC/6IuuPFSUhISL5ZVuXKlYmMjCwwFF1UGjZsyLVr15g6dSrDhg1DV1cXkUhEZGQk1tbWODk54eXlhZycHM2bN2fXrl14e3sLzmry8vL06tWLmTNnsm7dOiHl7uPHjygoKBSpM8wLr9+4cYOSJUsWaM4Dn3QweTOxgkhKSso3CBCLxfTs2ZNu3brxzz//4OjoKFP46tixY5QuXfqLnfznODk5MWnSJO7evfvDteO/xNOnT3FwcKBGjRrMnj1bplYGfPKfv337NmvWrKF9+/a0bt0a+KTZadasmbB8YWNjw9mzZ+nduzeenp7Y2tpSpkwZMjMzBbOeiRMnyohgBw8ejJWVFfXr1xeEdCkpKRw6dEiw080TRU+YMEF452lqatK7d2+mTZtGlSpVCA0NxcjIiNGjR3/1fBMTE7GxsUFFRYXKlStz6tQptmzZgpOTE97e3vk+//bt23xLSEOHDiUyMpK1a9cK9rtDhgwROv68ZZHPGT16NFeuXOHZs2f06dMHc3PzP9rC+r+6ow8ODqZmzZooKSmRnZ1NVlYWUVFRLF++nOvXr+Pv78/z588Ri8UsX75csCIsX748Ojo6TJ8+nbp16xZan/njx4/s3r2b/v37M3jwYM6fP8++fftITU2ldu3a9O/fn+TkZG7duoW1tTX//PNPPqW7lZUVz58/F5zz8ggMDCxSpxMaGkrHjh2JjY2latWqlCtXjqCgICIiIkhNTUUikVC+fHl27NiBnZ1dkW7GtLQ0Ro8ezZEjR9DV1SU2NhZDQ0N27Njx1Y5hzpw51KtXj7S0NExNTfMdLy97QEVFpchlgeXk5AoV+uno6ORbL1NWVqZp06ZkZWUREhLC2bNnuXfvHnv37mXgwIFUqVJFpl09evTAz8+P3r17s3Dhwi/m78bGxgrCQ21tba5fv05YWBiGhoY0adJEZsCWnJzMnj172L9/PwkJCZQtW5aBAwfi7OwslPy9d+8e586dE4qpFHepZHNzc549eyYjynrx4gUGBgY/rB6vWbMm58+fp27dupQuXRpvb2+MjY1JT0/nyJEjwgynXLlyeHt7U6ZMGTZu3MjGjRuBT9dnzZo15dhAXwABAABJREFUHDt2TPBMV1NTIycnh7i4uK9WZQsLC6NmzZoYGhp+8XN169YlOzub58+f54sUZGVlcfPmTdzc3Ar87qNHj3j27BnHjx+X2e7h4SFTvORriMVimjVrxpo1a35aRx8ZGUnz5s3p2LFjgaFp+PRsNGvWjOrVqzN37lzk5OSEMtT/Fis3aNCAly9fcu3aNXbv3s3Dhw9RUVGhW7dunD17Np91q5GREbt27aJ///4YGBigqqrKo0ePGDBgAC4uLqSmprJ9+3bmz5+fb2Jjb29P7dq1efr0KWpqapibmxeaRfE5GzZsoFSpUkIYvX379syePRstLS2Cg4O5evUqTZo0QSqVcvHiReLj42nfvr3w/fT0dDw9PVm/fr3gdNqvXz9GjBiR7538OWKxGHt7e3bt2iUY6WRmZnL27Nnfnv5aEP/VHX2ekCE2NpbLly8TERGBpqamsH4GMHHiRGrXrp3vps3zcF+wYAHdu3fHzs5OuPFycnJ48OABhw4dYtSoUdSoUYOGDRtiaWmJg4MDampqREVFMXv2bCQSCYcOHeL8+fN06NCB9PR0bGxsGDt2LBYWFlSoUIGBAweyePFiOnXqhJaWllAH/t/h9YiICFauXMnt27fR09OjXr16zJs3DycnJ9q2bSs8PHFxcSxevJh+/foVKUT/b3r27CmE5tTU1MjNzeXGjRs0bdqUR48e5ZslfI62tjZeXl506NCBSZMm0aRJE/T19cnNzcXf3x8fHx/hBVmYmca/0dPT48aNG/lma1KpFF9f3wIjA1KpFJFIRMWKFTly5IgwmyzIV1osFmNtbY2uri5Tp07FxMQkXyW527dvM3v2bO7evUvJkiWJj49HQUEBdXV1zMzMCAsLQyqVcvz4cSE86OjoKJgrlSxZkpiYGFatWoW7uzsXL15kxYoVnDp1ShgYzZs3j927dxc4K/1e3N3dGTlypFA7IDg4mO3bt7NgwYJiO4aJiQmKioqsW7cOPz8/cnNzGTZsmPCSLCiVMzU1lQYNGqCtrY26ujq3bt2iY8eOgir+ypUrdO/e/YvHvXbtGhMmTPhq+/KEXSNHjmTw4MFYWloiEomIjo5m27ZtVK1aNZ+IVCqVcufOHXbv3s3Zs2dlxFRpaWkEBgYyduzYol2g/6NevXoybm9Hjx5l9erVpKam0rNnT8aNG/dDBimTJ0+mQYMGhXbyn1OmTBkmT57MlClTaNKkCdeuXSvQEEgsFtO8efMiZSDBp8hFZGQkly5dIiUlhSZNmgiFv65du4aBgUGhg/aSJUtiY2ODsbEx8+bNEwaEX+Lu3bvUqlVLGLjnheefPn3KlStXGDx4MAcPHkQikVCrVi2uXr0q458gkUiQSqUy1z3v/7+WybRy5UqCgoJYvXo1SkpK+Pj44OTkRFhY2B+nD/qv7uhVVVUxNjbG2NiYBg0acPPmTbZt28bDhw+xtLQkMjKShISEfDeet7c3O3bswNjYGHl5ec6ePcvhw4epVKmSkEdpYmLCP//8g6amJh07dmTSpEkyeZ8mJibY2dlx9uxZGjRoQM2aNWnbti0lSpQgMDAQW1tbtm7dSqdOnVi5ciU1atRg06ZNJCYm0qpVK3bs2CETqg4NDaV+/frUr1+fVq1aERkZyezZsylVqlS+nO7SpUvj4uLC1KlTGThw4De9PIKCgvDx8cHDw0NGAWtvb094eDjr168XPPILo3z58ty9e5e7d++yadMmLl68yPPnz6lYsSKWlpaUL18ekUjEgwcPiuRmlZubS2xsLMePH8fJyUnIXT106BAikUgoKZxHeno6Xl5eDBw4kC1btqCiosLQoUMLLR7xebu7devG/PnzZTr606dP079/f7p27Urfvn2FvGFvb28OHTpEvXr1GDx4MLdu3cLBwYErV67Qpk0bQS+Rh5GREfXr1+fy5cs0btwYOTk5Fi1aJISN7ezsGDBgAG/fvv0ml8Mv0blzZ+BTpbfly5djYmLC0qVLi7x8UxSGDBlCv379sLe3z6fUzsnJ4cqVK6xatUpm+5EjRyhRogQjR45EKpUya9YsVq1aRY8ePbCzs2PevHnUqlWr0FTCq1evkpCQUKAA6vHjxyxYsICXL19iY2PD9OnTBX+LqVOnsnXrVlRUVIiNjRXu7bCwMDQ0NMjIyCAoKIhr164hJyfHlStX8uk3EhMTUVNT+2aTJA0NDcEp8ODBg4wfP55evXqhqqrKnj17iIiIYM2aNd+0zzzi4uI4ffp0vuv8JXR1dYWqmcXp+leiRIkCDXcSExO/uASZh6amZj5H0Dzi4+OZPHmyIEo2NDTkxYsXwlJonld8p06dqF69Or6+vrx79w6xWFyg3kpVVZVmzZpx+PBhunfvjkgk4ujRozRu3PiL7wupVMrp06dl9Ck2Njbs2bOnyEVwEhISWLduHe/evaNx48Z07dr1p4X//6s7+n9jZ2fHy5cvWbZsGTo6OiQlJdGhQwdevHghiMTS0tLYsWMHc+fORVdXl9zcXObMmQN8ulEXLlworD3Dp7XK3r175zN3SEtL48aNG7x48QJNTU20tLSETi2vUtzAgQOxt7dHU1OTAQMGMGDAgELbPm/ePBo3boyzszPwyRugcuXKLFmypMAsAWNjYyQSCRMmTPhiys2/uXnzJrVr1y5wcFCnTh2uXbv21Y4ePukKGjRoQIMGDYiIiMDMzAxjY2MqVqzItWvXUFNT4/nz53Tr1q1QkRQguPMNHDiQq1evcunSJSpUqMDr16+xtLTkwoULODo68vHjR+rWrUtiYiJHjx4FPoX1unbtyo0bN4TfKykpidjYWFRUVIQBx+c0aNCAAwcO8PLlS0xMTEhNTaVfv36CtWoeSkpKNG/enAoVKrB69WrWr1+Pra0tDx8+ZOzYsTRs2LDQdMcWLVoQGBiIVCqVOXdjY2PKly+fTwH+o3Tu3Fno8H8GdnZ21K1bl1WrVtGvXz8h4hMbG8uePXswNjYW1oLzSExMpFSpUohEIkQiEdOmTWPkyJEsWLCAlJQUqlatyooVK2jdujVNmzYVxJ95s8WgoCAuXbpEUlISampqwnV8/vw5TZo0wdHRkfbt/x97Zx1WZbq9/8/edAiCiSCiYiCIRdmChd2dODqKKIrd3S0qiond3QoKBoqoiC3SLSBI996/Pzy8P7cbFB3nfGfmzH1d5zrjZr+53/dZz7PWve67B35+fjRv3pznz5/Ts2dPevToQUhICDk5ORgbGxMZGcnWrVvZvXs3qampqKmp0bBhQ3bv3o2trW2xA6+Ghobg+/4jA3NOTo6QFVy3bh0jRowQWO36+vq4uLiwZs2ab07y3NzcWL58OQkJCbRv3x53d3eqVq2Kh4cHlpaWPyyc1bZtW7Zt28aECRN+aLsiFCkdFunWf+t+FMlufw8JCQnFlm0kEgnt27enUqVKLFy4kKysLPbv3y9IydauXZsnT54gFotlWm2/lYEE8PDwYPDgwUInkYWFBUePHv3mNuPGjePFixeUK1dO4Gl8/PiRnJycYrsavkbReGVoaIiBgQGzZs0iMDBQ6Ij51fifCvQAnTp14s6dO1y+fFlI19WsWZMnT57QpEkTQkNDMTAwENJNRTP+gIAArly5wtWrVxk3bhwxMTGULVuW4OBguZckNTWVhQsXCun1GjVqcOHCBSpXrizU3WvUqEGtWrXYu3cvLi4uJZ5vUFAQFy9e5PLly3J1RGNjY5SUlPjw4UOxbTsqKirs3buXadOmfVMF70sU+XgXh+zsbLlBKDExEWdnZ65evUqFChWYM2eO3IRl3bp1tG/fnp49e/L06VMsLCw4deoUtWvXZvPmzUyZMqXYVj+JRMKePXtIS0ujUqVKzJ8/n5CQEM6ePUvt2rXx9fXl5s2baGho8PDhQ16+fImKigqVK1cmKCgIQ0NDCgsLadKkCXFxcRw7doyXL18KSm0aGhr06tVLWA3A57atRo0a4e3tTa1atThy5IgwSSkO9erVw9DQED8/P1q0aEG9evU4cOAAq1at+uZ97tSpEzt27JD7PDc395ttj39FiEQijh49ysKFC1m0aBEVKlRAJBLx4cMHRo0axYoVK+Qmora2tixevJhmzZpRo0YNrl27RrVq1Xjx4oWQ9nzz5g3r1q1j+vTpaGlpUVhYSH5+PoMHD8bAwIDmzZsjlUrJy8ujQ4cOzJs3j927d9O+fXu6dOkCfOYorF27ltOnTzNs2DBEIpHMb1m7du0fXkWXKVMGPT093r17993ugJiYGCIiIqhUqRKxsbFCdiA9PV1mdauurk5hYSGxsbFUq1at2GzBhQsXWLlyJc7Ozujp6XHx4kXBPS4wMFCGLFhamJiY8P79++9KYn+NlJQU3Nzc2LFjB8nJyUgkEgwMDJg4cSKjR48utr5ua2vLx48fiYyM/Kayore3N8OHD5f7/O7du6SmpjJz5kxhQuHi4sLkyZNp1KgRwcHB9OvXTxA+Ky0qVKjAzZs3+fDhA1Kp9LsTg8DAQM6ePStYnefk5FC+fHlu3LjBokWLSpWN8/DwQE9PT+h8admyJRMnTiQhIYG8vDx69OjxSyfn/3OBXl9fH7FYTPXq1YXUzKVLl+jevTteXl5UrFiRyMhIsrKyhIf13bt3fPr0iR49evDx40dhIPHx8SEnJ0du9XvmzBkaNGggE/CaNWsm1NCKjmtsbMzWrVuLDfRPnz4VZo0tW7ZEKpWSlJQkE7BzcnJKJIyEh4eTn59PixYt2LFjh0xNNisrS2ij+RrdunXDxcWF5ORkmdJBkfqXk5OTzPd79OiBjo4Oq1atIiEhgblz51K+fHmZckJQUBBRUVFMnDiRevXqUb58eVq3bk1kZCQhISFMnz6dfv36YW1tjZKSEhKJhGfPnnHt2jXU1dUZOXIk69evFwb1zp07s337doEjMWbMGBo2bCizmigoKOD27dscPnwYS0tLFi1aRLdu3XB0dERNTQ2JRMLLly/Zs2cPHz9+lDlfNTU1IcXq6+v73fJCw4YNCQ4OpkWLFnz8+JGCgoLvDhZVq1YlNTVVhnTm5+dHTk6OzMTj7wJFRUWWL1/OvHnzCAwMRCqVYm5uXqKVs7m5OZs2bWLGjBl8/PgRCwsLrl69KhNsTExM2LNnD/Pnz2fbtm3k5ORgZ2fHpEmTqF+/PkuXLqVixYpCqaZDhw7UqFFDrkatp6cnCFf9CohEIiZMmMD58+e/Gejv3r3LwYMHqVu3LsHBwSgqKgoCMP369RPc5rS0tIiJiRG0I1RUVHB0dGTOnDkyk749e/bQvXt3gXzYt29fpkyZwqtXr8jMzJTrSklISMDHx4f09HShHfXrsUosFqOgoEBubu43M2tfIiIigjZt2mBkZISTkxM1atRAKpXy5s0bDh8+zN69e7l165bc+SgpKeHi4iJoiRQXEN++fcuDBw+Krc9HR0ejr68vp1egrq7OuHHjSiVwVoSMjAxmzJjB6dOn0dTUZPLkyUyYMIGXL18yffp0AgICqF69Oi4uLnKky6dPn2JmZoa+vj4rVqwQ2PcGBgYlkjq/RnJyskzJuMhBtCjtP2nSJCIjI7+5CPwR/M8F+oKCAgoKCmReIBsbGyIjIzlz5gzjx4+natWqLFiwgCZNmvDs2TMSExMpLCykXLlyzJs3TxiMTExMiImJkTuGv78/8+bNk/msYsWKmJmZERgYKOh6R0REEBERIVe7ev/+Pe3atUNBQQFnZ2eaNGmCj48Phw4donr16pQtW5aCggIOHTqEkpIST58+lWHUp6WlsWPHDrp164aZmRkbN25k+fLl+Pj4MH36dAIDA1FQUKB3795s2rRJJk1WsWJFZs2axYoVKxg4cCBmZmZ8+PCB8+fPCy1RRQgKCiI4OBhXV1fEYjG6urr07t1bODZ89m+/f/8+nTp1wtnZWa7/Pj4+nkOHDrFnzx62b98usFeLSGxnz54lOTkZU1NTwsLCKFOmDL///jufPn0SBsPi7IIVFRVp3749ZcuWxc3NjSFDhsgQisRiMebm5ixYsIAZM2ZgbW0t1PC+tKJVVFT8rnRskQFRdnY29+7dQyqVynl/f42iCdqsWbMwNzcnPT2d+Ph4Ll++/KcY5Py3oKam9l1thJCQEIYMGcKrV6+QSqUMGDBA4FJ8jYSEBFq1akWtWrUEzfrOnTvLrHbU1NTo2LEj1atXZ/Xq1UilUkFLIjMzE39/f+bMmfNLr3PkyJEsWbKE4ODgYrM9BQUF7Nmzh2XLlmFgYEBaWhrOzs7UqVNH0N6Ijo4WMgOvX7/GwcEBOzs7oqOjOXbsGH5+fly+fFkYb4oY8kWQSqXk5ubi7++Pjo6OTF07ICCAbdu20aJFCypVqsTVq1e5du0ac+bMkVnt5uTkIJVKS80JKSwspFOnTrRq1UrImsDnyU+9evUwMTHh8OHD9O/fH09PT7ntp0+fzuvXr1myZAnt2rVDTU0NHR0dKlSogLe3Nzdv3uT48ePFZiCbN2/OhAkTBE0R+NxOqKqqWuqMZRGGDRtGSkoK8+bNIz09nU2bNhEVFcXu3bvp3LkzQ4cOJSIigsGDB7N8+XIZs5369evz9u1b8vLy0NXVpX///uzZs+ebLoxfw87ODnd3d1q3bi38PioqKgwZMgSxWIyZmRnz5s37rnBUafE/F+iLUvRfP9iqqqoMHjwYV1dXWrVqRWRkJBcuXKB169Y0a9ZMcCj7csVhbGyMm5ubzOofkHOdK4JEIhF+tLi4OAICAhCLxXJpvNOnT9O0aVO8vLwwMTEBoFWrVoSFhTFhwgRq1KhBfHw8NWrUYObMmWzfvp1r165hZmZGamoqT548oUOHDnTq1InCwkI+fPjA48eP6dWrFyNGjMDFxYWsrCzOnj2Lra0tAQEBMjP9OXPmYGxszJo1a9iyZQvlypXDwcGBWbNmydy3ogD3JRQUFASFqfPnz+Ps7MyCBQtKTNVVrlyZadOm8erVK8Hb/M2bNzx69IiRI0cyceJEYdUklUoJDAykX79+wmBTXJD/EpUqVUJBQQFbW9ti/16uXDlatWqFl5cXgwYNIicnh4CAADw8PIDPNcxVq1bJ1Zi/hJ+fH+bm5ixfvpxu3boRGxv73Tr7vXv3GDRoEPPmzePWrVvk5+cTFxfH6dOnSUxMpGPHjn855u6vgFQqpXv37jRp0oRJkyaRm5vLrl27mD17Nps2bZL7vpubGyYmJvz2228kJiZy48YNunbtWuy+a9euTb169UhNTWXOnDkYGhry+PFjqlatypw5c1BVVcXExISxY8eW2DJbWujo6LB//35GjRrFlClTiuXoiMVioQSopaWFoaEhiYmJPH36lIcPH8rI7r5+/ZpNmzbRokULDAwMmDx5MgsXLuTq1atCQB07dqzAgahcuTLnzp0DPhMtlZSUUFFRoVOnThQUFODu7s60adOEd6dTp06sX7+eGzduyGSvHjx4QNu2bUsdTK5evYpEIpEJ8l9CJBIxaNAgJk+eLJCev4RYLMbDw4NJkyaxc+dOqlevzsePH8nIyKBfv374+vqWmCUxMjJiwoQJzJ8/n1atWpGVlcX9+/c5cODAD02OExMT8fT0ZPv27SgrK1OpUiWGDh3Kli1bGDZsmFBzr1GjBjVr1mTmzJkMHTpUmCBZWFgIpScrKyvevn1LaGgoYWFhREVFsXjxYqFdtCS0adOGxYsXM3XqVCQSCWpqavTs2VN458uXL092djaFhYW/xKr2nzeSfAN5eXlcunRJEG8oDlOmTOHo0aP4+vri6OiIg4MDPXr0YP369Tx//pzIyEgkEglPnjzhxIkTlC1blitXrsjsw8rKSpDMLEJsbCyvX7+mWrVqeHp6smTJEkaMGIGpqanczFdBQYGCggL09fXx9/cHPr9AFStWRFlZmYEDB7JkyRJmzZpF7dq1Wb9+PQMHDkRTUxNjY2M2bNggMEiLCEMrVqygZ8+eNG3aFAUFBcqUKcOwYcPIzMyka9euDB48mFOnTgkTlP79+/P48WOys7OJjo5m6dKlcmnYunXrUqVKFU6dOkVOTg6RkZGcO3eO3377jfT0dEaOHMmUKVNK5XRmamqKs7Mznz59QldXlxkzZjBmzBiZl14kEtGwYUMGDhzImTNnSkVYi4iIEMxyvnXsyMhI4P/7d8fHx3Px4kUaNWrEhw8fePLkSbHb+vr6EhMTQ3R0NAsWLMDd3V0Q6/n06VOx28TGxnL79m0mTpxI5cqVKVOmDJMmTcLLy4uQkBCcnZ2xtbUlOzv7u9f3d8PLly/59OkTXbp0QUFBAXV1dQYOHMihQ4eK/X5qaqqQcQoPD6dWrVrfrL/Wq1ePpk2bYm5uzuPHj6lfvz7t2rXDxsaGevXqERoaStOmTbG1tf3DrmDdu3dn7969rFmzBnd3dxlfck1NTTQ0NLh48SJ5eXn4+/vz8eNHzMzMOHDgAPb29jKT5nr16qGvry8oyykqKmJnZydMOItkfg0MDFi/fj2TJ0/Gy8uLFi1asHLlSipXrkxkZCSRkZGEhoaira0t8+6IxWI6dOggY7IjlUrx8vLC2dm51Ne8d+/e77bvKSgo0KpVK+Hcv0ZycjL79+9nxYoVLF68mC1bttCsWTO5c/4aCQkJmJqaMnPmTPT19WnUqJHQxvojyM/PR0FBQWZMUFFRIScnRy4bZWhoiI6ODoGBgTKfHzx4kLVr16KsrMz79+/p3r07o0ePJi8vj2bNmvHx48fvnse4ceNIS0sjISGBhQsX8uDBAzIyMgSZamNj4xL1838U/zMr+ri4ODw8PGjQoAH9+/eX+3tBQQEXL14kICCA2rVrc+vWLWE1DZ/Tg0X9mfv27SMnJ4eWLVtStmxZLl68iIaGhrAK6927N4sXL2bFihXY2Njw4cMHvLy8hDaievXqCfXqkJAQoR5chIEDB7JmzRosLCw4ePAgd+/eFdr6xGIxFSpUkKnviMViGjZsWKxQQ3BwMDVq1ODp06dyfb93794lKSkJGxsbwbzmypUr7N27t1T3VCQScfHiRcaMGcOoUaMoV64cs2fPpl+/fmzfvp169erJeKl/DxYWFpQvX57du3eTnJwsYyTxJRo2bEhhYeF36+DwbbOJIuTm5qKoqEh4eDjHjh1DR0eHAQMGUKlSJYKCgqhfvz47d+4UTFc+fPggaFw/f/4cX19fGU1wOzs7nJycWLJkCf369RNqo7m5ufj6+nLq1CnWr19PnTp1yMjIYPjw4cyYMUNYFfbu3ZvNmzezevVqFi1aVOr793dAUbbrS8a6RCIpcSJWNAk1MTEhIyODzMzMb+4/NTWVe/fu0aBBA9auXStnJmJlZUXfvn25d+8enTp1Ys+ePaWWWi0O3bt3Jzg4mD179rBt2zbS09NRV1cnPT0dNTU1zp49y+HDhwWhGVVVVXJzc4tNlSsrK8s8q7q6ugQHB/PkyRO6detGpUqVaN68Ofb29iQmJuLl5cXNmzfR1dWlW7duvHr1iiNHjtC7d2/y8vLkugLy8vJkVod3795FIpH8kBpkdHR0qVrxKleuXCIv4u7du9SpU0fIdohEItq3by9o5heHAwcOMHHiRMzMzIiLiyM+Pp7c3FwePnzIjh07vruC/hJVqlTB1NSU06dP06tXL7Kzs4VFTmZmpkxbnUQikSkVFEEsFtOzZ09BF6Qow2FkZERCQgKHDh365oKyCEWLrokTJxIaGoqjoyPKyso0b96cxMREzMzMuHfvXqmvrST8owN9XFwc7u7uAtPTwsJCUH1zcnIStJ537drF3LlzUVZWxtjYmMqVK2NpaYmzszMtWrRg+PDhKCkpERYWRlZWFrq6uoINLXxO4x09epTjx49jZ2eHjo4OxsbG+Pr6kpubi729PQ8fPiQsLAwnJyd+++03dHR0CA8Px9/fn127dsmct56eHosXL+bw4cPUq1ePunXr0rlzZ9q3b8+CBQvw8vL6rphIEW7duoWjoyMnT54kJiZGYOcX1fjnzZsnkFhatGjBtGnTeP78eYlB9mvo6+sL2YuiQUUqlbJly5bvmjzEx8fj6elJRESEUNOuUKECO3bsQFdXt8TUdUms9OTkZM6ePcvbt2/R1dWlc+fO1KtXjx07dhT7shbh/v37aGpqsnz5ckQiEX379sXKygqRSEReXh5HjhzBwMAALy8vatasiaWlJYmJiXh7e9O3b99iJ1jz5s3D3Nyc1atXs3fvXsqWLUtycjItWrTg9OnTgsPXtWvXBK2HIojFYrp164aHh8c/LtAXqTeePXuWbt26kZ2dzaFDh2QkjL9E27ZtWbduHQsWLCAjI4OMjAw+ffokx/WAz10hN2/exN7enr59+5aYjlZSUsLW1pZq1arx22+/Ub58eYE38zMoX748M2fOxNHRke3btwtGMvn5+TRv3pzevXuTnp7OmTNn6NixI7169eLIkSM0atRIeMbj4uJ4//69zOr67du3GBgY0L59exwcHGS0IoruzfXr1zlx4gROTk6UL1+eChUqcOXKFSQSCQ8ePBCInXl5eVy4cEEoYd2/f59jx45x586dHyoRlSlThoyMjO9+LyMjo8RWv0qVKpGQkCAzZiQkJFCpUqViv//x40cmTpzIwoULhcnB/v37ycjIoGLFirRr146goKAfSnGfOHGCYcOGMXr0aBQUFBg+fDhmZmacOnUKBwcH4bw8PT3R19cvMdMQFxcn159foUKFUtv8FkEsFjN27FgOHz7MmjVrBIL1wYMHhfbuP4J/dKCvUqUKrVq1YuvWrWRmZhIeHo6hoSHBwcG0bNmS48eP8+DBAzZu3EheXh41a9YkMjKS9+/fC/XovXv3CprRnz59IjExkXXr1gkvx9WrVwXVu4iICPz8/Ojbty+dOnXi0KFDMsIJ9erV49GjR0yfPp1y5coJtpFfskXz8/Pp2LEjcXFxGBgYEBAQwKhRo4QsxIQJE7CxscHOzu67hjuhoaEEBgZy/vx59PT0mDVrFrVq1aJs2bIkJSWhqKgoc2xVVVXMzc15+PBhqQN9Eb4cVFNTU4mIiMDU1LTY70ZERHDkyBFCQkJo06YNXbp0QVVVlezsbJ4/f46XlxeKioqEhoYWO1PPzs5GLBYTHh4unH9mZiYLFizAxsYGR0dHYmNj2bFjBw4ODtSsWZNdu3YJ3QSPHj0iLS0NFRUVRCIRz58/p2XLlnTt2pWMjAyZAVVZWZnhw4fj5OSEvb29oGMAn1dzy5cv5+TJk8VmiYq01+Pj4/n06RMVKlSQW2GWRNpTU1P7R6buRSIRFy5cwMHBgTFjxqCgoMCIESNYtmxZidsMGzZMUD+cMGEC+/fvx8nJSW5g3759O8bGxt8M8l+iRo0aODg4MH78eJ4/f/6HSE8eHh64uLhgYmJC8+bN6dKlC5mZmfj6+jJ16lS6d+/OxIkTWbFiBWXLlkVFRYUVK1ZgbW1NcnIyt27dYujQoUJ5LDo6WrBTtbe3lwvyRejYsSOhoaFs3bpV6P8eO3Ys79+/Z8+ePfj4+FCpUiUeP35MvXr10NLSYt26dUL56Etjm2fPnrFhwwbBbtrZ2VkuTd+7d2+OHDmCpaUl8fHxJCcnU7lyZTmG/b1797CyssLa2hoVFRUGDx6Mg4MDKioq2NjYULlyZdzd3enQoYOwAt63b1+x1/h1BgDA3t6eRYsW4eTkxJMnT/D29i61eh8g6HmkpaWhrKyMqqoqKSkpdOjQgblz52JiYkJUVBTJycnFkgqL0KlTJ5YtW0arVq0Ej5MHDx7IuXuWBvfv36dhw4YoKSkJZSBLS0tBc/+PQPRlHfmfhiZNmkiLeszfv3+Pjo4ORkZGBAYGCgYaKSkpaGlpsXjxYmEWdenSJfz8/Fi6dCkSiYQ1a9agpKSEsrIyfn5+TJs2DXNzc0QiEQ4ODqxatUpII2/cuJGaNWsiEon49OkTGhoaNGjQgFGjRgkz1k+fPhEVFUWtWrVQVVWloKCAmJgYtLS0OHHiBO7u7syYMQOxWEx8fDzz5s0jMjJSWMVs3ryZtWvXMmPGjBLT16Ghoaxfv56dO3fSq1cvpFIpixcvZsOGDZiYmJCSkkJ4eDhbt24V9iuVSpk/fz5ubm4/9NJ8jcjISCwtLdmyZYvc316+fMnmzZvp378/rVu3LnZ1npubi5eXl6CXXrduXaRSKVKpVCDzJCYmoqOjw+jRowG4fPmyUN8uwrNnzzh69ChisZjk5GREIhG5ublYW1tTvnx5gcyjo6PDtm3bmD9/Pt27dy929u7h4YGOjo6MTjZ8JuI9fPiQ+/fv/9S9io+Pp3bt2qxZs0ZmsDx06BD6+vqlkgH9uyIzM1N4r0qLnJwcevToQXh4OO3bt8fIyIiUlBR8fHwICAhg9uzZP0S0k0gkTJs2jVOnTn23W6Ak7Ny5k4ULFzJ9+nSZYFSE5ORkVq9eTePGjTEwMCAoKIjz589z6tQpLl++zPXr1yksLKRHjx5UqFCBoKAgPD09UVdXJysri82bN39Tpa1IJbN+/fqoqKhw8+ZN/P392bBhAxcvXkRVVVXYl5GREZMmTZITqipSf+zcuTO1a9cmMjKSixcvMn/+fJmW2rS0NAwNDalQoQKJiYno6ekRHR2Nqakpv//+O5qamoI2ftOmTWnevDm5ubncuHGDsmXLcv36dZSVlUlNTWXx4sVcuXKFSpUqMWPGDBmCX35+PoqKiohEIh48eMCgQYNYvXq1MBl7/vw5R48eZeXKlSxbtowaNWpgaWnJ0KFDv0vQ/RYkEgleXl48f/6catWq0b17928+n4WFhQwbNgwvLy9q167Nq1evGD58OBs3bvzhiePFixdxcHAgLy9PWBAUtduFhoY+kUqlFj97Xf/oQF+/fn3px48fkUgklCtXDgUFBRQVFbG1teXs2bPExcWhp6dHly5dZFJ3hYWFODo6smzZMipWrEhsbCwzZ84UesBDQkLIzc1l2rRpTJ8+nf3791NYWMipU6fw9PSkdu3aWFtbo6GhQV5eHkFBQTx8+BB7e3tWrlwp1K2lUimurq6sWrWKwsJCsrOzqVSpEpaWlvTo0UNQDZs+fTpXrlyRWSFv27aN2bNnY2Vlha2tLVWrVkUikRAaGsqtW7d4+fIlHh4eclKUiYmJ3L9/X3CdKiwsZOjQoairq3PlyhWSk5N5/PjxH2J8f/z4kRo1asiVJMLDw1m+fLmg8/89PHv2jE2bNtGsWTMePHhAXl4eFSpUQENDgwsXLtCyZUvGjRuHubk5u3fvpmrVqjL1xpycHEaPHk3ZsmVJS0ujV69edOrUSWYFLZFICAgIYO/evZQrV47u3btjYSH/Pm3ZsoVatWphb28vd62LFy8mPj7+m9dSRHIs7r6uXLmSrVu30rlzZ8qXL8/jx4959+4dDx8+/K/6l/9dUFhYyKVLl9i+fTuhoaGULVsWS0tLrl+/LpRffgSXLl2isLCQw4cP//C5xMfHU6dOHRYvXvzN36pI6KVXr14EBQUJzmqLFi3i9OnTdOjQAT8/P4KCgqhevTrJycm0bNmS27dvs3r16u+ex5gxY1i1ahXLli3j6tWrQkYuLS2N2NhYIXgUZ5pUUFCAoaEh48aNk5nkFulihIeHC2pvOTk51KxZkxYtWtCjRw8UFRXJycnh8OHDREZG0rRpU06cOIGdnZ2M86dEImHlypW4uLgwcuTIEq8jOTmZgQMHcvv2bZSVlQVmuo2NDWXKlMHe3p6PHz+yd+9eBg4cSJkyZVi3bh3dunUTMig7duwodWnzV6HI/Khx48Y/JVyUlZWFra0tYrGYIUOGCNnapKQkTpw4gY+Pzx8K9P/o1L2ioiJpaWkUFBSgoKDA0KFDycnJYd++fVhYWBAVFYWGhoZc6lQsFqOqqiqYrlSpUoUaNWrQrl07Qdb05s2brFmzBnNzc3bs2EFUVBQGBgasXr1artbUqlUrBg0axM2bN2natCmXL18W/Nvd3NxwcXHByMiInJwcNm3axLVr1zh16hRKSko0adKE1NRUOea6k5MT/fr1Y8+ePezZs4fY2FhEIhE1atRg3LhxwktWJI8bHR3N3r17CQ8Px9zcnPfv37Nz505u376Nu7s7aWlp1K9fHy8vrz/c1qWjo4OampqcAtbhw4cZMGBAqYI8fCbdNWnShMDAQFatWoW2tja7d+9GV1cXExMTzp49S8+ePenevTv6+vo8e/aMDh06CAN9kV5AWloaDg4OxbbYicVimjRpQuXKlVm0aBGXLl2iSZMmMsHi06dP+Pv7y2gIFCE6OrrEAT4wMJAtW7Zw5swZwSZVW1ubHj16MHHiREElbfbs2VhaWuLu7s779++xtbXl6NGj33Vv+19CSEgIp06dQkFBgQEDBtCjRw+Z7Mq6devkXAlLC1NTUw4cOPBT5+Xu7o6Njc13J2Ta2tp07NiRW7duMWjQIOHzCxcu0K9fP+rWrYu1tTVhYWHs3buX0NBQQfb5eyiyyVZSUkJTU1Om5KOlpVVsNuBL2ezHjx+jrq4ul8mqWLEipqamXL16VfBGOHnyJJUrV5bRMVBVVcXBwQEnJydevnyJkpIS7du35/nz52RnZ2NmZiZoyh89evSbgX7UqFGIxWL2799PcnIyq1atonbt2ly/fp0FCxbg6upKVlYWGRkZnDhxgrS0NGbMmCGIWtnZ2TF27Fg6duxYKinaXwVzc3O5cmdiYiJ+fn5Ur169xDFPKpWyf/9+Zs+eTaVKlZg9e7bMM1y+fHkcHR3x8fH5Q+f3j26vU1BQYP78+YhEIkF4pnnz5gwbNow3b96gqqqKpaUlnp6eMn3vRa0UX768+vr6Mu1S7du3R01NDRUVFZ4+fSow6UsilGhoaNCzZ09GjBhBly5deP36tSBnWVRnVlVVRSqV0rhxY3bt2sWGDRv4+PEjbdu2FYgtUqmUW7dusXLlSg4dOkTfvn0JDg4mKyuLzMxMXrx4gYGBAY0bN0ZPT4/KlSvz+++/Y2ZmxoMHD1BQUOD8+fMoKChw584dunTpwurVqzEwMMDJyanElyMnJ4eVK1cyfPhwVq5cSWZmpiBWY2RkxJIlS2RWrWPHjpWpbcXGxhIREVEqZ60vIZFI6Nu3L5UqVUJVVZURI0Zw7do16tSpw/Tp05k8eTJJSUmcPn2akJAQNm/ezNOnT7lw4QLbt29HSUkJQ0PDEvvoi6Cvr0+XLl1ISUlhy5YthIeHk52dzZMnT1i+fDlKSkpyq/b8/HwuXLggyFgWISgoCBsbGzp06EBmZibLli3j0KFDHD58mOXLlwvqfhYWFrx+/RqAdu3acfLkSby9vVm4cOG/Qf4LPH/+HCsrK3x8fLh58yZNmjSRaWWDz+SvH5E9/RKqqqqlIpgVh0OHDpX6mbazsyMqKopx48YJn5UpU4aUlBTh38nJyaioqKCqqoqysjLJyckkJCR8c7/v379HU1MTPz8/IbB+jcLCQi5cuEC7du1QVVUVnBeHDh3KixcvhKCfl5eHh4cHM2fOZOXKleTm5sqMjffu3SuWvyMWi2nWrBl9+/alsLCQ1atXc/ToUaGN9NmzZygpKX1XfKqI4KqoqEjFihWxtbXF09OTsmXLMmDAADIzM6lbty41atQgLS0NR0dHmes1NDTEzMyMy5cvk5eXx4kTJ5g5cybjx49n9uzZnD9//rvn8Cvg7u6OsbExixYtwtbWlt69exfb/ePq6srChQvJzc0VWqK/xr+COaVA0QP75SCgoqLCp0+fkEgk2Nra4u/vz/z584VWuIcPHzJ58mSZlW1OTo5craZ+/fq8ePGCWrVqMWLEiFL9IJaWlkRHRzNlyhS0tbVlJhOfPn3i/fv3uLu7o6SkhLq6OmPHjhXka4OCgujRowe5ubmYm5uTm5vLsmXLaNeuHfv370dNTY2AgAB+++03xo8fj6mpKTExMaxevZq2bdsyYMAA4PMkpV69enh4ePDmzRs+fPiAmZlZsYQy+BzQ2rdvT0FBAebm5ly4cIEdO3YI/d8SiYTdu3cjEomYP38+8FncY+PGjfTs2RNdXV08PT1p06bND3uga2pqyhhhJCUloaSkxG+//UZKSgqHDh2iY8eOuLm5sWbNGjw8PIiPj0dfX58FCxbg4eEhGBZ9D23atOHSpUu0aNGCLVu2kJycjImJCTNmzODevXts2LABDQ0NTE1NqVq1qjDoFfEE4PPqqFOnTvTo0YNJkybJtY2VK1eOHj160K1bN27fvk2rVq24ePHin+ZR/k/AokWL6N69uyBadPr0aVauXCnTjlWmTJkSPRq+h6ysrB82gylCUlLSd0mxRdDW1kZZWZmyZcuSmJhITk4O8+fPp3///iQnJ6OgoMC5c+cEv4aTJ0/SsmVLLl26xKhRo4rdp1Qq5dSpUyQmJvLo0SOuX78up3cRGxtLp06dyM/Px87OjmHDhqGqqkpqaip3795l4cKFpKWlERYWxuXLl8nJyWHMmDG8f/+eI0eOyLj3aWlpERYWVuy5ZGRkoKWlReXKlalZs6YgAf769WtcXV2pXbu2TDajOOjo6BAdHS2QBOPi4oRU+NChQxk9ejRNmjRBKpWye/dugfT3JUQiEcePH2fKlClUqVKFunXroqqqysePH7lw4QLjx49n3LhxTJ06tVSe9z+K6OhoZsyYwdKlS6lcuTL5+fmsXbuWPXv2yEzyCgoKWLx4MbVq1eLDhw8/1CL4o/jHB3r4nA5yd3dn7NixQuq+devWeHt7ExQUxJw5c3j8+DFv3ryhXLlycsSo3Nxcnj9/LgTKIiQmJlJQUEDXrl1/aNbVvn17Jk2ahLKyMhKJhLi4OI4ePUoRn+DLfRUpzaWmpmJnZ0fnzp1p27YteXl55ObmMnjwYNzd3Rk5ciTHjx9n+/btdOzYUZjlGhgYMHr0aE6cOCFz/i1btuTMmTP069ePRo0a0bp16xJT9l5eXiQmJrJo0SLEYjG2traMGjWKqVOnCmTA3377DTc3NyHQV6lShbFjx7J27Vrmzp1LWFiYjKNUadG5c2fmzZtHQUEBOjo6nDt3jqFDh2JkZISRkRF16tTBxcWFqVOn0qRJE168eMH48eOF7T9+/FhqclbZsmXR0dFh+PDhgimNj48PvXv3pmnTpkyePJn8/Hw8PT3x8/PD3t6egQMHCn3g4eHhdOnSRc6etjiIxWLatm2Lrq4u3bt3x9fX96dqe/8LSElJkbGrrVSpklyPtrW1Na6urj/sKAefMwY/O9FSUVEhNze3VN+VSCTk5eUxcOBA7t27h6KiIoaGhmzdupWbN29SWFhIgwYNePDgAQkJCXz48AF1dXXy8vLQ1tamZ8+eMhPHvLw8jh49KphaJSYmMnPmTJydnQUybXJyMq1bt8bIyIi6deuioKBAYmIihoaGlC1blm7dutGxY0cWL17MsmXLyMnJYdeuXairq2NsbMyzZ8948+aNEHiHDh1K+/bt6dy5s4zHRkJCgiAitmrVKhkxq3r16iEWi0lKSpKRkk1LS2Pfvn2cPXuWwsJC7O3tWbx4MS4uLrRo0YLk5GTi4uI4ceIEhYWFREZGCnoVIpEIKysrdu/eLXOPQ0NDefLkCdbW1syaNUuOHNmnTx/CwsI4f/48586d4/r169/NnuXl5XHt2jWSk5Oxt7ensLCQXbt2ERgYSJUqVfjtt99kJkO3b9+mQYMGwtiopKRE69atuXLlihDopVIpjo6O5Ofno6+vT0BAQLEupL8K/xOBfs2aNYjFYtauXYtYLGbatGls2rQJGxsbrly5gpmZGdbW1iW2sNy5c4dq1arJpOWDg4N58eKFjP1saaGpqYmNjQ1v3rzh+vXrnD9/nm7dulG9enVcXV05evQoAwYMIC8vj8OHDzN06FD27dtHjRo1aNWqFbt37+b+/fuCWt6IESNwdXXl/fv3JCYmyj3curq6cqI8YrEYHR0drKys5DzEv0ZKSgoVKlQQJgJisRiRSCQzMRCLxYISYGFhIQ4ODpw/fx6RSMSsWbNQUVEptWnGl9DT02PkyJGcPXtWmFR9mYZXV1fHzMyM+/fv06ZNG1xcXEhJSRFKED+qLFWkJgifszh9+/bF0dFRJl3ZqFEjzp49K9gQz5kzh8uXLzNixAhatmz53SD/JRo1akSHDh2YM2cOJ0+e/KFz/V9B9+7d2bFjB5UqVaKwsFBgg3+J5s2bo66uzsuXL6lfv36p911YWMitW7e4cePGT51bixYtePLkiRxJszgEBARQrlw5JBIJbm5uKCoqcvv2bebMmUNwcDB79+7F29ubNWvWUL58eW7dusXRo0cxMjLiypUrXLlyhbZt26KjoyPoOEgkEtq0aUO7du1QVlbm+fPnODg40LdvX9auXUvv3r2F7EFWVhYSiYSDBw9SoUIFunbtipWVFcrKyixatIhZs2aRmJhISkoK6urqSCQSsrOzZTIEDRo0YPjw4SxevJhu3bpRtWpVgoKCuHTpEitXrqRChQoYGxsTFhYm8HPS0tIEz4GiyUFMTAwtW7akSpUqNG/eHAUFBby9vXnx4oXAVSkqLRR1BRkYGBAYGCgE+8ePH5OTk8OGDRsENctz587RrVs3+vTpU+KEr3r16kyaNIkjR47QsWNH7t69W+LKPiYmRhDKKlu2LE5OTigoKNC8eXNq165NQkIC9vb2jB07VrDv1tfXJzY2VmbSGRcXJ6PH7+bmho+PD66urmhoaPDq1SuePn36Q2PHj+AfHehDQkIwMTERVmlBQUFoaGhw/vx5KlSowIgRI1iwYAHHjx9nwIABxT4YL1++5OjRo4hEIk6dOoWBgQGvX7/Gz88PBwcH3rx581PktVq1aqGsrCzYtRa1lsyZM4cFCxbg6emJWCymX79+rFq1ig4dOtCiRQsOHDhAWloarq6uQl1u48aNNG7cmIsXL9KlSxdBUrJodnj9+nW5yUhSUhKxsbGlUrmytrbGyclJMPAIDg5GJBKxa9cuxowZQ0ZGBtu2baNJkyZ8+PCBo0eP8uzZM7Zs2YKqqirbtm3j6dOnP90Xrq6uTr169ZBKpXL9ukXXUqFCBYyMjJg5cyZz5szBysqKlJQUJBIJISEhJXInvkRaWhrJycnCC3n69GkMDQ2LrUl269aNa9euMWrUKK5fv06jRo3Iz89n69atP3x97dq1Y9KkScTHx5dK7e9/DZMmTSIlJYVVq1YJRk9fWyEX8XB27tyJqalpqd/JO3fuYGRkVKr3oDg4OzszbNgwOnTo8M1jSqVSbt68SUpKCoMHDxbKgG3btsXb25v79++zcuVKhg0bJjwDRUx8e3t7LC0tefjwIXv27MHAwICwsDAsLCyEbGP//v1RV1enXbt2NG3alKVLl3L37l1SUlJwcXGhbt26wvhWWFjIkydPOHLkCOHh4fTv3x8lJSX69u3LpUuXWLNmDS1atCAsLIzy5cvLSU2vXbuWVq1a4ebmxu3bt6lbty6nTp0SOpcWLlxIjx49SElJQVtbmxs3buDs7Cy47sHn0p6FhYWMqFbDhg25desWy5YtIyAgQG48PnDgAL169aJ+/fokJSURFxfH0qVLefLkCXfv3iUxMRErK6tvBvkiiEQiBg8ezKZNm9iyZQszZ84s9ntz587FzMyMwYMHC5ydLz0Ein7DhQsXYmdnh62tLW3atBFados8Sry8vHjw4AHwObOzbt06fvvtN2ES1blzZ44dO4aJiYmcG2lWVtY3r6U0+EcHekVFRRwcHEhOTmbfvn24urri7e1NVFQUVapU4ezZsyQkJHDlyhUCAgLo3r07DRo0EORQPT09CQwMZOrUqWhoaHD79m3u3bvH8+fPefToET4+PnKkoNJCRUUFRUVF1q5dy5YtW4TZn5KSEqqqqkRERKCgoMCzZ89wd3cnJiYGsVjMvXv3cHV1FZi0TZs2JSAggKSkJHJyctDW1hYsGJs0aSI45FWtWpXY2FiqVKlCcHAw+/btY8qUKaWqTdaoUQMPDw+GDx8ulBI8PDy4d+8eCxcuJCsrS5jdFrFPW7VqJXQzODo6MmzYsB9ebRXh1atXWFhYYGlpyeTJk6lXrx46OjpIpVJ8fHzIzs4WrCRnzZpFjx49uHbtGuXLl0cqlbJ+/fpSWb96e3vTo0cP4d6+ffu2xLqZoqIi1atXJy4ujszMTAwNDSlfvvw3+51LgoaGBjY2NuzcuZMFCxYAn0WBjh8/zpUrV1BQUKBXr1706tXrhzkO/wSIxWKWLFnCkiVLvvm9UaNGceTIETw8PBg5cuR3g/2LFy84ceIEt27d+ulza9myJcbGxuzbtw8HB4cSj3nu3DmysrLkNNbhc2r31atXJCUlyfGAlJWVBfKYjY0NtWvXZtq0aUyaNElY2bq6uuLl5SWY1WhoaFCuXDmys7NZunSpnLCQgoICVlZW1K1bVyB+2tnZYWlpiYeHB1u3buXNmzdCie7rZ04kEgliUCXdk9u3b+Pm5sbHjx9ZtWqVTECPi4vj7t27xepstGnThosXL/Ls2TMZWWmA1q1bExAQwJ07d9izZw+WlpZUrlyZLl260L59e5ycnJgyZUqpSzcikYhu3bqxbds2pk2bVmza/M6dO0yYMAH4bABkamoq152gpaWFvb09bm5uQoucl5cXa9eu5datW9SoUYM7d+4IJcTw8HCysrJkSnU2Njbcu3cPZ2dnsrOzqVixIu3btxfanv8o/tGBXktLS6jlNmrUiGPHjjFq1CgmT57M4sWLqVSpEqtXr0ZLS0uwSi3SiNbS0qJz586MGDFCCIYODg5IJBLGjBmDvr4+2traPz3bysjIoGzZsgwfPpytW7eyY8cODA0NuX37NrNnz+batWssXryY1NRUzM3NUVBQEAwpvp7x6erqEhgYyO3bt4mOjqZp06Y8e/aMBw8esHr1avr06cPq1atZunQpGRkZVKpUSWCilhbdu3cnMTGRhIQEKlasKKwAioSIil56b29vLly4INOyGB4ejqamJnfu3KFv374/FKxycnK4d+8e27ZtIykpCXV1dSZNmkTt2rWFe/+1tauJiYngU5CXl8fcuXO5f/++4EpVHD58+MC1a9e4fv268FnFihXx9fUt9vtSqZSEhATKlCnDu3fvqFChwh9KuzVp0oRbt26xYMECoqOjsbW1FfrDCwsLWbJkCatXr8bLy6tY+dd/8XnyfPHiRTp16sTGjRvp06dPsR7l6enpeHl5cePGDc6ePfvTq3n4HCzOnDlD586dWb16NV26dMHMzEwoZb1//57r168L2vQjRozgwoUL9O7dG5FIxNOnT0lISODevXvUqlWLkydPCiSxZ8+e8f79eyZOnCgcT1dXF0VFRRnFTT09PZlxKDU1lTdv3uDq6vpNWVgtLS3Gjx+Pq6srbdq0QSKRoKSkxIQJE0hPT6dp06bUr1//p+SBGzRogLu7e7F/K7LnLU4RUiwWY2hoSEREhFygB6hWrRrDhg0jOzubvXv30rlzZwChje1HM2LGxsaoq6tz+fJlgoKCOHXqFDo6Ori4uGBtbY2RkREhISEYGBiQlJRUokFXtWrVuHjxovBvLS0tli5dKqTzv0RRLf7LCYmvry8RERHCQiYkJIStW7eiq6uLu7u7cJ0/i390oP8SIpGI3r17M3HiRNavX09aWhqLFy8WiBijR48mKyuLV69e4e7uzpIlS2TsHIvw4sULqlWrhq6uLi1btmTSpEnk5eX9kLoXfK7XOTs7o66uzv3799m8eTPx8fFs2rSJ4OBgJk2ahIODA/Xr10csFhMbG8u8efMoX748Dx8+FFaoOTk53L17FzU1NV69esXq1atRUVGhe/fubN68mZSUFMqUKcOyZctYsmSJYKjxMy0bSkpKcoIbQUFBMu1ljRs35vDhwwQGBpKRkYG2tjb37t1j+/bt7NixAx8fn1Kr7mVkZODh4SG8RLNmzaJFixa0b9+ec+fOYWNjw7Fjx765clNWVuby5cvY2dmRlpZG27ZtZX4rqVQq/OZLly6V8ZTu378/c+fOpU+fPnKEncDAQCQSiaCCmJ6eLjcB+xGUKVNGaN8cPnw4TZo0kSEv2tnZsXfvXiZOnMjBgwd5/PgxT548wcjIiHbt2v2tPex/JcqWLcvt27dZs2YNmzZtQkdHh8aNG6OpqUleXp7gL9G1a1fu378vQ/L7WWhra3Pr1i08PDxwdXXF3d0dHR0d0tPTUVFRYcKECfz+++9oaWnh4eFBt27dmDJlChoaGqSnp3PkyBF69erF2rVrOX36NE5OTkJK18XFRa5+3LhxY/bs2YOjoyNJSUl4eXnJGKjcunWLhg0blqqNzNjYGE1NTQIDA/H09MTAwIARI0ZQrlw5/Pz86NGjB1evXi2Rv/QzMDAwIC4urlj5Z4lEIqe/URyGDBnC0qVLWbduHWXLliUkJOS7XKOSYGpqyvz58xGLxXTu3JnU1FT69OlDXl4eSkpK+Pv7k5KSQnJyskwH0JcICwuTsyouCdWrV0cikfD+/Xvev3/P3bt3iYuLQ19fX8j61KlTh1mzZrF8+fJSuXR+D/9oZbyaNWtKV65cKfPZ5s2bGTduHKNHj2b//v2kp6cTHh6OkpISz58/p0KFCmzbto369evTsGFDevToIQSS+Ph41qxZw/r16wUGu729PTVq1KBNmzalPq/4+HgWL15MTEyM3IN+/fp1RowYwaJFi4R69MuXLzl+/DjR0dGC+E+R05uPjw+FhYXMmTOHrVu30rhxY+rUqUOjRo04f/48+vr6rFu37g/cxW+jU6dOArEHPutS37t3D09PTw4dOkR6ejodOnTAysqKZ8+eYWdnh7Ozs4zGdnHw9vbGw8MDY2NjRCIRb9++FVYBkZGRKCkpkZ6eTu3atZk8eTJjx46Vm7zk5eVx7tw5PD09ycrKEnyjmzZtiq6uLtnZ2Tx9+hSxWCyXXizCunXr2LRpE4MHD6Zx48bk5eVx7949Dh48iJmZGampqeTm5vLp0ycmTpz4wx4BRXjz5g1XrlzhyJEjWFlZ4erqKpf5SEtLY8qUKbRo0YJnz55hampKVFSUkCr8cpX3L/6/I6WnpyefPn0SRGGGDx8u4/74KyGVSgkLCxMm2MbGxnITUalUyvPnz8nKysLCwoLw8HBsbW3ZsGED8DnjkJ6eTuXKlYudxObl5eHk5ER+fj5aWlr0799fCHKRkZGsWLGC3NxcRCIR+vr6jBkz5puB8+TJk3z8+JHnz5/LZQE8PT2JjY3l0qVLv+L2COjSpQuampqC8E5GRgYXLlzg1q1bZGVlYWpqiouLS7Fty1KplDVr1rB8+XJMTEyoV6+e4CJXVML7EZw/f56zZ8/i7u5OdnY2Dx48IDw8nKioKKZMmcKmTZuEVmhvb2+cnZ1lSpDJycksWrSIU6dOFTvZKFJHrVy5srBgmDt3Llu3bqVOnTrY29tToUIFQkJCOH/+PNWqVaNfv37cvn0bT09P7O3tOX78+L/KeD+C3NxcUlNT0dXVZfLkyaSlpVGzZk3Bd/23335DQUEBT09PunbtypUrV1BWVkZFRYX09HSWLVsm9L1mZmYyduxYJk+ejJWVVal6Mov6Xh0cHIpNXa1cuZL+/fsLQf7Zs2e4ubkxatQoLC0tSUhI4MyZMzx9+pTc3Fx69+7NqFGjGDhwIHXr1kVFRUXQ0M7OzhZ68P8sbNmyhVatWhEcHIyioqLQSVCuXDk5m8aGDRsKBjC9e/cuUes+NDSUgwcPsmLFCkFnID4+ngULFlC1alVq1arFoEGDqFq1Ku/fv2fjxo28ffuWTZs2Cfu4fPkyQ4cOpVy5crRs2ZLCwkI+fPhA06ZNadq0qVAG6Nq1KxYWFiUqV02bNo3q1auzYsUKNm7cCHwmz23ZsoX8/Hxq1qxJu3btsLW1JSYm5qcDfWxsLAYGBgQHB2NkZFRseUNLSwtNTU3Cw8NZt26dMCAfP36ccePGcf78+Z869j8VioqKArfhv4UidcrvfefLcsHXgaxMmTLf5M4oKyujpaVFWloas2bNEtLVGRkZrFixgn79+gkLD29vb1asWMG6detKzDgpKyuTlJSEqampXKq/aMHwq+Hu7k7Lli2JjY2lcePGHD16FBMTExYtWkT58uV5+/YtK1as4MGDB+zYsUPmHq1atYpdu3axatUqIXB++PDhp8m+OTk5qKioEB4eztq1a2ncuDGKiopER0cTERHBhAkTWLx4MY8ePeLOnTt07NgRS0tLTE1NiYuL4+bNmxgaGrJ8+XJycnIoW7YsLVq0wMHBgQcPHjBq1ChBu2Xo0KFs2bKFmJgYLC0tGTNmjHBtlSpVokmTJkyfPp0ZM2bQsmVLRo0aVWIW4UfwP7WiT05OZurUqaioqNC0aVMyMzN5+vSpwKKMjo5m69atjB07lgkTJmBubk7jxo2pX78+169fR11dnUGDBrF582ZCQkJQV1cnLS2NKlWqoKamxvTp078Z7CUSCYcPHyYmJoa7d+/KCVuEhITIrOYkEglTpkxh1KhRxQaQIuOEpKQkunfvLghHSCQSli5dira2ttCGV1hYSHh4uNC7+yvUloqQlJTEtWvXKCwspF27dnLp/fz8fGJiYqhcuTKqqqoEBgYyevRoXr16Rdu2balfv77g1vb06VPu3LlD+/bt5SRnjx8/jqenJ9u3b5cZkDIzM3FxceHZs2cYGRnx+vVrrKyssLOzY8iQIcK15uXlsXr1asaMGUO/fv0EcxRFRUXKli3LhQsXvpl+y8vLQywWF1v39PLy4vfff2fFihU/dW8XLFjAhg0bqFatGm3btmXTpk1yq7ns7GzGjh2Ls7OzjB5/dnY248aNIyUlpdjJ47/4ayMrKws9PT3WrFlTKtnW1NRUXFxcqF27tlBCUlFRQU9PjwoVKjB06FB0dXWFSbSrqyu1atUSBIe+xu7du0lJSSEpKUlOV//58+dcvHhRUAv9lUhNTWXfvn1s2LABY2NjGTEZ+Pxcz549m9OnTws6B0U+GqtWrZJxgvTx8cHX15fZs2f/8HnMmjWLpKQktLW16dOnj1AWffPmDVu3bmXjxo2MGDGCvLw88vPz0dTUZNCgQURHR6Otrc2nT5/49OkT7du3R0lJSVAo9ff3p7CwkFmzZlG3bl0yMzNZv3694Na4bt06tLW1Zc6lKEYtWLBApkthwIABf2hF/4+WwP0S2dnZbN++HZFIxIIFCxgxYgTjx49n1KhRHDx4EPhcO5oyZQorV67k7t27KCsrCzrUTk5OeHt7s3nzZjp37szu3bvZunUrO3fupG3btoLxza1bt+QENCQSCc+ePWP16tUkJiZy8+ZNuSAPnx8sY2NjYTX3/v17FBQUSmSqd+/enefPn5Oeni5DBBOLxXTv3l0IOO7u7lSvXp3mzZsLE5fLly//kvsKn/WYhw4dyogRI+SC/NGjRzEwMMDa2ho9PT3WrVsnrGaKJB8vX77MgQMHuHz5MnFxcVSoUKFYEQtdXV0qVqwoF2g1NDSwsrISyDAHDhygsLBQzq5UWVmZvn374ubmxujRozEwMMDV1ZWNGzdiZWX1XSMMZWXlEslNdnZ2iEQi3r179/0b9hWKJIw7duxIjRo1kEqlxWqcX758GU1NTTlmv4KCAlKpVEaq9F/8faCurk7//v25fft2qb5/69YtQYBGWVlZyP4lJiby4sULli9fjqOjI2fOnEEqlVKzZk0+fPhQ7L5ycnLw9fUlODiYjIwMfHx8BB2JtLQ0Tpw4IUMGhM8lkR/VpygO2traTJ48mYyMjGKzLmpqatja2rJ3717hswMHDtC4cWM5u+emTZsSEhLyXXOprxEcHExSUhIKCgokJCTIZFpMTEzIy8vj+vXrtGjRAgUFBVRVValUqRL6+vo4OjrSu3dvIiIiaNu2LZaWlhgZGZGYmEh+fj6GhoZUr15d4IFoaGjQrVs3Dh06RLly5eSCPHz+bZs3by4T5H8F/nKpe5FIVBU4AFQCpMBOqVS6WSQSLQLGAEV5jDlSqfSbfQcfPnzg/PnzfPr0CV9fX2xtbcnKypKRnf1aUatixYrUrl2bgIAAMjIyKCgoQFFRkczMTKRSKTNmzJBJq6qqqtK+fXuaN2/OokWLuHXrFseOHaNBgwaCqtW7d+/Q1dVl0qRJDBkypMRVV2FhoZyZSuXKlUtcIVauXFkg132tCJafn4+SkhLr169n69atjBs3DmNjYyQSCYGBgYwYMYJ9+/YVSzgsgkQi4fr169y/f59atWrRv3//HxK9efXqFRMmTGD69OnUqFGD+Ph41q5di4GBAW/fvmXq1Klyq9asrCxGjx6Nt7e3jEGNVCrl7t27JdZWxWIxhYWFwOfyjK6ubrH3uVq1akRGRhIaGsqePXuE49evX5+TJ09y5MgRBg4c+MPaCCKRCBcXF7Zs2cLcuXNLrbteJIrk4uKCgoICU6ZMQU9Pj1OnThEWFkazZs0oKCjg/v37REZGMmzYMK5duyZT+71x4wYtW7b8U+Q8/8V/B5MmTaJ169Y0bdr0m1yLDx8+cOHCBdTU1OjZsyfW1tYoKSlx9OhRXr58ydSpU9HV1SUhIYENGzagqakptKcWh6tXr6KkpMTBgwcxMjKiZ8+eQmvqmzdvGDt2rKBmV1BQwIQJE4TAW2Sq9UeySBKJhE+fPpUoI1ypUiXev38v/Pv58+fFZt2UlZVp06YN586dk8sMlASpVMq5c+fo2rUrXbt2ZevWraxfv15ocY2OjiY/P58rV64IE2+pVIqpqSmbN28WgnrDhg2xsrLC39+fHTt2YGlpibm5OR8/fuTGjRu4ubnh6OiIWCwmJycHDQ0NIiIihNjyJaKjo0v8rf4I/nKBHigApkql0qcikagM8EQkEt38z982SqXSUjPLypcvT+XKlalXrx7r1q1DTU0Nc3Nz0tLShFVREUniyyCppaVFhQoVMDU1Zd26ddSpU4fbt2/TvXv3ElvD1NXVmTdvHlOmTOHSpUscPHiQyMhI6tWrx7Jly7CxsfluSrdmzZqEh4cjkUgQi8VUqFCBqKgo4d9fIzIyEh0dHQwMDPDy8hI03XNzc7ly5QoTJkxgzpw5LF26VBCMEYvFNGrUiN9//50ZM2aUKN8rlUoZOHAgT548oVGjRly/fp3Vq1cL/u2lweHDh2ndurVQs6xcubIgDFF0jK+PGRISglQqJSYmho0bNwokv2vXrpGRkUFOTo7c/cjNzcXf35/NmzcD8Pvvv+Pm5kZWVpZc8AsNDcXIyIjIyEiys7NRUVHhwYMH7N27FxMTE+bNm8epU6c4derUDwf78ePH4+vry6ZNm5g0adJ3B8Dc3Fy2bNmCiYmJwGfw9PRk7NixaGlp4enpiYeHB/n5+UydOpXRo0ejpKREhw4dWLhwIWZmZkRHRxMbG1vialAqlfLkyRMiIyORSqXo6elhbW39L0v/LwYzMzNWrVrFvHnzGD9+vIzATRGCgoJYu3YtysrKrFq1ShjDioyuFi9eLKzuK1asiIODAxs3bkRZWRlnZ2e5Y3p7e3Pjxg0eP34sWGcHBQXh6+vLx48fsbGxkRGaWrVqFb6+vri7u6OgoICbmxuzZ88WuCs/A7FYjJGREe/fvy9Wqjo4OFiGP6OiolKip0HPnj1ZsGAB58+fl3E2LA5SqZSjR48KsraKioo4OTnx+++/4+HhQbly5bh8+TKdO3dm+/btwgJj7969REREsH79euLj49HS0sLQ0JAPHz7g7u7O3LlzZTgaXbp0YcWKFZw/f57GjRtz6tQpJk+ezMuXL/Hz85Nr+dXS0iox+/JH8JcL9FKpNA6I+89/p4tEojeAvIlyKVC+fHnBnW3x4sUoKiqirKzMwoUL6dmzJ1lZWVy4cIFhw4YJ20gkEl6/fk3Dhg0ZMWIEu3btYvXq1TRu3FhO6/5raGlp0aBBA3r37o2xsTGGhoZ4enry9OlTPD09v7saNjMzw8DAgICAAJo0aUL16tVRU1PDz89PTotbIpFw6tQphg8fzujRo2nfvj2PHj2iUqVKPHv2jI4dOwr2usWpwjVo0IA9e/YQEhJS7AzZ29sbPz8/VqxYIUxutm/fLrgtlQZfysl+CWVlZUxMTPD398fGxoaCggJ8fHy4ceMGGRkZNG3aFLFYTFhYGCtXrkRZWZnGjRuzdOlSNmzYwJYtWxg0aBAVK1YkMjKSQ4cO0bVrVyFFZmJigr29PUeOHOG3334TBszs7GxOnjzJ5MmTefXqFTt37mTo0KG4u7uzaNEijIyMBKOJ8+fP/zCJSyQS4eHhwe+//87ChQvp0qULNjY2coTD/Px8Hj16xKVLl7CxsWHfvn3CpEJXV5eYmBgMDQ3p27cvYrEYNTU1pk2bJmx/584drl27xpMnT+jRowd9+/aVm9BkZmayb98+tmzZQlZWlsC6jo+PJz8/XxjU/ptWnv+reP36NWFhYYIdckkYM2YMOjo6TJkyBTU1NaytrSlTpgwZGRn4+fkRGxuLoqIio0aNkinf5Ofnk5mZKZcJqFq1KmlpaTRo0IC3b99SrVo1JBIJb9++5fbt26Snp3Pnzh0KCwt59+4dxsbGKCgolNimdvPmTbp27SqUHXv06MHhw4f/8P2ZMGEC+/fvl8uWFnGZviTZtmvXjkWLFhXbV66pqSksbCIiIujbt2+x9sERERGcOXOGhIQEZs2aJUzIlZSUaN68Oenp6VStWpXz58/LaAhIpVI2bNhAv379KF++vEx58ebNmzKLmiKoqKjg4ODA/PnzOXfuHD179mTDhg20b98eDw8PQbyoaLVfUFDAtWvX6NSp0y/N0P3lAv2XEIlERkAjwA9oDkwQiUTDgcd8XvWnfGNzEhMTGTRoEH369GHYsGEoKysTFhbGvn378PDwoE6dOjg7OwviKvC5va1y5cq8ffuWS5cuYW1tLUgtloZklZqaSosWLQT/5t69e7NhwwZ27NiBi4uLzHelUik3btxg27ZtvHnzBh0dHczNzTl+/DgmJiaoq6szevRoVq9eTUpKCm3atEFdXZ3o6GiOHTtGbGwsI0eOJDAwkLVr15KTk0N2djbr1q3D3Nyc06dPl5iBEIlE3zTk8Pf3p0GDBjLbW1hYCDKOpcHgwYNp1aoVVlZW1KxZk/j4eK5cuYK7uzvq6ur07t2bzMxMfH19kUgkDBkyRBAbKUJmZiZ37tzh3LlzVK9enRkzZnDixAlmz55Nfn4+ysrKDBkyhJYtW3Ly5EkaN25MzZo12bdvHx06dGD+/Pk0btxYqEX26NGDMWPGUFBQwLx581i6dCkFBQWCsIqioiI1atQgOjq61Nf5JZSUlNi7dy8XL17E1dWVI0eOYG1tTdmyZRGJRKSmpvLw4UPq16/PunXr6Nmzp8xztXbtWnr27ElISAi5ubkEBATw8OFDmWMoKCjQpUsXQTb5a0RHR9OhQwe0tbUZOHAg9erVkymBhISEcO3aNbZt28b169dlnv9/8ccglUq5c+cOZ86cISsri8DAQMLDw6lWrRrv3r1j0qRJxYqoFKFv37706tVL8MD4+PEj2trarF27ll69eqGuri6j9QCfJ876+voEBgbSsGFD4fMnT57QsGFD8vLy2LJlC4WFhYI3xMKFC2nVqpXwrIlEIqpVq8aVK1eKlZmGz86LcXFxwjFiY2NL/O6PwNnZGV9fX+bPn0/btm0pX748QUFB3L59m02bNskEzx49euDk5ERgYGCxQkflypXD2NiYvLw8li9fjoGBASYmJqipqZGVlcXjx4+Jj4+nU6dOODo6ymXdijo1pkyZIrfvBw8ekJaWVqy3SWhoKD179iz2+oyMjAQexpUrV6hVqxYDBgygfv36HDx4kAMHDlCuXDliY2OpW7cuDRs2ZP78+QwbNox69eqRlJT0g3dUHn9Z1r1IJNIEfIDlUqn0jEgkqgQk8bluvxTQk0qlct6NIpHod+D3//x3E1dXV7n6j1QqZc+ePTx48ICOHTvSsGFDsrOzuX//PkFBQSgrK1O+fHmqVatGYGAgUVFR7N27t1SKbqNHjxbMHYrg7+9PQECAjD+7VCpl4sSJXLhwgU6dOlGrVi2Sk5O5ffs2ISEhaGpq4uzsTJUqVYiIiOD06dM8e/ZMqOkoKChgamrK27dvMTU1JT8/n9evX9OzZ0/c3NzQ1NQkLi6OmjVrsm3bNjnyX2RkJOvWrSMqKqrY67pw4QKzZs1iwYIFQuA9ePAgtWvXZv369d+9D0U4duyYkJbOy8tj3rx5TJ06Ffjs8jRgwABq164tmEWUhA8fPrB06VL69+9Pq1athHR7xYoVyc7OpkaNGkI2pnHjxixZsgQbGxuuX7+Ol5cXampq9O3bV25wkEqlGBsb07FjR9q0aUNiYiJLlizh3Llzv8Q6Njg4WJBaBqhQoQI9evT4plDLq1evOHPmDCoqKgwePFjOpOhbSE5OxtraGisrKxlCZnHw9vbm7Nmz+Pn5fVeg5F98H3l5efTp04fnz5/TrFkzXr58iaqqKi4uLigqKpKamsqSJUvYs2cPHTp0+KF9Z2dno6WlJRBav8aTJ0/YuXMnAwcOpFatWrx8+ZIjR46goaFB586dad68OUFBQXh4eAjuasOHDyc+Pl6wwC1KWZe0Sn/x4gVt2rShadOmKCoqcufOHS5dulQqeenvQSKRcOPGDfbt20dSUhJmZmY4OTkVm8738fHB3t6e4cOH07JlSyFjlpSUxIkTJwT7XSUlJc6ePcvjx49JS0tDW1sbRUVFzp07x+LFi+X2W1hYyOTJk7l+/brMhKkIY8aMIScnp1he0+rVq2nZsmWx9yI/P58xY8awadMmJk+ezJw5c2Suq8hF79OnT5iYmDBs2DBevHjBuXPnyM7ORlFRkby8vD/Euv9LBnqRSKQEXAKuS6XSDcX83Qi4JJVKv2kbp6OjIy1JhrGoRaV///4EBASgoqIiSLpGRkYKphkFBQXMnj2b1q1bC/Xib2H8+PFMnjxZ5oe8ceMG6enpHD9+XPjs1KlTzJgxgwULFsikaKRSKUeOHCEiIoKYmBiqVq2KqakpSkpKxMTE8PDhQ5o0acLbt2+xtbWlU6dOwoOekZHBkSNHyMzMxMfHR5iwGBoa4uzsjJqaGl5eXgQEBBAUFMTEiRNZtmxZsddRUFBAq1atyM/Px8rKirCwMAICAvD39/+hwAOfH/TY2FgqVaokM4P28PBg3bp1zJ07t1Q146ioKObPn0+dOnUIDQ1FTU2N0aNHy2QB8vLy8PX15dixY+zbt++7tTr4LEjUpUsXsrOzyczMZOXKlcXWNP8OcHR0JDw8XM70pSScPXuWjIwMGfnOf/FzWLhwIVevXmXy5MkoKioyceJEpk+fLjOJunr1KhKJhP379//QvqVSKcrKyqiqquLu7i5H4kpJScHT05Nnz56RlpZGeno6IpEIU1NT+vbtS15eHiEhIdy4cYPCwkLat2/PnTt3cHJyErJZkZGRgnNcSQgJCeHw4cMUFhbSv3//EvUn/mzs27cPZ2dnJBIJVatWJSsri48fPzJq1ChWrFhRog5BYWEh9erVo1mzZjLthlKplEOHDpGZmSnjfZCZmcmWLVs4ffo0kZGRmJmZ4eDgIFeO8/Hx4c6dO8ybN09ucu3j48Pdu3eZPHky48ePZ//+/cJ3nj59yt69e3F2dsbIyIi7d+9y/PhxNm7cSFpaGitXriQoKAhtbe1/lmCO6PMd2AO8+TLIi0Qivf/U7wF6AS+/t6+8vDxGjx6NWCzGysqKfv36CS0N2traGBsbM2TIEJn2jSKnoiIoKirStm1bfHx8sLOz48WLF8BnlvbXNRSpVIpYLObAgQO4uLhQrlw5wsLCuHjxIidOnJD57ubNm+nRo4fcPkQiEb169WLSpEkEBgby4MEDHj58SG5uLq1atWLnzp2sX78edXV1uSCmqakpZBSOHz/OsGHDqFWrFtnZ2UyYMEGox/bs2RN9fX12797N+PHji61jKSoq4uXlxZ49e/Dx8RFkN39GfU1JSYlq1arJfe7q6kqXLl1KTQwrW7aswCgWi8XY2dnJKY8VsW8NDQ1xcHDgyZMn321VMTMzIyQkREhF/hEp2/9LpKenc/ToUVatWlXqbTp16sTEiROJioqSsdH8Fz8GqVTK9u3bmTVrlhCERSKRXMujRCL5KSKkSCSiS5cuPH78mMePH2NjYwN8Xunv2bOHp0+fCmZPRYqbmpqavHz5kpiYGFJTU6lWrRrDhw9HW1ub169fk5yczOXLl3FycgI+y7h+Tyu+Zs2aAiv9/xIODg707NmT7du3ExISQtOmTRk0aFCxbctfQkFBgevXr2Nvb8/Dhw9p1KgRhYWF+Pn5UblyZZm245ycHNq0aYOioiL29vZIJBIuXbrE2rVrmT17tsy407RpU65du8a+ffvo378/mpqaSCQS/P39OXjwIDNmzCA/P19O4/7mzZtCVhM+O+EFBgbi5+dHw4YNkUgkP2WU9TW+GehFItGFUuwjWSqVjvzDZ/L/0RwYBrwQiUTP/vPZHGCQSCRqyOfUfTgwtriNv4SSkhIrVqxAIpFw5coVFi9ezMqVK4XWp+KyGUVewl8S1OLj44mJiZFJJbm7uzNmzBiZ9K6vry+ampr07duX2bNno6KigkgkYtWqVbRu3VrmOM+fP2fkyJHFnre6ujo1a9YkODiYQYMGMWjQIOFvBQUFHDhwoMSVuFgspkOHDmzfvp1hw4bh4uLCtGnTmDp1KitWrGDbtm2CKUpWVhaHDx9m+vTpxe5LTU2NCRMmCO5NvwqJiYkMHTqUd+/eCUpSRazfkvDs2TO2bt1KgwYNsLS0RCqV4ufnx+TJk5k6dapcKrxGjRq0aNGCbdu2lUoCuEhI6O+Mw4cPY2pq+kN1U1VVVVq0aIG7u3uJz9S/+D6ysrJIS0uTyXa1aNGCkydPMmnSJJSVlUlOTsbT01PQ7fhRODs7M2DAAI4cOULdunUpU6YMq1atQk9Pj61btwqLhuzsbPbv34+fnx8TJ07kxYsXgqhSUZCpUaMGFhYWzJgxA/g85vj5+XHjxo0/eCf+e9DR0WHOnDk/vJ2RkRGvXr3i6tWr3Lp1CwUFBcaPH0+rVq1kgvCxY8coKChg2rRpwuf169dn3rx5PHnyREa7RFlZmblz5+Lh4YGzszN6enqCTe+UKVOoXbs2+fn55Ofny3R95eTkyC0sNDU1yc7OJjY29pfZVn9vRW8CjP7G30XAtl9yJv+BVCq995/9fo0f9uorV66cwIwcOXIkq1ev5t69e7Rt25ZPnz4JTNgvMWPGDAYNGiQE20ePHvHw4UMUFBRYtGiRsDINDw9n2bJl1KpVi9jYWI4ePUpcXBx169bF3Nyc2NhYkpKSqFKlSrEiK0WGFiWlmNLS0oqdnaampiKRSErsO4XPveJHjhwBPhuzxMTEsHTpUiQSiUwGQU1NrcRWlT8L+fn5tGvXjqpVq7J06VJCQkJYuXIly5YtK/Ghjo+PZ+vWrXI+0EUWvevXr2fNmjVyrm5t27ZlyZIlrF279pcqAf4VkZmZibe3d7E1ze+hbt26f4ry2f8S1NXV0dDQEKygAYEv4+TkhI6ODh8/fmTu3Lk/pccOYGtrS+vWrfH392fevHnCavT333+XWV2qqakxduxYYmJicHV1RSwWF/sOVK5cmXbt2pGbm4udnR1bt2797oT7r4CiBdofeacVFBSE/vmScO3aNbm2aLFYTPPmzXnx4oWcW6WmpiYTJkwgLS2N+Ph4NDU1ZbKlmZmZKCoqcvr0aXJzc4mLiyMtLY3du3fz+++/C3Hj4cOHWFhY4O3tLdMR9kfwvUbhuVKp1Ocb//MG5FkNf1E0btyY4OBgpFKpoLleXHDYu3cvt2/fZu7cucTGxjJ48GBat24tk342MjLC2tqalStX4urqSseOHVm1ahV2dnbMnTuXBQsWYGhoWKKSWt++ffH29i72byEhIeTk5AiStl9CU1OT/Pz8b9rjJicny6guubi4EB8fT4cOHQRv+yLDhKdPnzJz5kxevXr1jTv3uef79OnTbN68mUuXLpXKGas4vHjxgtTUVIYNG4aBgYEgEvLo0aMSt7l+/Tp2dnZyPtDwWYu7cePGxfaR6+npCb33/0Skp6dz9+5dZs2ahb6+Pjdu3Ci1UM+XUFZW/mm75X/xGSKRiLFjx3LixAlBuElZWZlJkyZhYWEhWK/OmjXrDx3j8OHDWFlZIZVKefToER06dChW76Eo1a+trY1IJCpWaRI+j2O6urpMnz79Lx/k8/PzmTlzJjo6OigrK9OjRw9iYmL+tONpa2uTnp4u93lqauo3W6W1tLSoXbu2XEn00qVLaGpq8vDhQ6pUqcKAAQP4/fff6dKlC+7u7owePZrZs2cjlUrR19fH3Nyc7du3Exwc/Iev5ZsreqlUeuJbfy/td/4qiIuLQyqVsmnTJnJycjh9+nSx3/t6pjd9+vRiV96ampokJiaycuVKQfq1SKBn6tSpODo6lvjyTJ06FQsLC/T19WnZsqXwskZHR7Nt2zaWLFlSbC1PRUWFTp06cefOHezt7Yvd9507d+RmgsrKyoJYw4oVK0hPT6dly5aUL1+e9+/f06ZNG7p168auXbvkjnv9+nWGDh1K1apV0dPTIzw8HEdHR06fPl3sZORb+FrBD0rutwdISEjg7t27NG7cmNevX2NiYiK3fYsWLTh+/Lhc33thYSGFhYWl6pb4u2H//v1MmjQJLS0tMjMzWbZsGdeuXSM1NfWH95WWlvavx/0vwIIFC/Dz82PBggU0b94cJSUlHj16RGFhId7e3r+kFU1FRYUTJ05w//59+vXrR8WKFQkNDSU5OZmqVavKaGZUrFgRiUQily7+EvHx8cXyZ/6KmDt3Ljdv3mTZsmWUKVOGixcv0rFjR54/f/7D4lalwciRI+nVqxctW7YU+E0JCQl4eXkVy9r/FuLi4rhx4wYDBgygU6dOMudrYmJCp06duH37Nh4eHgwbNkzI+qiqqgquhn8EpSLjiUQiC2AuUO0/24gAqVQq/Tmrrv8SvuwRf//+PZ6enpQrVw5nZ2cmTJggkxp/9uwZu3btIiIigipVqvDbb79hZWWFSCTC3t6e0aNHyyjj5efn4+vrS61ateT03TU1NbGxseH8+fPF9mPC5/S6l5cXgwcP5sKFC9SqVYuUlBQiIyNZtmyZ0PJSHObOnUv79u2pUaOGXKr22LFj+Pv78+jRI1asWIGNjQ0uLi507twZDQ0NunbtyuXLl1m/fr1MC2DPnj1Zv3498+bN40sjoLdv3zJo0CAmTZok02/t7+9P586def369TfLCF+jfv36aGpqcvToUWxtbQkJCcHX17fY3uKiuryNjQ06Ojrs2LEDKysrhg4dKvM9FRUVIcNQUFBAaGgoWlpaREdH07BhQ5msyqtXr4iIiMDU1PRvM8B9jfDwcCZPnsyCBQs4efIkDRs2pGLFijRo0IBDhw7J9eZ/D/7+/owfP/5PPOP/DaiqqnLz5k2uX78upGdnz55N7969i3Vp/FmIRCJatGhBs2bNOHnyJPHx8VStWpXg4GCGDRsm8IGioqLIycnBxMSEixcvyplEpaamcvv2be7evfvLzu3PglQqxd3dnZUrVwrZiX79+jF79mwePnz4S1r8vkbTpk2ZPHkyM2fOxMLCQiDXSaVSMjMzf+jcly9fTq9evUrUvhCJRNjZ2SGRSLh8+TK2traIRCJ0dXWLzSr8KErLuj8MTAdeAH8b54z4+HiWLVuGRCIhPj6ew4cP06dPHxISEhg5ciTPnj3DwMCAypUr4+Xlha2tLXXq1CE+Pp7evXtjZ2eHh4cHdnZ2NGzYkOXLlwsys56enhgbG5eYFi5yjPsWzM3NefHiBY8ePeLt27fo6OjQoUOH70qnNmnShMOHDzNkyBBq1aqFmZkZBQUF3Lx5k/T0dPr374+NjQ0KCgo8efKEsWPHMmjQIMHDefDgwXKa8aqqqvz+++/MmzePefPmCZOgTZs20a5dOzlRFUtLSx4+fEjXrl3x8vL6pq3ml1BWVsbT05Nx48axaNEiVFVVmTVrlhybXyKRsHfvXiZNmiSY+tjb2zNlyhTatGkjQ3oKCAhAQUGB58+f4+bmhra2NikpKSgpKQkM9Pj4ePr160dQUBCGhoYEBwcL6lR/N434CxcuYGlpiYGBAYWFhcJEpn79+oL39bf69L9EfHw8wcHB31V9/Belg1gsplOnTiU6xf1KNGjQgHv37gny3jExMSxYsIAGDRqgqanJ2bNnsbGxoW/fvixYsIDMzEw6dOiArq4uL1684OzZs0yYMIF69er96ef6RyGRSMjKypIZZ0QikeAe92dh1qxZDB48mIsXL6KgoMDhw4cJDAxk8ODBODo6Fiva8yUKCgrYuHEj2dnZ3/QVKYKdnR1nzpzB39+fihUrcunSJVxdXTl06NAfuo7SBvpEqVRaGgb+Xwrm5uasXr0akUhEy5YtUVFRIS8vj3bt2lG9enXGjh3Lu3fvOHjwIMuXL5dpL7K3t2fdunUsW7aMhQsXCoYnRTrtM2fOpGvXrlSvXp2EhASZVW1OTg6PHj0qlbCMSCTC2toaa2vrH7q2Tp06ERUVxbFjx3j48CFZWVlkZWWxatUqmSDeunVrmjRpwsKFC7G2tubFixdyCn1FqFChApUrV+bevXt07NgRgHv37smtBIrQtGlTDh06RJcuXfDx8Sn1KrJSpUqcPXuWV69e0bJly2JT68nJyeTm5sqoUGloaNCoUSPevHkjBPqkpCRu3ryJkZERGzZswMbGhvz8fGrUqEF4eDhRUVFIpVJ69uyJgYEB48ePR0FBgby8PHbu3ImTkxP79u0r1Xn/VaChoSF4bzdr1oyzZ8/SsGFDypQpQ9u2bdm5cyfLly//7oSxoKCA/fv3M27cuB8yK/oXfw2oqqrSuHFj4bfT19enUqVKvHv3Dk9PT9TV1Rk1ahRisZhly5Zx9epVVq9eTUZGBo0bN2br1q107979//gqSgcFBQXat2/P5cuX6dWrFyKRiPfv3xMeHk6rVq3+1GMbGhoKLYjwmftz/vx5evfuTfXq1Wnbti0NGjSQScd/+vQJb29vbt26hba2Nm3bti2Rr/UliiaK7u7uaGtrM2fOHPr06fOHr6FUgjkikagtMAjwAoR8uFQqPfOHz+BPhIWFhfTx48cynz1+/Jj+/fuzcuVKITAV+b9XrVoVAwMDzM3NEYvFxMTEsHz5cmJiYkokOW3YsIENGzYwaNAg6tSpQ1RUFCdPnqR58+bs2rXrT7/GIvz2229kZWWVqM/u7e3Nmzdv8Pf3Z8+ePSUG5blz55KUlMSpU6cE68WOHTtibi5fpfHx8eHJkyfExcVx4MABuRbC0uD48eM4OTkxadIkmVVoTk4Ojo6ObN68Waa2OHfuXLp06UKDBg3w8/Pj9OnTdO7cmUaNGjF37lzq1q2LjY0N6enp3Lz52QupSLd+/fr1Mi9jRkYGkydPJiIi4m+l+f7p0yeMjY0ZMGCA8Jz5+vpiZGQktIbm5+fj4uJSYqYlJycHNzc3dHR0uHjxYqkGoX/x18KZM2eYNWsWCxcuRElJicTERKZOnYqKigq9evXC09MTHR0dGjVqhEgk4tmzZyQmJnLhwoU/xSHtz0ZkZCQdOnSgsLCQMmXKEBoaKvhc/F8gKyuL48ePs3nzZuLj46lSpYrgRx8VFUWfPn2YMGECEydOxNLSstTlhRcvXuDt7S1TUhGJRP8VwRwHoC6gxP9P3UuBv3SgLw5fT2xevnzJ06dPqVmzJmpqaty7d08QONDX10dLS4s3b94UK4kIMGXKFIyMjFi9ejW7du1CX1+fCRMmlNoq8Vfh/v3736zrN27cmEOHDqGvr8/r16+LVbRKS0sjNjYWR0dH+vXrR2BgIAMHDuTs2bNygV4ikeDl5YW9vT2hoaE8fPjwpwL9gAED0NDQYOTIkVStWhU7OzsqVqzI/fv3UVVVZdq0adSrV4/27dvz4sULgayooKCAmZkZjo6OmJmZMW/ePPr37y+TMi1yedu9ezfVq1eXI+xoampSrlw5oqOj/1aBvmzZsty4cQNHR0fc3d0pV64c8+fPp3Xr1tStW5dy5coxc+ZMpkyZQrNmzbC1tRUyIB8+fMDT05Pbt29Trlw5xowZ86+P/d8UPXv25MSJE8ybN49q1arx4sULnJycWLp0Kerq6uTn53PhwgW8vLyQSqXMnTuXXr16/W3JqYaGhrx69Yp79+6Rnp5O69atS10y/DOgrq6Og4MDDg4OvHnzhpiYGLKzsylbtiz169cXCK5JSUklko2LQ0lupX8EpQ30llKptHRFv78ocnNz+fjxI2ZmZmhoaHD06FEaNGjA+vXrmT59uhD4pFIp165dY+3ataxZs6ZUP1Dv3r3p3bv3n3bu/v7+LF26lLt376Kurs6AAQOYM2eOTMvMl37sxaGwsFDwO9+wYQOzZ8+WqU1LJBIOHjyIjY0NVlZWvHnzBnd3d2bMmMGuXbs4cOAA3bt3p2zZsiQlJXHs2DFEIhFWVlY8fvy4RJ/40qBr167ExMRw5swZlixZQlhYGC1btmTy5MkoKSnx9OlT1q1bh7GxMerq6ixfvlyGwRwZGUlycrJQbiiCsrIygwYN4vTp0yQnJwv3oAipqakkJyf/LUl5jRs3xs/Pj4KCAjm1LfhsjuPi4oK7uztbtmwhPj4eiUSCkpISNWvWFMRTNm/ezP79+7l+/foPp+8vXbrEunXr8Pf3R0lJic6dOzNz5szv1i3/xa+BWCzm6NGj3Lp1SyCefnnvlZSU6NOnzy9J/f5VoKCg8FMLil+FrKwsNm/eTFhYGBYWFoLyqomJSYnmUHp6erx580bOkrYkBAcH/3LeRGlT9/uAtVKp9PUvPfqfjKLU/cGDB3F0dERZWRllZWX27t3L3r178fHxwcTERE75TSqVMmPGDDp16sSZM2eIjo7+pazZH4GXlxf9+vWjd+/eWFlZkZmZybVr1wgICKBMmTJIJBIaNGhAeHg4hoaGcoz0IhS1Xp06dQpHR0cuXrwocBUSExO5ceMGysrKzJw5E1VVVe7fv09kZCRnz54lKSmJ6dOnc/ToUWE10KpVKwYMGEBERAQbNmwgPDxcpnf/ZxAeHk7jxo2ZOnUqtWrVkvlbcnIyS5cuRU1NjRYtWvDu3TtB5MXQ0BAlJSXmz58vt8+UlBTmzp2Lubk5qqqqDB48GGVlZTIyMgQW/9atW//Qef8dUOSMtXjxYpkuEYlEwubNm+nQocMPtQzNnz8fDw8PevXqRaNGjcjNzeX+/ftcvnyZgwcPlsgu/hf/4u+K/Px8QT2vbt26+Pj4UKZMGcqVK4eSkhL29vaMHTtWbsL86NEjQb68NLyZyZMn4+npKZNF/aOp+9IG+jdATSCMzzX6v0V7nYWFhXTfvn20adOGOXPmULVqVfz9/Tlw4AChoaF0796dOnXq0KZNG7ltd+3axatXr5gwYcJPySz+CPLy8rh58yYJCQnUqVOHpk2bCr3lpqamdOvWTUbB7/bt25w5c0aQ1ty6dSsaGhqEhYWxcOFCOW33hIQEwZGtWbNmSKVS7t+/z9atW7l8+TK1a9fG1taWJk2aCCveY8eOUb16dRlCYXR0NJ06dSI7O5sGDRqQlJTE8+fPOXbsmNxq+mcwffp03r17V+Jk5f79+5w/f56EhAQGDBiAubk59+/f59GjRyQlJbF7926ZWvPNmzc5ceIEOTk59OnTh9TUVHx9fdHT0yM6OprBgwfj6ur6fzaJ+29i1apV3L59m99++03ub5GRkaxfv564uDjhsyJHrYoVKzJp0iSZDIqfnx/du3dn+fLlcr3ZQUFBbNiwgaioqO/qjv+LX4sHDx7w4sULqlatir29/T9eDfK/DU9PT8aPH8+SJUt48eIFGzduBD5b5+rp6XH37l1UVVXx9vaW0yIpGh+Le/++xJkzZ4iLi8PHx0fm8z8a6EtbCLAHagEdgG5A1//8/18ejx49omHDhgKj3tLSEg0NDc6ePcvDhw+Jiooqdrvg4GBMTU0FJauCggLOnj1Lt27dsLKyokePHpw/f/6nFeKKcOHCBapWrcqsWbM4dOgQgwYNwszMjNevXxMSEkJSUhKNGzeW2cbX15eRI0dibGyMoaEhY8eOJS4ujnbt2rFo0SIOHTpEcHAwoaGhnD59mkWLFrFo0SKBDFLUh3vs2DF69eqFjo4OFhYWwsMZFRWFt7c3v//+u8xxDQwMePbsGa6urpibmzNo0CBCQ0N/SZAHuHz5smDWURysra2JiorCycmJsLAw5s+fT1JSEn379qVKlSqcPHlSKLU8efKE8+fPM2/ePLZs2UJYWBj6+vq8ePGCvXv3EhYWxo4dO/4ngjx89ssuyXWwatWqfPjwQXiWN23axIQJEwTrZhsbG9LS0oTvb926lQ4dOhQrwFK7dm1q164tZ+L0L/5cLFy4kF69enHy5EkmTJhA3759/+Ve/GJkZmaira2NWCxm3759VKxYkbFjx9KrVy9sbGyYOnUqHz584Nq1a3LbHjt2jKioKPbv3y90zHyJ3NxcTpw4wcOHD4XOrl+JUtXopVJpxC8/8n8JFStWJDo6WqjPpqWl8fHjR27dukXbtm3x9vamXbt2Mn3cT58+JTMzkytXriAWi/n48SMdOnQgOzsbW1tbLC0tiYuLY+bMmaxYsYJr1679FJnrwYMHODg44OLiIgjfSKVSvL29sbOz4+zZsygpKcnNzBUVFWUkS7Ozs1FRUeHFixeoqKjw8uVLHj58iLa2Nra2tty+fVvoRf8aW7dupVu3bkyfPp2GDRuSmppKYGAg27dvL7YXW0FBgc6dO9O5c2fhs+joaNatW8erV69o1qwZU6ZM+ak0fn5+/jcDb1Et+siRI5iZmbF582aBjFO3bl1WrFjBy5cvsbCw4OHDh3Tp0kWovxfpCOzcufOHbXb/CahevbrcKqEI0dHRVKxYUciGLF++nNmzZwv3af369Zw5c0YwYXr16tU3OSnGxsaCy+O/+PPx8uVL3NzcWLlyJVpaWhQUFLB06VJOnDjBwIED/69P7x+D5s2bExkZiZeXFykpKQAy46pYLKZevXo8f/5crnSlo6ODr68vY8aMwdnZmWbNmlGjRg3g88Lqzp07NG/eHD8/Pxl1w1+F77nXPZVKpY3/6Hf+L9G5c2e2bdvG8uXLqVmzJgEBAUyYMIFPnz5RpkwZhgwZwvz582nRogX6+vq8f/+ely9fcvHiRaEe3bdvX/T19RkyZIgQdOvWrUvr1q05cOAAAwcO5Pr16z98bsuXL6dPnz4y6nYikQhbW1vevXsn9KYHBwfLuOnZ29uzefNmCgoKUFZW5ujRo/Tv35/4+Hh8fHxo2bIliYmJBAQEsGDBgm8GNi0tLby9vfH19cXX15eyZcty7ty5Ust1JiUlYW1tjYWFBY0bN8bHx4dz587x5MmTH27ZsrS05Pnz5yW6yL158wZlZWWsrKxkHP3gMxN91apVPH36lLt37/Lhwwc+fPgg/D0hIeEf1yuel5dHQEAAIpGIRo0afZNNPXLkSFatWoW9vT1VqlRBIpEIFsgRERFYWVmRn5+PkpISubm5Mo5aZcqUkVGZ1NLS+qbUblpa2jfNdbKzswkNDcXQ0PD/lDX9T0FISAg1a9YUMiyKiorUrVv3l2ik/4v/j/Lly+Pl5SXwvVRUVHj16pWggSKRSHj79i2jRxfvA1e2bFlOnjxJTEwMe/bs4e3btwLHavPmzd+10/4j+GaNXiQSZQPvv7U9oC2VSv+S/p5FZLyCggIhddKoUSPBi7hLly6MHj0aJSUljhw5QmFhIZMnT2bEiBFCoHvy5AldunRh06ZNxbY8FJEnvLy8Slw1lwQ1NTXc3NyKrWUGBATg6+vLqFGjmD17NmPGjKFevXrk5eVx69Ytjh07Rvny5dHT06Nly5aYm5szduxYXF1dhbaOw4cPo6+vj5ub24/fvFJi7dq1XLt2jbFjP7sGS6VSlixZwqpVq0qlBPUlHj58SM+ePVm2bJlcWrigoIDly5cTGxvLjh07vll/vH//Pvfu3SMiIoKGDRtStmxZrl69yqJFi3BxcSmWpf5XR05ODjExMejp6aGurs7Hjx+xs7MT5DF1dHSEvukv4evry/379ylXrhy5ubnMnz+fjh078vr1a1JTU+nSpQtisZhbt25RpUoVwZ/88ePH9OrVi6ioKE6dOsXTp0+F7MiePXtwd3dn2rRpcueZl5fHpEmT8PX1LTYjtG/fPqZOnUqZMmX49OkTs2bNYvbs2X/CHfvfwatXr2jdujWrVq1CS0uL/Px8Qejr3xX9n4MPHz5gZ2dHaGgoffr0EWr0CgoK3Llzp1ifku/h1atX3Llzh5o1a9KuXTuZePNn99HL24XJ49s6r38BKCoqyhG8bGxsOHLkCLNnzyYlJYVWrVqxZcsWuQBz+vRpmjVrVmJfo6KiIjY2Npw5c+aHA/23zFyKzF9GjBiBsrIyCxcu5MOHDwLzc/bs2Xh5eQmKTYmJiWhoaMiYkxgYGHDw4EHq1q2Ls7PzD51baREdHS1jLysSidDT0/spVykbGxt+++03lixZQv/+/WnSpAlisZh3795x9uxZkpOTGTBgwHeDtLGxMfv27WPcuHFERkYSFhYGfC5TzJo1iwoVKuDk5MTs2bP/FkIxGzduZOnSpaiqqpKVlcXkyZMJCgqiSpUqQjp97969zJ49mx07dgjbbdu2jcWLF2NtbU18fDy5ubmcOXOGpUuXEhMTw4YNG4RSiY2NDUuWLOH8+fNs2bKF+fPnc/r0aWEV82UL4qBBg1i7di0nTpyQ6ctOT09nx44dgg/D13jz5g1Tp05lzpw5GBoakpSUxMqVK2nSpAkdOnT4E+/gPxumpqZMmDCB+fPnY2pqSlhYGI0aNaJ///4/tT+JREJiYiKqqqp/uJPmn4pKlSrx6tUr7t+/j7u7O4GBgfTr1w9HR8efCvKLFy/G1dWVxo0bEx4ejp6eHjdu3PguS7+0KBXr/u+K4pTxiiCVSvH39yciIgJ1dXVatWpVbBrR2dmZT58+fVN96dy5c+jr67N27dofOr/u3btTsWLFYgc5Nzc3unbtKqyapFKp8PJpaWmRnJxMjRo1mDZtGrVr16awsBAnJydGjBhB06ZNycnJYeXKldSrV48HDx6wd+9eObe7wMBA3NzcCAwMJD8/H319fUaNGkXXrl1LHQCvXr0q6NZraGiQkJDA/Pnz8ff3lyk3/AhOnTrFmjVrePHiBQoKClSsWJExY8awZMkSdu3aVSoCXUBAAG5ubmRnZyMWi6latapAYIyKiuLIkSOYmJhw+PDhnzrH/xbOnDnD5MmTmTp1Knp6eiQlJbFmzRri4+OZNWuW0G/7/Plzbt++zf3794HPQVdPT49Vq1ZRsWJFpFIp27dvp127dnz8+JH4+Hg5FcXr16+Tn5/PgQMHvnte8fHxDB06lICAAMzNzcnNzeXZs2coKyuTl5cHfBZ0Wb58uZCSXLZsGX5+foKzYkZGBmfOnEEikbBhwwbq1Knzt8u0/JXw4MEDXr58SdWqVenYseMP38vCwkI2btzIpk2byMzMJDc3FxsbG5YtW/anmMb8i88ompitXbsWbW1tJBIJa9euZcyYMYLw2n9LGe8fhZMnTzJ//nyysrIwNDQkMzOTsLAwhgwZwpo1a2RS6XXq1OH48ePf3F94eLhgK/gjmDdvHp06dcLAwEAYsIsU596/fy/TiiESiWT09HV1dTl69ChDhgyhatWqfPr0iZycHLZv386RI0fIzs7GwsKCfv36Ub58eXbt2iUE+vj4eAYMGMCbN2+wtbXF3t4eBQUF4uLimDt3Lk5OTuzfv5927dp99xrs7e3p1asXLi4uGBkZERoayrJly346yMNnTkTfvn3JyMigoKAAbW1twsLCcHV15cGDB7x9+xZdXV3s7OwoV65csfto1KgRO3fuJCEhgalTpzJz5kwhW2NoaMiUKVNwcXHh9evXf2lTj61btwqpQfhcJxw2bBhubm48fvxYEOnw8/MjNjZW2O7Dhw9oaWkJz4xIJKJGjRpERkZSvnz5Ys2YcnJy0NDQID09/bu188qVK+Pp6cm7d+94+PAhbm5u1KxZk6FDh1K9enXS09O5ceMGTZs25cGDB1SvXh0NDQ1ycnJ4//49169f5+nTp+jq6qKkpESbNm3Q0dFh4sSJjBgx4t/WvJ9A06ZNadq06U9tK5VKBaOvCRMmUKNGDfLy8vD19aVr166cPHmStm3b/uIz/hfwWZbd1NRUyJ6IxWIsLCy4fPkyb9++JTk5+Q8f438u0G/bto1ly5YxevRozMzMhFlvcnIyx48fx9bWFm9vb0E1bsiQIcyZM4f4+HiZFHURYmNjef369U/VwqysrDh48CBjxoxBS0uLSpUq8f79eypWrMjt27e/y+S3t7dn4sSJrF+/noYNG9K1a1cKCgoICAjg5cuXqKqqIpVKUVdXJyMjA/gcAJo2bYqVlRXjxo2TSTMVaQq8ePGCAQMGcOjQoe+6cIlEIjZt2sSUKVMICgqiYcOGMop9fwRfEsIKCwtJT0/Hx8cHGxsboqOjhfpucWnionMLCwuTISoVQVlZmSZNmuDp6fnTgT4/P59z586xbds23r59i5KSEh07dmTixIkYGxuzc+dOfHx8qFmzJs7Ozj+lwJeSkiL3HOjo6KCgoMCLFy+YNWuWUObJycnB399fcLbLzc3l1atXmJqakpeXx+PHjxk3bhytW7emVatWtG/fXvitUlNTuXr1KpmZmRw8eBATExM2bNhQrMZEEXJycggPDyc6Opr4+HhWrFghpPHLlCkjKLKNHTsWDQ0NPn78yOPHj/H396dbt26MGDFCmFBIpVJevnzJ/v37cXV15caNGyWSMv/Fr4evry+3b99m5cqVgq+HsrIybdq0QVtbm3HjxjFhwgT2799PWloarVq1YubMmaV2SfwXJcPExIT379+Tm5sr3PsHDx4QHh6OmppasW2sP4pSB3qRSFQNqCWVSj1FIpEaoCiVSv+4Ue5/EeHh4cydO5dly5bJeajr6uoybtw4tmzZwrJly1ixYgXwmSm5YsUKVqxYwfjx4wXFNqlUSlBQEG5ubqxZs0YmKP0IOnfuTEREBN7e3iQkJFC7dm2aNGlSqrTb/PnzOXbsGGvXrpVZ2bZt25aMjAw2b96Mm5sbycnJgmOdg4MDTZo0+aYsZv369XFxcWHw4MGEhoaWqnXQ0NDwTx2Yb9++jZ6eHvPmzRP4EtWqVePIkSPMmzevxO0+ffpUbN8qfO6L/Vkmfnp6Op06dSIlJYX27dvTv39/8vLy8PPzo23btmhoaKCnp4e1tTXBwcFYWFjw4MGDH850dOrUCW9vb5m09q1bt2jYsCEjRowgJCQE+MxLOH36NGfOnMHS0hJVVVWOHz9O//79qVSpkqDHMHbsWBQUFJg3bx5z5szB2toasVjMnTt3MDAwYO3atWhoaODv70/v3r25fft2sZK2RYN9Xl4eHz9+pFOnTsWy/qtVq8aFCxcYPnw4ycnJaGtrs3jxYhkuCXyelNWvXx8zMzMuXbqEnZ0dfn5+JWZs/sWvxb59+7C1tS3WvKthw4bs2bMHNzc3+vXrR9myZXny5AnNmjXj5s2bcjof/+LHYGZmRpcuXVi0aBGWlpZEREQQERGBo6OjIJS2Z8+eP3SMUgnmiESiMcApwP0/HxkA5/7Qkf8PsH37dlq1aiUX5IsgEono06cPu3btEuqMAE5OTqxYsQJ3d3fmzZuHq6sr8+bNY9euXaxbt05OWOZHoaioSLt27Rg8eDAWFhalCvLBwcFs27aNmTNnFjsYampqMm3aNF6/fk2FChUYMGAAwcHBPHjwgJ49e353/7Vr16Zhw4bftXCVSqWEh4cTFBQk04L1q3Hv3j1sbW1lSJHNmzfn7du339wuNDSU+Ph4ISAWISEhgYCAgFLdi+IwdOhQ1NTUmD9/Ps2aNaN8+fJUqVKFXr16sWzZMtLT02nWrBnNmzdnyJAh2NnZsXr16h8+zowZM0hKSmLVqlWcO3eOZcuW8fTpU/r27YuSkhJ169albt26KCoqCjbMRXjx4gX5+fmoqalRp04dnj59ioODA4WFhbi4uBAQEEDHjh0xNDREV1eXJUuWUKZMGcRiMdbW1nTp0kWOdxIVFcWFCxcYPXo0ZcqUYeHChRgaGpaYxbl16xajRo2iQYMGPHnyhIULF8oF+S8hEono1q0bNWvWZPny5T98v/7Fz+HDhw/fHBd1dXXp0aMH5ubmGBoa0qtXL/r168eUKVP+y2f6z8SePXvYvHkzBgYGDB8+nPT09BKN1H4GpVXGcwKaA2kAUqn0PVD8U/EXxrVr17C0tPzmd4oc674W/BgxYgRhYWHs3LmT1q1b06BBA4YMGfJ/Npt1c3MT0molQUVFhR49evD06VPKlSuHlZUVzZs3L7UanK2tLdu3by/x7x4eHtStWxdLS0vs7OzQ19dn9uzZJa6g/wgMDQ1latAAMTEx3+z3T05O5smTJygpKbFq1SrOnj3Lq1evuHz5MrNnz8bFxeWnzHjevXvHvXv3GDlyZLHdGLq6uvz+++9cuHBB+Kxu3bo/JSJTtmxZ/P39mTZtGmpqagIHorhg+ezZM8Gb29/fn5UrV7J69WpmzZqFs7MzGzZs4OnTpwIzv3r16kyZMgUzMzOZMlYRTExMhHOOioqiW7du1K9fn+XLl/Py5UseP36Mu7s7lStX5vXr4m0wUlNT0dHR4datW7Ro0aLU+gxdu3bFw8PjT3mW/oU86tSpQ2hoaLF/KygoIDY2lipVqsh83rJlS/z8/ISy4P8iCgsLuXLlCiNGjKBz58706tWLhQsXEh0d/UP7EYvFdO3alXXr1uHo6EitWrV48+bNLzvP0gb6XKlUKiwVRCKRIp9tav9WyMvLK9FX/kt8vTIqgkgkwt3dnSNHjqCiosLbt29p3rz5H06r/Axu3Ljx3UkLfG6bKiws5ODBg+jr68uZxXwLxsbGhIWFFSuluXDhQhYtWsTAgQPZunUrGzZsYP78+dy5c4eOHTv+8tX9mDFjePDgAd7e3uTl5REaGsqOHTtKNE9JS0tj7dq1zJkzh06dOqGnp0dQUBAHDx4UJnxLly79qXM5dOgQzZs3/6ZATcOGDUlJSREmJwEBAVhZWf3U8VRUVBgyZAh79uyhdevWnDp1Su43uXnzJnl5ecL92Llzp0wNvmg/vXv3xt3dXWbbmjVrEh4eLnfc0NBQjI2NiYmJoWnTpmhqauLq6srUqVNZtGgRW7ZsAT4z/r28vIiMjJTZPj8/n8zMTE6ePMmtW7do3759qa+5UqVK1KxZk/Pnz5d6m3/x8xg7dize3t4kJibK/e369etoa2vLBfr/dRw4cIDq1aszefJkQRWvWrVqPHr0CFNTU3r27El8fPxP7XvlypVs376da9eu8eDBgz98rqWt0fuIRKI5gJpIJGoPjAcu/uGj/5dRp04dgoODMTIyKvE72dnZxMTEFEvwunTpkmAZW7Qqbt26NVOmTKF3797/VU/zL4kb34KqqiqFhYWIRCLU1NR+yOe46Ltft2AGBwezZcsWVq9eLZNR0NPTY+LEiaxevZq9e/fi6OhY6mN9D9WqVePatWuC9aqKigrNmjWTYwIX1cnPnDnDiBEjmDVrFgUFBWzdupXDhw+jq6vLxIkT5RwLfwQJCQnfzQSIxWI0NDS4du0aubm5BAcHy/S4/ywOHTpE586dmTt3LtbW1igpKREQEEBGRgY3btwQ2iLj4+OLndRVrlxZbjDv2LEjU6ZM4ezZs3Tt2hUlJSWCgoI4d+4c58+fZ+7cuVhZWcm040mlUvz8/Hj37h3x8fGIRCIWLVqEhYUFlpaWJCUl4enpiaGhIaqqqrx//17GNa84FLWQikQioRQSEfFZffvcuXNMmTKFT58+0aZNG/bu3fvNEsDfHUXv3H+r3bBWrVosWrSIJUuW0LVrVxo0aEBGRgY+Pj48efKEMmXKyNk837t3D2tr65/mJ/2dIJVKCQwM5OPHj1hbW7Np0yZ27NjBuHHjqFWrlszv1KxZMwYOHMjFixexsrLi7t27P0zE7d27N5UqVcLNze275cnSoLSBfhbwG/ACGAtckUqlu/7w0f/LcHR0xMnJCTs7uxIDno+PD23atClWb/jMmTO0atVKJvVdpUoVatSowalTpxgzZsyfdu5fw9DQkKioKMGspyRERkYKNfwKFSoQEREhSDZ+D1FRUVSuXFlOAMLd3Z3WrVsXWzYQi8V06dKF7du3ywT6yMhIofUvKSkJNTU1WrVqhbOzM61bty7VgGZpacm9e/eQSqVs2LCBDRs24OjoSMOG/4+9sw6LKn3//+vQSgkIotgd2AoYqIjYXdjYsagotq6CnRjY3a6NnSiCoqIigogNthh0DzDn9wcfzs9ZQkBQd7/7ui6vXWbOnPPMzJlzP+d+7vv9roO2tjYJCQn4+flRp04dtm7dKunxq6qqMnHiRKkg8UcxNDT8bhpeLpcTFxeHvr4+DRs2ZPDgwfkyEUzXzL569SqnTp1CJpMxe/ZsunbtqpBhsLCw4Nq1axlMgvz8/DJkgpSVlbl8+TKDBg1izJgxKCkpkZSURHJyMj179iQ6OprVq1crvGbnzp28fPmSkSNHUrVqVamd7ty5c/j7+1OrVi3s7OyoWbMmnz9/xsvLK9vv+NatWxw+fJiEhAREUURHR0dqKbxz5w7Dhw9n7NixlChRgqNHj9KnT59MzUP+6aSrc27btg1IK551dXX9KcJODg4O1K9fn5UrV7J8+XIKFy5M79692blzJ0OGDGHFihV06NBBWk66dOkSly5dKvBx/Wo+fPhAp06dCA0NxcDAgJcvX6KpqZnlEhqkqZ727t0bLS0t2rZtS0BAQLYZwMxo0qSJ5GH/oxO+nNrUOoiiuOZ7j/1u/F0wRy6X07JlS1RUVBg2bFiGAPbw4UPWr18vVTX/nTFjxhAdHU2XLl2AtCr+zZs38/HjR5SVlalVqxa7d+/+oR7ynHL48GEWLVr0XQvd9evXU7p0aTp16sSrV69YsmQJ69evz5F6086dOzEzM8vgU96lSxfKly+fZc9ubGwsDg4Okjzr6tWrcXJywtLSkubNm2NoaCi1grm7u1OpUiWOHz+epzaSBw8ecOfOHWJiYtDR0aFZs2aEh4fz5s0bzMzMCkQ/+vHjxzRt2pS1a9dmeQH28/Pj/Pnzkhb9z+bLly/UrFmTdu3aYW1tjYqKCvfv32f79u2cO3cu08newYMHGTNmDDKZjNGjR2NmZoa/vz8rV65UkFZ+9eoVS5cuxcXFRWpDTcfNzY2LFy+ir69PyZIlKVeuHD4+Prx79465c+dmelfv7e3NgQMHsLe3l3QB/P39Wbt2LaNHj6ZQoUI8evQIW1tbIG3N2M7Ojri4uFy5D378+JF169YRHh5Oy5Yt6dWrV45f+yPI5XK+fv2Knp7edy/2ixcv5sCBAzg4OCAIAmvWrKFXr17Mnj37p4w1K2QyGRs3bmTXrl1ERUXRrFkzpk+fTtWqORFP/WfTsmVLihYtSvfu3REEgUmTJmFnZ5dpN0pmLFiwgNmzZ//Q+fazbGrtMnlscF4P+qtQUlLi1KlTKCsrM3nyZE6ePImfnx83btxgxYoVbNy4ETc3N8qXL8+jR48yrDMPHDiQq1evEhkZSVxcHIsXL6ZNmzbs2LGDzZs3U6lSJVq1apXp+n5+07VrV2JiYnB3d89yG19fX+7evUvdunUBKFy4MHK5nMuXL393/x8+fMDDw4P169dTq1Yt1q5dK70vfX39bEUcIiIipAC4fv16XFxcWLRoEYMGDaJMmTIULlwYfX192rRpw5IlSxAEgQ4dOuTpc6tTpw4jR45k0qRJ9OjRAzs7O2xtbVm7di1169bFwcEhS5nhvFKtWjUaNWrE7t27M61fiIiIYO/evcyaNeuXKb0ZGhri6enJ27dvGTVqFKNGjeLChQscPHgwy4zO9OnT6dmzp9QWKAgCderUoWTJkhw4cIDly5ezdetWLl++TIsWLTIEeQAbGxtiYmKoV68epUqVktT2hg0bxpUrVxBFkdjYWOm7lsvlHDp0iPHjx1O9enUEQZCOa29vz/nz59HU1FQw0YmOjkZFRSVXd7kfP36kQYMG+Pn5kZCQwJQpUzJMYAuC27dvU7JkSSpXroyuri7r16/PdvuLFy/SqVMndHR00NbWpnPnznkyzMpv1NTUcHBwwM/Pj+DgYKkQ999OaGgovr6+dO3aVZLjlsvluZI7t7a2xtXVtQBH+X2+517XF+gHlBME4dQ3T2kDPy7X8wvQ0dHhwoUL3L17ly1btnDnzh0KFy7MmDFjsLW1Zd26dXTu3JkiRYoQFxfH5s2bpZ7zxo0bM3bsWKZMmUKxYsWoWLGiJCiipKRE+/bt8fPz4+zZsxnkRfMbNTU1Lly4gJWVFa9fv6ZNmzaSS136+qiXlxcdOnRg7ty5aGtrExcXx6BBg/jrr7/Q1NTE0tIy032/f/+eefPmYWlpSffu3fnw4QM7duzg9OnTnD17loEDBzJ8+HDatWuX6RKIu7s7SUlJvH79mpkzZzJ//vws17SVlZUZNmyYdCeTrt2eFxwdHSlSpAgTJ05EEATi4+OZP38+zZo1y1Y3IC/s37+ftm3bsnDhQlq3bk2lSpWk+oBLly7h6Oj40+4Ys6JKlSq4u7sTGRmJTCbD0NAw24lHdHQ0pUqV4uvXr8THx1O4cGGSkpIIDQ1FQ0ODNm3aEBISgru7e5YCUVpaWqipqdGmTRu0tbXp0KED69atIykpiWvXrhEQEMDXr18RRZGGDRvSunVrRFHM1O2uTp06bNq0ifbt2+Pq6sqePXsoXrw47u7uzJgxI1f1JqtXr5a0ByDtt+zg4MDkyZMLTIUvLCyMzp07M3jwYBo0aMCnT59YsGABlSpVylLb38DAgPfv30sZxQ8fPuSbANV/5J6kpCRUVFSkc+3+/fs0adIkV+dew4YN2bRpU44UJwuK702JbwIfgaKAyzePxwABBTWogkYQBMzMzDJUQXt7e7Nq1SoWL15M0aJFefnyJUOHDqVp06bSmv2sWbMYNGgQf/zxR6aGAyVKlMiToUteqFSpEvfv32f16tUsXrwYFRUVBEEgISGB/v37c/fuXUmO9NOnT5iYmFCoUCFGjx5Nx44duXr1KlZWVlSvXl2SwHV3d+fOnTsMGDBAksw1MDCgevXqLFq0iH379jF48GBKlSrF9u3bJdMdSCtYuXbtGj4+Pmhra7N582bq1q2bqaLgtygpKdGuXTvWrFnzQ4H+6NGjrFy5UgpmhQsXpnXr1uzfvz/fA72uri5eXl4cO3aMdevWsWfPHtTU1GjdujUXL178rUREvle05unpyapVqyhUqBA7duygVq1azJkzhzp16hAQEIBcLmf69Omoqalhbm7Ow4cPefjwYaYSyelqXunBU0lJiZ49e+Ls7IwgCPTp04d69eoRHx/PoUOHJJ2G7CYgBgYG3L17FxcXF75+/cqCBQvo169frj6DL1++SGv+6Z9J4cKFiYqKKrBA7+vri4mJCQ0apGVcixUrRsuWLTl//nyWgT59Yvrp0ycEQeDOnTt4enoWyPj+4/uULl2a4sWL4+3tjaWlJbGxsdkWc2eGiooKOjo6kjX6ryDbQC+K4mvgNZA3AeV/GCdPnqRGjRpcvXoVQRCwsLCgVq1aXLp0STLiAChVqhSjR4/G0dGRHj16SLO75ORk/P3989y2lReMjIxYtGgRc+fO5f3796SmpmJiYqIwCdHW1lY4wapXr86zZ89Yv349s2bNkh7X0tIiIiKCDh06ZDDAUVZWpm3btmzfvp0hQ4Zw+vRpBg0axLhx46hVqxaampr4+/ujrKxMv379OHbsGB4eHlhZWeXofaTfvb1///671dm5paDS56qqqvTp0+cfbQV6/vx5Bg4cSI8ePRg6dCgXL17k3r17qKuro6ysjIODAytWrFBYWy5fvjzXr1/P4BMgk8nYu3cvNjY2Cnc8xsbGJCQk0Lt3bynoaWlpMXToUBwdHZHJZDx79izDXb2/vz+lSpWiePHiCIKAi4sLecXKyoq5c+diYWGBjo4OV69eRVdX97uT0B8hfclBLpdLn0d0dHSWks2Q9tv09fXlyJEjiKLIhg0bCtSn/D+yRxAE9u7dS5s2bbh37x6fPn1SmDDmlMTExEyXun4WOVXGsxAE4a4gCLGCIMgEQUgVBCG6oAf3s0nX4U5NTSUpKYn58+fz/PlzDA0NCQ8P59SpU1y9epWUlBTatm1LsWLFWL16NYGBgfj7+7N8+XIsLCyki9nPRFVVlbJly1KhQoUcWRuqqKjg5uYmpVmrVKlCkSJFKFasWJb9soaGhoSFhQFpSyAnTpzgzp071KpVCw8PDwwNDSlRogR79uxhy5YtREVF5djmUklJCT09PSIjI3n9+jX+/v6kpubOAbl3794cO3ZMWjePi4vj0qVL9O/fP1f7+b+Ek5MTQ4YMwdrampo1a+Lo6EiJEiU4duwYbm5ujBs3Dk1NTdzc3EhKSuLJkyd4eXmRlJTE4sWLWb16NdevX+fUqVM4ODggk8no3LmzwjGCgoLQ0NDIoIsuCAJly5ZFSUmJFStW8PjxY0RRRBRFAgIC2LZtG4sXL852onb//n2GDh1KuXLlMDIyolKlSkyaNCmDEuKAAQPo3r07Dg4OjBs3josXL3LmzJlcpWBzi5mZGUZGRmzbto2goCDOnj3LrVu3GDp0aLavK1OmDJMnT2bKlCn/BfnfgLp16/Ly5UvGjBlD48aNefToUa5e/+LFC3R0dH5q+/XfyWk1yzqgD3AEaAAMAjIuqv2DuXnzJkFBQaxatUrqC+3QoQOOjo6cO3cOW1tbKleuTGxsLFFRURw+fJiLFy+yZs0ajhw5IlXyp9sKFgQymYwTJ07g7++PkZERffr0ybQNMCeIositW7dYvnw5xsbGiKIoFSc9evSI5s2bZ3jN48ePMxShVKpUibVr19K5c2dsbW2lNP7p06fR0tLKsWqWKIpERUXh4ODA/fv30dLSQklJiWPHjkl6z9/DxcWFDh06MGXKFEqXLs2jR48YMmRIgddL/JMJCQlRCDxKSkqULVuWly9fSh0qI0eOZPHixRw5cgQdHR2GDh3Ks2fP8Pb25v79+zx69IjU1FSKFi3K58+fef/+veR78PXrV7Zv345MJuPJkycKd+2iKPLmzRtmz55NQkICW7ZsIT4+HlEU0dfXZ+vWrVnaQ0dFRdG7d2/u379P/fr16d69OyVLliQ5ORlvb28aNGhAjx492LhxI6qqqgiCwLJly5g1axaRkZGYmJgUeMuaqqoqly9fZvr06Zw/f54SJUpw/fr1f1TwjomJ4c2bN5QoUeKXBqpfjba2NoMGDaJ3796YmJhkaXKWGVevXsXe3r5AJ5XfI6ftdfdEUWwgCEKAKIq1/veYnyiKdQt8hD9Adn70f2fChAmEhobSvXt3hcd3796Nt7c3S5YskeQ7/fz82LJlC8+fP8+xpOePEhQURJs2bTAwMKBy5cqEhYVx9+5dli9fzqhRo3K9P5lMhqamJnv27JFa7TZs2MDdu3dRVVVlwoQJCmnZz58/M2/ePE6cOJHBm1omk1GuXDl69+5No0aNiI+PZ/ny5ZQvX57ExMQc6QsEBgayefNmKlSogL29Paqqqnh7e3PixAmCg4Nz1A4IacHjzp07vHnzhoYNG+Z6Pe3/Gp06dcLAwEDSHIiPj2fq1KlcuXJFmtStWLGCw4cP8+jRIxo0aICvry9mZmY0b95cKhT7+vWrVJ8hCAImJiaoq6sTEhJC165dOX/+PMnJydjb21OnTh0SEhI4cuQIjx8/Zv369bRu3ZrY2FiuXbuGiYlJtsZOsbGx1K5dm4SEBKKjozE0NEQulxMWFkbDhg1p27YtxsbGrFu3jtKlS3PkyJFfepH9p3L8+HGGDh2Krq4u4eHhLF26lD/++ONXD+uXM23aNLy8vHBwcPjuefXy5UuWLl0qZYbzys/yo48XBEENeCAIwjLSCvT+Vb+cdKvPvyMIAtWrV1cI6HXr1qVmzZocOHDghxTWckpKSgrt27enc+fOCnfaXbp0Yfbs2dSuXTuDMEpERARbt24lLCyM1q1bZ1CQU1NTw9LSkl27dtGzZ09CQkK4ffs2M2bMoEmTJvTu3RtTU1PKlSvHp0+fuHXrFosXL84Q5CGtAEsQBKmvvnDhwrRs2ZLg4GB8fHzo2bNntncDoihK4iedO3eW1oObNGmCm5sbgYGBOe5ZFQQBc3PzHIsC/Y6kBzxdXd1cV/jmlqVLl9KiRQvevn1L0aJFuXnzJr169VLI3HTo0IFZs2ahpKSEuro6rq6uGdTQDA0NqVatGgMHDuSvv/7i4cOH9O7dm0mTJlG4cGFu3bqFpaUl+/fvZ+3atSQlJaGpqUmDBg1wcHBQCNqfP3/G1taW9evXZ+iTl8vlNG3alJiYGHr06KHg3RAdHc3Vq1dZvHgxtra2ODg4sGjRIrZv356jyebnz5/5888/OX78OADdunVj4cKFWZq9/Jt5/fo1w4cPZ/r06ZQvX55Pnz5J7mo5kd7+NzNv3jysra3ZsmULw4cPzzIz9OLFC1auXMnu3bt/KMjnBzm9ggz837ZjgTigFJC/Zcy/mB49enD9+nXi4+Olx6Kjo7l27ZqkTvQtxYsXz6DtXVCcOXMGbW3tDOl0Y2Nj2rdvn0G1LCIiggYNGnD+/HlevXpF//79M5VfPXLkCGpqakyePJkDBw5w5MgRnJycaNWqFSEhIdja2krHDQoKynI2X6RIEaKiooiLi5Mee/fuHTExMVhZWbF8+XKiozMv6RBFkUOHDiGTyShVqhQRERHSczKZjJiYmN8+ZSiKIp6enkyaNIkpU6Zw69atPPfue3h4ULp0aebMmYOdnR316tXj69ev+Tzi/0/16tUJCgqiY8eOlClThj179rBu3TqFbcqUKSMpfA0bNixbyVMtLS2GDx9O48aNOXfuHCoqKoSHh/Pp0ydatGjB8uXLad++PZUrV2bjxo2MHDkSGxsbUlNTWbx4MYsWLWLNmjX4+fllKhIzadIkoqOjWbZsGVZWVgoTAR0dHbp27cq8efM4duwYfn5+dOvWDVdXV+n7CAsLY/jw4RgaGlKuXDmWLl2KXC4nISGBZs2a8f79e5ydnZk7dy6hoaE0bdpU4Zrwb+Djx49s3LiRlStX4uvrm+k2fn5+VK5cWSocLFasGPXr18fHx+dnDvW3RF1dnYsXL6KlpcWkSZM4ceIE4eHhiKJISkoKgYGBrFmzhhUrVrBr1y5JYO1XkqM7+v9V3wMkAgWvMvELsLS0pGvXrsyaNYumTZsil8vx9PSkbNmymV5og4KCkMvlDBs2TBK2sLKyKpAK70ePHmWptle1alX27dun8NjWrVspXbq0JEFrYWHB1KlTGTVqlML4DAwMOH06c8sCXV1d7O3tczQ+IyMj7OzscHZ2RiaTER0dLfVGJyUl8fbtWyZOnEiHDh2wsrJCT0+P5ORkSRlPXV2dS5cu4eXlxfjx44G0ycPp06dp1qxZgfrc54Rvq6b/TnJyMr169cLPz49GjRohl8vp1asXLVq0YPfu3TlecoA0+dN0GdratWsjiiI7d+5k9uzZ2boI/ihFixbNVh54+/btlC1blj59+uTo/BYEAVtbW0JCQvDw8OD58+c0adJEqjp+9OgRXbp0kT6bK1euMGjQIGkZQFNTEzs7O+bMmSMJKkGavsPWrVtZs2ZNthXMxsbGjBs3Tgpme/bswdfXl/r169O6dWuMjIxwcnIiNjaWPXv2EBUVRcWKFdHW1pb67CFNIGvFihUcOHCA4cOHf/+D/AewYMECli1bRoMGDShUqBDLly+nZs2aHD9+XGECZ2hoyMePH0lJSUFFRQVRFP/r6f8GTU1NTp06xf3791m3bh3Tpk0jNjYWJSUlqlSpgr29PQMGDPhl7XR/J0eBXhCEJoAzUObb14iimHWfyD8MQRBYu3Ytffr04fjx4ygrKzNt2jSUlJRo1aoVenp6mJmZkZCQgJubG8+ePaN48eLo6Ojw6dMnhg8fjpqaGkePHsXU1DRfx5aZEUk6oaGhGQrywsLCFNKNxYoVIyEhgdTU1AIrQJo2bRp79uxh6NChVK1alUuXLnH//n2WLFnCqVOn8Pb25uzZs5w+fRqZTIYoilhYWODk5CTptPfs2RNIWxOOjIykW7duBSb9efv2bU6cOIGamhp9+vRRqEdIx8/Pjz59+vDixQtMTEzYtWsXLVu2VNjG1dWV169fSzoGkLb8kJ4yHjlyJJDm9+3q6oq3t7dk/vP3ZZDg4GBSUlKkZQpBEGjZsuUvcUdMRxRF1q5dS79+/XI1iRUEgY4dO7J69WpKlizJlClTiIiIoFChQqirqyvcJcfExGQIIAYGBkRHRyOXy1FWViYlJYU+ffpgZmaWo4tn1apVKVy4MIGBgZQrV44XL16QmJhIeHg4U6dORRAEjIyMsLe3Z+bMmfTs2TNTtbOaNWty69atf0WgP3r0KFu2bGH58uVSlmzAgAFs3bqVUaNGsX//fmnbRo0aUadOHZYuXUqdOnV49uwZGhoaGWqY/q9Tr149duzYwY4dO0hJSUFZWfmXqWFmR05T99uBlUBToOE3//5VCIJA06ZNJVOHBg0aUK9ePY4fP46XlxdDhgxh1KhR3L17l6VLlzJ06FBsbGzo1q0bixcvplWrVlhZWfHixYt8HVfPnj0JDAyUnLzSkclknD9/Xgom6djY2ODp6cn79+9JSUnh0KFDNGnSpECrjK9du0bdunVp3Lgx+vr62NraEhcXR0hICE+fPiUsLEwSXImKikImk3Hjxg169erF69evmTBhAsbGxgwYMIA3b97QoUMHRo4cme+9p6Io4uDgQLdu3Xjx4gUBAQFYWlpmkKiMiIigbdu2tGnThn379jFw4ECplgHSimxGjBjBnDlzeP/+PYcOHSIyMhJIq3/o2rUrW7ZsAdKWMerVq4evry+NGzdGQ0ODrl27smvXLoVjGhkZERcXJ+0H0uoffmVGw8vLi+TkZEmDPjdUrlwZuVzO69evsbe3x8HBgREjRvDp0ycOHDggyShXrlw5gyiMt7c3jRo1koJ8t27dCAwMlJQov0f6b9nX15fk5GTGjx9Ply5d0NPTU7gQ6+vrk5SUhLGxcaaWoqGhod81jvqnsHz5cmxtbRWWwpSVlRk0aBCnT5/m06dP0uPpHS+jR49GU1OTHj16cO3atVx5C/xfI12w7Hckp1f+KFEUzxfoSH5jWrRowb179zh27BiTJ09m4cKFGYKmIAiSocrMmTM5fPhwvh1fV1eXLVu2MGbMGGxsbKhevTqfP3/m4sWLNGzYMIPUaqtWrXB2dmbKlCkkJibSuHHjfB1PZqSrjKUXNSYlJREfH8/atWupWrUq8+fPJyYmhp07dzJ//nwWL14MpN1ljBw5khYtWjB9+nQMDAykCu769euzd+/eLD3n88LNmzc5evQoixYtkhTRbGxsmDlzptSiBWmqZsbGxjRt2hSA2rVrU6tWLby8vIiNjcXKygorKysWLlyITCbjypUrzJ49m3nz5qGnp0exYsWkLMz8+fMxMzOjb9++QJo4UPXq1Zk8eTJ9+/aV7IbTl0uWLl1K69atiYqK4sKFC5w6dervb+On4ePjQ82aNaULmFwuRy6Xf3fSmJSUxMKFCylTpgxv377ljz/+oF69esTGxrJhwwbCwsKYNm0axYoV48OHD6ioqJCQkEDNmjV59eoVXl5enD+fdslxdXXl7du3qKur58r4SEdHh+DgYF6+fEn37t0xMjJi2bJlfP36Vcog3Lp1iypVqjB69Ghq1qxJ/fr1pTv7wMBAbt26VaDLJj+Tx48fZ9qhU7hwYcqUKcPz588VsoMqKir5ajX9H7+OnAZ6D0EQlgPHAcnpRRTF+wUyqt+U7du307Zt22wvcjY2Njg4OPD58+d8rdbt3bs31atXx9XVlTNnzmBoaMiyZcvo0qVLpuvHo0ePZtSoUQWarv+W9u3bM3fuXMncJ93ARFlZWaE2YNq0aUybNo0///yTJ0+eMGrUKKZPn67QBmdiYkL//v0xNzdn0KBBeHp65ttyyLFjx7C0tFSQPTU0NKRBgwacPn1aurBpamoSGRkprc+LokhkZCRaWlpMnDiRrl27KsiYDhs2jD179uDm5sbQoUMJCAiQ+v/d3d0zXDDLlCmDnp4e/v7+ClLMixYtol69ehw+fBg9PT08PDxy3HFQEERFRUkCTCdPnuTYsWOkpKTQoEGDLGWgAU6dOkWRIkUwMTGhfPny0mehra2Nvb09o0eP5vnz53z58oWyZcsiiiKbNm3i3r17VKxYERcXF8qXL49cLmfNmjWMHDmSbdu25aowLi4uDplMhiAIUv1M586dmTRpElZWVsTFxREYGMi5c+coWbIkR44cwc7ODg0NDckr4dChQ7+8RiS/MDQ0JDQ0NEO9T2pqaqZLgP/x7yGnESC9V+nbPj4RaJnJtv9a7t+/n6WARzqamppUqFCBhw8fZmhp+1FMTU2ldHBOEAThpwR5SPNfvn79OsuXL+f169d06NCBrVu3Urly5QypUg0NDb58+cKSJUvo1KlTlr3uFStWpE2bNri4uEia6D+KsrJypop7f58QmZmZUb58edauXUuDBg0ICgoiJSWFxo0bM2jQoEw1+du2bcusWbOwsLDgxIkTnDt3DkDSuf42YMjlcqKiojLo0AuCQK9evX6JIU58fDxHjx4lJCQEc3NzWrdujZaWFjKZjLt37+Lh4cHKlSvR0dFhw4YNHDhwIFOVN7lczpUrV5g1axbnz5/PECg1NTVRU1Pjxo0bCqqFmdVj+Pj4oKysTMWKFalVqxa3bt3KsQ30rVu3iI6OxtjYmJMnT2Jqakrr1q05efIkLVq0QEdHh169emFgYACkZcJev36Nr68voijSoEGDn/b7+RkMHz4cNzc3HB0dFW4Orl69SoUKFahUqdIvHN1/FCQ5WqMXRdEqk3//6CDv5uaGubk5tWrVYu7cubmWW82O/LZF/aegq6vLggUL2Lt3L2vWrGH79u34+/sr2M8GBwcjCAJFihTh/PnzmSrwfUuLFi04cuRIvln/9unTB09PT4V18Hfv3uHn56fQBqOsrMy5c+eki3/t2rW5ceMGSkpKqKqqZuorXrhwYeLj49m5cye7du2SevlHjBjB8ePHSUhIANLOj7Nnz1KuXLlMXdt+Be/fv6dGjRqsW7eOgIAA7O3t6dChA+XLl+fVq1c8efKEFi1aULRoUdTU1OjcuTNPnjzJdF+xsbEkJydTqlQpatSowc2bNxXsfB89eoSysnKma+LfIpfL2bNnD+Hh4fTv3x8vLy+uXLmSo3bDkJAQ3r59K7V1prfkOTs7U7ZsWQIDA6lataoU5NNRUVHB3NwcCwuLnxLkHzx4wNy5c1m1atV3P48fxdHREU1NTebPn4+Xlxf37t1j8+bNnDlzJkO9yO9McHAw5ubmaGhoULFiRW7cuPGrh/Tb8z2b2gGiKO4TBMExs+dFUVxZMMMqWM6ePcuoUaMYOnQoWlpaHDx4kOjo6O+aZtSrV4+AgIAMldffEhcXR3BwcK78iv+t9OnTh5MnT7Jw4UJatGhBTEwMFy9eZPXq1URERKCtrf1d57AiRYqgqqpKZGRkviyF1K9fHwcHB6ZNm4a5uTnJycncu3eP9evXZ9h/oUKFMniWi6KIkZERQUFB1KhRQ+E5Hx8fLCws8PT0VLhjGj16NAEBATg4OGBqasqHDx/Q0NCQ1qB/B2bMmEHdunUlg54ePXqwePFiYmNjef/+vbSGm76U8ezZsyxVIdXU1JDJZMhkMszNzbl27Rpz587F0tKSr1+/cuXKFcqUKZPtersoigwZMoTbt28zfvx4KleuzOfPnzlx4gTTp09n/vz5vHjxQupf1tPTo2HDhhQuXJiIiAiWLVuGnp4epUqVYsKECQiCQJMmTZg7dy7t2rUjJSWFvn37MnPmTMaNG5fh+O/evePmzZuUKlUKCwuLAimyWrZsGcuXL6dx48bExcUxf/58Tp8+naluR36Q3sZ6/Phx9u/fT3x8PK1ateLQoUP/mLa5dJ8Rc3Nz7O3tpVbNgICAfDfD+jeRrQSuIAijRFHcLAiCU2bPi6L4W/fUZyWBm54uTvdjT2+5yUrUJZ0LFy5gb2/P/Pnzs5ztnzhxgpSUlDwXv71584YHDx5QvXr1HKcof2dSU1M5fPgwbm5u6OrqMmLECMzMzPjy5Qvly5dny5Yt2faaJycnM3z4cL5+/ZqvdqIvXrzg9OnTqKmp0b1791w5Uh08eJCJEycyduxYKlWqhCiKkizy2bNnJYXAvxMSEsKdO3coUaJEgSve5ZbixYszc+ZMhXVaDw8PwsPDqVChAr6+vrx584bk5GR0dXUJCQnhzz//lIoX/87ixYuxsLDAysqKlJQUbt26xcOHD9HR0cHc3JylS5fy7NmzLPXCPT09GTBgAIsWLZKKFdNZs2YNd+/exdTUVDp+aGgojx49oly5crx9+5b+/ftjaGhIYGAgtra2QFqB4NChQ9m3bx+CIPDx40ecnZ15//69QnfHkiVLWLx4Maamprx//54SJUpw4cKFDBOTlJQUtm7dysmTJzE0NGTChAk59mX4+PEjVapUYdmyZdKE6fbt21y5cgV/f/8c7SMnvHnzhk2bNnH37l2KFCnCwIED6dChQ670HX4FwcHB3Lx5E0NDQwU3xODgYBo3bqzQJbN69WocHR2l9tx/IwUqgSuK4ub//fe3Dui5RRRFhYtserHV92jdujXVq1dn3bp1jBo1ikKFCins08vLi8uXL3P79u08jWnmzJls3LiRqlWr8vz5c3r27MnGjRt/q4CQW5SVlenbt69UcZ5OumTq/fv3s5XUvH37No0aNcp3z/CKFStmKxKTHX369EEmkzFr1ixEUUQmk2FgYMChQ4do1KgRd+7cwcvLC11dXXr37i05+JUrV+63NTTR19fn69evCoE+PDwcQ0NDxo0bR506dejfvz8aGhokJSUxZsyYbO/Iq1Spwu7duylVqhQVK1bE0tISS0tLEhISWLNmDQMHDszWFGTHjh20bNkyQ5CHNGnap0+fMn36dIXHIyIiuHTpEu/evaN3794AbNq0iaZNm1KsWDEOHDhAjRo1pLvz4sWLS5OW9OxMQEAAK1asYOnSpejr6yOXy9m8eTPOzs6sXKmYwBw2bBi+vr60bt2asLAwbGxsOHPmTKYy0X/Hx8eHatWqKWRFzMzM2LBhA3Fxcflyvp8/f55+/frRpEkT6tWrR2RkJJMmTWLjxo2cPHnyt22Vu3r1qqRr8P79e0xNTTl+/DhKSkro6uoSGxtLTEwM2trapKam8vnz599ePfNX873UvWt2z4uiOD5/h/NzGDx4MOPGjUNPTw9tbW3279+fIytTJSUljh49yujRoxk/fjyNGzemRIkSxMfHc+vWLQoVKsS1a9eoUKFCrsfk7e3N7t27cXFxQVtbm8TERObNm8fJkydz5L726tUrduzYIfVdDx06NFvf698BR0dHZs2ahampqcKkKZ24uDhOnTqVQZL1d2DQoEH079+fZ8+eoaqqSoUKFRAEga1btzJz5kzMzc2JiIhgyZIl3L59+5drXUPaXeSff/7J5cuXKVq0KI6OjgwYMAAABwcHli5dytixYylRogT+/v5cvnwZLy8vihcvztmzZ2nTpg39+vWjadOmWaayv53wzp8/n4ULF1KxYkXKlClDdHQ0Pj4+9O7dO4Ns89/58uVLpiJGkDZJzMwVUU9PD1tbW2rUqEGPHj1wd3dn/vz5TJ48mfj4eNTV1Vm6dKm0fXh4OBEREQp98mfOnKFRo0ZSAFZSUqJdu3Zs2bJFIdC/ffuWkydP4urqioaGBm/evJHcEk+ePEnVqlWzfX+lSpXi3bt3CqqLoaGhaGpq5shm+ntERUXRr18/Jk2apFAH0rx5c1atWsWSJUuYM2fODx+nIBgzZgyjRo2ibt26pKSk4OTkxLlz5+jYsSMGBgZSVrVhw4Y8f/6cChUq5Fhf4f8q37tV9P3fPw2gHvD8f//qAL/ndDAH9OzZkyVLlnD48GHWr19PixYtMgimZIW6ujo7d+7k0aNHWFpaoqysTPHixdmzZ0+m67Y55fz58zRu3FhS/dLQ0MDS0pKzZ89+97UuLi7UqVOH+/fvU6hQIam1a9GiRXkay8/C1taWVq1asXDhQoKCgqSsiiiKPHz4kPnz59O9e3c6der0i0eaOcrKylSrVo2KFSsiCAKxsbHS5GXQoEE4ODhQvXr13+KCmpiYiKWlJV++fMHR0ZG2bdsyc+ZMNm3axMmTJ9m7dy8JCQk4OTlhZ2fHsWPH2L9/v9TW2KBBAzw9PTl//jyzZ8/m6tWrJCUlKez/ypUrTJgwgR07dlCvXj26devG+/fvGT9+PFWrVqV169b4+/uzZcuWTIsZv6VmzZo8e/Ys0+eePHmCiYkJz58/582bNxmycaamptja2jJmzBhGjhxJVFQUiYmJ9OnTh02bNuHr64uPjw/Lly9n/PjxCpmJIkWKEBMTo7C/qKgoKSuTzrt37yhWrBgaGhoEBgYyb948TExMqFSpEo0bN+bWrVvZvr969epRpUoVNmzYQHBwMAEBAaxbt46pU6dmmVZPSEjg6NGj7Nq1i48fP2a7//3791OzZs0MxZ4qKir07t2bTZs2/bZFw1++fJEyXyoqKpQuXZrPnz9Lzy9ZsoRVq1ZRpUoVxo4dy5kzZ377pYhfTU5tam8DTUVRTPnf36rAdVEULbJ/Zf4jCEJbYA2gDGwTRXFJVtvmxqb2V7N27VqOHTumYByzb98+atWqxYIFC7J83YULFxg6dCh//vmnQkFNeHg4CxYsYMOGDXTu3LlAx/4jiKLIli1bWLFiBQkJCZJgjo6ODlOnTmXw4MG/rdrU33n+/DktWrRg1apV0mP37t3jwYMHXLp06ReODA4cOICLiwvTpk2THgsODmbFihWoqqrSr18/9PT0OHv2LDo6Oly4cCHTz10ul3Pp0iVcXV3x8PBAU1OThIQEZDIZNWvWpG3btlSsWBF3d3euXr3KrVu38rRcERISQr169Zg1a5ZCe158fDxz584lLCyMokWLEhMTQ4UKFXBwcFC42KempuLg4IC7uzu1atWSHtuyZQsHDhxAVVWVYcOGZZD2DQsLo0qVKvTq1QtLS0vev3/Phg0bcHJyUmipTEhIwMTEBEdHR7Zt24atra20Pn/z5k1u3rzJnTt3sn2PsbGxzJ8/Hzc3N7S0tPjjjz8YNmxYpp+7v78/bdq0wcTEBC0tLR48eMDy5cszqGKm4+DgQHh4eJaT5AEDBhAVFZVpJu1X06NHDyIjI+nXrx9v3rxh7dq1krDR/1V+dI0+p4H+KdBIFMXw//2tB9wWRfGnfvKCICgDzwAb4B1wF+grimJQZtv/kwJ9eHg41atXp0WLFtSrV49Hjx5x9uxZ7t+/n61gh7W1NdWrV5cKC7/l1q1b3L1797drP/l2maFChQoMGzYMExMTAgICCA8Pp2jRopiamv5jAnw68fHxFC9enFmzZkkiMNu3b6datWqsWbPml45t0aJF3Llzh379+kmPpaamMmzYMCZMmECdOnWAtAIzBwcHvL29v9v6l5CQQJ8+fRBFkd69e2dY8z127BjKysocOHAgT2M+ePAgo0ePxsLCgmrVqvHp0yfc3d0RRZGOHTvSrl07kpOTWbp0KfXr16ddu3YZjq+vr59rZbv79+8zduxYbt++TbFixZg+fTrjx4/PcD6ePn2agQMHkpSUxOrVq6V14tDQUJYvX87bt2/z9L7/jiiK1KpVi2bNmkntqKGhocyePZtHjx5lWhC5dOlSrl69yrBhwzI8l27HGxER8Vv+xqKiohg8eDDu7u4YGBiwfv36fFXH/Cfyo4E+p1VeSwA/QRB2CYKwG7gP/Iq8sBnwQhTFYFEUZcBB4Nd7AOYD+vr6eHt7o6qqyvbt24mLi+PatWvfVeXy8fGhbt26mT5Xr169795V/Gx27NghLTMULlwYHx8fTE1NOXDgALVr18bKykpBcrUgiY2N5cuXLwo93j9C4cKF2bp1K0uWLGHTpk0sWrSI0NBQ5s2bly/7zyvJycmUK1eOe/fukZycLD1++/ZtlJSUFNoKVVRUMDQ0VNA9zwpRFLly5Qpdu3bNtLArXZzm/Pnz9O3bl0aNGtGoUSP69u3L1atXv5s67tOnD/7+/jx//pxLly7x9etXxo8fT0JCgtSCpqqqipmZWaZBtVKlSgQFZXoPAKQV7128eJH79+8rjKVevXrcvHmTlJQUPn78iIODQ6bnY6dOnXj16hVVq1bFw8MDuVzO/fv32bRpE4UKFWL9+vVZmlHlhrdv3/LhwweFybyxsTH169eXRJn+zsCBA7l165ZCyhvSvrNTp04xcODA3zLIQ5oeh5ubGzExMbx69er/fJDPD76rCCEIghLwlDR1vHSFvGmiKBasukPmmADf/qLf8f/HBIAgCCOBkcAPS1eKosjRo0e5fv06JUqUYOzYsdl6cf8oFSpUYO/evbl6jZqaGomJiZmOKyEhIdOq5V9FUFAQU6ZMwdnZmRIlSkiPW1tbM27cOCwsLPJUyJgTPnz4wKNHj6hevTpxcXE4Ojpy9epVVFVV0dfXZ9asWfniUNa7d29JwU1HR4f27dv/svSoTCZj/vz5bNy4EWVlZaKiohg3bpyk3+/t7U3Lli25dOkSdnZ2CILAs2fPCA0NpUGD7988REREoKGhkeVv4v3794iiyJgxY7CyspIkg9+8ecPw4cNRVlZm586d0ngyo0yZMpQoUYIWLVpI2hTFihXDz8+P5s2bI5fL8ff3zzT7oKqqSmJiYqb7dXFxYd68eVSoUEGSqz59+rRCL3ZOul2KFCnCyZMnMTc35/Tp0xQpUgQzMzPU1NQ4duwYM2bMoEOHDri6uua5ILNQoULIZDJSUlIUJlTx8fFZVueXKFGCxYsXM3/+fDp16kStWrWIiIjg8uXLhIWFcejQoTyN5T/+meQ0de8nimLmt40/EUEQegJtRVEc/r+/BwLmoiiOzWz7H03dOzk5sXv3biwtLXn16hXR0dHcvn37t1rXGjZsGLGxsfTo0SPDcydPnkQQhAx+9b+KsWPH8unTp0zlXffv3y/1FecEURS5du0aHz58oHbt2llq4YuiyNSpU9myZQvly5fn5cuXAHTp0gUbGxvU1dV5+vQp27dvZ/z48UyaNCnvb/A3QhRFunbtyocPH+jfvz8lSpRAJpNx/fp19u3bh62tLbNnz0ZbWxsbGxsiIyPR09MjJCSE/fv30759++8eIzExESMjIwXb03T8/f1Zu3Yto0aNokGDBhnuHkVRxNfXl23btnHw4EEF34C/06VLF0qXLi3d0b569YolS5ZQsmRJIiMj0dXVZfr06RkK/G7fvk1QUBAXLlxQeNzT05M+ffowe/ZsihYtilwux83NjU+fPnHt2rXvvu+/M2vWLPbt28eIESOoVKmSwnuNjY3lxIkTPHr0CG9v7wwthZ8+fWLz5s08f/6cJk2aYGdnl+n1pX379igpKdG3b19UVFS4c+cOu3fvJiQkJFvbXk9PT1xcXPDz80NbW5tBgwbxxx9/5Moc6D9+PT9rjX4FcAs4Lv7CUk1BEBoBzqIotvnf3zMARFFcnNn2PxLoZTIZOjo6uLq6UqRIEURRZMmSJUybNk1SD/sdeP78ORYWFgwYMIBGjRpJmgB37txh165dXL9+Pcs2pdzi7+/PvXv3qFKlCk2aNMl16q9Vq1aS9e/fuX37Ns+fP+f06dPf3Y9cLsfW1pa7d+9SpkwZHj16xLx58xQKGdM5e/Ys9vb2zJkzBy0tLWJjY5k5cyZ2dnYK4iahoaE4OTnx7t27bHuYPT09WblyJTdv3iQ5OZmaNWsybtw4evbs+VvpHXh4eDB48GAWL16cQdzpypUrvHjxgitXrgBpQffWrVuEh4fTvHnzHPm9pzN8+HA+f/4stelBWr3JtGnTmDRp0nfbzJ48ecKaNWt4+PChQpbnW3bs2MHmzZsVJmExMTG8ePECdXV1qlSpkmnV9erVqxk4cGAGQ6FBgwahpKSkMJlJSUnB3t6egICAXNnSnjhxgrFjx+Ls7Jxt8Dx+/Djv37/n+vXr0mMhISE0atSI2rVrU7ZsWe7fT/MIu379eoYWu7CwMPr378/t27fR0NBAW1ubffv2STLL//Hv5met0Y8CjgAyQRBi/vcvexm5guEuUEkQhHKCIKgBfYAC8fBMTExEEATpxysIAvr6+pn27/5KKlWqxMWLF7ly5QpTpkxh9erVTJkyhXPnznHmzJl8CfJyuRw7Oztat27NgQMH6N+/P9bW1pJ2e04xMTHhw4cPmT738ePHHF9g//rrLwIDA1m4cCH29vY4Ozszc+ZM3r9/n2Hb48ePY2VlJaWXtbS0aNeuHX+fABobG1O6dGm8vb2zPO7YsWNp27YtampqODk5sWLFCho0aMCsWbPo379/vq315wf79u2jRYsWmSo4WlpacufOHUkzXhAEGjduTMeOHXMV5AEWLlzIw4cP2b17t7S/06dP07Bhw+8GeYCqVatiZmbGpk2bstymT58+PHv2TGG9WVtbm7p161K9evVMg3xYWBhBQUEMHDgww3OxsbEZlhuUlZUpVKgQcXFx3x3ztyxdupTevXt/9w65a9euPH/+XArmkGZfbGlpybBhw7C2tmby5MmkpKRw8ODBDK83MDDgwoULPH78mOvXr/Ps2bP/gvx/5Jicmtpoi6KoJIqi6v/+X1sUxZ+e+/lfe99Y4CLwGDgsiuKjgjiWjo4ODRs2ZM+ePXz9+pU7d+7g5+eXrc79r6JBgwY8fPgQNzc3Jk+ezLFjxwgKCspSijW3HD9+nFu3brFixQpGjRrF0qVLiY+Pz3Ul+ahRo7h8+XKGPuXIyEiuXLnCiBEjcrSfp0+fUqNGDSlVa2RkRMmSJQkODs6wbbqS1rfExMTkevnl9u3bbN26lTlz5tCrVy+MjIzQ0dGhUaNGODk58fDhQ9avX5+rfRYkERERGZzx0lFTU0NLS+u7ks85oVixYvj4+FCuXDlmzJjB4MGDuXLlCm3bts3xPqytrdm8ebNCoeC3FC5cmNGjR7Nz505SUlK+u7/U1FR27tzJsGHDMq0f6NKlC56engpGVv7+/qirq+fKZOjx48e8fPkyR/UMSkpKWFlZKXQA3L17V6GQVhAEateujY+PT5b7KV68eIblgf/4j++R41yjIAidBUFY8b9/2Xu1FiCiKJ4TRbGyKIoVRFFcWJDHcnNzQ11dHWdnZy5dusSpU6d+W7U5QRBo0KAB3bt3p2HDhvl6ITh58iTNmzeXCvuUlJRo1aoVJ0+ezNV+GjdujJ2dHU5OTly6dIknT55w8eJFnJ2dsbe3z7J74O9UrFiRJ0+eSBf9r1+/8u7du0ztbocPH86VK1e4e/euZLd6/vx5rKysFLYLDQ3lzZs3WRqKrF27NstiQTU1NUnt7XcRIalXrx6PHz/O9LnQ0FCSkpLyzQTEyMiIdevWER4ezo0bNzAwMMhVIWzp0qVRVVXNdKKWzvz58zEyMsLV1TXLAjtIW3Jbt24d2traLFmSucRGv379MDExwcnJiZMnT7Jz5042bdrE9u3bc7X88vTpUypUqJBjl7u/dwGkS11/y8uXL/NtqS2dS5cu0aNHD8zMzBg8eLBCVqEgSE1N5d69e1y/fj3DpP4/fg05OkMFQVgCNAT2/+8hB0EQmoiiOKPARvYbYGBggJub268exi/HwMAgQ1o8IiIiS/ey7FiyZAk2NjZs3LiRBw8eUKFCBf7666/v2tV+S//+/Tl69Chz5syhTJkyPHz4EGdn50xT/9WrV+fw4cNMmTKFNWvWULlyZdTU1PD398fQ0FChGO/PP//Mcn3+5cuX2Y6xSpUqhIWF8fnzZwW9+F/F8OHDcXFxoXnz5go+4ykpKRw4cIARI0bke0dGegr9W4OYnKKmpsb48eNJTk6mefPmjB07VsFCVkVFhZMnTzJq1CgmTJhAs2bNaNmypfRZf/78GQ8PDzw9PWnXrh3btm0jNDQUmUxGuXLlFAK4qqoqZ8+e5dy5c1y5coUaNWqwbdu2n+5+NmvWLJo1a4aXlxexsbEoKSmRkpKS6XJDXpk2bRoHDhygbdu21KpVi+fPn9O6dWtcXFyws7PLt+Okc/LkScaNG4eSkhKampq8f/+eMWPGsGDBgv/U634hOTVcbg/UEUVRDvC/Xno/4F8d6P8jjZEjR9K0aVMqVKhAnTp1ePHiBceOHcuzh7W1tTXW1tZ5Ho+ysjInTpzg4sWLfPz4kTp16mRa4JdOq1at8PPzk/5+9uwZjo6OjB49GlVVVQwMDJg9e3a27XU5aasURfG3SakaGxtLHg5mZmZUr16dyMhIPD09qVKlSoH19uvq6hIVFZWrz0IURb58+UK9evWoWLEi169fZ/v27Tg5ObF//34ePXpEcnIyRkZG9O/fn3PnznHkyBHmzZtHZGQkkLbUlt47Xr58efr168fly5dRU1OjTJkyXLhwQZqYPn36VDofxo0bl+eWzooVKxISEqKgV58dwcHBCpOu58+fo6KiQrNmzahRowYfP37kxIkTzJgxI9ciP5lx7949du3axaJFi6Tai2rVqlG/fn3Gjx9Pp06dcjRZT05O5vDhw4SGhtK0adMsawM8PDwYNmwYY8eOlbISYWFhbNiwgeTkZFasWPHD7+k/8kZOq+4DgBbfKOPpA9dEUaxVwOP7IbKquhdFkfXr17Nt2zYg7e7H3t7+t7lI55a3b9/i4uLC7du3KVu2LI6OjpiZmeXrMS5duoSjoyOPHz+mZMmSzJ8/n0GDBuXrMX42sbGxJCQkULRo0e9+94sXL+bq1atZ1hEEBQVx4MABnj59+ludRx8/fmTr1q34+vqiq6vLwIEDsba2LrAOAblcTqVKlbCzs8tRMR6kVd5v2LCB1atXo6SkREhICAsXLsTY2Jh27dpRtWpVVFRU+PTpE15eXty+fZvp06czY8YMafnm29a6VatWsWfPHiZNmoSKigq7du3C2NiY8ePHM3HiRAIDA6VA9OjRI+rVq8eaNWvy5FPRoEEDrKyssnVgTP9cJk2ahJubG2ZmZshkMklC99uJRnx8PNOnT+fcuXPZTl5zwtixYwkLC8vUFGvdunUMHDjwu3Ux6f7vnz9/pnTp0vj4+LBixYpMswHpWgd/V+mMiopi8uTJhISE5CkL+B8FbFP7DYtJU8bzAASgGTA9+5f8vixatIg9e/ZIbXJr164lKiqKWbNm/eKR5Z7Xr19jbm6Oubk5bdq04c2bN7Rv355du3bRsWP+lVK0bt2awMBAUlJSFNYkRVGUjEXKlCnzWwW576GlpZVjAaThw4ezbNkymjdvnqFgKzExkUOHDuHo6Pjbvf/ixYv/VFMdJSUlxo4dy4kTJ3Ic6NOd8ZSUlHj16hWLFi1i2LBhGYpJdXV1qVy5Mt27d2fFihXExsZmatz04MEDGjZsKInLNG3alH379nHq1Cl69+7NqFGjpHNYJpNx7do1mjdvjru7uyQFnFOmTJnCtGnTqF69erZtmefOncPExESaENy4cQNDQ8MM2YTChQvTpEkTjhw58sOBPiwsLMvAqq+vT1hY2Hf3cf78ed69e4ezszNKSkq0aNGCiRMnZgj0crmcGzduZDpx0NXVpWLFity6des/lbtfRE6r7v8CLIDjwDHSdO//sdJKa9asYfTo0dSoUYMaNWowevToX65FnlcWL15M48aN6d+/PzVq1KBdu3aMGjWKyZMnF0hh2LdB3t3dnZo1a1KvXj0aNGhA1apVc+S290/E0NCQAwcOsHLlSg4dOsS7d+8ICwvD09MTJycnLCwssjQY+b/GkCFDePHiRY48Fry9vXn48KGkcrd69WqGDBmSbceIvr4+06dPZ+fOnXh5eeHv78+ZM2cICQkB0uolAgICSE1NRRRF7t27x9u3bxk2bBgtW7ZUOIfV1NRo3bo1ffv2pV+/frn+zfTu3ZsuXbqwcOFC3rx5k+H5xMREjh49ioeHB8eOHZMmgjKZLMsaCTU1NQVnwLxiZmaWqQSwKIoEBgbmWP3Q2NhYygAVL16cmJiYDK2kgiCgrKyMTCbLdD8ymSxTmeT/yJoXL15w//79LLtRckNO7+ghrRiv2f/+XwS+r2zymxIbG6vQL6ytrf2PrQ719vamb9++Co/VqlWLVatWER0dncFeM79I9xUfMWIEdevWRRAE/P39sbOz48iRIxmq2v8NtGvXDh8fH1xdXVm9ejVJSUnUrFmTNWvW0KlTpzzfzaekpHDlyhW+fPmCubm5wjruP5EiRYpw4cIFWrVqRVhYGG3atMkgAJOYmMjFixdxd3dHT08Pf39/ChcujIaGRo7aQnV0dGjXrh0jRowgMjKSMmXK8OLFC1atWoWjoyPu7u5MnToVURSJiIhAT08v28DWtGlTTp06xY0bNzI1iMoKQRBYvXo15cuXZ9GiRRQrVgxTU1NUVVX59OkTt2/fplmzZvj4+CgIAjVu3Jjg4GC+fv2q4DqZmprKnTt32Lx5c47HkBWDBw9myZIl3LhxQxK4SlcBLFy4cI5ahS0tLZkwYQK+vr6UL1+eY8eOZbr0IwgCnTp1wsPDI0Mm8d27dxm0+v8ja169eoWtrS3BwcFoa2vnWtshM3K6Rv/3qvu+wF1RFGf+8AgKkKzW6Pv168fXr1+lNea9e/diYGCQZ5etX0m6LWizZs2kx758+cKff/7Jly9fctz6k1s6dOiAiYkJrVq1Unj8xo0b+Pv74+npWSDHzSkvX77E3t6eR48eYWhoyNixYxk6dGie9yeKIhcvXmTfvn3Ex8fToUMH+vXr98NyyPfu3aNr167o6upStGhRAgMDad26Nbt37/7H3wEFBwfj4OCAl5cXjRs3llzW3r17x82bN2nWrBlr1qwhOjqa9u3bk5ycTJcuXWjVqlWGQPLhwwciIiIoVaqUJE5z9+5dduzYgYuLC4ULF+bdu3fMnTuX58+fY2BgwLJly9i8eTNVqlTBwMCArl27ZjveQ4cOUb16debPn5+n95ucnMzJkye5ffs2iYmJlCxZkv79+2cpBLV48WK2bNmCnZ2d5M536NAh1NXVcXd3z5c6Cn9/f3r27ElqaiolS5bk+fPnlC9fniNHjmSpRPh3PD09GTNmDJ8+faJZs2bs2LEjg+QxpNWpNGvWjE6dOmFlZYWamhoBAQHs2rWLOXPmMHr06B9+P/925HI51atXx8zMTJI9fvHiBbNmzfopErgBKFbdKwN+/9RivIiICPr16yelFps2bcqBAwcyPXl/dy5evIidnR0TJkygfPnyhIeHs3nzZtq0aZNlH3F+oKOjw8qVKzMogslkMoYMGZIv6aa8MmvWLFatWoVcLsfExARBEPj8+TPGxsbMnDlTkkDNKaIoMmrUKC5duoS1tTWFChXi1q1biKKIp6dnrtXk0omPj6ds2bIMGjRIKp6UyWS4urpibW3N4sWZKjv/43j79i179uyR+uTLly/PoEGDFALg3r17GTNmDElJSSgrK9O4cWP69OlDkSJF2L9/P15eXhgbG/P+/XvGjx9PrVq1OH/+PK9fv1YIILNnz2bPnj2Ym5tjY2NDjRo1ePz4MSVKlMhgY/t33NzcKFWqlOS3kJiYiLKycgYN/fxCFEV27NjB0qVLefnyJUWKFGHYsGHMnTs3X/00RFHE29ub9+/fU6VKlVzXIeSGwMBApk+fjru7O4IgUKFCBWbPno2trW2BHfPfhIeHByNHjmTBggUKGUJbW9ufUowHUAQI/9//F0w++Cehp6fH+fPnJQvJvLpKfQ9RFNm9e7fUXjJ06FDs7e3zteI5PaDPnDkTmUxGcnIyw4cPZ8GCBfl2jMzQ1NQkJiYmQ6CPjo7OUx91fpGeVu/Tpw/NmjWTxpLucrZ06VJOnTrFoUOHcnwBv3btGhcuXGDBggVSCtrS0pINGzawfPnyPLeqHTt2jHLlyil0SERGRmJoaMiaNWvo06cPtWvXztO+fydKlSqVbaHrpk2bmD9/PhMmTKBGjRq8fPmSK1eu4OTkxIABA7h79y4uLi5oaWkRFBTEypUr2bx5M8bGxpw7d47ExEQ0NDT49OkToaGhlClTBkjrrbeysiIyMlIyM8qO169fY21tTVxcHP369eP8+fMIgsCoUaOkjoD8RBAEhg0bxrBhw0hOTkZFRSXD8k9ycjJHjhzh06dPNG7cOE+yt4IgZOsQmJ+Ymppy5swZEhMTkclkaGtr/3YFqr8rqampfPjwgRIlSuT7Z5bTMze96j7dj94XKFBVup+BoaFhgQV5SLuAOTs706pVKzp16sT69esLpH958ODBvH37Fn9/f0JDQ3FxcSmwlH066RfCv3P+/PlfZvpz7tw55s2bx+LFi2nbtq3ChENJSYm6devy559/8u7dO+zt7XO834MHD9K8eXOFdWZBEGjTps0P2X2+ffuW4sWLS39/+PCBP//8E7lcTqtWrWjRokWOCtr+ySQlJfHnn3/i6OgoqdWtXLmSgIAAkpKSuHz5MqamplJ3RPXq1VFSUiIqKoqaNWtK7Wiurq7MnTuXpUuXSg5xtWrV4vHjx1haWuLr6yv13GfGly9fCAoKwtbWlgkTJhAZGcnOnTvZuHEj7u7uGYp1ZTIZX79+zbeCV1VV1UyDvI2NDUuWLMHd3Z2OHTuyffv2fDleQaOhoYGOjs5/QT4HvH79GgsLC9TV1fnjjz/w8/PLVv0xL/yfrLr/WaxevZrhw4dTp04dTE1N+eOPP3B1dS2QYykrK2NiYvLTLHRnzZrFu3fvcHV15cGDBwQEBLBhwwaCgoIKTIwlO0RRZMaMGQwbNiyDFei3qKqqYm9vz+HDh3n9+nWO9i2TyTK9+1dTU/uhJYqaNWvy9OlTKVicPn2atm3bMmTIEAYMGMCAAQP4888/87z/fwK+vr4YGBhQqlQpNm3aRK1atdiwYQPr16+nVatWhISE8OjRI+Lj44G0nnu5XI6Ojg5+fn5UrVqVo0ePMm7cOLy8vBTS+OPHj+fChQvExcXRtm1bqSXv70RFRUm/VXV1da5evUrnzp1RVVVFS0uLtm3bSk5/kKbuqKOjQ/ny5Slfvjz+/v4F8tkcP36csLAwyW1x1qxZODg4/FbmSf/xY6SmptKuXTsqVKjAnj17mD17NpDWAu7v709ISAi7d+/+4ePkKNALgtANiBdF8ZQoiqeAREEQuv7w0f/l/N0lS0tLi7i4uN9GD/1H0NfX5/bt23Tr1g0PDw/c3d1p27Yt9+7d+yUSsOlubDnRyy9UqBBNmzbNsfpY586duXnzpoIJCqQVKf2IVkH79u1RVlbm8OHDJCUlER8fj5GRkfR8sWLFsr0L/TegrKxMamoq8fHxPH36lG7duqGkpISSkhJdu3YlISEBU1NTHB0dmTt3LitWrGDs2LEIgsD58+cZP348jRs3xtbWNoNGfMOGDVm4cCGzZ88mJiYGdXV1xo8fz549ewgMDOThw4fs378fR0dH3r9/z/79+zExMUFJSYl3795J+3n//r30vRw5coQNGzawatUqtm3bRseOHWnfvn2+VEb/nc+fP1OyZEmF1rb0zyq3yOVyAgMD8fX1zbXr5H8UHG/evCEsLIzOnTujoqJC6dKl6dixIyVKlODixYvs2LEjX7pwcpq6dxJFMSr9D1EUIwGnHz76v5xevXpx+PBh4uPjSUpK4uDBg3Tv3v1fk87S0dFh0qRJ3Lp1S1Ir+1UFjR4eHtSvXz/H66gNGzbE3d09R9t27tyZkiVLsmLFCgICAnj+/Dm7du3iwYMHdOrUidDQUGnbixcv0q1bN8zNzbG3t+fFixdZ7ldZWRl3d3fi4+P5448/ePLkCYcOHeLDhw+EhYVx5MiRfBU9+h2pX78+8fHxvH79GkEQFPrHk5KSEASB/v37M2HCBIoWLYqBgQHHjx/H2dkZAwOD7y4TjRw5kqCgIKysrGjWrBkTJkygVKlSXL16FQ8PD2QyGUWLFmXlypWsWbOGqVOn8uXLF3bu3MnevXvZunUr165dk+600sV90nX4LS0t0dTU5NGj/DfRbNq0KXfv3pUEqU6fPk3lypVzLPKUTkxMDC1atKBNmzbY2tpSrVo1nj59mu/j/bcgl8tZunQp9erVo2HDhmzdurXAbs4KFy5MQkKCgv5AbGwsjRo14t69ezx9+pTVq1f/8HFyupCb2dWzYBeB/wUsXryYESNG8McffwBIZi7/kf/ExsbmyqTl797jDx8+5N27d9SqVSuDuYmysjJnz55l06ZN7Nu3j4SEBIoXL050dDSjR4/m69evtGnThsqVK7Nr1y46dOhA7dq1CQwMxNzcnDNnzmTZG66hocHXr1/R1dVFLpcjiiILFixALpczYMAAnJ2d8/R5/FNQUVFh5cqVjB8/nooVK7J582bs7OwQBIHt27dTt25dEhMT2bhxI1WrVsXOzg6ZTMa5c+eIi4sjOTn5u0WVJiYmzJiRuS2HhYUFffr0kRTkypQpQ4cOHUhJSaFOnTqoqamxe/duqRVNU1OTr1+/Sq9PTU0lJiYmW1W8vFK3bl1Wr17NH3/8IWU2cusYCUhSwC4uLigpKUludoGBgfk+5p9NZGQkJ0+eJDw8HFNT03yRd/7zzz85fvw4/fr1QyaTMX/+fFJSUhgzZkw+jfr/U6xYMTp16sTKlStp1aoVHz584ObNm/ku4JbT9rodQCSQbrhtD+iLojg4X0eTz2TVXveziYuLQy6X57kN6z++z+rVqzl//jzDhg3L0fZ+fn54eXnh7e3N1KlT2bVrF6VKlSIkJIR9+/bRpk0bjhw5wvnz5zE2NmbEiBFUrFgRSLurGzlyJFOnTqV48eIkJiayfft2fH19WblypYIP/M2bN/H09FQw1fmW4cOH8/btW4YMGYIgCOzfv59ChQr9UJHfPxF3d3fmzp2Lr68vKSkpKCsrU6FCBd6+fYuSkhJmZmYK360oiri4uDBgwADGjx+f5+PWqVOHrl27KqT9L1y4wNOnTylbtiz6+voMHjyY+vXrA2na+JaWlvTo0YMSJUrg4eGBmpoaly5dKjD/gNDQUN6/f0+1atXy1NFiampK//79JblduVzOwIEDiYmJySBk9E9izZo1zJkzB1NTU/T09KR6lxMnTmBqapqnfYqiiK6uLkuWLJGEjJ49e8a+fft48uRJfg5fIiUlhaVLl+Ll5UXRokVxcnLKILP9o1r3OT0zxwEy4BBwEEgkLdj/Rw7Q1NTMNsiHhYXh7OxM69atGTlyZIGkAf/tdOnSBR8fnxxLh3p7e9OnTx98fHzYu3cvS5YsYdq0aUycOJH+/fvTs2dP5s6di6qqKs+ePcPMzEyqgF+7di3du3eXKuY1NDSws7MjOTk5Q1bBwsKC169f8/bt20zH8eDBA5o0aYKSkpLUBlVQxV2/M61ateL69evEx8cjk8lISEggMDCQDx8+oKqqSvv27RW2FwQBa2vrPE+ILl68iIWFhZQa9fDwANIyQ6dPnyYsLAxtbW2+fPlCu3btpHbVGjVq4O7uTmhoKBcvXqR+/fqcOnWqQIK8KIpMnz6dSpUq0aNHD0qXLp0nIaqiRYvy4cMH6e9Pnz4hiiLDhg1TqEX4J3Ho0CGWL1/OwoULcXBwYNCgQSxYsIC2bdvSqlUrIiIi8rxvmUymkKEpXLhwvkgSZ4WKigqzZs3i4sWL7N+/P0OQz5dj5GQjURTj+Aeb2PzOhIWF0bBhQ8qXL0+9evV4+/YtzZo1w83NTUHt7j+yp1y5cjRq1IirV69+VxglNDSUO3fuEBgYiLKyMoUKFSIxMREtLS2qVKlCfHw89+/fZ/HixVKbYpkyZXB0dOTOnTsEBwfTuHFjhX1qamqipqZGfHy8QudDugb43wv5vh13UFCQZADz6NEjypUr9yMfxb8KTU1NRFHMtF1UVVU1T10Ply5don///tjZ2TFq1CiCg4PZuHEjFy5c4NOnT5QtWxYnJyeplqZly5bMmjWLTp06Ubt2berVq8fp0wWvAH706FEOHTrEqlWr0NHRISAggB49evDy5ctcSVsvWrSIDh068OXLF7S0tCRzn8TERBo3boy/v/8/SiwsfXlr0KBBCsWrgiDQrFkzAgMD2blzJ46OjrnetyAItGvXjr179zJ06FBSUlI4ePAgnTp1ys+38NMpmFzTf+SYtWvXUr58eUaOHEmDBg3o1q0bgwYNYvLkyb96aP8oRFFkyJAhuLm5kd1yzZcvX5g7dy7m5uYsXryYGTNmUKNGDWbOnMm7d+/w8vJCU1OT2rVrKwSXhg0bcv/+fW7dusWHDx8y9Lc/evSI1NTUDLK1fn5+FC1aVBJx+TsuLi7cvHkTFxcXVq1axeXLlwusBfOfStu2bfHy8srw+PXr1+ncuXOu9+fk5MSgQYMwNzdHU1OTmjVrMm3aNKKiokhNTZWyN+m9zEWKFKF58+bs2bPnh99Lbrhx4wZNmzaVRKlq1aqFvr4+z549y9V+GjduTN++fbl9+zYhISEMHjyYrl27YmtrS/ny5SW77n8K4eHhvHr1ilq1MhdmbdiwIefOncvz/nft2oW6ujqDBw9m+PDhVK1aleXLl+d5f78D/xXU/WK8vb2l9b90GjZsiKurK6Io/msq9AuSr1+/0r59ez5+/IihoSGurq7Ur18fGxsbqlWrJkngXrlyhQsXLtCpUyd69uwJpKkkDhkyhJIlSzJnzhz09PSYNWsWe/bsUfj8X758SZkyZVi5ciWdO3fm6tWrbNq0iYYNG/Lu3Tvc3Nxo2bIlc+bMoUiRIkRHR5OUlERCQgITJ04kJSUl06Kx0qVLExAQwMWLFxFFkVatWimYnPwHODs7S8WMlpaWJCcnc+nSJd6+fZsr4aN0AgMDM9iplilTRnK7e/nyJfHx8Rw4cIDZs2dTokQJdHV1fygdnBeKFi2qsIyXkJBAWFiYVPH/LTExMchkMvT19TO9Zrx8+ZJevXpJNrnp1K1bFy8vL6ZMmZL/b6CAUFJSyrYKXi6X/9BSiq6uLmfPniUpKQklJaUCk0D+mfwX6H8x5cqV482bNwrB/s2bN5JG+398n8mTJ2NgYMCkSZMQBIGHDx/i4uLC27dvef/+PYIgoKSkhKamJs2aNZOC/Le0bNmSQ4cO8fnzZ65du0Z0dDQ7duzAysqKL1++8Ndff7Fw4ULJR6Bly5ZcunSJS5cuoaOjQ2pqqmRT2rBhQ6pWrYqSkhJv377Fzc2Nbdu2cfDgwUyXY4oUKfKfFng2VKhQgdu3bzN//nzmz5+PiooKvXv3Zs+ePXlKOZctW5bg4GCFO8LPnz+TmJjIzJkzpcK806dPs3//fiZPnoyfnx8TJ07M0f5FUeTYsWO4uroSEhJCuXLlcHBwyHVr7R9//MH27dvZvn07JUuW5ObNm3Tv3p3y5ctL27x8+ZLx48fj4eGBsrIyZcuWZenSpRlqGoyMjBS6BdL58uWLgu5FcnIy169fJzY2ltq1a2eZifqV6OnpUaVKFXx9fTNMXCDNWTM/1Dlz08Xzu5NtoBcEYS1plrSZIopi3std/wNIU+9q3rw5xsbGNGzYkDdv3rBlyxamTp36q4eW7wQEBPDmzRtq1KiRr+vQp06dUjCBqFmzJlWqVOHFixfY29tTr149lJWVmT17NjVr1sx0H8rKylSqVAlLS0tiY2O5d+8ed+/e5caNGwiCgCiKjB49mvLly3PhwgUcHR2lCYObmxsqKiqYmZlhY2OjcDEvW7YslpaW+Pv707VrV44dO/avtPAtaMqXL8/OnTvzZV/Tpk1j5syZjB07lrJly/L582c2btyIhoaGQvV9kyZNOHXqFPv37ychIYFevXrlaP8zZ87k4MGDdOvWjV69ehEcHMykSZO4f/8+CxfmXDncwMCAe/fusWrVKkJDQ5k0aZJC58GXL1+wtLTE2tqaTZs2oaamhr+/P4MGDeLgwYMKzpKjRo2iZ8+emJmZSRmBL1++cOnSJaneYNeuXUybNg19fX10dHR4+vQpzZo1Y+fOnZlmEX4lzs7ODB8+HCMjI2kyIpfLuXjxIm/evJGcSf8jje/d0f/63rR/Oaamphw/fpwpU6bg6uqKiYkJ06ZNk3rv/w28e/eOnj178vr1a0qVKsXz58+xtrZm9+7d+dJ/rKurS3R0tJTyFkWRr1+/UqNGDQUzj4oVK/Lx48dM9yGKIqGhoRgYGBAUFERCQgLNmjWjdevWUsFPfHw8Xl5enD59mrFjx9KrVy8+f/7MhQsX6NGjB61bt85yjLVr12bs2LF06tSJatWqUbx4cUaMGIGlpaVkWtKuXbsMyzj/kf8MGDCAmJgY5s2bR0JCAoIgMHLkSDZt2qTgD//06VNSUlLQ0tLC09MzR61oL1++ZNOmTSxfvlxaWy9WrBg1atRg8uTJDB8+PFeT3KJFi2Y5Odi8eTM1atRQKBSrW7cuAwcOZPbs2QqBvmnTpkyePJlp06ZRr1495HI5Dx48YMGCBZibm3Po0CGmT5/OxIkTpYxBUlIShw8fplWrVty9e7fA/TNyQ6dOnVi2bBmOjo6ULl0afX19njx5grGxMR4eHhnMtv6vk6M++n8qv0sffU75N67Ji6JInTp1qF69Ol26dEFJSQmZTMbWrVspU6ZMvhQ4ubi4sGXLFoYPH46enh7nzp3j+vXrdOvWTeFid+/ePbZs2cLKlSszqIv5+fmxd+9eSpUqRWJiIhMmTMjSN0AURQ4ePIiHhwfW1tZ4eXnh6uqKsrLyd8c6b948KlWqhLGxMRcuXCAiIoLq1atTtGhRbt++zbRp05g0adKPfSD/kSNSU1MJCwujSJEiqKmpsWTJEkljPz4+nsuXL3PgwAHatm2b430uW7aMa9euMXjw4AzP7dixg1atWuVboa2NjQ1169alQQPF9uqUlBQGDhxISkpKhutJaGgoZ8+eRRAEOnToQLFixRBFkcqVK9OvXz9q1KihsL0oisybN4+FCxfStWvXfBl3fpKYmMilS5ckwZy/fxb/Fn60jz5HUzRBEAyBaUB1QJrWiqLYMq8H/o+M/NuCPKRVDkdHR9O1a1fp/ampqTF48GAcHBwU7qDyiqOjI6mpqaxZs4aIiAjatWuHg4MDFy5coFWrVkRGRrJ582aePn2Kmpoa9vb2tG7dmn79+klrkgcPHsTMzIx3797x559/ZluAIwgCffv2RRRF/P39sbKyylGQhzR9+9OnT9O3b1+aNGnCrFmzqF+/PpaWlrRt21Yy5vlWdCc3pKamcu7cOe7fv0+1atXo2rVrhk6A/0hDWVkZQ0NDrl27xuXLlylatCjLly/nwoULGBkZ4enpmeVST1bEx8dnubaroaGRrzrzenp6UoFgTEwMqampFClShPDw8CztYY2NjTOISj1//pyYmJgMXgGQdq43atSIY8eO/ZaBXkNDI0+dF//XyGkuZj9pYjkdgNGAHfCloAb1H/8eXrx4Qfny5TNcdDQ1NSlWrBhv3rz54UAvCAJTp05VqGtIL6bbt28fDx48oH79+kycOBE1NTXevHnDokWLuHDhApAmgjJlyhRWr17N1KlTc1xl27NnTy5fvpyrnub0NWFIm/D06tWL8+fPY2lpSdGiRSlWrBjPnz/PtMjoeyQlJdGmTRs+fvwoLQktWLAALy+vPE8c/s3I5XKp7czMzIw7d+5w//593NzcaN68eZ72aW1tzc6dO7G1tVWo/E5NTcXX1zdfa2+GDBnCyJEj8fPzIygoCCUlJcqWLYuenh4DBgzI8X7ShZ6yutFQV1cnJiYmv4b9j0QURcmkLCc3ZNHR0ezevZunT59iYWFB7969f+mEO6c9CAaiKG4HkkVR9BRFcSjwr7ibDwgIYNasWUyZMgVPT89/hbPc70TlypV5+fJlhs81NjaWT58+FVhVr46ODt7e3qSkpJCcnEyfPn2kH1rp0qUZMWIEpUqVYuvWrUyfPp3o6GgMDAwoW7Zsjo+hpqZGy5Ytf0jJrnTp0nz5kjZnDg0N5fPnz1SpUiVP+9q5cyfR0dHMnTsXW1tbZs6ciYGBAStWrMjz+P7NnDhxQiqQ69WrFyNHjmTkyJEMHjw4z1awTZs2pUKFCmzatElyHoyMjGTTpk1UqVIlS8+DvNC2bVt0dHQoVKgQmzdvZsuWLVSuXJlHjx5JSn45oVKlSiQkJGSpkufn5/d/uoD01q1bmJiYYGRkRIkSJbh582a224eGhlKrVi0OHz5MdHQ0y5cvx8rKqkDV9b5HTgN9uvzUR0EQOgiCUBfQL6Ax/TRmzpyJtbU1QUFBUqVmr169SElJkbYJCQnB2tqaEiVK0KZNmyylTH8XXr9+zaNHj36bCUvjxo3R19fn2LFjkjpcYmIiO3bsoEePHlI176lTp6hfvz56enq0bNmS27dv//CxixcvTseOHalTp06GWXjlypUJDQ2VCqwePHiQp4tw06ZNefnyZY63f/bsGRoaGuzYsYPDhw/j5+eHXC5nx44dODs7s3jx4jwXEl26dEmS04W0TIelpWWOXfp+JnFxcRw9epS9e/fy/v37XzKGEydO0KxZM4U7rbp165KUlCSJ0iQmJnL58mVOnz6dZSHntwiCwOnTp6lSpQqTJ0/GwcGBKVOmUK1aNU6ePJnvy3MvX75kyJAhqKuro6KiQs+ePUlNTc3VEoGamhoODg7s2LEjgwXujRs3CAkJyVWG4N9ETEwMnTt3ZuDAgezevRs7Ozu6dOmSbYZjyZIl1KhRg3HjxtGxY0dmzJhBXFwcf/31108cuSI5Td0vEARBF5gErAV0gJw1lf6mXL9+nV27dilcWDt37sySJUvYtm0bo0ePRiaTYWNjg4WFBd26deP69eu0adOGhw8f5nhN9mcRExODra0tt2/fplChQhQuXJgTJ05kKK752QiCwNmzZ+nduzcODg6UKlWKly9f0q5dOzZs2ACkmcQMHz6cIUOGULFiRR48eED79u25fv36D4//24zCtxfZFy9eSFr1kJZhyEuA1dHRIS4ujpSUlO9WJX/+/JmtW7dStmxZihUrRnh4OOfOnaNu3bq0bduW1atXS1K4OSU1NZUFCxZw/PhxIiIi+PTpE5aWltLzoaGhCu/zdyA8PJymTZuirq6OlpYWEydOlHTjc0JKSgoymSxPBi/foqWlJd11p5OamkpiYiKFCxdm/fr1zJkzhxIlSlCoUCGePHlC586d2bx5c7bdIpqammzevJmVK1fy+fNnjIyMCsTdDtJ00r+VAZbL5cjlcm7dusXZs2f58uULhoaG9O/fHysrqywnGjNmzOD9+/dMnDiRRo0aoa2tzePHj4mMjOTSpUu5tsb9t/DixQt0dXWlc7NevXocPXqU58+fU69evUxfc+PGDYVOCCUlJerXr8/169czLdL8GeRU6/7M//43CvhX5HB2796NtbW1wsVdVVWVjh07smvXLkaPHs2LFy+QyWRSsUf37t3x8PDg7du3uUrx/gxmzpxJfHw869atQ1lZmatXr9KjRw8eP378y4v8ihcvzvXr13n8+DFv376lWrVqlCpVSnp+0aJFDBw4UPoxNW/enIiICFatWvXD8pwtW7ZETU2NY8eO0aVLF1RVVXn37h27d+9WEKlRU1PLk266TCZDTU2Nc+fOfbcoaMGCBXTt2pUuXbpIj3Xs2BFnZ2dJZCe3TJkyhcuXL2Nra0tUVBQbNmzgwIEDdO7cmadPn3L8+HHc3NxytK/0tsQiRYoUqBrYggULKFWqFEOHDkUQBK5fv86IESOYNGkSt27dwtDQkAEDBkhua9+Ob86cObi6upKYmEjDhg3ZtWuX5CqYWwYPHkzHjh2xsLDA2NgYuVzOqVOnqFGjBufPn2fp0qXMmjWLkiVLAmmFdrt376ZHjx5SfUd2aGpqFqhvgSAIDB48mJ07dzJkyBDU1NT466+/UFdXZ/LkyVhaWlKxYkXCwsIYPnw4mpqanDp1ShrTnTt3cHFx4c2bN7Ro0YL58+czadIkjhw5QkxMDL1796Zz587/CmW4vFK8eHE+f/4sFQ2HhYXx+fPnbCfPFStWJCQkhGrVqkmPvXnzBmtr658x5Ez5nmDOVFEUl2UlnPNPEcyJi4vj/PnzREZGUq1aNRo3bkxkZKSCIlQ6Ojo6REdHA2mKZZGRkcTExKCtrU1UVBTx8fG5Kr76Wbi5ueHo6CjdVbZs2RI3NzdevnyZ5wthflOtWjWFkz+dV69eZVCyKlOmTL6k79P9twcNGoS9vb3kSNa3b1+FVH2pUqV4/Phxrtcinzx5QoMGDSRlsnbt2mUqv3n06FFiY2Pp2LGjwuN6enq0bduWDRs20KRJk1y/v+3bt7N06VLJT33AgAGcOXOGK1euUKlSJfbs2aNwh3/16lWcnJykC8+SJUswMjIiKCiIjh078vXrV0RRZNu2bQWm1hcSEkLVqlWlCWj16tXZtm0bLi4umJqa8vr1a1avXs3cuXMVLGg3bdrE4cOHWbRoEXp6ely4cIH27dvz5MmTPEmempmZ4ezszIwZMyhXrhxhYWEULVoUNzc3GjdujIODgxTkIc3FbOTIkUyePJk7d+5gZmb2Q5/DmzdviI+Pp3z58nku1HJxccHR0RFHR0dSUlIoVKgQ7du3p0uXLgoT/Pbt23PhwgWaN2/OvXv3ePToET179qRr167Y2Nhw69YtGjduzP3795k+/T//snSMjY1xdnbGycmJKlWq8PTpU+bMmZNtoJ82bRrW1tYoKytTsWJFfH19CQwM5MCBAz9x5Ip8747+8f/++89pRv8bq1atYt68eVSoUAE9PT2ePXtG4cKF6dmzJxcvXqRZs2YKPwgfHx9p5lWiRAnGjBmDs7MzpqamBAQEMHXq1N/S6UlXV5eoqCjpwpSUlERiYmKu09GiKLJ7927u3r1L5cqV+eOPP1BRUSnQrIC5uTn37t2jQ4cO0mP379/P4BCXV0qUKIG7uzvv37/n69evTJo0ibdv3ypoYjdv3pwJEyZIlbU5xcPDQwpQPXr0wN3dnZYtW1KpUiWUlJR49+4d165d4927d5QoUSLTJR8TE5NMTVtyQnJyssJ3IwgCjRs35siRIxm2vX//Pr169WLgwIF069aNq1ev0qpVK/z8/OjSpQs2NjZYW1vz6tUrxowZQ/369QtkktigQQPc3NwwMzNDRUUFd3d3DA0NFQJM27ZtcXJyokWLFpJU7a5du+jRoweGhoYAdOjQAS8vryylUHPCH3/8Qf/+/fHx8aFo0aLUrVsXX19fNDQ0Mr0bV1ZWxsLCglOnTuU50N+4cYMJEyYQHByMlpYWCQkJODg4MHPmzFxPWNTV1Vm/fj3r1q1j+vTpkgLj30l3ZXv9+jWTJk0iICCAQYMGSZNdU1NTXFxc2L9/PyNHjszT+/rdEUURLy8vzp8/T0pKCmZmZjlqP3V0dKRVq1Y8efKEqlWrZmmmk07dunW5fPkyCxcuZN++fTRq1EjKVP0q/tWCOWXKlBFFUWTy5MkYGxsDaV/2jRs3+Ouvv9DX16dcuXK0a9cONTU1PD098fT05O7duwqp5cuXL/PkyRNMTU1/2+rT9GKuQYMGoaWlxYkTJyhTpkwGv24/Pz+2b9/Oq1evEEWRUqVKMXjwYMzNzREEgbFjx3L58mUsLCy4d+8enz59IjIykuLFi7Njxw5sbGzyfeyPHj2iefPmNG3alPLlyxMQEMCLFy+4e/dugfw4YmJiaN++PYmJiXTr1k0KZuvWrcPIyIjevXvnaD8BAQHs2bOHkJAQlJWVEUWRO3fusGHDBoKCgoiOjpYEg5SUlDh16hRbtmzJcGE5duwYenp6bNq0KVfvI121rUKFCgwcOJCoqCjWrl3LokWLFO6E0xkxYgQJCQnSEoMoisyYMYPNmzfTuXNndu/eLW27atUqpkyZQvfu3XM1ppwgk8no3bs3N27cQENDg/DwcJYsWSL9RtM5duwYRkZGrF27Fkgr7GzWrJm0Npr+2z558mSW66V54fbt29jZ2TF//vxMnz927BhlypRh2bJlud63j48P7dq1w87ODnNzc5SUlHj//j3btm3D2to6z86FycnJFC9enD///JMSJUpkeP7Tp08cP34cHx8fDAwM+PLlC66urgptl2fOnKFIkSL/SvfEkJAQqYiuYcOGqKioEBQUxMePHzl48OBve11Pp0AFcwRBOE32Wve/tVLBhw8fWLRokcIFJL0S+c2bN5QoUQI1NTWWLl2KTCajffv23Lx5UyHIQ5oCVUEEuPxk6NChKCsrs2bNGmJiYujVqxdz5syRnr958yYODg68ffuW5s2bU6VKFQRB4OPHj/Ts2RM9PT0WLFjA9u3b2bBhA+rq6ly8eJGOHTvSunVrHj9+jK2tLffu3VMw1cgPatSoga+vL66urjx79ozmzZtz6NChAtPX1tbWxt3dnTVr1rBu3ToKFSpExYoVUVNT4/z58xgaGn73hx8SEsLGjRs5ePAgysrKJCUlsXnzZrZv387Lly9RVVVFFEVsbGxISUnh0qVLAOzZs4ehQ4dKd26vXr3i/PnzGVp2YmNjefToEXp6elSuXDnTMSQnJyOXy6lcuTIbN25EXV0dfX39LO84YmNj0dbWlv4WBAFNTU3kcjkaGho8e/aMypUrExsbS0hISIG1PqqpqeHm5kZwcDB37tzB2dk5Q5CHtLTpt10uI0aMYP78+RgZGVG0aFHOnDmDrq4udevWzdfx1a5dm8+fP0uFdN8iiiL3799n6NChedr37Nmz6dWrl8KykYmJCZMmTWLixIlMmzYNExOTXO/348ePKCsrZxrkX716xaJFi7CxscHV1RUdHR3mz5/Pw4cPpWUdURQJCgrKkxvg705UVBRWVlZYWVnRtm1bKQPWtWtXAgMD6dGjB1evXqVOnTq/dqAFyPdS9+kNuN0BY2Df//7uC3wqqEHlF8rKyllerJo3b87KlSt59+4da9askR6Pi4sjMTExR7rWvxt2dnbY2dllePzMmTMMGjSIgQMHYmFhkSF93KlTJ+7fv8+QIUMQBAF1dXU+fUr7etNdsGrWrEnt2rW5ceNGvgd6SFuTd3Fxyff9ZoW6ujpTp05l0qRJXLlyhSdPnkhdFitXruT58+d07Ngxw4UzOjqaq1evcvLkSfbs2YONjQ2XL1+mb9++6OvrY2pqira2Nnfv3mX+/PlS0Wa1atVYs2YN3t7e3L17l7p16xIWFsazZ8/Q19fn9u3b0mTD2dkZV1dXihUrRkREBKVLl2b37t0ZOhAKFSqEjY0NERERjBw5kkePHnHz5s0sZUD79euHvb09tWrVkgqz3r59S926ddm7dy+DBg2iQoUKvH79Gjs7O6pVq1ZgssyCIFChQgX09fUZPXo00dHRGZaZnjx5ouBVMHjwYL5+/cqSJUsIDw+ndevWnD9/Pt/HV6hQIcaNG8fmzZuZNGmSVN0vl8txc3OjcOHCeZr4JyUlce3atUwNV7S0tKhXrx7nzp3LYKGbE5SUlDLt/U9JSWHFihUMHjxYYSmsV69erFixgvDwcEqWLImHhwfx8fHZur6FhoZy6NAhoqOjad++fYH5MsTExODt7U3hwoVp0qTJD3c47dixg9KlS9OuXbsMz5mamtKlSxfmz5/PsWPHfug4vzPZBnpRFD0BBEFw+Vva4LQgCL/9un12J0j62lg66e1pV69eRRRFBg8ezIYNG367Nrrc8vDhQwYNGsTkyZOzXG9VUlKiQYMGFCtWDCcnJzZs2ECDBg2k4sPChQsjl8v59OnTb1mI+CMoKytTvnx57t69iyAIJCQkIJfL+fr1q9RaVbp0aVRUVAgPD+fhw4doaGjg4OBAjx49CAwMxNbWlvHjx0sSouHh4QQGBip0ZtSsWZO4uDh27NjB3bt3CQsLo3r16sTHx2NiYsKGDRvYsWMHbdq0kQrOihYtilwu59q1a7Rs2ZKgoKAMWY5Dhw4xadIkDh06RLly5bh27VqWNQadOnUiICCA6dOnI5PJKFWqFCVLlqRSpUoMHz6ce/fuERQUhLu7O7t27cLV1ZVy5cqxatWqTC+S+YGenh59+/Zl27ZtjBkzhkKFCiGKIvfu3cPX11dhOUEQBKZMmcKUKVMK3BfCycmJ8PBwJkyYQMOGDdHQ0ODBgweSR0Feiv/Sl0mzuqaoqKgoaHjkhuLFi6OmpsarV68UzjsfHx+KFSuWod6latWqzJkzhwsXLhAUFERMTAwDBw7M0t/h8uXL9O7dm/r166Opqcn69evp379/vk/ON2/ezLRp0yhbtizx8fEkJCRw9OhRzM3N87zPXbt2KXS6/J3mzZtjb29PXFxcgbVB5oTIyEicnZ05ffo0Ojo6jB07VupM+VFytEYvCMJjoIMoisH/+7sccE4UxYwl1L8RysrK4o4dOzI9ea9fv05QUBBXrlwB0u6G37x5w4gRI5DJZLi4uNC/f/8MFaifPn1i4cKFfPz4ESsrK8aMGfPL29eyo2/fvqioqCj0dWbHpUuX8PDwwNjYmKioKBITEzE3N+fFixcoKyvj6en5r2q38ff3p2XLllhYWJCQkIC3tzerVq2iaNGiJCcnc//+fQIDAyXVxPQgP3fuXARBwM7OjpSUFIULSWpqKvb29kydOlXKfty/f59NmzZRo0YNqTL/7NmzhIaGMm/ePJSVlVm0aBHBwcEsXLgwQ1Xvpk2baNeunRTkrl69yqFDh5DL5XTv3p22bdvmKPj069ePZ8+eMXLkSGl9Njw8nK1bt1K9enXMzMxwdXVlzJgxmJiY4O/vz+bNm3F3d89zijw1NRUlJaUsfydJSUmMHDmSEydOULVqVb5+/YpcLuevv/7CwsIiT8fML96+fcvJkydJSEigSZMmNGrU6Id+72ZmZjRr1ixDIZ9MJsPBwYGbN2/mWRlx3rx5XLlyhT/++EMa49KlS2natOl3OzqePHnCwYMHCQoKyvBcSkoKZcqUYdiwYZiamgJp9Slr1qyhV69eTJw4MdeeAJlx8+ZNunbtysyZM6VM2t27d9m5cyevXr3KUy9/XFwclSpVYsaMGZl2WaUzZswYHj58mOnSx89ALpdjZmZGkSJFaNOmDVFRUezYsYOYmJh0bZEfWqPP6bR0InBNEIRrgiB4Ah7AhLwe9Geho6PD8ePHM5VfPXXqFBMmTJAe8/DwoEuXLqioqFC4cGHat2/PkSNHFGbYkZGRmJubExISQrFixXB1df2tnca+fPnC2bNnc1Vo0rx5c8LCwti7dy8PHz5k3rx5GBkZ0bdvX65evVpgQT42NpZt27YxduxYJk+ezPXr13+Kut+cOXPo2rUrdnZ2lC1bFjMzM0l7X1VVFXNzc4YNG0bp0qVxd3cnKiqKefPmSRfSc+fOZbhbUlZWZuDAgSxZsoQ9e/awfft2Nm7cyN69e9uM9n4AAQAASURBVGndujUHDhxg6dKlqKmpMXv2bFRVVVFSUqJmzZooKytn2rpTo0YNfHx8EEWRUaNGMWTIEBISEkhJSWHcuHH07dv3u7KtgYGBuLu7M2HCBIUiLH19fSZMmMD58+dZsmQJQ4YMoWTJkgiCQJ06dWjXrh3r1q3L9Wf79u1b2rVrh4aGBgYGBsyfPz/T71RdXZ3du3fz6NEjZs2axZ49e3j58qUU5MPDw3FxccHCwkJKtZ47dy7PMrW5oVSpUowdO5YpU6bQuHHjH57UOzs7s2fPHoKDg6XH4uPj2bJlCy1atMhzkAeYMGECX7584eDBg9J1KyoqKkcFrUZGRnz9+jXT5x4+fIiqqqoU5A8cOMCmTZuwsbEhLCyMFi1asHz58jyPO52NGzfSvn17hWDbsGFDKlWqxPHjx3O1r9TUVIYOHSoVHm7atClLnYyoqChkMpnUovozSExMxNfXFx8fH8LDw/Hw8CAqKooRI0ZQpkwZatWqxdSpU1FSUsqXbFpOBXMuCIJQCUhX9HgiiuKvE+7NIWXKlOHly5e4uLhgZWWFnp4ez58/58KFC/Tv31+6y3337h0xMTF8+PBBOsnevn3LmzdvKFeuHEeOHMHCwoITJ05QokQJBg4cCECdOnWwt7dn2bJl2aqiRUdH4+npiZKSEi1atPhp6aEzZ85Qp06dXM2E1dXVsbCwwM3NjUmTJtGvXz/69etXgKNMq2IePnw4VatWpXLlynz58oUBAwZgZGTEqVOnClTZLSIiQlr7lslkWX5WhQsXziAPCmkXlMwmP02aNKF06dI4OztTunRpdHR06NSpE9bW1sTGxrJx40a8vb0lYZKyZcvy4sULqS3y7zUinz9/plixYnh4eHDhwgUWLFggbdOqVSvmzp3LyZMn6datW5bv9a+//qJJkyaZthOpq6vTuHFjLl68mKEwztjYmMDAwCz3mxmiKNK2bVtMTU3ZsWMHERERbNiwgSJFijBu3LhMX1OyZEmFvnUAb29vunTpQs2aNbG2tkZbW5tXr15JPe6nT59GXV2dbdu28ezZM6pUqcLw4cN/K+/0b2nfvj2rVq3C0dERfX19tLW1efLkCV27dmXz5s0/tG8dHR08PT3p168f48ePp2nTpshkshwZ0sTExGR57mtpaREfH49cLic4OJgbN26wbNkyaft27doxffp0evbs+UMCQaGhoZl2TxQtWlSqGcopq1atwtfXly1btqCkpMSKFSs4evQoffv2zbCtu7s7PXv2/Cl1Wek3Crt27ZLskdNbb42NjRUmksWLFycpKSnLYtzckJtfQyWgCmk2tbUFQUAUxR83Ey9AVFRUuHnzJnv37mXPnj2SYM6BAwckd6qvX79KLTubNm3C2tqaxMREbt26hZOTE6GhobRv354rV64gk8kUTgYNDQ1EUcz2zuLt27dYWlqir68vaVDfuHEjQzVvQfD169c89fzr6enl+oeVVzw9PRk1ahTTpk1TKPLr3r07x48fx9ramgcPHhSY81OHDh3YvXu3FGROnz7NgAEDFIJ3WFgYr169yjSN3KRJE+7du6fge5+OhoYGcrmcSZMmMXLkSORyOZ06dSIpKYkFCxagq6vLjRs3mD9/PjVq1CAqKoqWLVty8uRJBbGa8PBwrl69yqVLl9i8eTPNmzdXOA/TzXUOHjyYbaDPrODtW3R0dDAxMcHb25s2bdoAaQH71q1bubYo9fX1JSYmhu7duyMIAsbGxvTp04fNmzdnGej/zrt37+jSpQsjR45UqIguX748zZs3Z+vWrdjZ2REbG8vnz5+pUaMGHh4enDx5krNnzyosZaRnEn6HZbb+/fvTu3dvrl+/TlxcHA0aNMi3yayhoSGXL18mKCiIgwcPEhYWhqen53cL527cuJHluVOpUiXKly/PiRMnSExMpHnz5gqTAn19fczMzDh16hQODg55HrulpSVeXl4KY01JSeHBgwc5FvGJi4tj9uzZHD58GD09PeLj49HX16d9+/aSDkP6tUQul+Pl5cXVq1fx8fHJ87hzSkREBJaWlhgZGeHk5ISxsTGJiYksWrSI8PBwPn78KNVEQZr/hqGhYZZ1E7khp370TkAL0vzozwHtgBvAbx3oIe1ObNSoUYwaNSrT55ctW0bFihUZPnw4bdq04c6dO+jq6rJgwQKMjIwwMTEhMjKSCRMmsH//fmbOnMnly5cpV64cZ86coUuXLtkGIUdHR8zNzenRowcA+/btY+bMmT8s7ZoT1NTUJCOZ3JCSkvLTug6cnJzo27dvhkp+QRDo3r27JOOaXTXwjzBlyhS+fv3KzJkzEQSBkiVLsmrVKvr27UvJkiV58uQJ27dvZ9KkSZkWIk6ePJnevXtTq1YthclbcnIy27dvx8bGhocPH1KhQgVu3rzJ8+fPWbZsmRSE2rRpQ3R0NC9fvuTmzZskJSXRokULgoODqV27NpGRkVy/fp0ZM2ZQt25dab3772RVdf0tderUYdu2bQrCRN/y7NkzevTowaZNm9izZw9aWloUKVIEbW1tRo8enZuPlZSUFFRVVRUCq6qqaq6KzdavX4+FhUWmbU/KysoMHTqU0aNHU6xYMRYsWICysjLt27dnzpw5XLlyhWrVqknvJTQ0FLlcjp6eHt27d2fcuHFSKvpXoKqqSsuWigag0dHRTJ48mWPHjqGlpYW9vT2TJ0/OU+Ff9erVmTdvHlFRUZQtW5aXL19mkBRO59OnT3h5ebFy5cos93fkyBF69OhBUFBQpkuBqampP5xF+eOPP9i2bRv79++nRYsWxMXFcfLkSWrWrJkj8Sy5XE6HDh0QRZGBAwcSFBSEk5MTS5Ys4fHjx6irqzNu3Djq1auHqqoqDx8+pGjRoly7du27nURRUVGsXLmSK1euUKpUKSZPnpzrrgN7e3tKly6NnZ2d9Ls4cOAARkZGODs7s3v3bv7880+srKwICwvDy8uLCRMm5MvkNKdnUE/AGggVRXEIUBv4x5dfJyUlsX37dunCV7ZsWXr37k337t0VLtrNmjUjMDCQ2NhYrl69yqtXr/jrr79o0KABe/ZkP9cJDg5WaIuqUaNGrtzOfoQqVarw4sWLXL/u1atXP7RWmFO+fPmCr69vlgVXgiDQrFmz737GP4KSkhLLly8nMjKSiIgIHjx4QOPGjZk1axZ9+vRh7dq1yGQyyUr27zRv3pw5c+Ywe/Zs9u7di7e3N6dPn8bBwYHXr1/z/v179u3bx759+7h79y41a9bMcOGuX78+SUlJ6OvrU7x4cQICApg8eTKFChWiRo0aeHt7M3nyZAB69OiBl5cXMplMen1KSgrXrl2jZ8+e2b7XPn368OzZs0wLrgIDAwkODubcuXPY2NiwefNmpk6dSmJiIlOmTFHov88JDRs2RC6X4+7ujlwuJyYmhqNHj+bKBe3bzFtmqKmpUaFCBYoVKyZVsquoqFCiRAnmzp1LjRo18PPzY9y4cezYsYM9e/bg5OREZGQkLVu2pEWLFoSGhubqfRUkvXv35uXLl8ybNw97e3t27NiRbfDNCbq6uuzatYsVK1Zw9+5dhclgeu/8okWLWLBgQZYTAUirVbhz5w4HDhzgxo0bhIeHS8+9f/+ee/fuZZtNyglFixbl1q1bFC9enFWrVrFv3z66du2Km5tbjoLdo0ePeP78OWPGjKFu3br0799f6iQKCAjA29sbX19fbG1t6dy5M8ePH+fBgwffNc6SyWQ0a9YMT09PKZtmY2ODt7d3jt/b58+fOXPmDN27dycuLo7Y2FhkMhnXr1+nX79+KCkpMXjwYAYNGsSXL1/48uUL5cqV+64KX07J6RQsQRRFuSAIKYIg6ACfgVLfe9HvzrNnz9DW1v5u2kxVVZU6depw8+ZNhg4dyuXLl3N8jHr16nH9+nUqV66MKIp4e3vnWa4zt9jY2BAXF5ftbP7vhIaG8vLlSykDUZBERkaiq6ubbYGfvr4+ERERBT6WdFRVVUlMTKRLly5069YNJSUlYmNjGT9+PM7OzpkW7CgrK6OpqcmlS5cwNjamadOmHDp0CJlMRmJiIk2aNMHIyIjg4OBMl0S+rQ2BtPXy/v37079//wzbtmnThkaNGuHs7EzLli1RUlLC09OTChUqSN+ZKIo8fPiQsLAwLCwspNSfpqYmhw8fplevXgqV3z4+Ply/fp3FixezcOFCbG1tEQQBLS0t+vXrx86dO6W6lJyirKzM2bNn6devn9QdMGDAgFzpqEdGRn63QKpUqVJ4enpKn+G7d+/w9fWlWrVquLq6Zkh7GhkZ0aNHD7p06cKJEycwNzfH29s7Q23Az+bNmzf4+Piwfv16VFRUMDQ0ZPDgwaxbt06a5OWVLl26cPjwYSZOnMhff/1FzZo1EQSBZ8+eIZfLWb16dY59DTp37sysWbOYMWMGDRs2JDU1lXv37rFmzZosK9bDw8NZs2YNly5dwsDAgNGjR2fwfEjHxMQk1wqR6aQvrX47kdbV1aVly5YsWLBAWm7IrcTvyZMnEUVR6rCqXbs2hQoVwtnZOcexYOPGjWhrazN27FhJRTM9O5d+jqcXv9apU4cXL16wffv2XI0zO3Ia6O8JglAE2Ar4ArHArXwbxS8iJ9ai6eS1x3XFihW0bduWiRMnkpqaiqmpaZbSmvmNsrIyf/zxh9Rh8L1ZsSiKnDx5kiFDhvyU1L2xsTHR0dHZrh2/fv26QB3AMiMsLIwSJUpIFwwtLS20tbUzDTzHjx9n4cKF2NvbY2RkxJkzZ3jy5AktW7bM8Hl36dKFCRMmcOPGDZo0aYIgCHz9+hU3Nzc2btyYo7EJgsC+ffs4ePAgK1as4PXr10RERBAZGcnWrVvp27cvHTt2JDg4GD09PUJDQzl48KAk8GJtbc29e/dYunQpq1evRi6XU7FiRS5evCgVFn47bhUVFYXsQW4wMTFhy5YtFClShBIlSuS6PcrY2JiPHz9mm01ISkqiQ4cOODk5oa+vT2hoKGXLlv1uyjvdu11dXZ3WrVvj5+eHurp6ptvGxcWxdu1aXr16Rf369Rk2bFie0unZER8fj4aGhkKPvZaWFnFxcfmyf2tra/z9/fHx8cHX1xe5XM7kyZNp0aJFrt/L5MmT6dGjB6dPn0ZZWZm9e/dmGeSjoqJo1KgRJUuWpFWrVoSHhzNmzBgeP37MlClT8uOtSZiamqKiosLx48dp1qwZjx8/5vHjxxw4cOCHbHafPXtG+fLlFX4XlStX5ty5c999bWRkJD179sTf3x8bGxtatmwpXesiIiKYPHkyb968oXTp0gqve/z4cb5OPr/7DQtp726xKIqRoihuAmwAu/+l8P/RlC1bls+fPxMbG5vtdqIo8vz58zyls3V1dfH29sbT05ObN29y5cqVH/bRzg0TJkwgJSWFvXv3ZruGK4oibm5uvH//ntmzZ393v6mpqdIPKS91AJAmRdu5c+csZ8UymQx3d/dcrw//KC1btuTKlStSlf3169dRVVXNII0MaQIf3bt3p0KFCmhra2Nra8uHDx8yTY9raGhw4cIFzp49y4wZM1i8eDEzZsxg/PjxWd7h/B1RFFmyZAmjR4/m8ePH9OnTh/379zNx4kQWLlxIr169KFSoECtXrsTJyYnx48fTp08f6b3I5XKOHTvG3r17qVGjBoMHD6Zw4cK0a9eO0qVLI5fLpaCfPgnJTG3xe7i6ulK6dGkGDBhAw4YN81STMnToUEnnIjNiY2Px8fFh1apVvHr1ChcXFwoXLsyff/6Z4+DVsWNH1NXVs1RFS0xMpFmzZpw5c4akpCRWr16NnZ1dvrd+VqlSBV1dXa5cuYIoiiQnJ3P8+PHvLsfkBkEQsLCwwN7ennHjxkkZob8jiiIymSzb91iuXDnGjx+Pvb19tr3nW7duxcjIiFGjRlGzZk2aN2/O9OnTWbBggeQSml+oq6vj7u5OREQE8+bN4/bt21y4cCHT321uMDMzIyAgQOFG7969e9maGt27d49+/fpRtmxZlJSUWLt2LV27duXx48fMnj1bym6VLl2aTZs2KXRGBAcHc+rUKamtLj/OtZwK5jwURfHHFRF+Mg0aNBDv3ctewC8zQZmoqCiePHlCcnIyhoaGpKSksH//fp4/f/5bVO3mlvDwcNq3b09CQgJt27albt260g9cLpcTGBjIxYsXSUxM5OLFi98Vjdi+fTtz586VJg5KSko4OzvnSf87JCQECwsL2rdvT6tWraQ0flhYGDt27KBs2bIcPnz4p37ucrkce3t79u3bh46ODkpKSpw5c4batWtn2NbGxgZTU1MaNWqEKIr4+/uzYcMGNm/enGU6VC6X4+PjQ3R0NObm5go97X/n/v37uLq68urVK+rUqYO+vj67du3CwsKCV69eKWhB+Pj4sG3bNubNm6ewHLVgwQJcXFxo1aoVQ4cO5dy5c1SpUoWxY8dK26xZs4aIiAj27t3LiBEjePz4MWpqaowbN4758+fn6vMPCAjAysqKuXPnYmRkxJcv/4+9846ruf////20SyQNaagQlYyEjIiQvffeM8reK1RcdvZel713RkgIUSEJSSVJtPc65/dH394/52oo6xof99vtun0+Tue813mf9/P1ej2fz8fjE4sWLeL69eul0hOPi4ujTp06dOjQoYCXd0ZGBmvXrsXGxkYwvRk/fjyxsbGlDo4PHz7E29u70Mrro0eP4urqKhRrZmRkMHXqVO7evfvD61hevHhBjx49SEhIID09HRsbGw4fPlzq+ojvId8cKyoqimrVqrF69eoiizdLQufOnalWrZqUtj+As7MzW7dulbJQ/qciFovp2rUrISEhWFtbEx0djZ+fH97e3oXeA66urqxbt44yZcoIhd4ikYjz589z/fp1Bg0aRO3atYmNjeX8+fP4+fmRlZVF1apVSU5O5tOnT4hEIoyMjFBXVyciIoLw8PCfZ2rzBX4ikaiBRCLx/dYdlQSRSLQS6AxkAW+A4RKJJEEkEhmRZ5n78v/eel8ikfyQad68efNo3rw5VatWRUdHh4MHD+Lv70+NGjVQVFQkIiKC+Ph4qUrJv5vIyEhCQ0MxMjIqsORTGBUqVMDLy4sjR47g7u7O3r17hVHuhw8fhN7mIUOGfHW1YfPmzbi6ujJhwgRBUjckJISFCxeSkZHBhAkTSnUuxsbGeHt7M2bMGBwdHTE1NSU9PZ3Q0FBGjx6Nq6vrL7/uMjIybNmyBWdnZxISEjAyMiqys2LUqFHMmjULXV1dLl++zIsXL7CwsGDixIkkJyczatSoQrf/1wdfPs+fP+fatWsoKyujrKzMlClTMDc359WrV9y7dw8ZGRmcnZ0FKd4vyddnSExMFAK9RCIhISEBdXV1Lly4gJeXFzVq1MDMTFrU0sLCgiNHjtC8eXOUlZVRUlJi/PjxggJgYYjFYkQiUYG/X7p0icaNGwsFrVpaWjRu3JiLFy+WKtBXqFCBGzdu0KFDB7y9vWncuDHlypUjPDwcLy8vunfvztq1awGEwfiKFStKvP18rKys2L9/Py9fvhQe3GKxmLt373L37l20tbWFc8wX/0lISCjVPhITE4mNjcXAwKDImhQzMzOCgoJ49eoVqqqq32Ru8z2cO3eO+fPnM3HiRKpWrcrTp08ZOnQoV69e/WZ3QD09vQIFjzk5OXz8+LFQI6N/AvkrKvlpLBkZGU6fPs2pU6fw9PSkefPm7N27t9Djv3v3Lu7u7jg6OvLHH38Ig+SkpCROnTrFypUrBUEuXV1dxo4dy8aNG1FXV6dy5cps376dp0+fYmRkxK1bt0hISKBy5crfbdld0hl9MFANCAdSAVHe9ZD8mJLA/78fe+CGRCLJEYlEK8jbyaz/C/QXJBJJqfphvjajz8rKYtasWZw4cYL4+Hhyc3Np3749nTp1EnI6EomEFy9esGfPHoYNG4azszMpKSkkJyejra39U7Xws7OzWbduHUePHkVVVZXRo0dz4sQJbt68iYGBAe/evcPGxoZ9+/aVyuktKChI8GPX09MTinO+RmZmJnp6esyZM6fAclhkZCRubm5ERkYWmev8Gq9evRIC2F97df+pSCQS1q1bx9KlS8nJyWHjxo0oKSkRFRXFvHnzSEpKKvE9cvnyZQYOHIi1tTWpqan4+vrSokULHj9+zLhx4yhXrhyrV69m/fr1nD9/nhMnTuDm5oauri5ZWVm4urry+fNnVFVVGTFiBBUqVODixYvExMTw8OFD2rRpQ40aNcjKyuLRo0fMnj2b/9PDYNmyZaSkpDBr1iwh171r1y6aN28uzJghz+bY3d2ds2fPkpiYiKysLMbGxowbN45hw4ahrq7O7t272blzp9Rqw/r16xk2bNg3Gbbk5uZy8eJFjh07JkiCjhkzRmo2FRMTQ40aNb5ZdGbFihW4ublhb29PeHg4bdu2JScnBxkZGd69e8eiRYswNjbm/v37HD58mNevX5d4pr169WoWLlxIuXLlkJeX59KlS39ra19RtGzZkrp160oNQs+fP4+CgsI3F4blS0w7OTlhampKZmYmR44cISMjo9i0zN9BSkoKbm5u7Nixg/j4eNTU1Bg1ahTz5s0r8Xfdt29fVFRUiI2NBRC6TG7cuMHTp0+lfhP5vHr1iu3bt7Nq1Sr2799PrVq1cHNzk3rPT7Wp/YK237qD0iCRSK5+8c/75LX1/TQmT57MgwcPcHR0JDo6mq1bt9KkSROpACMSiTA3N2f+/PksWLCAW7du8fjxYxQVFVFUVGTatGlMnTr1p8w6x48fz+PHj+ncuTOpqalMmjQJAwMDNmzYgKKiIllZWRw5coTOnTtz9+7dEh+Dubm5YMBSGnx8fNDW1i4056Wvr4+WlhY+Pj60aNGi1NuGvAKXH6EC9SsRiURMmTIFCwsLZs6cKcyyK1WqRG5uLmlpaSV+SIwaNUrKHOfQoUPcuHGDWbNmYWJiQkREhPAdx8TEYGVlxfz589HX1yc6OpqKFStSoUIFHB0dWbt2LfHx8YIgkEgk4tmzZ/Ts2ZOyZcty+/Ztli5dSq1atXjy5Anh4eFs3LhRWBXQ0dHB0dGRKVOmsGDBAmRlZenduzdBQUFCFXOFChXIyckhNDSUs2fPsnjxYhYvXsyoUaNYvHgxBw8exNLSkoCAAMLDw0tc2f1XZGVl6dKlC126FO2KnZmZWWp55sTERHbu3Mnr16+RSCTcu3cPe3t7xo4di6WlJd26dUMkEnH8+HEWLlyIjIwMFStW5OLFiyX+Tu/cucOqVatYtWoVGhoa3Lp1i27dun1T2+vP5tOnT8JsMx8NDY3vOtY6deqwc+dOJk2ahEQiISUlhWbNmnHs2LHvPdwfSnp6OnZ2digpKTF79mz09fWJiorizJkz2Nra4u3tXSJF0+fPnzNo0CDWrl3LzJkzhdczMzOLvGfKli1LZmae0KyNjQ07d+4sEOi/lxJVrEgkkvDC/vuhR1KQEcDlL/5tLBKJ/EUikZdIJPohiZ2TJ08yfPhwDA0Nsba2xtbWFn9//0Lfq6amRocOHYQH4pYtW5g8eTJbt25l9OjRP6w6Np/Y2FiOHTuGk5MTFhYWWFtbM2HCBJKTk4UZs4KCAoMGDeLdu3f4+Pz8JoisrKxiZ+uKiorCDfu/hqWlJZGRkdy7d4+kpCQOHTqEjIwM48ePL5EEqVgsJjo6Wmqgkx/wTUxMgLxl0KysLEJDQ9HW1kZGRoaNGzfSt29fli5diq6uLpaWlkyYMIHXr1/z+fNndu3axe3bt2ndujUpKSksWbKEI0eOMHbsWFq2bElaWhoVK1akQYMGBR5kZcuWxcTEBC8vL5o2bYqamhpr166lW7duaGpqIiMjg4KCAqampkyYMAEXFxfWr1/PypUr8fHxQU9Pj8uXL1OpUiXu379frCrf96Kurk5SUlKJO2NycnJYvny5ILYzbtw41q1bx927d/H09KRjx47CoKp3794YGRlx7tw5ofK+pPj5+VG3bl1hxc3W1pbIyMgf/rz4EbRr145bt24JxV/5ynH5VtXfSvfu3QkPD+fGjRu8evWKCxculGoF8lewfft2IE/UJr/aXVdXl/Hjx6OoqFjirpgKFSoQGxtLcnKyVIdO9erV8ff3L7Qg+vHjx8LvXkNDQ1gN+JH82B6REiASia6LRKLAQv7r+sV75gE5wMH/e+kDUFkikVgCU4FD/9fPX9j2x4hEokcikehRUSIn+aioqEjl2hISEooNZM2bNycqKkp4z9u3b3n//j2nTp3CwMCAK1eulOAKlIz8Y/myD1hLS6tApaqMjAwWFhZFDlB+JA0aNODNmzeF5icTExMJDQ0tthL1v4ympiZTp05l586dODo6EhYWxrJly4iKiiqRSIyMjAympqaCCIdYLMbLy4vs7GwheMnKytKtWzc2b95M7dq1CQ4O5tixY2RnZ3PlyhUePHjAqlWrhG0mJCQI4j/m5ua4ubkJbZbz58/nzZs3DBgwAEtLS+Lj40lNTeXy5cts2rSJjRs3cubMGT5+/MiaNWuoUaMG/fv3LzYNoa2tzbx589i1axe+vr5s3ryZBw8esGXLlp/ep66qqoqlpSWPHz8u8DeJREJ0dLTUA/T9+/ekp6czcOBANDU1sbS0pH379hw9ehQVFRWp35lYLCYpKQk9Pb1Sr9xVrlyZN2/eCIYqISEhKCsr/9LOm5Iyb948Pnz4gKurK4cPH2bhwoWUL1+ekSNHfve2ZWVlqVGjRpEOcnFxcRw/fpzjx4//lED3NXbv3k27du0KfL8ikYh27dqxZ8+eEm1n+PDhXLt2DRkZGalupPwasD179kiZ6wQHB3P27Fmh66Yo74zv5Zc7P0gkkoKi4F8gEomGAZ2AVpL/G1r+n4FO5v/9/8cikegNUB0okICXSCTbge2Ql6Mvbl9Lly5l6tSp2NnZERUVRVhYWLE5RBUVFeTk5MjIyCAuLo7Dhw/j5uZGpUqVCA4Opn///rx58+ab9OX/Sv6D9969ezRt2hSxWMyZM2cKLYr5+PFjsRaMPwp1dXWGDx/O1q1bcXR0FB5WaWlpbNmyheHDh/+Qc/+3cvLkSSZOnCj1HY0YMQJHR0fevn37VT2Aw4cP07ZtW7y9vUlOThZ0rm/evCn0wbdp04akpCTmz5+PmZkZwcHB3L17VxDDyS/CS01NxdzcnBo1ajB16lSpNipjY2Nat27N/Pnz+fz5M5MmTWLr1q04ODhQr149Qb3v+fPnQvtpSfXp1dTU6N+/P25ubqXWx/9e8gugvvQuDwwMZNeuXWRmZpKVlYWenh7jxo0rtGUp/yE/btw4tm3bxrBhwyhTpgynT5+mWrVqX1VQK4wuXbpw6NAh5s2bh76+PkFBQezfv/8fU9j7Jerq6vj5+XHu3DlevnzJmDFjaNu27Q/XDPgrr1+/pkWLFoJjopOTEzdv3vwl6pz5fP78uUj/EW1t7RIPPgYMGMCOHTtQUFAgIiJCqhZjypQpbN68GQcHB0xNTYmNjSU2NpZx48YJz4aIiIjvbgcsjH+UxZNIJGoHzARsJRJJ2hevawFxEokkVyQSVSHPYCe0iM2UmEGDBqGnp8eCBQuIjY1l2bJlxeZhUlJSyM3NRUlJibCwMMzNzYUHq6mpKVpaWrx+/fqHzGpnz55N+/btOXToEGfOnCE1NZXU1NQCqk5Pnz7l3bt3Je7D/lYkEgmfPn3C2dmZWbNm4ejoKPiT+/v7079//x9iVflvJjQ0tIBmtoKCApUrVyY0NPSrgT5/lu7n54eysjL169fnxYsXwnKvlZUV8fHx+Pn50aNHDzp16sSLFy+4fPkyr169EgLTwoULuXz5snC/FPagrlSpEsOHD2f37t0sWrQINTU1FixYIJWjtbW1RSQSUaFChVLpmFesWJFXr14JkqG/ip49ezJlyhT8/f2xtLQkOjqadevW4eDgQN26dcnNzeXatWu4uLiwcuVKFBUVOXToEO3bt+fdu3dcuXKFixcvUr9+fRQVFVm+fDlpaWl0796dgwcPfv0ACkFGRoajR4/i5eXFx48fadCgwVd11f9OFBQUfmjvfkkYN24cbdq0EVIEV65cYezYsdy6deuXHYOZmRmvXr0qNNi/evVKSJ99DUVFRa5du0aXLl0KFF2WKVOGGTNmEBUVRXh4OGXKlMHc3Fzqt3Xr1q1vKlj9GiWquv9ViESiEEARyB8+3ZdIJONEIlFPYAmQDYiBRRKJ5PzXtleSPnqAly9f0qRJE9zd3QtdNsnOzsbLywsPDw8yMzPp0KEDlSpVYu/evaxYsQJFRUUSEhKYPn06kydPJjQ0VHBN6tixI507dy614UOFChVYvnw5ZcuW5c2bNygrK7Nr1y6ioqKoU6cORkZGhIeH8/TpU86cOUPz5s1Ltf3S4Ofnx9ChQ4mIiEAsFjN48GBmzpzJ7du3gTzVrV/dCvRPpFmzZtSvX1+qajk9PR1HR0eCgoK++RpFRUWxceNGbt++LayqdOvWjZcvX2JjY0OfPn1o1qwZsrKyvH79mm3btpGUlESbNm3o06dPkdvNzs5m9OjRSCQS1q9fX2g///jx4wWnra8hkUjYu3cvDx8+RF1dnZiYGC5fvkzTpk2/6by/hXv37tGpUycmTpxIQEAAMjIyBWyWly1bhp2dHZqamsLgVFdXl1WrVn1Xz/i3kC+L/fDhQ+Tl5enQoUOJ5ar/KxgYGDBjxgzhHouJicHV1ZWoqKhfdgxnz55l8uTJLFy4UGqyl5aWxtKlS1mxYkWpBkBxcXHo6+vTuHFjZGRkUFdXx8bGptjfUUxMDPPnzycyMrJAx9Gvqrr/JUgkkmpFvH4SKFy66gdQo0YNrKysOHXqVIHK4OzsbNzc3BCJRPTu3Rs5OTk8PT25desWmpqaTJs2DRMTEwIDA8nJyeHOnTvUqFEDDQ0NkpKSWLBgAQ4ODjg5OTFjxgyp2VVOTg6PHz8mLS2N6tWrSwUCU1NTgoKCaNKkCdWrVyczM5OPHz9y/fp1fHx8ePnyJd27d+fUqVNf1QP/HtLS0mjXrh19+/aladOmgpf6rl27fpmU77+FfMUrFRUVateuzadPn9i3bx/dunX7roGQrq4urq6uBV53cXGhXbt2Um5i1atXx8nJqcDsvDDk5eUpV64cJiYmRYr2pKSkFCvo8yVPnjzh2bNnrFmzBmVlZfz8/OjXrx/v3r0r0ed/BE2aNOHEiRP07t0bVVXVQtMHhoaGnDlzhpiYGEaOHCnVPvgref36NT179iQhIYHatWuTlZXFwoULsbOzY9++ff+K9tIfQdWqVXny5IkQBJ8+ffrLBztdunTh5s2bzJ8/H3t7ewwMDIiMjOTatWt07dq1VN4fHh4ejB07looVK6Kjo4OysjIfPnxg/vz51KhRg7FjxxYoTE1LS2PdunXMmTPnp3zv/6gZ/Y+mpDN6yBtN2djYYGxsTOfOnYUlnPwipy9lNSUSCatWreLdu3d0796dEydO0KRJEzp37lxoZXFYWBj79+/HzMyMw4cPIysry5o1awTJTlVVVcLCwrC2tsbCwoJTp07x7t075OXl6dy5MxoaGty8eZMmTZqwe/fub74eDx484OzZs6ioqDBgwIASLSGeOHGC5cuXS7WKvHv3jrVr1xIZGfnNx/Jf5cyZM8ydO5eQkBDKlCnD6NGjWbZsWbFWxt+KlpYWzs7OhQb0fKGd4pYBc3NzGTFiBBMmTJDKa3/JiBEjcHd3L9HD5/Lly0RFRQnFW/lGNmlpaT/l/IsjIiKCwYMHIxaLpeoLJBIJkydPRiKR0KBBA548ecLAgQN/eDvT14iNjaV27dqCImR+zj4rK4vdu3cjLy+Ph4fHPzKX/70EBASwbNkyHj58iLa2Nt26dWPjxo1UrVoVkUjE69evuXnz5je1AH8PEokEb29vtm7dSlhYGJUrV2bcuHFCCqsknD9/nuHDhzNhwoQCWglZWVkcP34cPz8/nJ2dhd9UREQEmzdvpmPHjri7uxe6r//UjP7vRFtbm/v37+Ps7MyCBQuoVKkSSkpKhISEMHbsWKmZuEgkonPnzhw9epRr167RuXNn2rVrV+S2jYyMmD17NqtXr8bJyQmJRMLNmzeZPHkyRkZGQJ6k59WrV9myZQtjx47FysqKwMBATpw4QUxMDLNmzWLOnDnffH7Tp0/n4MGDNGnShMzMTFavXs3mzZvp379/sZ/LV4j6Enl5+W82OikJmZmZbN68mbdv31K3bl2GDRv20wuCfhTdunWja9euZGRkoKioKHXccXFxnDp1iqysLDp16lQiVcPikJWVLbKdTEZGhoCAAMRicZHXLr9C/dq1a3h5edGoUSOaNWsm9aCpVKkSISEhJVK0MzAw4PLly4JJkY+PT7Gqgj+TypUrc+LECWrXrs3p06dp3bo1GRkZHD9+nJSUFDZv3oyioiLdunVj2rRpTJw48Zemn7Zv346pqalQZJmPgoICo0ePZvr06Tx8+LDIAdi/FR8fHzp27EjXrl2ZNm0aHz9+5MCBA3Tq1EnQ37C3ty+yMO5nkm+L/a1p0NTUVIYOHcr06dMF1dAvUVBQYODAgaSmprJ9+3bq16/P7du3+fTpE3PnzmXixIk/bWD3e0ZfCGlpaTx+/JjMzEzmzp2LnZ1dgWr3kJAQNm3aRJUqVUpckZyWlsbEiRNRVVVl+fLlhbbYXLp0iadPn0rZeT548IDjx48TGhpa6lw/5OXY27dvj5ubmzCKDA8Px8XFhffv3xdbgJiQkICxsTFOTk6Ym5uTnZ3N9u3bqV279k9Z8szJycHOzo6MjAxq1KjB48ePadCgAXv37v1Xz26io6OxtrbGwMAAJSUlAgIC8PT0LFQ/v6SMHTuWT58+0a9fP6nXX758yfbt29HV1aVy5cr06tWrwLWLj49n9uzZyMvLCympCxcuYGpqKmVic+PGDR4/flxip7Fjx47h4eEhtIW2bdsWBQUF5OXlMTExYciQIb/0If7mzRtmzZrF5cuXUVRUxNramri4OKZNmya8Z86cOZw8ebJU8rzfS+3atenZs2cBKeJ8Tp48ia6uriDx+1+hWbNm1K1bV0rjPi0tjSlTpuDn5/fLnSp/JNu3b2fPnj1MmTKl2PfFxcUxefJkWrRowejRo+nSpctXW+p+z+iL4c2bN1SpUgV5eXnatm3LxIkTS6S8pqKiItyIT58+5cSJE1haWko9LG/evElCQgL29vYlPh4VFRW0tLRo0qRJkX20rVu35tSpU3z69AktLS0ArK2tBdezrl27Fvq54rh06RLW1tZSy6+GhoYYGhpy9+7dYs+hfPnyHD16lMGDB6Oqqkp8fDxNmjT55qXO7Oxs7ty5A+SpQP31Br927RoxMTEsXrwYGRkZ2rRpw9SpUwkJCSlx5es/jaioKAYMGICCggKWlpZYW1tz69YtZs+ezeXLl7++gSKYO3cu1tbWKCgoYG9vj7KyMo8ePeLAgQNs2LABW1tb7OzsiIiIwN7enmrVqpGeno6Pjw+XLl0iKysLFxcXYem/bt26TJo0iU6dOhETE8ObN29QUVEhODiYd+/eCW0/cXFxwoBUTk4Oa2trYf99+vQhISGBgIAAkpOTiY6OxtDQkOzsbDw8PFiyZAkdOnRg3bp1v0TrvGrVqpw4cUL499u3b7GysuL169eYmJjw4MEDUlJSfvm9lZKSgpqaWpF/L1euHImJib/wiH4+2dnZ3L9/n/Hjx0u9rqKiQr169fD09CzUG+LfwvHjx0ukSV+hQgVq1arF6NGjS5X7/x7+04FeVlaWSZMmkZWVxcOHD2nUqBFr164tle3mmDFj2LNnD5s3b6ZNmzbIyspy7do1Hjx4gKqq6jdJthY1ioe85R1jY2Pev38vBHrIewjfunXrmwK9qqqqYFOaj0QiITk5uURSnvb29kRGRvL06VM0NDSEdENpefz4MV26dBHqGBISEjh79qxUO2JCQgJaWlrCcrOSkhIVKlT41z70XFxcWLFiBfXq1aNevXp4e3tz4MABevTowefPn79r2/kDtXnz5jF+/Hhyc3MFg5b8VJKvry/79+9n8+bNhIaGoqioSNu2bdmwYQOzZs2Syu+XKVMGXV1dVq5cSWZmJnXq1CEmJoacnBwWLVrEH3/8QW5uLosXL6ZRo0aMGTOGrKwsPDw8cHZ2ZtGiRdy7d4+7d+/SsWNHunTpUsB4Z8CAAVy4cAFra2u8vLyKvJfyByQqKio0bNjwh6RuXr58yZ49e2jWrBnLly9HIpFQvnx5Lly4UCJ50x9JvgZCUU6RISEhxUr+/huRlZVFXl6etLS0ArVMKSkp//riw4SEhGIHb1+ipqZWamOk7+E/HejV1NSEvJuxsTFNmzZl2rRpmJmZlbjXXVVVlTt37rB27VoOHz5MdHQ0mpqaDBw4kKdPn5Z6OVlFReWr8pepqakF8poSieSbl6779u3L4sWLad68OaampkgkEjw9PZGVlS1xDlBeXr5U0p9/JTc3l+7du9O3b18aNWoE5AWhfHnM/JREkyZNcHBw4OnTp9SsWRNvb29SU1OLHRz9Uzl8+DDbt29n5cqVUkJCT548Yc2aNQU0Eb6FqlWrcuTIEcRiMWKxuEBqp0yZMowfP77ALCotLY3x48cTHR0tzKyTkpKIjIwUgnh+cH3+/LlgzKKhoUGbNm3o0aOHsC0zMzPWrl2Lm5sb4eHh9O/fv8iaFVVVVfr164eamhqtW7dm6NChBAQEoKqqSp8+fWjXrh3Xr19nwIAB6OjokJqaipKSEpcuXRKKR+Pj43n58iVly5bF3Ny8RL+LGzdu0KtXL1q0aCE4A86bNw9HR8e/JSU0adIkxo4dS+PGjaXULyGvOMvf35+TJ39ao9EvJyIigvv372NjY8OZM2cYPHiwcN3fvHnDq1evfnlr449GXV2d+Pj4Er03ISHhp3ZL/ZX/dKD/K/r6+nTs2JHVq1dz9OjREn9OTU2NxYsXC9asc+bM4cmTJ990DFZWVly/fl0Qm/kr79+/5/PnzwWWEgMCAr7JghPyCqoOHz7M0KFDUVdXJz09HRUVFc6fz5MiSE1NRUVF5ac+8B49eoS8vLwQ5CFPUvfs2bPCAwDyZqknTpxgyJAhfPjwgerVq+Ph4fHLZ1w/Ajc3NwYOHFhALbBOnTo0adKkxKP/kiAjI1PkrFcikXD79m3c3d25d+8eycnJKCsro66uzrJly+jSpQtycnKcO3eOnJwcBgwYILWtmjVrUrduXRo0aMCGDRsKFIWKRCLat2+Pu7s7DRo0KLYwNZ/27dtz584djh07RsuWLUlJSWHq1KnMnz+ft2/fMnXqVGFQeuHCBQYOHMiVK1eYNGkSZ86coVKlSsTFxaGiosLatWvp3r17sfubNWsWw4cPFwa29evXZ9myZUyYMOGnSI5+jbZt29K+fXuWLVtGjx49qFu3LllZWdy5c4fTp0+zefPmXxoIfiZXrlyhf//+mJmZ8fHjRz5//sy7d++oVasWnz594sGDB+zfv7/ERkH/VPr378/WrVuLtKDO5/Pnz4SEhBQoxPyZ/DtKmX8gtra2nDt3rlAJzK8RFhaGrq4uKioqlC9fvoDPckkwMzPj2bNnFFYkmJGRwY4dO2jXrp3Uw+fevXukpaV9l7mEhYUFo0aNQktLiypVqjBy5Ej27duHtrY2GhoaVK1alT///PObt/81ZGVlyc3NlbruEomEnJycArNQOzs7IiMjycrK4sWLF9SqVeunHdfPIj09nZcvX1K7duFOzg0bNsTb2/unH4e3tzdmZmYMHToUNTU15s2bx4YNG1i6dCk9e/akfPnyHDt2DF9fX5ydnVFTUyu0RVRbWxs1NTVEIlGhVfRKSkpkZWWV6h7t0qULOTk52NjY0K5dO5YsWYJIJKJy5cqYmpoCeYOIDh06EBQURIsWLYiKimLlypVUqlSJrKwssrKyBNnR4nj16pXUqpCBgQHZ2dnExcWV+HgLQywWc/36daZOncrUqVO5cuVKocYlf0UkErFlyxYWL16Mp6cngwYNYvTo0Xz8+JFz584VEPn5t5Kbm8uAAQNwcnLCycmJZcuWUbNmTapWrYqmpiYtW7YkKCjou9IUmZmZ+Pr68vz581I/11NTU3nx4gVPnjz5boGevn37EhISQnBwcJHvkUgknDp1ioEDB/7SVMX/1Iwe8pbOs7KyEIvFpfaS19XVJTo6mqysLGrUqEFaWhohISGFtlIUxYMHD+jRowd79uzh0aNHgi3uy5cvOXv2LLm5uZQvX55nz55Rvnx5bt26xYMHD7h27VqpjxfyHkQzZsxg586dNGvWjAYNGgi6+Y8ePRLEIIKDg5kxYwbv379nxIgRUvUBP4J69eqhoKDAjRs3sLOzA/LkHkUiUZFplG85338KsrKySCQSsrOzCzVKym+/+5mcPXuW4cOHM3LkSKEA7ejRo4SG5qlHm5iYMGzYMFRUVHB3dxdWqSIiIqRa/yQSCS9evGDEiBE0atQIHx8fqappgLt37yIrK1sqeVcrKys2bNhARkYGSkpKiEQibGxsuHbtmtT78q9jVlYWI0eOxMvLi6ioKNzd3VFSUuLixYvMmDGDUaNGFbkqVb9+fe7fvy8Unj5//hw1NbXvus/j4uJo3749nz9/pkGDBohEIhwcHFBTU8PDw+Or2xaJRAwcOJCBAwciFosRiUT/6s6SwoiNjSU3N1cYZMnIyFCvXj2ioqJYt27dd29/x44dzJ07FzU1NdLS0ihfvjz79++nfv3iC9SfPHnChg0bOH78OOXLl0deXp7Pnz9To0YNnJyc6NmzZ6l/nyoqKhw6dIj+/fszevRo6tWrJ/V9pqenc+zYMaKjozl16tQ3ne+38j8X6ENDQ6lYsSJ3797F3Nz8q+phkPegOXLkCL6+vmhpaXHhwgV69OhBmzZt8PDwYOLEiSXad0ZGBl5eXjx69IgNGzawe/duDh48SFhYGJD34DMxMSE2NpaNGzeSnZ1N//798fPzk3L/Sk9PJyUlBXV19a+2202fPh0PDw/Wrl0rNYJs2rQp0dHRQtV1ixYtGDFiBC4uLri4uNC/f382bdr0Te18hSEjI8PZs2fp3r07Fy9eRCQSoayszLlz5/41PfKlQUFBgVatWuHt7U3r1tI+Tvmyp+PGjftp+/f19WX48OHMmDEDY2Njdu3axdOnT2nXrh3du3dHLBbj7+/P2rVrsba2ZsGCBbi4uJCTk8P69euZNm0aurq6ZGRkcPLkSWRlZWnfvj1qamp07doVkUhEo0aNyMrKwtPTk7t37xbbNvf582dSUlLQ1dUVVgTk5ORQUVEhLS1NKNqzsrJix44dBAQEULduXcRiMWfPnkVNTY2WLVsiIyNDREQEDRs2FD7TrFkzDh8+zPPnzwuIlOSzbt067OzsCA4ORkFBAT8/Pw4fPvxd996AAQPQ1tZm6tSpwgO9W7duHD58mH79+uHp6Vnibf0XfwOQV2EukUh48+YNVatWRSKREBQURIMGDb572+fPn2fhwoXMmjWLypUrI5FI8PHxoV27djx//rxQoy+JRMKSJUvYuHEjrVu35o8//hBSa7m5uTx+/JgVK1awYsUKPDw8BC+TktK2bVtOnjzJ2LFjOXbsGPXr10dJSYmYmBh8fHwEb/ufadlcGP/pPvqqVatKvmwD+/DhA0uWLEEikaCnp0d4eDiDBg1i/fr1yMvLk5OTw4ULFwgKCqJhw4a0atUKkUjEuHHj8PT0pGHDhkRGRuLr60uDBg1o2LAhu3btok+fPsIstShycnJwd3fHzMxMsDx8/fo1TZs2pWfPntja2kr92MViMZ6enpw/fx4fHx+MjY158eIF06dPx9PTEwUFBRQUFBg1ahQLFiwoNIcdHh5OnTp1WLNmTZHLRPn99Js3b0YsFjN8+HB27NjBunXr6Nevn1Q//49AIpHw7NkzJBIJtWvX/qUzGIlEgpeXF56enmhqatK/f/+f2tPt6+tL27ZtGTlyJPXr10ckEpGRkcGZM2cICgrCz8/vp9mVtmrViurVq9OyZUuOHz9OYGAgs2fPLlD4lZKSgouLC02aNKFu3brMmjWLfv36ceHCBZSUlEhMTKRChQqCKUzPnj2pUaMG8+bN4/79+8jIyNChQweGDx8uuMd9SVRUFDt27ODdu3eoqamRmJhI+/bthZz6sGHD2Lp1q3AdkpKSWLx4MQkJCZQpUwaRSISenh7y8vK0bt2a2rVrc+XKFR49esTs2bORlZXl9u3bHDhwAA8Pj2Lzo4mJiZw6dYqMjAy6du1aZMV7SSjOHyMnJ0dwYCtq4PG/xKlTpxg1ahT16tXj8+fPiMVi7ty5893BrkmTJjRu3LhAQfHOnTtp3rw58+fPL/AZZ2dnDhw4wMyZM4uUds5fXn/y5An3798vsQT0X7dx69Ytrl69SmpqKv7+/vj6+qKgoICZmRnnz58v1bPndx99MXw5iElOTmbBggV069aN9u3bIysrS3JyMlu2bGHatGmsWrWK+vXr8/79e2RlZcnOzsbe3p4FCxZw6tQpVq5cKTwkt23bBoCXlxe6urocOXKE+Ph4OnToUOBBCnliKfv27aNixYrCZwEcHBxo3769lFZ5Pvk95GlpaTg6OrJs2TJsbGzIzc1FT0+PT58+0bNnT+7du4ednR23bt0qsO/t27djY2NTbC7I0NAQAwMDHj58SPny5dHR0UFFRYXevXuzd+/eHx7oRSJRkXnrn0l+rvD+/fvUr1+fhIQEnJ2dOX369E9zWGvQoAGnTp1i/PjxHD58GC0tLcLCwrCxscHLy+unBfnXr1/j7+/PiBEjyMjIwMPDgxUrVhR6b6qqqjJx4kScnZ1p06YNIpEICwsLAgICCAoKQkFBgfj4eCpVqoSamhqurq6MHz8eb29vMjMz8fPz48aNG4SGhpKcnExUVJQQQFNSUli6dCldunRh3rx5yMnJ8fHjR9zd3YmPjycmJgYlJSUOHz5Mx44dkZeXF+x3q1Wrxt27d9HT08Pc3JwTJ06wbds2WrduTevWrQkICGD69OlUqFCByMhIcnJyvtrqqqamxvDhw3/INX748CG1atUqtJBPTk6O2rVr8/Dhw18W6PNnsxERERgZGWFtbf2PSQP06NEDc3Nz7ty5g5qaGp06dSr0XiwtwcHBDBs2rMDr1atX59mzZwVeDwoKwt3dHVdX12KDt0gkomfPnsTHxzN//nw2btxY6mMTiUS0bNmSli1bsnnzZq5du8aWLVtQVlbm8OHDDBkyBA8Pj1Jv91v5Twf6yMhIdu/eTVZWFvfv36dKlSpSdq5ly5Zl7NixTJ8+nZycHMLCwhg6dCja2tpcu3aNixcv0rhxY/T09KRuTCMjI0QiETt37gTytN8nTpyIo6MjTZo0wdTUFEVFRRITE3n48CFv377FwcGBRYsWCUvhb968wdfX96vqcm3btmXSpEmCbrebmxuVKlUiODiYlStXsm3bNtatW8e2bduYPHmy1Gf9/PyoUaPGV1vzzM3NCQwM5MWLF4IJiIKCApmZmaW53P9oTp06RUBAAC4uLsLScUBAAEOGDOHt27c/bem0RYsWBAUF8eTJE2JjY6levfpP8Zv+kq1bt2Jra4u8vDwPHz7ExMSk2BSVnp4eenp6PH/+nJYtW7J06VIqVKiAgoICIpGIbt26CbntSpUqsXbtWmbMmMGkSZM4f/48DRo0IDk5WZBxzn/43rx5k5o1a9K+fXthXxUrVsTJyYlp06bRs2dPunXrRmBgIAsWLKBWrVo0atRI0Llo06YNDg4OiEQipk+fTkZGBpcvX8bV1ZUFCxbw7t070tPTuXfvHpUrV0ZDQ+PnXdS/8LU22fxOll+Br68vAwcOJDs7GwMDA8EC9fDhw9+lvPgjMTU1FQosfxSVK1cmPDy8QNCOiIigZs2aBd6/ceNG7OzsCnTBFEW3bt2YN28eK1as+K6un9u3b2NnZydso3PnzkydOrXYz3z8+BE3NzeuXr1aovTy1/hPB/qqVavStWtX5OXlMTY2LjRwqampoaOjw4kTJ3BwcBDa3qpXr8706dN5+vQpYWFhwkwlOzubR48eSfVAGxgYcPbsWSIjI4X8Yr5NrZOTExUrVmTLli3o6OiQlZVF9erVadCggVCgVhxKSkrUqVMHX19f9PT0hJxR/o8mNTWVDh06sGPHDpycnPDx8eHixYt4eXlx//59rl69ys6dO7GxsaFt27aF6nnn5ORw69YtTExMkJOTIysri/Pnzxep2vT582e2bt3K+fPnkUgkdOzYkfHjx/8t+tQl5eTJk7Ro0ULqetepU4c///yTwMDAn7rKIBKJfqm8akBAgFDgmJCQUCIFuooVK5KQkMCwYcO4ffs2FhYW9OvXj71790qJ3igqKpKbm8vly5e5evUqK1asEP5uYWHBjh07aNSoEVWqVMHX17fQVjttbW20tLSoU6cOxsbGmJubo6amxrFjx6TkpOXl5bGwsEBXV5e7d+8SGhpKdnY2KSkprF27FhsbG27fvo2SktI3zbq+B3t7e0aOHElMTEyB+/7z58+8ePFCaoDzswgLC6Ndu3YMHTpUmMVLJBLu3LlD69atefLkyXelKP7JODk54eLigpGRkdCq+urVK+7cucP69eul3puRkcGhQ4dKpeipqamJqakpx44d+6aVoKysLLZs2cL9+/cxNzcXVg4jIiKKDd6JiYk0btwYMzMzBg8ezOfPn7+7Q+c/HejzxUIg74F35cqVAu/JysoS1L8MDQ2F1/PbfCpWrMiaNWuYNm0ahoaGvH37FolEwpQpU5g+fTrGxsaMGzeOoUOHoq+vj7OzM5BXXT927FguXbqEgoIC1tbWZGVlYWxsTHR0NHv27BFMHL6GkpISampqxMTEEBwcjKmpKT4+PigqKlK2bFn09fV5+/Yt2trawmCmcuXKzJkzBwsLC2JjY7lx4waLFy9mxIgRUnlMiUTC/fv3ad68OYaGhnh4eLB9+3YsLCxYvHhxgWMJCQnB1tYWMzMz7O3tEYlE3L17l61bt3Lr1i1q1KhR0q/nl6KoqFjAiEcikZCZmfnTq99/NSkpKcI55Xd0fI34+HjKlCnD+/fvUVBQYOjQocjIyNCsWTM2btxIxYoVUVNT4+DBgwwcOFAYOH05CGjWrBknT55k5cqVyMnJoaCgQGxsbIF95ebmkpKSIjVLatasGX/++adQhAd5v9knT57w5MkTWrZsSdeuXYXl/0uXLrF//36cnJxYuHDhLzfOKVu2LPPmzWPVqlWMGzdO6DYICwtj69atzJw584fqJBTFunXraN68uZQ+hUgkolmzZoSGhrJp0yZcXFx++nH8HQwbNozXr18zbdo0atasSVpaGpGRkezfv7+AZn50dDTKysqlXvUxMjIqtl2uOPr168fbt29p3749hw4dIj4+Hi0tLe7cucP+/fuL/NyePXvQ09MTVrZ+hGXvfzrQf8mgQYNYunQprVq1kmoBOnfuHA0aNEBRUZE7d+4I/ZypqakEBgayfft2zMzMePjwIQcOHKB58+bY2dmho6ODWCwmNDSUEydOsGDBArZs2cKAAQMICwujQ4cO1KpVC21tbebNm8e0adNwdHSkdu3aiMVi5s+fL1Tbf40PHz6QlpbGuHHjWLlyJZAXuKZPn05aWhorVqxALBZTt25dLCwskJGRISoqiu3bt6Oqqsro0aPp06cP1tbWQpV9viDPs2fPyMnJEZTQ2rdvj7e3N7t376ZFixZUrFiR3r1707dvX5SVlRkxYgRt2rSR6pe2sLDg2rVrDBkyhAcPHvygb+zHMnToUAYPHkzjxo2FpT5PT08qVar0TTLG/2TKli1Leno6kFfFvm/fPsFRrjA+f/7M69evmTJlCs+fP0dbW1tIZVhYWDBy5EihgHTkyJE4OzszceLEAitkEokEOTk59PT0aNSoEUZGRmzZskVq2RLg+vXraGtrS82E4+LiKFeuHC9evGD9+vXo6Ojg4eGBlZUVY8aMkQrk5ubmtGzZkqdPn7J582aaN29erF9DfpfDwYMHiY6ORkZGBiMjI0aMGFHoEm9JmTFjBmXLlmXZsmXC9crNzWXOnDk4ODh883ZLw+XLlxkxYkShf7O2tub06dP/2UAvEolwdXXFycmJ27dvo6KiQqtWrQrILkOezv63tOvmr3CWluDgYLy9vVm/fj1ycnJYWVmxZ88eXr58iaenZ5GCaZCXcv3RFr3/6UD/9OlTTExMaN26NRMnTmTv3r0MHz4cS0tLNDU1CQoKEqrbk5OTsbW15e3bt2hpaeHj48PIkSMxNzfHwcEBLy8v1q1bV+BhaW5ujrm5OREREUydOpXs7GxSU1OxtLQUCobEYjHZ2dnC8rCMjAz29vbs3r270KW/L3n//j3R0dGYmZmRnJzM9u3bSU5Oply5cqSmprJo0SJq1qzJggULCtzgXbt25e7du7i6ujJjxgxq1KhBz549OX/+PFOnTuXZs2esX78eR0dHqRx1s2bN8PHxoVKlSlSpUoXNmzczdepUevbsyfPnzwttC7Ozs+Ps2bO8ePGiVHK1fn5+XLt2DTk5Obp06fLTzEXs7OyEeozatWsTGxtLZmbmf9Lzu0GDBjx79gwrKytUVVWxsbFh586dODo6FmiXzM7OZseOHbRu3RolJSUyMzOJjIwkISFBGBBZWVlx9uxZVq1aJQyEBw0aRK9evWjevLnwvrt37wqDTHt7e2RlZWnYsCFz5szB3t4eTU1Nofq4Xr16goVuVlYWR44cYcyYMcyePZuDBw+yb98+zMzMmDBhQpH1E7Vr18bJyYl+/foRERFRaNHp0aNHcXZ2JiUlhWbNmmFoaIhEIiE8PJwWLVpQo0YN3NzcCugClJRx48YxevRoXrx4gUQiwczM7Ie1pJaUojqn8nvz/+vkT0aKQ0tLi4SEBLKyskq1+vP58+dvEuwKDw9HX19fuBfKlStHp06dOHDgQLFBHqBGjRp4eXmVep/F8Z9ur6tcubJk0qRJ+Pr6ClrXzs7OHD9+nI8fP2JlZUWnTp2ELyM+Pp4jR44QHR1N27ZtadKkCadPn2bKlCksXrz4q8U1kZGRLF26lOnTp3PixAkSEhKE2fbIkSNZtGiRYOKR33IkJyfH3LlzC304ZGdns3LlSrp3706XLl1o3bo1nTp1omXLlqioqLB06VIqV678VZOegIAAtmzZIlhejh8/nooVK/Lp0yfatGlTqArXnTt3ePjwoVA08vHjR7Zs2UJmZmaRea4VK1bg6upK27Ztiz0eyMuZ9enTh4cPH1K/fn2ys7Px8fGhVatWnDhxQmr0/erVK168eEFmZiYVKlSgadOm31y1+/79e7y9vdHQ0MDOzu5fLcpTFOHh4dStW5f169ejpKREdnY2a9asITk5mc6dO1OnTh0kEgl+fn5cuHABLS0tYRCQr7cQEBBA7969KVOmDJcvXyYiIoI3b95IicC4uLjwxx9/UKdOHRITE/n06RMHDhygZ8+ebNmyRRANevHiBefPn+fdu3fCgHHEiBGEhoYKS6OtWrXizz//REFBgfT0dPT09Fi8eHGJ6gvWrVtHz549yczMJDY2lpYtW9KpUyeWLFnCtm3bGD58OLVq1SoQ9HJycrh//z4HDx5k8+bN9O3b94d/Fz+badOmERISwsCBAwv8bffu3TRs2JAlS5b8DUf2z8Pe3h4TE5MSd9lkZmYyadIk/P39S22fGx8fj5GREc7Ozujq6iKRSNizZw/VqlX7aj1JTEwMtWrVwt7enmbNmvH582fmzZv3Xe11/+lA/2UffVpaGmvXrqVRo0ZSLW755Mux/rVdplmzZlhZWZXIfhDgzz//xMDAgD///JPKlSvj5OSEt7c3T5484dWrV1SpUgVZWVni4uJYuHAhixcvRlVVFSsrK/T19bGwsEBRUZHnz59z8uRJTExMsLOz48GDB8THx5OYmIi/vz/y8vLCbKwkWt1r1qyhZs2atG3blilTplC/fn2uXLnCtm3bCg2ad+/e5f79+1K+3R8/fmT27Nls27atwKg4JycHR0dH7t27V6Kl8IkTJ+Lv74+Dg4MwyElLS8PZ2RlVVVUePXrEuXPncHd358WLF1SrVg15eXkSExOJjIxk2LBhTJw4sVRKbP9LdOzYkYoVKwrFcLm5uUJx5pfKePb29oI7XFRUFM7OzgwaNIiHDx8CeQ+7evXqERISQrdu3QpUC0dGRnLz5k3Kly8veM83bNgQS0tLWrVqBeTNLPPvv+bNm6OpqUmbNm0ICgoiNDSUWrVqIScnR2pqKklJSTx58oQ9e/Ywc+bMEp1rQEAAmzZtwsrKiooVK+Lt7Y21tTUPHz5kwYIFX+2DjoiIwM3NjVOnTv20VsufRUREBPXq1aN///40bdoUGRkZxGIxXl5eQi/4r7AD/jdw4cIFpk2bhrOzc4m6bDw9PQkPD//mNrjdu3czZcoU6tSpw6dPn5CVleXWrVslqqJ/9eoVs2bN4ubNm2hoaBAaGvo70BfFXwVz0tLSmDlzJp6ensJyjEQiYe3ataxcuZKYmBjMzMz4448/6NChA8HBwdjY2ODu7l7i5bh8UZ5169bh4OCAWCymfv36VKlShdzcXB49ekR4eDi9evWiQ4cOzJo1i5iYGCpVqiSofikpKaGjo4OZmRnXrl0Tgmq5cuX48OEDampq2NrakpubS79+/Up0XIGBgezZs4fVq1fj4OBARkYGZcuWLVKGcu3atZiZmRWomnZxccHU1FSqIj83N5cLFy4QHh4ueM0XR0pKCnp6elKqVPmEhITg4uJCjRo1hI6CBg0aSF3/mJgYPD09uX37Nvv27ZNqmfxNHoGBgdja2uLg4FCiXu6EhASWLl3KvHnzuHz5MsbGxlKD2wsXLlC2bFk2bdr01W09f/6cVq1aYWxsjI6ODvfu3SMlJQUjIyN0dHSIi4sjIiKC6dOn07NnT3r27ElERAQZGRloaWnx+fNnqlWrxsKFC0t0rgkJCUyePJm9e/cCebKrkyZNYtmyZSUeCPr4+HDnzh18fX1L9P5/Ev7+/gwePJjExET09fWJiIhAS0uLgwcPflcNwo8iPj4ed3d3rl69Svny5RkzZsw32W1/L7m5udja2lK+fHkp97zCCAkJYdWqVVy9evWrcrrFERUVxfXr16lYsSKtW7f+5hXE34I5pUBFRYWWLVuyceNGYVa/bt06IQdtYGDAkydPGDJkCOfPnyc8PBxzc/NS5dwqVaqEgoICu3fvxtjYGEdHRylXpo4dOxIZGcnq1auJiooiKiqKBQsWCLPgsLAwXFxc6NSpEydPnkRFRYVOnTphb2+PjIwMMTExLFu2DA8PD5ycnEp8XObm5kRFRREaGkpmZiY3btygS5cuXLhwoUCgfPjwIcHBwYwdO7bAdsaOHcu8efN48+YNJiYm+Pv7ExISAuTZNC5YsIApU6YU67wVHh6Ourp6of2sVatWJSMjAzk5OSndgS/R1tamf//+1K9fn6FDh3L8+HHs7OwQi8Xcv3+fhIQE6tSpU2gr4f8KFhYWnDhxgl69etG7d2+aN29e6LWUSCS8fv2aLVu2YGVlxebNm4mLi+PJkyc0atQIGRkZYYC6aNGiEu27Zs2ahISEcPz4cY4cOYK8vLxU2gryBsSbN29m/fr1tGzZkrdv37J06VKMjIz4/Pkzs2bNKqC5XxT5uf58NDQ0kJeXL1WFdcOGDTl8+DD+/v5fzaH+07C0tOTZs2c8fvyYd+/eYWRkRN26df8R+fn8VrFKlSrRsmVLEhIScHR0xN/fv9Cunp+JrKws58+fp3Xr1mzYsIEePXpISYvD/5cpP336dIk08yHvN7R79242b97Mhw8fqF27NrNnz6ZFixbo6uoyZMiQn3VKJeZ/KtBDXiVqvkiNRCLhjz/+YMqUKUJrnaWlJd26dWPVqlV07tz5mywsZWRkePfuHUuWLCn04aqvr8+CBQtwdHTE2tpaaqnbyMiIZs2asWnTJoYMGcLt27elZtXa2toMHTqUrVu3Sm07OzubDx8+kJWVRfny5QssD8nIyCArK8vZs2eFHLqMjAweHh48fvyYJk2aICcnx6NHj3jz5g0zZ84stCZBU1OTFStWMGnSJIKDg+nXrx9z585FSUmJd+/ecenSJQ4dOoS3t3eR/btaWlrExcUJZiZfkr/EVVjh2F8xMTFhwoQJDBo0iH379jF69GhkZGTQ0NDg1atXdOjQgZ07d/4rLW5/BC1btsTT0xMHBwdOnTpFixYtsLS0pEyZMmRmZvLmzRtu3rxJRkYGHTt25PLly4wcORI5OTm2bt3KlClTaNSoEc+ePcPExKRIXYXCUFVVpV27dkyePJkVK1YUGPhVqlSJESNGsGTJEiwsLLh//74wENDU1KRKlSq8f/++RIH+9evXyMrKCgWEV65coUyZMojF4kLvscKQlZWlRYsW7Ny5U2rV4u7du7x9+xYzMzOsrKxKfP6/GpFIRP369b9r9vkz2Lp1KxUrVhTanCGviHL69OlCrdDPJCcnBw8PD968eUPz5s2xtLTE29sbFxcXli9fjq6uLlWrVkVOTo64uDgePnxI8+bNuXbtWom/bwcHB27cuEGPHj3Q09MjMDCQ3r17s3Hjxn9M3cf/XKBXUlISWo9yc3OJiYkp8DAxMjLCz88PDQ0N4uPjS7X93Nxc4uLiGDNmTLGBqkKFClStWrXQma+amhpKSkp8+vRJahaUj6GhIWKxWFjy9/Dw4ObNm5QpU0b4nJ6eHm3btqVx48aIRCLi4uIQiUQEBAQgkUjo1KkTiYmJ7Nq1i4sXL3Lz5k1BXnfOnDlSmgJ/JSUlBVlZWVxdXaXyfwYGBowdO5ZTp07RsWNHGjZsiLq6OsOHD8fQ0JBjx45x/Phx0tPT0dHR4eLFi1LBI988qG7duiWujK1VqxYqKir06tULBwcH6tSpg0gkIj09nb179zJgwADOnj1bom39F6lbty53794lMDCQjRs3cvDgQZKSklBWVqZ69eqsW7eOtm3b0qJFCwYOHCi09Tg4OAiz/DFjxtC2bdtSqwfu3LmTxo0bF7jH82fg6urqiMViypcvz6dPn/jw4QOVKlUiKSmJ0NDQEutM3LhxgzZt2jB58mQUFRXJyMggNzeXmTNnkpGRIaSgLC0ti53lGhgYEBgYCOTdiw4ODpw9e5Zq1aoRHBzMhAkTSryqAXkphbt376Kjo1PAyex/hWvXrhXQoi9fvjzm5ubcu3dP8Dz4GaSlpWFnZ0dSUhKGhoa4uLgwYsQIli9fjouLC4sWLeLcuXMEBQWRmZmJtrY2u3fvLpVyZXBwMEePHmX16tXCxKhly5bo6ekJhae/ugujMP7+I/jFxMTECJXDcnJymJub8+TJE6nlOn9/fxo2bEjLli0FZaKSyhD6+fkhKytbrLlGPm3atOHPP/+kd+/eQmDLycnB29sbExMTPDw8KF++fAEJ26CgIDQ0NDh79ixHjx6lQYMGLF68WJhB5+Tk8OjRI06fPo2/vz/jx4/n+vXryMjIMHv2bMzMzEhKSsLBwYF58+aRlpZG3bp1UVZWJjk5mWXLlmFsbEyXLl0Kze9evXoVe3v7Iot8OnfuzPnz5zE0NOTTp080bNgQFRUVdHV1BVteGRkZzp07R0REBE2bNiU7OxsPDw8iIyO/Kgv8V5SVlWnXrp2U+pyysjKjR4/G0dGx1C1//0UsLCzYunWr8O98c6Hs7Gwh8Obm5gp/z83NpUyZMoUag5SUJ0+eYGJiIuzr6tWrBAYGCqkZIyMjtLS02LdvH507d2bBggXo6ekRFRVF1apVuX79OtbW1sU+KB88eEBMTAz3799n8+bNLF26lD59+tCiRQvKlClDVlYWPj4+7N+/n8DAwEJzs1FRUSQkJJCamkpOTg6QN3i4cOECrq6uKCsrk5iYyNy5c+nRo0eJ2q327duHo6Mj1apV4+PHj1SuXJlLly59k0HKvxlNTc0CokkSiYTY2NifLlm8Y8cOxGIxixYtQiQS0atXL2bMmMGIESOoXr06CgoK9OzZk/DwcPbv309GRobQOVWSVSCAS5cuCc+3L8nf/rNnz/4RqaD/uUDv5eUlZYTwxx9/MHjwYLp164aRkRH+/v54e3vz8OFDVFVVGThwINevXy9R0ZtEIuHq1auUKVOmRLMfS0tLtm/fzsKFC+nSpQuysrKCj/XUqVNJS0tj6tSp7N69m379+qGiokJgYCCHDh1i6NChbN68mbFjx2JjYyO1XTk5ORo1aoSlpSUrVqxg3759eHt7C77Q+e5M5cuXp2/fvlhaWkodb/7DcePGjfTo0aOAGElgYCCOjo5Fnpe8vDzW1tZoamrSunVr7t27h729PR07dpQ69zZt2rB06VJyc3PR0tKiadOmvH37tlgTnsLIH0z8FTk5OerWrYu3t/f/fKD/kidPntC3b1+Sk5NRUFAgKyuL4cOHs3PnTmRkZJCTk+PgwYNSHRffgqKiopBvl0gk2NvbM3bsWFRVVcnKyiIwMJCLFy/y9OlTgoKCKFOmDLq6uowcORJ9fX3WrVvHsmXLcHR0LLAqkJuby61btzhx4gTXr1/nzp07uLm5sWTJEildCgUFBWxtbalfvz5Llizh+vXrtGnTBsgL8Fu3biUmJoaKFSsSHh6Ojo4OCQkJvH79GjMzM6EjRU1NjWrVqhESEvLVQB8VFYWjoyOLFi1CX18fsVjMrl27mDt3Lps3b/6ua/pvY9y4cfTv3x9LS0u0tbWRSCSCfe9fn1s/Gh8fH8E1EvKEpCwsLPD19RXSpWvWrGHbtm2MGDECJSUljh49ioODA7t27SrRPuTk5KQGyPlIJJJvFun5GfxPBfqQkBACAgI4efKk8Fr79u05f/48q1ev5tSpU1hbW/PgwQNhydzW1pYRI0Zgamr6Vb3yc+fOkZ6eLjVLKo74+HjB59vb2xuxWIyNjY1gWauqqoqrqyuzZ8/Gy8sLOTk5ypcvz8iRI3n69CnW1tbF/lgUFRWZPHkyDg4OQhri/PnzZGRk8OLFC5YvX15o/jr/4WhmZsbixYtRU1OTWn4rrA3xr+T/APz9/VFVVZUK8vkYGhoyePBgXr9+zcWLF9m4cSMfPnwodHupqanExMSgoaFRQLRIUVGxSIORtLS0/9kcfWGkp6fTrl07evXqhY2NDSKRiMDAQDZs2ICLiwuHDh0S1N2+9HP4FmrXrs3ixYsZMGCAIJecj6KiIlZWVlhZWREcHMzy5ctp2bIlPXr0APKW96tUqcL169eZNWsWFhYW1KxZE3l5eaKjo/H29qZKlSrcvn2bmjVr0rp1a3r37l2k+FSZMmUYPXo07u7utGrVitTUVJYuXUq3bt2Eauj09HT+/PNPOnXqxOLFiwkODiY9PR1lZWWSkpIICQmhWrVqXz3vy5cvY2lpKRR6ycjI0LFjR1auXPk/F+hbtGjB7NmzmTdvHsbGxiQkJKCkpMSFCxd+mpFUPhYWFty4cUNIAWVlZfHq1SupToRNmzYxevRoQWZ27NixTJo0iQ0bNpTIlKhr164sXLiQ3r17S0keP336FAUFhX+MTfH/RKCXSCT4+/uzc+dO9u7dW2B20LhxY06cOFHgMzNnzuTgwYM0b96cDRs20L17d1q1alWg7zw+Pp6zZ8/y6tUrbt26RefOnQkICKBevXrFHpenpyf16tXD1ta2yP5dTU1NOnfuTEREBEOGDKFcuXLk5uayefPmEuULy5Urh5WVFZmZmbRt25bLly8TFxeHu7v7VwOgtrY2kyZNYsuWLTRo0ED4YZYpU4anT58WWdUuFosJCAjAxsaGe/fuFZvGaNy4Mdu3b+fp06d8/PiRlJSUAu/x9fVl69atVKhQgdjYWPr37y/MyiAvT3/x4sUC7lgxMTE8f/680EHG/yrnz59HT09PSgnOwsKCRo0aER8fX6L2yJIgFotxd3enX79+XxVQMjU1ZcGCBTg7O+Pv74++vj4vX75ER0eHR48eoa6uztq1azlw4AAfPnwQBgyWlpbo6enx4cMHHj16VKhl6ZdUrVoVZWVlgoODef36NRYWFlLHpqyszMiRI5k9ezby8vJ07NiRefPmUa1aNV68eIGDg0OJlu3LlStHcnKy1GvJyclS3Tf/Szg5OTFs2DDB271hw4a/pF5hwoQJ7N27F3d3dwwNDXn48CGtW7eWmrBlZGRIPc8VFBQQi8VCCudrGBoaMmXKFJydnencuTN6enoEBQXh4eHB0aNHix3MiMVibt68yZMnT6hduzZ2dnY/bfDznw70CQkJHD16lEePHqGsrMyRI0do3bp1iT57+fJljh49yrJly1BVVaV169YcPXqUU6dOUb9+fQwMDBCLxYSHh/Ps2TP69u3LgQMH0NDQYPLkybi5uWFhYVFkUVlMTAw3btxg+fLlXz0Wa2trrl69ipqaGu/evWPnzp3IysoWWqhX1Ofv3btH+/btyc3N5e3bt8W2v32JqakpysrKPH36lLp165KWlkZCQgIeHh7Y2toWOuq9f/8+2dnZmJiYcOvWrWJn//kz/7Zt21KuXDnCwsJIS0sTtpuQkMC2bduYO3cuVatWJSYmhgULFmBiYiKcv5KSEm/evGHHjh107NiRChUq8PTpU44cOYKzs/P/XF60OD5+/CilbpePpqZmkaspX8PHx4c9e/YgEokYNWoUDRo04OrVq8jKyhbqXlcYVatWpU2bNigpKdGhQwdq1qxJgwYNEIlEgjmLnZ0d9vb2lClThtjYWE6fPi10qGhra3+1gFMkEqGrq0tsbCwvXrwQBH2+REZGBktLS27fvs3mzZsZMGCAUHVf0or2Tp06MXnyZC5fvkyrVq2IiYnhwIEDxaa7/uuoqamVSDHzR1KhQgX8/PzYv38/ISEhrFy5UpBwzqdfv34cPXqUsWPHIicnx7Fjx2jevHmRvhCFsWjRIho0aMDmzZvx8fGhXr16eHl5FTsozM7OpmvXrrx48YKaNWuyceNGqlevzvnz57+p0+tr/KcDvby8PDVr1sTJyYlmzZqVahTp7u5O586dhXyxvr4+06ZNIzY2liNHjnDz5k369euHra0t/fr1o1y5crx//56lS5cSFBREVlYWy5cvZ+LEiQWCar4Yg7y8vGA7WxxKSkokJyczefJkkpOTMTU1LdXIT0FBQRih3r17l0GDBpX4syKRCDs7O+7du4epqSnr16+nV69eiEQiVqxYwdChQwVRkqysLG7dusWff/6JqqoqI0aMIDs7m5iYmCIf+P7+/ujo6LBmzRpkZGRYsWIFt2/fpmnTpgQFBREZGSm0wEDeKoOFhQXh4eEYGRkhFou5c+cOJ0+e5Ny5c7i5uZGYmEjdunXZuHEj3bp1K/G5/i/QvHlzli1bxsCBA4XAKBaL8fPz+yap1Js3b9KzZ086duxITEwMdnZ2aGpqIhaLadKkSal+c61atWLZsmX8+eefUo6Cc+fOpWXLllIV2hoaGowcORJ3d3fOnTtHampqgaLVL0lKSuLz588kJSWhqKiIvLy80H3zV75sybOxsSl1LllZWVloaxw6dCgaGhpMnTr1lxnd/Ob/U65cOSZOnFjk311cXBg7dqzw3djY2HDgwIFS76dDhw5SRl9f49ixY0RERODi4iJMdlxcXDhy5AiDBw8u9f6/xn860Ovr63+zznNwcHChwUlDQ4MBAwYIFpWQ127Wv39/Ll68SJMmTahSpQr29vZcv34dR0dHatasiampKbm5uQQEBBAXF0fnzp05fPiwkAMsjsjISGRkZNDT00MsFvPu3TvS0tKkZr7F8f79e0GcJjExsdAZXXFoa2vj7e3NsmXLaNy4MZs2bUJWVpZ169axcuVKxGIxSkpKxMTEICsrS/ny5VFXV8fc3JykpCSCg4Ol7EfzycjI4ODBg/Ts2VMYuHTu3JlVq1Zx9OhRTE1NSU9PJyIiQlj6zMrKIiwsTEh1nD59WtCvtrW1ZfXq1aU6t/816tSpg729Pa6urnTs2BF5eXk8PT0pX778N6mVubq6MnDgQCpWrMi5c+cYMGAA1apV49GjR3h4eAiStyVBV1cXDQ0N/Pz8hHRPWloa586dK1QfXCQS0bZtW0FT4s2bN4Xm0L29vdmzZw8aGhpER0djY2ODnp4ely5dwsbGRmrQnJKSwv3790ukAFgcpqameHp6lqhW5zd/H8rKyuzfv5/NmzeTk5Pzy1b/bt68KdVRIisri7W1NTdv3vwd6H8lmpqafPr0qVDRl5iYGOHhlZqaSosWLVBXV8fd3V0q8NrZ2fH582fmzJmDoqIiurq6dO3alXr16iErK8vFixfx9vb+qsXmiRMnMDIyQltbm5iYGBQUFJCVlS0gplMYYrGYGzduCIIVcnJyiMXiUl2LnJwc4uLiWLFiBSNGjBBmTZMnT2b8+PE8e/aMV69eoaKiwsWLF7lx4waRkZGCiE6FChVYu3atYNKgoqLC8+fPOX36NGXLlpWaMQUGBlKpUiVmzZolLJ/t2bOHGTNmCJrrxsbGWFhYcObMGR48eMD9+/dLdT7/6+zdu5d9+/axf/9+srKy6N27t5TnQGlIT0+nXLlynD17lv79+2NnZwfk5S5TU1O5evVqoaZJRVGuXDkSEhKAvPtu9OjRSCSSIjsxtLW1SUxMRFZWlqNHjzJnzhypwJqQkMDevXtZsmQJ+vr6BAUF4erqioKCAmpqaqxevZrevXujq6tLcHAwe/fuZcSIET/MQ+F3kP93UNpOn++lSpUq3Lp1S+q1d+/e0bx585+yv993YRGMHDmSK1euFAiKEokEDw8Phg8fDuQtK6qqqjJq1KgileSaNWuGhoYG/fr1w8rKiqdPn+Lq6kpcXBxHjhzh06dPhR5DUlISM2fOJCoqColEwo0bNxCJRHTs2BEVFRVOnTpFUlJSsedx48YNFBUVhXYSXV1dXr16VaprERISwpAhQxg5cqQQ5A8ePIiGhgaqqqqMHTuWxo0b0717d44fP46cnBwbNmxgzpw5bNy4UbCe1dfXZ9OmTSxdupRXr17Rq1cv1NXVhW1mZGRw5coVpkyZIpUjGz58OP369ePu3bt07NiRKlWqMHv2bF6/fo2Pj89v045SIisry4gRI7h16xb37t1j+vTp3+wG2LdvX44cOcK7d+8KWAybmJiUOu+flZWFiooKEomEIUOG8OLFC6HSvjBCQkKoXLkyo0eP5vXr16xbt04YKEDew1NDQ0OogDc3N0deXp7+/fuzYsUKqlSpwqpVqxg+fDgHDx4kOTlZyglOLBZz9epVFixYwNKlS3n27Fmpzuc3vymMUaNGERgYyJEjR3j+/DlHjhzh6dOntGrVisePHxfZRfSt/A70RTB8+HAUFBTYsGEDERERSCQSoqKi2LJlC6mpqTg4OJCamsq+ffvo06dPsbnIdu3a4e3tzalTp5g/fz6HDx+mcePG7N27lz59+rBo0SJ8fHykKj1TU1NxdXXF3NycrVu34uzszKZNm/j06RPy8vJ06NABLS0tnJ2diYqKKrDP3NxcPDw82L9/Px8/fmTfvn3ExMTQqlUrrl69WuLrkJ2djZeXFxYWFuzcuRMvLy98fHxwcnJi9uzZ/Pnnn9SqVYt27dqRm5uLRCKhT58+wqBHVlaWgQMHkp2dzdWrV9m0aRMfPnzg2rVruLm5ERYWhpeXFxKJhLCwMCpWrFjoUm+LFi1QUVFh165dpKamcuDAAR4+fFiiGof/ddLS0jh16hSHDx8mJibmu7fn6+vLgQMH8PX1ZeLEiYwZM4asrCweP34s9b5Hjx6VamaclpYmFL5t2LABf39/pkyZQosWLThx4kQB3/WsrCyhIE9ZWRk9PT0+f/7MlClTWL16NQsWLOCPP/4gOjqa169fA/D48WNyc3OpXbs2CgoKdOvWjXbt2mFgYIBIJEJNTU04j8jISOrUqcOECRN48eIFvr6+tGrVSrDE/c1vvhVtbW3u37+Pjo4OV69eRVNTk9q1a9O1a1f69esn+Ij8KP7T7nX169eXPHr06Js/n5aWxvLly9m+fTufPn1CXV2dUaNGMXfuXMqVK8fBgwdxd3cvkbDIy5cvcXNzo3Xr1gwcOFBqYODv78+5c+f48OEDurq6ZGRkEB0dLdjQfqnS9ODBA65fv07Xrl3ZunUrdnZ2XLp0CSMjI6ytrVFUVOTDhw/cvHkTTU1NJkyYgLy8PNeuXePWrVsMHjyYnTt3MmXKlK/qAkCea9nZs2fR1tamcuXKvH37lpSUFJo0aSK1JDtp0iTu379Po0aNmDx5slA8B3kP5KFDhzJ9+nR27drFmTNnhOX6Z8+e0adPH1JTU1FUVCQhIaHQ/KhEIsHJyQkvLy9q1KhBbGwsJ0+eJD4+noYNG9KiRYv/SYnRr5GYmEjTpk2Rk5NDRUWFN2/ecPv2bWrUqPFN23NxccHd3R0zMzNevHiBk5MTc+fOFZwebWxsqFq1Ko8fP8bPz49169aVeFnUw8ODpKQkjh07hpGREePGjaNatWpkZGQI3S/59ruhoaGcPn0asVhMbGwshoaGgrKZtbU1qampJCYmMmPGDKFqX05OjvT0dEQiEVOnTqVu3brs3LmT9+/f07t3bwAOHTpEVFQUGzduZMWKFdSrV48uXboI91Z2djYbN26kTp06UkqDv/nN9zBv3jyhpkteXp579+5x8uRJwsLCkJWV/e1e9zNRUVFhyZIlLFmyhOzs7AJtD5GRkSWeUd67d4+GDRsWCPKAIK5x+vRpXrx4QUZGhiBw89eWoTJlypCRkYGFhQV2dnacO3eOcuXK8fr1a6KiohCLxVhbWzNr1iyMjY2Fzw0YMAA9PT127NhBhw4d2LRpE1OmTBG0zQvDy8uLo0eP0r9/f6GiNN/W98ul1PzCwLJly9K3b1+uXLnC+PHjhfO8ceMGNWrUwMrKisTERFxcXLh8+TKQ1wMfFBSEv78/nz9/Zvjw4bx8+bJAIHry5Anly5enevXq7Ny5k2nTplG3bl3U1NTYtm0bFSpU4PLly6UuNPy34u/vz4gRI3jz5g1Vq1Zl165dheo2rF69Gm1tbcaOHYtIJOLSpUtMmzaNCxculHqf7969Y+XKlfzxxx+UL1+ehIQEZs6cyZAhQzA1NeXx48e4u7sTHBxMs2bN8Pf3JyYmpkSBPjU1lbNnzzJ37lyuXLmCioqKUFinpKTEwoULuXnzJocPHyYpKYmKFSuiqqqKvLw88+fPF8RKIiMjcXFxITk5mfXr16Ouro6VlRVbt24lKSmJR48e4eXlxbFjx9DX1+fevXts3LhRWIGaO3cuY8eOZe7cucTGxmJlZSX1e5WXl2fkyJFMmzYNV1fXErep/uY3xXH37l1atWolxJgmTZrw559/8uHDhwIOe9/C70BfQgrrbZSXly+RsEJGRgZ37tzhjz/+KHTW6e/vz6ZNm2jevDmjR48mOzubGzduEBsby/379wVfcIlEwvXr14UHeo8ePVBTU+POnTu4uroyZ84cpk6dWqR61+fPn2nUqBH9+vWjZs2arF27lrp162Jvb0+1atUQiUSIxWKePHnCtWvXCAwMxMTERKptRCQSMWbMGCZNmsTu3bsxNDTk9u3bDB48GE1NTRYvXoyNjQ1Lliyhfv36vHnzhufPn7NgwQIgL7D/1WRGJBIJ57RmzRomTZrE8OHDsbS0RCKR8OjRI/bt28e+ffvw9fVlzpw5ODs7C4WS+WY4AwYM4Nq1a1/9Pv7tREdHY29vT9++fZk4cSIBAQG0bduWp0+fFhh4RkZGUqVKFeG+q1atGk+ePPmm/X748IGKFSsKlcnly5dHW1tbeBgZGhpKdT3kL3vPnDmzWBe61NRUVqxYgb6+PqtXry4g6AN5LaJt27YVerGjo6NZsGABGzdulGrF09fXp3///pw+fVpKS11BQQFNTU0aNmzIyZMnkUgkLFmyBDU1NanaGhUVFXR0dBg/fjxly5bF1dUVLS0tKdGncuXKUbVqVR49elRsIe1vflNS8nUs8ldZExMTSUtL+2FdAL8D/XfQsGFD1q9fX2z/LuQJyJiamhZq4pCUlMTGjRuZNWuWlF1tnTp1OHHiBFu2bOHZs2cYGBjw6NEjMjIypHzi3759S82aNfH39yczM5MNGzZQpUoV+vbtW6BI7d69e4wbNw7IC7hr1qzh1q1bbNiwgbS0NJSUlEhMTMTExITQ0FBq1apF7dq1CxyzqqoqLVu2JCoqCi0tLSZPnkyfPn3Yt28fnz59YsqUKVy4cIHbt2/TvHlzhg8fTtmyZRGLxURERBS7CtK3b19UVFRYsGABmzdvRiKRYG5uzuHDh2nTpg2DBg2iffv2Ut0QIpGI3r17M2nSJF69eiV1Hf+L5K+Q5FfoNmvWjICAADw9PQtoJNja2rJkyRLBeOPixYtSlb0SiYT09PQStWnmp0zyPdv9/f2Jj48v8nr36tWLzMxMJk2ahJ2dndBjn096ejq3b9/m4sWL1KtXjyFDhghdKl/rJvHz86Nhw4ZSQT4fIyMj0tLSCv1d5uv7AwwcOJDNmzfz7t07wbEsMjKS+Ph49PT0UFRUZMCAAVy8eLGAumNGRkaJHRZ/85uvsWjRImxtbUlLS6NChQpcvXqVKVOm/LBugN+B/jto2rQpKioqPHv2rNCAmE90dHSRRUm3bt3Cysqq0Idlr169ePDgAU+fPkVOTo6WLVvSqFEjYXXhw4cP3Lt3jwULFrBs2TJ69epFrVq18PX1xdnZmTVr1khVU6elpQn99JBn8tC5c2c6duxIUlISCQkJODs7M3LkSM6cOYOWlhbPnj3j0aNH5OTk0LhxY9q0aYNIJCI2NhYVFRX27NnD7NmzMTIywsLCAg0NDWJjY3n27BlisRgjIyMUFRXZv3+/4H1epUoVvL29C8za8uncuTOdO3cmNjYWkUgktTz64sWLQkVw5OTkqFat2jcH+tzcXJKTkylXrlyRLVFisZhDhw6xd+9eUlNT6dChA5MmTfrlyntycnJkZ2dLvZaVlVWogcaQIUN4+fIljo6OiMViunbtKqgxXrx4kaFDh5KUlETlypU5ffp0sWpeampqnDlzhl69erF+/XrKlSvH6dOnpTS+/8rAgQOpX78+GzZsYO7cuRgYGKCqqkpGRgZBQUGYmJgwatQo4fejra2NoqLiV81AcnNzi1QQMzAwIDs7Gz8/vwKe4pcvX6Zu3boEBQVhbW1NWloaCxYsoE2bNkgkEm7fvs2gQYOEAYS+vj5xcXFS24iMjCQmJqZEDpW/+U1JqFWrFnfv3sXd3Z2kpCQWLVr0Q/vpf1fdfwcikQhnZ2d2795dwIrxSwrTb88nNDS02EFCgwYNKFOmDHFxcVSqVAl5eXmysrLw8vJiyZIlDBo0iMDAQBo0aED79u3R19ene/fuVKlShYcPH0ptS0dHh9DQ0AL7kJGRoXz58iQnJwtGIlZWVlSsWJHAwEDs7Ozo2rUrV69e5eLFi0RERPD06VPev3/P8OHD8fT05I8//sDJyYlBgwbh5OTEqlWrqFKlCmvWrGHKlClER0ezcuVK/vzzTzp27EjXrl2/2qqkoaFRIAdqYGBAZGRkgfeKxWIiIyOFfFZkZCRjx46lfPnygpvemTNnCnxOIpGwcuVKdHR00NfXp3LlyuzcubPQ4xk5ciRLly6lVq1atGrVCk9PTxo3bizVzvU1Pn78SGBgYJGqbCXB3t6eDx8+cPbsWcLCwjh79ixRUVGFzoJFIhGurq6kpqaSkpLC8ePHUVZWJjQ0lMGDB+Pk5MSBAwdo27YtHTp0ICsrq9h929jY8OHDB+G/kqjG1ahRg40bN/L+/Xvc3d2xsrLi1atXQg/8nj17ePfundRnvnZNa9asyaNHjwrVhIiLiyM3N5ctW7Zw9uxZPnz4QEhICJs2beL169f06tWL5ORkPn78iImJCSoqKqSnpwsGOvkmKJCXVvvSnzwyMpI//vgDBweHQlcTfvObb8XMzIwtW7Zw8OBBhgwZ8kOLi38H+u+kT58+TJ06FWdnZ27cuCHVdpORkcG1a9fw8fEpNDhBXu6wuJ7JtLQ0xowZQ9u2bXFxcWHQoEEMHz4cLy8vJkyYgJ2dHenp6QUMM5SUlPDw8JBq27Ozs+PUqVOF2iqKxWIuX77M+PHjycnJQU5OjidPnjB48GCsra0xNTVl/PjxXLhwgaVLl9KzZ08yMjK4efMmU6ZMkVopgLz87YwZMyhTpgyZmZlMnjwZTU1NZGVladKkCe3btxeUBUvD+PHjuXTpUgH9AE9PT7S1talTpw4RERE0bNiQmJgYXF1d2bNnD82aNWPixIkF9unu7s62bduYM2cOu3fvZsKECSxatEjK4RDyloovX77MvHnzaNy4MbVr12bChAloa2uzZcuWEh27m5sb1apVo1OnTlStWvWbc+Xly5fn9u3bJCcns2vXLpKSkvD29i7wHXyJrKys1FLzw4cPMTc3p0aNGohEImxtbYUWx6+R34ZW2gdRmTJlKF++PEeOHGHZsmWsXr2aVatW0aVLF0FhMTAwkKysLB48eFDstqpUqUKlSpXYu3ev1P2clpbGmjVraN++PQsXLuT9+/e4uLiwZcsWtLW1WbJkCerq6rRo0YKjR4+irKxMVlYWw4YNo379+oI0aXp6Ordu3eLYsWMEBgayZMkS5syZw5w5c9DR0WHXrl3fNVj7zc8lLS2N0aNHY2BgQK1atbhy5crffUh/K7/b634QN27cYOXKlfj4+GBoaIhEIiE8PJzmzZszduxYBg4cyOrVqwuYJTx+/JgTJ07g6upa4MGZlZXFxIkTqVmzJn5+figqKgoWsWlpaejq6mJsbExOTg4BAQEsWrQIAwMDQkJCcHFxoWvXrvj7+5OTk8PcuXN58OAB+/btw9zcnJEjRwr50vj4eI4ePUpqaqqwUvD06VPi4uLIysoiJCSEtLQ0VFVVyczMZMmSJTx//hxPT0/s7Oxo3759kddlx44dREVFFXDaCw4O5vz58/j6+pb6Ws+ZM4ddu3bRvHlz1NXVCQwM5N27d9y4cYPq1aszePBg0tPT6dOnj9TnPn/+zOzZs3nz5o1QnW9gYICDg4NUauXx48fcvHlTakVk+fLl3L17t8ByWkBAAF5eXty9e7fYY37w4AFdu3bF2dkZdXV1bt++zfXr1wkODi71+f8IPD09GT16NMuWLUNOTo6EhASmTZtGWFhYobUkPwoHBwdiY2MFO9p8pk+fjra2Nm/evOHPP/9k4MCB9O3bl/v375OUlEStWrXo0qWL1O8nJSUFd3d33r17h5WVFSkpKQQEBCAjI8POnTuLTMEEBARw+PBhoqOjMTExISMjA0tLS7p27crp06fx8PAgIyMDc3NzQTXvzZs3yMvLc+PGDapWrUpgYCBTp06lf//+P+1aFcazZ884duwYysrKDBo0qNgix/9lBg4cSFhYGH369CE6Oppt27bh6emJpaXl331oX0UsFrNu3To2bNhAZGQk1apVIzg4+Hd73T+B/GKjyMhI3rx5A+Qpg+UXjXXt2pVLly7Rr18/qc9ZWlpy+vRptmzZQq1atQSN+MTERJydnUlNTcXHxwdtbW369++PiYkJsbGxXL16FV9fXwwNDTEwMCA8PJy5c+eiqKiInJwc48aNw9ramq5du7J9+3YWLlxIamoqmzZtYvr06cycORNdXV1EIhFhYWHUqlULExMTJk2aRNOmTdm8ebPw98WLF6Orq8vbt2/Ztm2bEATFYjFmZmbFXpd69epx7969Au2Jr1+/Lra1rzjc3NwEt8DY2FiGDRvGwIEDUVVVJTc3l5MnT+Lu7l7gc5qamlhZWXHy5EnGjRuHRCIhMjKygAugoaEh4eHhUq+pqqqSlpZWYJupqaklsh8NCgrC3NxcmHU3adKELVu2/G1a6C1btqR27dosXboUExMT/Pz8mDFjxk8N8pA3qCwsp1+hQgXMzMy4cOECOjo61K1bl5MnTwrdHF5eXixcuBA3Nzeh7kRVVZW5c+cSFhbGixcvOHnyJL179+bIkSPCwPSvPHnyhM2bNzN69GgsLCzw8PDg0qVLnD17Fm9vb0xMTJCRkWHo0KFSFfV16tQB8iSaU1JS0NDQKFJ8KDExEQ8PDyQSCe3atfthNRyHDh1i0qRJNGvWjKysLFatWoWHhwcNGzb8Idv/L3HmzBk2bNiAqqoqlSpVonnz5ly4cOFfEejHjx/P3bt3GTVqFMbGxrx8+fKbPVvy+R3ofzD6+vqF9j0uX74ca2trKlSogK2tLfLy8sjIyCAjI0Pr1q3Zu3cvcXFxxMTEkJOTQ1paGqampixcuBBVVVWuXbvGgQMHWLt2LZqamtSoUYOQkBBWrFhB69atadmyJY6OjixevBgdHR1Bt1wkEtGvXz8cHBwwMDBg69ataGpqMn/+fEJDQ/n06RO7d+9GIpFQtmxZMjMzcXV1RUVFhYiICLZu3Sos+RobGzN37lwcHByoVq0aHz58+Gp7oZqaGsrKymzZsoWBAwdSvnx5Hj58yKVLl7h58+Y3X+e6desWKviTmZlJbm5ukcFXTU1NyP+KRCLq1q2Lv7+/VNGWv79/AUvS3r17M2/ePNq3by/MotLT07l06RLLli376vGampry4sULEhMTUVNT48GDB1StWvVv00KXkZHh5MmTnDhxgvDwcBwdHUts4fw9tGvXjlWrVtGyZUvh3OPi4ggNDeXq1atoa2uTlZXFs2fPmD9/Pnp6ekDeoHnNmjXcvn27gN2pkZERubm55OTkcPXqVVRVVblx40YBS9KIiAi2bduGlpYWb9++xcTEhO7du9O9e3f27NnD7du3qVKlCmKxmIcPHxbaOvfkyRPatWvHjRs3WLNmTYG/f/z4kcaNG6OpqYlIJGLWrFn4+PgU6plRGnJzc5k2bRrTp08XxKgMDQ2ZM2cOnp6e37XtX0FUVBSnTp0iMTGRatWq0a1bt59a46CkpERCQoIw2EtKSqJMmTI/bX8/ipCQEI4dO8a6deuEAW3NmjW/e7u/A/0vQldXFxcXFxwcHNi7dy8qKip069aNVq1asX//fhYtWiQsw7u4uPD69WscHR2FtqeOHTsSGBjIw4cPhWr1atWqMWDAAE6ePEnfvn3R1tYudJChpqZG+fLlcXR0ZOfOnSQlJXHu3DksLS05ePAgw4YNo2XLlsL727dvz5IlS6hWrVqBFqJy5cpRrVo1ypUrh4KCAr6+vkX27UOeXGrfvn2RkZFh5syZZGRkUKdOHU6dOiVVhBgcHMz27dt5/fo1JiYmjBkzBlNT01JfZ2VlZfT19Xn58mWBz0skEoKCgoQWQ8hbHRg0aBAJCQmYmJgQGBjIuXPnCsgEV6xYkW3btjF27FisrKxQVlbG19eX7t27F0gRFEbjxo0ZO3Ys06dPR0tLi5SUFC5dulTq8/uRyMrK0rdv31+6z379+rFjxw5WrFhB8+bNSUpK4sqVK8ydOxdtbW0gz21RQUFBCPL51KpVq0AxaUhICEeOHCE0NJRy5crRokULDA0N2b17N+3atSM5OZlXr17x6dMnzp07R9u2balSpQp+fn7MmzePpUuXCoPve/fucf78eVRUVIiLi2PGjBksXLhQaA09ffo0nz594tChQ0yYMKHQFSlXV1dq1qwppHgOHTrEkiVLvltFLzExkZSUFKkUk4WFBadPn/6u7f5scnJymDx5Mvv376dBgwaoqalx8uRJHBwc2Llz50+zkV68eDHLly/H3t5ekEAeMmTIT9nXj8TT01N4vvxIfgf6vyCRSPjw4QO5ubno6+v/sMrH169fM3nyZCZMmIClpSVRUVGsWLGCc+fOIS8vL6jYycnJYWVlRVhYWIHeZh0dHeLj46Vea9q0KQcPHkQikfD58+dCbW+TkpJITU1FXV1dmIl//vyZLVu2oKGhIRXkIW+2Z25uzsuXLws9l+TkZF6/fk2fPn24ePEirVq1Eh7SXxITE8OtW7d48OAB1atXZ926dWRnZ0tJ+kKem9rUqVNp2bIl1atXJywsjMaNG7Nu3TqGDh1asgv8f+TLm7q7uzN79mypUfzVq1eRkZGRmqm1a9eOM2fOsHz5cm7dukXt2rW5ceNGoasF/fr1w87OjhMnTpCamsry5cuLbUf7K4sXL2bUqFF8/PiRGjVq/HLHrH8CCgoKXL9+nf3793P+/HlBSvrLe1BHR4f09HQ+f/4s1Xf/4sULMjMz8fb2Jisrizt37vD27Vs6dOhAnz59yMjI4N69e1y+fBk9PT1mzJhBSkoKZmZmREVFISMjQ506dahevTpWVlYcOHCAc+fOMWzYMJKTk8nIyGDcuHFYWVmRm5vL9u3bmTx5Mubm5rx9+xYZGRmhALWo1rro6GipvLmhoSERERHffd3Kly+PhoaGVCvvgwcPaNCgwXdv+2fi5OTEvXv3WL9+vdRvMSQkhFGjRqGmplbg+fMjmDRpEpUrV+by5ctYWlqyd+/eEtsl/50oKSmRkZHxw7f7jwv0IpFoMTAayLd0myuRSC7939/mACOBXMBRIpH80FLK7OxsQV1NVlaWunXrcu7cuR+y5LNr1y5sbW2FJWJ9fX1Gjx7NyZMniYyMFEQ7xGIxQUFBZGVlSfWEZ2Rk4Ovry+TJk6W2q6CgQJUqVUhKSsLQ0JDjx48zePBgYYCSrxpnbW1NTk4Ovr6+NG3aFG9v7yKXalNSUvD09CQzM5OIiAipB9ezZ8+Ii4tj7ty5HDp0CHt7e5YtW8bgwYMF+93c3Fz8/Pw4cOAAS5YsEc5BVla2QH90VFQUTk5OLF68WJjBWVtbY2Njg6OjI/b29qU2rpkwYQKvXr1i2rRpNGnSBFVVVaGlLT/Yf4mNjU2RkrBisZiQkBDEYjEmJiZoa2szYcKEUh3PlxSV2vlfQlFRkdGjRzN69OhC/66srMykSZNwd3dn0KBBaGpqcvv2bYKCgujcuTMfP34kNjaWmJgY1qxZI9WCWbt2bQICAli/fj0VK1bEzc1NGDA/fvyYVatWsWbNGlRVVWnSpAlbt25FIpFw7NgxtLW1hd+nrKys4JjYuHFjevTogbGxMZs2beLBgwdFBnp7e3tcXFyoXr26lOTw9yIjI8P27dvp06cPlpaWZGRk8Pbt2wJWp/8koqKiOHDgQIEgD3mrkQMHDmThwoV4e3v/lP137dqVrl27/pRt/yw6d+6Mo6Mj0dHRP9SV8x8X6P+PtRKJRKoPSiQSmQP9gJqALnBdJBJVl0gkBXvFvpH169fz5s0bNm7ciKysLFu3bmXBggWF5uJKS2xsbIGinAoVKpCens7mzZuZPHkyderUISoqSghsrq6utG3blrJly3Lz5k1q165d6DJ5bm4unz59IiIigri4ON69e0fTpk0Ri8XcunWLiIgIKlSogJOTE61ataJ///40aNAAV1fXQmeuXl5e1KxZEysrK5YtW0br1q0xNDTk5cuXXL9+nX79+mFubk779u0JDw9nx44dLF26lD179qClpcWnT58wNjZm+/btBfKkf+XAgQM0atSowDKtnp4ejRo14sCBA8ycObNU11okErF+/XomTpzI0aNHSUpKom/fvnTu3LlUnuupqal06tSJFy9eICMjg4GBAVeuXPnlAjn/iyxZsgRtbW02bNhAbGwsdnZ2PHz4ULj/W7RoQb9+/QrVmq9bty41a9akUqVKUqtiVlZW1KpVC29vb9q3b09MTAwKCgqsXLmS9+/fo66uLqWml56eTpkyZQQJ6vz97t69u8CAO58RI0YQFRXFsmXLkEgkTJgwQUrJ8nuwt7cnODiYc+fOoaysTLdu3UpUCPp3cfLkSRo2bFjkRMna2pq9e/d+d1D7uwpafwYVKlRgxYoVLFy4kPbt22NkZCQ4L34P/9RAXxhdgSMSiSQTeCsSiUKAhoDPj9pBQEAADRs2FPLSjRs3LiA686106tSJ6dOn06pVKxQUFJBIJFy7do0OHTowePBgrKysePjwIZqamrRr1466devy5s0bsrKy+PjxI4MGDSo0KKempvL27VuUlJTo0aMHbdq0wcfHh4CAAEQiEW3btqVOnTp8+vSJcuXKCVXV1atXp2/fvhw7doyMjAyp5fSwsDD09PR49OgRKioqPHr0iJCQEIyNjalXr57wo4qIiEBHR0dQsssv7tPS0iqxPWlUVFShy/6Qp5L2/v37Ul7p/4+JiQnz58//5s/Pnz9faHUB2LNnD1OnTmX37t3fvM3flAyRSMSkSZOYNGlSgb/l5uZy9+7dIlcEIC8gF2bHbGxszMePH4mKimL//v0oKirSqFEjAgICkJWV5eTJk3Tu3FnQKGjVqpXU53V1dfnw4UOh+5RIJAQGBmJvb8/kyZN/ShDW0dFhzJgxP3y7P4OiOizykZOTQ01NjcTExG8K9EeOHGHSpEnEx8djaWnJ0aNHS2WL/E9l3Lhx1KlTh40bN3Lt2rWvdjaVhH9qoJ8oEomGAI+AaRKJJB7QA+5/8Z7I/3vth2FmZsb58+extbVFJBLx+PHjH3KRIW9J5sSJE8yaNUsQdZFIJBw4cAAAc3NzqeKeKVOmMHfuXDQ1NenYsWOR271+/bpgGerg4ICCggK2trbY2tpKva+wfHCLFi04cuSIUCSoo6ODRCIhNjaWR48e0aNHDzp37syDBw+4e/cu06ZNw83NDW9vb168eMH79+/x8fFBIpHg5+dHfHw8pqampVqarl27dpFKdPl5vL8Lf39/mjZtKgxsbGxs/vHFT/8LiMViJBJJsTK5+Za0f+XZs2eEhoZy584devbsSfv27cnKyuLIkSNMnz6dffv2MXz4cBQVFWnTpg09e/aU+nx2dnahGvcXLlxg8uTJgnhVdHQ0o0aNws3NrUip3r+SmJjIpUuXyMzMpGXLlhgaGpboc/9UTExMOHfuXJF/T0xMJCEh4Zs6Eu7fv8/EiROZNm0ahoaGeHh40K5dO54/f17i6/1PpnHjxlLpoe+dXPwtgV4kEl0HChvCzQO2AEsByf/972pgRCm2PQYYA5RaTGLatGl4eXkxdepUZGVl0dXVxdXVtVTbKAoZGRn279+Pr68vPj4+GBsb06FDhyKXkvv378/s2bM5efIk2trahRbd3L9/n4sXL9KsWbMCLlwlQVlZmWbNmvHhwwfmz5+Puro6aWlpxMfH07x5czp37gzkqZCFhYVx4cIFPnz4wOrVq1FUVKRDhw7cv3+fFi1akJmZiYaGBm/fvqV58+bs2LGDihUrFrnv169fs2vXLhISEggODsbHx0fqxvbx8SE0NLSA7sCvpGrVqjx//lxYSQkMDPxPzBj+bvK9GBITE+nYsSMzZsz4qrb9l8jLy2NmZsbTp08LXeUCBMOdhIQEypcvL+jYh4WFMWvWLCpXriwE7Hv37qGvr4+Ojg6zZs0iNzcXkUhU6HKwn59fgfz81atXGTZsGOPGjaNWrVqCF8SuXbsYMWKEMJgvjg8fPtC0aVM0NTUpU6YM06ZN48yZM0X6Qfwb6N69OxMnThSslP/KpUuX6NGjxzetfHh4eNC8eXNhu506deLGjRuEhoYWsLj+zd8U6CUSSYkadkUi0Q4gv0rqPWDwxZ/1/++1v257O7Ad8pTxSnNc+bKxL1++JCcnBzMzs1LldL+GSCSiYcOGJRK4yHcaa9WqFVu3buXChQu0bNkSdXV1YmNjuXLlComJicyZM4dr165Jec+XhvyWvlmzZhEZGcmNGzcICQkpsJxerlw5zpw5w6pVqxgxIm/cle+WNn78eOEBl5GRwZkzZ7C1teXx48eF5ue8vb3p2rUrtra2KCsrIy8vz759+7h27RpGRkaEhYWRkJCAh4fH39r76ubmho2NjaAeFxsb+9MKh/5XeP78OW3btqVXr17UqVOHAwcO8OnTJyl725Lg5OTE6tWrMTc3LzDDzl9p6t+/PzNmzMDY2JjY2FiSk5OpXr06Ojo6QvosICCAffv2oaKiIuR6ixp0iMViPD09CwTuOXPmMHz4cKl2UQ0NDZycnJg8eXKJjJZmzJiBpaWl0O7o5+fHkCFDePv2bamuyz8JJSUltm3bxrhx4xg8eDANGjRATk6OpKQkLl68yOPHj7l///7XN1QIqqqqUjLYmZmZpKSk/Ct65f8O/nESuCKRqJJEIvnwf/9/CmAtkUj6iUSimsAh8vLyuoAnYFJcMd6vlMD90WzcuJHFixejoKBAXFwcMjIyqKmpkZ6eTmpqKrm5uSgrKwu69EOHDpUy4ygpt2/f5vHjx5iYmJCUlMTbt28xMjLCx8cHZ2dnNDQ0ePfuHfPnz6dOnTqEhobSrVs3tm7dSsOGDbG1tcXa2rrAdlevXs3w4cOletbzadq0KVZWVoIhSnR0NAsXLmTHjh28f/+eKlWqFLva8StJTU3l1q1biMVibG1tC0gY/6Z0zJo1i5CQECGg5ferJycnl2o7YrGYwYMH8+jRI7p27Urt2rWF9rpz586xevVqhg4dSnx8PI8fP6ZChQpUq1aNhg0bEh4ejpGREQkJCcjJyTFo0CDWrVuHvb09AwYMEHLtiYmJVKlSBT09PcRiMfv27SM9PZ2bN28KBXsxMTFUq1aN7du3F7oCsGfPHtq0acPUqVOLPR9ra2vat28vpO9ycnIYPHgw2dnZ//pCM09PTxYsWEBQUJAgWNWtWzfc3Ny+WUjo48ePWFpa0qhRIwwNDbl16xampqYcPnz4Bx/9PwORSPSfk8D9QyQS1SVv6T4MGAsgkUiei0SiY0AQkAM4/MiK+38SJ0+eZPny5cydOxd9fX3S0tLYu3cvMTExiMVili1bhrq6Ort376ZChQpoaGiQmJj4TftKSkoiODgYkUiEgYEBoaGhKCgo0KZNG6ZMmYKamhppaWmMGDECW1tb0tPTcXNzY+XKlYSEhBTZOmRra8vhw4cLDfTBwcFSmvE6OjooKytjZWVF7969v+k8fhZlypQptkbiN6Xjrx7xMjIyfMtkQ0ZGhgMHDnDo0CHWrVvHunXrkJeXp127dly4cIFGjRoBoK6uLtVG2qVLF54/f079+vUpU6YMhoaGJCUlISMjQ1hYGGvWrCE1NZWkpCQMDAzYv38/rVq1IiIiAjk5OTw8PKSOP3+gXZTehpyc3FfVIyHP4c/f318I9P7+/hgZGf3rgzxAq1ataNWqFVFRUSQlJaGnp/fdhYoVK1bkwYMHLF26VBg4Tp8+/Qcd8X+Pf1ygl0gkRZrwSiQSF8DlFx7OVzl8+DCbNm0iKyuLoUOHMn78+O/+ca5evZr+/fsLRW0qKiqMGDGC8ePHY29vLyyr9+jRg2XLlrF7926cnJzo0qVLqQV+vL290dLSEtqFrKysBNldZWVl+vXrR/369QW5SmVlZXr16sWePXtQVVUtcpmzKG14yLPeffDggWCGExISQm5urpQd6G/+mwwaNIgWLVpQsWJFtLS0OHnypJAKKi0yMjIMGjSIQYMGlfgzI0eOpHHjxjRo0AAjIyNSU1PZu3cvgwcPZs2aNUyYMIEbN26wfPly5OTkiIiIYO7cufzxxx+MGzdOqjslOzubK1euIJFIePHiRQGlPLFYzKNHjwoYOhXGqlWrsLGxwc3NjTJlygimT/8ldHV1v1sK+EsMDAzYvn37D9vef5l/XKD/N7Fr1y6cnZ3p168f8vLybNiwgejoaJYuXfpd242IiCjgiqWkpISGhgZhYWHCDOj+/fsoKChQt25d0tPTOXHiBGFhYWRnZ1O7dm3s7OyKLdB78+YNcXFxUgU/lStXJicnR1hia9y4cYGBi6GhIR8/fkRGRoaoqKhCf7xPnz4tshZh9erVtGzZkpCQEJSVlXn48CE7duz4T1TL/qZ4ateuzcWLF1mwYAG+vr706tWLefPm/bL916hRg/379zNhwgQyMjLIyMigR48erF27FmVlZczNzYmLixPSRpUrV6ZcuXL07NlTKsiLxWK6detGREQEDRo0YMuWLcyfP18oQM3Ozmb//v2Ym5sX8E0oDG1tbfz8/Lh+/ToZGRk0a9YMPT094uLiuHbtmiAdXVTx4W9+Uxz/uBz9j+Rn5+jNzc3p06ePMJKPiYlh3rx5xMfHf9esvmvXrmhqakqZd3z+/Jk5c+agq6uLiooKUVFRZGZmUrVqVV6+fCnMwDt16oSioiJ37twhLCyMxYsXFyrwkpuby/Lly1FTU+PRo0d069YNOzs7zp49S2hoKIsWLWLy5Mm0atUKHR0datasKQwafH19uXXrFsbGxrx69YoZM2ZIBemIiAhcXV25d+9ekXr1CQkJgpRs165dCzjI/eY3PxOxWEx4eDjq6upSv48rV64wevRoFi1aRNmyZQkICGDnzp28f/9e6h6/fPkyEydOZOnSpcjJyXHp0iVOnDiBvr4+2traPH/+nMaNG7NhwwY0NDRKXduRnZ3N9OnT2bNnD+bm5qioqBAUFETlypU5cODAP6qy/OTJkyxcuJDIyEhatWrFhg0bCghg/eb7+N4c/e9A/x3k62nnz2gzMjIYOXIkmzZtws3NjfT0dHr27MnatWsL7b0tisePH9OmTRt69+5NvXr1eP/+PYcOHWLw4MFMnz6d0aNHExwczMyZM5GRkSE6OpqZM2eybt06KaWw/fv3k5GRUUBgIycnh02bNhEaGkpKSgq1a9fm8+fPvH37FgMDA2bPnk1iYiJLly5FXV0dNTU13rx5w4QJE6hatapgn1u5cmUSEhLIzMzE3t4eTU1Nnj9/zsOHD9m2bdvf2hr3m998K7Nnz2br1q1oa2sTHx/PqVOnCrS5TZ8+ncjISHr06CG8lp6ezsqVK6lfvz4aGhocPXqUxMREcnJyMDc3Z9q0afTv379Aei03N5cLFy7g5eWFvr4+gwcPZsqUKQQHBzN27FhBdCY3N5cbN25w7tw5Hj169I9Idd27d4+uXbsyduxYKleuzJUrV3j58iXPnj37YT4hv/kd6IvlZwd6R0dH/P39GT16NHJychw+fJiPHz8SGRnJxIkTKVeuHHv37hVG9l9DIpGwb98+jh49SmpqKllZWbx+/ZpKlSrh5OTEqFGjBLU7CwsLqWp3V1dXWrVqJfVaXFwcU6dOZe/evUBegH/w4AEXLlwQWokWLFggzNSDgoJYs2YNa9euZcmSJXTo0EEwnHjz5g3Ozs5IJBIqVqyIk5MTBgYGQn7yzp07xMbG8vnzZ/T19bl582YB85rf/ObfQnh4ODExMVSvXr1QdTc3Nze8vLwK1BcsXbqU7Oxs1NXV6dq1q2B76+/vz4kTJ2jXrh0bN24UgmBOTg6dOnXi7du3WFlZ8fHjRwICApBIJKxfv75QK9dDhw5hYGBQomfKz2bkyJHk5OQIBasSiYSZM2dy4sSJf7zhzr+J7w30//6Szr8RNzc3KlasiIODA2PHjiU1NRVDQ0M6d+5MtWrV0NbWZsiQIZw6dapE21u/fj0LFy7EzMyMmjVr8vr1a44fP05gYCCjR48WHg7GxsZERkYKn8vNzeX9+/doaWlJbU9VVZWMjAy2bNnCunXrhEKjbt26IS8vT9++faVy+Obm5tSqVYurV6+SkpIi1a5XtWpVTExMMDAw4I8//hBmEyKRCHNzc8aMGcOcOXNYuXIl8vLyUqsIoaGh2NraUqFCBSwsLP7RRhy/+XYkEgkrVqygatWqVKlShSVLliAWi//uw/omDA0NBVvVwhg8eDAPHjwgKCgIQBDkyZeFnvz/2DvvgBr7//8/zmkPVMguymqQlRURlXnL3mSEkESy9yajskX2ygxZkcysRLcdSZLS0tI+5/eHX9fXuSvitm6fHn9xneu8r/d1Oud6vd+v8Xw5OQniSmKxmIYNGzJr1ixOnTqFj4+PMM7Bgwd5/fo1c+fOpWvXrowaNYru3bujoqJSaL92KyurIonw/AzyxIU+5VsrKYr5cRQn4/0L1NTUOHToEAkJCeTk5KCtrc2oUaNkhBySkpKK3Ft4xYoVjB8/XpC+FIvFrFixgjZt2sicN3HiRJo3b45UKqVy5cqcP38eRUXFfKI5N2/eREVFhfLly6OtrU3v3r2FMMOePXsK1JgvV64caWlpZGdnExgYSFxcHHp6ehgbG5Oenk6nTp0+m38gFouxs7PD0dGRyMhISpYsiYWFBa1bt2bAgAG8ePGC7t27c/nyZYyNjYv0ufwTiUSCv78/z549o1mzZtSvX/+bxinm+7J69Wo8PT0ZOXIkYrGYrVu3IhaL/1W/gd+VypUrs3//fmxtbVFXVycrK0sIz/Xu3btAt7WqqipdunRh9erVQh/2M2fO0KxZM5nqldatW7N169ZCm7WUKVOGlJQUobTvVzJs2DB69eqFnp6e4LpXUlIqUgLi/zJSqZRjx46xb98+1NTUGD16dJGE1L6VP35Hv2zZMlq0aEGHDh0IDPxu/W9k0NLSEozm+PHjOXfuHIcPH8bPz49169YV+UGXkZEho0mftyP/JzVr1iQwMJAyZcoQFBSEsrIyiYmJnDx5koyMDHJzc7lx4wZ79uzhr7/+IiIigmbNmslkx9esWZN/hjUkEglBQUGYmJigoKDAkSNHSExMZOPGjaxfv563b98WyR2nrKyMmZkZGzdu5Nq1a2hqatKpUyc0NDRo2LAh5ubmHDx4sEifyT/JzMzEysoKe3t7fHx8aN++PePHj/+msYr5vuzcuZPBgwdTrVo1dHV1GTJkCDt27PjV0/phtGvXjtevX7Nnzx58fHzYsWMHlSpV+mzfc1NTU65fv058fDzwcWGd9+884uLiUFZWLnRBHRUVRenSpb/ayD9+/JjevXtToUIF6taty6ZNm/71ztvc3JxVq1axY8cO7O3tBUXLP6H+/0eycOFCJkyYgJaWFrm5uXTs2LHAJkzfiz/6rxEZGcmOHTto3bo1VatWpVOnTty7d++HXtPQ0JCrV6+ipaVFVlYWW7duZciQIUV6b7du3dixYwfv378nKiqKQ4cO0bNnzwLPrVGjBjVq1ODBgwfo6Ohga2vLjRs3GD58OIMHDyYgIIDDhw+zY8cOpFIp27dvl3Gj2tjYcOLECc6dO0daWhpRUVGsXbsWdXV10tPTyc7OZtGiRdja2jJ37lyuXr1K9+7di5xUaGJiwrVr1/IJpMBHd/+3PmB2795NfHw8CxcuZPjw4Sxbtoz9+/dz9+7dbxqvGFmkUikxMTEFLjC/hJycnIw4TE5Ozldp2P8XUVBQoEmTJtSvX7/A7/o/EYvF5ObmUq1aNebPn8/w4cO5dOkSd+/eRSqVEhcXx5YtWxCJRDx58oQnT54QHh4uoxx4+vRphg8f/lXzfP78OS1btkRJSYkZM2bQtWtXVq5cydSpU7/pvj8lz1OXkZHB6dOniytovkB6ejorVqxg8uTJtGnThs6dO2Nra8vs2bN/2DX/6GQ8OTk56bp164RM9MOHD1O+fHnc3d1/8cwKJj09HQcHBw4fPoyCggJOTk5Mnz69wIfHxYsX6devH7Nnz5bZQWRmZnLkyBHi4uK4cuUKWVlZnDt3junTp6OoqEjPnj2F2OHLly/x9vbm4cOHqKio0Lx5c7S1tYVGOnkNffLkRidNmlRkN/mjR484c+YMZ8+exdjYGEtLS8zMzAgLC2Pjxo0EBATIaIMXFVtbW0G5L4+tW7fSpUsXxo4d+9XjFfN/nDx5EkdHRxISEpBKpQwdOlTIuSgKW7duZc6cOQwePBg5OTl27dqFs7Nzga1m/0SSkpLQ0dHB1dW1wJJW+Fiaevz4cSZOnMiSJUtYtWoVJUuWxMHBgcjISMRiMfr6+jx58oQSJUpQsmRJsrOziYuLw9DQEGVlZSIjI7l9+/ZnPQf/ZOTIkbx//15m45CUlMSkSZMICwsT2lf/Kt69e8f27dt5+vQplSpVYsiQIX9sA6nIyEhMTExYv3698GyPiYlhyZIlREVFFfie4mS8L/DpjkJOTu63TA7Kzc3Fx8cHV1dXunTpQlxcHLGxscyYMaPQHcKKFSuEevtPUVJSonfv3jx79ow1a9ZQuXJlXFxcyMnJ4dmzZ7i6ujJ37lwuXLhAeno63bt3Z+LEiZiZmXHt2jViY2Px8fEhKyuLkydP8vr1a7Zs2YKSktJXyezGxsaira1NqVKl8Pf35+nTpzg7O3P48GG8vb2/ycjDR4/JixcvhP9LJBJevHjxxaYhXyI5ORl3d3esrKxo3749W7duLbDN6Z9KSEgItra2DBgwgE2bNrF8+XKuXLnC9OnTizzG8OHDWbBgARcuXODs2bNMmTIFBweHHzjr34tSpUrRs2dPjh07VuDrWVlZHD16FGtrayErf9OmTVhaWhIYGEijRo1QVlamdu3auLu7s3btWhYvXoyrqyvr1q2jTp06PH/+HGVlZZkdfm5uLufOnWPr1q35wnF53Lx5ExMTk3zz1dHR4cGDB9/tM/gWDh06RI0aNfDz80MkEhEcHEzDhg1Zvnz5L53Xj6JixYpoaGjI/K0uXrz4Tb1KisofvaPX1taWVqpUiV69ehEXF8f27ds5ffp0gU1YfhVZWVm0b9+eqKgoDA0NefToERUqVODs2bOfdZNraGiwYsWKQoU41q9fT1BQEC4uLoJozfPnz1m8eDHm5ubk5OSQkpJCRkYGGhoaNGvWDHt7e7S0tEhKSuLu3bsMGTKE9PR0pFIpvXv35vbt28ydO7dI97Vo0SJmzpz53bXrExISaNSoEVWrVqV69ercvn0bDQ0NLly4IMQFpVIp3t7e3L59m+rVqzN8+PDP7kpjYmJo0aIF2traNGvWjNzcXC5fvoxUKiUgIOB/opHN6NGjef/+Pd26dROO5Yk0xcfH//Kkr/8KCQkJNG/eHB0dHbp06YK2tjZSqZTnz5+zZ88etLS0cHBwQCwWExISwvnz5zl58iQtW7ZEX1+fAQMGfDbcIZVKOXfuHCdPniQgIACRSETHjh1RVFSkcuXKPHr0iFq1auHj4yPzve3SpQsVK1aUSezNzs7G0dGR27dv/7Ldc2hoKE2aNGHq1KkyLv+EhATmz5/P9u3bsba2/iVz+5Fcu3YNGxsbdHR0SE1NRSwW4+/vX6hE8J/Y1Oa7UaVKFdq1a8f+/fspUaIE3t7ev5WRB/D29iYuLo65c+ciFouRSCQsXryY/fv3M3jw4ELflxfrK4zIyEhatGgho0xXvXp1WrduTWhoKLGxsWzatEnGEC9fvpy5c+eioqJCZmYmXbp0oWzZsly9epV27dpx4sQJnj59+kVVrmfPnhEdHS1kFn8JqVTK4cOHOXz4MKVKlcLe3r5QqU8tLS3u3LnD5s2befToEWPHjmXQoEEyyT+TJ0/myJEjNG7cmAsXLnD8+HFOnjxZaILQxIkTMTIyon///sKxpk2bsnHjRubPn8+KFSuKdB//Zd6+fYuOjo7MMS0tLTIyMsjMzCw29EVES0uLwMBA5syZw6xZsyhZsiRZWVmkpqZiYmIiGHmpVMrRo0dRUFDA2NiYqlWrMmjQoC/G+PN0NJSVlbG2tkZBQQFra2vBgEskErZu3cro0aPZs2eP8L4JEybQt29fdHV10dfXJz09nb1799KkSZNf6iJfv369kEP1KVpaWtjY2LBq1ao/0tCbmZnx6tUr/P39UVNTo1WrVj80n+WP3tH/F9rUjh49mvT0dDp27CgcO336NIqKimzatKnQ9/Xu3Rs1NTWhMcynZGdnY29vT+/evWVkdAH8/f158uQJ7dq1Y+XKlbx58wYlJSUuXrzIgAEDmD17NlpaWhw7doygoCAsLS0JCQlh3Lhx3Llzhy1btjBt2jShBPCfREREsHz5cjZv3lxkQ+/k5MTJkydp27YtKSkpnD17lv3798vE4YtKamoqZcuWZe3atZQoUYKcnBymTJnCkSNHCqwYyMjIoHTp0nh4eOTrqBUVFcWiRYuIjY396nn811i3bh07duzA2dlZMDaBgYFColgxX096ejrh4eEoKCiQmJhIhw4daNCgAZUqVeL8+fOkp6fTrVs3RCIRvr6+tGjRgh49ehR5/OXLlxMbG8vy5ctlFgipqamMHz+eyMhIGR2AnTt3MmXKFEQiEampqVhbW7N169ZCtQJ+Bubm5rRs2TJfWAE+epQWLFjA27dvf8HMfi+Kd/S/GcnJySxevJhnz55Rq1Ytpk+f/tmWjLVr1+bQoUMyx/JqzT+Hi4sLHTp0wMjISGYnJpFI2LVrF/r6+oSEhOQz9Hfv3qVu3bro6+ujpaXFvXv3aNKkCXfu3KFhw4ZC4mLHjh3x9vbG3t6ePXv2kJ2dTaNGjcjOzmb+/Pk0a9YMa2trQTjn9evXXLhwgcDAQDZs2FBkIx8VFcW2bdtwc3NDTU0N+CgtPHXq1G8y9BkZGcjLywtjycvLU7JkyUI76aWlpSEnJ1fg36hs2bK8f//+q+fwX2To0KFs376d5cuX06hRI6Kjo7l69aqMuEsxX4eKigoGBgbC/x88eMD27dt59uwZCQkJuLq6Cjk2DRs2xNnZmXbt2smU2H6OWrVqFZjpr66ujrq6OvHx8ZQqVYrMzEwePXpEu3bt6N+/Py9fvhTaW/9qNDU1SUxMLPC1hISEX7oI+ZP445PxfiYfPnygRYsW3L59m8qVK3Pz5k1atGjx2aSuIUOG8PbtWzZu3EhgYCDr1q3j+fPn2NrafvZapqamrFmzhgULFrB582YuXbrEiRMnmD59OqmpqZw5c4bU1FS2b99OTEwM7969Y+fOnURGRmJubo5EIuH9+/dCdrCuri7Pnz8XyqMePnyIqqoqaWlpaGpqsnv3bqRSKc2aNcPV1ZVSpUqxYMEC+vfvz6BBg1i5ciWNGzfm4cOH9OvXj9zcXKKjo7/Yizs0NBQdHR3BMAMYGBjw7NmzIn7qspQuXZr69evj5eVFWFgYPj4+pKWl0bBhwwLP/1TL/5+EhIR8c9Lgfw1VVVUuX77M6NGjSUtLw9DQkDt37tCiRYtfPbU/hvLlyzN16lQcHR0pX768TCKtpqYm5cuXLzTruiAaNGjAs2fP8v3GoqKiyM7OplKlShw5coSKFSvSs2dPatSowdixY9HT06N06dJIJBIuXrzIrl27iIiI+G73+TXY2tri7++fLwwplUo5e/bsF5+DxRSNYkP/HTly5Igg/9qiRQtGjRqFWCzm6NGjhb6nVKlSLFmyhFu3bnH06FGSk5NRVFTE2dn5i9fr168foaGhWFlZkZCQgIqKClu2bOHKlSuUL1+ey5cvo6ury9y5c3F2dubdu3fMnTsXBQUFDh8+TPXq1YV4e8+ePTEwMGD69OmsXr2aTZs20blzZ7y9vdHT0+Ply5fMnTuXM2fOcP/+fSIjI1FWVubq1askJSXx9u1b5s2bR6VKldi7dy+VK1fGwMCAihUrsnXr1nxzP3r0KI0aNWL48OGEhobKiIbcuXPnm7PoRSIRx48fp3z58uzYsYOkpCQCAgIK3SWJxWImT57Mtm3bZHYW0dHR7Nmz56uyzv/rqKioYGdnx+7du1myZEk+pcVivg9Vq1YlLi5O5vuWnJxMdHQ05cuXL9IYOTk5xMXFoaSkxKxZswgODkYqlRIZGcn69euZNGkSiYmJDB06FGdnZ5YsWYKHhwfXrl1j06ZNvH//nsaNGzNixAi2bNlC3bp1f0kuSpcuXdDR0WH16tW8evUK+Fhqt2XLFuLj44tLZr8TxTH674BEImH9+vUsXbqUWrVqMWrUKOG1bdu20alTp0LLjKRSKTVr1qRXr15CAlpGRgaTJ0/m1KlTNGjQ4LvM8dSpU9jZ2aGkpERKSgoGBgYcOHBAJstTKpVy5coV4uLiaNKkiUyrydzcXHx9fTly5AhZWVm0atWKAQMG5DOgd+/exdramokTJ1K9enVevXrFihUrOHz4sLA79PX1ZejQoQwfPhwNDQ1mz56NmpoaFhYWJCcnExgYSM2aNX9abFgqlTJr1iw8PDwwMDAgJydHaOJTrLpXzI9g9uzZbN26le7duwuL03r16skkhBZEdnY2x48fx8/Pj7Jly1KxYkWysrJ49OgR2dnZ5OTkYGBgQLly5bh+/Tq1atXCxcVFeH9QUBCBgYGYmppy7949Ro4ciUgkIiEhgWnTpnHnzh309fVlrvnmzRvWrVvHo0ePaNSoEWPGjJHpkvlvyczMZNmyZWzcuJG4uDhUVVUZMmQIc+bMQVNT87td579Mcfe6z/CzDL2joyMXLlygadOmHDlyhAULFqCtrU1MTAzz58/n9OnT+bSfpVIpgYGB3LlzhylTprB9+3aZWNuXFggpKSmsXbuWCxcuoKury4QJEzA2NubKlSts2LCBzMxMbG1t6dKli/CenJwcHjx4QMmSJX9Ypq2TkxNv376VSSry9fVFQUGBLVu2AB/j/9WrV6dFixbk5OQwePBg5s2bR1BQECoqKujq6nLs2DGhYcjPIiEhgUuXLiEnJ0ebNm2KHCst5t9TFFW5PwmpVEq/fv24fv065cqVo3nz5jRv3vyzn0FmZiZLly5FRUWFvn375svNCQkJwcvLC4lEQsWKFalTpw4PHz6UUb+7cuUKz58/JyIiggEDBlC9enXhtc2bN9OrVy+Zjcrz588xMzPD1NQUfX19Hjx4QFhYGLdu3crXROt7fCaZmZkoKSn9T30XikJxMt4vJjY2lu3bt+Pm5iYYhqlTp1KiRAlSUlKE5KY8pFIp27Ztw9XVlQ8fPgir55iYGMFtJ5VKiYiIEEpOPnz4wIEDB3j48CENGzakS5cutG7dGhUVFczMzIS4+8yZM1myZAl//fUXpUqVYsyYMYSHh+Po6Ah8TEwrrGzte5GTk5OvjE0sFsvEEbOzs4XOXPLy8lSqVInw8HD69u2LRCJh27ZtP7TBQ2FoaWnJ1JEX8+NZu3YtS5YsITo6mpYtW7Ju3TqMjIx+9bR+OCKRCAsLC2JiYhg9enSR3rNp0yZKly7NmDFjCvyN1atXj8WLFzN16lQaN25MixYt8PX15cyZM7Ru3ZqIiAgOHz6Mp6cnq1atIiYmRsbQv3v3Ll/oYN68eVhYWAjJwWZmZnh6euLh4cGCBQv+5acgi0gk+tetrVNTUzl27BiJiYm0a9fuXwtp/SkUG/pvJCwsjPnz5+Pv74+8vDxPnz6lYcOGtGvXDi0tLXbt2kWdOnVo3ry58B6pVMqoUaPw9/enf//+GBkZIRKJKFeuHG5ubgwePBgNDQ1OnToFQPv27UlISMDMzIwSJUpQvXp1/Pz8mD17NkpKSkyePBmRSETDhg1RU1Nj6dKlDBs2TEg8q169OgsWLGDcuHE/bYU8YMAAbGxsaNKkCRUrViQmJoZz586xc+dO4ZxevXqxdOlSdHV10dDQQE9Pj3379nH16lXS09MpV64cBw4c+CnzLebXsXfvXlxdXRk/fjwVK1YkICCAtm3b8uLFC5nkzD8VGxsbXFxcSEtL++L9RkdHExISwvr16z/bMEZdXR1HR0fWrl1LmzZtmDlzJjt27GDnzp0oKiqyZs0aOnbsiEgkYsiQIcJCOyAggMzMTJkyX/ioqDdixAiZYw0bNuT69evffuM/iJCQEKysrKhWrRqlSpVi7ty5ODk5MWvWrF89tV9OsaH/BqKiomjWrBmtWrXC0dGRqKgovLy8SEtLQ0tLi82bN9O9e3eys7Np06aNoOu+fPlyLl++zKxZs2Ra13bt2hV1dXW2b99OWloaCgoKtGnTBnl5eVavXk3FihUFd5qNjY0g8PKp8a5duzYfPnygQoUKwrHy5cuTmJhIbm7uTxM8adasGXPnzmXGjBmoq6uTkpLC7Nmzadu2rXDOiBEjiI2NZfr06aSnp9OqVSv+/vtv3r59i6KiIvXq1SsWaPkfYM2aNfTt21fwXFlbWxMSEsLx48fp16/fr53cT6B8+fK0a9eOy5cv59PDkEgkQrxaXV2d8+fP07p16yI1lapRowYqKiqEhIRQr149ZsyYwZ49ezhz5gyLFi1i1KhRSKVSVFRU2L9/P1KplDZt2tCpUyfatGlDlSpVcHZ2pmHDhujp6REWFiajm/Hy5Utq1Kjx3T+Pf8uwYcPo3r07FhYWAPTo0YPp06fTrVu3b26J/adQ/DT9Bjw8PDA1NRUaROjo6FC6dGlWrFhB+fLl6d+/v/Bly8nJYdOmTaxatQpXV1dmzpyZrz+9SCTCyspKqBtPS0tj/PjxvH37loCAAMzNzWXObdCgAXfu3KFPnz6CmlJwcDCamprs27eP8ePHIycnx6lTpzA3N//pRnPMmDEMHTqUV69eoaOjg4KCAgcPHsTDw4OQkBCysrIoXbo0I0eOZPTo0UL44ktZ3rGxsWzYsIH79+9Tt25d7O3tKVeu3M+4pWJ+AKmpqfl2smpqaqSmpv6iGf18HB0d6du3L+bm5sJncfPmTXbv3k12djYZGRnUrVuX9+/fF1lOWiQSYWJiwuPHj6lTpw6enp5cvXpV0L7Q09NDLBaTmJjIlStXuHDhAqdOncLIyAhzc3PevHmDlZUVPj4+TJ8+XehaWbNmTe7du4efn99vt6OPj4/n6dOnTJo0STimoaFBkyZNOHXqVLGh/9UT+C9y79496tSpI3OsRo0apKWlkZCQICNlmCdre/jwYXR1dQvVMv4UNTU1mjVrhqenJ1WrVuX169cyylFisRhlZWUWL15M06ZNefPmDf7+/lSrVo2wsDBGjRpFyZIlKVWqFL6+vt/vxr8CFRUVateuTUhICJ07d0ZLSwsLCwuGDh2KvLw8cXFxXLp0iUaNGjFs2DBcXV0/65KMjIykSZMmGBoaYmBgwPXr19m4cSM3btwoVKWvmN+bnj174uvri76+PgoKCkRERHD37l127979q6f202jRogXdunXDzc0NZ2dnwsPD2bZtG05OTtSqVYvMzEy8vb15+vRpkbsIAigqKnLkyBFOnTqFhoYGbm5u+Rpg5cnMdu7cmW3bthEaGkqNGjUwMTGhRIkSzJo1i4CAALy9vZk/fz7e3t4YGhpy4sQJGWnt3wFlZWUkEgnp6ekyi8fU1NTPCpb9r1Ccdf8NODs78+LFC5lSmJcvX+Lu7s7WrVsZNGgQPXv2JCsri2PHjuHn54eXlxepqal06tSpSNe4ffs2ISEhzJw5ky5dutC7d28MDAy4d+8eJ06c4MaNG9y4cYPz589z+vRpbGxssLKyIicnh6VLl9K1a1fmzZv3S7NXHz16hLm5OQMGDMDMzKzAc1JTU1m5ciXm5uYybRv/yejRo3n79q3MZ37gwAG0tLTw9PT8IfMv5seSkZFBv379uHz5siAWs379+v8Jt/2n5ObmMmzYMG7cuIGysjKNGzeWUYWUSCTY29szYMAAWrVqVeg4aWlphISEoKioyOXLl7l79y4aGhosXLjwiwpzUqmUrVu3Ct7E+Ph45s6dS0xMDPDxeWRjY0NmZiYZGRm4uroyZsyY7/MBfCcGDhzImzdvGDJkCMrKyty+fRsvLy9CQ0N/CxXAf0Nxm9pfgKOjI1evXsXX15e4uDju37/PunXrmDVrFh06dGDfvn3ExcWRnp7O6dOnadiwIenp6UWKr+Xx4cMH7t+/T4cOHZBIJBw4cIAlS5YIAjA1atRg0KBBgihMy5YtgY9Z7EZGRnz48OGXGnmpVMqAAQPo0aNHoUYePiYPubi44Ovri5+fX6HnXb16NV8mfpMmTbhy5cp3m/P/GtnZ2bx9+/aL6oU/CmVlZY4ePcqtW7fYsGEDr1+//p8z8vCxffb27dsZNWoUYWFh+erYxWIx5cqV4/Tp04WOcf/+fRwdHbl8+TLHjx8nODgYfX19+vXrVyQZWZFIxMCBA7l//77wTMvzWqampvLXX3/Rr18/NmzYwIABA5g2bRqdO3f+6SWwn2Pjxo2UK1cOBwcHxowZw4kTJzhx4sR/3sh/D4pd99+Arq4uly5dYubMmcybN4+KFSuyePFiBg4cCCATb8+jQoUKPHz4sEjjp6SksHv3bjp27EiHDh1QVlbm+fPnbNy4EUtLy3xhAwMDA65du0bbtm3JyMggODi4wGY3P5Pbt2/z7t07IVfhc6iqqtKhQwfc3d0L7VSlo6PD69evZcqBXr9+LWjtF/N1HD58mGHDhiEnJ4dEImHHjh1YW1tz5swZEhISqFevXqGywd8bfX39fMbtfw2RSMTEiRO5efMmjx8/FhpLPXjwgBIlSvD69Wvgo17+P+PNOTk5bNiwAWdnZwwNDQE4ceIEx44d+6oyVWVlZZo1a4aHhwfv3r3jzJkzADx9+pQSJUrQpEkTrl69ypEjR+jXr5+wwbhx48YXk/OCg4Px9vYmJSWFevXq0bdv3++uU6Gurs7+/ftJTEwkJSWFKlWqFNfj/3+KXfc/iTw3toeHxxeT444ePUpEREQ+VbaIiAhcXV2JjIyUidc9evQIa2trVFRUSExM5K+//mLr1q2fjXn/aOzs7EhPT8fGxqZI52dkZDBu3DiePn1aoAzoxYsX6d27NyNGjMDIyIjHjx+zefNm9uzZ803Nb/6XefToES1atGDy5Mno6enx/Plzli5dikgkQl9fH01NTR4/foyOjg6HDx+WUUgs5scSHBxMmzZtkJOTw9TUlFatWhEXF8e2bdsoWbIkCQkJTJw4UaZZzsuXL1m7di0rV64UjmVlZTF48GD27dv3VcbuyZMnrFixghs3bgiLhrCwMBo1asTq1atZtGgRvXr1EnKG9u7di5GREYsWLSpwvA8fPtCnTx9u375N8+bNKVGiBKGhoTx58oRdu3YVOZT5v06xYM5/hLwksosXL+YzTFFRUdy8eROxWEyzZs24c+dOge0qdXR0UFZW5smTJzK7ekNDQ54+fcrjx4/R0NBAX1//l6xko6OjmT9/Pn5+fiQlJTFy5Mgiv1dZWZmKFSsSHh5eoKG3sLDAzs6OtWvXkpqaipaWFm5ubsVG/hu4fPmyUDoFH/UWjIyMqFSpEr179wY+xoV9fHywsrIiJCSkuNzxJ1G/fn2GDRvGhQsXGDp0KAB6enqUL1+eRYsWMXbsWFauXImOjg6dOnWicuXKZGRkEB8fL6jKwcffopqa2lc/B0qVKkVubq6MDr+enh7du3dn6dKlpKSkyCQby8nJ5WtI8ym2trYkJCSwatUqme/Qs2fPGDRokFB6XMyPpThG/xPZvHkzR48e5caNG8KxCxcuMHv2bJKSkoiNjWXq1KlERkaSlpaW7/0SiYQPHz6gqqqa7zVlZWW0tLQoU6bMLzHyqampmJmZERERwYgRI77JLScSiSjMw3T37l02b97MxIkT2bhxI3Xr1uXw4cP/dtr/k5QoUUKm/a5UKiU5OZnKlSsLx8RisdAr/eTJk79glv+7ZGVl5TN+Ojo65OTkoKenx7p16zAzM2PHjh1MnjyZpUuXArBixQqePHlCcHAwK1as+KbfYGZmJqqqquzdu1fm+ObNm3F2dqZGjRps2rSJGzducPbsWS5evMigQYMKHOvOnTucPHkSe3v7fAvFmjVr0qFDh1/SSOd/kWJD/xMxMDDg/PnzeHt7s3TpUgICAti9ezcLFy5kyJAh2NnZMXv2bMRiMX5+fkKSVHZ2NleuXGHy5MkkJSVhYmJC48aN2bVrFxkZGZw6dYqqVavSvHlzdHR0GDlyJFlZWT/13vbs2UO5cuUYPHgwVatWRVdXl4iICKRSaaHG+1OysrKIioqS0e/+FD8/P8zMzDA0NERDQ4PBgwdz9uzZ730b/xPY2NiQlJTEzp07CQ4OxtPTk6SkpAIbKNWvX5+LFy/+gln+72JiYsLTp09ljoWHh6OgoIC6ujpKSkpUr16dlJQURo4ciYeHB/Dx+bJt2zaOHDlCvXr1yMzM/OprP3z4kDJlysgsBOHjws/Ozo7Lly+zYsUKHj9+TFJSEufOnStUsnjQoEGYmpoKXoZ/0qJFi+JF5E+i2B/3k6lXrx4vXrzg8OHDzJ8/nypVqsi4qvOMZMmSJVm6dCktWrTg2LFjlCpVij59+ghxsydPnuDm5sbcuXNJSEjA0dERIyMjUlNT2bBhA7NnzxZW+j+DBw8eyCTK6evrc/DgQSFGWK9ePbp27SpzzqcEBgbSqFGjQuPBGhoaxMbGCv+PiYn5rvWxGRkZeHt7s2vXLhITE6lUqRJ2dnZ07NhRxlX5J6Curs7169eZOXMmN2/e5MaNGyxcuLBAnfHMzMyvqhYp5t/Tr18/XF1d2bp1Ky1btiQuLo5du3ZRsWJF0tPTUVVVZffu3XTt2hUzMzNycnLIzc3F3Nxc0KQ/evQoUqmU58+fF/qb+ycSiQQ/Pz/09PQEtcKCGDRoUL5d/PXr1/Hw8ODSpUtkZ2dTuXJlXr58+dlxlJSUfvqG5H+V4h39L0BJSYn+/fuzdetWsrKyZHa8EomEhIQENm7cyJgxY9i7dy/Nmzdn7ty5mJqaoqamhpqaGg0bNmTy5Mmoq6tjamoqrKrV1dUZOHBggT3gfySf7kKCgoI4dOgQffv2ZcuWLWzevBkTExOWLVtGSEhIvvdmZGRw+vTpz7aEHTBgAMnJyXh4eHDgwAFWrlzJ8uXLv8vcQ0NDqV27Nh4eHhgbG9OlSxcqVqyIi4sLTZo0IS4u7rtc53eiTJkybNy4EX9/f3r06MHt27fznZOTk8P169cFBchifg5qampcu3YNY2NjDhw4wN9//82aNWuoU6cO48aNY9SoUTx//hxTU1PgY0lt7969WbBgAadPn2bXrl34+fkxYsQIjh07hkQiKdJ1AwMDkZeX58GDBwwfPvyz56akpJCeno5EImHs2LH07NkTJSUlZsyYwaJFi9DW1haU9Aq7fnBwcHHTmZ9Ecdb9L0QikVC3bl0MDQ3p0qULubm5HDp0iISEBK5du8b27dtZs2aN0LymIPbu3YtYLKZv377CseTkZMaPH19gnP9HkZaWRoMGDdDV1eX27dtMmDAhn3rW/fv38fLyYvXq1UJFQHp6Ou7u7hgZGbFz587P5hekpKTg5eVFfHw8VlZWgnbAvyE1NRVDQ0M6dOggo8cPH2PXe/bsIS4ujmvXrv2xpTrPnj2jefPmdOvWjdatW6OgoEBsbCy7du1CW1sbHx+fP/be/2ukpqaSlpaGpaUlPXr0EDx88LGk9cqVK7x48YJbt25RoUIFLCws0NDQwNbW9rNVOCEhIXh4eFCuXDksLS3ZsGFDgefFxMQwePBgLl++jEgkwsjIiJSUFKZOnSqTO3Tu3DnCwsJ49eoV5ubm+cp9897j4ODAnDlz/uWn8udTLJjzH0YsFnP27FlSUlIYMWIEo0ePRl5enmPHjgEfm35YWlp+9iHbqFEjLl26RHJyMvDROJ08eVKmD/3PIG8XUqpUKdTV1QuUyKxbty7y8vKEhoYSHx/P4cOHcXFxoUGDBmzbtu2LxqREiRKMHz+e+fPnfxcjD7B7924qVaqUz8jDx+TA/v378+bNmy8K83z48EFQRezfvz/Lli2TCTX8ztSsWRN/f3+eP3/OmDFjmDRpEjNnzsTMzIyDBw8WG/nfCHV1dcqVK8fQoUM5efIkubm5SKVSkpKSMDQ0RCKRMGnSJKpVq4aysjKnT58mNTWVxYsXc+fOnXy768jISLZs2cKqVavIycmhU6dOrF27FoA3b94wb948pkyZQt6GqW/fvqioqODp6cnatWsFN/0/E4Rr167NvXv3cHBwwNfXlzVr1vDgwQNevXrF6dOnmTZtGmlpaTg4OPDixQs8PT05c+bMZzP4i/l2inf0vwlpaWmIRCLhByOVSlFSUsLLy+uLMVJvb29OnjxJ06ZNiY6ORk5OjgsXLhRYpvajOXjwIO7u7jg6Ohb4+uzZswkNDUVNTY0+ffrg4OAgo+P/M8nOzkZfX5/U1FQUFRWxsLDAxsYm387n5MmTKCgoFBoO8fb2xt7enpo1a2JiYoK8vDzPnj3j5s2bTJw4kTlz5vxnjGV0dDTv379HV1c3X/Ol/1UkEgk3btwgJSWFFi1a/BYtdDMzM+ncuTPh4eF8+PCBxMREweg+evRI5m+XlZXFgQMHcHd3JzIykmrVqiEnJ0dcXBxv377F2NiYdu3aMWrUKKFJ1Js3b2jUqBH16tVDXV2dCxcusHnzZoYNG8bGjRuFLPro6Gjmzp3Lxo0b881x3rx51K1bFysrKwICAggMDCQzM5MqVaqQmZmJkZERjRo1Yvbs2TRo0IDIyEg0NDTw9/f/LT7j34niOvo/hIK+2BKJhF27dpGenk6NGjUwNzcv8OHbs2dPjh49iq2tLZUrVxYEN34FxsbGPH36lJycnHwlNVlZWcTExPDo0SNq1ar1S+b3KVOnTkVNTQ1HR0ckEgleXl5IpVIhoSmPsmXL5suCzuPEiROMHTuWKVOmyHTfa9WqFT179mTFihWIRKL/jHuyfPnyv2SB+Lvy4sULOnbsSHZ2NiVKlCAiIoKtW7fm+478bJSUlDhz5gwWFhYoKyszbNgw0tLSWLRoEb6+vjJ5FYqKikIC3YMHD3jx4gVZWVmUKVMGMzOzAjcSGzdupE6dOgwZMgSRSESlSpVYtWoVUqlUxiuQk5NTaEjAwcGBBQsW8OrVK6ytrWnatCmvX7/m1KlTZGRkYG1tzejRo1m8eDHa2tpIpVLc3NzYsGGDTBe6Yv49xTv635QZM2awZs0aOnbsiKamJnfv3uXly5fMnj0bbW1tmXMfPXrEzp07CQsL+0WzlaV169aUK1dORvRHKpWyf/9+IfHue5KVlcXRo0fx9vbm/fv3VKxYkWHDhtG6detCd9ISiQR1dXWMjIyIiooiOzsbZWVlEhISWL16tYw++IkTJ1BWVs7XPEcikVC9enUGDhxYaBvMxMREXFxcePHiBWXLlv1+N13MT8HU1BRDQ0M6duyISCQiLCyMJUuW8OzZs9+iRbK+vj5jx44VNBAOHz5M1apVWbZs2TePuXPnTiHHR0NDg169elG6dGnOnDlDuXLlyMjIoE+fPmRkZLB27Vrq1KlTaAvdDx8+sHfvXm7duoWysjIKCgokJiaip6dHUlISYrFYZq5Xr17l9evXHD169IvzTEpKwtfXl9zcXDp27PhHa9oX7+j/QK5du4aXlxerVq2iZMmSwEdlOB8fH7Zs2cL06dNlzj958iTR0dG0b9+eDRs2fLGvex5Pnz5l2bJlPHjwgIYNGzJ16tTv0vJ17969tGnThqdPn2JqaopUKuXmzZtIpVL8/f3/9fifEhwczF9//UWZMmVo3rw5NWvWJDo6mmHDhlG2bFlOnDiR74H8/PlzunbtiqqqKsbGxvTr1w9FRUXi4+M5f/48EyZMwMrKij59+gAQEBDAgQMH8l374sWLiMXiQuuIATQ1NWncuDFeXl5MmTLlu957MT+W8PBwwsLCcHZ2FhaMenp6NGjQgKNHj2Jvb/+LZwjVqlXj77//pnLlyuTk5PDs2TPatGnzzeOdPXuWyZMnM2nSJGrUqMHz588FVbupU6cydOhQHBwcGDduHIqKikilUmbMmFHoeKqqquTk5ODk5ISGhgZr165l+fLllClThoSEBJydnUlJSRFKZR8/fkzz5s2Bj139fHx82LdvH+np6bRr1w5bW1tKliyJn58fvXv3pnbt2sjJyeHg4MDWrVuLK0QKodjQ/4Zs27YNS0tLwcjn0aFDB44fP05iYiKamprAR2W9iIgIVq9ezdWrV2nevDmBgYGfrV+F/8u0tra2pmPHjoSEhNCkSRPu3r1LxYoVvzjH169fM2/ePM6dO0fJkiWxs7Nj3LhxyMnJUbFiRUJCQjhy5Ai+vr6C69rGxuaremr/k7t373LgwAHk5eUZOHAgysrKWFtbM3DgQJo1ayZzbvv27fH29sbS0pJbt24JIY/nz59jZmaGjY0Nbdu2ldnxa2trY2BgQHJyMitXrsTT0xMFBQX09fXzjQ8ftQNq1679xfh7rVq1uHfv3jffdzG/BqlUWuDf9nMKjj+Su3fvEh0djYmJiaA3sX79eiwsLAgKCuL9+/fUqlWL+vXrk5SUVKSudf/Ezc2Nnj17Ck1qqlevTrt27fDz8+PYsWMcPHiQihUrcvDgQTp06ECrVq3w9/enTZs2HDt2jFu3bqGoqEjr1q2xtrbm7du33Llzhx07dtC4cWMmTpxImTJlANDS0sLa2ppp06bRsmVL3r59S0xMDPv27SM7OxsbGxtevHiBhYUFKioqHDhwgNWrV+Pn50e/fv0YP368UHUQHh7O8OHDadu2rfBsLOb/KDb0vyGxsbGCDvmnKCoqUrJkSVJSUoiNjeXMmTM8e/aM6dOno6mpyV9//UVOTg4TJ07kyJEj+d4fHx9PUlISOjo6uLq6YmlpSbdu3YCPevmZmZmsXbuWxYsXf3Z+7969o2nTpjRp0oQJEyaQlJSEl5cX9+7dY/v27cJc+/btK1P292+4cOECvXr1om3btuTk5GBmZoaFhQWtWrUq0AiLRCJ69+6Nq6sr+/fvZ+jQoUilUmxsbOjSpQuWlpaFXqtkyZJMmzaNadOmoaamxq1btwp84H9J5zuPgvIVivn9qVq1Kjo6Ovj5+dGuXTsAXr16RVBQEHv27Plp85BKpdjb23P8+HEqVapEWFiY0N2yZs2aPHr0iFu3brFv3z4OHTpE//79iY2NZfz48cybN++rEkFjY2Np0qQJ8PF5sX79eiIiIrCwsMDIyAg5OTliYmJwcXFh9OjRzJo1i1mzZgnJv2PGjCEjI4M9e/YQGhpKcHAwOTk52NnZkZubm89j2LdvX4yNjVm0aBEGBga4urqipaXF+vXriYqKYs6cOcJvp1mzZhw8eBBbW1vKly8vU1pYtWpVDAwMOHfunOCJK+b/KH76/IY0a9YMPz+/fAYsOjqa2NhYpkyZgra2NlZWVgwbNkxG07pdu3Y4OjoSHR0tJFW9evUKe3t7rl69irq6OlKpFDU1Nfr37y8zfo0aNYrUSnfdunUYGxsLRrxSpUro6enh5OT0VUpcX8OUKVMYNmyY0HZTU1OTvXv34u7uXuh7RCIRVlZWrF27lqFDhxIQEMCHDx8+a+TzUFZWZvDgwZw8ebLQnVGLFi1YuHAhgwcP/mzy4717976qwU8xvwcikYj9+/fToUMH4bfz4sULNm/eTIUKFX7aPE6fPs25c+dYtmwZysrKPH36lAEDBhAbG4u8vDylSpUiLi6OS5cu4erqiqamJomJiSxfvhxDQ8OvWmy3a9eOK1euUKZMGebNm4eVlRXTpk2TWagaGxvTtm1bHj16xIwZM2jXrh3Hjx9n2bJlwu9g0qRJODo6Ym9vj6mpKWvXriUpKYns7GwZr55IJKJKlSooKirSokULJk2axK5duwgPD6dz5875FsidOnVi9OjRBban/ufYxfwfxXX0vyF2dnY8ePCACxcuCDvG2NhY1q5dS4kSJdixYwfu7u507tw5X+MKVVVV9PX1BYOdnJyMubm5sEp2d3dn0qRJZGZmCvX6edy/f19YzX+O69evU69ePZljysrK1KpVS+hh/b15//69zMNVTU0NVVXVL7rpatSowePHjxkyZAgTJ06kTZs2Rd7hmJiYkJCQwNWrV9m9ezf9+vWjX79+Qo+BevXqoaOjw+XLlwsd4+XLl4SGhtKvX78vXi8+Pp6dO3fi5eVFVFRUkeZYzI+lZs2aPHv2jE2bNjF37lwiIiJ++o4xNDQUAwMDQaK4Vq1aSKVS4uPjhXO2bt1Kly5dhN+DpqYmXbp0YcuWLV91rUmTJhEdHS0Y8K5duxbqjTI0NMTFxYUDBw5QtWpVmcWulpYWKioq6Ovro6SkhK2tLfLy8gQEBOQb59SpU5iZmdG2bVsWLFhAfHw8YWFhgov/U1RVVVFTUyMtLY1r164Jx+/du8erV69o3779V93v/wrFhv43pEyZMly8eJHg4GDGjRvHjBkzmDlzJu3bt0dZWfmLdfXZ2dnCj3P79u1UqVIFGxsbobmEjo4Ozs7OhIaG4unpyZUrV1i/fj2vX79m9OjRX5xflSpVePPmjcwxqVRKeHg4U6ZMYfTo0d9d+CIvGTEnJ4eMjAwCAgKQSCRfjJXmSQwrKCjw4sULmfa+X0IsFmNoaEj37t2FTPxSpUrh5uaGoaEh4eHhbNmyBW9vby5evChzz1KplAcPHrBixQo2btxYYMfBTwkPD6dWrVrMmzcPDw8PTExMCpQLLubnIycnR+vWrfnrr7/y5c38DIyMjPj7779JTU0FPqrYKSgoyBjCT1vU5qGkpPTVjW00NTVZvXo1JUqU4K+//vri+aqqqqioqBAWFibT2vbRo0dkZ2czc+ZMdu7cSUJCAkpKShw8eJC9e/cSEREhCOVcv35dyNpXUFBg9OjRqKiocP/+/XzXi4iIQEFBAR8fH3x8fJg2bRqzZs1i27ZtHDt27Iu/s/9Vil3335n379/j6elJSEgIzZo1Y+jQod8kPGJoaMitW7d48eIF79+/p3bt2igpKXH48GFevnxZaGZ9XFwckZGRNGzYEPiYMV6/fv1851WqVAltbW1q1KjB27dvad++PaNGjSpSIouDgwPW1tYYGBhQo0YNcnJy8PHxQUlJibVr1+Lm5sbMmTNZsmTJV993Ybi5udGvXz+GDx+ORCKhV69eJCUlERoa+lm97MDAQOrVq4eVlRVHjhz5pgYtVatWxcXFRfh/mzZt8PX1pWvXrgQHB3Px4kXs7Ow4cuQIDRo0QE5OjidPngi1+UV5YLZv3x6xWIyuri4PHjygatWqjB079ouKfP81kpKS2LVrF48ePaJOnToMHDjwuzYn+hOxtLSkX79+TJo0ifLly/Pu3TsOHToks4Pu1asXXl5e1KlTBwUFBbKzszl9+vQXNesLYtOmTbRr165Inq+SJUuSlZWFtbU1M2bMwMLCgrS0NC5fvsy4ceOoUqUK+/btY/ny5XTs2JEWLVrg6+vLqlWrkJOTw9TUlEWLFsmEx+Tk5BgyZAgeHh7o6ekJmhsJCQls3rwZFxcXGjVqJEj95uTk0LRp0x/its/OzubDhw+UKFHisxLCvzvFdfTfkdTUVBo1akS5cuWoXbs2QUFBKCkpcfny5e8mYLN48WIOHz7MpEmT8o0plUrZsGEDdevWFVpXDh8+XJC2/JScnBwcHBy4f/9+gfGuL+Hl5cWYMWPQ0tIiLS2NypUrM3bsWMqUKUNsbCwzZ84kMjLyuytcpaWlIRaLUVFRYeXKlXh5eTFr1qwCf4SpqalMnDgRJycnDA0NmTx5MnZ2dl/VSGPRokW0aNGCVq1ayRyXSCRMnjyZffv2YWZmBnx0H169epXc3FyMjY2xsLAo0sMhKCiItm3b4ubmhqqqKsnJyTg7O6Ourp7Pc/K7kJ6ezr59+7hz5w7GxsYMGjSIEiVKIJVKuXHjBuvWrePhw4dCAtbIkSMxMDCgdevWVKtWDX19fUJDQ4mMjOTatWtCHXgxhfPixQtiYmKoXbs2WlpaMq9lZ2fTr18/Ll++TO3atXny5Anm5ubs27fvqw1glSpVcHFxKbJw0rlz5zhw4AC1atXi1atXyMnJMXnyZOFvKpFIWLZsGYaGhtjY2BR5HnPmzCEmJoYyZcqgqqrKy5cvcXJyYu7cuT9caTImJoZp06bh7e2NVCpFU1MTJycnJk6c+EsMfnEd/W/Erl270NTUZOzYscBHd/PcuXM5e/YsHTt2/C7XcHFx4fLlyyxfvpxu3bpRq1YtQchj//79xMXF0aJFC54+fUqtWrUYPHgwAwYMwMLCQsatFRAQgIGBwTcZeYAKFSpgaGhI//79UVFRkRGDKVu2LNra2jx8+FBInvtaTp06haenJ/Ly8jg6Ogra9p8uHMaNG8f+/ftxdXXFzs5ORjDj1atXbN68GVVVVW7cuEFOTo4gDVxUQ5+cnMzTp08LlPMVi8UYGxsTFBQkGPp69erly10oCq9fv0ZXV1f4+5QsWZKyZcv+FoIsBZGWlkbLli0RiUQYGxuze/du3NzcOHToEMOGDSMmJoY2bdrQs2dPxGIxr1+/ZsqUKURGRtKkSRNGjBghjHXgwAGmTp3K7t27f+Ed/TfQ19dHX1+/wNcUFBQ4dOgQf//9Nw8ePMDY2PirwlSfkpGR8VWeL2tra06cOIGcnBxVq1YlPj6ebdu20apVK1q2bIlYLKZXr164u7vTpUuXIhvpHj16cOLECdatW0d6ejqNGzcuNDE2OTmZqKgoypYt+6+FcxITEzEzM8PQ0JBVq1ahoaFBWFgY27dv58mTJ1+d9/A78FsZepFIdADI00bVAN5LpdJ6IpGoKvAYyNMhvSGVSn+9WsU/CA0NlalfF4vFVKtWjefPn3+3aygoKAhffg8PDxISEoSdfVZWFhYWFkLYYMOGDfTu3Ztu3boxe/ZsrKys0NLS4v79+9y/f5+LFy9+8zxUVFRIT09HR0cn32tSqZS0tLRv1kr38fFhxIgR9OrVi6ysLGxsbDhx4oRgUPNQVFTkypUrjBkzBmdnZ6pWrYqmpiZxcXEkJyczZcoUBg8ezNSpUwkICKBly5YcOXJERqCjICQSCQ8fPhQ0Ago7NzU1NV8y5LdQp04dIiIieP36NVWqVOHFixdERkYWWCL5O7Bt2zYUFBSYOHGi8ND28PCgVatWdOnShUmTJsnsevT19WndujVBQUFs2LCBVq1aCYstKyurfAJQxXw7derU+WYDn4eWlhaJiYn5vAaFIZVKyczMJDQ0FFNTU/766y+Sk5M5evQoz58/Z9iwYejr65OcnEx6enqR4+g6OjpERkYSFxfHwoULefnyJQ0aNGDhwoVC0vC7d+9wdnbGx8cHDQ0NEhMTMTc3Z9WqVd8ss7127VqqVKnCwIEDhWN6enpMnjyZiRMnMnHiRJnSvv8Cv5Whl0qlQjqrSCRaCSR98vILqVRa76dP6ito3bo1EydOpFOnTigqKpKamkpQUBCLFi36LuP7+Phw4MAB1NTUhPKVd+/ekZ6ejqmpKTNnzhRi982aNcPR0ZHu3bvj4eGBjY0NXl5ehISE0LJlS3bv3p1PSvdraN68OfHx8QXmCzx48ABlZeVCZWG/hLu7O4MGDRJ+zBKJhPXr1+cz9PAx29/Lywt3d3fOnz9PcnIyFSpUoE2bNkJC4ubNm4XztbS0cHd3x8XFJV/yEsDbt29Zvnw58vLylC9fnoyMDBYuXMikSZOErGf4mItx7969f9UlUCqV8vfff5OVlYWHhwdjx45FSUmJpKQkSpQowY0bN6hbt+43j/+juH79Og0aNJDZmcXExGBpaZkvRPQpDRs2ZPTo0bi5ubFmzRrk5OT48OFDcfOc34yePXty7dq1Qr0H/+TJkydkZmbSsmVLmZwAY2NjnJycaN++PWXKlCEnJ4fo6GiqVatWpF193jPU3t6eIUOGoKenR3BwMB06dCAgIIAqVarI7LxLlixJRkYGFy5coGXLlly/fv2bSn29vb0LlPRVVlamWbNmHD58+D9n6H/L7ALRx29Bb2Dfr57L19C5c2eaNWuGi4sL69atw8XFhaFDh9KgQYN/Pfb27duxt7enRIkSpKSk0Lx5c8LCwgRjpKKiImNw9fX1kZeXJzw8HJFIhKWlJXv37uXs2bM4OTmxfv16TE1Nsba25vjx4189H0VFRZYvX87q1au5d+8eEomE3Nxcbt26xYYNG1i1atU3x9GkUqnMjlAsFpOamkr//v1RU1OjRIkSDBkyhHfv3pGamsr27dtZvny50CzHysqq0JIgV1dXTExMWLBgASEhITINOqRSKa6urrRr1w5XV1ecnZ3ZtGkTampqMt25IiIicHV1xdHRscASoKLw4MEDDAwM6NChA7169WLatGnUqlULPT09XF1dmTRpEnPnzuXQoUPfNP63kJycjK2tLVpaWqipqaGmpoaRkRFeXl58+PBBOK9WrVq8fPlS+H90dDRRUVFFir82bNiQMmXKcOfOHXJycjh48CCDBw/+IfdTzLdhb2/PlStXhCz/L3Hu3DlEIhHm5uYyx1VVVWnQoAF+fn6MGzcOTU1NVq1axbRp04iOjv7iuHldJYcPH06DBg3Q0NDAwsKCTp064erqioeHB1WqVGHAgAFCNYSysjKdOnWibdu2zJo16+tvno+e0U8X9Z+ipKRERkbGN437K/ktk/FEIpE5sCov+eD/u+4fAs+AZGCmVCotMB1ZJBKNBEYC6OjoNHz16tVPmfOnBAcH8/DhQ0xNTb9blzYjIyN69eolrCT37t2LgYEBS5YsISkpiSpVqrBy5UohhpWYmMjkyZOJjIyUcT3n5OTQrFkzlJWVadOmDe/fv+fw4cNMnToVBweHr57XkSNHmDNnDq9evUIqlVKrVi0WLVokKIl9CwcOHGD8+PH069ePnJwc9u7di6KiIs2bN6d9+/ZIpVJOnDjBrVu3yMzMxMDAgMqVK5OVlUVQUBBaWlp4eXnRqFHBuStSqVToJZCcnIyxsTHy8vK8evWKt2/fsnbtWplFyvv373FwcKBChQqIxWI+fPjAlClTmDBhAiKRiKioKE6dOkVaWpogGfo5Jbzs7Gz09PT466+/aNWqFSKRiDt37rBq1Sp27twpvPfy5cu8efOmSA0+/i0XL16kS5culCpVigEDBlC2bFlu377NqVOnqFatGjExMRw/fpwmTZoQExNDvXr1aNasGSYmJhw8eJAqVaowdOjQIl3rypUrHDx4EIlEQtOmTfH29i70wVrMr8HR0ZHLly/j7OxcoOcrD19fXwIDAxGJRNjY2OT7zS1btoxHjx4xYcIE6tWrh0Qi4fTp0wQEBLB8+fLPbgbOnDnD7t27hVybPJ48ecLJkydJSEhg+PDhBXoeUlNTcXBw4P37919daTNq1CgSExPz6eZLpVKmT5/Opk2biiS69T35zyXjiUSi80BB6ZwzpFKpz///dz9kd/NvAR2pVBovEokaAsdEIpGRVCpN/ucgUql0M7AZPmbdf9/ZF4369esXWNL2b8jJyZH5weWV0ACUKlUKe3t7XF1dhV3VsWPHGDt2bL748smTJ/nw4QOTJk0SfmS6urrMmzePUaNGfXWGbvfu3enWrRtxcXGIxeLv0kGqT58+iMViPD09kZOTo3///gQFBQlCJVKplIyMDNTV1ZkzZ47Mrrpfv34EBgZibW3N2bNnMTU1zTe+SCRiyJAhlC1bFl9fX+Tk5NDT0yM8PJygoKB8Dx8NDQ3U1NTYunUrpUuXxtjYGAUFBVJSUhg1ahQnT56kYcOGqKmpsWnTJkaOHMmqVasKFVY5f/48GhoatG7dWjiW56L/VC43Ozv7p7Qbvn79Ot26dUMikTB//nwh70BHRwdFRUVevHhBhw4d6NixI/7+/piYmHDjxg2WLFnCyZMnycrKKlCyuTB0dXVRUFDg9OnT3xzeKebHsnr1amxtbVm4cCHdu3fHxMRExsv25s0bTp06xcuXLzl//jwXL15kwYIFGBsbC4u2J0+e8OjRI2rUqCEkqYrFYjp27Iifnx8vX74UvjdSqZSEhAQAITfgwoUL1KhRg7///ltGyOvvv/+mfv36HDp0qNDnjbq6OnJycqSlpX21oXd2dqZp06ZUq1ZNCFFlZWXh7e2NlpYWbdu2/arxfgd+uqGXSqWfXQqJRCJ5oDvQ8JP3ZAKZ///fQSKR6AVQE/hv9qD9BoYOHcqWLVvo27cvSUlJXLhwgfPnzwuvL1u2DAMDA7Zv345IJGLmzJkFukRDQkLyNWLJK4OJiYn5pjInkUgkk3UfEhLC0KFDefHiBbVr12bHjh1f7dno1auXECcbNmyYTEzswYMHPHz4kCVLluSL74rFYszMzBCLxQwePJhHjx7lM9yZmZm0a9eO6OhoateuzcOHD6lWrRqLFy9m586d+cRHXrx4gbq6OhYWFjKJj+3atUNVVRUPDw+ZHcezZ88YN24cEomkQEW8hIQENDQ0ZI4pKioKXpm+ffuSkJDA4cOH8fb2/qrP7WuRSqUMGzaM5s2bk5CQkC+5sHnz5pw4cQInJyeSk5MZNWoUN27cQFdXVwhn9O/f/6uavOS1CC428r8vcnJy7Nq1i127dgmeppo1ayIWi3n37h3R0dGMGDGC/fv3U7p0aWxtbbl+/Trjx4+nXr16xMXF8ezZM0qWLJnvuy4SiVBTUxNc4A8ePGDXrl0kJCQglUopW7YsTZs2RUVFBTc3N/r27UtKSgp6enrcu3ePixcvcvPmTf7++2+ePn1aoJpnREQEqqqqXLp0iVWrVhEbG0vnzp2ZPXv2F3UbatasiY+PD7a2thw8eBBtbW2ePXtGkyZNOH369A8v7fsR/FbJeP8fS+CJVCqNzDsgEonKAglSqTRXJBLpATWA36P5+k9iypQpKCkp4e3tjZqaGseOHZOJ/YtEIoYOHfpF96mhoSGHDh2S6cwVFRWFRCL5V8l5ecTHx2NlZUWPHj0YPXo0gYGBWFlZ8fjx42+uqdfT05MRjjl37hwdO3b8bBJX06ZNOXLkCFevXhVK8/LYu3cv79+/Z+7cuYjFYnJzc5k9ezbm5uaUKlVKKNcrV64cz549Y/PmzcyaNUtmd71//35SU1NxdHTMV1dbs2ZNJk6cyPjx4+nRo0e+HYWFhQWjR4+W6UKYkZFBeno6LVu2ZM+ePYLU8b9pOVoUrly5Qnp6OnXr1s0niQwfQ0B5fzdzc3MOHz7M/fv3KVOmDOfOnUMqlVK5cmVCQkJkPBSfIzQ0lNq1a3/HuyjmRyASiRg8eDCDBw8mKCiIx48fk5WVRYUKFWjbtq3M9zrPAzdhwgT8/f0pVaoUNjY2REZG0qhRIxISEoSdemhoKO/evaN69eq8ePECd3d3Ro0aJTzPbt++zbp161i9ejVWVlacPHmSZcuWcf36dRo3bkxgYCD6+vo4Ojoya9YsTExMZEI/EomEQ4cOYW5ujr29PQMGDKB06dKcPXuWTp06cenSpS8a65YtW/L8+XNu3LhBbGwsRkZGP6SHx8/it4vRi0Si7Xwsn9v4ybEewHwgG5AAc6RS6YkvjfWzBXP+C2RnZ9OoUSPKlCmDhYUF79+/5+DBg4wfP56JEyd+9r1SqZQ7d+7w+PFjFBQUaNasWb52uKdOnWLWrFkyvddnz56Nl5eX0Ge6qMTFxbF+/Xr27dtHREQEenp6DBgwgPnz5+Ph4fFFOdIDBw5gaGjIggULZI4PGzYMsViMtbW1cOzkyZO8efOG4cOHc+jQIc6fP09GRgby8vL0798/X+1skyZNaNWqVaF5APBR3GjWrFn06NGjwNc8PDyEB2ZAQABt27bF09Pzh+wYgoKC8PT0JDo6miZNmmBnZ0fZsmUZNWoUHz58oEOHDowbNw47OztBVTEnJwdXV1cMDAzo2rUr8HGRFBkZSWhoKPXr10ckEhEUFER2djYbNmz4YulUXv/yjRs3/vQ4ZzG/hjlz5rBixQrMzMzIzs7mzp07jB49mkaNGrFq1SoMDQ3zadTnhYT2799f6LhSqRQ7Ozv8/f3p0KED1apVIzo6mnPnzlG2bFmSkpIoW7Ysjx8/5vXr18Lz4ujRo1hYWPzQe/7e/Odi9F9CKpUOKeDYYeDwz5/Nf481a9awcuVKcnNzGTVqFDNmzJAxHAoKCly6dImlS5eyf/9+tLS0cHV1pXfv3p8d99SpUzg7OwstdHNzcwkNDaV58+a4ubkJOzQ1NTXev3+PRCJBLBaTk5NDSkrKV+/mX758ScuWLalduzb9+vVDTU2NoKAg5s+fT2ZmZpFKspSVlUlPT893vHbt2vma7+TtMuXl5enbty+9e/cmKyuLmJgYwSj/0z1vZ2f32etXq1aNp0+f5juekZFBmzZtBAMvLy/P2rVr6dix4w8x8itWrGD58uVYWlpStWpV/P39Wb16NRcuXCAmJoaqVasiLy/PxIkTWbFiBbq6umhraxMcHEz16tXp3LmzMFZERATp6em4u7sLn0d6ejqTJ09mz5492NnZffYe/P39kZeXFzwVb9++5e7du6Snp6OtrU3z5s2LW/r+YcybN4/OnTszbNgwnj9/jpmZGeXKlSMnJ4fQ0FCZevU8GjRowOrVqz87rkgkYsuWLfj6+rJu3TqhVe6UKVPo06cPZcuW5f3799ja2lK7dm3evXvH0aNHGTp0KPfv3y9UfOdPpPgX9QeRpyk9duxY5OXl2bhxo4xSXx4aGhosXbqUpUuXFmncXbt2MXHiROzs7GSScjIzM7lw4QItWrTg4sWL1KlTBzMzMypWrIiHhwd16tQhKCgIExOTrxbxGD58OBYWFjI68VWqVKFRo0bMnDmTV69eCa40qVTKmTNnuHDhglBKaG1tzZs3bwr0IgwfPpx169bh5eUlqNu9evWKUaNGCeeIxWKUlZXR1dWlZs2aQh/sPFRUVPjw4cNnHxYZGRkyLsWXL1+ybt06tm3bRunSpSlZsiQSiYSYmBiePHlCeHg4gwYN+q6NU549e8bixYtZvHix4Dpt3rw5Fy9eZOjQodSsWVNofFKjRg3WrFnDnTt3SEpKok2bNjJJdunp6Tx+/JhVq1bJLHpUVFSYPn260M60X79++bLoc3Jy8PPz49SpU1y5coXbt2+zdOlS/P39qVmzJkpKSsTGxgoJjhMmTPglDWT+La9evSIhIQEjI6Nv6qvwp2Jqasrff/9NREQEGzduZOXKlbx79w5FRUUSEhLyhQ0LymMpCJFIROfOnWUWowB37txBJBIxe/ZsYVNQsWJFxowZw/r163Fzc2POnDnf7f5+d37LOvpivg0fHx86d+6Mnp4eOjo6dO/evcC4ax7Pnz/H0tISHR0drK2tCQvLn/bw9u1bHBwcmDZtGvXr15eJRyspKdGxY0f69OlD7969kUqlyMvLc+7cOTp37kx6ejp9+/bl2LFjX6UP/fLlS+7du1dgy8nKlStTqVIlzp07Jxzz9/fHz8+PUaNGMWLECM6cOcPZs2cJDg4uMBmudOnS3Lp1iwYNGggqb/Pnzy/U7aynp8fDhw95/fo1z549Izc3l86dO3P9+vVC7yE7O5tbt27RuXNnpFIpM2fOpEGDBoSGhjJ79mwWLlzI5MmTmTp1KqtWraJ3797s27ePqlWrcvbs2SJ9Tu/evWPDhg14eHgQHh5e4Dl79+7FzMwsn8pZq1atePXqFYaGhty7d084nlfG2KFDh3yZ9BEREZQpU6bATOcKFSqgp6dHamoqY8aMwdPTk2vXrhEYGIi3tzdOTk48ffqU69evc/36dTp16iQjXuTo6MiCBQtwcnLiwoULNGvWrEi11r8LcXFxWFlZUb9+fXr06EGlSpU+63b+X0VHR4fFixcTFRVFdnY2s2fP5vjx4zKdH3Nycjhx4gTDhg0rdBypVMrOnTtp0aIFhoaG2Nvb8/LlS3JycsjNzWX37t1YWVnl8/yJRCLat2/Prl27ftg9/o4U7+j/IDQ0NHj37p3w/5iYmEJXxe/fv6d169a0bduWv/76izt37mBhYcHNmzfJyMigSpUqyMnJsXnzZpo1a/bZbHxzc3NOnjzJlStXMDc3F3Z430pYWJhQglUQTZo0wcfHh5s3b9KkSRNu3LjBgAEDqFGjBgB9+/Zl165dDB06tFAZz3LlyrF48WKOHz+Oubn5Z3eP6enpnD9/ns2bN6OioiJ4LP766y+aNGmS77ORSqUcOnQIU1NTatSogb29PZcuXWL58uUFegDyNOONjY158uQJAwYMYPPmzXTv3r3QOb1+/ZomTZpQs2ZNFBUVmTdvHhcuXMintZ+UlFTgvYnFYkqVKoWFhQUrVqzg3bt3X0zGjI+PJz09XSaRM4+MjAzevn3Ly5cvKV++PA8fPuTmzZuIxWKysrJwd3dnxIgR+Pn5MWnSJGbMmEGlSpXyXSOva9/Bgwdp3749t2/f/iFdyT4lKiqKN2/eoK+vX2TZ13+S1/Nh7dq1yMvLExYWhoODAwYGBpiYmHznGf8ZiEQiIXlvzpw5mJmZIZVKuXr1KqqqqmzZsoVly5bRvHlzIekuj7Fjx3LhwgW6dOlC6dKluXnzJoaGhmRlZSESidDS0qJbt24FXldLS4v379//pLv8PSje0f9BTJ06lWvXrrF582a8vLzw9fVl7ty5BZ577do1ypYtS6dOnahQoQKdOnUiNTUVXV1djI2NUVNTw8TEhO3bt9O0adPPXlckEtGsWTN8fHw+e15RKVeuHNHR0TKqdZ+SlJREnz592L17N1u2bCE3N5fk5P+TVEhOTkZVVZUVK1Z88VpdunThxo0bhb4ukUi4dOkSaWlpeHh44ObmRrly5fD09MTd3Z1Fixbh4+NDQkICmZmZPHr0CDc3N0JDQ9m9e7cQC582bVqRYoK1a9dm0qRJ2NnZyey0/8mCBQto2rQpY8aMwc7Ojh49esgkQObRqlUrgoOD85W/RUdHk5CQQMOGDXF2dhYahxRGSkoKPj4+iESifHkHWVlZzJ49m9q1a7N69WqWLFmCm5sbmzZtYtCgQYjFYhYsWCAIjtja2hZo5PMQiUT06tULiUTyWY/UvyWv5MrQ0JCBAwdStWpVRowY8dXKZ69fv+b27dv07dtXyC/Q09PD0tIST0/PHzH1PwYlJSVOnz4tKGnmaVrk5OTQrVs3pk+fLpS2BgUFAfD06VMOHDjAtGnTMDU1RU9Pj379+tG1a1fMzMzYvXs3DRo04O7duwVe8++///6m5lP/ZYoN/R9E1apVCQ4OpnPnzlhZWXHnzh2MjIwKPFdeXp6srCykUilSqZRVq1YBH4UyvLy8mDRpEqGhoaSmpnL+/Pkv1kmrqamRkpLyXe7DyMiIcuXKERgYmO+1pKQkrl69yrRp0wgJCaFq1aqEh4ezbds2fHx8OHr0KN7e3uzdu7dISV2jR4/m2rVrvHjxosDXfX19UVVVpX79+igrKyMSiWjcuDGPHj1i0KBBXLhwAQUFBaZNm8bw4cPZsGED5cqV4/z585QoUYLFixczduzYr9Jzz1PN+1yPhJiYGJnOgzo6OjLenDw6d+6MkpIS27dvFxZDYWFhuLm5MW3aNJSVlZk5cybm5ubMnz+f27dv53OjBgYGMm/ePHr16sX69etZu3YtQUFBSCQSJBIJ27Zto0SJEowbN07GgyQnJ0fLli0ZPXo0cXFxnD17ltevX3+2UiEPkUhE27ZtcXd3L8pH9tVIJBLatWuHnJwca9asYcGCBaxevZqHDx9+dQ/3xMRESpUqle/7pqmpSXx8/Pec9h+JnJwcnTt3xsvLi8mTJxMUFMTUqVMxNjZGW1ubjh070qNHD2bMmAGAn58fDRs2zBdqa9myJSEhIYjFYvr06UNoaCjBwcEy58THx3PkyBEmTZoEfFyk5gmP/ckUu+7/MCpUqICTk9MXzzM3N0cqlbJr1y6UlZV5+vQpPXv2FFTm6tati6GhIaamppw8eZJr167RokWLQseLjo7+4s4fPj5g09LSUFZWLtQlKxKJ2Lx5M+3btychIQELCwtUVFS4d+8eBw4cwNHREX19faZPn86JEyfo2rUrEomEGzduEB0dzeLFi4tcylelShW2bdvGsGHDsLa2xtzcHA0NDcLDw/Hz8+PVq1e4uLiwceNG2rdvj7KyMtevX8fAwAB3d3eioqLo1KkTdevWZeXKlZibm/P69Wusra1xcnJCV1f3s7vXwmjdujUODg5ER0cX2Bfc2tqaNWvWYGxsjKKiIsePHy9QsUteXh5/f3+cnJxwcnJCXl4edXV1pk2bxpgxY4TPe+PGjezduxdXV1d27twp9E148eIFtWrVwsPDQyixU1VVZebMmaxfvx6pVIpEImHq1KmF5mE0atQIVVVVvL29MTU1LbLan6mpKWvXrs0nYPQ98Pf3Jzk5mf79+wthiBIlSmBvb4+jo6PQSbAoGBgYkJGRwfPnz4UEUYlEwvXr13F2dv6u8/7TuXjxIg0aNCAuLo67d+9SqlQpmjRpgqmpKTt27KB37968efOGxMREobInj7S0NOF7ktf4a8WKFVSuXBkTExOioqK4efMmTk5OpKWlYWxszOPHj4GPm6S5c+cyaNCgX3LfP5rfro7+e/K/XEd/6dIltm3bhlQqxdbWtkDhlbi4OKZOnYqPjw9VqlShRo0aMjXfs2bNonv37uTm5nL06NFCd5gZGRk4Ojpy//59dHV1Czzn7t27rFmzBm9vb6RSKdnZ2ZiYmODo6Ejv3r0L1Dp/+PAhCxYs4NixY2RnZ1OvXj0mT55Mnz59CAgIYMCAAcybN08mBh0aGsqKFSt4+vQp79+/p0KFCl9Uwsq7Vl5P9dTUVCpVqsSoUaOwt7dHQ0MDe3t79u7di5KSEnp6eiQnJ1O6dGkqV67M9evXiY6OZvXq1WhrayOVSlmxYgXJycl06dKlQBneorB27VpatWrFggULyMzMxMXFBR8fH3JycoR7DgsLQyqV0qdPH7Zs2fJZg5ienk5KSgplypTJ94CcPn06O3bsIDc3F0VFRaysrOjduzdGRkaFqhreuXMHa2trUlJS2L1792fL6rZu3YpEIkFDQ6PAzmCFYWdnx8uXL7+LtPKn5AmwDBgwIN9rK1asYPbs2fkyuT/HoUOHGDVqFBYWFpQuXZrAwEA0NTXx8/Mrzr7/Cvbt28eMGTNISEigadOmxMXF8fr1a1RUVJCXl8fa2pqsrCxOnjxJxYoVmTx5MmKxGIlEgru7OxUrVpSRno6JicHFxQV9fX10dXURi8VcvXoVBQUFhgwZQoMGDZBKpdy8eZNt27bRsWNH9u/fz7t371iyZAkRERE0aNAAFxeXX/p3/OPq6Iv592zatIm5c+dibW2NWCxm4MCBTJ06FUdHR5nzypQpw6ZNm9i+fTvOzs4sWbKEcuXKoaenx+XLl0lJSaFOnTqIxWJWr15d4M5KIpGwfft22rVrV6CRz8s49/T0xMrKCjc3N0qVKoVEIiE4OBh3d3eWLl2Kn59fvp2vkZER+/fvF3aNn+4EN27cSLt27fIlmtWoUUPoAqehoUFKSgqbN28uVHf+02t5enoWGlPdtGkTCxYsID09nV27dnHu3DmhCZC1tTUjR44UErnykoEePnyIgYHBZ6/7OUxMTLh06RIA48eP5/bt24wfP56EhATWrFlDy5YtiY+PZ9GiRYwYMeKL46moqOQLIeTm5tK+fXvEYjGLFi2ibNmyvHnzhj179rB///7PSvBu376dli1bcurUqQIT9D4lT/Y0LS2tiHf/0a2anp5epIXa16KtrU1sbGy+41KplJiYmK9WiezZsycGBgZs2bKF2NhYXFxc6NOnT7GRLyKPHj1i+vTp3Lhxg4SEBFxdXalQoQLwccOhrq6Oi4uLsEBt3bo1U6ZMYdGiRRgYGHD79m1UVVUFL1UegYGBtGjRgpEjRwIfPY/+/v4sW7ZMUKUEMDMzQ19fHxcXF7Zu3cqCBQswMjJCT08PHx8frl69iq+v71dVD/1O/DdnXUyhZGdnM3PmTCZNmkSnTp3o0KEDU6ZMYc6cOWRkZJCRkcHOnTsZP348mzdvFlpRVq1alQkTJnDx4kUWL15MfHw8s2bNQl5eXniAb926VSjjyjPUS5YsIScnBy8vrwLns2TJEg4cOMCiRYuwsbEREtLEYjENGzZk8uTJmJiY0LZtW5mEuk/JS9KRSqUEBATg7e3N8+fPC60EqFixIg0aNGDVqlXMnDkTe3t73rx5828+VuCjcdDV1SUyMlKmY1aJEiXQ0NDA09OT+Ph47t69y61bt4T2wd+KqqqqUOPu7e3NiBEjqFy5MnXr1qVLly5IJBImT57MtGnThPO+ljNnzhATE8Po0aOFfgWVKlXCycmJS5cufTYh8M6dO9SvX1/IDSmMnJwc7t69i62tLbdu3SInJwf4aFRDQ0Px8fHB19c3X45BYGAgrVq1+iHGskePHjx+/Jhnz57JHL98+TIqKirf5IUxMjJi9erV7N69m0GDBhUb+SISExNDq1atKFWqFEOHDqV06dKCkYePeTndu3eXMbKKiop07dqV5ORksrOz6du3L7Nmzcq3EUlJSZHxBl28eBELCwsZI59H+fLladKkCVOmTEFXVxdbW1tatmyJk5MTDx484L/sHS7e0f9hxMXFkZubKxNfrFChAkpKSjx//pzBgwcjlUoxNjZm69atrFy5ktq1axMSEkK9evVkmsfk8ejRI3R1dWnTpg3u7u7Ex8eTm5uLkZER48ePZ+DAgQU+1OLj41m2bBnLli0rNONcJBLRrVs3IiMj2bRpEy4uLgWeJ5FI6Nu3L7du3aJy5co8efKEGjVqFNgY5eHDh0INvq6uLlWqVOHZs2ffFCsvCAMDA9asWSP0vY+JiSErK4uUlBScnZ0pW7Yshw4dwsbGhszMzC/KwhZGRkaGMGdlZWVSU1MFr0Fqairy8vLo6Oigrq7Os2fPvlqUCODEiRM0bdo0305FUVGRJk2acPjwYSHLvn379jJ/R319fV6+fEm7du04dOgQderUKfB74Ofnh56eHl27dmXVqlUEBgbSqFEjVq9ezdu3bzE1NSUjI4MjR45gYWHBgAEDkEqlXLhwgeXLl3/1PRWFkiVLsnfvXvr160ejRo2oWLEiz58/5+XLl/j5+f0nG5f8V9m2bRv169enU6dOZGRkkJKSQlRUFBUrVgQ+hpwKUtZUVVVFTk6uQK2MPBo2bMjatWtp27YtGhoaREZGfjaXSE9Pjxs3bsh0xJSXlxdU9v6rFBv6P4yyZcsKRj0vMSg8PJzc3FzOnDmDkpISTk5OwoPM09MTJSUljh07hpGRUb4EuZycHI4dO8bo0aOpX78+vXv3pkqVKsjLy38xQcrLy4uGDRsWqTa5ffv2rFu3Dmdn5wLdYz4+Pty7d49FixYJMr7bt2+nWbNmMslqt2/fJjw8XFjFv3v3jsjIyK9qo/olevbsyfTp05k8eTKVKlXiwYMHKCgocP/+fTQ1NbGzs6Nt27bo6+sTGhr6zXXUz58/F8qA8tyUPXv2JD4+Hn9/f+bPn09GRgaJiYnf3JBIJBIVWlEhkUhwdXUV5jBq1Ci2bdsm1CdPnDgRa2trRowYQaVKlZg/fz79+/fHwMAAkUhEYmIiBw8e5MaNG2RkZAjtlLds2cL169fR0NCQSeLr378/Cxcu5MKFC0RGRlKmTBk6der0TfdVFDp06MCzZ8/YtWsXERERDBkyhP79++fr4FfMj+Xt27eCN0lZWZkBAwYwa9YsTE1Nef/+PXJycly9ejWfTPfly5d5//49ubm5hSZ41qxZk9zcXCZMmIC2tjZv377N15/jU2JiYsjNzeXatWtYWFigra3NgwcPePXq1TeX5EVERBAcHIyent43Lca/B8XJeH8gBw4cYMyYMbRu3RqRSERAQACrVq3iyJEj6OrqYmZmJpwbEhLCxYsXqVChAk+fPqVXr15C8lVoaCiHDx9GXl6e0NBQdHR0hOx6b2/vAhPoPsXc3BwzMzPq16//xTlLpVJBPKOgzmZubm74+fkJMrRSqZRBgwahoqJC06ZN0dbW5vnz57x48YIpU6awcOFCKlSoQFRUFIsXL84Xu/s3SCQS9PX1ad26tZCoOHHiRPT19fH19eXOnTs8e/YMT09Pdu7cWaQqiH+Sl+B479494cG0ePFili5dioGBAf369UNTU5OdO3eioaHB4cPf1grizJkzODg4sHDhQpkFVmZmJqNHj2bYsGFCtUVYWBiLFy8mPDxcWLydPXuWiRMn8uLFC0QiEerq6ohEIlRUVEhMTEQsFtOzZ08sLS15+/Yty5YtY8CAAaxdu5ZNmzbl83Y8evSI1atXY2BgwOnTpwt0sRbz3yEjI4P379+jra1daHz75MmTjB8/nrlz56KkpIREImHhwoXk5uYSERFBQEAAnTp1om3btrRq1YqsrCxOnDjBo0ePKF26tJAs+8/yxuzsbNzd3YXS2bp165Kens7Dhw9Zt25dvudXSkoK48ePR1dXl1GjRjFt2jRKlChBTk4O3t7etGnThvj4eBYsWMDLly8xMTFh2rRphYbnJBIJjo6O7N69m9q1axMeHo6xsTFHjx796ryTf5uMV2zo/1D+/vtvdu7cSXZ2NkOGDKFevXpMmDCBV69e0bdvX+E8X19fcnNz2bFjB+vWrRNc8yKRiFKlSjF8+HBWrFjB9OnTqVatGjk5OaxYsYKmTZuyYMECSpcujUQiYdmyZYLxd3FxoXv37tSrV49evXoJinVfYtasWezevbvA+Ojly5fp06cPc+bMQUtLi0uXLnHmzBkuX77M7t27efv2LXXq1KFv376oqanx7t07nj17Jrjuvzf79u1jwoQJwgo9LxlOKpXi6OjIrVu3hKz8xYsXy7gCi4K/vz8RERGcOnVKOPbw4UN69erFy5cvUVBQIDc3FzMzMyGBrmrVqtjb2xepzDEPiUSCpaUlmZmZ9O7dmwoVKhAeHs6OHTuIjY1l7dq1MucvWbIEU1NTNm/eLByTSqWkpKQIrtSXL1+SmZnJu3fvGDFiBAsXLhTOPXXqFO/fvyc0NJQZM2Zw69Ytnjx5goaGBq1atUJTU5P+/fuTmpr6zSGPYr6N0NBQHj58SLVq1f61ml9ubi7Tpk1j06ZNiMViSpYsibu7u1Ci+SkSiQQbGxuuXLlCo0aNCA0NRV1dnalTp7Jy5UqWLl1K9erVmTt3LqdOnUIikVC6dGmmTZuGoqIia9asISIiAktLS4yMjJBKpTx48IDz58+jra1NWFgYCxcuFJ4DeZ6wMWPGCHk+YWFhbN68maSkJNasWUPfvn1JS0sjLi6OSpUqoaioyJMnT2jWrBkNGzbE2NhYUG28cOFCgR6F7du3s2TJEqZNm4aqqiq5ubl4enpSq1YtNmzY8FWfZ3HWfTEFcubMGdauXYtEIuHu3bscPnwYBwcHGjduTKlSpahXrx6PHz/mxIkT+Pv7Iycnh6OjI+PGjePdu3dIpVK0tbU5cuQIBgYGQl11YGAgT58+JTo6mt27d+Pk5ERubi5HjhyhX79+pKWlYW9vj6KiIpqamkWOa0mlUpn+7P/E3NwcJycnJk2aRMmSJZGTk8PX15dKlSoVqAinra0t487Oysri8OHDXLt2japVq2Jrayu4C7+FvMYtjo6OMpn/Hz58IC0tDXV1ddTV1RkzZgybN29m8uTJRe7KFh0dzaFDhzh69Khw7N27d7Rp04auXbvi4ODA3bt3OXjwIMHBwbRr1w4zMzMiIiLo2rUr9vb2hSoi/hOxWIyvry9z5sxh3rx5pKWloaWlRWZmpkzCYR7Kysp4eXlhYGDAhAkTAISd/IEDB9i/fz/q6urY29ujqalJWlqaTL1zWlqaINU8f/58QYAoOjqaKVOmMHjwYDQ1NYuN/E8mTySrZs2ahIWFMWLEiM8KNn2JJUuWcPr0aSG7/fHjxwwfPrzARYRYLGbp0qW0atUKHR0dmjVrhpGRESKRiNTUVNTV1alevTpbtmzh0KFD7Nq1i9evXyMvLy9sLJ4/f46fn5+gclm1alWcnZ159eoVERERMov90aNHM3HiRGbOnEnJkiWRSqVkZGQglUqpW7cu06ZNY9CgQcjJydG4cWMcHR0FjQ0dHR0hg79p06ZMmzaNGzduyHhJ89i+fTtdunQRvstycnL07t2byZMnf7Wh/7cUG/o/EF9fX9zd3Vm5ciVaWlrs3r2bIUOG4Ovri7+/P7Nnz2bVqlUYGBhw6tQpmdiTSCSiXLlywv/uBVgmAABSSklEQVTLlClDfHy8YIi3bdvGvHnz0NHR4f3798yfP58PHz4wZ84cIVP2w4cPbNq0iV69erFnz54iZTA/ePCAMmXKFGhc8pgyZQojR44kLi4OXV3dImc1p6en06ZNG9LS0qhXrx6nT59m+fLl+Pv7F5jMV1S6deuGlZUVpqambNy4kWrVqnHt2jVsbW2FHIEFCxbw4MED3NzccHBw+GK4IzIykhUrVrBgwQJatmwpHPfz86N69eqCKI61tbXwgMk7ZmJigrm5ObNnz8bS0vKzAkefoqKiwty5c6lfvz4vXrwQ/s55fbzzHpKRkZH8/fffGBoaMnPmTCHp8Pbt20KstGzZspiamtKzZ0/c3NzQ19dn8+bNtG3blsjISC5cuMCVK1c4f/486urqTJo0SVgENGrUCA8PjyKVChbz/UhMTMTJyYn58+dTsWJFUlJSmD59Oj179ixS2K0g1q9fz8SJE4UQj6GhIVZWVmzevJl169blO9/Q0JCqVauSmpqKgYGB0JFSLBbTvHlzXrx4QZs2bShbtiz6+vrExsYyfvx4Jk+eTI0aNahevbqQk/QpR44cAT52caxZsybwsVqkRYsWDBw4UKg8qlixIrdu3UJFRYXRo0dTtWpVsrOzuXv3LvPmzWPevHmIxWKZzYNYLBZKeAsiMzMz3zNKUVGRrKysb/pM/w3Fhv4P5PLly5iZmQnu4q5duwqSjyYmJl+lSW9ubo6amhrbt2+nZMmSGBsbo6OjA3xsotOyZUtOnjwpk6Wcl+A1aNAgpk+fzps3bz6b8S6RSDh16hQODg5fzHbW1NT86rjt5s2byc3NZfr06YJROXv2LBMmTMDPz++rxvon6urqBAYGsmrVKqKionBxcZHpuiUnJ8fhw4exs7Nj2rRpWFpa0qpVq3wJX1FRUZw/f56rV6/i5ubGkCFDZF4XiUT5tP/FYnG+nW+pUqWExMaiGPrMzExmzpzJli1bqF69OhUrViQ7O1soq5w1a5YgWXv37l2GDBnCvXv3EIlETJkyhbZt2zJ06FDgY1LV2bNnOXPmDG3atGHWrFkEBwfj4uLC/v37KVGiBIcOHcLIyIgyZcoI9ft51K1bF0VFRRnRpmJ+PG/evEFLS0vIci9RogT6+vqEhYV9s6F///59viRcTU1N4uLiCjxfJBJx7NgxBg4cyOjRoxGJRNSuXZvTp08jFosZMGAAbdq0oUOHDsJ77ty5w+rVq1mzZk2BrvMdO3bw6NEjVFVVWbBgAc2aNePDhw88ePBAyNYPDAwkNDSUpk2bMnr0aJlNj5KSEs2aNaNJkya4ubnx9u1bbt26hYWFBdWrVycoKIjXr1/TsGHDAu+pR48e7N+/H2NjY2F+p06dkmm9/bMoNvR/IBUqVODKlSuCiMnLly+/2U0tFos5f/48s2bN4tixYygqKsqIo8TFxdGwYUM2bdrEwIEDSUtLw9vbm40bN1KiRAlWrlzJrFmzmDp1aoFSrnmCOwoKCp9tS1kUJBIJZ86cYcOGDYSGhqKqqkq3bt3w9/enZcuWMkbFwsKCIUOGfFHopShoaGgwf/78Ql9XUFBg+/btBAYGsmbNGpycnDAyMkJdXZ3c3FxiY2OJjo7Gzs6OdevWFSg8ZG1tjbOzM76+vtSrV487d+7w+vVrIUcgPDycQ4cOERYWhoaGRpFkZjMyMmjbti1ZWVnMnz9fxpNja2vLgwcP2LBhA9nZ2RgbGzNgwAAePXrEvXv3GDduHPXq1ZP57OrWrYu1tTWPHz9m9erVpKamoqSkREZGBqGhoaioqNClSxf69u1LiRIl8tX+S6VS5OTk/lVIpZivp2rVqiQnJ/PkyRNq165NdHQ0T58+LbRPRlFo27YtFy9eFIxabm4uV69eFTYcBVG5cmUCAgKEhlZ5C4+8JNvx48fLnN+oUSMOHTrEw4cPqVu3rnA8ISGB4OBgrl69yoABAzh27BjTpk3j5cuXKCsrY29vT3JyMjNnzqR8+fIcPXoUS0tLGSOflZXF9evXef36NZUrV2bUqFE4OTmhra3NwoULyc7ORlVVldOnTxMeHs7Jkyf58OGDkGtSuXJlHBwcOHPmDDNmzMDY2JjXr1+TkpIiiGD9TIqT8f5A0tLShN1c2bJluXPnDgcOHMDKyupfjZuTk0ODBg0oW7YsTZs25cmTJ1y7do3g4GA2bdqEt7c3SkpKuLi40L9/f+F9GzduZMqUKTRr1ozWrVujra1NZmYmd+7c4eLFi+jo6HDs2LFCW+oWhQ8fPmBjY0N4eDiWlpbo6emRlpbG9evXBZ3+T5uVREdHM2/ePKHpSFZWFseOHWPt2rU8e/aMzMxMNDU1sbGxYezYsQW6Bb+V2NhYLl++TEJCAgoKCpQvXx4LC4vPlit6enoyefJk5OTkhKYzFhYW9O3bl+joaGbNmiW4Wp8/f87WrVs5fvw4FhYWhY7ZqVMnoqOjZRTH/klcXByzZ8/GwcEBRUVFli5dyuzZswWvTmG8e/eO6dOnU6dOHe7evUuLFi1QUFDg6tWrVKpUCQ0NDZKSkpg6daoQzjh//jy3bt0iODi4uI79J3P27Fn69euHhoYG8fHxuLq6CrHobyE0NBRzc3OqV69OhQoVhPKykydPfnXb4Zs3b2Jra1vgYnrJkiUkJydjbGzMnTt3SE5OJicnB4lEgrGxMbGxsQwePFhmIZDH7du38ff35/nz57i6ugrPn5SUFObOnUuZMmUwNDTkyZMnREdH06JFCx4+fEiTJk2oXbs2pUqVYu3atcTHx1O7dm0UFRVJS0sjJCREyCmysLDg4sWL3Llzh2rVqmFjY/NNQkrFWfef4X/R0L9//55jx46RkpKCWCxGLBZjYWFRYMnat5CYmMiyZcu4du0ahoaGTJ06VUjU+xxRUVGC3G50dDSKiopUrFhRWClHRETw9u1batas+U265v379+fNmzfY29vn280+evSIpUuXCsmIycnJrF+/ng4dOrBo0SKOHz/OiBEjqFChAhYWFtSoUQNFRUUSExO5fv06ly5dwtzcnJ07d362b/2PYu3atSxduhQnJyfBwD58+JCNGzeyZMkSDh06hLKyskw1xZUrV3j8+DHnz58vcMydO3cybNgwjIyMSEpKolatWtjY2BRYHXDu3Dnu3r1LUlISrVu3pl27dkWa9/Xr1/H09GT06NE0btwY+Pi3WL9+Penp6XTs2BF/f39MTEyIjY0lMTGRc+fOfbfvajFfR3JyMi9fvqRy5crfpbdAUlIS+/btIyIigubNm9OhQ4ciNzT6lNTUVCpXrixINOeRV4Laq1cvDhw4gIODAxoaGuzevRtVVVWePn2KVCpl06ZNBS4cc3NzsbOzo3z58ixZskQ4vnv3bj58+CCz0PHy8iIjI4Pw8HDu3btH586dSU1NpWPHjtStW1dmoZyRkcGVK1fw9fXF1taWxYsX/+uFa7Gh/wz/a4b+7t27WFtbU7t2bRQUFAgODmbv3r107NjxV0+N5ORkRowYwZkzZ2jatCnly5fnw4cP3Lx5U5C+rVixIpGRkfTt2xcPD48vJq7lERERQd26dT/7nr179+Lv7y/ordva2rJq1SoOHDjAhAkTGD9+vJCs80+ysrLYtWsX0dHRXLly5aca+7i4OPT19Vm0aFE+UZw9e/Zw69YtIUSRZ0zhY+Lc6tWrGTNmDEpKSnTp0kXwSqSmplK6dGmUlJQYPHgwlSpV4saNG1y7do0lS5bkUzFMT09nxIgRyMnJsXHjxiLL+mZnZzNw4ED27NkjU3Fga2uLnp4e69ato2zZsly7do3y5cvToUOHr97tFfO/wcKFC9mxYwfDhg1DX1+fqKgodu7cSd26dQU3ep7HMjk5mXHjxmFmZkZQUBCbNm0qdNy8plVLly4Vjk2ZMgU7OzuZsuCXL1/i7u6OnJwclSpVQktLi8GDB39W+z45OZnly5fTr18/5s2b96/uv7i8rhiBMWPG0Lt3b1q3bg183D2NGDGCV69eIRaL2bp1K9evX6dChQpMnDjxq2u780hMTCQrK0smpvs5UlNTadWqFdra2nh4eAiGIisri6tXr9K+fXu6dOmCvLw8KSkpbN26FTs7O3bv3i0zzrt37wgPDycjIwMNDQ0MDAxQUFDg0KFDNGnS5LMLgzZt2nDt2jWuXbtG2bJlKVGiBMHBwTg6OjJ16lQ+fPhAcHAwtWrVkklwi4uLIysri6FDh7Jt2zYGDRr0VcmM/5atW7fSqFGjApXvBgwYQJ06ddi1axfXr1+XMfQ3b94kNTWVwMBAsrKyWLhwIV26dMHT05M9e/agoKCAk5OTUHWgr69PWloa58+fz5cMp6ysjKKiInXq1Pkq7X4FBQU0NTUJCQmhQYMGAIK2fHh4OEpKShgZGf2rWHAx/xvMmDGDUqVKsXz5cmJjY4XS1dmzZzN06FCZRNXc3FxEIhFDhw7l1q1bMnK6nxIWFoaysjKxsbFCGR98TEZMSEiQOTchIQF5eXkUFBTIzs7+opGHjzLLkyZNYsaMGXTr1u2blfW+B8WG/g9BKpVy69YtmQ51hoaG5OTk8Pr1a5YuXcrly5dp0aIFQUFBmJqacvfu3a/KYH///j1Dhw7Fz88PsViMgYEBu3fv/qIgTl4r2WHDhsm4sG7evIm2tjbdu3cXjv2zJ3jlypXx9/fHw8ODixcvUqlSJRQUFEhKSiIzM5NRo0aRlJT0xV22lpYWSUlJMlK4rq6umJqa4urqSokSJVBTU2PNmjX07NkTc3NzPDw8CAsLQ0lJCWVlZcaOHcvy5ctlSnUiIyPZuHEjFy9eJCMjgypVqjB8+HA6duxYZDdlRESE0Iq3ffv2Mobv0qVLn31A1K1blzlz5uDs7Iy7uzsNGzbkyZMnXL9+nQULFgjVDv3798fd3Z0pU6Zw4sQJ0tLS8hlYIyMjbt26le8aAQEBADKNRopKw4YNcXNzw8LCAkVFRS5dusTIkSOJiopixIgRhISEFPrAvHHjBkuXLiUtLY2ePXsycuTI4tj9/ygikYhx48bh4OBAeno6ysrKwvdm5MiRtG/fnpIlS1KqVCn279+PpaUlCgoKWFhY4OnpyYwZM2S8SllZWezfvx8nJyfu3r0rkzhoZWXFvn37qFSpEpUrVyYqKoo9e/aQk5NDXFwco0aNKnIXOw0NDSwsLBgzZgy+vr6/TOmx2ND/IYhEIqpUqUJYWJhghOLj48nIyCA7O5sDBw7g7u4u7MjWr1+Pl5cXzs7ORb7G8OHD+fDhA+vXr0dBQYFz587RsWNHnj59WugXPyMjAy8vL+bMmZPvIf3ixYsCjZiysjIGBgZcvXoVLy8vXrx4Qdu2bVmzZo3MjvLVq1f4+/sTEBAg7BgL482bNzJZ/3FxcZw4cQKRSMTYsWOFMqJ3796xcOFCgoKChH7XcnJyBAQE4Obmhrm5OevXr2fVqlVMmjSJrVu30qJFCyGZLioqiilTpjB+/Hh8fHy+qG29aNEiYcGhoKDA0qVL+euvv9iyZYvQZ/tLDxV1dXVatmxJeno69+/f5+HDhyxfvlzGY6OsrMzIkSOZPHky2dnZaGpq8vTpU5l4+NOnTwssg/Tx8aFZs2ZC17nCePDgAQcOHODNmzfo6+szYMAAypYti7y8PB8+fEBVVZWZM2eio6ODVCpl1qxZ+Pv7Y2lpmW+soKAgOnbsSM+ePSlVqhRLly4lOTm50KZHBSGVSklISCAtLQ1NTc0f0u62mJ+LSCTKV1LasmVLhg8fzq5du9DS0qJhw4bY2NgAH0vkUlJSBG2JihUr8vr1a86fP0/jxo1xdnbmwYMHQh5TjRo1aNKkCYmJicyfPx+xWExubi56enpERkZSrly5z2rlF4SlpSWOjo7o6elx7NgxWrVqJfP68ePHmT17NmlpadjY2LBkyZLvHsIqblP7BzF//nzWrVuHn58fly5dYvny5UyYMEHIIP/USGpra+dzT32O5ORkzpw5w4ABA1BWVkZOTo727dsjkUgIDAws9H1Xr16lQoUKBZbWqampCVnvnyKVSomNjRWU0xYtWoSVlVU+t7Guri5Dhw5l+vTp3Llz57MqfBcuXJDJuj979ixly5alXr16MrXC2traQgvTfv36CfXkFhYWKCgooKury9GjRxk7diznzp1j9erV2NraUrduXWrVqoWFhQVz586lc+fOtGnTRuj8VhDnzp1j/fr1LF++nBEjRjBkyBBWrlzJzZs3Wb9+PQD16tX77Bh5hIeHY29vj5mZGRYWFgWGZTQ1NdHV1UUqldKpUydWrlzJrVu3ePPmDYcPH+bWrVv5KjOkUilv377FxMQkX0vXT4mMjMTd3Z3OnTvj5uZG06ZNWbx4Mc+ePSM7O5vhw4fTp08fIZlQJBKhp6dHaGhogeN5enrSoUMHLC0tMTU1ZcyYMaxZs+aLnwN8DBVt2LABIyMjqlatiqmpKdra2lhaWnL8+PF8egR/KikpKdjZ2aGuro6GhgaOjo5kZGT81DlIpVJevHhBcHAw6enpP+w6K1asoEGDBigqKqKtrc39+/fZtGkTgYGBXLp0CXd3d6Kjozlx4gQJCQls3LiR/fv3Iycnh4mJCbt27WLlypUcOHCAuLg4QYtiyJAh1K5dm8zMTCpXrkyTJk2+em4aGhro6OhgY2NDx44dUVVVpVKlSixcuJCAgACGDRtGhw4dGDlyJBcuXGDixInf/fMp3tH/Qdja2lK5cmU2b95MRkYGrq6u9OjRg4yMDDIzM7l27RpmZmbExsZy5cqVryqfycnJQSQSybi/RCIRysrKn+2FnpSUVGiL2pYtWzJz5kw6dOggk0179+5d4uPjqVOnDsOGDfvijrZWrVq0atWKxYsXM3v27HxiNBcvXhSEW7Kzs1FQUBD0/AvSwc879ukOViqVkpubi4aGBnFxcRw9epSlS5cWKtXaokULkpKScHR05OzZswWes379ejp37ixTVqisrEyvXr1Yv349Dg4OjBo1ivr169OtW7cCW3XCx1jju3fv6NKlC/fv3y905/3hwwfS09MpU6YMWlpa1K9fny1btqCsrEzt2rWZO3duPtfi8+fPUVFRoUSJEsTGxhIREYGioiJ///03CgoKNGjQgJIlSxIQEIClpaXwIGzbti2PHj0iKCiImjVr8vTpUxnpU6lUyrNnzzAwMChwrrm5uTLfNXl5eaGs8HO8evUKKysrtLS06N69O8bGxojFYrKysggMDMTZ2RlPT0+8vb2/Kt/gv8jAgQNJTk5m1apV5OTksGvXLhwcHNiyZctPuX5ubi5Dhgzh1KlTaGpqkpGRwZkzZ/6VGmVhKCoq4uvry4EDB9izZw/p6em0a9cOb29vSpcuTbVq1QrshJjn8Xn69Cn6+vqEhIRw7tw55OXlycnJoXz58owePZqKFSsyd+7cb/7OqKioUKFCBUHPo02bNuzYsYNjx47Rrl07YbNhZ2fHvHnziryoLSr/s4Y+Pj6eI0eOkJKSgrm5uaD+9TOIjo7G29ubnJwcunbt+l1bqLZt21aQRM1DRUUFX19fbGxs2LlzJ5mZmSxevLhAl2lhaGlp0aBBA3x9fenSpQsikYjg4GBiY2ML1Hn+9H2FeQ7Kly9Pz549mTFjBlZWVlSqVImQkBDu3btHVlYWgwYNKnIsbNiwYcybN49x48bRpk0bqlatSlpaGhcuXODdu3dUqVIFe3t7UlNTGTlyJGXKlEFNTY2///5bcPPl8fDhQypUqMD27duxs7MTHiIKCgpUqFABsViMpaXlF/XYLS0tGTduHC9fviywBDEyMrLAkENeXBCgWrVqDB48mFWrVjFx4sR8xv7t27d4eHiwfPlyFBQU6NKlC1u2bKF3797IycmRnZ3NrVu3OHfuHGFhYUINr6enJ506dcLExITw8HAaN26MmpoaW7Zs4caNG0gkEipXrsybN28oWbKk0BJ49erVJCcnU7t2bVJTU/Hy8qJHjx5kZmbmW9CpqKhQr149HBwcmDJlCk5OTqioqHD06FGCg4ORSqVEREQUKFpka2srlPuVKlWKffv2CQp8hZGYmEibNm1o0aJFvoe6oqIirVq1wszMjPXr19O/f3+OHDnyx8b8Y2JiCAgIYN26dcLf3M7ODkdHx3whsB/Fxo0buXfvHm5ubigpKXHx4kV69uzJkydPfsj1FBQUGDhwIAMHDvziuefOnWPOnDmEhIQISp6NGzemXr16HDlyhA0bNmBlZSWUlJYqVYqUlJRv9kpkZGSgoqJCq1atWL9+PUOGDGHMmDE4OzvLbDbS0tK+qc7+S/xPGvodO3bg6OhIvXr1UFdXZ8WKFZiYmHDkyBGZH8C5c+fYvXs3ysrKjBgxokia7V8iPDycpk2bYmhoiKKiIosWLcLPz++LMeZ/S/369QkPDycmJgZNTc0il659ys6dO+nYsSNXr14V2pAePXoUJSUlkpKS2LFjB35+fjJCMH379iU+Pp7IyEihU9SntG/fntq1axMQEMDevXuxsLBg3LhxXLp0qVBPQEGIxWLGjx+Pi4sLtWrV4ty5c0RERNC6dWt69uwp/Hhev36Nj48PUVFRZGdnk5OTw/79++nSpQvKysrcvHmT48eP4+Liwvnz5wU5zmrVquHi4sKLFy/Izs4ukryskpISpqam+Pr64uDgkO/1vMZC/6wbf/TokcyuZ/Xq1UyYMIEJEybQokULatWqRU5ODvfv3+fu3bu4uroyePBg4KNamImJCZs2baJdu3a4u7tTtmxZOnbsSMOGDYVdckREBGfOnCEoKIjGjRtz5MiR/9femYfXdLV9+F6ZiIigIaYQQ2Iq2ghCzSliSlFzUV5qrhDUPNMGEYrW8CIxhRRtzUMMRSgiooaggkgQUoTM8/r+OCf7y5E59NWk+76uXNlnnT2stdc+e03P83sICwujUaNGuLq6IoTg559/5tWrVyQkJDB48GC+//57TE1NKVWqFCEhIZQtW5bKlSuze/durKysuHz5Mvb29pQpU4aHDx9y9uxZTp8+TePGjYmIiGDWrFlK3IFJkybx8uVLJRbAkiVLdO5B8+bN2b59OwsXLiQ2NpYBAwYwbdq0bO/3ypUrqVKlSrYx7A0MDBg1ahTTp0/H19dXJ55AYSImJoYiRYrorPUaGxsjpSQhIeF/0tD7+flhb2+vCEG1atWKDRs2kJCQkK041N+Nl5cX48eP54svvuDrr7/GwMCA+/fvs3XrVh48eICVlRWurq707t2b4cOH06RJEz7//HPl3ZDeeDg3vH79msePH1OpUiWio6NJSkoCNIMgIQSnT58mISGBZ8+ecf/+fSpUqEDr1q1JTk7GyMgo2/gfueVf50d/48YNWrVqxcyZMxXDo5SUFH744QdsbW1ZuXIlAN9//z2LFy/G0dGRxMREjhw5goeHx1vrFA8bNozXr1/Tq1cvAEWZKSthk38aUkouX75MXFwc9vb2PH36lPnz57Nr1y4aNGhAw4YNMTU1JSUlhfDwcM6ePUt4eDimpqYsWrQoy97q1atX8fDwICQkhBYtWuDg4JCvUJlubm60atWKHTt2MHfu3Eyt8aWUbNu2DV9fX4YOHcr58+e5cuUKAJUrV6Z///7UqVMH0PTEk5OTleWAxYsX88cff+Dp6ZmrnreXlxeNGzdm+vTpGb67ceMGLVu2ZMyYMXz44YcIIQgJCcHNzY25c+cybNgwnenr4OBg1q9fz7Vr1zAwMKBly5YMGTIkw3R7TEwMnTp14sKFCwwePDjDDE96wsLC+O6777C1teX69eu4ubkpo1wpJS4uLowdO5avv/6a8uXLY2lpyeeff67kFzQvshMnTrB//34SExOV5ZylS5fqyJY6Oztz7949pVMCmnXkCRMmEBAQwJkzZ7h79y6NGjWia9euuY72B5plFktLSyZMmJArY6kjR44QFRXFrl27cn2NgoSUkrp169KqVSvatGmDlJIDBw4QHBzM2bNn38k1YmJimDp1Kt7e3hgaGjJ06FBmz56t1NusWbM4d+4cI0aMQAhBUFAQ7u7u/PXXX+9tJiU2NpZKlSoxbdq0DFLTiYmJfPPNN9SoUYOrV6+ycOFCFixYwLx58zA3NyclJYWxY8cyderUTGWqs+KXX37h2bNnjBw5kpMnT+Lv78/kyZO5cuUKP//8szLQSZPODQsL47fffsPS0hJHR0eePHmCl5eXKpiTFZk19GPHjiU8PJyePXvqpL948YKpU6cqD6GFhQWzZ89W/C8DAgI4ePAg165de6s8OTk5Ub16dZo2bQpo/Ip3797N1atX3+q874OAgAA6duxIs2bN6NChQ5auI0FBQWzfvp3w8HBmzpyp46aVmprKuXPn2L59O/v37+eTTz7B2tqaUaNGZToDkBMbN27k/v37ODk5ZWs4k5SUxOjRo6lcuTIzZ85URvfZTcffv3+fpUuXoqenx+zZs3OlI7BmzRr69OnDyJEjM/3+6NGjDB8+HD09PQwMDHj8+DGGhoYUL16c0qVLc/To0Ux9gLPj1atXVKpUiV69eukEAXkTKSVSSsLDw5k8eTI2Nja0adMGGxsbxW/fw8MDR0dHjh07xsuXL3F2ds5yOeXevXvMnz+fypUr8/z5c6pWrcrixYtp27YtQgjs7Ozo2rVrhnV5Nzc3goODqVatGlWqVOH69euUKlUKHx+fXIervXz5Mr1799YRPsmO6Ohoxo4dS2xsbK72L4jcuHGDLl26KLLJRYsW5dChQ+9sqbBHjx48f/6cnj17kpSUxLZt22jdujXLly8HNB3AZs2aUaxYMczNzbl48SIbNmzI84j4XeLl5cWKFSuy1Nw/ceIE165do3///syaNYuqVavSvn17JXDNjh07ePjwIVOmTMlVZyUyMpIpU6YwefJkKlSowKRJk6hTpw7Fixfn/Pnz2Nvb8/z5c8aNG6czcEhKSmL16tXKTGWfPn1UwZy88ODBg0wlNj/44AP09PR49eoVQgiSkpJ0GqTq1avz4MGDt75++/btWb16NXXq1MHQ0JC9e/fmaa38n8Kff/5J+/btGTRoUI6WqDVq1GDWrFmsXbuW6dOn8/HHH1OuXDkSEhLw8/OjUqVKHD16VFkaSXMryw/R0dH89ddfOdpcpPnY+vn54eXlRf/+/bMdoT958gR3d3fWrl3LyZMnOXPmjDIrkxWxsbH4+/uzY8eOLPfp0KEDDx48UMJhpgXQEEKwa9cuBg8ezLFjx7Iv9BssWLCAIkWKZCpVm5SUxMWLF/Hx8SEoKIiUlBSMjY0RQhATE4Ofnx+enp7Y2toybNgw7ty5g5OTEwEBAbi5uWVrM1G9enUGDRrE5cuXmTNnDjt27MDJyQlHR0dlOj08PFynoZdSEhoaSu3atRkzZgygCf/r7u7OunXrlJj3OZGd0WdmmJiYkJCQoBhnFkY+/PBD7t27h5+fHwYGBtja2uba5iUnwsLCOHHihI4NwMiRI5k0aZJiL2JmZsalS5fYs2cPr1+/ZsmSJTm6m/7dhIaGZttxrlixIqdOncLCwoLSpUtTo0YNfvjhB1JSUpSlkMTERDw8PBg8eHC29zM6OprFixfTokULkpKSlKWrlJQU7OzsmDJlCl27dmXlypUZ3j2GhoaMGTOGsWPH8ujRo7cud6Fv6KWUHD9+nCNHjlC2bFmsrKwICgrK0Dg9fvwYAwMDSpcujb6+PuXKlcPf319pMM6ePZut0VluGT16NMHBwYwbN47U1FT69OnDokWL3vq8/0uklPTu3Zvu3bvn2t1ET0+PkSNHEhMTg7m5uaKyNm/evAz2CWlGYDkFTsmMx48fU758+VyJ1ZQvX55mzZrx4MED3N3d6dKlCzY2Njo99ZiYGM6cOcP+/ftxdXWlV69e1KlTh1atWvHpp59mK4Bx4MAB2rdvn6lrYXr09PSws7MjKChI5+Xh6OiYbbSvrNi3bx8dO3bM8BIKCwvD1dUVc3NzxRDvyZMnfPvtt8ycOVNZC4yPj2fFihVMnz6dKlWq8Pvvv+Pg4JCrqfTmzZuzY8cOXr58yYABA7hy5QoHDx7k+fPnxMTE4OXlRZ06dShTpgypqakcPnyYyMhInVGenp4erVq14tChQ7lu6EuUKKFIKeeG2NhYDA0NC20jn4a+vj729vbv/LyRkZEUK1ZM5/6ZmpqSlJREYmKikm5iYqKzVPO+qVixIk+fPs3y+ydPnlCqVCkePHhAWFgYISEhynJQVFQUJ0+e5NixY1y9ehVXV1ecnJyoW7euzjsjMTGRc+fO4e3tTUJCAmFhYfz+++907tyZ6tWr4+XlxdOnT/H19cXe3j5LeykjIyNatmzJuXPn3rrchb6hHzlyJEeOHKFp06Zcv36dy5cvk5ycTIMGDRSDp+joaDw8PBTDDNAEMfjss884c+YMiYmJPHv2jFOnTr11fvT09HBzc2PJkiVKWM6CxsWLF3nx4gVt27bN03F6enr07t0bd3d3du3aleVLdujQoSxdulRZ3sgtISEhREVF5fqexsXFUapUKbZs2cKPP/7I6tWr0dfXp0aNGoocb0BAAO3atWPixIls3bqVGTNmEB0djYGBAXPmzGH69OkZGvKUlBT279/P4cOHlYAZU6dOzXGqz9TUlNDQUMVCPzQ0NF/BRSIiIjJ0ntIM37p3767jK58mepTe4CdNXMfFxYVLly5ha2vL1KlTc3XtIkWK0KBBA27evEmbNm345JNPSEhI4IsvvgBg165duLi4ULVqVUVzv0KFCkREROjMoL148SJPEs0NGjQgKiqK0NDQTF0m3+TcuXM4Ojrm+vwqulhbW1OsWDEuXLig/E6PHDlCkyZNsnQD/SfQvXt3vv7660yNg5OTkzlw4AC1atVi0aJFdOrUid69eyu/W1NTUwYMGIC9vT2urq5YW1vj4eFBamoq1apVw8TEhNevX3P16lXMzMyoXbs2ERERjB49GnNzc6XjPXnyZMaPH0/t2rVzXEYpU6YMoaGhb13uQt3Qx8bGsnfvXpYsWaL0mqpUqcKVK1fYsGEDZmZmlChRglu3bjFo0CBmzJihHNuiRQsePHjAoUOHKFq0KB07dsyXpXpWvKsptPfBypUradu2bb7KUKVKFczNzdm/f3+Wa3Wff/45zs7OPH78OFOltqxIs5Jft25dllb+6bl8+TKLFi3C2NiYiRMnMmHCBE6dOsWdO3eIj4+nVKlSODo6smLFCoKCgmjTpg39+vWjaNGixMXF4e3tzTfffIONjQ2ffPIJRYoUISwsjOPHj5OUlMSIESMoU6YMa9as4ejRo1SsWBE7OzsGDx6sMxMQFxfHoEGDuHPnDjdu3ODJkycYGRmxb98+mjdvnq/p5Tef1Z07d9KyZcsMgjihoaEZlLpAYxFsYWHB8+fPiYuLy/VaOUCxYsUUbYXY2FidF3+vXr1o1KgR8+fPx8fHB3t7e9asWcOKFSsYN24cZcuWJSgoiAMHDrBnz55cX9PIyIjhw4dz9OhRhg0blu2+ycnJnDx58n/mT14Y0dPTw9vbm65du3L06FESExMRQnDkyJF3cv7Q0FBOnTpFsWLFcHR0zKCNkV9MTExYtmwZ06dP58svv+Tjjz9GT0+PR48esXnzZqKionj69KmiZ5FZ57xGjRq0adOGuLg43NzcuHPnDsuXL6dIkSKUKVOG/v37c+PGDW7cuEHt2rWVKKJpFCtWjEqVKnHz5s0cZ8nSZhjeloLb2uSC6OhoGjRooPPSa9q0Kbdv3yYkJIQffviBadOm8eeffyqjufSYmZnRr18/unfv/k4b+YJMUlJSpjKOeaFly5Z4enpm+X2RIkWYMmUKa9asybWSl7+/P1euXGHs2LF89dVX7N+/n+wMTW/evElERISOK5aenh4ODg6MHj2aCRMmcPXqVdavX8+ECROwtrZm27ZtuLi4KGFWR48ezfr167G2tsbb2xsfHx8sLCyoXbs2//nPf7C3t+f27du8evWKkiVLUqJECfbt20fNmjV1jC/79evH/fv3GTJkCIMGDSI5OZnY2FgmTpzIixcvMnXNy46SJUvqGJlFRUVx+fLlTKMYlixZkrCwsAzp8fHxvHjxgrJly2JmZpat6uCbREREYGJiQmxsLOfOncuwvGNlZUXVqlWJiYlBCMGoUaMYOHAgs2bNYuTIkfzwww8sX748z65v48eP5/bt29l6sKSkpLBhwwbF8FAl/9jZ2fHw4UNWr16Np6cnt2/ffmtXsNTUVJydnalXrx4bN25k8eLFWFpa4u3tnen+ycnJ2f7OM+M///kP69evZ+fOnQwdOpQxY8awcOFCatWqRefOnTE2NqZ58+bZDmRatmyJn58fQgjMzMxISUnB2dmZly9fcuLECaytrenbty9mZmZMmTKF9evXK3mNj4/n6dOnODo64ufnl+WSU2xs7DtzAS3UI/oiRYrw8OFDHUGOtKhZffv2ZerUqXmefv638/LlS4oWLfpWPWwLC4tMg6ekZ+LEidy5c4dvv/2W8ePHU7p06Uz3k1IqVvuHDh2iXLlyTJkyhWbNmrFz50569eqVodd88+ZNVq9ejZeXV5Y96m+//ZaDBw8ye/ZsNm7cSFxcHNOmTaNkyZKcOXOG+fPn8+2332Jubk6fPn3o1KkTCxYswMrKikePHhEXF8fDhw/Zt28fixcvVqbg27Rpg6+vL7169eLPP/9k//79nDhxAgMDA8UY9MWLF/Tq1Yt69epRvXp1xo8fr6yX5wYHBwf8/PwUG4fLly9Tv379TF0NHRwc2Lx5M40aNdKp0z179igRBz///HN8fX3p379/jteOjIwkMDAQBwcHFi5cSOPGjTOdWTE0NNRR8GvRogX37t3j0aNHijhJ+ohi6Xn48CHTpk3j4sWL1K5dmwULFvDxxx9jbm7OiRMnaNeuHbdv36Zdu3aKzUVycjKXL1/myJEjVKhQgd27dxdasZz/JUZGRu/0HbpmzRpFWjptJig4OJhRo0ZRr1496tSpQ3BwMCtXrmTz5s28evVKCcPs4uKiE8ExO5ycnChfvjydOnVi0qRJWFpakpqayvz587G2ts4xLoKpqSmxsbGcOnUKb29vHB0dWbJkCf3796dly5Y6z1ZaQKnFixfz6tUrnj59ihCCDz74gFKlSrF06VImT56s8/uMjo7G3d2dTz75JNPIlXml0LvXpaSkULp0adq2bctff/2Fh4cHLVq0wMLCgl9++YXTp0+/d0vQgkRoaCh2dnZvJdF47949duzYkaOropSSefPmsXz5cmxtbWnbti3Vq1dHX1+fmJgYfv/9d8Vu4ueff6Z+/frKsc+fP6d///74+/vTqlUrypUrR1xcHH5+frx8+RIPDw/FKj0qKoqIiAjKlSuHkZERT58+xcbGhiVLlhAfH8/cuXNZvXq1jmXs1q1bEULoqHCFh4czY8YMvLy8GDhwIBUrVsTGxoY+ffpkKNfUqVNZuXIlAwYMwMnJiY4dOyqdjuDgYJYvX06XLl1o164dnp6eNGvWjJkzZ+bq/l6/fh0HBwdWrFiBgYEBe/fuJSoqKlPFMCklO3bs4MyZM7Rt2xZTU1P8/Py4d+8eDx48oFy5cty7dw87Ozvc3NxyfAHu3LmTQ4cOUbJkSYoWLYqrq2uGkVFkZCQuLi4EBwcTEhJC3759SUhIoGXLlpQpU4a4uDgCAgIIDAxkzpw5jB8/XnlxxsXFUbNmTezt7bG3tycwMFBR2kvr2Lx69YqNGzeyevVqoqKiMDExISIigrp16+Ls7EzPnj3z5KNf2Lh58ybz5s3jypUr2NjYMGPGjHdiaPwusLGxYcCAARk8o3bv3o2FhQU9evSgZ8+eNG/eHAcHBywsLIiKiuLs2bMcPnyY6dOnM378+Fxfb+LEiXh6elKvXj3u3LlDq1ataNKkCXv37mX06NFZHnf16lVWr16NpaUljx8/xtbWltKlS9O7d+9M909MTGTMmDF07dqVrl274u7ujoGBAU+ePOGjjz7i2LFjNGzYkPLly/Ps2TMuX75Mq1atGDBgAPr6+qp7XU6cOnWKRYsWsWPHDh49ekSPHj0U3+LIyEg8PDxwd3d/z7l8e4KCgvD09CQyMpJu3brRpk2bv2XEUrJkSSIjI3MVVS0roqKiMqw7PX/+HG9vbx4+fEhsbCylS5emadOmzJ49m3HjxuHh4cHatWsJDg4mNTWVokWL4uDgwNq1azO1FzA3N+fYsWPcunULT09PQkNDMTExYeHChXTp0gUDAwPCwsJwdnbm0KFDmJiYkJyczKhRo9DX16dp06aULl2aCxcuYGNjk8H95cMPP+TQoUM6aWXLlsXW1pZbt25x8OBBBg4cmKkrjxCCChUqsGnTJkUcJj1WVlZMmjSJBQsW0Lp1aywsLHj8+HGu72/ayCdNxcvQ0DDLeARCCPr370+zZs3w9fXl8ePHNG7cmKdPnypGhtWrV2fo0KEsW7aMSZMmZTmb4+vry7lz57h+/ToVK1bE2tqas2fP6izzJCUlsXHjRgYMGMDDhw/59NNPGTBgAM2aNdN5Xlu1asWzZ89wd3fn9evXzJ07F4D9+/dTtmxZRQcjTWBk8+bNzJo1C9A8o2k2F48ePSImJkaxOfi3c/fuXVq2bEmXLl0YPXo0d+/epWvXroo9yPsmNDQ0U8GjypUrExAQgJeXlyIwlUaJEiXo3LkzTZo0Yf78+dSsWTNb/Yj0LFu2jGHDhuHn50fdunVp2LAhL168YPbs2URERGS6Pp4mPlSqVCmePHmiaIFkN/gxMjKiU6dOPHnyBCEEQ4YMYerUqcTHxzNhwgQ6d+7M+fPnefXqFVWrVqV///46MTDelkLf0JcsWZKlS5eydOlSKleurBOD+238tf9JnDhxgl69etGiRQtMTEz48ssv6d+/P4sXL37n1zI1NcXa2prr16/nS7kONEFrWrduDWjW1pcvX86+ffuwtbWlfPnyyqh6586dJCQkMGbMGEaMGMHEiROV4DK5HZHVrl070/sQFRVFixYtqF+/PqtWrcLExISnT5+yefNmgoKCFMNMCwsLpXORvjNx//79TBsOBwcHVq9ejYuLC0OGDOH06dMZ1tiSkpK4ffs29+7dy9J9ztLSkgoVKnD9+nWeP3+e51gMO3fupEmTJujr61O3bl0OHz6cbefMyspKecH6+Phk8HhYsmQJiYmJTJ8+nXbt2tG6dWtMTU2RUhIYGMjJkye5f/8+x48fx9raWjlPx44dOXPmDB9++CFxcXGcP3+eFi1a4O7uToMGDRgwYECWo0kLCwumTZvGzJkz6dq1Kw0bNiQyMjJDR8PExCRTGwI9Pb18uWgWZtzd3Wnbtq1im5K2rLJw4cJ3Zkj3NmQWAAk0HZS4uDiaNm2aZVCctGW07777LtcNPWjeEWnaDlJKgoKCsLOzY/78+cyaNUtn2TBNMjsqKopFixbx+++/s3XrVsqVK5djw1ynTh38/f0BzXu0ePHiGBgYcOzYMQYNGvS3eoEUamO8Nxk+fDjr1q3j2rVrnD59Gh8fH1q2bMmvv/7KiRMnSExMfN9ZzDNSSsaNG8dXX33FF198Qbdu3Zg3bx7r1q3j4cOHf8s1v/76a06ePJmvY2NjYzl//jwjRozgxx9/pEOHDgghcHd3Z/To0XTv3p3OnTvTu3dvFixYwPDhwzlw4AB2dnY8ePAgQwS9/OLh4YGFhQV9+/ZV1gLLlSvH+PHjSUpKUkbwVatWpUyZMnh4eBAbG4uUEn9/f44cOZKpII21tTVRUVGEhYUxbNgwrly5Qnp1xrQoYvb29spIMytKlSrF69ev8fX1VdzTcku5cuXYvXs3Pj4+uLq6Eh8fnyv1RSklp06dYty4cTrpenp6rFy5kr179yKl5Ouvv1ZC6+7YsYPevXsTGBjI3bt3mTNnDhs3bqRGjRoEBQUxd+5cKlasSP369fHx8WHPnj2cP3+epKQkmjVrlm1+SpYsSbt27fj+++8B6Ny5MwEBAUpglCdPnvDbb7/lKF6koiEwMFDpiKVRs2bNtw40k5yc/E7en5MnT2bbtm2Eh4cradeuXePs2bPcv39fGSBkRZMmTbh27VqeZsDSCAoKomHDhvTo0QMzMzM++OADnJ2dcXNzY+/evWzZsoXhw4dz8eJFpk2bpgRKKl26NImJiSQmJvLTTz/h5ubG1q1biYmJ0Tl/UlKSonO/f/9+TE1NmTlzJmfOnMnWt/9dUOjX6NO/ZKWUrFixgj179iiGT2FhYdSoUYPIyEhljdXZ2bnAGOrEx8djamrK1q1bdUZrK1asYOLEiXz++efv/JoxMTFUqlSJuXPn6vg+54YDBw4QHR1Nu3btWLhwIVOmTMlRUAY0UrFHjx7l0qVLeZaEzYx27drRoEGDTI131qxZQ+XKlZVRT1qUtitXrqCnp8cHH3zAwIEDdWwC0jNlyhQOHDhA3bp1uXDhAr1798bY2BgLCwsCAwNp1KgRO3bsoG3btjohKtOTZn1sYWFB/fr12bZtW57KFxcXR7169WjYsCEff/wxXl5ePHz4EFdX1yx986WU7N69m+DgYC5evJjt0kxycjKvX7+mSJEimJiYIIRgxIgRHD9+nI8++oj79+9jamrKiRMnMnUNHDx4MFLKbAPQpBEZGcm4ceMUjYT9+/czfPhwUlJSSEpKYsGCBXn2TPi34uLiQlBQkI69xuHDh4mIiODXX3/N8/lSUlIYN24cGzZsQEqpRMh8m6A5S5Ys4dtvv6Vy5crExMSQlJSEp6cnHTt2ZMOGDTkGxJkxYwY//fRTpr+rrHj06BGNGjWic+fOfPrpp8qzHx0dzYEDB/Dx8cHa2poePXqwceNGunXrpsx6eXp6cu7cOSpVqoSJiQnNmzfnjz/+IDg4mPnz5yvP/6ZNm7hw4QIGBgbExcXh4uJCvXr1OHbsGAcPHmTGjBlZGt6pa/R5QAjBhAkTFEW3Ll266Ch+PXr0iFWrVhEdHZ1rw6f3TZrvZppWOGhewvfv36dGjRp/yzXT1rqXLFnC7NmzczTQSuPmzZscPHiQ9evXM2LECGbPnp2rRh40UrFxcXH07NmT8+fPv032Ac0INatO7ptT3MWLF2fcuHHEx8cTHx+PmZlZth3BtMAuAPb29jx48IDTp08THh5OgwYNlGnCsWPHsmzZMurVq5dhluLs2bPExMRgY2OTL3/v69evI4RQOnrTp09n6NChzJkzhwEDBmBnZ6dzzadPn7Jr1y4ePHiAv79/jvYXBgYGOh2GK1euKB4GRYsWJTU1FVdXV7Zv387gwYMzHP/06dMsO0pvUqJECfT09IiKiqJkyZJ07dqV0NBQHj16RLly5VTX1zzg4uJCo0aNEEJQv359goKCOHbsGCdOnMjX+dzc3Dhz5gxr167F0NCQNWvWMHHiRH788ccsj5FSEhAQQGhoKHXr1s3wnvrmm28YNWoUFy9epFixYsoSlJmZmWI0mxWpqalERETkeX17wYIF2Nvb0759e5304sWL07dvX1q2bMmsWbOoXLkyHTp0wM/PT2now8PDadq0KefPn2ft2rUYGBjQpEkTpk+fzu3bt6lXrx7h4eH8/vvv/PHHHwghqFatmrKM3L59e1JTU5k1axYdO3akbdu2Ohb472Iw/q9q6NNYsGABzZs3zzD1WqlSJSZPnqw8aPlRJftfI4Rg7ty5zJs3j549e1K8eHFFNz6/a+i5YcyYMYSEhLBgwQImTpyYo6HTpUuX2LRpE7t378bT05MOHTrkupFPw8nJifHjx+Pv768EmUjP9evX8fHxwdTUlB49emRbf926dcPT05PGjRvrNNpxcXFcunSJLl26ZDimaNGiOTYqMTExvH79Wqdnrq+vr+OC5O/vz7x585Tlj3nz5tG7d29q1arF69ev8fHx4fjx42zevDnfMzLFihUjKiqKxMREjIyMiImJITk5mSpVqvDzzz+zadMmatasibGxMc+fPyckJER5Xry9vTNM3efE48ePsbS0VO6Pnp4eVlZWWU6hGhsb51ojITU1NUNoVQMDg1xFqVPRpVKlSly6dIlly5Zx6tQpatWqha+vb4ZAQ7nFx8eHTp06Kctfn332GRs3bsxy/6CgIHr27Mnz58+pVKkSd+/exd7enu3bt+s0zqamphligPTs2ZMzZ85kadkO8Mcff1CpUqU8PRsxMTF4e3tnGxCpQoUK1KpVi/PnzxMXF6cs7d2+fZvg4GBWrVpFp06dFC0WIQRFihQhJSWFwMBAVq1axYwZM7CysiI1NRUhBCkpKTpy1zY2Nhw7dozx48dTs2ZNRVI4/TJGfvnXNfTJycl4e3uzbNkyxZ+xbNmyysu+dOnS2Nra8tNPPzFq1Kj3nNvcMXz4cMqVK8fq1auJjIykd+/eOuFB/y4WL15MhQoVmDlzJvXr16dt27bUqVNHuZcJCQmcP3+eU6dOER8fz7Fjx6hWrRq//vory5Yty/P10gRtVq9ejYeHh5KempqqiOTY2dkRExPD5MmT8fDwoHv37hnOc+XKFZKTk3n27BmbN2+mW7dulCxZkuDgYDw8PChVqhR3797NUyjKNE6fPk2nTp2ynOXw9fXFycmJ7t27s2LFCmJiYti0aRMrVqwgLi6OEiVK0KdPH65du6ZI4eaHunXr0qJFC1xdXalduza+vr5UqlSJGjVqcPPmTUqXLk1MTAz169dXOoVGRkY8fvyYefPmMXz48Bw7NREREXzzzTdcu3aN8uXLc/fuXcVaPzY2lqtXr2apUufg4IC3t3euLL2vXLlCgwYN3msM88KEpaUlK1aseCfnMjc358mTJ0rH+8mTJ1l2sBMSEvj0009xcHCgXbt26OnpkZSUxNatW+nfv38GL5Y3GTduHM2aNaNp06aZyhzHxsby008/MX/+/DwtvYaGhmJmZpatvQxobBnu3LmjuHI6OzsTHR3N5MmTadSoEVZWVmzatIlWrVoREBBASEiI8p4yNzfnv//9Lz///DOlSpXC2tqaS5cu6RiiVqtWjZEjRzJgwABu3LjBrl276Ny5M3379n1rcad/XUMfHR2NlJK1a9cqYjrVqlXDxcVFWUsxNzf/240j3jVOTk44OTn9z6/r7OzMkCFD2LJlC6tWreLZs2eYmZmRnJzMq1evFAvrDh06oK+vz7p16/joo4/yFGksPa1bt2bChAmsW7dO6VVv3bqV8+fP4+bmpjROaUpzLVu2VF48MTEx9OjRg2vXrvHhhx9ibGysdESklJiYmODo6EiVKlXYvn07Dg4OeXphpKamcuLEiWyj1bm4uDBw4EDlB16iRAlmzJiBp6cnderUwc3NLV/35U2EEOzcuZMtW7bg5eVFqVKlmDNnDjNmzGDIkCEcOXKEPn36ULNmTZ3jKlasiLm5OQEBAdnGGkhJSVFCE3fs2JErV65QrFgx5syZQ/Xq1QkJCaF///5ZrsEPGjSImTNn8tdff1GmTJksryOlxMfHBxcXl/zdCJW/lXnz5vHJJ5/w4sULDA0NOXv2LPv27ct0319//ZVSpUrpzKQaGhoycOBAxo0bx507dzI8j+mpVasWq1atwtnZmW7dutGiRQuMjY1JSUnB39+fPXv24OTklCthp/QYGRkphrbZ/d7j4+M5f/48+vr6lC1bls8++4wXL14oglrHjx/H2dmZbdu2kZKSQrly5Rg0aBAlSpRg/vz52Nra0qxZMyIiIggMDGTbtm00bNgwQ4e6ePHiFC9enISEhEwj2+WHf11Dn+YSZGhoyA8//ICUkuXLl3PgwAFl9JcmT6iSO0qUKMHYsWMZM2YMz549IyIiAiMjI8zNzTM06CEhIXk24EuPmZkZRYoU4eXLl8rU/6ZNm+jSpYvOD6ZatWo0aNCA3bt3M2LECEAjjhEfH4+7u7syxXbu3Dk8PT1xdHSke/fuisull5cXhw8fzlQ2Niv279+PhYVFlu5if/31F7du3co0Ilvr1q1Zt27dO2voQbNkMGTIEMWA8dmzZ7x8+ZIWLVrg4+OjWAC/SfroY1lx9+5dHj16hIuLC3p6etSuXZtbt26xatUqjI2NsbS0zNINCjTPzNSpU1m+fDlTp07NVLVPSqlIn2Y3Xavy/qhZsyb+/v5s376d5ORkvv32Wx0X5vRcu3Ytg8U/aBr7WrVqcePGjWwbeoAvvviC6tWr89133zF27FhFRbFWrVosXrw4S3367Dh8+DAxMTHcvXsXGxubTPeRUuLn50eTJk2oUKGCTpyOhg0bMmnSJIYNG6YYze7du5dp06ZhY2PD8uXL6dixI5999plyjJ2dHRMmTGDOnDkMHToUa2trhBAkJCRw5swZ9uzZw549e95JIw/vqaEXQvQC5gK1gcZSysvpvpsGDAVSgHFSyqPadEfge0Af2CClzHpBJRv09fWxtLTE3t5eedk3atSIGzduAJpG/vr166q7Tj4QQlCuXLls197j4uLeOjSokZERcXFxyufIyMhMp8qLFy+u6EgnJCSwfft2li1bphPT4JNPPlHCqKatl+np6TF58mRmz56NoaFhhkAwmXHo0CFOnz7NpUuXMrxo0tboXr16hRAi0xeRvr4+UVFRubsBeaRly5YsXLiQ2rVrU6xYMfT09GjUqBHHjx/PEGLz9u3bJCcn52ixrK+vT3JysmK4KKUkKSkJS0tLGjVqlKt8TZkyhYiICGbOnEn79u1p3bo1xYsXJzU1lYCAAHx8fEhNTeXYsWPqtP0/mCpVqjB9+vQc96tYsSK+vr4Z0qWUeQpgZW9vz969e3n16hXh4eGUKFEiz/Y+aQQGBjJ79mwcHR3x9vZm2rRpmbrv+vr6UrRoUfz9/Rk4cKDOd6ampjRq1IiDBw8qti2dOnXC3d0dV1dXbty4kUFlz9jYmDZt2hAZGcmGDRtISUnB1NSUJ0+e0LRpU44dO5Zn7YzseF9+9DeAHsCZ9IlCiDpAX6Au4Aj8KITQF0LoAz8AHYE6QD/tvvnCycmJ3377TfH9/P3337G0tOT27dssWbKERYsW5XtqWSV70taG84uUUrG+TqNDhw4ZLPETEhLw9/dXGumoqCiEEJla41aqVIl79+7ppJUpU4Y5c+Zw8OBBli5dyrVr1zKIK6U1SG5ubly4cIFz585lcP0LDAykefPmvHz5EiMjI+WYNzl9+vQ7sa7NjF69emFlZcWaNWuIiIggNDSUdu3a8fjxY9atW8fjx4+Jjo7m9OnTrFy5ku+//z7HUL81atTA1taWVatWce7cOdasWUOFChXy5NIkhGDx4sX8+uuvJCcnM3bsWIYNG8aXX36Jj48Pzs7OXLhw4Z1ofau8f/r168e1a9f4888/ddJPnTqFsbFxhuBHOVGyZElsbGzy3cgDrF69GgcHB3r16qVINgcFBSnfR0ZGsnv3bnbu3KkEpklJSclwnjdFvAwNDfHx8VEa/sw693p6enz88cfcv3+fgwcPsnHjRgIDAzl8+PA7beThPfvRCyF+Ayaljei1o3mklN9pPx9FM/IHmCul7JDZflnxph99GgkJCXTt2hVfX19SU1MpXrw4xsbGGBgYMG/ePAYNGvRuCqiSgZMnTzJs2DC+++67fGkVBAYG4uXlxZ07d5Tjw8PDady4MbVq1aJ58+ZERUUphnlbtmwBNI2ylZUVI0aM0Jk+TE5OZsKECcTHxzNt2rQM8aHj4+Px9fVl7969pKSkKNEQ4+PjuX37tiKq0a9fv0xDuY4bN46nT58qkq1eXl74+PgwfPhwGjVqRGJiIj4+Phw4cAAzMzNCQkLyfE9yg5SS06dPs2bNGnx9ffnqq6+wtLTkp59+4ty5cyQmJiouRLmNTBgfH4+rqyt//PEHtWvXZsaMGW8VizwpKYnIyEiMjY3zFBZXpeBw5MgR+vXrR4MGDShfvjxBQUGEhYXh4+OTb8v/t6FBgwb07t0ba2trUlJSOHToEEePHlWs5l+8eIG+vj4BAQGsXbuWXbt2Ub9+fR0dgufPnzNt2jRu3ryZaQCnzp07U7ZsWR21voSEBKZOncqePXuwt7fPMZ9CiELlR18RuJDu8yNtGkDoG+l56/6lo0iRIhw9epSnT58SHh7O69evMTU1pUGDBgU6TnxBoE2bNujr63Pr1i3q1Mn7pMzJkyf5+uuvdToJZcuWVVyGdu3ahampKZMmTdLx39bT02POnDnMnTtXaewjIiLYvn07DRs2ZPDgwYwdO5axY8fqBNQwMjKiSJEiJCUlsWLFClJSUoiMjKREiRJ8+OGH2NnZZdthSa+yB5o1zbt37/Lf//6XVatWoaenh62tLVWrVs2TPUBeEULQunVrWrduzZYtW1iwYAGPHj3CwMCAAQMGsHjx4jzPYhUtWlTRoH8XGBoaFgiXVpX84+joSFBQEDt27CAkJIROnTrRs2fPtxLYeRsMDAwUWxV9fX26du1K586dCQsLIykpidTUVFauXEn16tU5d+4cPXr0YOfOncrg4q+//uLIkSPMnTs300YeYOnSpbRq1YpXr15hZ2dHREQEBw4coG3btnmexcgvf9uIXghxHMhsTmWGlHKvdp/f0B3RrwYuSCm3aT9vBA5rj3OUUg7Tpg8EmkgpM8hhCSGGA8O1Hz9Es0xQGDEHnr/vTPwNFNZyQeEtm1qugkdhLVthLVdNKWXulMky4W8b0UspP815rww8BtI7SFbSppFN+pvXXQ+sBxBCXH6b6Y5/MoW1bIW1XFB4y6aWq+BRWMtWmMv1Nsf/0+ap9wF9hRBFhBBVAWvgEuAHWAshqgohjNAY7GXurKmioqKioqKi8L7c67oDq4AywEEhxFUpZQcp5U0hxE9AIJAMjJFSpmiPGQscReNet0lKefN95F1FRUVFRaUg8V4aeinlL8AvWXy3CFiUSfohIHuNxIysz3vuCgyFtWyFtVxQeMumlqvgUVjLppYrEwp1mFoVFRUVFZV/O/+0NXoVFRUVFRWVd0ihaeiFEL2EEDeFEKlCCLs3vpsmhAgSQtwRQnRIl+6oTQsSQkz93+c6bwghvIUQV7V/wUKIq9p0KyFEXLrv1r7nrOYZIcRcIcTjdGXolO67TOuvICCEWCqEuC2EuCaE+EUIUVKbXhjqrED9frJDCGEphDglhAjUvkectelZPpcFBe274ro2/2muzKWFED5CiLva/6Xedz7zghCiZro6uSqEiBRCjC+o9SWE2CSECBdC3EiXlmkdCQ0rtb+7a0II2xwvIKUsFH9odPNrAr8BdunS6wB/AEWAqsA9NAZ9+trtaoCRdp8677sceSjvMmC2dtsKuPG+8/SW5ZmLRlPhzfRM6+995zcP5WoPGGi3FwOLC0OdFfTfTyblKQ/YardNgT+1z16mz2VB+gOCAfM30pYAU7XbU9Oey4L4p30WnwJVCmp9AS0B2/TvhKzqCOiERl9GAPbAxZzOX2hG9FLKW1LKO5l89RmwU0qZIKV8AAQBjbV/QVLK+1LKRGCndt9/PEIjxdYbyDoeauEhq/orEEgpj0kpk7UfL6DRgCgMFNjfT2ZIKcOklFe021HALf5flbMw8hmwWbu9Gej2/rLy1jgA96SUD993RvKLlPIM8PKN5Kzq6DNgi9RwASgphMg2JGihaeizoSIZ5XMrZpNeEGgBPJNS3k2XVlUIESCEOC2EaPG+MvaWjNVORW1KN5VYkOvpTf7D/ys9QsGus8JULzoIIayAj4GL2qTMnsuChASOCSH8hUY5FMBCShmm3X4KWLyfrL0T+qI76Cno9ZVGVnWU599egWrohRDHhRA3MvkrsCOJN8llGfuh+2CHAZWllB8DLoCXECJjgO/3TA5lWwNUBz5CU55l7zOveSE3dSaEmIFGG2K7NqlA1Nm/DSFEcWAPMF5KGUkBfi7T0VxKaYsm+ucYIUTL9F9KzXxwgXS/EhoBNSdglzapMNRXBt62jv5pQW2yRb4nWd3/JTmVUQhhgCbEb8N0xyQACdptfyHEPcAGeCvZxHdNbutPCPFf4ID2Y3b1948gF3U2GOgCOGh/sAWmzrLhH18veUUIYYimkd8upfwZQEr5LN336Z/LAoOU8rH2f7gQ4hc0yy7PhBDlpZRh2mnf8PeayfzTEbiSVk+Fob7SkVUd5fm3V6BG9PmksMnqfgrcllI+SksQQpQRQuhrt6uhKeP995S/fPHGGlN3/j8YUVb1VyAQQjgC3wBOUsrYdOkFvc4K6u8nU7R2LxuBW1JK93TpWT2XBQIhhIkQwjRtG41x6A00dfWldrcvgb3vJ4dvjc7sZkGvrzfIqo72AYO01vf2wOt0U/yZUqBG9Nkh/j2yum+uR4HGYnO+ECIJSAVGSinfNOz4p7NECPERmumpYGAEQHb1V0BYjcZjwEfTlnBBSjmSAl5nUsrkAvr7yYpPgIHAdaF1WwWmA/0yey4LEBbAL9pnzwDwklIeEUL4AT8JIYYCD9EY9xYotB2XdujWSabvkX86QogdQGvAXAjxCJgDuJJ5HR1CY3kfBMQCQ3I8v3YmUUVFRUVFRaUQ8m+YuldRUVFRUfnXojb0KioqKioqhRi1oVdRUVFRUSnEqA29ioqKiopKIUZt6FVUVFRUVAoxakOvoqKioqJSiFEbehWV94AQYoMQos47Otf0dNtWIl2oy1weP1cIMeld5CWvpL+2EGK+ECI/6pcIIT4SeQxJKoRoLYR4LYQ4lMfjJgghQoQQq/OWSxWV94Pa0KuovAeklMOklIHv6HTTc97l/aNV8srynSOlnC2lPJ7P03+ERkQkr5yVUubpOCnlcmB2Pq6lovJeUBt6FZV3hBDiV6GJEHZTaKOECSGchBBXtX93hBAPtOm/CSHstNvRQoil2uOOCyEaa7+/L4Rw0u4zOP0IUghxQDsidQWMtedPC5ijL4T4r/Z8x4QQxtpjvhJC+Akh/hBC7BFCFMuhPBZCiF+0+/8hhGimTXcR/x+4Z3y6/TOka2cY7gghtqCRI7UUQswQQvwphPAFaqY73lMI0VO7HSyEmCeEuCKEuC6EqKVNbyyE+F1oov6dF0LUFBoJ3vlAH+196KOVft0khLik3TfHwFfa+3laCLFXe+9dhRBfaM9xXQhRPadzqKj8E1EbehWVd8d/pJQNATtgnBDiAynlPinlR1LKj4A/ALdMjjMBTkop6wJRwEI00p7d0TRgWSKlnArEaa/xhTbZGvhBe75XwOfa9J+llI2klA3QxFsfmkN5VgKntfvbAjeFEA3RSG42AeyBr4QQH2eVni4/P2rzY45GxvkjNCPwRtlc/7k26toaIG1p4TbQQhv1bzbwrZQyUbvtrb0P3sAMNPe0MdAGWKqVTM2JBsBIoDYaSVwb7Tk2AF/n4ngVlX8chUbrXkXlH8A4oYm5AJroUtbACwAhxDdoGuQfMjkuETii3b4OJEgpk4QQ1wGrfOTjgZTyqnbbP905PhRCLARKAsXR6NRnR1tgEIA2vsBrIURz4BcpZQyAEOJnoAUgskjfBzyUUl7QnrOFdr9Y7X7ZBcL5OV0Zemi3zYDNQghrNHrmhlkc2x5wSmd7UBSojKaDkx1+aQFChCai4DFt+nU0HQYVlQKH2tCrqLwDhBCt0UQWbCqljBVC/IamcUFrYNYLTSCbzEhKC1+LJsBNWvjaVKEJSwyagD7pZ+CKZpOdhHTbKYCxdtsT6Cal/ENoQue2zqFY74qYfB6XVo4U/v9dtQA4JaXsLoSwAn7L4lgBfC6lvJPPa0K6utBuq+9LlQKJOnWvovJuMAMitI18LTTT1wghqgA/AL2klHFvcf5g4CMhhJ4QwhJNTPE0koQmlnpOmAJh2n2/yGln4AQwCkAIoS+EMAPOAt2EEMW0U+HdtWlZpb/JGe1+xkITPrVrLvKRHjP+P/b24HTpUdrypXEU+FoITdi2dMsIKir/OtSGXkXl3XAEMBBC3EITXjJtqnow8AHwq9ZQLE+uXOk4BzxAE653JXAl3XfrgWvpjPGyYhZwUXuu27m4pjPQRruE4A/UkVJeQTMzcEl7rg1SyoCs0t88oXY/bzT2CofRxLXPC0uA74QQAeiOsE8BddKM8dCM/A3R3Jeb2s8qKv9K1DC1Kioq/0q0yy2TpJRd8nHsYMBOSjn2HWdLReWdo47oVVRU/q0kojFQzLNgDjANiPxbcqWi8o5RR/QqKioqKiqFGHVEr6KioqKiUohRG3oVFRUVFZVCjNrQq6ioqKioFGLUhl5FRUVFRaUQozb0KioqKioqhZj/Az26trhWqtR6AAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plotParticles(sim)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Within just one orbital period, one can already see structure appearing on a scale close to the Toomre critical wavelength. The simulation will eventually settle down in a turbulent state where clumps constantly form, but then get destroyed again after a short time. Permanent clumping cannot occur because particles are inside the Roche limit." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.2" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/Simulationarchive.ipynb b/rebound/source/ipython_examples/Simulationarchive.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..8ef7d75cdf5efb2dbb91c7cd6539d7e073204fdf --- /dev/null +++ b/rebound/source/ipython_examples/Simulationarchive.ipynb @@ -0,0 +1,489 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Simulationarchive\n", + "A Simulationarchive (Rein & Tamayo 2017) is useful when one runs long simulations. With the Simulationarchive, one can easily take snapshots of the simulation, and then later restart and analyze it. Since Spring 2018, the default Simulationarchive version is 2. Version 2 works with all integrators and very few restrictions that apply (you need to be careful when using function pointers)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To illustrate the Simulationarchive, let us setup a simulation of a two planet system and turn on the Simulationarchive. This is done with the following code:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:43.938569Z", + "start_time": "2023-09-24T21:28:43.859966Z" + } + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-3, a=1.)\n", + "sim.add(m=1e-3, a=1.9)\n", + "sim.move_to_com()\n", + "sim.dt = sim.particles[1].P*0.05 # timestep is 5% of orbital period\n", + "sim.integrator = \"whfast\"\n", + "sim.save_to_file(\"archive.bin\",interval=1e3,delete_file=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first argument of `save_to_file` is the path and name of the binary file to write to, the `interval` argument specifies the interval at which snapshots of the simulation are saved (in whichever code units you work). The smaller the interval, the larger the file size, but the faster the access. The `delete_file=True` flag makes REBOUND delete the file if it already exists." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now integrate the simulation forward in time. This should take a few seconds." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.235981Z", + "start_time": "2023-09-24T21:28:43.946068Z" + } + }, + "outputs": [], + "source": [ + "sim.integrate(1e6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now delete the simulation. Note that we could also have run the simulation using the C version of REBOUND. This might be useful if one wants to run a long simulation on a cluster and doesn't want to bother with installing python. In C, one can initialize the Simulationarchive with (you need to delete the file manually if it already exists):\n", + "```c\n", + "struct reb_simulation* sim = reb_simulation_create();\n", + "...\n", + "reb_simulation_save_to_file_interval(\"archive.bin\",1e3);\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.238423Z", + "start_time": "2023-09-24T21:28:45.236970Z" + } + }, + "outputs": [], + "source": [ + "del sim" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now look at the Simulationarchive. You could do this at a later time, on a different computer, with a different version of REBOUND and it will still work. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.241941Z", + "start_time": "2023-09-24T21:28:45.239853Z" + } + }, + "outputs": [], + "source": [ + "sa = rebound.Simulationarchive(\"archive.bin\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's first print the number of snapshots and the time of the first and last snapshot in the archive:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.244521Z", + "start_time": "2023-09-24T21:28:45.242817Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of snapshots: 1001\n", + "Time of first and last snapshot: 0.0, 1000000.0\n" + ] + } + ], + "source": [ + "print(\"Number of snapshots: %d\" % len(sa))\n", + "print(\"Time of first and last snapshot: %.1f, %.1f\" % (sa.tmin, sa.tmax))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can access each snapshot by indexing the Simulationarchive. This returns a REBOUND simulation object that corresponds to that time. Everything is accurate down to the last bit. That means one could use this simulation object and restart the simulation, the final coordinates of the planets will be exactly the same as in the original simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.247607Z", + "start_time": "2023-09-24T21:28:45.245577Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "500000.311856871 \n" + ] + } + ], + "source": [ + "sim = sa[500]\n", + "print(sim.t, sim.particles[1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One can also step through every simulation in the archive using the generator functionality, for example to store the eccentricity of the inner planet as a function of time:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.279895Z", + "start_time": "2023-09-24T21:28:45.249146Z" + } + }, + "outputs": [], + "source": [ + "eccentricities = np.zeros(len(sa))\n", + "for i, sim in enumerate(sa):\n", + " eccentricities[i] = sim.particles[1].e" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we want to access a simulation at a specific time, such as in-between snapshots, one can use the `getSimulation()` function:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.283178Z", + "start_time": "2023-09-24T21:28:45.280710Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12000.226030496653\n" + ] + } + ], + "source": [ + "sim = sa.getSimulation(12345.6)\n", + "print(sim.t)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By default, the function returns a simulation that corresponds to the snapshot that is nearby. To get closer to the requested time, one can use the `mode` attribute:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.287145Z", + "start_time": "2023-09-24T21:28:45.284245Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12345.628564279925\n" + ] + } + ], + "source": [ + "sim = sa.getSimulation(12345.6, mode=\"close\")\n", + "print(sim.t)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the above code, REBOUND looks up a nearby snapshot and then integrates the simulation forward in time to get close to the request time. As one can see, with `mode=\"close\"`, one gets a simulation very close to the request time, but it is still slightly off. This is because `WHFast` uses a fixed timestep. If we want to reach the requested time exactly, we have to change the timestep. Changing a timestep in a symplectic integrator can cause problems, but if one really wants to get a simulation object at the exact time (for example to match observations), then the `mode=\"exact\"` flag does that." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.291778Z", + "start_time": "2023-09-24T21:28:45.289450Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12345.6\n" + ] + } + ], + "source": [ + "sim = sa.getSimulation(12345.6, mode=\"exact\")\n", + "print(sim.t)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Requesting a simulation at any time between `tmin` and `tmax` only takes a few seconds at most (keep in mind, REBOUND integrates the simulation from the nearest snapshot to the requested time). To analyze a large simulation, you might want to do this in parallel. We will use the multiprocess module. If the following code throws you an ImportError, install the module with `pip install multiprocess`. In the following example, we calculate the distance between the two planets at 432 times in the interval $[t_{min},t_{max}]$." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.375397Z", + "start_time": "2023-09-24T21:28:45.292750Z" + } + }, + "outputs": [], + "source": [ + "from multiprocess import Pool\n", + "import rebound\n", + "def thread_init(*rest):\n", + " global sat\n", + " sat = rebound.Simulationarchive(\"archive.bin\")\n", + "def analyze(t):\n", + " sim = sat.getSimulation(t,mode=\"close\")\n", + " d12 = sim.particles[1] - sim.particles[2]\n", + " return np.sqrt(d12.x*d12.x+d12.y*d12.y+d12.z*d12.z)\n", + "with Pool(initializer=thread_init) as pool:\n", + " times = np.linspace(sa.tmin, sa.tmax, 432)\n", + " distances = pool.map(analyze,times)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that in the above example, we use an initializer function so that each thread has its own Simulationarchive." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Note\n", + "\n", + "Since Spring 2018, the `Simulationarchive` object always returns a new `Simulation` object when you request a simulation from the archive. In earlier versions, it kept a reference to one `Simulation` object internally, updated it when a new time was requested, and then returned a reference." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Manual Snapshots\n", + "\n", + "With the new version of the simulationarchive you can also add snapshots manually, giving you further control beyond the automated options used above. This can be useful to save snapshots when particular conditions like collisions or ejections occur. Here we give an example that saves logarithmically spaced snapshots" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.379855Z", + "start_time": "2023-09-24T21:28:45.376748Z" + } + }, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-3, a=1.)\n", + "sim.add(m=1e-3, a=1.9)\n", + "sim.move_to_com()\n", + "sim.dt = sim.particles[1].P*0.05 # timestep is 5% of orbital period\n", + "sim.integrator = \"whfast\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now iterate over an array of logarithmically spaced times, and save a snapshot after each using the manual `save_to_file` function. If no file with that filename exists, it will create a new one first. Note that if it doesn't already exist, it will always *append* a snapshot to the file, so you need to delete any existing file when starting a new simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:45.646365Z", + "start_time": "2023-09-24T21:28:45.380871Z" + } + }, + "outputs": [], + "source": [ + "filename = 'testsa.bin'\n", + "\n", + "# remove files if it exists\n", + "try:\n", + " import os\n", + " os.remove(filename) \n", + "except:\n", + " pass\n", + "\n", + "Nout = 1000\n", + "times = np.logspace(0, 4, Nout)*sim.particles[1].P\n", + "for i, time in enumerate(times):\n", + " sim.integrate(time, exact_finish_time=0) # need outputs on the nearest WHFast timesteps to the times we pass to get symplectic behavior\n", + " sim.save_to_file(filename)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now plot the energy error at each of the snapshots" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "ExecuteTime": { + "end_time": "2023-09-24T21:28:46.199232Z", + "start_time": "2023-09-24T21:28:45.647329Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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s5AgRBCEa3z44YeQJAlHjhxx/dqSJEGSJHTu3NnyuUTu44UXXrB8rUsuuSTY7q1bt1o6F0EQbEgQIgjCES655BL8/ve/Dzl24YUXoqamBikpKZ60admyZdi9e7cr15o+fXrItf70pz9h2LBhhs6xatUqbNq0yeaWEQShhKrPEwThGgkJCejVq5dn1+/cuTN69Ohh6RwnT54U+l5iYiISExMtXatLly44evSopXMQBKENaYQIgrCdmTNn4qOPPsLjjz8eNO1UVlaGmZRk89Fbb72FgQMHIikpCT/96U9x/PhxvPjii8jKykJqaipuv/12NDc3B89/4sQJzJ07F71790ZycjJGjRqFDz/80FRb//a3v6F///5ISEjAwIED8fLLL4d8LkkS/va3v2Hy5MlITk7Ggw8+GPxs48aNGDp0KNq3b48LLrgAX3zxRfAzpWnshRdewP33349t27YF++OFF15AIBDAn/70J2RmZqJdu3ZIT0/H7bffbuo+CIIwB2mECIKwnccffxy7d+/G4MGD8ec//xkA0L17d1RWVoZ99/jx43jiiSfw6quv4ocffsDUqVNx9dVXo3PnznjnnXfwzTffYNq0aRgzZgymT58OALj11lvx1Vdf4dVXX0V6ejpWr16NiRMnory8HOecc45wO1evXo3f/e53WLx4MSZMmIC33noLs2bNQp8+fZCfnx/83p/+9CcsXLgQixcvRps2bfDNN98AAO644w48/vjj6NWrF+666y5ceeWV2L17N9q2bRtynenTp+OLL77A2rVr8d577wEAUlJSsHLlSvzP//wPXn31VZx33nnYv38/tm3bZqivCYKwBglCBEHYTkpKChISEpCUlKRrCjt58mRQKwMAP/3pT/Hyyy/jwIED6NChA7Kzs5Gfn48PPvgA06dPR1VVFZYtW4aqqiqkp6cDAObOnYu1a9di2bJleOihh4Tb+cgjj2DmzJm45ZZbAABz5szBJ598gkceeSREEJoxYwZmzZoV/FsWhO677z785Cc/AQC8+OKL6NOnD1avXo2f//znIddJTExEhw4d0KZNm5D+qKqqQq9evTBhwgS0bdsWmZmZGDlypHD7CYKwDpnGCILwlKSkpKAQBAA9e/ZEVlYWOnToEHLs4MGDAIDy8nI0NzdjwIAB6NChQ/DfRx99hL179xq69o4dOzBmzJiQY2PGjMGOHTtCjo0YMYL5+9GjRwf/v0uXLhg4cGDYb7X42c9+hsbGRpx11lmYPXs2Vq9ejVOnThm4A4IgrEIaIYIgPEVtRpIkiXmspaUFAHDs2DHEx8dj8+bNiI+PD/meUniyk+TkZEfOm5GRgV27duG9997Dv//9b9xyyy3461//io8++iisDwiCcAbSCBEE4QgJCQkhDs52kZubi+bmZhw8eBBnn312yD+jEWnnnnsuNm7cGHJs48aNyM7OFvr9J598Evz/uro67N69G+eeey7zu7z+SExMxJVXXoknnngCH374IT7++GOUl5cbuAuCIKxAGiGCIBwhKysLn376KSorK9GhQwd06dLFlvMOGDAA1157La677jo8+uijyM3NxaFDh7Bu3ToMHToUkyZNEj7XHXfcgZ///OfIzc3FhAkT8Oabb2LVqlVBh2Y9/vznP6Nr167o2bMn7r77bnTr1g1TpkxhfjcrKwsVFRXYunUr+vTpg44dO2L58uVobm7GqFGjkJSUhH/84x9ITExE3759he+BIAhrkEaIIAhHmDt3LuLj45GdnY3u3bujqqrKtnMvW7YM1113Hf7whz9g4MCBmDJlCsrKypCZmWnoPFOmTMHjjz+ORx55BOeddx6effZZLFu2DJdcconQ7xcuXIjf/e53GD58OPbv348333wTCQkJzO9OmzYNEydORH5+Prp3747ly5ejc+fOWLJkCcaMGYOhQ4fivffew5tvvomuXbsaug+CIMwjBQKBgNeNIAiCcBpJkrB69WquxsavVFZWol+/ftiyZYvhzNQEQehDGiGCIGKGa665Bn369PG6GcIUFBTgvPPO87oZBBHVkEaIIIiYYM+ePQCA+Ph49OvXz+PWiFFdXY3GxkYAQGZmJtfsRhCEeUgQIgiCIAgiZiHTGEEQBEEQMQsJQgRBEARBxCwkCBEEQRAEEbOQIEQQBEEQRMxCghBBEARBEDELCUIEQRAEQcQsJAgRBEEQBBGzkCBEEARBEETM8v8BQsb+6FnfUSkAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sa = rebound.Simulationarchive(filename)\n", + "sim0 = sa[0]\n", + "P = sim0.particles[1].P\n", + "E0 = sim.energy()\n", + "\n", + "Eerr = np.zeros(Nout)\n", + "for i, sim in enumerate(sa):\n", + " E = sim.energy()\n", + " Eerr[i] = np.abs((E-E0)/E0)\n", + "\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots()\n", + "ax.plot(times/sim0.particles[1].P, Eerr, '.')\n", + "ax.set_xscale('log'); ax.set_yscale('log')\n", + "ax.set_xlabel('time [orbits]'); ax.set_ylabel('relative energy error');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One can also add manual snapshots when using automated intervals." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/SimulationarchiveRestart.ipynb b/rebound/source/ipython_examples/SimulationarchiveRestart.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..99e77eeee7be23e383a7871a4aa55a41ecfcc5f0 --- /dev/null +++ b/rebound/source/ipython_examples/SimulationarchiveRestart.ipynb @@ -0,0 +1,197 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Using the Simulationarchive to restart a simulation\n", + "The Simulationarchive (SA) is a binary file that can be used to restart a simulation. This can be useful when running a long simulation. REBOUND can restart simulation *exactly* (bit by bit) when using a SA. There are some restriction to when a SA can be used. Please read the corresponding paper (Rein & Tamayo 2017) for details. \n", + "\n", + "We first setup a simulation in the normal way. " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "\n", + "sim = rebound.Simulation()\n", + "sim.integrator = \"whfast\"\n", + "sim.dt = 2.*3.1415/365.*6 # 6 days in units where G=1\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-3,a=1.)\n", + "sim.add(m=5e-3,a=2.25)\n", + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We then initialize the SA and specify the output filename and output cadence. We can choose the output interval to either correspond to constant intervals in walltime (in seconds) or simulation time. Here, we choose walltime. To choose simulation time instead replace the `walltime` argument with `interval`." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "sim.save_to_file(\"simulationarchive.bin\", walltime=1.,delete_file=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we can run the simulation forward in time. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrate(2e5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Depending on how fast your computer is, the above command may take a couple of seconds. Once the simulation is done, we can delete it from memory and load it back in from the SA. You could do this at a later time. Note that this will even work if the SA file was generated on a different computer with a different operating system and even a different version of REBOUND. See Rein & Tamayo (2017) for a full discussion on machine independent code." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time after loading simulation 175478.9\n" + ] + } + ], + "source": [ + "sim = None\n", + "sim = rebound.Simulation(\"simulationarchive.bin\")\n", + "print(\"Time after loading simulation %.1f\" %sim.t)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we want to integrate the simulation further in time and append snapshots to the same SA, then we need to call the `save_to_file` method again (this is a fail-safe mechanism to avoid accidentally modifying a SA file). Note that we set the `delete_file` flag to `False`. Otherwise, we would create a new empty SA file. This outputs a warning because the file already exists (which is ok since we want to append that file)." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rein/git/rebound/rebound/simulation.py:525: RuntimeWarning: File in use for Simulationarchive already exists. Snapshots will be appended.\n", + " warnings.warn(msg[1:], RuntimeWarning)\n" + ] + } + ], + "source": [ + "sim.save_to_file(\"simulationarchive.bin\", walltime=1.,delete_file=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's integrate the simulation further in time. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrate(sim.t+2e5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we repeat the process, one can see that the SA binary file now includes the new snapshots from the restarted simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time after loading simulation 352418.7\n" + ] + } + ], + "source": [ + "sim = None\n", + "sim = rebound.Simulation(\"simulationarchive.bin\")\n", + "print(\"Time after loading simulation %.1f\" %sim.t)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A few things to note when restarting a simulation from a SA: \n", + "- If you used any additional forces or post-timestep modifications in the original simulation, then those need to be restored after loading a simulation from a SA. A RuntimeWarning may be given related to this indicating the need to reset function pointers after creating a reb_simulation struct with a binary file.\n", + "- If you use the symplectic WHFast integrator with the safe mode turned off, then the simulation will be in an unsynchronized state after reloading it. If you want to generate an output, then the simulation needs to be synchronized beforehand. See the WHFast tutorial on how to do that.\n", + "- If you use the symplectic WHFast integrator with the safe mode turned off in order to combine kepler steps (see the Advanced WHFast tutorial), but want to preserve bitwise reproducibility when integrating to different times in the simulation or to match Simulationarchive snapshots, you need to manually set sim.ri_whfast.keep_unsynchronized = 1. This ensures that the integration state does not change depending on if and when you generate outputs.\n", + "- For reproducibility, the Simulationarchive does not output snapshots at the *exact* intervals specified, but rather at the timestep in the integration directly following each interval. This means that if you load from a Simulationarchive and want to reproduce the state in a snapshot later on, you have to pass `exact_finish_time=0` in a call to `sim.integrate`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/rebound/source/ipython_examples/Starman.ipynb b/rebound/source/ipython_examples/Starman.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..3249f3583f86c305008d9fb3d4bdeb2e0c910387 --- /dev/null +++ b/rebound/source/ipython_examples/Starman.ipynb @@ -0,0 +1,353 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Starman" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook integrates the orbit of Elon Musk's Tesla and Starman. " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We start by querying NASA Horizons for the Solar System planets around the time of the orbit injection. " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Sun'... \n", + "Found: Sun (10) \n", + "Searching NASA Horizons for 'Mercury'... \n", + "Found: Mercury Barycenter (199) (chosen from query 'Mercury')\n", + "Searching NASA Horizons for 'Venus'... \n", + "Found: Venus Barycenter (299) (chosen from query 'Venus')\n", + "Searching NASA Horizons for 'Earth'... \n", + "Found: Earth-Moon Barycenter (3) (chosen from query 'Earth')\n", + "Searching NASA Horizons for 'Mars'... \n", + "Found: Mars Barycenter (4) (chosen from query 'Mars')\n", + "Searching NASA Horizons for 'Jupiter'... \n", + "Found: Jupiter Barycenter (5) (chosen from query 'Jupiter')\n", + "Searching NASA Horizons for 'Saturn'... \n", + "Found: Saturn Barycenter (6) (chosen from query 'Saturn')\n", + "Searching NASA Horizons for 'Uranus'... \n", + "Found: Uranus Barycenter (7) (chosen from query 'Uranus')\n", + "Searching NASA Horizons for 'Neptune'... \n", + "Found: Neptune Barycenter (8) (chosen from query 'Neptune')\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add([\"Sun\",\"Mercury\",\"Venus\",\"Earth\",\"Mars\",\"Jupiter\",\"Saturn\",\"Uranus\",\"Neptune\"],date=\"2018-02-10 00:00\")\n", + "sim.save_to_file(\"ss.bin\", delete_file=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We stored the simulation to a binary file. This allows us to reload it quickly to play around with things without having to query NASA Horizons too often.\n", + "\n", + "Next up, we add the tesla to the simulation. As the orbital parameters are also in [NASA Horizons](https://ssd.jpl.nasa.gov/horizons_batch.cgi?batch=1&COMMAND=-143205&CENTER=%27500@10%27&MAKE_EPHEM=YES&TABLE_TYPE=ELEMENTS&START_TIME=2018-05-01&STOP_TIME=%272018-05-01+00:00:01%27&OUT_UNITS=AU-D&REF_PLANE=ECLIPTIC&REF_SYSTEM=J2000&TP_TYPE=ABSOLUTE&ELEM_LABELS=YES&CSV_FORMAT=NO&OBJ_DATA=YES), we can simply add it (and ignore the fact that the particle is set to no mass):" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'SpaceX Roadster'... \n", + "Found: SpaceX Roadster (spacecraft) (-143205) \n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rein/git/rebound/rebound/horizons.py:172: RuntimeWarning: Warning: Mass cannot be retrieved from NASA HORIZONS. Set to 0.\n", + " warnings.warn(\"Warning: Mass cannot be retrieved from NASA HORIZONS. Set to 0.\", RuntimeWarning)\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation(\"ss.bin\")\n", + "sim.add(\"SpaceX Roadster\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's calculate the characteristic energy." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "c3 = 11.867700 (km^2/s^2)\n" + ] + } + ], + "source": [ + "tesla = sim.particles[-1]\n", + "earth = sim.particles[3]\n", + "r=np.linalg.norm(np.array(tesla.xyz) - np.array(earth.xyz))\n", + "v=np.linalg.norm(np.array(tesla.vxyz) - np.array(earth.vxyz))\n", + "energy = 0.5*v*v-earth.m/r\n", + "c3 = 2.*energy*887.40652 # from units where G=1, length=1AU to km and s\n", + "print(\"c3 = %f (km^2/s^2)\" % c3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That seems about right! So let's look at the orbit. It starts at Earth's orbit, crosses that of Mars and then enters the asteroid belt." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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x7777su1115LMpmsdtGyuuGGGzjppJPw+/00NDRUuzhjfO9732PJkiV4vV6OP/54XnjhhWoXKatnnnmG97///SxcuBBN03j44YerXaScbrzxRo499ljq6upobW3lggsuYN26ddUuVlbf//73Ofzww0cmpZ944ok8+uijU/Jc8j6o3Ex5H8zZIFkrS2+tXbsWx3G49dZbWbNmDd/+9rf5wQ9+wL/8y79Uu2hZJZNJLrzwQi699NJqF2WM++67jyuuuIJrr72Wv/zlLxxxxBG85z3vYdeuXdUu2gSRSIQjjjiC733ve9UuSkFPP/00l112Gc899xwrV64klUpxzjnnEIlEql20Cdrb27npppt4+eWXeemllzjjjDP44Ac/yJo1ayb9ueR9ULkZ8z6YhLzjs8IjjzyiNE1TyWSy2kUp6Oabb1b77LNPtYuR15133qlCoVC1izHiuOOOU5dddtnIY9u21cKFC9WNN95YxVIVBqiHHnqo2sUo2q5duxSgnn766WoXpSiNjY3qtttum7Lry/tgclTzfTBna5KjFbv01kwxMDBAU1NTtYtRM5LJJC+//DJnnXXWyDZd1znrrLN49tlnq1iy2SezHN1Mf33ats3PfvYzIpHInMnaJe+D8szpIPm1r32NQCDAvHnz2LJlC4888ki1i1TQ+vXr+e53v8vnP//5ahelZvT09GDbNm1tbWO2t7W10dXVVaVSzT6O4/ClL32Jk08+mUMPPbTaxcnqtddeIxgM4vF4+MIXvsBDDz3EwQcfXO1iTQt5H5RnVgXJK6+8Ek3T8t7Wrl07cvxXv/pV/vrXv/K73/0OwzD45Cc/WdwinFUoK8D27ds599xzufDCC/nsZz87LeUst6xi7rnssst4/fXX+dnPflbtouR0wAEHsHr1ap5//nkuvfRSLr74Yt54442izpX3wdxUEwnOizXVS29NplLLumPHDk4//XROOukkfvjDH05x6cYqtawzTXNzM4Zh0N3dPWZ7d3c38+fPr1KpZpfLL7+cX//61zzzzDO0t7dXuzg5ud1uli1bBsDy5ct58cUX+c53vsOtt95a8Fx5H8xNsypI1tLSW6WUdfv27Zx++uksX76cO++8s+AioZOtkr/rTOB2u1m+fDmrVq3iggsuANL/36tWreLyyy+vbuFqnFKKL37xizz00EM89dRT7LPPPtUuUkkcxyn6PS/vg7lpVgXJYtXS0lvbt2/ntNNOY/HixXzrW99i9+7dI/tm4re/LVu20Nvby5YtW7Btm9WrVwOwbNkygsFg1cp1xRVXcPHFF3PMMcdw3HHHccsttxCJRPj0pz9dtTLlEg6HWb9+/cjjjRs3snr1apqamujs7KxiySa67LLLuPfee3nkkUeoq6sb6dsKhUL4fL4ql26sq666ivPOO4/Ozk6Ghoa49957eeqpp3j88ccn/bnkfVC5GfM+qMqY2ip79dVX1emnn66ampqUx+NRS5YsUV/4whfUtm3bql20Ce68804FZL3NRBdffHHWsj755JPVLpr67ne/qzo7O5Xb7VbHHXeceu6556pdpKyefPLJrH/Diy++uNpFmyDXa/POO++sdtEmuOSSS9TixYuV2+1WLS0t6swzz1S/+93vpuS55H1QuZnyPpClsoQQQogcZtXoViGEEGIySZAUQgghcpAgKYQQQuQgQVIIIYTIQYKkEEIIkYMESSGEECIHCZJCCCFEDhIkhRBCiBwkSAohhBA5SJAUQgghcpAgKYQQQuQgQVLMert372b+/Pn8x3/8x8i2P//5z7jdblatWlXFkgkxvTZt2pR1sejTTjut2kWbsebkUllibmlpaeGOO+7gggsu4JxzzuGAAw7goosu4vLLL+fMM8+sdvGEmDYdHR3s3Llz5HFXVxdnnXUWp5xyShVLNbPJKiBizrjssst44oknOOaYY3jttdd48cUX8Xg81S6WEFURj8c57bTTaGlp4ZFHHpn2xdxrhQRJMWfEYjEOPfRQtm7dyssvv8xhhx1W7SIJUTUf//jHeeWVV3juueeoq6urdnFmLPnqIOaMDRs2sGPHDhzHYdOmTdUujhBVc/311/P444/zy1/+UgJkAVKTFHNCMpnkuOOO48gjj+SAAw7glltu4bXXXqO1tbXaRRNiWv3iF7/gYx/7GI8++qj0yRdBgqSYE7761a/ywAMP8MorrxAMBjn11FMJhUL8+te/rnbRhJg2r7/+OscffzxXXHEFl1122ch2t9tNU1NTFUs2c0mQFLPeU089xdlnn82TTz7Ju971LiA9FP6II47gpptu4tJLL61yCYWYHnfddRef/vSnJ2w/9dRTeeqpp6a/QDVAgqQQQgiRgwzcEUIIIXKQICmEEELkIEFSCCGEyEGCpBBCCJGDBEkhhBAiBwmSQgghRA4SJIUQQogcJEgKIYQQOUiQFEIIIXKQICmEEELkIEFSCCGEyOH/B/DWahS2sZ9aAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "rebound.OrbitPlotSet(sim, color=True, xlim=[-3,3], ylim=[-3,3]);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And then integrate it forward in time. Here, we use the hybrid integrator TRACE. You can experiment with other integrators which might be faster, but since this is an eccentric orbit, you might see many close encounters, so you either need a non-symplectic integrator such as IAS15 or a hybrid integrator such as TRACE." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# integrate\n", + "sim.dt = sim.particles[1].P/60. # small fraction of Mercury's period\n", + "sim.integrator = \"trace\" \n", + "N = 1000\n", + "times = np.linspace(0.,2.*np.pi*1e5,N)\n", + "a = np.zeros(N)\n", + "e = np.zeros(N)\n", + "for i,t in enumerate(times):\n", + " sim.integrate(t,exact_finish_time=0)\n", + " orbit = sim.particles[-1].orbit(primary=sim.particles[0])\n", + " a[i] = orbit.a\n", + " e[i] = orbit.e" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's plot the orbital parameters!" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAywAAAJaCAYAAADNgsP1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hTZfsH8G9Gk850D0oXu4wChUKZClK2KKKCiIIirp+o2NfFqyK+vgoqbhE3qK+AoICKiiJ7r1L2Kp1073SmTXJ+f6Q5bbpbkiYt38919SI5eXLOk/bQnvs8z30/EkEQBBAREREREdkgqbU7QERERERE1BAGLEREREREZLMYsBARERERkc1iwEJERERERDaLAQsREREREdksBixERERERGSzGLAQEREREZHNYsBCREREREQ2S27tDrRXer0eaWlpcHFxgUQisXZ3iIiIiIiumyAIKCoqgr+/P6RS2xjbYMDSSmlpaQgMDLR2N4iIiIiIzC4lJQUBAQHW7gYABiyt5uLiAsDww1SpVFbuDRERERHR9VOr1QgMDBSvdW0BA5ZWMk4DU6lUDFiIiIiIqEOxpZQH25iYRkREREREVA8GLEREREREZLMYsBARERERkc1iwEJERERERDaLAQsREREREdksBixERERERGSzGLDcgHR6AXklFdbuBhERERFRkxiw3IAe+e44Br2+HRcz1NbuChERERFRo2w+YNm7dy+mTZsGf39/SCQSbNmypdH2+/fvx8iRI+Hp6QkHBweEhobi/fffN2mzdOlSSCQSk6/Q0FALfgrbsuNiFgBg/dEUK/eEiIiIiKhxNr/SfUlJCQYMGID58+djxowZTbZ3cnLCwoUL0b9/fzg5OWH//v149NFH4eTkhEceeURs17dvX/zzzz/ic7nc5r8VZqe0s/l4lYiIiIhucDZ/lT558mRMnjy52e3Dw8MRHh4uPg8JCcGmTZuwb98+k4BFLpfDz8/PrH1tDyq0evGxg53Mij0hIiIiImpah7/FfvLkSRw8eBA333yzyfYrV67A398fXbt2xZw5c5CcnNzofjQaDdRqtclXe5RfWp1sbyfr8D9+IiIiImrnOuwVa0BAAJRKJSIiIvDEE09gwYIF4muRkZFYs2YNtm3bhlWrViEhIQGjR49GUVFRg/tbtmwZXF1dxa/AwMC2+Bhml1OsER+XVeis2BMiIiIioqbZ/JSw1tq3bx+Ki4tx+PBhvPjii+jevTtmz54NACZTzPr374/IyEgEBwdjw4YNeOihh+rd3+LFixEdHS0+V6vV7TJoyS2uHmEpqdBasSdERERERE3rsAFLly5dAABhYWHIzMzE0qVLxYClNjc3N/Ts2RNxcXEN7k+pVEKpVFqkr20pt6R6hKVUwxEWIiIiIrJtHXZKWE16vR4ajabB14uLi3H16lV06tSpDXtlHTlFHGEhIiIiovbD5kdYiouLTUY+EhISEBsbCw8PDwQFBWHx4sVITU3Fd999BwBYuXIlgoKCxHVV9u7dixUrVuCpp54S9/Hss89i2rRpCA4ORlpaGl599VXIZLIGR2A6kt2Xs8THpcxhISIiIiIbZ/MBy/HjxzF27FjxuTGPZN68eVizZg3S09NNKnzp9XosXrwYCQkJkMvl6NatG9566y08+uijYptr165h9uzZyM3Nhbe3N0aNGoXDhw/D29u7xf3bFHMNoUG+GNbV8zo+ZdtILyzDgbhc8XmJhiMsRERERGTbJIIgCNbuRHukVqsN1cIWbYBU6YiEZVMgkUis3a1G/XkmHY//ECM+D+vsit+eHGXFHhERERGRLTFe4xYWFkKlUlm7OwBukByWtpBd3HCOjK04n25YO6arlxMA5rAQERERke1jwGImcZnF1u5Co0o0WqzcZcgFighxB8AqYURERERk+xiwmMmVLNsOWD7bcxX6qsl/Q7sY8m04wkJEREREto4Bi5nE2XjAklZQDgDwcFJgVHcvAIYqYUxhIiIiIiJbxoDFTArLKq3dhUaVVo2mLIrqASelDACg0wvQaPXW7BYRERERUaMYsJhJaRtPr4rLKkZWUXmz25dUrbnipJDDUVFdzZprsRARERGRLWPAYibFbbimSUZhOaLe24Ohb+xo9nuMa644KWWQSSWwt5OabCciIiIiskUMWMykLUcqzqUVio+1uuZN6TIGJsbRFaeqfznCQkRERES2jAGLmbTlSEXN9SnzSipMXisorcCVzCIAQHaRBvPXHMNf5zLEwMRJaQhUHKvyWBJybLtYABERERHd2BiwmElJG65poi6rDo5qL1g5+cN9GP/+XsRlFeOrffHYeTELj35/AhlqQ76LMeHeOMLy2P9isOtSVhv1nIiIiIioZRiwmElbrWlSrNEiU12dbJ9bXD3CotcLSC80vBb13h58vjdefK2iqhqYMVBxVMjE117efNaifSYiIiIiai15002oOYxrmkhqztcys4zCcoxZsQvlldV5K1eyivH94STMjAhEWGfXJvdhDFSMU8MAIL2wzPydJSIiIiIyAwYsZmJc08TeTtZ041Y6EJdjEqwAwOtbzwMAtp/PxE09veu8Z2JfXxxLzBdzXcQclhojLHoBFg+2iIiIiIhag1PCzKhEo0VusQZR7+3Byl1xZt+/Vt94RbC9l7NNnn86ZxA+vz8Cbo524jal3PAjd6gVWNXOhSEiIiIisgUMWMzAePFfWqHDF/viEZdVjHf+umT24+TWqgjWlGBPRwCAu6NC3GYcRdHqBZO2mYUMWIiIiIjI9jBgMQNj5a3/HUlCpVZoonXr5RW3NGBxAgC4OdjVea321LKMGon8RERERES2ggHLdbo7IgA5VYHE53vioRcsGLA0McLywIgQ/Pn0aPG5c1W+iluNERYjjda0DDMDFiIiIiKyRQxYrtMLk0JNntcOBMzJOCXsuYm98PPjw01ee/32vvj3lN7o3UmFnx4bjt3PjhFfu2doIACgr7+qup+1RliyGLAQERERkQ1ilbDrZG8nw4zwzth0MhVA3UDAnIwjLKF+Lhgc7CFuH9XdC/cPDxGfR4R4mLxvSIgH/n7mJnR2cxC3DQxyw9HEPPF5RiEDFiIiIiKyPRxhMYM3Z4SJj8stOcJSVcnLw8kwxevZCT3hp7LH69P7Nfnenr4uJmuvPD2uB6LH98QjN3UFAGQWMemeiIiIiGwPAxYzsLeTwbMqiKiZzK7VtX60JadYA6FGPszV7GKkV03bMo6ULLylBw7/exy6eDm1eP9OSjmeGtcDw7t6AqgOhoiIiIiIbAmnhJmJccHInRezxG3/XMiERqvHiG5ecFbKEZdVjHKtDkNqTdkyKtFoEZOcj8uZxXh963k8dUt3nE4txCOju+Lv85kQBCCqty98VPZm67dx1KWswnIjQ0RERERErcWAxUwcFHVXuH/sfzHiYxd7OYrKtQCAk6+Mh7tTdeWu7w8l4sMdV8RqY0Yf7TQsPrn7UjZG9/ACAEzo62vWfhtXvC+p0Jp1v0RERERE5sCAxUxqrxxfmzFYAYDcEo1JwPLKL+ea3H+W2jBly8+MoytA9QhLqYYjLERERERke5jDYiZNBSw11V5lvjmM66T4uZo5YKkxwiJYcA0ZIiIiIqLWYMBiJvb1TAlrSEkrRjMKyyoBAL4u5g1YHKtGWPQCoNFariQzEREREVFrMGAxEwe75n8rSzStyxext5NC5WDeWXw1R4Za2y8iIiIiIkthwGIm9i2YElbaygR3P5U9JBJJq97bEJlUIgYtpawURkREREQ2hgGLmbQkLaXmlLCW5I2Ys5xxTU5KVgojIiIiIttktvlFv/76a4vfM378eDg4OJirC1bVkkUia46wtCRvxNwVwowcFXIAFa3KrSEiIiIisiSzBSzTp09vUXuJRIIrV66ga9eu5uqCVVXqmj9SUlJj6lVxC/JGfFXKFvWpuYxrsbR2qhoRERERkaWYdUpYRkYG9Hp9s74cHR3NeWir0+lbMMJSI0hpyfonvhabEmaIW5l0T0RERES2xmwBy7x581o0veu+++6DSqUy1+GtriVrq7R+hMVSU8Kqclg4JYyIiIiIbIzZApbVq1fDxcWl2e1XrVoFLy+vJtvt3bsX06ZNg7+/PyQSCbZs2dJo+/3792PkyJHw9PSEg4MDQkND8f7779dpt3LlSoSEhMDe3h6RkZE4evRos/ten8oGclic6lmfpeZIRkPTsOorBmbuRSONjAHL8z+fhr4Vi1oSEREREVmKzVcJKykpwYABA7By5cpmtXdycsLChQuxd+9eXLhwAS+//DJefvllfPHFF2KbH3/8EdHR0Xj11VcRExODAQMGYOLEicjKymp1P58a16Pe7ftfuAVHXxqHb+cPrf5MDYywPDAiBKdenYB9z4/FR/eE19mXpZLutVX5Nzq9gPPpaoscg4iIiIioNSRCS+rqNiE8PLzedUJcXV3Rs2dPLFq0CL179271/iUSCTZv3tziBP8ZM2bAyckJ33//PQAgMjISQ4YMwSeffAIA0Ov1CAwMxJNPPokXX3yxWftUq9VwdXVFYWGhOLXtZHI+7vj0IABALpXg+4ciMbybp/ieH48l44Wfz2BcqA++fmAIAOCPM+n4vx9iMDTEAxseG25yjLisItzzxRHkFGsAAJf/OxkKufljzI3HU/DcT6cBADPCO+PVaX3h6mhn9uMQERERkW2r7xrX2sy6bHpDgURBQQFiYmIwcOBA7Ny5EyNHjjTnYRt18uRJHDx4EP/9738BABUVFThx4gQWL14stpFKpYiKisKhQ4ca3I9Go4FGoxGfq9V1RyI6u1Xn8Pz25Cj07mT6QzaUDzZd72TNgUQA1Wuh1NTdxwX/nhKK7w8n4eWpvS0SrADA3RGBWH8sBSeS8rHpZCrySyuw+sGhTb+RiIiIiMjCzBqwvPrqq42+/tJLL2HJkiXYsWOHOQ9br4CAAGRnZ0Or1WLp0qVYsGABACAnJwc6nQ6+vr4m7X19fXHx4sUG97ds2TK89tprjR7ToZ58FZNjVE3pOhyfh6W/nsPMiEAcTcwDAHR2r79gwYxBAZgxKKDR/ZqDp5NCfLzrUrbFj0dERERE1BxtmsNy77334syZM21yrH379uH48eP47LPP8MEHH2DdunXXtb/FixejsLBQ/EpJSanTxsGuOmDR1ZO8HhHsjp6+zgCANQcT8cLPhmlYIZ6OeGlKn+vq3/Vy4xQwIiIiIrJBZh1haYpMJoO+BeuVXI8uXboAAMLCwpCZmYmlS5di9uzZ8PLygkwmQ2Zmpkn7zMxM+Pn5Nbg/pVIJpbLxhRvlsur4L9Cj7jozUqkEb93ZX8xzOZNaCAB4ZnzPJkdnLM3NUdF0IyIiIiKiNtamIyybNm1Cnz5tP5Kg1+vF/BOFQoHBgwebTEvT6/XYsWMHhg8f3tAumu34y1E48OItcHWof8QiPMgdX8+LMN0W6H7dx71eDfWXiIiIiMiazDrC8tFHH9W7vbCwECdOnMDvv/+OP//8s0X7LC4uRlxcnPg8ISEBsbGx8PDwQFBQEBYvXozU1FR89913AAzrqwQFBSE0NBSAYR2XFStW4KmnnhL3ER0djXnz5iEiIgJDhw7FBx98gJKSEjz44IMt/ch1eDk3PgoDAEO6eJg8byh/pS1xShgRERER2SKzBiz1LdAIACqVCr169cLevXtbPIpx/PhxjB07VnweHR0NAJg3bx7WrFmD9PR0JCcni6/r9XosXrwYCQkJkMvl6NatG9566y08+uijYptZs2YhOzsbS5YsQUZGBgYOHIht27bVScS3FJW9aXAgk9azSmQbs5OZDrYJglBviWoiIiIiorZk1nVYbiTXW6M69JU/UV5pyOdJXD7V3N1rsbVHkvHvzdUFEc4snQAXe466EBEREd1IbHEdljbNYblw4QKeffbZtjykzfphQSQCPRyw5sEh1u4KAGBQsJvJ88KySut0hIiIiIioBosHLCUlJfj6668xYsQI9O3bF9u2bbP0IduFwcEe2Pf8LRjTy8faXQEAhPqp8PPj1dP1TqUUWrE3REREREQGFgtYDhw4gPnz58PX1xePPPIIRowYgfPnz+Ps2bOWOiRdp8HBHuI6MU+sjUF6YZmVe0RERERENzqzBixZWVl4++23ERoairvuugtubm7YvXs3pFIp5s+fL1buItv1wIgu4uOVu+IaaUlEREREZHlmrRIWHByMu+66Cx9++CHGjx8PqbRNU2TIDO6NDIJUAry46QzSC8qt3R0iIiIiusGZNaIIDg7G/v37sXfvXly+fNmcu6Y2ZG8nAwCUa3VW7gkRERER3ejMGrBcvHgR//vf/5Ceno4hQ4Zg8ODB4tosXNOj/bC3M5wWxrLLRERERETWYvY5WyNHjsQ333yD9PR0PPbYY9i4cSN0Oh3+7//+D19++SWys7PNfUgyM6VxhKWSIyxEREREZF0WSzJxdnbGww8/jIMHD+LcuXMYPHgwXn75Zfj7+1vqkGQmSrnhtNBoOcJCRERERNbVJlnxvXv3xooVK5Camooff/yxLQ5J18H+OkdYNhxLwcbjKebsEhERERHdoMxWJUytVkOlUjV+MLkcM2bMAAAUFRXBxcXFXIcnM7KXGwOWlo+wFJZV4vmfTwMAJod1grPSrIXoiIiIiOgGY7YRFnd3d2RlZTW7fefOnREfH2+uw5MZGZPuNa2oElZQWiE+zi7SmK1PRERERHRjMtvtb0EQ8NVXX8HZ2blZ7SsrK811aDIzY9K9phUjLPml1T/XLHU5ung5ma1fRERERHTjMVvAEhQUhC+//LLZ7f38/GBnZ2euw5MZ2Vcl3Vfo9NDpBcikzStJfSWzCOfSCsXn2cUaCIKAtMJy+Lvas7Q1EREREbWY2QKWxMREc+2KrMyYdA8AFVo9HBSyRlobxGUVY/z7e022rT2SjH9vOgN1uRYr7h6AuwYHmL2vRERERNSxtUmVMGpfjGWNgeZVCqvU6fGfrefrbD94NRfqci0AYO2RJPN1kIiIiIhuGCzhRHXIZVLIpRJo9QLKm0i81+kFzPvmKA5ezW20XQhzWYiIiIioFTjCQvWyb2bi/ZGE3CaDFQAo1bRuTRciIiIiurExYKF6GaeFNTXCci2vDAAwuocXPr9/cJ3XPZwUAIAiDavCEREREVHLMWChelWvdt/4CEtqgSFgCXB3RFRvX3H73YMDMLK7J54e1wMAUFyVy0JERERE1BIWyWHZtm0bnJ2dMWrUKADAypUr8eWXX6JPnz5YuXIl3N3dLXFYMiNl1eKRTSXdGwOWzm72kEkl2Pmvm7HncjbmDg+BTCrBkXjDdLEiBixERERE1AoWGWF57rnnoFarAQBnzpzBv/71L0yZMgUJCQmIjo62xCHJzJTyqhwWbeMjLGlVAYu/mwMAoKu3Mx4c2UVcu8XF3rDWTpGGAQsRERERtZxFRlgSEhLQp08fAMDPP/+MW2+9FW+++SZiYmIwZcoUSxySzMy+iRGW8kod3tp2UUy471wVsNTmYm84xYrKmcNCRERERC1nkREWhUKB0tJSAMA///yDCRMmAAA8PDzEkReybfZyYw5L/QHLr7FpWH0gEQAgk0rQ1du53nbOSnnVfvSo1DU+WkNEREREVJtFRlhGjRqF6OhojBw5EkePHsWPP/4IALh8+TICArjaeXtgHBkpKK1/ZCT2WoH4eONjw+Htoqy3nbN99SlWotHCzVFhvk4SERERUYdnkRGWTz75BHK5HD/99BNWrVqFzp07AwD+/PNPTJo0yRKHJDPr4m1Y6DE+u7je189cKwQArLx3EAYFNVxEwU4mFaeXMfGeiIiIiFrKIiMsQUFB2Lp1a53t77//viUORxbQrWqKV0xyAXR6QUyiB4AKrR4XMwxT+/oHuDa5Lxd7O5RXahiwEBEREVGLmW2EpWZuilqtbvSLbJ8xYDmTWojnNp4yeS0lvxSVOgGOChkC3OtPtq/JRcnEeyIiIiJqHbONsLi7uyM9PR0+Pj5wc3ODRCKp00YQBEgkEuh0ja/tQdbX3ac6iX7TyVRkFpXjibHdMaKbF5JySwAAwZ5O9f6cazPmsRSztDERERERtZDZApadO3fCw8NDfNycC1myXa4OdnhuYi+889clAMCBuFykFZRj17NjkJhjqAAX4unYrH1VlzZmwEJERERELWO2gOXmm28WH48ZM8ZcuyUremJsdwS4O+Dp9bEAgGv5pRAEAYk1Rliaw1jamItHEhEREVFLWaRK2NKlS6HX111zo7CwELNnz7bEIclCbh/YGZf/OxkAUKkTkFdSgaTclo6wGFa7L+YICxERERG1kEUClq+//hqjRo1CfHy8uG337t0ICwvD1atXLXFIsiCFXApPJ8P6KRnqcmQVaQAAfq72zXq/M5PuiYiIiKiVLBKwnD59GgEBARg4cCC+/PJLPPfcc5gwYQLuv/9+HDx4sEX72rt3L6ZNmwZ/f39IJBJs2bKl0fabNm3C+PHj4e3tDZVKheHDh+Ovv/4yabN06VJIJBKTr9DQ0JZ+zBuKr8oQnGw8fg3ZVQGLl3P9i0XW5sKkeyIiIiJqJYusw+Lu7o4NGzbg3//+Nx599FHI5XL8+eefGDduXIv3VVJSggEDBmD+/PmYMWNGk+337t2L8ePH480334SbmxtWr16NadOm4ciRIwgPDxfb9e3bF//884/4XC63yLeiw/B2UQLpwJqDieI2nwZWt6+NSfdERERE1FoWu0r/+OOP8eGHH2L27Nk4ceIEnnrqKaxduxYDBgxo0X4mT56MyZMnN7v9Bx98YPL8zTffxC+//ILffvvNJGCRy+Xw8/NrUV9uZMZRFSOJBPComibWFGelIYeFAQsRERERtZRFpoRNmjQJr732Gr799lv88MMPOHnyJG666SYMGzYMb7/9tiUO2SC9Xo+ioiKx5LLRlStX4O/vj65du2LOnDlITk5udD8ajeaGXgDz4Zu6mDx3d1RALmve6VM9wsIcFiIiIiJqGYsELDqdDqdPn8Zdd90FAHBwcMCqVavw008/4f3337fEIRu0YsUKFBcXY+bMmeK2yMhIrFmzBtu2bcOqVauQkJCA0aNHo6ioqMH9LFu2DK6uruJXYGBgW3TfZkwf2Bn/nd5PfO7dzPwVgAtHEhEREVHrWWRK2Pbt2+vdPnXqVJw5c8YSh6zX2rVr8dprr+GXX36Bj4+PuL3mFLP+/fsjMjISwcHB2LBhAx566KF697V48WJER0eLz9Vq9Q0VtEgkEowNrf4etiT4cFEyYCEiIiKi1rHICEtjvLy82uQ469evx4IFC7BhwwZERUU12tbNzQ09e/ZEXFxcg22USiVUKpXJ142ms5sD7hocAAAY38e32e9zdTDksOQUaVCpq7s+DxERERFRQyw2JWzFihUYOnQo/Pz84OHhYfJlaevWrcODDz6IdevWYerUqU22Ly4uxtWrV9GpUyeL9629e+eu/tj42HA8N7FXs9/T1dsZXs5KlFTosP9KjgV7R0REREQdjUUCltdeew3vvfceZs2ahcLCQkRHR2PGjBmQSqVYunRpi/ZVXFyM2NhYxMbGAgASEhIQGxsrJskvXrwYc+fOFduvXbsWc+fOxbvvvovIyEhkZGQgIyMDhYWFYptnn30We/bsQWJiIg4ePIg77rgDMpkMs2fPvu7P3tFJJBIMCfGAk7L5swllUgmmhBkqsv1zIdNSXSMiIiKiDsgiAcsPP/yAL7/8Ev/6178gl8sxe/ZsfPXVV1iyZAkOHz7con0dP34c4eHhYkni6OhohIeHY8mSJQCA9PR0kwpfX3zxBbRaLZ544gl06tRJ/Hr66afFNteuXcPs2bPRq1cvzJw5E56enjh8+DC8vb3N8OmpPt19nAEAeSUVVu4JEREREbUnFkm6z8jIQFhYGADA2dlZHN249dZb8corr7RoX2PGjIEgCA2+vmbNGpPnu3fvbnKf69evb1Ef6Po5M/GeiIiIiFrBIiMsAQEBSE9PBwB069YNf//9NwDg2LFjUCqbXw6XOg5jwMLFI4mIiIioJSwSsNxxxx3YsWMHAODJJ5/EK6+8gh49emDu3LmYP3++JQ5JNs7F3lApjCMsRERERNQSFpkStnz5cvHxrFmzEBwcjIMHD6JHjx6YNm2aJQ5JNs642n0xR1iIiIiIqAUsErDUNmzYMAwbNqwtDkU2qnpKWKWVe0JERERE7UmbLxxJNybnqhGWkgoddPqGiygQEREREdXEgIXahHONdVtKKjgtjIiIiIiahwELtQl7OxkUMsPpxjwWIiIiImouswcsOp0Oe/fuRUFBgbl3Te2ccVoYK4URERERUXOZPWCRyWSYMGEC8vPzzb1raue4FgsRERERtZRFpoT169cP8fHxltg1tWOsFEZERERELWWRgOW///0vnn32WWzduhXp6elQq9UmX3RjcuGUMCIiIiJqIYuswzJlyhQAwG233QaJRCJuFwQBEokEOp3OEoclG8fFI4mIiIiopSwSsOzatcsSu6V2zjgljCMsRERERNRcFglYbr75Zkvslto5Y5UwJt0TERERUXNZJGABgIKCAnz99de4cOECAKBv376YP38+XF1dLXVIsnHOSjsADFiIiIiIqPksknR//PhxdOvWDe+//z7y8vKQl5eH9957D926dUNMTIwlDkntQHXSPauEEREREVHzWGSE5ZlnnsFtt92GL7/8EnK54RBarRYLFizAokWLsHfvXksclmwcq4QRERERUUtZJGA5fvy4SbACAHK5HM8//zwiIiIscUhqB7hwJBERERG1lEWmhKlUKiQnJ9fZnpKSAhcXF0sc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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(9,7))\n", + "ax = plt.subplot(211)\n", + "ax.set_xlim([0,np.max(times)/2./np.pi])\n", + "ax.set_xlabel(\"time [yrs]\")\n", + "ax.set_ylabel(\"semi-major axis [AU]\")\n", + "plt.plot(times/2./np.pi,a)\n", + "ax = plt.subplot(212)\n", + "ax.set_xlim([0,np.max(times)/2./np.pi])\n", + "ax.set_xlabel(\"time [yrs]\")\n", + "ax.set_ylabel(\"eccentricity\")\n", + "plt.plot(times/2./np.pi,e);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To check the sensitivity of the integrations, let us perturb the initial orbit by a small factor equal to the confidence interval posted by Bill Gray (https://projectpluto.com/temp/spacex.htm#elements). Instead of just integrating one particle at a time, we here add 10 test particles. We also switch to the high precision IAS15 integrator to get the most reliable result." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation(\"ss.bin\")\n", + "Ntesla = 10\n", + "for i in range(Ntesla):\n", + " sim.add(primary=sim.particles[0],\n", + " M=(tesla.M+0.0013*np.random.normal()) *np.pi/180.,\n", + " a=(tesla.a+0.000273*np.random.normal()),\n", + " omega = (tesla.omega+0.00059*np.random.normal()) *np.pi/180.,\n", + " Omega = (tesla.Omega+0.0007*np.random.normal()) *np.pi/180.,\n", + " e = (tesla.e+0.00015*np.random.normal()),\n", + " inc = (tesla.inc+0.0007*np.random.normal()) *np.pi/180.)\n", + "sim.N_active = 9 # Sun + planets" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's integrate this..." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "sim.dt = sim.particles[1].P/60. # small fraction of Mercury's period\n", + "sim.integrator=\"ias15\" \n", + "N = 1000\n", + "times = np.linspace(0.,2.*np.pi*1e3,N)\n", + "a_log = np.zeros((N,Ntesla))\n", + "e_log = np.zeros((N,Ntesla))\n", + "for i,t in enumerate(times):\n", + " sim.integrate(t,exact_finish_time=0)\n", + " for j in range(Ntesla):\n", + " orbit = sim.particles[9+j].orbit(primary=sim.particles[0])\n", + " a_log[i][j] = orbit.a\n", + " e_log[i][j] = orbit.e" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When plotting the semi-major axis and eccentricity of all orbits, note that their kicks are correlated. This is because they are all due to close encounters with the Earth. This fast divergence means that we cannot predict the trajectory for more than a hundred years without knowing the precise initial conditions and all the non-gravitational effects that might be acting on a car in space." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(9,7))\n", + "ax = plt.subplot(211)\n", + "ax.set_xlim([0,np.max(times)/2./np.pi])\n", + "ax.set_xlabel(\"time [yrs]\")\n", + "ax.set_ylabel(\"semi-major axis [AU]\")\n", + "for j in range(Ntesla):\n", + " plt.plot(times/2./np.pi,a_log[:,j])\n", + "ax = plt.subplot(212)\n", + "ax.set_xlim([0,np.max(times)/2./np.pi])\n", + "ax.set_xlabel(\"time [yrs]\")\n", + "ax.set_ylabel(\"eccentricity\")\n", + "for j in range(Ntesla):\n", + " plt.plot(times/2./np.pi,e_log[:,j])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/rebound/source/ipython_examples/Testparticles.ipynb b/rebound/source/ipython_examples/Testparticles.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..aaeaec4de4dd81b7ba4a35efac9f02e5d5e2d3bf --- /dev/null +++ b/rebound/source/ipython_examples/Testparticles.ipynb @@ -0,0 +1,374 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Test particles\n", + "In this tutorial, we run a simulation with many test particles. A simulation with test particles can be much faster, because it scales as $\\mathcal{O}(N)$ compared to a simulation with massive particles, which scales as $\\mathcal{O}(N^2)$. \n", + "\n", + "There are two types of test particles implemented in REBOUND. We first talk about *real* test particle, i.e. particles which have no mass and therefore do not perturb any other particle. In REBOUND, these are referred to as type 0. \n", + "\n", + "Let's first set up two massive particles in REBOUND, move to the center of mass frame, and choose WHFast as the integrator." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-3, a=1, e=0.05)\n", + "sim.move_to_com()\n", + "sim.integrator = \"whfast\"\n", + "sim.dt = 0.05" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t3.15.0\n", + "REBOUND built on: \tFeb 8 2021 15:12:45\n", + "Number of particles: \t2\n", + "Selected integrator: \twhfast\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.050000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we'll add the test particles. We just set the mass to zero. Note that we give the `add()` function no `m` argument and it therefore sets the mass is zero. We randomize the true anomaly of the particles and place them outside the massive planet.\n", + "\n", + "The test-particles must be added after all massive planets have been added." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "N_testparticle = 1000\n", + "a_initial = np.linspace(1.1, 3, N_testparticle)\n", + "for a in a_initial:\n", + " sim.add(a=a,f=np.random.rand()*2.*np.pi) # mass is set to 0 by default, random true anomaly " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we set the `N_active` variable of REBOUND to the number of active particles in our simulation. Here, we have two active (massive) particles, the star and the planet." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "sim.N_active = 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let's do the simulation. We will run it for 200 orbits of the planet which, in our units of $G=1$, is $t_{\\rm max} = 200\\cdot2\\pi$. While we run the simulation, we'll keep store the position of all test particles 10 times during the interval." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "rebound/simulation.py:716: RuntimeWarning: WHFast convergence issue. Timestep is larger than at least one orbital period.\n", + " warnings.warn(msg[1:], RuntimeWarning)\n" + ] + } + ], + "source": [ + "t_max = 200.*2.*np.pi\n", + "N_out = 10\n", + "xy = np.zeros((N_out, N_testparticle, 2))\n", + "times = np.linspace(0, t_max, N_out)\n", + "for i, time in enumerate(times):\n", + " sim.integrate(time)\n", + " for j, p in enumerate(sim.particles[2:]):\n", + " xy[i][j] = [p.x, p.y]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now plot the test particles' positions." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(5,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlim([-3,3])\n", + "ax.set_ylim([-3,3])\n", + "plt.scatter(xy[:,:,0],xy[:,:,1],marker=\".\",linewidth=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One can see that some particles changed their orbits quite significantly, while others seem to stay roughly on circular orbits. To investigate this a bit further, we now calculate and plot the relative change of the test particles' semi-major axis over the duration of the simulation. We'll plot it as a function of the initial period ratio $r=P_{\\rm test particle}/P_{\\rm planet}$ for which we make use of Kepler's law, $P = 2\\pi\\sqrt{a^3/GM}$." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "orbits = sim.orbits()[1:]\n", + "a_final = [o.a for o in orbits]\n", + "fig = plt.figure(figsize=(15,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_yscale('log')\n", + "ax.set_xlabel(r\"period ratio $r$\")\n", + "ax.set_ylabel(\"relative semi-major axis change\")\n", + "plt.plot(np.power(a_initial,1.5),(np.fabs(a_final-a_initial)+1.0e-16)/a_initial,marker=\".\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Very close to the planet test particles change their semi-major axis by order unity. These particles have a close encounter with the planet and get scattered.\n", + "\n", + "We also see two peaks at $r=2$ and $r=3$. These correspond to mean motion resonances. We can also see the mean motion resonances by plotting the eccentricities of the particles. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "e_final = np.array([o.e for o in orbits])\n", + "fig = plt.figure(figsize=(15,5))\n", + "ax = plt.subplot(111)\n", + "#ax.set_ylim([0,1])\n", + "ax.set_yscale('log')\n", + "ax.set_xlabel(r\"period ratio $r$\")\n", + "\n", + "ax.set_ylabel(\"final eccentricity\")\n", + "plt.plot(np.power(a_initial,1.5),e_final+1.0e-16,marker=\".\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once again, we see peaks at $r=2$ and $r=3$, corresponding to the 2:1 and 3:1 mean motion resonance. You can even see a hint of an effect at $r=4$, the 4:1 mean motion resonance." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the above example, the planet did not change its semi-major axis as the test particles have zero mass and do not affect any other particles. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0000000000000027\n" + ] + } + ], + "source": [ + "print(sim.orbits()[0].a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us change this assumption by allow the test particles to have a small mass and influence the planet. Test particles do still not influence other test particles. This setup is referred to as type 1 in REBOUND." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.)\n", + "sim.add(m=1e-3, a=1, e=0.05)\n", + "sim.move_to_com()\n", + "sim.integrator = \"whfast\"\n", + "sim.dt = 0.05\n", + "N_testparticle = 1000\n", + "a_initial = np.linspace(1.1, 3, N_testparticle)\n", + "for a in a_initial:\n", + " sim.add(a=a,f=np.random.rand()*2.*np.pi, m=1e-7)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As above, we set `N_active` to the number of massive bodies. We also set the `testparticle_type` to 1, which allows interactions between test particles and massive particles, but not between test particles themselves. This is similar to what MERCURY calls small bodies." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "sim.N_active = 2\n", + "sim.testparticle_type = 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we integrate this simulation forwards in time and output the semi-major axis of the planet, we can see that it changed slightly from the initial $a=1$ due to interactions with the test particles. " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.9977589957255236\n" + ] + } + ], + "source": [ + "sim.integrate(t_max)\n", + "print(sim.orbits()[0].a)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.1+" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/TransitTimingVariations.ipynb b/rebound/source/ipython_examples/TransitTimingVariations.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..e739cc62f9d9aed431467ca82591fcec3cfefb7a --- /dev/null +++ b/rebound/source/ipython_examples/TransitTimingVariations.ipynb @@ -0,0 +1,176 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Calculating Transit Timing Variations (TTV) with REBOUND\n", + "The following code finds the transit times in a two planet system. The transit times of the inner planet are not exactly periodic, due to planet-planet interactions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, let's import the REBOUND and numpy packages." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's set up a coplanar two planet system." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1)\n", + "sim.add(m=1e-5, a=1,e=0.1,omega=0.25)\n", + "sim.add(m=1e-5, a=1.757)\n", + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We're now going to integrate the system forward in time. We assume the observer of the system is in the direction of the positive x-axis. We want to measure the time when the inner planet transits. In this geometry, this happens when the y coordinate of the planet changes sign. Whenever we detect a change in sign between two steps, we try to find the transit time, which must lie somewhere within the last step, by bisection. " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "N=174\n", + "transittimes = np.zeros(N)\n", + "p = sim.particles\n", + "i = 0\n", + "while i0.: # sign changed (y_old*y<0), planet in front of star (x>0)\n", + " while t_new-t_old>1e-7: # bisect until prec of 1e-5 reached\n", + " if y_old*(p[1].y-p[0].y)<0.:\n", + " t_new = sim.t\n", + " else:\n", + " t_old = sim.t\n", + " sim.integrate( (t_new+t_old)/2.)\n", + " transittimes[i] = sim.t\n", + " i += 1\n", + " sim.integrate(sim.t+0.05) # integrate 0.05 to be past the transit " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we do a linear least square fit to remove the linear trend from the transit times, thus leaving us with the transit time variations." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "A = np.vstack([np.ones(N), range(N)]).T\n", + "c, m = np.linalg.lstsq(A, transittimes, rcond=-1)[0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let us plot the TTVs." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(10,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlim([0,N])\n", + "ax.set_xlabel(\"Transit number\")\n", + "ax.set_ylabel(\"TTV [hours]\")\n", + "plt.scatter(range(N), (transittimes-m*np.array(range(N))-c)*(24.*365./2./np.pi));" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.1+" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/UniquelyIdentifyingParticlesWithHashes.ipynb b/rebound/source/ipython_examples/UniquelyIdentifyingParticlesWithHashes.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..8dd51f9b02ca09fc01092c482a4157e85ef1deb5 --- /dev/null +++ b/rebound/source/ipython_examples/UniquelyIdentifyingParticlesWithHashes.ipynb @@ -0,0 +1,548 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Uniquely Identifying Particles With Hashes\n", + "\n", + "In many cases, one can just identify particles by their position in the particle array, e.g. using ``sim.particles[5]``. However, in cases where particles might get reordered in the particle array finding a particle might be difficult. This is why we added a *hash* attribute to particles.\n", + "\n", + "In REBOUND particles might get rearranged when a tree code is used for the gravity or collision routine, when particles merge, when a particle leaves the simulation box, or when you manually remove or add particles. In general, therefore, the user should not assume that particles stay at the same index or in the same location in memory. The reliable way to access particles is to assign them hashes and to access particles through them. Assigning hashes make ``sim.particles`` to behave like Python's `dict` while keeping list-like integer-based indexing at the same time.\n", + "\n", + "**Note**: When you don't assign particles a hash, they automatically get set to 0. The user is responsible for making sure hashes are unique, so if you set up particles without a hash and later set a particle's hash to 0, you don't know which one you'll get back when you access hash 0. See [Possible Pitfalls](#Possible-Pitfalls) below.\n", + "\n", + "In this example, we show the basic usage of the *hash* attribute." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "sim = rebound.Simulation()\n", + "sim.add(m=1., hash=999)\n", + "sim.add(a=0.4, hash=\"mercury\")\n", + "sim.add(a=1., hash=\"earth\")\n", + "sim.add(a=5., hash=\"jupiter\")\n", + "sim.add(a=7.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now not only access the Earth particle with:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[2]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "but also with" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[\"earth\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can access particles with negative indices like a list. We can get the last particle with" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[-1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also set hash after particle is added." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[-1].hash = 'pluto'\n", + "sim.particles['pluto']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Details" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We usually use strings as hashes, however, under the hood hash is an unsigned integer (`c_uint`). There is a function `rebound.hash` that calculates actual hash of a string." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "c_uint(1424801690)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from rebound import hash as h\n", + "h(\"earth\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The same function can be applied to integers. In this case it just casts the value to the underlying C datatype (`c_uint`)." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "c_uint(999)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h(999)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "c_uint(4294967294)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h(-2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When we above set the hash to some value, REBOUND converted this value to an unsigned integer using the same `rebound.hash` function." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "c_uint(999)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[0].hash # particle was created with sim.add(m=1., hash=999)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "c_uint(1424801690)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[2].hash \n", + "# particle was created with sim.add(a=1., hash=\"earth\")\n", + "# so the hash is the same as h(\"earth\") above" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When we use string as an index to access particle, function `rebound.hash` is applied to the index and a particle with this hash is returned. On the other hand, if we use integer index, it is not treated as a hash, REBOUND just returns a particle with given position in array, i.e. `sim.particles[0]` is the first particle, etc.\n", + "\n", + "We can access particles through their hash directly. However, to differentiate from passing an integer index, we have to first cast the hash to the underlying C datatype by using `rebound.hash` manually." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[h(999)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which corresponds to `particles[0]` as it should. `sim.particles[999]` would try to access index 999, which doesn't exist in the simulation, and REBOUND would raise an AttributeError." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The hash attribute always returns the appropriate unsigned integer ctypes type. (Depending on your computer architecture, `ctypes.c_uint32` can be an alias for another `ctypes` type).\n", + "\n", + "So we could also access the earth with:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[h(1424801690)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The numeric hashes could be useful in cases where you have a lot of particles you don't want to assign individual names, but you still need to keep track of them individually as they get rearranged:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(1,100):\n", + " sim.add(m=0., a=i, hash=i)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "95.0" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[99].a" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "98.99999999999999" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim.particles[h(99)].a" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Possible Pitfalls\n", + "The user is responsible for making sure the hashes are unique. If two particles share the same hash, you could get either one when you access them using their hash (in most cases the first hit in the `particles` array). Two random strings used for hashes have a $\\sim 10^{-9}$ chance of clashing. The most common case is setting a hash to 0:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1., hash=0)\n", + "sim.add(a=1., hash=\"earth\")\n", + "sim.add(a=5.)\n", + "sim.particles[h(0)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we expected to get back the first particle, but instead got the last one. This is because we didn't assign a hash to the last particle and it got automatically set to 0. If we give hashes to all the particles in the simulation, then there's no clash:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1., hash=0)\n", + "sim.add(a=1., hash=\"earth\")\n", + "sim.add(a=5., hash=\"jupiter\")\n", + "sim.particles[h(0)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Due to details of the `ctypes` library, comparing two `ctypes.c_uint32` instances for equality fails:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h(32) == h(32)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You have to compare the value" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h(32).value == h(32).value" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "See the docs for further information: https://docs.python.org/3/library/ctypes.html" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/Units.ipynb b/rebound/source/ipython_examples/Units.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..71980e17413fa6d14600adca73a862c531a05d71 --- /dev/null +++ b/rebound/source/ipython_examples/Units.ipynb @@ -0,0 +1,208 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Unit convenience functions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For convenience, REBOUND offers simple functionality for converting units. One implicitly sets the units for the simulation through the values used for the initial conditions, but one has to set the appropriate value for the gravitational constant `G`, and sometimes it is convenient to get the output in different units.\n", + "\n", + "The default value for `G` is 1, so one can:\n", + "\n", + "a) use units for the initial conditions where `G=1` (e.g., AU, $M_\\odot$, yr/$2\\pi$)\n", + "\n", + "b) set `G` manually to the value appropriate for the adopted initial conditions, e.g., to use SI units," + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import math\n", + "sim = rebound.Simulation()\n", + "sim.G = 6.674e-11" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "c) set rebound.units:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "G = 39.476926421373.\n" + ] + } + ], + "source": [ + "sim.units = ('yr', 'AU', 'Msun')\n", + "print(\"G = {0}.\".format(sim.G))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you set the units, REBOUND converts `G` to the appropriate value for the units passed (must pass exactly 3 units for mass length and time, but they can be in any order). Note that if you are interested in high precision, you have to be quite particular about the exact units. \n", + "\n", + "As an aside, the reason why `G` differs from $4\\pi^2 \\approx 39.47841760435743$ is mostly that we follow the convention of defining a \"year\" as 365.25 days (a Julian year), whereas the Earth's sidereal orbital period is closer to 365.256 days (and at even finer level, Venus and Mercury modify the orbital period). `G` would only equal $4\\pi^2$ in units where a \"year\" was exactly equal to one orbital period at $1 AU$ around a $1 M_\\odot$ star.\n", + "\n", + "**Adding particles**\n", + "\n", + "If you use `sim.units` at all, you need to set the units before adding any particles. You can then add particles in any of the ways described in [WHFast.ipynb](../WHFast). You can also add particles drawing from the horizons database (see [Churyumov-Gerasimenko.ipynb](../Churyumov-Gerasimenko)). If you don't set the units ahead of time, HORIZONS will return initial conditions in units of AU, $M_\\odot$ and yrs/$2\\pi$, such that `G=1`. \n", + "\n", + "Above we switched to units of AU, $M_\\odot$ and yrs, so when we add Earth:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Searching NASA Horizons for 'Earth'... Found: Target body name: Earth-Moon Barycenter (3).\n", + "v = 6.370350510017522\n" + ] + } + ], + "source": [ + "sim.add('Earth')\n", + "ps = sim.particles\n", + "import math\n", + "print(\"v = {0}\".format(math.sqrt(ps[0].vx**2 + ps[0].vy**2 + ps[0].vz**2)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "we see that the velocity is correctly set to approximately $2\\pi$ AU/yr.\n", + "\n", + "If you'd like to enter the initial conditions in one set of units, and then use a different set for the simulation, you can use the sim.convert_particle_units function, which converts both the initial conditions and `G`. Since we added Earth above, we restart with a new `Simulation` instance; otherwise we'll get an error saying that we can't set the units with particles already loaded:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t3.15.0\n", + "REBOUND built on: \tFeb 8 2021 15:12:45\n", + "Number of particles: \t2\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "sim.units = ('m', 's', 'kg')\n", + "sim.add(m=1.99e30)\n", + "sim.add(m=5.97e24,a=1.5e11)\n", + "\n", + "sim.convert_particle_units('AU', 'yr', 'Msun')\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We first set the units to SI, added (approximate values for) the Sun and Earth in these units, and switched to AU, yr, $M_\\odot$. You can see that the particle states were converted correctly--the Sun has a mass of about 1, and the Earth has a distance of about 1.\n", + "\n", + "Note that when you pass orbital elements to sim.add, you *must* make sure `G` is set correctly ahead of time (through either 3 of the methods above), since it will use the value of `sim.G` to generate the velocities:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "G = 1.0\n", + "---------------------------------\n", + "REBOUND version: \t3.15.0\n", + "REBOUND built on: \tFeb 8 2021 15:12:45\n", + "Number of particles: \t2\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "sim = rebound.Simulation()\n", + "print(\"G = {0}\".format(sim.G))\n", + "sim.add(m=1.99e30)\n", + "sim.add(m=5.97e24,a=1.5e11)\n", + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The orbital speed of Earth is $\\sim 3\\times 10^4$ m/s, but since we didn't correctly set `G` ahead of time, we get $\\sim 3\\times 10^9$ m/s, so the Earth would fly off the Sun in this simulation." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.1+" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/User_Defined_Collision_Resolve.ipynb b/rebound/source/ipython_examples/User_Defined_Collision_Resolve.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..ff3285f6662e1cca0f97273e82bff25974559841 --- /dev/null +++ b/rebound/source/ipython_examples/User_Defined_Collision_Resolve.ipynb @@ -0,0 +1,192 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# User Defined Rebound Collision Resolutions\n", + "\n", + "In the [CloseEncounter](https://rebound.hanno-rein.de/ipython_examples/CloseEncounters/) example, we discuss methods for resolving collisions in REBOUND through exceptions and the use of the `sim.collision_resolve = \"merge\"` method.\n", + "\n", + "Using the same 3-Body setup, let us explore how to define and implement the same collision resolution function in python and pass it to the `sim.collision_resolve` function pointer." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "def setupSimulation():\n", + " ''' Setup the 3-Body scenario'''\n", + " sim = rebound.Simulation()\n", + " sim.integrator = \"ias15\" # IAS15 is the default integrator, so we don't need this line\n", + " sim.add(m=1.)\n", + " sim.add(m=1e-3, a=1., r=np.sqrt(1e-3/3.)) # we now set collision radii!\n", + " sim.add(m=5e-3, a=1.25, r=1.25*np.sqrt(5e-3/3.))\n", + " sim.move_to_com()\n", + " return sim" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To reiterate the previous method, let's run the built-in `merge` collision resolution method" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Particles in the simulation at t= 0.0: 3\n", + "System Mass: [1.0, 0.001, 0.005]\n", + "Particles in the simulation at t= 100.0: 2\n", + "System Mass: [1.0, 0.006]\n" + ] + } + ], + "source": [ + "sim = setupSimulation()\n", + "sim.collision = \"direct\"\n", + "sim.collision_resolve = \"merge\" # Built in function\n", + "\n", + "print(\"Particles in the simulation at t=%6.1f: %d\"%(sim.t,sim.N))\n", + "print(\"System Mass: {}\".format([p.m for p in sim.particles]))\n", + "sim.integrate(100.)\n", + "print(\"Particles in the simulation at t=%6.1f: %d\"%(sim.t,sim.N))\n", + "print(\"System Mass: {}\".format([p.m for p in sim.particles]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see above that two particles merged into one with a combined mass of 0.006.\n", + "\n", + "Let's now try to implement this collision function ourselves!\n", + "\n", + "To do this, we need to write a function which we can pass to `sim.collision_resolve`. In this case let's define `my_merge`. \n", + "\n", + "Now, whenever a collision occurs, REBOUND will pass our function two parameters:\n", + "\n", + " - `sim_pointer`: a pointer to the simulation object which the collision occurred in.\n", + " - Because it is a ctypes pointer, you will need to use the `.contents` attribute to access the simulation object\n", + " - `collision`: this structure contains the attributes .p1 and .p2 which are the indices of the two particles involved in the collision\n", + "\n", + "Using these inputs, we can define the necessary logic to handle the collision. The return value of our function determines how REBOUND proceeds afterwards:\n", + "\n", + " - 0: Simulation continues without changes\n", + " - 1: remove p1 from simulation\n", + " - 2: remove p2 from simulation\n", + "\n", + "Let us look at how this information can be used to implement the logic of the `merge` method for colliding particles in a totally inelastic collision." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def my_merge(sim_pointer, collided_particles_index):\n", + "\n", + " sim = sim_pointer.contents # retreive the standard simulation object\n", + " ps = sim.particles # easy access to list of particles\n", + "\n", + " i = collided_particles_index.p1 # Note that p1 < p2 is not guaranteed. \n", + " j = collided_particles_index.p2 \n", + "\n", + " # This part is exciting! We can execute additional code during collisions now!\n", + " op = rebound.OrbitPlot(sim, xlim = (-1.3, 1.3), ylim = (-1.3, 1.3), color=['blue', 'green'])\n", + " op.ax.set_title(\"Merging particle {} into {}\".format(j, i))\n", + " op.ax.text(ps[1].x, ps[1].y, \"1\"); \n", + " op.ax.text(ps[2].x, ps[2].y, \"2\")\n", + " # So we plot the scenario exactly at the timestep that the collision function is triggered\n", + "\n", + " # Merging Logic \n", + " total_mass = ps[i].m + ps[j].m\n", + " merged_planet = (ps[i] * ps[i].m + ps[j] * ps[j].m)/total_mass # conservation of momentum\n", + "\n", + " # merged radius assuming a uniform density\n", + " merged_radius = (ps[i].r**3 + ps[j].r**3)**(1/3)\n", + "\n", + " ps[i] = merged_planet # update p1's state vector (mass and radius will need corrections)\n", + " ps[i].m = total_mass # update to total mass\n", + " ps[i].r = merged_radius # update to joined radius\n", + "\n", + " return 2 # remove particle with index j" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can set our new collision resolution function in the simulation object." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim = setupSimulation()\n", + "sim.collision = \"direct\"\n", + "ps = sim.particles\n", + "sim.collision_resolve = my_merge # user defined collision resolution function\n", + "sim.integrate(100.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that we were not only able to resolve the collision, but also to run additional code during the collision, in this case to make a plot, which can be very useful for debugging or logging. Now that you know the basics, you can expand the scenario here and resolve collisions according to the astrophysical problem you are working on." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/VariationalEquations.ipynb b/rebound/source/ipython_examples/VariationalEquations.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..0d9d50729581d5c712b7973003089d4c9bd609c4 --- /dev/null +++ b/rebound/source/ipython_examples/VariationalEquations.ipynb @@ -0,0 +1,303 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Variational Equations\n", + "For a complete introduction to variational equations, please read the paper by Rein and Tamayo (2016).\n", + "\n", + "For this tutorial, we work with a two planet system. We vary the initial semi-major axis $a$ of the outer planet. Because the planets interact with each other, the final $x$-position of the inner planet at the end of the simulation will depend on the initial semi-major axis of the outer planet. We run the simulation once for a fixed $a_0$ and then use first and second order variational equations to predict the final position of the outer planet for different $a$s in a neighbourhood of $a_0$. \n", + "\n", + "To do that, let us first import REBOUND, numpy and matplotlib." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib.ticker import FormatStrFormatter" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before using variational equations, let us define a function that calculates the final position of the inner planet as a function of $a$ in the brute-force way:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def run_sim(a):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.)\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1)\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=a)\n", + " \n", + " sim.integrate(2.*np.pi*10.)\n", + " return sim.particles[1].x" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll use this function to create a list of *true* final positions to which we later compare our results." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "N=400\n", + "x_exact = np.zeros((N))\n", + "a_grid = np.linspace(1.4,1.7,N)\n", + "for i,a in enumerate(a_grid):\n", + " x_exact[i] = run_sim(a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Running a simulation with variational equations is very easy. We start by creating a simulation and add the three particles (the star and two planets) just as before. Note that the `vary` convenience function we use below only accepts heliocentric coordinates, so we explicitly tell REBOUND that the star is the primary when adding particles to the simulation. \n", + "\n", + "We then add variational particles to the simulation. We vary one parameter ($a$) and thus need only one set of first order variational equations. The second order variational equations depend on the first order ones. Thus, when initializing them, one has to pass the set of first order variational equations using the 'first_order' parameter.\n", + "\n", + "After adding a variation, one must always initialize it. We do this below with REBOUND's `vary()` convenience function, which makes varying orbital parameters particularly easy. Alternatively, one can also initialize the variational particles directly, e.g. using `var_da.particles[1].x = 1`. Note that variations are implemented as particles, but you they really represent derivatives of a particle's coordinates with respect to some initial parameter. For more details, see Rein and Tamayo (2016).\n", + "\n", + "The function below does all that and returns the final position of the inner planet, as well as the first and second derivatives of the position with respect to $a$. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def run_sim_var(a):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.)\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1)\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=a)\n", + " var_da = sim.add_variation()\n", + " var_dda = sim.add_variation(order=2, first_order=var_da)\n", + " var_da.vary(2, \"a\")\n", + " var_dda.vary(2, \"a\")\n", + " \n", + " sim.integrate(2.*np.pi*10.)\n", + " return sim.particles[1].x, var_da.particles[1].x, var_dda.particles[1].x" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now use the variational equations to predict the final position of the inner particle. Note that we only run one simulation, at $a_0=1.56$." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "a_0 = 1.56\n", + "x, dxda, ddxdda = run_sim_var(a_0)\n", + "x_1st_order = np.zeros(N)\n", + "x_2nd_order = np.zeros(N)\n", + "for i,a in enumerate(a_grid):\n", + " x_1st_order[i] = x + (a-a_0)*dxda\n", + " x_2nd_order[i] = x + (a-a_0)*dxda + 0.5*(a-a_0)*(a-a_0)*ddxdda" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the figure below, we plot the final position as a function of the initial semi-major axis. The black line corresponds to the true final position as calculated by the brute-force approach. The dashed and dotted lines correspond to the approximations using first and second order variational equations. As one can see, the second order approximation is very accurate within a neighbourhood of $a_0$. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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XFyKZwh9EaoKzyysGIfqsqlLir++SN1S6jvU5FFODV+ZHKFQoUJcvnyZx48fkzVr1iQNHW3Xrh0PHjzg22+/JTg4mHLlyrF9+3ZjR+HAwMB4U31HRkYyevRoAgICcHJyolGjRqxcuZIsWbKYnEGkb7GxsfTo0cN4OXLMmDFUqlRJ41TvN2zYMNauXWtskZw6daqs95TKREUZLg1mz/7/217t+N25c+cUH5ofp+LouLEj1x5fI79zfqY0SNjiqEKktETNQzN48OAEHzgtreUk89CkL1OnTuXrr78GDEO0T548+dpaZZbqxIkTVKlShbi4OBwcHLh06RIFChQADCtvb9oEY8aAt7e2OcWb/fMPfPQRNG4Mf/5pmDKgaNGiXLt2DZ1Ox61bt8iXL1+KZhq7ZywT9k/AwcaBQ58fokKuCin6+iL1s8h5aN40++6byOReIrW6ffu2cQX5l4tOppZiBqBy5cr079+f6dOnExkZyddff82GDRsA2LEDtm41dDaVgsYy/W+eRFxcDP89duwY165dA6B27dopXsz8cfkPJuyfAMCCxgukmBEWLVEFzZ49e5IrhxCaU0rRp08fIiIiAPjqq6/wToXf/OPHj+e3334jJCSEjRs3snPnTurXr0+3blC5suGvf2GZhgyBTp3gxQvDfS07A19+eJlOmzoB0N+rP53KdkrR1xcisZK89AHw2izBaY1cckof1q9fT9u2bQHDkhqXLl1Ktf/eK1asoEuXLoBhhNaZM2csYqivSLioqChy5cpFaGgoGTJkIDg42DhVRko4f/88TX9riruzO7s67cLWOvW0VArLklLfoUlanHLx4sWUKlUKBwcHHBwcKFWqFIsWLTJXNiFSzPPnzxk0aJDx/qxZs1JtMQPQsWNH41QHly9fZt68eRonEom1detWQkNDAWjZsmWKFjMApXKW4mTPk/ze5ncpZkSqYHJB8+233zJgwACaNGnC+vXrWb9+PU2aNGHQoEGvTewlhKX78ccfuXPnDgCffPIJLVq00DhR0lhZWTFr1izj/e+++46nT58SGWmYUn/bNg3DiTcaPRq6doWTJw33tbrcdO/Z/y8bk80xGzky5kix1xYiSUwd7+3i4qJWr1792vbVq1er7Nmzm3pYiyTz0KRtt27dMk4rb2trq65evap1JLNp3769cQ6TUaNGqd9+M0ypX7as1snE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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(6,4))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlim(a_grid[0],a_grid[-1])\n", + "ax.set_ylim(np.min(x_exact),np.max(x_exact)*1.01)\n", + "ax.set_xlabel(\"initial semi-major axis of the outer planet\")\n", + "ax.set_ylabel(\"$x$ position of inner planet after 10 orbits\")\n", + "ax.plot(a_grid, x_exact, \"-\", color=\"black\", lw=2)\n", + "ax.plot(a_grid, x_1st_order, \"--\", color=\"green\")\n", + "ax.plot(a_grid, x_2nd_order, \":\", color=\"blue\")\n", + "ax.plot(a_0, x, \"ro\",ms=10);" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "For chaotic systems, the coordinates of variational particles grow exponentially. Very quickly, one might run into numerical issues because the finite range of floating point numbers prevents us from working with number larger than $\\approx10^{308}$. REBOUND (as of version 3.21) automatically rescales first order variational variables when coordinates become larger than $10^{100}$. This is possible because first order variational equations (in contrast to second order ones) are linear.\n", + "\n", + "Consider the following chaotic planetary system:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()\n", + "sim.add(m=1.) # Star\n", + "sim.add(m=0.000954, a=5.204, M=0.600, omega=0.257, e=0.048) # planet 1\n", + "sim.add(m=0.000285, a=7.2, M=0.871, omega=1.616, e=0.12) # planet 2\n", + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us add a first order set of variational equations:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "v = sim.add_variation()\n", + "v.particles[1].x = 1 " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we integrate this forward in time, keeping track of the x coordinate of the variational particle as well as the `lrescale` parameter in the `reb_variational_configuration` struct `v`. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrator = \"whfast\"\n", + "sim.dt = 5.0\n", + "times = np.linspace(0,1e6,1000)\n", + "xs = np.zeros(len(times))\n", + "lrescale = np.zeros(len(times))\n", + "\n", + "for i in range(len(times)):\n", + " sim.integrate(times[i], exact_finish_time=0)\n", + " xs[i] = v.particles[1].x\n", + " lrescale[i] = v.lrescale" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then use `lrescale` to extend our integration beyond what would normally be possible using standard floating point numbers. The `lrescale` parameter is the logarithm of all rescalings that have been applied to the variational particles. Note that we need to do all the calculations in log space because the values are too big for floating point numbers." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "log_xs = np.log(np.abs(xs)) + lrescale\n", + "log10_xs = log_xs/np.log(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "ax.set_ylabel(\"$|x|$\")\n", + "ax.set_xlabel(\"time [orbits]\")\n", + "ax.plot(times/sim.particles[1].P, np.log10(np.abs(xs)), label= \"actual x coordinate of variational particle \\n (not taking rescaling into account)\")\n", + "ax.plot(times/sim.particles[1].P, log10_xs, label= \"x coordinate of variational particle \\n (rescaling taken into account)\")\n", + "plt.axhline(y=308, color='k', linestyle='--', label = \"maximum range of floating point numbers\")\n", + "ax.yaxis.set_major_formatter(FormatStrFormatter('$10^{%.f}$'))\n", + "ax.legend(loc=\"upper left\");" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/VariationalEquationsWithChainRule.ipynb b/rebound/source/ipython_examples/VariationalEquationsWithChainRule.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..0a1d20d4e2a3294ca887b1494cfd8bbd773b84e1 --- /dev/null +++ b/rebound/source/ipython_examples/VariationalEquationsWithChainRule.ipynb @@ -0,0 +1,395 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Using Variational Equations With the Chain Rule\n", + "\n", + "For a complete introduction to variational equations, please read the paper by Rein and Tamayo (2016).\n", + "\n", + "Variational equations can be used to calculate derivatives in an $N$-body simulation. More specifically, given a set of initial conditions $\\alpha_i$ and a set of variables at the end of the simulation $v_k$, we can calculate all first order derivatives\n", + "$$\\frac{\\partial v_k}{\\partial \\alpha_i}$$\n", + "as well as all second order derivates\n", + "$$\\frac{\\partial^2 v_k}{\\partial \\alpha_i\\partial \\alpha_j}$$\n", + "\n", + "For this tutorial, we work with a two planet system. \n", + "\n", + "We first chose the semi-major axis $a$ of the outer planet as an initial condition (this is our $\\alpha_i$). At the end of the simulation we output the velocity of the star in the $x$ direction (this is our $v_k$). \n", + "\n", + "To do that, let us first import REBOUND and numpy." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "import rebound\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function takes $a$ as a parameter, then integrates the two planet system and returns the velocity of the star at the end of the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def calculate_vx(a):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.) # star\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1) # inner planet\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=a) # outer planet\n", + " sim.integrate(2.*np.pi*10.) # integrate for ~10 orbits\n", + " return sim.particles[0].vx # return star's velocity in the x direction" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0004924175842478658" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "calculate_vx(a=1.5) # initial semi-major axis of the outer planet is 1.5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we run the simulation again, with a different initial $a$, we get a different velocity:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.000750246684761206" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "calculate_vx(a=1.51) # initial semi-major axis of the outer planet is 1.51" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We could now run many different simulations to map out the parameter space. This is a very simple example of a typical use case: the fitting of a radial velocity datapoint. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "However, we can be smarter than simple running an almost identical simulation over and over again by using variational equations. These will allow us to calculate the *derivate* of the stellar velocity at the end of the simulation. We can take derivative with respect to any of the initial conditions, i.e. a particle's mass, semi-major axis, x-coordinate, etc. Here, we want to take the derivative with respect to the semi-major axis of the outer planet. The following function does exactly that:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def calculate_vx_derivative(a):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.) # star\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1) # inner planet\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=a) # outer planet\n", + " \n", + " v1 = sim.add_variation() # add a set of variational particles\n", + " v1.vary(2,\"a\") # initialize the variational particles \n", + " \n", + " sim.integrate(2.*np.pi*10.) # integrate for ~10 orbits\n", + " return sim.particles[0].vx, v1.particles[0].vx # return star's velocity and its derivative" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note the two new functions. `sim.add_variation()` adds a set of variational particles to the simulation. All variational particles are by default initialized to zero. We use the `vary()` function to initialize them to a variation that we are interested in. Here, we initialize the variational particles corresponding to a change in the semi-major axis, $a$, of the particle with index 2 (the outer planet). " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(0.0004924175842478302, 0.026958628196580445)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "calculate_vx_derivative(a=1.5) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use the derivative to construct a Taylor series expansion of the velocity around $a_0=1.5$:\n", + "$$v(a) \\approx v(a_0) + (a-a_0) \\frac{\\partial v}{\\partial a}$$" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.000762003866214\n" + ] + } + ], + "source": [ + "a0=1.5\n", + "va0, dva0 = calculate_vx_derivative(a=a0) \n", + "def v(a):\n", + " return va0 + (a-a0)*dva0\n", + "print(v(1.51))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Compare this value with the explicitly calculate one above. They are almost the same! But we can do even better, by using second order variational equations to calculate second order derivatives." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def calculate_vx_derivative_2ndorder(a):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.) # star\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1) # inner planet\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=a) # outer planet\n", + " \n", + " v1 = sim.add_variation() \n", + " v1.vary(2,\"a\") \n", + " \n", + " # The following lines add and initialize second order variational particles\n", + " v2 = sim.add_variation(order=2, first_order=v1) \n", + " v2.vary(2,\"a\") \n", + " \n", + " sim.integrate(2.*np.pi*10.) # integrate for ~10 orbits\n", + " # return star's velocity and its first and second derivatives\n", + " return sim.particles[0].vx, v1.particles[0].vx, v2.particles[0].vx " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using a Taylor series expansion to second order gives a better estimate of `v(1.51)`. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.000755071182773\n" + ] + } + ], + "source": [ + "a0=1.5\n", + "va0, dva0, ddva0 = calculate_vx_derivative_2ndorder(a=a0) \n", + "def v(a):\n", + " return va0 + (a-a0)*dva0 + 0.5*(a-a0)**2*ddva0\n", + "print(v(1.51))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Now that we know how to calculate first and second order derivates of positions and velocities of particles, we can simply use the chain rule to calculate more complicated derivates. For example, instead of the velocity $v_x$, you might be interested in the quantity $w\\equiv(v_x - c)^2$ where $c$ is a constant. This is something that typically appears in a $\\chi^2$ fit. The chain rule gives us:\n", + "$$ \\frac{\\partial w}{\\partial a} = 2 \\cdot (v_x-c)\\cdot \\frac{\\partial v_x}{\\partial a}$$\n", + "The variational equations provide the $\\frac{\\partial v_x}{\\partial a}$ part, the *ordinary* particles provide $v_x$." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1.039395710603212, -0.05496905171588172)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def calculate_w_derivative(a):\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.) # star\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1) # inner planet\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=a) # outer planet\n", + " \n", + " v1 = sim.add_variation() # add a set of variational particles\n", + " v1.vary(2,\"a\") # initialize the variational particles \n", + " \n", + " sim.integrate(2.*np.pi*10.) # integrate for ~10 orbits\n", + " \n", + " c = 1.02 # some constant\n", + " w = (sim.particles[0].vx-c)**2\n", + " dwda = 2.*v1.particles[0].vx * (sim.particles[0].vx-c)\n", + " \n", + " return w, dwda # return w and its derivative\n", + "calculate_w_derivative(1.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similarly, you can also use the chain rule to vary initial conditions of particles in a way that is not supported by REBOUND by default. For example, suppose you want to work in some fancy coordinate system, using $h\\equiv e\\sin(\\omega)$ and $k\\equiv e \\cos(\\omega)$ variables instead of $e$ and $\\omega$. You might want to do that because $h$ and $k$ variables are often better behaved near $e\\sim0$. In that case the chain rule gives us:\n", + "$$\\frac{\\partial p(e(h, k), \\omega(h, k))}{\\partial h} = \\frac{\\partial p}{\\partial e}\\frac{\\partial e}{\\partial h} + \\frac{\\partial p}{\\partial \\omega}\\frac{\\partial \\omega}{\\partial h}$$\n", + "where $p$ is any of the particles initial coordinates. In our case the derivates of $e$ and $\\omega$ with respect to $h$ are:\n", + "$$\\frac{\\partial \\omega}{\\partial h} = -\\frac{k}{e^2}\\quad\\text{and}\\quad \\frac{\\partial e}{\\partial h} = \\frac{h}{e}$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With REBOUND, you can easily implement this. The following function calculates the derivate of the star's velocity with respect to the outer planet's $h$ variable." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(-0.0006022810748296454, 0.002107215810994136)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def calculate_vx_derivative_h():\n", + " h, k = 0.1, 0.2\n", + " e = float(np.sqrt(h**2+k**2))\n", + " omega = np.arctan2(k,h)\n", + " sim = rebound.Simulation()\n", + " sim.add(m=1.) # star\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1) # inner planet\n", + " sim.add(primary=sim.particles[0],m=1e-3, a=1.5, e=e, omega=omega) # outer planet\n", + " \n", + " v1 = sim.add_variation() \n", + " dpde = rebound.Particle(simulation=sim, particle=sim.particles[2], variation=\"e\")\n", + " dpdomega = rebound.Particle(simulation=sim, particle=sim.particles[2], m=1e-3, a=1.5, e=e, omega=omega, variation=\"omega\")\n", + " v1.particles[2] = h/e * dpde - k/(e*e) * dpdomega\n", + " \n", + " sim.integrate(2.*np.pi*10.) # integrate for ~10 orbits\n", + " # return star's velocity and its first derivatives\n", + " return sim.particles[0].vx, v1.particles[0].vx\n", + "calculate_vx_derivative_h()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that in the above function, there are expressions such as `h/e * dpde`. `h/e` is just a number, but `dpde` is actually a particle structure. REBOUND multiplies each cartesian component of that particle with the number `h/e`. Similarly, the particles are subtracted componentwise when using the `-` operator.\n", + "\n", + "We can use the `v1.particles[i] = ...` syntax to directly set a variational particle's initial conditions. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.5" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/WHFast.ipynb b/rebound/source/ipython_examples/WHFast.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..879a2b3adf51e0d3d0ab514df2c21c7cac77c4c8 --- /dev/null +++ b/rebound/source/ipython_examples/WHFast.ipynb @@ -0,0 +1,554 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# WHFast tutorial\n", + "\n", + "This tutorial is an introduction to the python interface of WHFast, a fast and unbiased symplectic Wisdom-Holman integrator. This integrator is well suited for integrations of planetary systems in which the planets stay roughly on their orbits. If close encounters and collisions occur, then WHFast is not the right integrator. The WHFast method is described in detail in Rein & Tamayo (2015).\n", + "\n", + "This tutorial assumes that you have already installed REBOUND." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**First WHFast integration**\n", + "\n", + "You can enter all the commands below into a file and execute it all at once, or open an interactive shell).\n", + "\n", + "First, we need to import the REBOUND module (make sure you have enabled the virtual environment if you used it to install REBOUND)." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import rebound" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we create a REBOUND simulation instance. This object encapsulated all the variables and functions that REBOUND has to offer. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "sim = rebound.Simulation()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we can add particles. We'll work in units in which $G=1$ (see [Units.ipynb](../Units) for using different units). The first particle we add is the central object. We place it at rest at the origin and use the convention of setting the mass of the central object $M_*$ to 1:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "sim.add(m=1.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's look at the particle we just added:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "print(sim.particles[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "The output tells us that the mass of the particle is 1 and all coordinates are zero. \n", + "\n", + "The next particle we're adding is a planet. We'll use Cartesian coordinates to initialize it. Any coordinate that we do not specify in the `sim.add()` command is assumed to be 0. We place our planet on a circular orbit at $a=1$ and give it a mass of $10^{-3}$ times that of the central star." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "sim.add(m=1e-3, x=1., vy=1.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Instead of initializing the particle with Cartesian coordinates, we can also use orbital elements. By default, REBOUND (as well as WHFast internally) will use Jacobi coordinates, i.e. REBOUND assumes the orbital elements describe the particle's orbit around the center of mass of all particles added previously. Our second planet will have a mass of $10^{-3}$, a semimajoraxis of $a=2$ and an eccentricity of $e=0.1$ (note that you shouldn't change G after adding particles this way, see [Units.ipynb](../Units)):" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "sim.add(m=1e-3, a=2., e=0.1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have added two more particles, let's have a quick look at what's in this simulation by using" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t3.4.0\n", + "REBOUND built on: \tMay 31 2017 11:53:50\n", + "Number of particles: \t3\n", + "Selected integrator: \tias15\n", + "Simulation time: \t0.0000000000000000e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see that REBOUND used the `ias15` integrator as a default. Next, let's tell REBOUND that we want to use `WHFast` instead. We'll also set the timestep. In our system of units, an orbit at $a=1$ has an orbital period of $T_{\\rm orb} =2\\pi \\sqrt{\\frac{a^3}{GM}}= 2\\pi$. So a reasonable timestep to start with would be $dt=10^{-3}$ (see Rein & Tamayo 2015 for some discussion on timestep choices)." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "sim.integrator = \"whfast\"\n", + "sim.dt = 1e-3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`whfast` refers to the 2nd order symplectic integrator WHFast described by Rein & Tamayo (2015). By default, no symplectic correctors are used, but they can be easily turned on (see [Advanced Settings for WHFast](../AdvWHFast)). \n", + "\n", + "We are now ready to start the integration. Let's integrate the simulation for one orbit, i.e. until $t=2\\pi$. Because we use a fixed timestep, rebound would have to change it to integrate exactly up to $2\\pi$. \n", + "\n", + "**Note: The default is for sim.integrate to simulate up to exactly the time you specify. This means that in general it has to change the timestep close to the output time to match things up. A changing timestep breaks WHFast's symplectic nature, so when using WHFast, you typically want to pass the `exact_finish_time = 0` flag, which will instead integrate up to the timestep which is nearest to the endtime that you have passed to `sim.integrate`.**" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "sim.integrate(6.28318530717959, exact_finish_time=0) # 6.28318530717959 is 2*pi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once again, let's look at what REBOUND's status is" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------\n", + "REBOUND version: \t3.4.0\n", + "REBOUND built on: \tMay 31 2017 11:53:50\n", + "Number of particles: \t3\n", + "Selected integrator: \twhfast\n", + "Simulation time: \t6.2839999999992369e+00\n", + "Current timestep: \t0.001000\n", + "---------------------------------\n", + "\n", + "\n", + "\n", + "---------------------------------\n" + ] + } + ], + "source": [ + "sim.status()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see the time has advanced to $t=2\\pi$ and the positions and velocities of *all* particles have changed. If you want to post-process the particle data, you can access it in the following way:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.003326154866766361 0.009674635911450204 0.0005194654213133196 0.0012200269278386914\n", + "1.0032694180883746 0.0366289427053581 -0.024395944012027243 0.9999782071644221\n", + "-1.5284252838557046 1.496351615582015 -0.4950694773013606 -0.4364888285516785\n" + ] + } + ], + "source": [ + "particles = sim.particles\n", + "for p in particles:\n", + " print(p.x, p.y, p.vx, p.vy)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `particles` object is an array of pointers to the particles. This means you can call `particles = sim.particles` before the integration and the contents of `particles` will be updated after the integration. If you add or remove particles, you'll need to call `sim.particles` again." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Visualization with matplotlib**\n", + "\n", + "Instead of just printing boring numbers at the end of the simulation, let's visualize the orbit using matplotlib (you'll need to install numpy and matplotlib to run this example, see [Installation](../Installation)).\n", + "\n", + "We'll use the same particles as above. As the particles are already in memory, we don't need to add them again. Let us plot the position of the inner planet at 100 steps during its orbit. First, we'll import numpy and create an array of times for which we want to have an output (here, from $T_{\\rm orb}$ to $2 T_{\\rm orb}$ (we have already advanced the simulation time to $t=2\\pi$)." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "torb = 2.*np.pi\n", + "Noutputs = 100\n", + "times = np.linspace(torb, 2.*torb, Noutputs)\n", + "x = np.zeros(Noutputs)\n", + "y = np.zeros(Noutputs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we'll step through the simulation. Rebound will integrate up to `time`. Depending on the timestep, it might overshoot slightly. If you want to have the outputs at exactly the time you specify, you can set the `exact_finish_time=1` flag in the `integrate` function (or omit it altogether, 1 is the default). However, note that changing the timestep in a symplectic integrator could have negative impacts on its properties." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "for i,time in enumerate(times):\n", + " sim.integrate(time, exact_finish_time=0)\n", + " x[i] = particles[1].x\n", + " y[i] = particles[1].y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's plot the orbit using matplotlib." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(5,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlim([-2,2])\n", + "ax.set_ylim([-2,2])\n", + "plt.plot(x, y);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Hurray! It worked. The orbit looks like it should, it's an almost perfect circle. There are small perturbations though, induced by the outer planet. Let's integrate a bit longer to see them. " + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "Noutputs = 1000\n", + "times = np.linspace(2.*torb, 20.*torb, Noutputs)\n", + "x = np.zeros(Noutputs)\n", + "y = np.zeros(Noutputs)\n", + "for i,time in enumerate(times):\n", + " sim.integrate(time, exact_finish_time=0)\n", + " x[i] = particles[1].x\n", + " y[i] = particles[1].y\n", + " \n", + "fig = plt.figure(figsize=(5,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlim([-2,2])\n", + "ax.set_ylim([-2,2])\n", + "plt.plot(x, y);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Oops! This doesn't look like what we expected to see (small perturbations to an almost circular orbit). What you see here is the barycenter slowly drifting. Some integration packages require that the simulation be carried out in a particular frame, but WHFast provides extra flexibility by working in any inertial frame. If you recall how we added the particles, the Sun was at the origin and at rest, and then we added the planets. This means that the center of mass, or barycenter, will have a small velocity, which results in the observed drift. There are multiple ways we can get the plot we want to.\n", + "1. We can calculate only relative positions.\n", + "2. We can add the particles in the barycentric frame.\n", + "3. We can let REBOUND transform the particle coordinates to the barycentric frame for us.\n", + "\n", + "Let's use the third option (next time you run a simulation, you probably want to do that at the beginning)." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "sim.move_to_com()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So let's try this again. Let's integrate for a bit longer this time." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "times = np.linspace(20.*torb, 1000.*torb, Noutputs)\n", + "for i,time in enumerate(times):\n", + " sim.integrate(time, exact_finish_time=0)\n", + " x[i] = particles[1].x\n", + " y[i] = particles[1].y\n", + " \n", + "fig = plt.figure(figsize=(5,5))\n", + "ax = plt.subplot(111)\n", + "ax.set_xlim([-1.5,1.5])\n", + "ax.set_ylim([-1.5,1.5])\n", + "plt.scatter(x, y, marker='.', color='k', s=1.2);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That looks much more like it. Let us finally plot the orbital elements as a function of time." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "times = np.linspace(1000.*torb, 9000.*torb, Noutputs)\n", + "a = np.zeros(Noutputs)\n", + "e = np.zeros(Noutputs)\n", + "for i,time in enumerate(times):\n", + " sim.integrate(time, exact_finish_time=0)\n", + " a[i] = sim.particles[2].a\n", + " e[i] = sim.particles[2].e\n", + " \n", + "fig = plt.figure(figsize=(15,5))\n", + "\n", + "ax = plt.subplot(121)\n", + "ax.set_xlabel(\"time\")\n", + "ax.set_ylabel(\"semi-major axis\")\n", + "plt.plot(times, a);\n", + "\n", + "ax = plt.subplot(122)\n", + "ax.set_xlabel(\"time\")\n", + "ax.set_ylabel(\"eccentricity\")\n", + "plt.plot(times, e);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The semimajor axis seems to almost stay constant, whereas the eccentricity undergoes an oscillation. Thus, one might conclude the planets interact only secularly, i.e. there are no large resonant terms." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Speeding things up and extra accuracy**\n", + "\n", + "There are several performance enhancements one can make to WHFast. However, each one has pitfalls that an inexperienced user can unwittingly fall into. We therefore chose safe default settings that make the integrator difficult to misuse. **This makes the default WHFast substantially slower and less accurate than it can be**, so anyone looking to use it more seriously should check out its advanced settings in [Advanced Settings for WHFast](../AdvWHFast)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Common mistakes with WHFast**\n", + "\n", + "If you're getting odd output, check the following:\n", + "\n", + "1. The Wisdom-Holman algorithm assumes that the gravitational force on a planet from the central body dominates that from all other particles. Therefore, if you have close approaches (that violate this approximation), you will get spurious results. REBOUND provides a high order integrator for close approaches. You can try it with `sim.integrator = \"ias15\"`. You can also check for close approaches following [Close Encounters](../CloseEncounters).\n", + "\n", + "2. A symplectic scheme requires a constant timestep to guarantee some of its symmetry properties. So if you call `sim.integrate(time)`, and `time` is not a multiple of `sim.dt`, your last timestep will be different (in order to reach `time` exactly). Therefore, if you need equally spaced outputs, you can make your output times be multiples of `sim.dt`, or if it doesn't matter, you can pass an optional flag like this: `sim.integrate(time, exact_finish_time=0)`, which will integrate to the nearest timestep. \n", + "\n", + "3. If you're somehow modifying particles or adding forces, you should make sure to read [Advanced Settings for WHFast](../AdvWHFast)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/rebound/source/ipython_examples/ipynb2py.py b/rebound/source/ipython_examples/ipynb2py.py new file mode 100644 index 0000000000000000000000000000000000000000..f96f3585e36063ff57b4c94d70e863fbb304fe68 --- /dev/null +++ b/rebound/source/ipython_examples/ipynb2py.py @@ -0,0 +1,24 @@ +import json +import sys +exec("import matplotlib as mpl") +exec("mpl.use(\"Agg\")") + +if len(sys.argv)!=2: + print("Usage: ipynb2py.py FILENAME") + exit(1) +with open(sys.argv[1]) as data_file: + ipynb = json.load(data_file) + +code = "" +for c in ipynb["cells"]: + if c["cell_type"] == "code": + source = c["source"] + for s in source: + if s[0] != "%": + code += s.rstrip('\n')+"\n" +import socket +try: + exec(code) +except socket.error: + print("A socket error occured. This is most likely due to a timeout in the NASA Horizons connections. We catch this exception here and ignore is.") + pass diff --git a/rebound/source/legacy/collisions_sweep.c b/rebound/source/legacy/collisions_sweep.c new file mode 100644 index 0000000000000000000000000000000000000000..2bc9ad1288379dcec7b4c9d17c292315af609929 --- /dev/null +++ b/rebound/source/legacy/collisions_sweep.c @@ -0,0 +1,427 @@ +/** + * @file collisions.c + * @brief Collision search using a line sweep algorithm, O(N log(N)). + * @author Hanno Rein + * + * @details The routines in this file implement a collision detection + * method called line sweep. It is very fast if all dimensions except one + * are small. The algorithm is similar to the original algorithm proposed + * by Bentley & Ottmann (1979) but does not maintain a binary search tree. + * This is much faster as long as the number of particle trajectories + * currently intersecting the plane is small. + * + * The sweeping direction in this implementation is x. + * + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#include +#include +#include "particle.h" +#include "collisions.h" +#include "collision_resolve.h" +#include "rebound.h" +#include "tree.h" +#include "boundaries.h" +#ifdef OPENMP +#include +#endif + + +double collisions_max_r = 0; +double collisions_max2_r = 0; +int sweeps_proc = 1; /**< Number of processors used for seeping algorithm. */ +int sweeps_init_done = 0; /**< Used for initialisation of data structures. */ + +//static inline double min(double a, double b){ return (a>b)?b:a;} +//static inline double max(double a, double b){ return (b>a)?b:a;} +static inline double sgn(const double a){ return (a>=0 ? 1. : -1); } + +/** + * This function checks if two particles colliding during one drift step. + * @param pt1 reb_particle 1. + * @param pt2 reb_particle 2. + * @param proci Processor id (OpenMP) for this collision. + * @param crossing Flag that is one if one of the particles crosses a boundary in this timestep. + * @param ghostbox Ghostbox used in this collision. + */ +void detect_collision_of_pair(int pt1, int pt2, int proci, int crossing, struct ghostbox gb); + +/** + * Structure that stores a start or end point of a particle trajectory. + */ +struct xvalue { + double x; // position along sweep axis + int inout; // start or endpoint + int nx; + int crossing; // crosses boundary + int pt; // particle +}; + +/** + * Structure that contains a list of xvalues. + */ +struct xvaluelist { + struct xvalue* xvalues; + int N; /**< Current array size. */ + int Nmax; /**< Maximum array size before realloc() is needed. */ +}; +struct xvaluelist* sweepx; /**< Pointers to the SWEEPX list of each processor. */ + +/** + * Structure that contains a list of collisions. + */ +struct reb_collisionlist { + struct reb_collision* collisions; + int N; /**< Current array size. */ + int Nmax; /**< Maximum array size before realloc() is needed. */ +}; +struct collisionlist* clist; /**< Pointers to the collisions list of each processor. */ + +/** + * Adds a line to the SWEEPX array of processor proci. + */ +void add_line_to_xvsublist(double x1, double x2, int pt, int n, int proci, int crossing){ + int N = sweepx[proci].N; + + if (N+2>sweepx[proci].Nmax){ + sweepx[proci].Nmax += 1024; + sweepx[proci].xvalues = (struct xvalue*)realloc(sweepx[proci].xvalues,sweepx[proci].Nmax*sizeof(struct xvalue)); + } + + sweepx[proci].xvalues[N].x = x1; + sweepx[proci].xvalues[N].pt = pt; + sweepx[proci].xvalues[N].nx = n; + sweepx[proci].xvalues[N].inout = 0; + sweepx[proci].xvalues[N].crossing = crossing; + sweepx[proci].xvalues[N+1].x = x2; + sweepx[proci].xvalues[N+1].pt = pt; + sweepx[proci].xvalues[N+1].nx = n; + sweepx[proci].xvalues[N+1].inout = 1; + sweepx[proci].xvalues[N+1].crossing = crossing; + + sweepx[proci].N += 2; +} + +/** + * Adds a line to the SWEEPX array and checks for crossings of processor boundaries. + */ +void add_line_to_xvlist(double x1, double x2, int pt, int n, int crossing){ + int procix1 = (int)(floor( (x1/boxsize.x+0.5) *(double)sweeps_proc));// %sweeps.xvlists; + int procix2 = (int)(floor( (x2/boxsize.x+0.5) *(double)sweeps_proc));// %sweeps.xvlists; + if (procix2>=sweeps_proc){ + procix2 = sweeps_proc-1; + } + if (procix1<0){ + procix1 = 0; + } + + if (procix1!=procix2){ + double b = -boxsize.x/2.+boxsize.x/(double)sweeps_proc*(double)procix2; + add_line_to_xvsublist(x1,b,pt,n,procix1,1); + add_line_to_xvsublist(b,x2,pt,n,procix2,1); + }else{ + add_line_to_xvsublist(x1,x2,pt,n,procix1,crossing); + } +} + +/** + * Adds a line to the SWEEPX array and checks for crossings of simulation boundaries. + */ +void add_to_xvlist(double x1, double x2, int pt){ + double xmin, xmax; + if (x1 < x2){ + xmin = x1; + xmax = x2; + }else{ + xmin = x2; + xmax = x1; + } + double radius = particles[pt].r*1.0001; //Safety factor to avoid floating point issues. + xmin -= radius; + xmax += radius; + + if (xmin<-boxsize.x/2.){ + add_line_to_xvlist(xmin+boxsize.x,boxsize.x/2.,pt,1,1); + add_line_to_xvlist(-boxsize.x/2.,xmax,pt,0,1); + return; + } + if (xmax>boxsize.x/2.){ + add_line_to_xvlist(-boxsize.x/2.,xmax-boxsize.x,pt,-1,1); + add_line_to_xvlist(xmin,boxsize.x/2.,pt,0,1); + return; + } + add_line_to_xvlist(xmin,xmax,pt,0,0); +} + +/** + * Compares the x position of two xvalues. + */ +int compare_xvalue (const void * a, const void * b){ + const double diff = ((struct xvalue*)a)->x - ((struct xvalue*)b)->x; + if (diff > 0) return 1; + if (diff < 0) return -1; + return 0; +} + +/** + * Compares the x position of two particles. + */ +int compare_particle (const void * a, const void * b){ + const double diff = ((struct reb_particle*)a)->x - ((struct reb_particle*)b)->x; + if (diff > 0) return 1; + if (diff < 0) return -1; + return 0; +} + +/** + * Sorts the array xvl with insertion sort. + */ +void collisions_sweep_insertionsort_xvaluelist(struct xvaluelist* xvl){ + struct xvalue* xv = xvl->xvalues; + int _N = xvl->N; + for(int j=1;j<_N;j++){ + struct xvalue key = xv[j]; + int i = j - 1; + while(i >= 0 && xv[i].x > key.x){ + xv[i+1] = xv[i]; + i--; + } + xv[i+1] = key; + } +} + +/** + * Sorts the particle array with insertion sort. + */ +void collisions_sweep_insertionsort_particles(void){ + for(int j=1;j= 0 && particles[i].x > key.x){ + particles[i+1] = particles[i]; + i--; + } + particles[i+1] = key; + } +} + + + +void reb_collision_search(void){ + if (sweeps_init_done!=1){ + sweeps_init_done = 1; +#ifdef OPENMP + sweeps_proc = omp_get_max_threads(); +#endif // OPENMP + sweepx = (struct xvaluelist*) calloc(sweeps_proc,sizeof(struct xvaluelist)); + clist = (struct reb_collisionlist*)calloc(sweeps_proc,sizeof(struct reb_collisionlist)); +#ifndef TREE + // Sort particles according to their x position to speed up sorting of lines. + // Initially the particles are not pre-sorted, thus qsort is faster than insertionsort. + // Note that this rearranges particles and will cause problems if the particle id is used elsewhere. + qsort (particles, N, sizeof(struct reb_particle), compare_particle); + }else{ + // Keep particles sorted according to their x position to speed up sorting of lines. + collisions_sweep_insertionsort_particles(); +#endif //TREE + } + for (int i=0;ixvalues, sweepxi->N, sizeof(struct xvalue), compare_xvalue); +#else //TREE + // Use insertionsort when there is a tree. reb_particles are pre-sorted. + collisions_sweep_insertionsort_xvaluelist(sweepxi); +#endif //TREE + + // SWEEPL: List of lines intersecting the plane. + struct xvaluelist sweepl = {NULL,0,0}; + + for (int i=0;iN;i++){ + struct xvalue xv = sweepxi->xvalues[i]; + if (xv.inout == 0){ + // Add event if start of line + if (sweepl.N>=sweepl.Nmax){ + sweepl.Nmax +=32; + sweepl.xvalues = realloc(sweepl.xvalues,sizeof(struct xvalue)*sweepl.Nmax); + } + sweepl.xvalues[sweepl.N] = xv; + // Check for collisions with other particles in SWEEPL + for (int k=0;kx + gb.x - p2->x; + double y = p1->y + gb.y - p2->y; + double z = p1->z + gb.z - p2->z; + double vx = p1->vx + gb.vx - p2->vx; + double vy = p1->vy + gb.vy - p2->vy; + double vz = p1->vz + gb.vz - p2->vz; + + double a = vx*vx + vy*vy + vz*vz; + double b = 2.*(vx*x + vy*y + vz*z); + double rr = p1->r + p2->r; + double c = -rr*rr + x*x + y*y + z*z; + + double root = b*b-4.*a*c; + if (root>=0.){ + // Floating point optimized solution of a quadratic equation. Avoids cancelations. + double q = -0.5*(b+sgn(b)*sqrt(root)); + double time1 = c/q; + double time2 = q/a; + if (time1>time2){ + double tmp = time2; + time2=time1; + time1=tmp; + } + if ( (time1>-dt/2. && time1
dt/2.) ){ + struct reb_collisionlist* clisti = &(clist[proci]); + if (clisti->N>=clisti->Nmax){ + clisti->Nmax += 1024; + clisti->collisions = (struct reb_collision*)realloc(clisti->collisions,clisti->Nmax*sizeof(struct reb_collision)); + } + struct reb_collision* c = &(clisti->collisions[clisti->N]); + c->p1 = pt1; + c->p2 = pt2; + c->gb = gb; + if ( (time1>-dt/2. && time1
time = time1; + }else{ + c->time = 0; + } + + c->crossing = crossing; + clisti->N++; + } + } +} + +void collisions_resolve(void){ +#ifdef OPENMP + omp_lock_t boundarylock; + omp_init_lock(&boundarylock); +#endif //OPENMP + +#pragma omp parallel for schedule (static,1) + for (int proci=0;proci + * + * @details The routines in this file implement a collision detection + * method called line sweep. It is very fast if all dimensions except one + * are small. The algorithm is similar to the original algorithm proposed + * by Bentley & Ottmann (1979) but does not maintain a binary search tree. + * This is much faster as long as the number of particle trajectories + * currently intersecting the plane is small. + * + * The sweeping direction in this implementation is phi. This can be used + * for narrow rings, such as in the example 'spreading_ring'. + * + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#include +#include +#include "particle.h" +#include "collisions.h" +#include "collision_resolve.h" +#include "rebound.h" +#include "tree.h" +#include "boundaries.h" +#ifdef OPENMP +#include +#endif + + +double collisions_max_r = 0; +double collisions_max2_r = 0; +int sweeps_proc = 1; /**< Number of processors used for seeping algorithm. */ +int sweeps_init_done = 0; /**< Used for initialisation of data structures. */ +int N_collisions = 0; + +// static inline double min(double a, double b){ return (a>b)?b:a;} +// static inline double max(double a, double b){ return (b>a)?b:a;} +static inline double sgn(const double a){ return (a>=0 ? 1. : -1); } + +/** + * This function checks if two particles colliding during one drift step. + * @param pt1 reb_particle 1. + * @param pt2 reb_particle 2. + * @param proci Processor id (OpenMP) for this collision. + * @param crossing Flag that is one if one of the particles crosses a boundary in this timestep. + */ +void detect_collision_of_pair(int pt1, int pt2, int proci, int crossing); + +/** + * Structure that stores a start or end point of a particle trajectory. + */ +struct phivalue { + double phi; // position along sweep axis + int inout; // start or endpoint + int nphi; + int crossing; // crosses boundary + int pt; // particle +}; + +/** + * Structure that contains a list of xvalues. + */ +struct phivaluelist { + struct phivalue* phivalues; + int N; /**< Current array size. */ + int Nmax; /**< Maximum array size before realloc() is needed. */ +}; +struct phivaluelist* sweepphi; /**< Pointers to the SWEEPY list of each processor. */ + +/** + * Structure that contains a list of collisions. + */ +struct reb_collisionlist { + struct reb_collision* collisions; + int N; /**< Current array size. */ + int Nmax; /**< Maximum array size before realloc() is needed. */ +}; +struct collisionlist* clist; /**< Pointers to the collisions list of each processor. */ + +/** + * Adds a line to the SWEEPY array of processor proci. + */ +void add_line_to_phivsublist(double phi1, double phi2, int pt, int n, int proci, int crossing){ + int N = sweepphi[proci].N; + + if (N+2>sweepphi[proci].Nmax){ + sweepphi[proci].Nmax += 1024; + sweepphi[proci].phivalues = (struct phivalue*)realloc(sweepphi[proci].phivalues,sweepphi[proci].Nmax*sizeof(struct phivalue)); + } + + sweepphi[proci].phivalues[N].phi = phi1; + sweepphi[proci].phivalues[N].pt = pt; + sweepphi[proci].phivalues[N].nphi = n; + sweepphi[proci].phivalues[N].inout = 0; + sweepphi[proci].phivalues[N].crossing = crossing; + sweepphi[proci].phivalues[N+1].phi = phi2; + sweepphi[proci].phivalues[N+1].pt = pt; + sweepphi[proci].phivalues[N+1].nphi = n; + sweepphi[proci].phivalues[N+1].inout = 1; + sweepphi[proci].phivalues[N+1].crossing = crossing; + + sweepphi[proci].N += 2; +} + +/** + * Adds a line to the SWEEPY array and checks for crossings of processor boundaries. + */ +void add_line_to_phivlist(double phi1, double phi2, int pt, int n, int crossing){ + int prociphi1 = (int)(floor( (phi1/(2.*M_PI)+0.5) *(double)sweeps_proc));// %sweeps.phivlists; + int prociphi2 = (int)(floor( (phi2/(2.*M_PI)+0.5) *(double)sweeps_proc));// %sweeps.phivlists; + if (prociphi2>=sweeps_proc){ + prociphi2 = sweeps_proc-1; + } + if (prociphi1<0){ + prociphi1 = 0; + } + + if (prociphi1!=prociphi2){ + double b = -M_PI+2.*M_PI/(double)sweeps_proc*(double)prociphi2; + add_line_to_phivsublist(phi1,b,pt,n,prociphi1,1); + add_line_to_phivsublist(b,phi2,pt,n,prociphi2,1); + }else{ + add_line_to_phivsublist(phi1,phi2,pt,n,prociphi1,crossing); + } +} + +/** + * Adds a line to the SWEEPY array and checks for crossings of simulation boundaries. + */ +void add_to_phivlist(double phi1, double phi2, int pt){ + double phimin, phimax; + if (phi1 < phi2){ + phimin = phi1; + phimax = phi2; + }else{ + phimin = phi2; + phimax = phi1; + } + double radius = particles[pt].r*1.0001; //Safety factor to avoid floating point issues. + phimin -= radius; + phimax += radius; + + if (phimin<-M_PI){ + add_line_to_phivlist(phimin+2.*M_PI,M_PI,pt,1,1); + add_line_to_phivlist(-M_PI,phimax,pt,0,1); + return; + } + if (phimax>M_PI){ + add_line_to_phivlist(-M_PI,phimax-2.*M_PI,pt,-1,1); + add_line_to_phivlist(phimin,M_PI,pt,0,1); + return; + } + add_line_to_phivlist(phimin,phimax,pt,0,0); +} + +/** + * Compares the phi position of two phivalues. + */ +int compare_phivalue (const void * a, const void * b){ + const double diff = ((struct phivalue*)a)->phi - ((struct phivalue*)b)->phi; + if (diff > 0) return 1; + if (diff < 0) return -1; + return 0; +} + +/** + * Compares the phi position of two particles. + */ +int compare_particle (const void * a, const void * b){ + const double diff = atan2(((struct reb_particle*)a)->y,((struct reb_particle*)a)->x) - atan2(((struct reb_particle*)b)->y,((struct reb_particle*)b)->x); + if (diff > 0) return 1; + if (diff < 0) return -1; + return 0; +} + +/** + * Sorts the array phivl with insertion sort. + */ +void collisions_sweep_insertionsort_phivaluelist(struct phivaluelist* phivl){ + struct phivalue* phiv = phivl->phivalues; + int _N = phivl->N; + for(int j=1;j<_N;j++){ + struct phivalue key = phiv[j]; + int i = j - 1; + while(i >= 0 && phiv[i].phi > key.phi){ + phiv[i+1] = phiv[i]; + i--; + } + phiv[i+1] = key; + } +} + +/** + * Sorts the particle array with insertion sort. + */ +void collisions_sweep_insertionsort_particles(void){ + for(int j=1+N_collisions;j= N_collisions && atan2(particles[i].y,particles[i].x) > keyphi){ + particles[i+1] = particles[i]; + i--; + } + particles[i+1] = key; + } +} + + + +void reb_collision_search(void){ + if (sweeps_init_done!=1){ + sweeps_init_done = 1; +#ifdef OPENMP + sweeps_proc = omp_get_max_threads(); +#endif // OPENMP + sweepphi = (struct phivaluelist*) calloc(sweeps_proc,sizeof(struct phivaluelist)); + clist = (struct reb_collisionlist*)calloc(sweeps_proc,sizeof(struct reb_collisionlist)); +#ifndef TREE + // Sort particles according to their phi position to speed up sorting of lines. + // Initially the particles are not pre-sorted, thus qsort is faster than insertionsort. + // Note that this rearranges particles and will cause problems if the particle id is used elsewhere. + qsort (&(particles[N_collisions]), N-N_collisions, sizeof(struct reb_particle), compare_particle); + }else{ + // Keep particles sorted according to their phi position to speed up sorting of lines. + collisions_sweep_insertionsort_particles(); +#endif //TREE + } + for (int i=N_collisions;iphivalues, sweepphii->N, sizeof(struct phivalue), compare_phivalue); +#else //TREE + // Use insertionsort when there is a tree. reb_particles are pre-sorted. + collisions_sweep_insertionsort_phivaluelist(sweepphii); +#endif //TREE + + // SWEEPL: List of lines intersecting the plane. + struct phivaluelist sweepl = {NULL,0,0}; + + for (int i=0;iN;i++){ + struct phivalue phiv = sweepphii->phivalues[i]; + if (phiv.inout == 0){ + // Add event if start of line + if (sweepl.N>=sweepl.Nmax){ + sweepl.Nmax +=32; + sweepl.phivalues = realloc(sweepl.phivalues,sizeof(struct phivalue)*sweepl.Nmax); + } + sweepl.phivalues[sweepl.N] = phiv; + // Check for collisions with other particles in SWEEPL + for (int k=0;kx - p2->x; + double y = p1->y - p2->y; + double z = p1->z - p2->z; + double vx = p1->vx - p2->vx; + double vy = p1->vy - p2->vy; + double vz = p1->vz - p2->vz; + + double a = vx*vx + vy*vy + vz*vz; + double b = 2.*(vx*x + vy*y + vz*z); + double rr = p1->r + p2->r; + double c = -rr*rr + x*x + y*y + z*z; + + double root = b*b-4.*a*c; + if (root>=0.){ + // Floating point optimized solution of a quadratic equation. Avoids cancelations. + double q = -0.5*(b+sgn(b)*sqrt(root)); + double time1 = c/q; + double time2 = q/a; + if (time1>time2){ + double tmp = time2; + time2=time1; + time1=tmp; + } + if ( (time1>-dt/2. && time1
dt/2.) ){ + struct reb_collisionlist* clisti = &(clist[proci]); + if (clisti->N>=clisti->Nmax){ + clisti->Nmax += 1024; + clisti->collisions = (struct reb_collision*)realloc(clisti->collisions,clisti->Nmax*sizeof(struct reb_collision)); + } + struct reb_collision* c = &(clisti->collisions[clisti->N]); + c->p1 = pt1; + c->p2 = pt2; + if ( (time1>-dt/2. && time1
time = time1; + }else{ + c->time = 0; + } + + c->crossing = crossing; + clisti->N++; + } + } +} + +void collisions_resolve(void){ +#ifdef OPENMP + omp_lock_t boundarylock; + omp_init_lock(&boundarylock); +#endif //OPENMP + +#pragma omp parallel for schedule (static,1) + for (int proci=0;proci, Geoffroy Lesur + * + * @details This is a 2D FFT poisson solver for periodic and shearing sheet boxes. + * It has not been well tested yet, so use with caution. + * Furthermore, it is not parallelized yet. + * The number of grid points is set by N_root_x and N_root_y. + * + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu, Geoffroy Lesur + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#include +#include +#include "particle.h" +#include "rebound.h" +#include "boundaries.h" +#include "integrator.h" +#include + +#ifdef MPI +#error GRAVITY_FFT not compatible with MPI yet +#endif + +unsigned int gravity_ignore_10; + +int grid_NX_COMPLEX; +int grid_NY_COMPLEX; +int grid_NCOMPLEX; +double dx,dy; /**< Grid spacing */ +double* kx; /**< Wave vector */ +double* ky; /**< Wave vector */ +double* kxt; /**< Time dependent wave vector (shearing sheet only) */ +double* k; /**< Magnitude of wave vector */ +double* density; /**< Complex density field */ +double* density_r; /**< Real density field */ +double* fx; /**< Force in x direction */ +double* fy; /**< Force in y direction */ +fftw_plan r2cfft; /**< FFT plan real to complex */ +fftw_plan c2rfft; /**< FFT plan complex to real */ +double* w1d; /**< Temporary 1D arrary for remapping (shearing sheet only) */ +fftw_plan for1dfft; /**< FFT plan for remapping (1D, shearing sheet only) */ +fftw_plan bac1dfft; /**< FFT plan for remapping (1D, shearing sheet only) */ + +int gravity_fft_init_done = 0; /**< Flag if arrays and plans are initialized */ +void gravity_fft_init(void); +void gravity_fft_grid2p(struct reb_particle* p); +void gravity_fft_p2grid(void); +void gravity_fft_remap(double* wi, const double direction); +double shift_shear = 0; + +void reb_calculate_acceleration(void){ + // Setting up the grid + if (gravity_fft_init_done==0){ + gravity_fft_init(); + gravity_fft_init_done=1; + } +#pragma omp parallel for schedule(guided) + for (int i=0; i=0.5 && fabs(x)<=3./2.) return 0.5*(3./2.-fabs(x))*(3./2.-fabs(x)); + return 0; +} + +void gravity_fft_remap(double* wi, const double direction) { + double phase, rew, imw; + + for(int i = 0 ; i < N_root_x ; i++) { + for(int j = 0 ; j < N_root_y ; j++) { + w1d[ 2 * j ] = wi[j + (N_root_y + 2) * i]; // w1d is supposed to be a complex array. + w1d[ 2 * j + 1 ] = 0.0; + } + + // Transform w1d, which will be stored in w2d + fftw_execute(for1dfft); + + for(int j = 0 ; j < N_root_y ; j++) { + // phase = ky * (-shift_shear) + phase = - direction * (2.0 * M_PI) / boxsize.y * ((j + (N_root_y / 2)) % N_root_y - N_root_y / 2) * shift_shear * ((double) i) / ((double) N_root_x); + + rew = w1d[2 * j]; + imw = w1d[2 * j + 1]; + + // Real part + w1d[2 * j ] = rew * cos(phase) - imw * sin(phase); + // Imaginary part + w1d[2 * j + 1] = rew * sin(phase) + imw * cos(phase); + + // Throw the Nyquist Frequency (should be useless anyway) + if(j==N_root_y/2) { + w1d[2 * j ] =0.0; + w1d[2 * j + 1] = 0.0; + } + } + + fftw_execute(bac1dfft); + + for(int j = 0 ; j < N_root_y ; j++) { + wi[j + (N_root_y + 2) * i] = w1d[ 2 * j ] / N_root_y; + } + } +} + +void gravity_fft_p2grid(void){ + + // clean the current density + for(int i = 0 ; i < N_root_x * (N_root_y + 2) ; i++) { + density_r[i] = 0.0; // density is used to store the surface density + } + + for (int i=0; i=N_root_x) { + xp1Target -= N_root_x; // X periodicity + y_xp1Target = y_xp1Target + round((shift_shear/boxsize.y) * N_root_y); + y_xp1Target = (y_xp1Target + N_root_y) % N_root_y; // Y periodicity + yp1_xp1Target = yp1_xp1Target + round((shift_shear/boxsize.y) * N_root_y); + yp1_xp1Target = (yp1_xp1Target + N_root_y) % N_root_y; + ym1_xp1Target = ym1_xp1Target + round((shift_shear/boxsize.y) * N_root_y); + ym1_xp1Target = (ym1_xp1Target + N_root_y) % N_root_y; + } + + if(xm1Target<0) { + xm1Target += N_root_x; + y_xm1Target = y_xm1Target - round((shift_shear/boxsize.x) * N_root_y); + y_xm1Target = (y_xm1Target + N_root_y) % N_root_y; // Y periodicity + yp1_xm1Target = yp1_xm1Target - round((shift_shear/boxsize.x) * N_root_y); + yp1_xm1Target = (yp1_xm1Target + N_root_y) % N_root_y; + ym1_xm1Target = ym1_xm1Target - round((shift_shear/boxsize.x) * N_root_y); + ym1_xm1Target = (ym1_xm1Target + N_root_y) % N_root_y; + } + + // Distribute density to the 9 nearest cells + + tx = ((double)xm1 +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p.x; + ty = ((double)ym1 +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p.y; + density_r[(N_root_y+2) * xm1Target + ym1_xm1Target] += q0 * W(tx/dx)*W(ty/dy); + + tx = ((double)x +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p.x; + ty = ((double)ym1 +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p.y; + density_r[(N_root_y+2) * xTarget + ym1_xTarget] += q0 * W(tx/dx)*W(ty/dy); + + tx = ((double)xp1 +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p.x; + ty = ((double)ym1 +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p.y; + density_r[(N_root_y+2) * xp1Target + ym1_xp1Target] += q0 * W(tx/dx)*W(ty/dy); + + tx = ((double)xm1 +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p.x; + ty = ((double)y +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p.y; + density_r[(N_root_y+2) * xm1Target + y_xm1Target ] += q0 * W(tx/dx)*W(ty/dy); + + tx = ((double)x +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p.x; + ty = ((double)y +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p.y; + density_r[(N_root_y+2) * xTarget + y_xTarget ] += q0 * W(tx/dx)*W(ty/dy); + + tx = ((double)xp1 +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p.x; + ty = ((double)y +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p.y; + density_r[(N_root_y+2) * xp1Target + y_xp1Target ] += q0 * W(tx/dx)*W(ty/dy); + + tx = ((double)xm1 +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p.x; + ty = ((double)yp1 +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p.y; + density_r[(N_root_y+2) * xm1Target + yp1_xm1Target] += q0 * W(tx/dx)*W(ty/dy); + + tx = ((double)x +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p.x; + ty = ((double)yp1 +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p.y; + density_r[(N_root_y+2) * xTarget + yp1_xTarget] += q0 * W(tx/dx)*W(ty/dy); + + tx = ((double)xp1 +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p.x; + ty = ((double)yp1 +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p.y; + density_r[(N_root_y+2) * xp1Target + yp1_xp1Target] += q0 * W(tx/dx)*W(ty/dy); + } +} + + +void gravity_fft_grid2p(struct reb_particle* p){ + + // I'm sorry to say I have to keep these traps. Something's wrong if these traps are called. + + int x = (int) floor((p->x / boxsize.x + 0.5) * N_root_x); + int y = (int) floor((p->y / boxsize.y + 0.5) * N_root_y); + + // Formally, pos.x is in the interval [-size/2 , size/2 [. Therefore, x and y should be in [0 , grid_NJ-1] + + + // xp1, xm1... might be out of bound. They are however the relevant coordinates for the interpolation. + int xp1 = x + 1; + int xm1 = x - 1; + int ym1 = y - 1; + int yp1 = y + 1; + + + // Target according to boundary conditions. + // Although xTarget and yTarget are not relevant here, they will be relevant with shear + // We have to use all these fancy variables since y depends on x because of the shearing path + // Any nicer solution is welcome + + int xTarget = x; + int xp1Target = xp1; + int xm1Target = xm1; + + int ym1_xm1Target = (ym1 + N_root_y) % N_root_y; + int ym1_xTarget = ym1_xm1Target; + int ym1_xp1Target = ym1_xm1Target; + + int y_xm1Target = y % N_root_y; + int y_xTarget = y_xm1Target; + int y_xp1Target = y_xm1Target; + + int yp1_xm1Target = yp1 % N_root_y; + int yp1_xTarget = yp1_xm1Target; + int yp1_xp1Target = yp1_xm1Target; + + + double tx, ty; + + // Shearing patch trick + // This is only an **approximate** mapping + // one should use an exact interpolation scheme here (Fourier like). + + if(xp1Target>=N_root_x) { + xp1Target -= N_root_x; // X periodicity + y_xp1Target = y_xp1Target + round((shift_shear/boxsize.y) * N_root_y); + y_xp1Target = (y_xp1Target + N_root_y) % N_root_y; // Y periodicity + yp1_xp1Target = yp1_xp1Target + round((shift_shear/boxsize.y) * N_root_y); + yp1_xp1Target = (yp1_xp1Target + N_root_y) % N_root_y; + ym1_xp1Target = ym1_xp1Target + round((shift_shear/boxsize.y) * N_root_y); + ym1_xp1Target = (ym1_xp1Target + N_root_y) % N_root_y; + } + + if(xm1Target<0) { + xm1Target += N_root_x; + y_xm1Target = y_xm1Target - round((shift_shear/boxsize.y) * N_root_y); + y_xm1Target = (y_xm1Target + N_root_y) % N_root_y; // Y periodicity + yp1_xm1Target = yp1_xm1Target - round((shift_shear/boxsize.y) * N_root_y); + yp1_xm1Target = (yp1_xm1Target + N_root_y) % N_root_y; + ym1_xm1Target = ym1_xm1Target - round((shift_shear/boxsize.y) * N_root_y); + ym1_xm1Target = (ym1_xm1Target + N_root_y) % N_root_y; + } + + + tx = ((double)xm1 +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p->x; + ty = ((double)ym1 +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p->y; + + p->ax += fx[(N_root_y+2) * xm1Target + ym1_xm1Target] * W(-tx/dx)*W(-ty/dy); + p->ay += fy[(N_root_y+2) * xm1Target + ym1_xm1Target] * W(-tx/dx)*W(-ty/dy); + + tx = ((double)x +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p->x; + ty = ((double)ym1 +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p->y; + + p->ax += fx[(N_root_y+2) * xTarget + ym1_xTarget] * W(-tx/dx)*W(-ty/dy); + p->ay += fy[(N_root_y+2) * xTarget + ym1_xTarget] * W(-tx/dx)*W(-ty/dy); + + tx = ((double)xp1 +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p->x; + ty = ((double)ym1 +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p->y; + + p->ax += fx[(N_root_y+2) * xp1Target + ym1_xp1Target] * W(-tx/dx)*W(-ty/dy); + p->ay += fy[(N_root_y+2) * xp1Target + ym1_xp1Target] * W(-tx/dx)*W(-ty/dy); + + tx = ((double)xm1 +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p->x; + ty = ((double)y +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p->y; + + p->ax += fx[(N_root_y+2) * xm1Target + y_xm1Target ] * W(-tx/dx)*W(-ty/dy); + p->ay += fy[(N_root_y+2) * xm1Target + y_xm1Target ] * W(-tx/dx)*W(-ty/dy); + + tx = ((double)x +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p->x; + ty = ((double)y +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p->y; + + p->ax += fx[(N_root_y+2) * xTarget + y_xTarget ] * W(-tx/dx)*W(-ty/dy); + p->ay += fy[(N_root_y+2) * xTarget + y_xTarget ] * W(-tx/dx)*W(-ty/dy); + + tx = ((double)xp1 +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p->x; + ty = ((double)y +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p->y; + + p->ax += fx[(N_root_y+2) * xp1Target + y_xp1Target ] * W(-tx/dx)*W(-ty/dy); + p->ay += fy[(N_root_y+2) * xp1Target + y_xp1Target ] * W(-tx/dx)*W(-ty/dy); + + tx = ((double)xm1 +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p->x; + ty = ((double)yp1 +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p->y; + + p->ax += fx[(N_root_y+2) * xm1Target + yp1_xm1Target] * W(-tx/dx)*W(-ty/dy); + p->ay += fy[(N_root_y+2) * xm1Target + yp1_xm1Target] * W(-tx/dx)*W(-ty/dy); + + tx = ((double)x +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p->x; + ty = ((double)yp1 +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p->y; + + p->ax += fx[(N_root_y+2) * xTarget + yp1_xTarget] * W(-tx/dx)*W(-ty/dy); + p->ay += fy[(N_root_y+2) * xTarget + yp1_xTarget] * W(-tx/dx)*W(-ty/dy); + + tx = ((double)xp1 +0.5) * boxsize.x / N_root_x -0.5*boxsize.x - p->x; + ty = ((double)yp1 +0.5) * boxsize.y / N_root_y -0.5*boxsize.y - p->y; + + p->ax += fx[(N_root_y+2) * xp1Target + yp1_xp1Target] * W(-tx/dx)*W(-ty/dy); + p->ay += fy[(N_root_y+2) * xp1Target + yp1_xp1Target] * W(-tx/dx)*W(-ty/dy); + +} + + +void reb_calculate_acceleration_var(void){ + // Not yet implemented +} diff --git a/rebound/source/legacy/gravity_grape.c b/rebound/source/legacy/gravity_grape.c new file mode 100644 index 0000000000000000000000000000000000000000..3858a2bc66f5b59da187864b3150ac24d8d02f2c --- /dev/null +++ b/rebound/source/legacy/gravity_grape.c @@ -0,0 +1,163 @@ +/** + * @file gravity.c + * @brief Gravity calculation using GRAPE. + * @author Hanno Rein + * + * @details GRAPE is a special purpose hardware to accelerate + * N-body simulations. This routine calculates self gravity using + * a GRAPE 7 card. + * + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#include +#include +#include "g5nbutil.h" +#include "particle.h" +#include "rebound.h" +#include "boundaries.h" +#include "integrator.h" +#include "communication_mpi.h" + +int _nj_MAX = 0; +int _ni_MAX = 0; +double* mj = NULL; +double* pi = NULL; +double (*xj)[3] = NULL; +double (*xi)[3] = NULL; +double (*ai)[3] = NULL; + + +int gravity_grape_open = 0; +int gravity_grape_jmemsize = 0; +double gravity_minimum_mass = 1e300; +double gravity_range = 0; + +void reb_calculate_acceleration(void){ + // Initialize GRAPE. + if (gravity_grape_open==0){ + gravity_grape_open=1; + printf("\n************** GRAPE STARTING ***************\n"); + g5_open(); + gravity_grape_jmemsize = g5_get_jmemsize(); + printf("************** GRAPE STARTED ***************\n"); + } + + // Set domain size and minimum mass for GRAPE. + // This could be made more precise. + double gravity_boxsize = 0; + if (boxsize.x*((double)N_ghost_x+1.)>gravity_boxsize) gravity_boxsize = boxsize.x*((double)N_ghost_x+1.); + if (boxsize.y*((double)N_ghost_y+1.)>gravity_boxsize) gravity_boxsize = boxsize.y*((double)N_ghost_y+1.); + if (boxsize.z*((double)N_ghost_z+1.)>gravity_boxsize) gravity_boxsize = boxsize.z*((double)N_ghost_z+1.); + g5_set_range(-gravity_boxsize,gravity_boxsize, gravity_minimum_mass); + if (gravity_range){ + g5_set_eta(gravity_range); + } + + // Do not sum over central object for WH + int firstreb_particle = 0; + switch(integrator){ + case WH: + firstreb_particle = 1; + break; + case WHFAST: + printf("ERROR. Not implemented.\n"); + exit(0); + break; + default: + break; + } + + // Initialize or increase memory if needed. + int nj = (N_active==-1)?N:N_active; // Massive particles + int ni = N; // All particles + nj -= firstreb_particle; + + if (_nj_MAXgravity_grape_jmemsize?gravity_grape_jmemsize:nj-nj_cur; + g5_set_jp(0, nj_tmp, &(mj[nj_cur]), &(xj[nj_cur])); + g5_set_n(nj_tmp); + g5_set_eps_to_all(softening); + g5_calculate_force_on_x(xi, ai, pi, ni); + + // Updateing acceleration + for(int i=0;i + * + * @details This is the crudest implementation of an N-body code + * which sums up every pair of particles. It is only useful very small + * particle numbers (N<~100) as it scales as O(N^2). Note that the MPI + * implementation is not well tested and only works for very specific + * problems. This should be resolved in the future. + * + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#include +#include +#include +#include "particle.h" +#include "rebound.h" +#include "boundaries.h" +#include "communication_mpi.h" +#ifdef __APPLE__ +#include +#else +#include +#endif +#include "ocl_macros.h" + +#ifdef MPI +#warning GRAVITY_OPENCL might not work with MPI for your problem. +#endif + + +#define CONFIG_USE_DOUBLE 1 +#if CONFIG_USE_DOUBLE + +#if defined(cl_khr_fp64) // Khronos extension available? +#pragma OPENCL EXTENSION cl_khr_fp64 : enable +#define DOUBLE_SUPPORT_AVAILABLE +#elif defined(cl_amd_fp64) // AMD extension available? +#pragma OPENCL EXTENSION cl_amd_fp64 : enable +#define DOUBLE_SUPPORT_AVAILABLE +#endif + +#endif // CONFIG_USE_DOUBLE + +#if defined(DOUBLE_SUPPORT_AVAILABLE) + +// double +typedef double real_t; +#define PI 3.14159265358979323846 + +#else + +#warning Using single precission. +// float +typedef float real_t; +#define PI 3.14159265359f + +#endif + + +unsigned int gravity_ignore_10; + + + +const char *src_kernel = +"__kernel \n" +"void gravity_opencl_kernel( \n" +" const float G, \n" +" const float softening, \n" +" __global float* r, \n" +" __global float* a, \n" +" __global float* m, \n" +" const int N) \n" +"{ \n" +" int i = get_global_id(0); \n" +" if (i >= N){ \n" +" return; \n" +" } \n" +" a[i*3+0] = 0; \n" +" a[i*3+1] = 0; \n" +" a[i*3+2] = 0; \n" +" for (int j=0;j failed."); \ + exit(1); \ + } \ + \ + buildLog = (char*)malloc(buildLogSize); \ + if(buildLog == NULL) \ + { \ + printf("Failed to allocate host memory. (buildLog)\n"); \ + exit(1); \ + } \ + memset(buildLog, 0, buildLogSize); \ + \ + logStatus = clGetProgramBuildInfo(PROGRAM, \ + DEVICE, \ + CL_PROGRAM_BUILD_LOG, \ + buildLogSize, \ + buildLog, \ + NULL); \ + if(logStatus != CL_SUCCESS) \ + { \ + printf( "Error # %d logStatus ", logStatus); \ + printf( ":: clGetProgramBuildInfo failed."); \ + exit(1); \ + } \ + \ + printf(" \n\t\t\tBUILD LOG\n"); \ + printf(" ************************************************\n"); \ + printf("%s",buildLog); \ + printf(" ************************************************\n"); \ + free(buildLog); \ + exit(1); \ + } + +/* Get platform information and set up the Platform for the defined vendor*/ +#define OCL_CREATE_PLATFORMS( PLATFORM ) \ + cl_uint num_platforms; \ + if ((clGetPlatformIDs(0, NULL, &num_platforms)) == CL_SUCCESS) \ + { \ + PLATFORM = (cl_platform_id *)malloc(sizeof(cl_platform_id)*num_platforms); \ + if(clGetPlatformIDs(num_platforms, PLATFORM, NULL) != CL_SUCCESS) \ + { \ + free(PLATFORM); \ + exit(-1); \ + } \ + } + +/*Release the Allocated Platforms*/ +#define OCL_RELEASE_PLATFORMS( PLATFORM ) \ + free(PLATFORM); + +#define OCL_CREATE_DEVICE( PLATFORM, DEVICE_TYPE, DEVICES ) \ + cl_uint num_devices; \ + if (clGetDeviceIDs( PLATFORM, DEVICE_TYPE, 0, \ + NULL, &num_devices) == CL_SUCCESS) \ + { \ + DEVICES = (cl_device_id *)malloc(sizeof(cl_device_id)*num_devices); \ + if (clGetDeviceIDs( PLATFORM, DEVICE_TYPE, num_devices, \ + DEVICES, NULL) != CL_SUCCESS) \ + { \ + free(DEVICES); \ + exit(-1); \ + } \ + } + +/*Release the Allocated Device*/ +#define OCL_RELEASE_DEVICES( DEVICES ) \ + free(DEVICES); + +#endif diff --git a/rebound/source/legacy/opencl/Makefile b/rebound/source/legacy/opencl/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..0749e0a6c0368c79a800b6c49785a2f22308eed2 --- /dev/null +++ b/rebound/source/legacy/opencl/Makefile @@ -0,0 +1,33 @@ +PROBLEMDIR=$(shell basename `dirname \`pwd\``)"/"$(shell basename `pwd`) +export OPENGL=1 +export OPT=-O3 -Wno-deprecated-declarations -g +export LIB=-framework OpenCL +export QUADRUPOLE=0 +export MPI=0 + +all: + # Setup link to different modules + ln -fs gravity_opencl.c ../../src/gravity.c + ln -fs boundaries_open.c ../../src/boundaries.c + ln -fs collisions_none.c ../../src/collisions.c + # Setup link to problem file + ln -fs ../$(PROBLEMDIR)/problem.c ../../src/problem.c + # Compile + $(MAKE) -C ../../src/ + # Copy result + cp ../../src/rebound . +direct: + # Setup link to different modules + ln -fs gravity_direct.c ../../src/gravity.c + ln -fs boundaries_open.c ../../src/boundaries.c + ln -fs collisions_none.c ../../src/collisions.c + # Setup link to problem file + ln -fs ../$(PROBLEMDIR)/problem.c ../../src/problem.c + # Compile + $(MAKE) -C ../../src/ + # Copy result + cp ../../src/rebound . + +clean: + $(MAKE) -C ../../src/ clean + rm -vf rebound diff --git a/rebound/source/legacy/opencl/problem.c b/rebound/source/legacy/opencl/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..76aa3ee9ccd4dc17e4e4df40f059c0456b52424a --- /dev/null +++ b/rebound/source/legacy/opencl/problem.c @@ -0,0 +1,105 @@ +/** + * @file problem.c + * @brief Example problem: opencl. + * @author Hanno Rein + * @detail A self-gravitating disc is integrated using + * the OpenCL direct gravity summation module. + * + * This is a very simple implementation (see `gravity_opencl.c`). + * Currently it only supports floating point precision. It also + * transfers the data back and forth from the GPU every timestep. + * There are considerable improvements to be made. This is just a + * proof of concept. Also note that the code required N to be a + * multiple of the workgroup size. + * + * You can test the performance increase by running: + * `make direct && ./rebound`, which will run on the CPU and + * `make && ./rebound`, which will run on the GPU. + * + * The Makefile is working with the Apple LLVM compiler. Changes + * might be necessary for other compilers such as gcc. + * + * + * @section LICENSE + * Copyright (c) 2014 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#include +#include +#include +#include "main.h" +#include "particle.h" +#include "boundaries.h" +#include "output.h" +#include "tree.h" +#include "tools.h" +#include "integrator.h" + +extern int Nmax; + +int main(int argc, char* argv[]){ + // Setup constants + G = 1; + softening = 0.01; + dt = 3e-3; + boxsize = 2.4; + integrator = LEAPFROG; + N_root_x = 1; N_root_y = 1; N_root_z = 1; + N_ghost_x = 0; N_ghost_y = 0; N_ghost_z = 0; + init_box(); + + // Initial conditions + struct reb_particle star; + star.x = 0; star.y = 0; star.z = 0; + star.vx = 0; star.vy = 0; star.vz = 0; + star.ax = 0; star.ay = 0; star.az = 0; + star.m = 1; + reb_simulation_add(r, star); + + // Setup disk particles + double disc_mass = 2e-1; + int _N = 1024*4; + while(N<_N){ + struct reb_particle pt; + double a = reb_random_powerlaw(boxsize/20.,boxsize/4./1.2,-1.5); + double phi = reb_random_uniform(0,2.*M_PI); + pt.x = a*cos(phi); + pt.y = a*sin(phi); + pt.z = a*reb_random_normal(0.001); + double mu = star.m + disc_mass * (pow(a,-3./2.)-pow(boxsize/20.,-3./2.))/(pow(boxsize/4./1.2,-3./2.)-pow(boxsize/20.,-3./2.)); + double vkep = sqrt(G*mu/a); + pt.vx = vkep * sin(phi); + pt.vy = -vkep * cos(phi); + pt.vz = 0; + pt.ax = 0; + pt.ay = 0; + pt.az = 0; + pt.m = disc_mass/(double)_N; + reb_simulation_add(r, pt); + } +} + +void heartbeat(struct reb_simulation* r){ + if (reb_simulation_output_check(10.0*dt)) reb_simulation_output_timing(); +} + +void problem_finish(){ +} diff --git a/rebound/source/legacy/restricted_threebody_mpi/Makefile b/rebound/source/legacy/restricted_threebody_mpi/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..185688e894c419aa6e1133e2c885e6e369175c36 --- /dev/null +++ b/rebound/source/legacy/restricted_threebody_mpi/Makefile @@ -0,0 +1,17 @@ +PROBLEMDIR=$(shell basename `dirname \`pwd\``)"/"$(shell basename `pwd`) +export OPENGL=0 +export OPT=-O3 +export MPI=1 +export CC=mpicc + +all: + # Setup link to different modules + ln -fs gravity_direct.c ../../src/gravity.c + ln -fs boundaries_open.c ../../src/boundaries.c + ln -fs collisions_none.c ../../src/collisions.c + # Setup link to problem file + ln -fs ../$(PROBLEMDIR)/problem.c ../../src/problem.c + # Compile + $(MAKE) -C ../../src/ + # Copy result + cp ../../src/rebound . diff --git a/rebound/source/legacy/restricted_threebody_mpi/problem.c b/rebound/source/legacy/restricted_threebody_mpi/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..b833a28e1cdfdee487bea1d7d72910b10fe32883 --- /dev/null +++ b/rebound/source/legacy/restricted_threebody_mpi/problem.c @@ -0,0 +1,124 @@ +/** + * @file problem.c + * @brief Example problem: Restricted three body problem and MPI. + * @author Hanno Rein + * @detail This problem uses MPI to calculate the restricted three + * body problem. Active particles are copied to all nodes. All other + * particles only exist on one node and are not automatically (re-) + * distributed. There is not domain decomposition used in this example. + * Run with `mpirun -np 4 nbody`. + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#include +#include +#include "main.h" +#include "particle.h" +#include "boundaries.h" +#include "output.h" +#include "communication_mpi.h" +#include "integrator.h" + +int main(int argc, char* argv[]){ + // Setup constants + integrator = LEAPFROG; + boxsize = 8; + softening = 1e-6; + dt = 1.0e-2*2.*M_PI; + N_active = 2; // Only the star and the planet have non-zero mass + N_root_x = 2; N_root_y = 2; N_root_z = 1; + init_box(); + + // Initial conditions for star + struct reb_particle star; + star.x = 0; star.y = 0; star.z = 0; + star.vx = 0; star.vy = 0; star.vz = 0; + star.m = 1; + + // Initial conditions for planet + double planet_e = 0.; + struct reb_particle planet; + planet.x = 1.-planet_e; planet.y = 0; planet.z = 0; + planet.vx = 0; planet.vy = sqrt(2./(1.-planet_e)-1.); planet.vz = 0; + planet.m = 1e-2; + + int _N = 40000; + + // Move to center of mass frame (otherwise planet and star drift out of box) + double com_x = (star.x*star.m + planet.x*planet.m) /(star.m+planet.m); + double com_y = (star.y*star.m + planet.y*planet.m) /(star.m+planet.m); + double com_z = (star.z*star.m + planet.z*planet.m) /(star.m+planet.m); + double com_vx = (star.vx*star.m + planet.vx*planet.m)/(star.m+planet.m); + double com_vy = (star.vy*star.m + planet.vy*planet.m)/(star.m+planet.m); + double com_vz = (star.vz*star.m + planet.vz*planet.m)/(star.m+planet.m); + planet.x -= com_x; planet.y -= com_y; planet.z -= com_z; + planet.vx -= com_vx; planet.vy -= com_vy; planet.vz -= com_vz; + star.x -= com_x; star.y -= com_y; star.z -= com_z; + star.vx -= com_vx; star.vy -= com_vy; star.vz -= com_vz; + + // Add active particles on all nodes + reb_simulation_add(r, star); + reb_simulation_add(r, planet); +#ifdef MPI + // Create _N particles in total. + _N /= mpi_num; +#endif // MPI + + while(N<_N+2){ + double x = ((double)rand()/(double)RAND_MAX-0.5)*boxsize*0.9; + double y = ((double)rand()/(double)RAND_MAX-0.5)*boxsize*0.9; + double a = sqrt(x*x+y*y); + double phi = atan2(y,x); + if (a<.1) continue; + if (a>boxsize_x/2.*0.9) continue; + + double vkep = sqrt(G*star.m/a); + struct reb_particle testparticle; + testparticle.x = x; + testparticle.y = y; + testparticle.z = 1.0e-2*x*((double)rand()/(double)RAND_MAX-0.5); + testparticle.vx = -vkep*sin(phi); + testparticle.vy = vkep*cos(phi); + testparticle.vz = 0; + testparticle.ax = 0; + testparticle.ay = 0; + testparticle.az = 0; + testparticle.m = 0; + + // Add particles locally. This does not distribute particles. + particles_add_local(testparticle); + } +} + +void heartbeat(struct reb_simulation* r){ + if (reb_simulation_output_check(2.*M_PI)){ + reb_simulation_output_timing(); + } + if (reb_simulation_output_check(2.*M_PI)){ + reb_simulation_output_ascii("positions.txt"); + } +} + +void problem_finish(){ +} + diff --git a/rebound/source/legacy/selfgravity_disc_grape/Makefile b/rebound/source/legacy/selfgravity_disc_grape/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..67141ed702cbfb5751eab3174dbd9fece52c2038 --- /dev/null +++ b/rebound/source/legacy/selfgravity_disc_grape/Makefile @@ -0,0 +1,19 @@ +PROBLEMDIR=$(shell basename `dirname \`pwd\``)"/"$(shell basename `pwd`) +export OPT=-g -O3 -I/misc/local/g7pkg2.1/include +export LIB=-L/misc/local/g7pkg2.1/lib -lg75 -lhib + +all: + # Setup link to different modules + ln -fs gravity_grape.c ../../src/gravity.c + ln -fs boundaries_open.c ../../src/boundaries.c + ln -fs collisions_none.c ../../src/collisions.c + # Setup link to problem file + ln -fs ../$(PROBLEMDIR)/problem.c ../../src/problem.c + # Compile + $(MAKE) -C ../../src/ + # Copy result + cp ../../src/rebound . + +clean: + $(MAKE) -C ../../src/ clean + rm -vf rebound diff --git a/rebound/source/legacy/selfgravity_disc_grape/problem.c b/rebound/source/legacy/selfgravity_disc_grape/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..2b86c76a0e573c2b949882e4d6fd4bd073ed64cb --- /dev/null +++ b/rebound/source/legacy/selfgravity_disc_grape/problem.c @@ -0,0 +1,94 @@ +/** + * @file problem.c + * @brief Example problem: self-gravity disc. + * @author Hanno Rein + * @detail A self-gravitating disc is integrated using + * the leap frog integrator. This example is using the GRAPE + * module to calculate the self-gravity. You need to have a physical + * GRAPE card in your computer to run this example. + * Collisions are not resolved. + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#include +#include +#include +#include "main.h" +#include "particle.h" +#include "boundaries.h" +#include "output.h" +#include "communication_mpi.h" +#include "tree.h" +#include "tools.h" +#include "integrator.h" + +extern int Nmax; + +int main(int argc, char* argv[]){ + // Setup constants + G = 1; + integrator = LEAPFROG; + softening = 0.01; + dt = 3e-3; + boxsize = 1.2; + N_root_x = 1; N_root_y = 1; N_root_z = 1; + N_ghost_x = 0; N_ghost_y = 0; N_ghost_z = 0; + init_box(); + + // Setup particles + double disc_mass = 2e-1; + int _N = 10000; + // Initial conditions + struct reb_particle star; + star.x = 0; star.y = 0; star.z = 0; + star.vx = 0; star.vy = 0; star.vz = 0; + star.ax = 0; star.ay = 0; star.az = 0; + star.m = 1; + reb_simulation_add(r, star); + while(N<_N){ + struct reb_particle pt; + double a = reb_random_powerlaw(boxsize/10.,boxsize/2./1.2,-1.5); + double phi = reb_random_uniform(0,2.*M_PI); + pt.x = a*cos(phi); + pt.y = a*sin(phi); + pt.z = a*reb_random_normal(0.001); + double mu = star.m + disc_mass * (pow(a,-3./2.)-pow(boxsize/10.,-3./2.))/(pow(boxsize/2./1.2,-3./2.)-pow(boxsize/10.,-3./2.)); + double vkep = sqrt(G*mu/a); + pt.vx = vkep * sin(phi); + pt.vy = -vkep * cos(phi); + pt.vz = 0; + pt.ax = 0; + pt.ay = 0; + pt.az = 0; + pt.m = disc_mass/(double)_N; + reb_simulation_add(r, pt); + } +} + +void heartbeat(struct reb_simulation* r){ + if (reb_simulation_output_check(10.0*dt)) reb_simulation_output_timing(); + if (reb_simulation_output_check(1.)) reb_simulation_output_ascii("ascii.txt"); +} + +void problem_finish(){ +} diff --git a/rebound/source/legacy/shearing_sheet_fft/Makefile b/rebound/source/legacy/shearing_sheet_fft/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..58c26726a397de3bb5cb4989332fdca3e39dc67f --- /dev/null +++ b/rebound/source/legacy/shearing_sheet_fft/Makefile @@ -0,0 +1,20 @@ +PROBLEMDIR=$(shell basename `dirname \`pwd\``)"/"$(shell basename `pwd`) +export OPT=-O3 +export OPENGL=1 +export FFTW=1 + +all: + # Setup link to different modules + ln -fs gravity_fft.c ../../src/gravity.c + ln -fs boundaries_shear.c ../../src/boundaries.c + ln -fs collisions_sweep.c ../../src/collisions.c + # Setup link to problem file + ln -fs ../$(PROBLEMDIR)/problem.c ../../src/problem.c + # Compile + $(MAKE) -C ../../src/ + # Copy result + cp ../../src/rebound . + +clean: + $(MAKE) -C ../../src/ clean + rm -vf rebound diff --git a/rebound/source/legacy/shearing_sheet_fft/problem.c b/rebound/source/legacy/shearing_sheet_fft/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..d3c759fd67df84d4ff1b1cf54a775abd925ee9d9 --- /dev/null +++ b/rebound/source/legacy/shearing_sheet_fft/problem.c @@ -0,0 +1,123 @@ +/** + * @file problem.c + * @brief Example problem: shearing sheet. + * @author Hanno Rein + * @detail This problem is identical to the other shearing + * sheet examples but uses an FFT based gravity solver. + * To run this example, you need to install the FFTW library. + * Collisions are detected using a plane sweep algorithm. + * There is no tree present in this simulation. + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#include +#include +#include +#include "main.h" +#include "particle.h" +#include "boundaries.h" +#include "output.h" +#include "communication_mpi.h" +#include "tree.h" +#include "tools.h" +#include "integrator.h" + +extern double OMEGA; +extern double OMEGAZ; +extern double coefficient_of_restitution; +extern double minimum_collision_velocity; + +extern double (*coefficient_of_restitution_for_velocity)(double); +double coefficient_of_restitution_bridges(double v); + +int main(int argc, char* argv[]){ + // Setup constants + integrator = SEI; + OMEGA = 0.00013143527; // 1/s + OMEGAZ = 3.6*0.00013143527; // 1/s + G = 6.67428e-11; // N / (1e-5 kg)^2 m^2 + softening = 0.1; // m + dt = 1e-3*2.*M_PI/OMEGA; // s + int ngrid = 64; + N_root_x = ngrid; N_root_y = ngrid; N_root_z = ngrid/2; + double surfacedensity = 400; // kg/m^2 + double particle_density = 400; // kg/m^3 + double particle_radius_min = 1; // m + double particle_radius_max = 4; // m + double particle_radius_slope = -3; + boxsize = 200/(double)ngrid; + if (argc>1){ // Try to read boxsize from command line + boxsize = atof(argv[1]); + } + init_box(); + + // Use Bridges et al coefficient of restitution. + coefficient_of_restitution_for_velocity = coefficient_of_restitution_bridges; + minimum_collision_velocity = particle_radius_min*OMEGA*0.001; // small fraction of the shear + double total_mass = surfacedensity*boxsize_x*boxsize_y; +#ifdef MPI + // Only initialise particles on master. This should also be parallelied but the details depend on the individual problem. + if (mpi_id==0){ +#endif + double mass = 0; + while(mass1) eps=1; + if (eps<0) eps=0; + return eps; +} + +void heartbeat(struct reb_simulation* r){ + if (reb_simulation_output_check(10.0*dt)){ + reb_simulation_output_timing(); + } +} + +void problem_finish(){ +} diff --git a/rebound/source/legacy/shearing_sheet_grape/Makefile b/rebound/source/legacy/shearing_sheet_grape/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..4558038964b3c4fdeb06ef64d33d18b955a6726c --- /dev/null +++ b/rebound/source/legacy/shearing_sheet_grape/Makefile @@ -0,0 +1,19 @@ +PROBLEMDIR=$(shell basename `dirname \`pwd\``)"/"$(shell basename `pwd`) +export OPT=-g -O3 -I/misc/local/g7pkg2.1/include +export LIB=-L/misc/local/g7pkg2.1/lib -lg75 -lhib + +all: + # Setup link to different modules + ln -fs gravity_grape.c ../../src/gravity.c + ln -fs boundaries_shear.c ../../src/boundaries.c + ln -fs collisions_sweep.c ../../src/collisions.c + # Setup link to problem file + ln -fs ../$(PROBLEMDIR)/problem.c ../../src/problem.c + # Compile + $(MAKE) -C ../../src/ + # Copy result + cp ../../src/rebound . + +clean: + $(MAKE) -C ../../src/ clean + rm -vf rebound diff --git a/rebound/source/legacy/shearing_sheet_grape/problem.c b/rebound/source/legacy/shearing_sheet_grape/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..de8b6144f11dd3c87f8f435d585bd777de647e32 --- /dev/null +++ b/rebound/source/legacy/shearing_sheet_grape/problem.c @@ -0,0 +1,149 @@ +/** + * @file problem.c + * @brief Example problem: shearing sheet. + * @author Hanno Rein + * @detail This is yet another shearing sheet example, + * it uses a GRAPE to calculate gravity. Note that you need to have + * a physical GRAPE card installed in your computer to run this + * simulation. Particle properties resemble those found in + * Saturn's rings. + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#include +#include +#include +#include "main.h" +#include "particle.h" +#include "boundaries.h" +#include "output.h" +#include "communication_mpi.h" +#include "tree.h" +#include "tools.h" +#include "integrator.h" + +extern double OMEGA; + +#ifndef COLLISIONS_NONE +extern double coefficient_of_restitution; +extern double minimum_collision_velocity; +extern double (*coefficient_of_restitution_for_velocity)(double); +double coefficient_of_restitution_bridges(double v){ + // assumes v in units of [m/s] + double eps = 0.32*pow(fabs(v)*100.,-0.234); + if (eps>1) eps=1; + if (eps<0) eps=0; + return eps; +} +#endif // COLLISIONS_NONE +#ifdef GRAVITY_GRAPE +extern double gravity_range; +#endif // GRAVITY_GRAPE + + +int main(int argc, char* argv[]){ + // Setup constants + integrator = SEI; + OMEGA = 0.00013143527; // 1/s + G = 6.67428e-11; // N / (1e-5 kg)^2 m^2 + dt = 1e-3*2.*M_PI/OMEGA; // s + N_root_x = 10; N_root_y = 1; N_root_z = 1; + N_ghost_x = 1; N_ghost_y = 1; N_ghost_z = 0; // Use two one ring (+cutoff, see below) + double surfacedensity = 400; // kg/m^2 + double particle_density = 400; // kg/m^3 + double particle_radius_min = 1; // m + double particle_radius_max = 4; // m + double particle_radius_slope = -3; + boxsize = 100; + if (argc>1){ // Try to read boxsize from command line + boxsize = atof(argv[1]); + } + init_box(); +#ifdef GRAVITY_GRAPE + gravity_range = boxsize/2.; +#endif // GRAVITY_GRAPE + + // Initial conditions + printf("Toomre wavelength: %f\n",2.*M_PI*M_PI*surfacedensity/OMEGA/OMEGA*G); +#ifndef COLLISIONS_NONE + // Use Bridges et al coefficient of restitution. + coefficient_of_restitution_for_velocity = coefficient_of_restitution_bridges; + minimum_collision_velocity = particle_radius_min*OMEGA*0.001; // small fraction of the shear + softening = 0.1; // m +#else // COLLISIONS_NONE + softening = particle_radius_max; +#endif // COLLISIONS_NONE + double total_mass = surfacedensity*boxsize_x*boxsize_y; + double mass = 0; + while(mass= 59.0.0"] +build-backend = "setuptools.build_meta" diff --git a/rebound/source/python_examples/dragforce/problem.py b/rebound/source/python_examples/dragforce/problem.py new file mode 100644 index 0000000000000000000000000000000000000000..5a129992ddc65fce30909e728dcd51bcbda5c9c9 --- /dev/null +++ b/rebound/source/python_examples/dragforce/problem.py @@ -0,0 +1,34 @@ +# Import the rebound module +import rebound + +# Add particles +# We work in units where G=1. +sim = rebound.Simulation() +sim.add(m=1. ) # Test particle +sim.add(m=1e-3,x=1.,vy=1. ) # Planet + +# Move particles so that the center of mass is (and stays) at the origin +sim.move_to_com() + +# You can provide a function, written in python to REBOUND. +# This function gets called every time the forces are evaluated. +# Simple add any any additional (non-gravitational) forces to the +# particle accelerations. Here, we add a simple drag force. This +# will make the planet spiral into the star. +ps = sim.particles +def dragforce(reb_sim): + dragcoefficient = 1e-2 + for p in ps: + p.ax += -dragcoefficient * p.vx + p.ay += -dragcoefficient * p.vy + p.az += -dragcoefficient * p.vz + +# Tell rebound which function to call +sim.additional_forces = dragforce + +# Integrate until t=100 (roughly 16 orbits at 1 AU) +sim.integrate(100.) + +# Output something at the end (the planet will be at ~0.1 AU) +for p in ps: + print(p.x, p.y, p.z) diff --git a/rebound/source/python_examples/horizons/problem.py b/rebound/source/python_examples/horizons/problem.py new file mode 100644 index 0000000000000000000000000000000000000000..7faec9690e6d3a49ae2ee28c3cf08f692e95d089 --- /dev/null +++ b/rebound/source/python_examples/horizons/problem.py @@ -0,0 +1,65 @@ +import matplotlib; matplotlib.use("pdf") +import matplotlib.pyplot as plt +import rebound +import socket +import sys +import os.path +import os +filename = "cache.bin" + +solar_system_objects = ["Sun", "Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune", "C/2014 Q2"] + +if os.path.isfile(filename): + # Try to load simulation from file + sim = rebound.Simulation(filename) +else: + sim = rebound.Simulation() + # Get data from NASA Horizons + try: + sim.add(solar_system_objects) + except socket.error: + print("A socket error occured. Maybe Horizons is down?") + sys.exit(0) # we ignore the error and exit + + sim.move_to_com() + # Configure simulation + sim.integrator = "whfast" + sim.set_dt = 0.01 + # Let's save it for next time + # Note: sim.save_to_file() only saves the particle data, not the integrator settings, etc. + sim.save_to_file(filename) + +sim.status() + +import numpy as np +Nout = 1000 +times = np.linspace(0,16.*np.pi,Nout) # 8 years +x = np.zeros((sim.N,Nout)) +y = np.zeros((sim.N,Nout)) + +ps = sim.particles +for ti,t in enumerate(times): + sim.integrate(t) + for i, p in enumerate(ps): + x[i][ti] = p.x + y[i][ti] = p.y + + +fig = plt.figure(figsize=(11,5)) + +def plot(zoom): + ax.set_xlim([-zoom,zoom]) + ax.set_ylim([-zoom,zoom]) + ax.set_xlabel("x [AU]") + ax.set_ylabel("y [AU]") + for i in xrange(0,sim.N): + plt.plot(x[i],y[i]) + if x[i][-1]*x[i][-1]+y[i][-1]*y[i][-1]>0.01*zoom*zoom or i==0: + ax.annotate(solar_system_objects[i], xy=(x[i][-1], y[i][-1]),horizontalalignment="center") + +ax = plt.subplot(121) +plot(zoom=24.) +ax = plt.subplot(122) +plot(zoom=1.2) + +plt.savefig("orbits.pdf") diff --git a/rebound/source/python_examples/longtermtest/problem.py b/rebound/source/python_examples/longtermtest/problem.py new file mode 100644 index 0000000000000000000000000000000000000000..963b57eba8ecd82344dd695b256ce27fe8b6fd43 --- /dev/null +++ b/rebound/source/python_examples/longtermtest/problem.py @@ -0,0 +1,167 @@ +# Import the rebound module +import sys +import matplotlib; matplotlib.use("pdf") +import matplotlib.pyplot as plt +import rebound +import numpy as np +import time +import warnings + +def simulation(par): + integrator, run, trial = par + sim = rebound.Simulation() + k = 0.01720209895 + Gfac = 1./k + sim.dt = dt + if integrator == "whfast-nocor": + integrator = "whfast" + else: + sim.ri_whfast.corrector = 11 + sim.integrator = integrator + sim.ri_whfast.safe_mode = 0 + + massfac = 1. + sim.add(m=1.00000597682, x=-4.06428567034226e-3, y=-6.08813756435987e-3, z=-1.66162304225834e-6, vx=+6.69048890636161e-6*Gfac, vy=-6.33922479583593e-6*Gfac, vz=-3.13202145590767e-9*Gfac) # Sun + sim.add(m=massfac/1407.355, x=+3.40546614227466e+0, y=+3.62978190075864e+0, z=+3.42386261766577e-2, vx=-5.59797969310664e-3*Gfac, vy=+5.51815399480116e-3*Gfac, vz=-2.66711392865591e-6*Gfac) # Jupiter + sim.add(m=massfac/3501.6, x=+6.60801554403466e+0, y=+6.38084674585064e+0, z=-1.36145963724542e-1, vx=-4.17354020307064e-3*Gfac, vy=+3.99723751748116e-3*Gfac, vz=+1.67206320571441e-5*Gfac) # Saturn + sim.add(m=massfac/22869., x=+1.11636331405597e+1, y=+1.60373479057256e+1, z=+3.61783279369958e-1, vx=-3.25884806151064e-3*Gfac, vy=+2.06438412905916e-3*Gfac, vz=-2.17699042180559e-5*Gfac) # Uranus + sim.add(m=massfac/19314., x=-3.01777243405203e+1, y=+1.91155314998064e+0, z=-1.53887595621042e-1, vx=-2.17471785045538e-4*Gfac, vy=-3.11361111025884e-3*Gfac, vz=+3.58344705491441e-5*Gfac) # Neptune + N = sim.N + particles = sim.particles + np.random.seed(run) + for p in particles: + p.m *= 1.+1e-3*np.random.rand() + p.x *= 1.+1e-3*np.random.rand() + p.y *= 1.+1e-3*np.random.rand() + p.z *= 1.+1e-3*np.random.rand() + p.vx *= 1.+1e-3*np.random.rand() + p.vy *= 1.+1e-3*np.random.rand() + p.vz *= 1.+1e-3*np.random.rand() + + def move_to_heliocentric(): + particles[0].x = 0. + particles[0].y = 0. + particles[0].z = 0. + particles[0].vx = 0. + particles[0].vy = 0. + particles[0].vz = 0. + + + def energy(): + com_vx = 0. + com_vy = 0. + com_vz = 0. + if integrator=="mercury" or integrator[0:7]=="swifter": + mtot = 0. + for p in particles: + com_vx += p.vx*p.m + com_vy += p.vy*p.m + com_vz += p.vz*p.m + mtot += p.m + com_vx /= mtot + com_vy /= mtot + com_vz /= mtot + E_kin = 0. + E_pot = 0. + for i in xrange(N): + dvx = particles[i].vx - com_vx + dvy = particles[i].vy - com_vy + dvz = particles[i].vz - com_vz + E_kin += 0.5*particles[i].m*(dvx*dvx + dvy*dvy + dvz*dvz) + for j in xrange(i+1,N): + dx = particles[i].x-particles[j].x + dy = particles[i].y-particles[j].y + dz = particles[i].z-particles[j].z + r2 = dx*dx + dy*dy + dz*dz + E_pot -= particles[i].m*particles[j].m/np.sqrt(r2) + return E_kin+E_pot + + times = np.logspace(np.log10(orbit),np.log10(tmax),Ngrid) + if integrator=="mercury" or integrator[0:7]=="swifter": + move_to_heliocentric() + else: + sim.move_to_com() + ei = energy() + + es = [] + + runtime = 0. + start = time.time() + # Capture warning messages (WHFast timestep too large) + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + for t in times: + sim.integrate(t,exact_finish_time=0) + ef = energy() + e = np.fabs((ei-ef)/ei)+1.1e-16 + es.append(e) + + integrator, run, trial = par + print(integrator.ljust(13) + " %9.5fs"%(time.time()-start) + "\t Error: %e" %( e)) + + es = np.array(es) + return [times, es] + +Ngrid = 500 +#3dt = 100.23 +orbit = 11.8618*1.*np.pi +dt = orbit/3000. +tmax = orbit*1e2 # Maximum integration time. +integrators = ["whfast-nocor", "whfast"] +#integrators = ["mercury","swifter-whm","whfast-nocor", "whfast"] +colors = { + 'whfast-nocor': "#FF0000", + 'whfast': "#00AA00", + 'mercury': "#6E6E6E", + 'swifter-whm': "#444444", + 'swifter-helio':"#AABBBB", + 'swifter-tu4': "#FFAAAA", + 'ias15': "g", +} +trials = 4 + +parameters = [(inte,i*trials+j,j) for i,inte in enumerate(integrators) for j in xrange(trials)] +if len(sys.argv)!=2: + try: + from multiprocess import Pool + except: + raise RuntimeError("Please install the multiprocess module with `pip install multiprocess`.") + with Pool() as pool: + print("Running %d simulations on %d threads..." % (len(parameters), pool._processes)) + res = np.array(pool.map(simulation,parameters)).reshape(len(integrators),trials,2,Ngrid) + np.save("res.npy",res) +else: + print("Loading %d simulations" % (len(parameters))) + print(sys.argv[1]) + res = np.load(sys.argv[1]) + + + +f,axarr = plt.subplots(1,1,figsize=(13,4)) +extent=[res[:,:,0,:].min()/orbit, res[:,:,0,:].max()/orbit, 1e-16, 1e-5] + +axarr.set_xlim(extent[0], extent[1]) +axarr.set_ylim(extent[2], extent[3]) +axarr.set_xlabel(r"time [orbits]") +axarr.set_ylabel(r"relative energy error") +plt.xscale('log') +plt.yscale('log') +plt.grid(True) + + +res_mean = np.mean(res,axis=1) +for i in xrange(len(res)): + for j in xrange(trials): + res_trial = res[i,j,:,:] + im1 = axarr.plot(res_trial[0]/orbit,res_trial[1], color=colors[integrators[i]],alpha=0.2) + im1 = axarr.plot(res_mean[i][0]/orbit,res_mean[i][1], label=integrators[i].upper(),color=colors[integrators[i]], linewidth=2.0) + +from matplotlib.font_manager import FontProperties +fontP = FontProperties() +fontP.set_size('small') +lgd = plt.legend(loc="upper center", bbox_to_anchor=(0.5, -0.2), prop = fontP,ncol=3,frameon=False, numpoints=1, scatterpoints=1 , handletextpad = 0.2, markerscale=2.) +plt.savefig("longtermtest.pdf", bbox_extra_artists=(lgd,), bbox_inches='tight') +from sys import platform as _platform +if _platform == "darwin": + import os + os.system("open longtermtest.pdf") diff --git a/rebound/source/python_examples/megno/problem.py b/rebound/source/python_examples/megno/problem.py new file mode 100644 index 0000000000000000000000000000000000000000..16ae2a4c2abd165a49f494184d657167ec546ed7 --- /dev/null +++ b/rebound/source/python_examples/megno/problem.py @@ -0,0 +1,94 @@ +#!/usr/bin/python +# This example integrates Jupiter and Saturn in the Solar system for a variety of initial conditions. +# Alongside the normal equations of motions, IAS15 is used to integrate the variational equations. +# These can be used to measure the Mean Exponential Growth of Nearby Orbits (MEGNO), a chaos indicator. +# This example script runs 12^2 simulations and plots the MEGNO value. Values close to =2 correspond +# to regular quasi-periodic orbits. Higher values of correspond to chaotic orbits. + +# Import matplotlib +import matplotlib; matplotlib.use("pdf") +import matplotlib.pyplot as plt +from matplotlib.colors import LogNorm + +# Import the rebound module +import rebound +# Import other modules +import numpy as np +import warnings + +# Runs one simulation. +def simulation(par): + saturn_a, saturn_e = par + sim = rebound.Simulation() + sim.integrator = "whfast" + sim.min_dt = 5. + sim.dt = 1. + + # These parameters are only approximately those of Jupiter and Saturn. + sun = rebound.Particle(m=1.) + sim.add(sun) + jupiter = sim.add(primary=sun,m=0.000954, a=5.204, M=0.600, omega=0.257, e=0.048) + saturn = sim.add(primary=sun,m=0.000285, a=saturn_a, M=0.871, omega=1.616, e=saturn_e) + + sim.move_to_com() + sim.init_megno() + # Hide warning messages (WHFast timestep too large) + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(1e3*2.*np.pi) + + return [sim.megno(),1./(sim.lyapunov()*2.*np.pi)] # returns MEGNO and Lypunov timescale in years + + +### Setup grid and run many simulations in parallel +N = 100 # Grid size, increase this number to see more detail +a = np.linspace(7.,10.,N) # range of saturn semi-major axis in AU +e = np.linspace(0.,0.5,N) # range of saturn eccentricity +parameters = [] +for _e in e: + for _a in a: + parameters.append([_a,_e]) + +simulation((8,0.)) +# Run simulations in parallel +try: + from multiprocess import Pool +except: + raise RuntimeError("Please install the multiprocess module with `pip install multiprocess`.") +with Pool() as pool: + print("Running %d simulations on %d threads..." % (len(parameters), pool._processes)) + res = np.nan_to_num(np.array(pool.map(simulation,parameters))) +megno = np.clip(res[:,0].reshape((N,N)),1.8,4.) # clip arrays to plot saturated +lyaptimescale = np.clip(np.absolute(res[:,1].reshape((N,N))),1e1,1e5) + +### Create plot and save as pdf + +# Setup plots +f, axarr = plt.subplots(2,figsize=(10,10)) +extent = [a.min(), a.max(), e.min(), e.max()] +for ax in axarr: + ax.set_xlim(extent[0],extent[1]) + ax.set_ylim(extent[2],extent[3]) + ax.set_xlabel("$a_{\mathrm{Saturn}}$ [AU]") + ax.set_ylabel("$e_{\mathrm{Saturn}}$") + + +# Plot MEGNO +im1 = axarr[0].imshow(megno, vmin=1.8, vmax=4., aspect='auto', origin="lower", interpolation='nearest', cmap="RdYlGn_r", extent=extent) +cb1 = plt.colorbar(im1, ax=axarr[0]) +cb1.solids.set_rasterized(True) +cb1.set_label("MEGNO $\\langle Y \\rangle$") + +# Plot Lyapunov timescale +im2 = axarr[1].imshow(lyaptimescale, norm=LogNorm(vmin=1e1, vmax=1e5), aspect='auto', origin="lower", interpolation='nearest', cmap="RdYlGn", extent=extent) +cb2 = plt.colorbar(im2, ax=axarr[1]) +cb2.solids.set_rasterized(True) +cb2.set_label("Lyapunov timescale [years]") + +plt.savefig("megno.pdf") + +### Automatically open plot (OSX only) +from sys import platform as _platform +if _platform == "darwin": + import os + os.system("open megno.pdf") diff --git a/rebound/source/python_examples/megno_simple/problem.py b/rebound/source/python_examples/megno_simple/problem.py new file mode 100644 index 0000000000000000000000000000000000000000..2aa7fec4189d24bcf1638d8740e3862cdf738018 --- /dev/null +++ b/rebound/source/python_examples/megno_simple/problem.py @@ -0,0 +1,30 @@ +#!/usr/bin/python +# This example script runs 2 simulations and plots the MEGNO value. Values close to =2 correspond +# to regular quasi-periodic orbits. Higher values of correspond to chaotic orbits. +from __future__ import print_function +# Import the rebound module +import rebound +# Import other modules +import numpy as np + +def simulation(integrator): + print("Running "+integrator) + with open(integrator+".txt","w") as f: + sim = rebound.Simulation() + sim.integrator = integrator + sim.dt = 0.2 + + sim.add(m=1.) + sim.add(m=0.01, a=1,e=0.1) + sim.add(m=0.01, a=2.) + + sim.move_to_com() + sim.init_megno() + particles = sim.particles + times = np.logspace(2,5,num=1000) + for t in times: + sim.integrate(t,0) + print("%e %e %e %e %e %e %e %e\n" %(sim.t, sim.megno(), particles[0].x, particles[1].x, particles[2].x, particles[3].x, particles[4].x, particles[5].x),file=f) + +simulation("whfast") +simulation("ias15") diff --git a/rebound/source/python_examples/orbital_elements/problem.py b/rebound/source/python_examples/orbital_elements/problem.py new file mode 100644 index 0000000000000000000000000000000000000000..22878c206a8dbde62b0e078b0abcc2c6d28a27c9 --- /dev/null +++ b/rebound/source/python_examples/orbital_elements/problem.py @@ -0,0 +1,29 @@ +import rebound + +# Create a rebound simulation +sim = rebound.Simulation() + +# Add a particle at the origin with mass 1 +sim.add(m=1.) + +# Add a particle with mass 1e-3 on a Keplerian +# orbit around the center of mass (including all +# particles added so far) with semi-major axis 1 +sim.add(m=1e-3, a=1.) + +# Add a test particle (mass=0) on a Keplerian orbit +# around the center of mass (both particles added above) +# with a semi-major axis of 2 and eccentricity of 0.1. +# This corresponds to Jacobi coordinates. +sim.add(a=1., e=0.1) + +# Move all particles to the-center-of-momentum frame. +sim.move_to_com() + +# Print the resulting cartesian coordinates. +for p in sim.particles: + print(p.m, p.x, p.y, p.z, p.vx, p.vy, p.vz) + +# Integrate for 100 time units +sim.integrate(100.) + diff --git a/rebound/source/python_examples/outersolarsystem/problem.py b/rebound/source/python_examples/outersolarsystem/problem.py new file mode 100644 index 0000000000000000000000000000000000000000..ffd555117911f2b4b5d7ff0f2086a69774b57f9d --- /dev/null +++ b/rebound/source/python_examples/outersolarsystem/problem.py @@ -0,0 +1,33 @@ +# Import the rebound module +import rebound + +# Create a REBOUND simulation +sim = rebound.Simulation() + +# Set variables (defaults are G=1, t=0, dt=0.01) +k = 0.01720209895 # Gaussian constant +sim.G = k*k # Gravitational constant + +# Setup particles (data taken from NASA Horizons) +# This could also be easily read in from a file. +sim.add( m=1.00000597682, x=-4.06428567034226e-3, y=-6.08813756435987e-3, z=-1.66162304225834e-6, vx=+6.69048890636161e-6, vy=-6.33922479583593e-6, vz=-3.13202145590767e-9) # Sun +sim.add( m=1./1047.355, x=+3.40546614227466e+0, y=+3.62978190075864e+0, z=+3.42386261766577e-2, vx=-5.59797969310664e-3, vy=+5.51815399480116e-3, vz=-2.66711392865591e-6) # Jupiter +sim.add( m=1./3501.6, x=+6.60801554403466e+0, y=+6.38084674585064e+0, z=-1.36145963724542e-1, vx=-4.17354020307064e-3, vy=+3.99723751748116e-3, vz=+1.67206320571441e-5) # Saturn +sim.add( m=1./22869., x=+1.11636331405597e+1, y=+1.60373479057256e+1, z=+3.61783279369958e-1, vx=-3.25884806151064e-3, vy=+2.06438412905916e-3, vz=-2.17699042180559e-5) # Uranus +sim.add( m=1./19314., x=-3.01777243405203e+1, y=+1.91155314998064e+0, z=-1.53887595621042e-1, vx=-2.17471785045538e-4, vy=-3.11361111025884e-3, vz=+3.58344705491441e-5) # Neptune +sim.add( m=0, x=-2.13858977531573e+1, y=+3.20719104739886e+1, z=+2.49245689556096e+0, vx=-1.76936577252484e-3, vy=-2.06720938381724e-3, vz=+6.58091931493844e-4) # Pluto + +# Set the center of momentum to be at the origin +sim.move_to_com() + +# timestep counter +steps = 0 +# Integrate until t=1e4 (unit of time in this example is days) +for i in range(10): + t = 1.0e3*i + sim.integrate(t) + # Print particle positions + for p in sim.particles: + # time x y z + print(sim.t, p.x, p.y, p.z) + diff --git a/rebound/source/python_examples/simple_orbit/problem.py b/rebound/source/python_examples/simple_orbit/problem.py new file mode 100644 index 0000000000000000000000000000000000000000..fa25f8385d6076bffe9b8e3c5c472902ceee897a --- /dev/null +++ b/rebound/source/python_examples/simple_orbit/problem.py @@ -0,0 +1,19 @@ +# Import the rebound module +import rebound + +# Create Simulation object +sim = rebound.Simulation() +# Add particle to rebound +sim.add( m=1. ) +sim.add( m=1e-3, a=1., e=0.1 ) # Planet 1 +sim.add( a=1.4, e=0.1 ) # Massless test particle + +# Output orbits in Jacobi coordinates +for o in sim.orbits(): print(o) + +# Output orbits in Heliocentric coordinates +for o in sim.orbits(primary=sim.particles[0]): print(o) + +# Output cartesian coordinates +for p in sim.particles: + print(p) diff --git a/rebound/source/python_examples/simulationarchive/problem.py b/rebound/source/python_examples/simulationarchive/problem.py new file mode 100644 index 0000000000000000000000000000000000000000..4ff000d4f2382ff8227c5a885e9e4e8f84152c67 --- /dev/null +++ b/rebound/source/python_examples/simulationarchive/problem.py @@ -0,0 +1,23 @@ +# Import the rebound module +import rebound + +filename = "simulationarchive.bin" +try: + sim = rebound.Simulation(filename) + print("Restarting from simulationarchive. Last snapshot found at t=%.1f"%sim.t) +except: + print("Cannot load Simulationarchive. Creating new simulation.") + sim = rebound.Simulation() + sim.add(m=1) # star + sim.add(m=1e-3, a=1, e=0.01) # planet 1 + sim.add(m=1e-3, a=2.5, e=0.01) # planet 2 + sim.integrator = "whfast" + sim.dt = 3.1415*2.*6./365.25 # 6 days in units where G=1 + sim.move_to_com() + +sim.save_to_file(filename, interval=2.*3.1415*1e5) + +# Run a very long simulation. +# Interrupted at any time and then run script again to restart. +sim.integrate(2.*3.1415*1e10) # 10 Gyr + diff --git a/rebound/source/rebound/__init__.py b/rebound/source/rebound/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..1c36df1efe92f9ff54cefd708463ae0205f9b3ab --- /dev/null +++ b/rebound/source/rebound/__init__.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +"""An N-body integrator package for python.""" + +import sys +import os +import warnings +import platform +from ctypes import cdll, c_char_p + +# Find suffix +if platform.system()=="Windows" and sys.version_info.major<=3 and sys.version_info.minor<8: + # Using distutils.sysconfig instead of sysconfig because + # of a bug in Python < 3.8 on windows + import distutils.sysconfig as sysconfig +else: + import sysconfig +suffix = sysconfig.get_config_var('EXT_SUFFIX') + +if suffix is None: + suffix = ".so" + +try: # Only needed for pyodide + import pyodide_js + from site import getsitepackages + pyodide_js._module.loadDynamicLibrary(getsitepackages()[0]+"/librebound"+suffix) + del getsitepackages + del pyodide_js +except: + pass + + +# Make changes for python 2 and 3 compatibility +try: + import builtins # if this succeeds it's python 3.x + builtins.xrange = range + builtins.basestring = (str,bytes) +except ImportError: + pass # python 2.x + + +# Import shared library +pymodulepath = os.path.dirname(os.path.abspath(__file__)) +pymodulepath = os.path.abspath(os.path.join(pymodulepath, os.pardir)) +__libpath__ = os.path.join(pymodulepath, "librebound"+suffix) +clibrebound = cdll.LoadLibrary(__libpath__) + +# Version +__version__ = c_char_p.in_dll(clibrebound, "reb_version_str").value.decode('ascii') + +# Build +__build__ = c_char_p.in_dll(clibrebound, "reb_build_str").value.decode('ascii') + +# Githash +__githash__ = c_char_p.in_dll(clibrebound, "reb_githash_str").value.decode('ascii') + +# Check for version +moduleversion = sys.modules["rebound"].__version__ +libreboundversion = __version__ +if moduleversion != libreboundversion: + warnings.warn("WARNING: python module and librebound have different version numbers: '%s' vs '%s'.\n" %(moduleversion, libreboundversion), ImportWarning) + +# Exceptions +class GenericError(Exception): + """The simulation exited with a generic error.""" + pass + +class Encounter(Exception): + """The simulation exited because a close encounter has been detected. + You may want to search for the pair of bodies which have the smallest distance.""" + pass + +class Collision(Exception): + """The simulation exited because a collision has been detected. + You may want to search for which particles have a last_collision time equal to the simulation time.""" + pass + +class Escape(Exception): + """The simulation exited because a particle has been se encounter has been detected. + You may want to search for the particle with the largest distance from the + origin and remove it from the simulation.""" + pass + +class NoParticles(Exception): + """The simulation exited because no particles are left in the simulation.""" + pass + +class ParticleNotFound(Exception): + """Particle was not found in the simulation.""" + pass + +from .hash import hash +from .tools import mod2pi, M_to_f, E_to_f, M_to_E, spherical_to_xyz, xyz_to_spherical +from .simulation import Simulation, Variation, ODE, Vec3d, Vec3dBasic, CollisionS # CollisionS is the collision struct, not the exception +from .rotation import Rotation +from .orbit import Orbit +from .particle import Particle +from .plotting import OrbitPlot, OrbitPlotSet +from .simulationarchive import Simulationarchive +from .frequency_analysis import frequency_analysis + +__all__ = ["__libpath__", "__version__", "__build__", "__githash__", "Simulationarchive", "Simulation", "Orbit", "OrbitPlot", "OrbitPlotSet", "Particle", "GenericError", "Encounter", "Collision", "CollisionS", "Escape", "NoParticles", "ParticleNotFound", "Variation", "clibrebound", "mod2pi", "M_to_f", "E_to_f", "M_to_E", "ODE", "Rotation", "Vec3d", "spherical_to_xyz", "xyz_to_spherical"] diff --git a/rebound/source/rebound/binary_field_descriptor.py b/rebound/source/rebound/binary_field_descriptor.py new file mode 100644 index 0000000000000000000000000000000000000000..ed2e7c67f6b7e5fd15c8d7081f17c86f296de749 --- /dev/null +++ b/rebound/source/rebound/binary_field_descriptor.py @@ -0,0 +1,33 @@ +import ctypes +from . import clibrebound + +class BinaryFieldDescriptor(ctypes.Structure): + """ + Describes the binary field in simulationarchives + + Used here for unit tests only. Checking if ids are unique. + """ + + def __repr__(self): + return '<{0}.{1} object at {2}, type={3}, dtype={4}, name=\'{5}\'>'.format(self.__module__, type(self).__name__, hex(id(self)), self.type, self.dtype, self.name.decode("ascii")) + _fields_ = [("type", ctypes.c_uint), + ("dtype", ctypes.c_int), + ("name", ctypes.c_char*1024), + ("offset", ctypes.c_size_t), + ("offset_N", ctypes.c_size_t), + ("element_size", ctypes.c_size_t), + ] +def binary_field_descriptor_list(): + fd_pointer_t = ctypes.POINTER(BinaryFieldDescriptor) + fd_pointer = (BinaryFieldDescriptor*3).in_dll(clibrebound, "reb_binary_field_descriptor_list") + fd_pointer = ctypes.cast(fd_pointer, fd_pointer_t) # not sure why I have to do it this way + l = [] + i=0 + while True: + l.append(fd_pointer[i]) + if fd_pointer[i].name == b'end': + break + i += 1 + return l + + diff --git a/rebound/source/rebound/citations.py b/rebound/source/rebound/citations.py new file mode 100644 index 0000000000000000000000000000000000000000..247974d356446172fcc38bc1134aac42d2431275 --- /dev/null +++ b/rebound/source/rebound/citations.py @@ -0,0 +1,313 @@ +# -*- coding: utf-8 -*- +"""Automatically generate citations for a simulation.""" + +def cite(sim): + txt = """Simulations in this paper made use of the REBOUND N-body code \\citep{rebound}. """ + bib = """@ARTICLE{rebound, + author = {{Rein}, H. and {Liu}, S. -F.}, + title = "{REBOUND: an open-source multi-purpose N-body code for collisional dynamics}", + journal = {\\aap}, + keywords = {methods: numerical, planets and satellites: rings, protoplanetary disks, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics, Mathematics - Dynamical Systems, Physics - Computational Physics}, + year = 2012, + month = jan, + volume = {537}, + eid = {A128}, + pages = {A128}, + doi = {10.1051/0004-6361/201118085}, +archivePrefix = {arXiv}, + eprint = {1110.4876}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2012A&A...537A.128R}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} +""" + if sim.extras: + txt +="""The REBOUNDx package was used to incorporate additional physics \\citep{reboundx}. """ + bib +="""@ARTICLE{reboundx, + author = {{Tamayo}, Daniel and {Rein}, Hanno and {Shi}, Pengshuai and {Hernandez}, David M.}, + title = "{REBOUNDx: a library for adding conservative and dissipative forces to otherwise symplectic N-body integrations}", + journal = {\\mnras}, + keywords = {gravitation, methods: numerical, planets and satellites: dynamical evolution and stability, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics}, + year = 2020, + month = jan, + volume = {491}, + number = {2}, + pages = {2885-2901}, + doi = {10.1093/mnras/stz2870}, +archivePrefix = {arXiv}, + eprint = {1908.05634}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2020MNRAS.491.2885T}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} +""" + if sim.integrator == "ias15": + txt += """The simulations were integrated using IAS15, a 15th order Gauss-Radau integrator \\citep{reboundias15}. """ + bib += """@ARTICLE{reboundias15, + author = {{Rein}, Hanno and {Spiegel}, David S.}, + title = "{IAS15: a fast, adaptive, high-order integrator for gravitational dynamics, accurate to machine precision over a billion orbits}", + journal = {\\mnras}, + keywords = {gravitation, methods: numerical, planets and satellites: dynamical evolution and stability, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - Solar and Stellar Astrophysics, Mathematics - Numerical Analysis}, + year = 2015, + month = jan, + volume = {446}, + number = {2}, + pages = {1424-1437}, + doi = {10.1093/mnras/stu2164}, +archivePrefix = {arXiv}, + eprint = {1409.4779}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2015MNRAS.446.1424R}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} +""" + if sim.integrator == "whfast": + txt += """The simulations were integrated using WHFast, a symplectic Wisdom-Holman integrator \\citep{reboundwhfast,wh}. """ + bib += """@ARTICLE{reboundwhfast, + author = {{Rein}, Hanno and {Tamayo}, Daniel}, + title = "{WHFAST: a fast and unbiased implementation of a symplectic Wisdom-Holman integrator for long-term gravitational simulations}", + journal = {\\mnras}, + keywords = {gravitation, methods: numerical, planets and satellites: dynamical evolution and stability, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics, Mathematics - Numerical Analysis, Nonlinear Sciences - Chaotic Dynamics, Physics - Computational Physics}, + year = 2015, + month = sep, + volume = {452}, + number = {1}, + pages = {376-388}, + doi = {10.1093/mnras/stv1257}, +archivePrefix = {arXiv}, + eprint = {1506.01084}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2015MNRAS.452..376R}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} +""" + bib += """@ARTICLE{wh, + author = {{Wisdom}, Jack and {Holman}, Matthew}, + title = "{Symplectic maps for the N-body problem.}", + journal = {\\aj}, + keywords = {Many Body Problem, Planetary Evolution, Pluto (Planet), Astronomical Maps, Gravitational Effects, Physics (General)}, + year = 1991, + month = oct, + volume = {102}, + pages = {1528-1538}, + doi = {10.1086/115978}, + adsurl = {https://ui.adsabs.harvard.edu/abs/1991AJ....102.1528W}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} +""" + if sim.ri_whfast.kernel != "default": + txt += """A high order kernel was used in WHFast to improved the accuracy of the integrations \\citep{reboundhighorder}. """ + bib += """@ARTICLE{reboundhighorder, + author = {{Rein}, Hanno and {Tamayo}, Daniel and {Brown}, Garett}, + title = "{High-order symplectic integrators for planetary dynamics and their implementation in REBOUND}", + journal = {\\mnras}, + keywords = {gravitation, methods: numerical, planets and satellites: dynamical evolution and stability, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics, Physics - Computational Physics}, + year = 2019, + month = nov, + volume = {489}, + number = {4}, + pages = {4632-4640}, + doi = {10.1093/mnras/stz2503}, + archivePrefix = {arXiv}, + eprint = {1907.11335}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2019MNRAS.489.4632R}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} + } + """ + + if sim.integrator == "whfast512": + txt += """The simulations were integrated using WHFast512, a symplectic Wisdom-Holman integrator using SIMD AVX512 instructions \\citep{reboundwhfast512,wh}. """ + bib += """@ARTICLE{reboundwhfast512, + author = {{Javaheri}, Pejvak and {Rein}, Hanno and {Tamayp}, Daniel}, + title = "{WHFast512: An N-body integrator for planetary systems optimized with AVX512 SIMD instructions}", + year = 2023, +} +""" + bib += """@ARTICLE{wh, + author = {{Wisdom}, Jack and {Holman}, Matthew}, + title = "{Symplectic maps for the N-body problem.}", + journal = {\\aj}, + keywords = {Many Body Problem, Planetary Evolution, Pluto (Planet), Astronomical Maps, Gravitational Effects, Physics (General)}, + year = 1991, + month = oct, + volume = {102}, + pages = {1528-1538}, + doi = {10.1086/115978}, + adsurl = {https://ui.adsabs.harvard.edu/abs/1991AJ....102.1528W}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} +""" + + + if sim.integrator == "mercurius": + txt += """The simulations were integrated using the hybrid symplectic MERCURIUS integrator \\citep{reboundmercurius}. """ + bib += """@ARTICLE{reboundmercurius, + author = {{Rein}, Hanno and {Hernandez}, David M. and {Tamayo}, Daniel and + {Brown}, Garett and {Eckels}, Emily and {Holmes}, Emma and + {Lau}, Michelle and {Leblanc}, R{\\'e}jean and {Silburt}, Ari}, + title = "{Hybrid symplectic integrators for planetary dynamics}", + journal = {\\mnras}, + keywords = {gravitation, methods: numerical, planets and satellites: dynamical evolution and stability, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics, Mathematics - Dynamical Systems}, + year = 2019, + month = jun, + volume = {485}, + number = {4}, + pages = {5490-5497}, + doi = {10.1093/mnras/stz769}, +archivePrefix = {arXiv}, + eprint = {1903.04972}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2019MNRAS.485.5490R}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} +""" + + if sim.integrator == "trace": + txt += """The simulations were integrated using the hybrid time-reversible TRACE integrator \\citep{reboundtrace}. """ + bib += """@ARTICLE{reboundtrace, + author = {{Lu}, Tiger and {Hernandez}, David M. and {Rein}, Hanno}, + title = "{TRACE: a code for time-reversible astrophysical close encounters}", + journal = {\\mnras}, + keywords = {Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics, Physics - Computational Physics}, + year = 2024, + month = sep, + volume = {533}, + number = {3}, + pages = {3708-3723}, + doi = {10.1093/mnras/stae1982}, +archivePrefix = {arXiv}, + eprint = {2405.03800}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2024MNRAS.533.3708L}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} +} +""" + + if sim.integrator == "janus": + txt += """The simulations were integrated using the time-reversible JANUS integrator \\citep{reboundjanus}. """ + bib += """@ARTICLE{reboundjanus, + author = {{Rein}, Hanno and {Tamayo}, Daniel}, + title = "{JANUS: a bit-wise reversible integrator for N-body dynamics}", + journal = {\\mnras}, + keywords = {gravitation, methods: numerical, planets and satellites: dynamical evolution and stability, Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - Cosmology and Nongalactic Astrophysics, Astrophysics - Earth and Planetary Astrophysics}, + year = 2018, + month = jan, + volume = {473}, + number = {3}, + pages = {3351-3357}, + doi = {10.1093/mnras/stx2479}, +archivePrefix = {arXiv}, + eprint = {1704.07715}, + primaryClass = {astro-ph.IM}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2018MNRAS.473.3351R}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} +""" + + if sim.integrator == "sei": + txt += """The simulations were integrated using the Symplectic Epicycle Integrator (SEI) \\citep{reboundsei}. """ + bib += """@ARTICLE{reboundsei, + author = {{Rein}, Hanno and {Tremaine}, Scott}, + title = "{Symplectic integrators in the shearing sheet}", + journal = {\\mnras}, + keywords = {methods: numerical, celestial mechanics, planets and satellites: dynamical evolution and stability, planets and satellites: formation, planets and satellites: rings, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Galaxy Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics, Mathematics - Numerical Analysis}, + year = 2011, + month = aug, + volume = {415}, + number = {4}, + pages = {3168-3176}, + doi = {10.1111/j.1365-2966.2011.18939.x}, +archivePrefix = {arXiv}, + eprint = {1103.1376}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2011MNRAS.415.3168R}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} +""" + + if sim.integrator == "saba": + txt += """The simulations were integrated using the SABA Integrator \\citep{reboundhighorder,saba}. """ + bib += """@ARTICLE{reboundhighorder, + author = {{Rein}, Hanno and {Tamayo}, Daniel and {Brown}, Garett}, + title = "{High-order symplectic integrators for planetary dynamics and their implementation in REBOUND}", + journal = {\\mnras}, + keywords = {gravitation, methods: numerical, planets and satellites: dynamical evolution and stability, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics, Physics - Computational Physics}, + year = 2019, + month = nov, + volume = {489}, + number = {4}, + pages = {4632-4640}, + doi = {10.1093/mnras/stz2503}, +archivePrefix = {arXiv}, + eprint = {1907.11335}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2019MNRAS.489.4632R}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} +""" + bib += """@ARTICLE{saba, + author = {{Laskar}, Jacques and {Robutel}, Philippe}, + title = "{High order symplectic integrators for perturbed Hamiltonian systems}", + journal = {Celestial Mechanics and Dynamical Astronomy}, + keywords = {SYMPLECTIC INTEGRATORS, HAMILTONIAN SYSTEMS, PLANETARY MOTION, LIE ALGEBRA, Astrophysics}, + year = 2001, + month = jul, + volume = {80}, + number = {1}, + pages = {39-62}, +archivePrefix = {arXiv}, + eprint = {astro-ph/0005074}, + primaryClass = {astro-ph}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2001CeMDA..80...39L}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} +""" + + + if sim.simulationarchive_auto_interval!=0 or sim.simulationarchive_auto_walltime!=0 or sim.simulationarchive_auto_step!=0: + txt += """The Simulationarchive format was used to store fully reproducible simulation data \\citep{reboundsa}. """ + bib += """@ARTICLE{reboundsa, + author = {{Rein}, Hanno and {Tamayo}, Daniel}, + title = "{A new paradigm for reproducing and analyzing N-body simulations of planetary systems}", + journal = {\\mnras}, + keywords = {methods: numerical, gravitation, planets and satellites: dynamical evolution and stability, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics}, + year = 2017, + month = may, + volume = {467}, + number = {2}, + pages = {2377-2383}, + doi = {10.1093/mnras/stx232}, +archivePrefix = {arXiv}, + eprint = {1701.07423}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2017MNRAS.467.2377R}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} +""" + if sim.N_var>0: + txt += """Variational equations were used to calculate trajectories of nearby orbits \\citep{reboundvar}. """ + bib += """@ARTICLE{reboundvar, + author = {{Rein}, Hanno and {Tamayo}, Daniel}, + title = "{Second-order variational equations for N-body simulations}", + journal = {\\mnras}, + keywords = {gravitation, methods: numerical, planets and satellites: dynamical evolution and stability, Astrophysics - Earth and Planetary Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics, Mathematics - Classical Analysis and ODEs, Mathematics - Dynamical Systems}, + year = 2016, + month = jul, + volume = {459}, + number = {3}, + pages = {2275-2285}, + doi = {10.1093/mnras/stw644}, +archivePrefix = {arXiv}, + eprint = {1603.03424}, + primaryClass = {astro-ph.EP}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2016MNRAS.459.2275R}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} +""" + + + + + return txt, bib diff --git a/rebound/source/rebound/data.py b/rebound/source/rebound/data.py new file mode 100644 index 0000000000000000000000000000000000000000..9d41913f1a63d5cb92fec3439166798008401946 --- /dev/null +++ b/rebound/source/rebound/data.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- + +""" +Initial conditions for standard tests + +""" + +import math + +def add_outer_solar_system(sim): + """ + Add the planet of the outer Solar System as a test problem. + Data taken from NASA Horizons. + """ + Gfac = 1./0.01720209895 # Gaussian constant + if sim.G is not None: + Gfac *= math.sqrt(sim.G) + + sim.add( m=1.00000597682, x=-4.06428567034226e-3, y=-6.08813756435987e-3, z=-1.66162304225834e-6, vx=+6.69048890636161e-6*Gfac, vy=-6.33922479583593e-6*Gfac, vz=-3.13202145590767e-9*Gfac ) # Sun + sim.add( m=1./1047.355, x=+3.40546614227466e+0, y=+3.62978190075864e+0, z=+3.42386261766577e-2, vx=-5.59797969310664e-3*Gfac, vy=+5.51815399480116e-3*Gfac, vz=-2.66711392865591e-6*Gfac ) # Jupiter + sim.add( m=1./3501.6, x=+6.60801554403466e+0, y=+6.38084674585064e+0, z=-1.36145963724542e-1, vx=-4.17354020307064e-3*Gfac, vy=+3.99723751748116e-3*Gfac, vz=+1.67206320571441e-5*Gfac ) # Saturn + sim.add( m=1./22869., x=+1.11636331405597e+1, y=+1.60373479057256e+1, z=+3.61783279369958e-1, vx=-3.25884806151064e-3*Gfac, vy=+2.06438412905916e-3*Gfac, vz=-2.17699042180559e-5*Gfac ) # Uranus + sim.add( m=1./19314., x=-3.01777243405203e+1, y=+1.91155314998064e+0, z=-1.53887595621042e-1, vx=-2.17471785045538e-4*Gfac, vy=-3.11361111025884e-3*Gfac, vz=+3.58344705491441e-5*Gfac ) # Neptune + sim.add( m=7.4074074e-09, x=-2.13858977531573e+1, y=+3.20719104739886e+1, z=+2.49245689556096e+0, vx=-1.76936577252484e-3*Gfac, vy=-2.06720938381724e-3*Gfac, vz=+6.58091931493844e-4*Gfac ) # Pluto + +def add_solar_system(sim): + """ + Add all planets of the Solar System as a test problem. + Data taken from NASA Horizons. + """ + sim.add(m=1.00000000000000000000, x=-0.00583761661678666201, y=0.00660036108188146939, z=0.00008090699630593683, vx=-0.00043778026915688127, vy=-0.00027688340567327781, vz=0.00001289781032896905) + sim.add(m=0.00000016601141530543, x=-0.29485531126658365286, y=-0.34334233225957377922, z=-0.00200264586836620137, vx=0.92896432258229966195, vy=-0.96594579119516865706, vz=-0.16415293821738913271) + sim.add(m=0.00000244783828778477, x=0.47227261050357943750, y=0.54819205023577255442, z=-0.02007680147008551394, vx=-0.88553481794279420569, vy=0.77279164698675262279, vz=0.06169738346121213246) + sim.add(m=0.00000304043264802264, x=0.97541936428768183376, y=-0.22011750964499116057, z=0.00008866761098092638, vx=0.20842772535763168240, vy=0.97042888227470602835, vz=-0.00003307038073776142) + sim.add(m=0.00000032271560375550, x=1.38489786417060911639, y=-0.00373655464561763921, z=-0.03425238653564356694, vx=0.03680838810437889880, vy=0.88267192839777131042, vz=0.01760188515939473466) + sim.add(m=0.00095479191521124043, x=2.31793441229397512160, y=-4.57278216881576948794, z=-0.03288979300198136002, vx=0.38587103958050272823, vy=0.21916457142972819994, vz=-0.00954142828183331820) + sim.add(m=0.00028588567272224167, x=4.97984063350991323915, y=-8.66630842281542435046, z=-0.04756566088166765821, vx=0.26314427785251254255, vy=0.16073015466677914587, vz=-0.01327326395768535505) + sim.add(m=0.00004366243735831270, x=15.62435177921100226683, y=12.13892823277256738379, z=-0.15733112984491792741, vx=-0.14195568334904265506, vy=0.16989920313154410758, vz=0.00247006450290807337) + sim.add(m=0.00005151383772628674, x=29.39189844361883885426, y=-5.57834279640134234057, z=-0.56249012217889071685, vx=0.03281663353639149155, vy=0.18036894277947276843, vz=-0.00447061619870956460) diff --git a/rebound/source/rebound/frequency_analysis.py b/rebound/source/rebound/frequency_analysis.py new file mode 100644 index 0000000000000000000000000000000000000000..e25c1851c3ca5b83188e4144a543b05afcbab9d2 --- /dev/null +++ b/rebound/source/rebound/frequency_analysis.py @@ -0,0 +1,76 @@ +import ctypes + +FREQUENCY_ANALYSIS_TYPES = {"mft": 0, "fmft": 1, "fmft2": 2} +FREQUENCY_ANALYSIS_ERRORS = [ + (-1, "Frequency analysis error: minfreq must be smaller than maxfreq."), + (-2, "Frequency analysis error: nfreq must be larger than 0."), + (-3, "Frequency analysis error: ndata must be power of 2."), + (-4, "Frequency analysis error: input array is NULL."), + (-5, "Frequency analysis error: pointer to output array is NULL."), +] + +def frequency_analysis(inp, type=0, nfreq=10, minfreq=-1e-3, maxfreq=1e-3): + """Performs a frequency analysis on the timeseries data inp. Returns + dominant modes (frequency, amplitude, phase). + + Arguments + --------- + inp: numpy.array + Input data in the order x[0], y[0], x[1], y[1], ... where + x and y are the real and imaginary components of the signal. + type: string + Determines the type of the frequency analysis: + "mft" = Modified Fourier Transform. See Laskar (1988). + https://ui.adsabs.harvard.edu/abs/1988A%26A...198..341L/abstract + "fmft" = Frequency Modified Transform. See Sidlichovsky and Nesvorny (1996). + https://ui.adsabs.harvard.edu/abs/1996CeMDA..65..137S/abstract + "fmft2" = Frequency Modified Transform with additional corrections. Most + accurate but also slowest. See Sidlichovsky and Nesvorny (1996). + nfreq: Int + The number of frequencies to find. + minfreq: Float + The minimum frequency to consider. Units are [radians/datasep] where + datasep is the timeinterval between sampling points. + maxfreq: Float + The maximim frequency to consider. Units are [radians/datasep] where + datasep is the timeinterval between sampling points. + + Returns + ------- + A list of lists, containing the frequencies, amplitudes, and phases of the + nfreq most dominant modes. + The output units for the frequencies are [radians/datasep] where datasep is + the timeinterval between sampling points. The output units for the phases + are radians. + """ + import numpy as np + if not isinstance(inp, np.ndarray): + raise ValueError("Input array must be a numpy array") + if inp.dtype != np.float64: + raise ValueError("Input array must be have datatype np.float64") + + if isinstance(type, int): + type = ctypes.c_int(type) + elif isinstance(type, basestring): + type = type.lower() + if type in FREQUENCY_ANALYSIS_TYPES: + type = FREQUENCY_ANALYSIS_TYPES[type] + else: + raise ValueError("Frequency Analysis Type not found.") + else: + raise ValueError("Frequency Analysis Type not found.") + + ndata = len(inp)//2 + inp_cont = np.ascontiguousarray(inp) + inp_ptr = inp_cont.ctypes.data_as(ctypes.POINTER(ctypes.c_double)) + + out = np.zeros(nfreq*3,dtype=np.double) + out_ptr = out.ctypes.data_as(ctypes.POINTER(ctypes.c_double)) + clibrebound.reb_frequency_analysis.restype = ctypes.c_int + ret = clibrebound.reb_frequency_analysis(out_ptr, ctypes.c_int(nfreq), ctypes.c_double(minfreq), ctypes.c_double(maxfreq), type, inp_ptr, ctypes.c_uint(ndata)) + for value, message in FREQUENCY_ANALYSIS_ERRORS: + if ret & value: + raise RuntimeError(message) + return np.split(out,3) + +from . import clibrebound diff --git a/rebound/source/rebound/hash.py b/rebound/source/rebound/hash.py new file mode 100644 index 0000000000000000000000000000000000000000..14fdca6e867b172a6138a9e0953dedc1c964a629 --- /dev/null +++ b/rebound/source/rebound/hash.py @@ -0,0 +1,27 @@ +import sys +from ctypes import Structure, c_uint32, c_int, c_char_p, c_uint, c_uint64 +from . import clibrebound +class HashPointerPair(Structure): + _fields_ = [("hash", c_uint32), + ("index", c_int)] + +def hash(key): + hash_types = c_uint32, c_uint, c_uint64 + PY3 = sys.version_info[0] == 3 + if PY3: + string_types = str, + int_types = int, + else: + string_types = basestring, + int_types = int, long, + + if isinstance(key, int_types): + return c_uint32(key) + elif isinstance(key, hash_types): + return key + elif isinstance(key, string_types): + clibrebound.reb_hash.restype = c_uint32 + return c_uint32(clibrebound.reb_hash(c_char_p(key.encode('ascii')))) + else: + raise AttributeError("Need to pash hash an integer or string.") + diff --git a/rebound/source/rebound/horizons.py b/rebound/source/rebound/horizons.py new file mode 100644 index 0000000000000000000000000000000000000000..993a889f0bf5d67eb12b8c2d52aa8f757e6b9408 --- /dev/null +++ b/rebound/source/rebound/horizons.py @@ -0,0 +1,291 @@ +# -*- coding: utf-8 -*- +""" +Pull data from HORIZONS and format it for use as a REBOUND particle. + +""" +import datetime +import re +import warnings +import sys +from .units import convert_mass + +HORIZONSBASEURL = "https://ssd.jpl.nasa.gov/api/horizons.api?" + +if "pyodide" in sys.modules: + from urllib.parse import urlencode + from pyodide.http import open_url as urlopen + # Use CORS proxy + HORIZONSBASEURL = "https://rebound.hanno-rein.de/api/horizons.api?" +else: + try: + from urllib.parse import urlencode + from urllib.request import urlopen + except ImportError: + from urllib import urlencode + from urllib2 import urlopen + +# Default date for orbital elements is the current time when first particle added, if no date is passed. +# Cached at the beginning to ensure that all particles are synchronized. +# If a date is passed, the same date is used for all subsequent particle adds (that don't themselves pass a date). + +INITDATE = None + +# If this variable is set to "unverified" then the SSL context for API requests does not check certificates. +SSL_CONTEXT = None + +def quote(text): + return "'{}'".format(text) + + +def api_request(particle, datestart, dateend, plane): + get_params = { + "format": "text", + "COMMAND": quote(particle), + "START_TIME": quote(str(datestart)), + "STOP_TIME": quote(str(dateend)), + "MAKE_EPHEM": quote("YES"), + "EPHEM_TYPE": quote("VECTORS"), + "CENTER": quote("@0"), + "REF_PLANE": quote(plane), + "STEP_SIZE": quote("2"), # seconds + "REF_SYSTEM": quote("J2000"), + "VEC_CORR": quote("NONE"), + "OUT_UNITS": quote("KM-S"), + "CSV_FORMAT": quote("NO"), + "VEC_DELTA_T": quote("NO"), + "VEC_TABLE": quote("3"), + "VEC_LABELS": quote("NO") + + } + url = HORIZONSBASEURL + urlencode(get_params) + # don't use a context manager for python2 compatibility + + if SSL_CONTEXT == "unverified": + import ssl + ssl_context = ssl._create_unverified_context() + else: + ssl_context = None + try: + f = urlopen(url,context=ssl_context) + except Exception as e: + raise RuntimeError("An error occured while accessing NASA HORIZONS. If this is a SSL certificate issue, you can try disabling the certificate verification by setting rebound.horizons.SSL_CONTEXT = 'unverified'.") from e + + if "pyodide" in sys.modules: + body = f.read() + else: + body = f.read().decode() + f.close() + return body + + +def query_horizons_for_particle(mass_unit=None, particle=None, m=None, x=None, y=None, z=None, vx=None, vy=None, vz=None, primary=None, a=None, + anom=None, e=None, omega=None, inc=None, Omega=None, MEAN=None, date=None, plane="ecliptic", hash=0): + if plane not in ["ecliptic", "frame"]: + raise AttributeError( + "Reference plane needs to be either 'ecliptic' or 'frame'. See Horizons for a definition of these coordinate systems.") + if date is not None: + if isinstance(date, datetime.datetime): + pass + elif isinstance(date, str): + if date[0:2] != "JD": + formats = ["%Y-%m-%d", "%Y-%m-%d %H:%M", "%Y-%m-%d %H:%M:%S"] # allowed formats + found_match = False + for f in formats: + try: + date = datetime.datetime.strptime(date, f) + found_match = True + except: + continue + if found_match == False: + raise AttributeError("An error occured while calculating the date. Use one "+" or ".join(formats) + " or JDxxxxxxx.xxxxxx") + # set the cached initialization time if it's not set + global INITDATE + if INITDATE is None: + INITDATE = date if date is not None else datetime.datetime.utcnow() + + if date is None: # if no date passed, used cached value + date = INITDATE + + if isinstance(date, datetime.datetime): + # date is a datetime object + datestart = date.strftime("%Y-%m-%d %H:%M:%S") + dateend = (date + datetime.timedelta(minutes=1)).strftime("%Y-%m-%d %H:%M:%S") + else: + # Assume date is in JD with format JDxxxxxx.xxxx + datestart = date + date_f = float(re.sub("[^0-9\\.]","",date)) + dateend = "JD%.8f"%(date_f+0.1) + + print("Searching NASA Horizons for '{}'... ".format(particle)) + idn = None + body = api_request(particle, datestart, dateend, plane) + made_choice = False + if "Multiple major-bodies match string" in body: + try: + idn = body.split("ID#")[1].split("\n")[2].split()[0] + except KeyError: + try: + idn = body.split("Record #")[1].split("\n")[2].split()[0] + except: + raise Exception("Error while trying to find object.") + + made_choice = True + body = api_request(idn, datestart, dateend, plane) + elif "Matching small-bodies" in body: + for line in body.split("\n"): + try: + first_word = line.split()[0] + except IndexError: + continue + if first_word.isdecimal(): + idn = first_word + break + if not idn: + raise Exception("Error while trying to find object.") + made_choice = True + body = api_request(idn, datestart, dateend, plane) + + lines = body.split("$$SOE")[-1].split("\n") + p = Particle() + + p.x, p.y, p.z = [float(i) for i in lines[2].split()] + p.vx, p.vy, p.vz = [float(i) for i in lines[3].split()] + + match = re.search(r"Target body name: (.+) \(([0-9]+)\)", body) + if match: + bodyname = match.group(1).strip() + idn = match.group(2) + print("Found: {} ({})".format(bodyname, idn), "(chosen from query '{}')".format(particle) if made_choice else "") + else: + # fall back to more general regex + match = re.search(r"Target body name: (.+) {", body) + if match: + bodyname = match.group(1).strip() + print("Found: {}".format(bodyname), "(chosen from query '{}')".format(particle) if made_choice else "") + else: + print("Found body (Name could not be detected)") + if m is not None: + if mass_unit is not None: + p.m = convert_mass(m, mass_unit, "kg") + else: + ## Assume kg + p.m = m + elif idn is not None: + try: + p.m = float( + re.search(r"BODY{:d}\_GM .* \( *([\.DE\+\-0-9]+ *)\)".format(int(idn)), HORIZONS_MASS_DATA) + .group(1).replace("D+", "E+") + ) + p.m /= Gkmkgs # divide by G (horizons masses give GM) + except AttributeError: + warnings.warn("Warning: Mass cannot be retrieved from NASA HORIZONS. Set to 0.", RuntimeWarning) + p.m = 0 + else: + warnings.warn("Warning: Mass cannot be retrieved from NASA HORIZONS. Set to 0.", RuntimeWarning) + p.m = 0 + p.hash = hash + return p + + +# There is currently no way to get mass data from HORIZONS. +# The following data was provided by Jon Giorgini (10 May 2015) +# Last updated: Sep 15 2021. +# Source: ftp://ssd.jpl.nasa.gov/pub/xfr/gm_Horizons.pck +# Units: km^3/s^2 + +Gkmkgs = 6.67408e-20 # units of km^3/kg/s^2 + +HORIZONS_MASS_DATA = """ + BODY1_GM = ( 2.2031868551400003D+04 ) + BODY2_GM = ( 3.2485859200000000D+05 ) + BODY3_GM = ( 4.0350323562548019D+05 ) + BODY4_GM = ( 4.2828375815756102D+04 ) + BODY5_GM = ( 1.2671276409999998D+08 ) + BODY6_GM = ( 3.7940584841799997D+07 ) + BODY7_GM = ( 5.7945563999999985D+06 ) + BODY8_GM = ( 6.8365271005803989D+06 ) + BODY9_GM = ( 9.7550000000000000D+02 ) + BODY10_GM = ( 1.3271244004127942D+11 ) + + BODY199_GM = ( 2.2031868551400003D+04 ) + BODY299_GM = ( 3.2485859200000000D+05 ) + BODY399_GM = ( 3.9860043550702266D+05 ) + BODY499_GM = ( 4.282837362069909E+04 ) + BODY599_GM = ( 1.266865319003704E+08 ) + BODY699_GM = ( 3.793120615901047E+07 ) + BODY799_GM = ( 5.793951322279009E+06 ) + BODY899_GM = ( 6.835099968446816E+06 ) + BODY999_GM = ( 8.699633756209835E+02 ) + + BODY301_GM = ( 4.9028001184575496D+03 ) + + BODY401_GM = ( 7.087546066894452E-04 ) + BODY402_GM = ( 9.615569648120313E-05 ) + + BODY501_GM = ( 5.959915466180539E+03 ) + BODY502_GM = ( 3.202712099607295E+03 ) + BODY503_GM = ( 9.887832752719638E+03 ) + BODY504_GM = ( 7.179283402579837E+03 ) + BODY505_GM = ( 1.645634534798259E-01 ) + BODY506_GM = ( 1.515524299611265E-01 ) + BODY514_GM = ( 3.014800000000000E-02 ) + BODY515_GM = ( 1.390000000000000E-04 ) + BODY516_GM = ( 2.501000000000000E-03 ) + + BODY601_GM = ( 2.503617062809250E+00 ) + BODY602_GM = ( 7.210497553340731E+00 ) + BODY603_GM = ( 4.121405263872402E+01 ) + BODY604_GM = ( 7.311617801921636E+01 ) + BODY605_GM = ( 1.539409077211430E+02 ) + BODY606_GM = ( 8.978137369591670E+03 ) + BODY607_GM = ( 3.704182596063880E-01 ) + BODY608_GM = ( 1.205081845217891E+02 ) + BODY609_GM = ( 5.581081743011904E-01 ) + BODY610_GM = ( 1.265765099012197E-01 ) + BODY611_GM = ( 3.512333288208074E-02 ) + BODY612_GM = ( 4.551624250415933E-04 ) + BODY615_GM = ( 3.718871247516475E-04 ) + BODY616_GM = ( 1.075208001007610E-02 ) + BODY617_GM = ( 9.290325122028795E-03 ) + + BODY701_GM = ( 8.346344431770477E+01 ) + BODY702_GM = ( 8.509338094489388E+01 ) + BODY703_GM = ( 2.269437003741248E+02 ) + BODY704_GM = ( 2.053234302535623E+02 ) + BODY705_GM = ( 4.319516899232100E+00 ) + + BODY801_GM = ( 1.428495462910464E+03 ) + BODY803_GM = ( 8.530281246540886E-03 ) + BODY804_GM = ( 2.358873197992170E-02 ) + BODY805_GM = ( 1.167318403814998E-01 ) + BODY806_GM = ( 1.898985039060690E-01 ) + BODY807_GM = ( 2.548437405693583E-01 ) + BODY808_GM = ( 2.583422379120727E+00 ) + + BODY901_GM = ( 1.061744232879427E+02 ) + BODY902_GM = ( 1.800000000000000E-03 ) + BODY903_GM = ( 2.249146225742025E-03 ) + BODY904_GM = ( 9.000000000000001E-05 ) + BODY905_GM = ( 2.000000000000000E-06 ) + + BODY2000001_GM = ( 6.2628888644409933D+01 ) + BODY2000002_GM = ( 1.3665878145967422D+01 ) + BODY2000003_GM = ( 1.9205707002025889D+00 ) + BODY2000004_GM = ( 1.7288232879171513D+01 ) + BODY2000007_GM = ( 1.1398723232184107D+00 ) + BODY2000010_GM = ( 5.6251476453852289D+00 ) + BODY2000015_GM = ( 2.0230209871098284D+00 ) + BODY2000016_GM = ( 1.5896582441709424D+00 ) + BODY2000031_GM = ( 1.0793714577033560D+00 ) + BODY2000052_GM = ( 2.6830359242821795D+00 ) + BODY2000065_GM = ( 9.3810575639151328D-01 ) + BODY2000087_GM = ( 2.1682320736996910D+00 ) + BODY2000088_GM = ( 1.1898077088121908D+00 ) + BODY2000107_GM = ( 1.4437384031866001D+00 ) + BODY2000433_GM = ( 4.463E-4 ) + BODY2000511_GM = ( 3.8944831481705644D+00 ) + BODY2000704_GM = ( 2.8304096393299849D+00 ) +""" + +# Import at the end to avoid circular dependence +from .particle import * diff --git a/rebound/source/rebound/integrators/__init__.py b/rebound/source/rebound/integrators/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..a9326977685e9557be6144ef31163d6c20007b7a --- /dev/null +++ b/rebound/source/rebound/integrators/__init__.py @@ -0,0 +1 @@ +# Integrators diff --git a/rebound/source/rebound/integrators/bs.py b/rebound/source/rebound/integrators/bs.py new file mode 100644 index 0000000000000000000000000000000000000000..d8d6a003c06944bdcc7350f4095b51ba8527f16d --- /dev/null +++ b/rebound/source/rebound/integrators/bs.py @@ -0,0 +1,60 @@ +from ctypes import c_uint, c_double, c_void_p, CFUNCTYPE, POINTER, c_int, Structure +from .. import clibrebound + +class ODE(Structure): + @property + def derivatives(self): + raise AttributeError("You can only set C function pointers from python.") + @derivatives.setter + def derivatives(self, func): + self._dfp = ODEDER(func) + func.argtypes = self._dfp.argtypes # I do not understand why this is needed + self._derivatives = self._dfp + def update_particles(self): + clibrebound.reb_integrator_bs_update_particles(self.r, None) + +from ..simulation import Simulation +ODE._fields_ = [ + ("length", c_uint), + ("y", POINTER(c_double)), + ("needs_nbody", c_uint), + ("ref", c_void_p), + ("_derivatives", CFUNCTYPE(None,POINTER(ODE), POINTER(c_double), POINTER(c_double), c_double)), + ("_getscale", CFUNCTYPE(None,POINTER(ODE), POINTER(c_double), POINTER(c_double))), + ("_pre_timestep", CFUNCTYPE(None,POINTER(ODE), POINTER(c_double))), + ("_post_timestep", CFUNCTYPE(None,POINTER(ODE), POINTER(c_double))), + ("N_allocated", c_uint), + ("_scale", POINTER(c_double)), + ("_C", POINTER(c_double)), + ("_D", POINTER(POINTER(c_double))), + ("_y1", POINTER(c_double)), + ("_y0Dot", POINTER(c_double)), + ("_yDot", POINTER(c_double)), + ("_yTmp", POINTER(c_double)), + ("r", POINTER(Simulation)), + ] + +ODEDER = CFUNCTYPE(None,POINTER(ODE), POINTER(c_double), POINTER(c_double), c_double) + +class IntegratorBS(Structure): + """ + This class is an abstraction of the C-struct reb_integrator_bs. + It controls the behaviour of the Gragg-Bulirsch-Stoer integrator. + """ + _fields_ = [ + ("eps_abs", c_double), + ("eps_rel", c_double), + ("min_dt", c_double), + ("max_dt", c_double), + ("_nbody_ode", POINTER(ODE)), + ("_sequence", POINTER(c_int)), + ("_cost_per_step", POINTER(c_int)), + ("_cost_per_time_unit", POINTER(c_double)), + ("_optimal_step", POINTER(c_double)), + ("_coeff", POINTER(c_double)), + ("dt_proposed", c_double), + ("_first_or_last_step", c_int), + ("_previous_rejected", c_int), + ("_target_iter", c_int), + ("_user_ode_needs_nbody", c_int), + ] diff --git a/rebound/source/rebound/integrators/eos.py b/rebound/source/rebound/integrators/eos.py new file mode 100644 index 0000000000000000000000000000000000000000..94fba6f5afd447e8ba052fced16997cb1fa753f7 --- /dev/null +++ b/rebound/source/rebound/integrators/eos.py @@ -0,0 +1,93 @@ +import ctypes + + +EOS_TYPES = { + "lf": 0x00, + "lf4": 0x01, + "lf6": 0x02, + "lf8": 0x03, + "lf4_2": 0x04, + "lf8_6_4": 0x05, + "plf7_6_4": 0x06, + "pmlf4": 0x07, + "pmlf6": 0x08, + } + + +class IntegratorEOS(ctypes.Structure): + """ + This class is an abstraction of the C-struct reb_integrator_eos. + It controls the behaviour of the Embedded Operator Splitting methods. See Rein (2019) + for more details. + + :ivar int,string phi0 + Sets the Phi_0 operator splitting method + :ivar int,string phi1 + Sets the Phi_1 operator splitting method + :ivar int n + Sets the number of substeps taken by Phi_1 + :ivar int safe_mode + By default, safe_mode is on (1). Set to 0 (off) to combine + drift step at the beginning and end of the Phi0 integrator steps. + + Example usage: + + >>> sim = rebound.Simulation() + >>> sim.integrator = "eos" + >>> sim.ri_eos.phi0 = "LF8_6_4" + >>> sim.ri_eos.phi1 = "LF8" + >>> sim.ri_eos.n = 1 + >>> sim.ri_eos.safe_mode = 0 + + """ + def __repr__(self): + return '<{0}.{1} object at {2}, safe_mode={3}, is_synchronized={4}, n={5}, phi0={6}, phi2={7}>'.format(self.__module__, type(self).__name__, hex(id(self)), self.safe_mode, self.is_synchronized, self.n, self.phi0, self.phi1) + + @property + def phi0(self): + """ + Get or set the type of operator splitting type for phi0. + """ + i = self._phi0 + for name, _i in EOS_TYPES.items(): + if i==_i: + return name + return i + @phi0.setter + def phi0(self, value): + if isinstance(value, int): + self._phi0 = value + elif isinstance(value, basestring): + value = value.lower().replace(" ", "").replace("(", "").replace(")", "") + if value in EOS_TYPES: + self._phi0 = EOS_TYPES[value] + else: + raise ValueError("Warning. EOS type %s not found."%value) + @property + def phi1(self): + """ + Get or set the type of operator splitting type for phi1. + """ + i = self._phi1 + for name, _i in EOS_TYPES.items(): + if i==_i: + return name + return i + @phi1.setter + def phi1(self, value): + if isinstance(value, int): + self._phi1 = value + elif isinstance(value, basestring): + value = value.lower().replace(" ", "").replace("(", "").replace(")", "") + if value in EOS_TYPES: + self._phi1 = EOS_TYPES[value] + else: + raise ValueError("Warning. EOS type %s not found."%value) + _fields_ = [ + ("_phi0",ctypes.c_uint), + ("_phi1",ctypes.c_uint), + ("n",ctypes.c_uint), + ("safe_mode",ctypes.c_uint), + ("is_synchronized",ctypes.c_uint), + ] + diff --git a/rebound/source/rebound/integrators/ias15.py b/rebound/source/rebound/integrators/ias15.py new file mode 100644 index 0000000000000000000000000000000000000000..d335239b6d97923dfeda33fa2c5a15a451739b42 --- /dev/null +++ b/rebound/source/rebound/integrators/ias15.py @@ -0,0 +1,92 @@ +import ctypes + + +IAS15_ADAPTIVE_MODES = {"individual": 0, "global": 1, "prs23": 2, "aarseth85": 3} +class reb_dp7(ctypes.Structure): + _fields_ = [("p0", ctypes.POINTER(ctypes.c_double)), + ("p1", ctypes.POINTER(ctypes.c_double)), + ("p2", ctypes.POINTER(ctypes.c_double)), + ("p3", ctypes.POINTER(ctypes.c_double)), + ("p4", ctypes.POINTER(ctypes.c_double)), + ("p5", ctypes.POINTER(ctypes.c_double)), + ("p6", ctypes.POINTER(ctypes.c_double))] + +class IntegratorIAS15(ctypes.Structure): + """ + This class is an abstraction of the C-struct reb_integrator_ias15. + It controls the behaviour of the SEI integrator. See Rein & Spiegel (2015) + for more information. + + Example usage: + + >>> sim = rebound.Simulation() + >>> sim.integrator = "ias15" + >>> sim.ri_ias15.epsilon = 0. + + :ivar float epsilon: + Controls the precision of the integrator. Set to 0 for fixed timesteps. + + :ivar float min_dt: + IAS15 is an adaptive method. This sets the minimum timestep. + + :ivar float adaptive_mode: + Determines how the adaptive timestep is chosen. + This replaces the previous epsilon_global variable. + The default is 2 which corresponds to the timestep criterion described in Pham, Rein, and Spiegel (2024). This should be optimal in almost all cases. + If set to 0, the fractional error is estimated via `max(acceleration_error/acceleration)` and the timestep criterion of Rein and Spiegel (2015) is used. + If set to 1, IAS15 estimates the fractional error via `max(acceleration_error)/max(acceleration)` where the maximum is taken over all particles. As before, the timestep criterion of Rein and Spiegel (2015) is used. This was the default until January 2024. + If set to 3, then the criterion of Aarseth (1985) is used. + + """ + def __repr__(self): + return '<{0}.{1} object at {2}, epsilon={3}, min_dt={4}>'.format(self.__module__, type(self).__name__, hex(id(self)), self.epsilon, self.min_dt) + + @property + def adaptive_mode(self): + """ + Get or set the adaptive mode that determines how the timestep is chosen in IAS15. + + Available adaptive_modes are: + + - ``'individual'`` (timescale estimate based on individual particles) + - ``'global'`` (used to be the default until 01/2024, global estimate) + - ``'PRS23'`` (The default. Described in Pham, Rein, Spiegel 2023) + - ``'Aarseth85'`` (Aarseth 1985 algorithm) + """ + i = self._adaptive_mode + for name, _i in IAS15_ADAPTIVE_MODES.items(): + if i==_i: + return name + return i + @adaptive_mode.setter + def adaptive_mode(self, value): + if isinstance(value, int): + self._adaptive_mode = ctypes.c_uint(value) + elif isinstance(value, basestring): + value = value.lower().replace(" ", "") + if value in IAS15_ADAPTIVE_MODES: + self._adaptive_mode = IAS15_ADAPTIVE_MODES[value] + else: + raise ValueError("Warning. Kernel not found.") + + _fields_ = [("epsilon", ctypes.c_double), + ("min_dt", ctypes.c_double), + ("_adaptive_mode", ctypes.c_uint), + ("_iterations_max_exceeded", ctypes.c_uint64), + ("_N_allocated", ctypes.c_uint), + ("_at", ctypes.POINTER(ctypes.c_double)), + ("_x0", ctypes.POINTER(ctypes.c_double)), + ("_v0", ctypes.POINTER(ctypes.c_double)), + ("_a0", ctypes.POINTER(ctypes.c_double)), + ("_csx", ctypes.POINTER(ctypes.c_double)), + ("_csv", ctypes.POINTER(ctypes.c_double)), + ("_csa0", ctypes.POINTER(ctypes.c_double)), + ("_g", reb_dp7), + ("_b", reb_dp7), + ("_csb", reb_dp7), + ("_e", reb_dp7), + ("_br", reb_dp7), + ("_er", reb_dp7), + ("_map", ctypes.POINTER(ctypes.c_int)), + ("_map_allocated_n", ctypes.c_uint), + ] diff --git a/rebound/source/rebound/integrators/janus.py b/rebound/source/rebound/integrators/janus.py new file mode 100644 index 0000000000000000000000000000000000000000..fb225edc2759a4ad451d5022e3452d85b37cb9cb --- /dev/null +++ b/rebound/source/rebound/integrators/janus.py @@ -0,0 +1,22 @@ +import ctypes + +class ParticleInt(ctypes.Structure): + """ Used for Janus integrator only """ + _fields_ = [ + ("x", ctypes.c_int64), + ("y", ctypes.c_int64), + ("z", ctypes.c_int64), + ("vx", ctypes.c_int64), + ("vy", ctypes.c_int64), + ("vz", ctypes.c_int64), + ] + +class IntegratorJanus(ctypes.Structure): + _fields_ = [ + ("scale_pos",ctypes.c_double), + ("scale_vel",ctypes.c_double), + ("order", ctypes.c_uint), + ("recalculate_integer_coordinates_this_timestep", ctypes.c_uint), + ("p_int", ctypes.POINTER(ParticleInt)), + ("_N_allocated",ctypes.c_uint), + ] diff --git a/rebound/source/rebound/integrators/leapfrog.py b/rebound/source/rebound/integrators/leapfrog.py new file mode 100644 index 0000000000000000000000000000000000000000..342494797e8a89cfd344d9cbf80f9f3c51d8ee1b --- /dev/null +++ b/rebound/source/rebound/integrators/leapfrog.py @@ -0,0 +1,16 @@ +import ctypes + +class IntegratorLeapfrog(ctypes.Structure): + """ + This class is an abstraction of the C-struct reb_integrator_leapfrog. + It controls the order of the Leapfrog integrator. + + >>> sim = rebound.Simulation() + >>> sim.ri_leapfrog.order = 4 # default is 2 + + :ivar int order + Sets the order of the integrator. Supported values are 2, 4, 6, and 8. + """ + _fields_ = [("order", ctypes.c_uint), + ] + diff --git a/rebound/source/rebound/integrators/mercurius.py b/rebound/source/rebound/integrators/mercurius.py new file mode 100644 index 0000000000000000000000000000000000000000..848efc6026be923a33eabcb3b5ca6aef7d00f594 --- /dev/null +++ b/rebound/source/rebound/integrators/mercurius.py @@ -0,0 +1,64 @@ +import ctypes + +from .. import clibrebound +from ..simulation import Simulation +from ..particle import Particle +from ..vectors import Vec3dBasic + +class IntegratorMercurius(ctypes.Structure): + """ + This class is an abstraction of the C-struct reb_integrator_mercurius. + It controls the behaviour of the MERCURIUS integrator. See Rein et al. (2019) + for more details. + + :ivar float r_crit_hill: + Switching radius in units of the hill radius. + + Example usage: + + >>> sim = rebound.Simulation() + >>> sim.integrator = "mercurius" + >>> sim.ri_mercurius.r_crit_hill = 3. + + """ + def __repr__(self): + return '<{0}.{1} object at {2}, safe_mode={3}, is_synchronized={4}, r_crit_hill={5}>'.format(self.__module__, type(self).__name__, hex(id(self)), self.safe_mode, self.is_synchronized, self.r_crit_hill) + + _fields_ = [("_L", ctypes.CFUNCTYPE(ctypes.c_double, ctypes.POINTER(Simulation), ctypes.c_double, ctypes.c_double)), + ("r_crit_hill", ctypes.c_double), + ("recalculate_coordinates_this_timestep", ctypes.c_uint), + ("recalculate_r_crit_this_timestep", ctypes.c_uint), + ("safe_mode", ctypes.c_uint), + ("is_synchronized", ctypes.c_uint), + ("mode", ctypes.c_uint), + ("_encounter_N", ctypes.c_uint), + ("_encounter_N_active", ctypes.c_uint), + ("_tponly_encounter", ctypes.c_uint), + ("_N_allocated", ctypes.c_uint), + ("_N_allocated_additional_forces", ctypes.c_uint), + ("_N_allocated_dcrit", ctypes.c_uint), + ("_dcrit", ctypes.POINTER(ctypes.c_double)), + ("_particles_backup", ctypes.POINTER(Particle)), + ("_particles_backup_additional_forces", ctypes.POINTER(Particle)), + ("_encounter_map", ctypes.POINTER(ctypes.c_int)), + ("_com_pos", Vec3dBasic), + ("_com_vel", Vec3dBasic), + ] + @property + def L(self): + raise AttributeError("You can only set C function pointers from python.") + @L.setter + def L(self, func): + if func == "mercury": + self._L = ctypes.cast(clibrebound.reb_integrator_mercurius_L_mercury,MERCURIUSLF) + elif func == "C4": + self._L = ctypes.cast(clibrebound.reb_integrator_mercurius_L_C4,MERCURIUSLF) + elif func == "C5": + self._L = ctypes.cast(clibrebound.reb_integrator_mercurius_L_C5,MERCURIUSLF) + elif func == "infinity": + self._L = ctypes.cast(clibrebound.reb_integrator_mercurius_L_infinity,MERCURIUSLF) + else: + self._Lfp = MERCURIUSLF(func) + self._L = self._Lfp + +MERCURIUSLF = ctypes.CFUNCTYPE(ctypes.c_double, ctypes.POINTER(Simulation), ctypes.c_double, ctypes.c_double) diff --git a/rebound/source/rebound/integrators/saba.py b/rebound/source/rebound/integrators/saba.py new file mode 100644 index 0000000000000000000000000000000000000000..6cf8539350c0ba063d403d36b609b1d8ac2f05db --- /dev/null +++ b/rebound/source/rebound/integrators/saba.py @@ -0,0 +1,68 @@ +import ctypes + +SABA_TYPES = { + "1": 0x0, "2": 0x1, "3": 0x2, "4": 0x3, + "cm1": 0x100, "cm2": 0x101, "cm3": 0x102, "cm4": 0x103, + "cl1": 0x200, "cl2": 0x201, "cl3": 0x202, "cl4": 0x203, + "10,4": 0x4, "8,6,4": 0x5, "10,6,4": 0x6, + "h8,4,4": 0x7, "h8,6,4": 0x8, "h10,6,4": 0x9, + } + +class IntegratorSABA(ctypes.Structure): + """ + This class is an abstraction of the C-struct reb_integrator_saba. + It controls the behaviour of the SABA integrator family. + See Rein, Tamayo, and Brown (2019) for more details. + + :ivar str type: + Set the type of SABA integrator manually. The type can also be set by setting + the integrator field in the REBOUND simulation. + + :ivar int safe_mode: + This variable acts the same as for WHFast. + If safe_mode is 1 (default) particles can be modified between + timesteps and particle velocities and positions are always synchronised. + If you set safe_mode to 0, the speed and accuracy of the integrator will improve. + However, make sure you are aware of the consequences. Read the iPython tutorial + on advanced WHFast usage to learn more. + + Example usage: + + >>> sim = rebound.Simulation() + >>> sim.integrator = "SABA(10,6,4)" + + >>> sim = rebound.Simulation() + >>> sim.integrator = "SABA" + >>> sim.ri_saba.type = "(10,6,4)" + + >>> sim = rebound.Simulation() + >>> sim.integrator = "SABACL4" + >>> sim.ri_saba.safe_mode = 0 + + """ + _fields_ = [("_type", ctypes.c_uint), + ("safe_mode", ctypes.c_uint), + ("is_synchronized", ctypes.c_uint), + ("keep_unsynchronized", ctypes.c_uint), + ] + @property + def type(self): + """ + Get or set the type of SABA integrator. + """ + i = self._type + for name, _i in SABA_TYPES.items(): + if i==_i: + return name + return i + @type.setter + def type(self, value): + if isinstance(value, int): + self._type = value + elif isinstance(value, basestring): + value = value.lower().replace(" ", "").replace("(", "").replace(")", "") + if value in SABA_TYPES: + self._type = SABA_TYPES[value] + else: + raise ValueError("Warning. SABA type not found.") + diff --git a/rebound/source/rebound/integrators/sei.py b/rebound/source/rebound/integrators/sei.py new file mode 100644 index 0000000000000000000000000000000000000000..09effe77b5d59b2222fa49e764ca7c8de07ecc87 --- /dev/null +++ b/rebound/source/rebound/integrators/sei.py @@ -0,0 +1,30 @@ +import ctypes + +class IntegratorSEI(ctypes.Structure): + """ + This class is an abstraction of the C-struct reb_integrator_sei. + It controls the behaviour of the symplectic SEI integrator for shearing + sheet calculations. It is described in Rein and Tremaine (2011). + + This struct should be accessed via the simulation class only. Here is an + example: + + >>> sim = rebound.Simulation() + >>> sim.ri_sei.OMEGA = 1.58 + + :ivar float OMEGA: + The epicyclic frequency OMEGA. For simulations making use of shearing + sheet boundary conditions, REBOUND needs to know the epicyclic frequency. + By default, OMEGA is 1. For more details read Rein and Tremaine 2011. + :ivar float OMEGAZ: + The z component of the epicyclic frequency OMEGA. By default, it is assuming + OMEGAZ is the same as OMEGA. + """ + _fields_ = [("OMEGA", ctypes.c_double), + ("OMEGAZ", ctypes.c_double), + ("_lastdt", ctypes.c_double), + ("_sindt", ctypes.c_double), + ("_tandt", ctypes.c_double), + ("_sindtz", ctypes.c_double), + ("_tandtz", ctypes.c_double)] + diff --git a/rebound/source/rebound/integrators/trace.py b/rebound/source/rebound/integrators/trace.py new file mode 100644 index 0000000000000000000000000000000000000000..55128835cb9ade8e6d50610ca71aedd7fc14ee44 --- /dev/null +++ b/rebound/source/rebound/integrators/trace.py @@ -0,0 +1,110 @@ +import ctypes +from ctypes import cast + +from .. import clibrebound +from ..simulation import Simulation +from ..particle import Particle +from ..vectors import Vec3dBasic + +TRACE_PERI_MODES = {"FULL_BS": 1, "PARTIAL_BS": 0, "FULL_IAS15": 2} + +class IntegratorTRACE(ctypes.Structure): + """ + This class is an abstraction of the C-struct reb_integrator_trace. + It controls the behaviour of the TRACE integrator. See Lu, Hernandez and Rein (2024) + for more details. + + :ivar float r_crit_hill: + Switching radius in units of the modified hill radius. + :ivar float peri_mode: + Pericenter switching mode. Determines how close encounters with the central star are integrated. + The default is 1, which uses the FULL BS prescription. This converts our system from Democratic Heliocentric Coordinates to back to Intertial Cartesian coordinates. The whole system is integrated with Bulirsch-Stoer. + If set to 0, we use the PARTIAL BS prescription. This moves all terms from the Jump step to the Kepler step as described in Hernandez and Dehnen (2023). The Kepler step is integrated with Bulirsch-Stoer. + If set to 2, we use the FULL IAS15 prescription. This acts similarly to the PURE BS prescription, but uses IAS15 instead of BS to integrate the whole system. + :ivar float peri_crit_eta: + Pericenter switching condition: ratio of timestep to condition from Pham, Rein and Spiegel 2024. + + Example usage: + + >>> sim = rebound.Simulation() + >>> sim.integrator = "trace" + >>> sim.ri_trace.r_crit_hill = 4 + >>> sim.ri_trace.peri_crit_eta = 1 + + """ + def __repr__(self): + return '<{0}.{1} object at {2}, r_crit_hill={3}, peri_mode=={4}, peri_crit_eta=={5}>'.format(self.__module__, type(self).__name__, hex(id(self)), self.r_crit_hill, self.peri_mode, self.peri_crit_eta) + + _fields_ = [("_S", ctypes.CFUNCTYPE(ctypes.c_int, ctypes.POINTER(Simulation), ctypes.c_uint, ctypes.c_uint)), + ("_S_peri", ctypes.CFUNCTYPE(ctypes.c_int, ctypes.POINTER(Simulation), ctypes.c_uint)), + ("peri_mode", ctypes.c_uint), + ("r_crit_hill", ctypes.c_double), + ("peri_crit_eta", ctypes.c_double), + ("_mode", ctypes.c_uint), + ("_encounter_N", ctypes.c_uint), + ("_encounter_N_active", ctypes.c_uint), + ("_N_allocated", ctypes.c_uint), + ("_N_allocated_additionalforces", ctypes.c_uint), + ("_tponly_encounter", ctypes.c_uint), + ("_particles_backup", ctypes.POINTER(Particle)), + ("_particles_backup_kepler", ctypes.POINTER(Particle)), + ("_particles_backup_additional_forces", ctypes.POINTER(Particle)), + ("_encounter_map", ctypes.POINTER(ctypes.c_int)), + ("_com_pos", Vec3dBasic), + ("_com_vel", Vec3dBasic), + ("_current_Ks", ctypes.POINTER(ctypes.c_int)), + ("_current_C", ctypes.c_uint), + ("_force_accept", ctypes.c_uint), + ] + @property + def S(self): + raise AttributeError("You can only set C function pointers from python.") + @S.setter + def S(self, func): + if func == "default": + self._S = cast(clibrebound.reb_integrator_trace_switch_default,TRACEKF) + else: + self._Sfp = TRACEKF(func) + self._S = self._Sfp + + @property + def S_peri(self): + raise AttributeError("You can only set C function pointers from python.") + @S_peri.setter + def S_peri(self, func): + if func == "default": + self._S_peri = cast(clibrebound.reb_integrator_trace_switch_peri_default,TRACECF) + elif func == "none": + self._S_peri = cast(clibrebound.reb_integrator_trace_switch_peri_none,TRACECF) + else: + self._S_perifp = TRACECF(func) + self._S_peri = self._S_perifp + + @property + def peri_mode(self): + """ + Get or set the pericenter switching mode. + + Available kernels are: + + - ``'FULL_BS'`` (Integrate entire system with BS) + - ``'PARTIAL_BS'`` (Integrate only the Kepler step with BS) + - ``'FULL_IAS15'`` (Integrate entire system with IAS15) + """ + i = self._peri_mode + for name, _i in TRACE_PERI_MODES.items(): + if i==_i: + return name + return i + @peri_mode.setter + def peri_mode(self, value): + if isinstance(value, int): + self._peri_mode = ctypes.c_uint(value) + elif isinstance(value, basestring): + if value in TRACE_PERI_MODES: + self._peri_mode = TRACE_PERI_MODES[value] + else: + raise ValueError("Warning. Pericenter switching mode not found.") + +TRACEKF = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.POINTER(Simulation), ctypes.c_uint, ctypes.c_uint) +TRACECF = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.POINTER(Simulation), ctypes.c_uint) diff --git a/rebound/source/rebound/integrators/whfast.py b/rebound/source/rebound/integrators/whfast.py new file mode 100644 index 0000000000000000000000000000000000000000..b6608b54c2365ebcddc93187b609a1ab22a03ea9 --- /dev/null +++ b/rebound/source/rebound/integrators/whfast.py @@ -0,0 +1,127 @@ +import ctypes +from ..particle import Particle + +WHFAST_KERNELS = {"default": 0, "modifiedkick": 1, "composition": 2, "lazy": 3} +WHFAST_COORDINATES = {"jacobi": 0, "democraticheliocentric": 1, "whds": 2, "barycentric": 3} + +class IntegratorWHFast(ctypes.Structure): + """ + This class is an abstraction of the C-struct reb_integrator_whfast. + It controls the behaviour of the symplectic WHFast integrator described + in Rein and Tamayo (2015) and in Rein, Tamayo, and Brown (2019). + + This struct should be accessed via the simulation class only. Here is an + example: + + >>> sim = rebound.Simulation() + >>> sim.integrator = "whfast" + >>> sim.ri_whfast.corrector = 11 + >>> sim.ri_whfast.kernel = "lazy" + + + :ivar int corrector: + The order of the symplectic corrector in the WHFast integrator. + By default, the symplectic correctors are turned off (=0). For high + accuracy simulation set this value to 11 or 17. For more details read + Rein and Tamayo (2015). + :ivar int corrector2: + Second correctors (C2 of Wisdom et al 1996). + By default, the second symplectic correctors are turned off (=0). + Set to 1 to turn them on. + :ivar int/string kernel: + Kernel option. Set to 0 for the default WH kernel (standard kick step). + Other options are "modifiedkick" (1), "composition" (2), "lazy" (3). + :ivar int recalculate_coordinates_this_timestep: + Sets a flag that tells WHFast that the particles have changed. + Setting this flag to 1 (default 0) triggers the WHFast integrator + to recalculate Jacobi/heliocenctric coordinates. This is needed + if the user changes the particle position, velocity or mass + in-between timesteps. After every timestep the flag is set back + to 0, so if you continuously update the particles manually, + you need to set this flag to 1 after every timestep. + :ivar string coordinates: + Sets the internal coordinate system that WHFast is using. By default + it uses ``'jacobi'`` (=0) coordinates. Other options are + ``'democraticheliocentric'`` (=1) and ``'whds'`` (=2). See Hernandez + and Dehnen (2017) for more information. + :ivar int safe_mode: + If safe_mode is 1 (default) particles can be modified between + timesteps and particle velocities and positions are always synchronised. + If you set safe_mode to 0, the speed and accuracy of WHFast improve. + However, make sure you are aware of the consequences. Read the iPython tutorial + on advanced WHFast usage to learn more. + """ + _fields_ = [("corrector", ctypes.c_uint), + ("corrector2", ctypes.c_uint), + ("_kernel", ctypes.c_uint), + ("_coordinates", ctypes.c_uint), + ("recalculate_coordinates_this_timestep", ctypes.c_uint), + ("safe_mode", ctypes.c_uint), + ("keep_unsynchronized", ctypes.c_uint), + ("_p_jh", ctypes.POINTER(Particle)), + ("_p_temp", ctypes.POINTER(Particle)), + ("is_synchronized", ctypes.c_uint), + ("_N_allocated", ctypes.c_uint), + ("_N_allocated_tmp", ctypes.c_uint), + ("_timestep_warning", ctypes.c_uint), + ("_recalculate_coordinates_but_not_synchronized_warning", ctypes.c_uint)] + + def __repr__(self): + return '<{0}.{1} object at {2}, safe_mode={3}, keep_unsynchonized={4}, is_synchronized={5}, corrector={6}, corrector2={7}, kernel={8}>'.format(self.__module__, type(self).__name__, hex(id(self)), self.safe_mode, self.keep_unsynchronized, self.is_synchronized, self.corrector, self.corrector2, self.kernel) + + @property + def coordinates(self): + """ + Get or set the internal coordinate system. + + Available coordinate systems are: + + - ``'jacobi'`` (default) + - ``'democraticheliocentric'`` + - ``'whds'`` + - ``'barycentric'`` + """ + i = self._coordinates + for name, _i in WHFAST_COORDINATES.items(): + if i==_i: + return name + return i + @coordinates.setter + def coordinates(self, value): + if isinstance(value, int): + self._coordinates = ctypes.c_uint(value) + elif isinstance(value, basestring): + value = value.lower() + if value in WHFAST_COORDINATES: + self._coordinates = WHFAST_COORDINATES[value] + else: + raise ValueError("Warning. Coordinate system not found.") + @property + def kernel(self): + """ + Get or set the WHFast Kernel. + + Available kernels are: + + - ``'default'`` (standard WH kernel, kick) + - ``'modifiedkick'`` (modified kick for newtonian gravity) + - ``'composition'`` (Wisdom's composition method) + - ``'lazy'`` (Lazy implementer's method) + """ + i = self._kernel + for name, _i in WHFAST_KERNELS.items(): + if i==_i: + return name + return i + @kernel.setter + def kernel(self, value): + if isinstance(value, int): + self._kernel = ctypes.c_uint(value) + elif isinstance(value, basestring): + value = value.lower().replace(" ", "") + if value in WHFAST_KERNELS: + self._kernel = WHFAST_KERNELS[value] + else: + raise ValueError("Warning. Kernel not found.") + + diff --git a/rebound/source/rebound/integrators/whfast512.py b/rebound/source/rebound/integrators/whfast512.py new file mode 100644 index 0000000000000000000000000000000000000000..c00de8ce6501a51ba99c90a8009ef3ea8d9a7b34 --- /dev/null +++ b/rebound/source/rebound/integrators/whfast512.py @@ -0,0 +1,13 @@ +import ctypes + +from ..particle import Particle + +class IntegratorWHFast512(ctypes.Structure): + _fields_ = [("gr_potential", ctypes.c_uint), + ("N_systems", ctypes.c_uint), + ("keep_unsynchronized", ctypes.c_uint), + ("is_synchronized", ctypes.c_uint), + ("_N_allocated", ctypes.c_uint), + ("recalculate_constants", ctypes.c_uint), + ("_p_jh", ctypes.POINTER(Particle)), + ("_p_jh0", Particle*4)] diff --git a/rebound/source/rebound/orbit.py b/rebound/source/rebound/orbit.py new file mode 100644 index 0000000000000000000000000000000000000000..81e41e451633fe8f204ad13bb65961387326d771 --- /dev/null +++ b/rebound/source/rebound/orbit.py @@ -0,0 +1,102 @@ +import ctypes +from .tools import M_to_E +from .vectors import Vec3dBasic + +class Orbit(ctypes.Structure): + """ + A class containing orbital parameters for a particle. + This is an abstraction of the reb_orbit data structure in C. + + When using the various REBOUND functions using Orbits, all angles are in radians. + The following image illustrated the most important angles used. + In REBOUND the reference direction is the positive x direction, the reference plane + is the xy plane. + + .. image:: images/orbit.png + :width: 500px + :height: 450px + + Image from wikipedia. CC-BY-SA-3. + + Attributes + ---------- + d : float + radial distance from reference + v : float + velocity relative to central object's velocity + h : float + specific angular momentum + P : float + orbital period (negative if hyperbolic) + n : float + mean motion (negative if hyperbolic) + a : float + semimajor axis + e : float + eccentricity + inc : float + inclination + Omega : float + longitude of ascending node + omega : float + argument of pericenter + pomega : float + longitude of pericenter + f : float + true anomaly + M : float + mean anomaly + E : float + eccentric anomaly (requires solving Kepler's equation - only calculated when needed) + l : float + mean longitude = Omega + omega + M + theta : float + true longitude = Omega + omega + f + T : float + time of pericenter passage + rhill : float + Hill radius ( =a*pow(m/(3M),1./3.) ) + pal_h : float + Cartesian component of the eccentricity ( = e*sin(pomega) ) + pal_k : float + Cartesian component of the eccentricity ( = e*cos(pomega) ) + pal_ix : float + Cartesian component of the inclination ( = 2*sin(i/2)*cos(Omega) ) + pal_iy : float + Cartesian component of the inclination ( = 2*sin(i/2)*sin(Omega) ) + hvec : Vec3d + Specific angular momentum vector + evec : Vec3d + Eccentricity vector (mag = eccentricity, points toward pericenter) + """ + _fields_ = [("d", ctypes.c_double), + ("v", ctypes.c_double), + ("h", ctypes.c_double), + ("P", ctypes.c_double), + ("n", ctypes.c_double), + ("a", ctypes.c_double), + ("e", ctypes.c_double), + ("inc", ctypes.c_double), + ("Omega", ctypes.c_double), + ("omega", ctypes.c_double), + ("pomega", ctypes.c_double), + ("f", ctypes.c_double), + ("M", ctypes.c_double), + ("l", ctypes.c_double), + ("theta", ctypes.c_double), + ("T", ctypes.c_double), + ("rhill", ctypes.c_double), + ("pal_h", ctypes.c_double), + ("pal_k", ctypes.c_double), + ("pal_ix", ctypes.c_double), + ("pal_iy", ctypes.c_double), + ("hvec", Vec3dBasic), + ("evec", Vec3dBasic)] + + def __repr__(self): + return "".format(str(self.a),str(self.e), str(self.inc), str(self.Omega), str(self.omega), str(self.f)) + + @property + def E(self): + return M_to_E(self.e, self.M) + diff --git a/rebound/source/rebound/particle.py b/rebound/source/rebound/particle.py new file mode 100644 index 0000000000000000000000000000000000000000..8cfbdce273a102f2562a5c3c252b696c90c18d22 --- /dev/null +++ b/rebound/source/rebound/particle.py @@ -0,0 +1,1044 @@ +from ctypes import Structure, c_double, c_int, byref, memmove, sizeof, c_uint32, c_uint, c_uint64, string_at, POINTER, c_char, c_void_p +import math +import sys + +def notNone(a): + """ + Returns True if array a contains at least one element that is not None. Returns False otherwise. + """ + return a.count(None) != len(a) + +class Particle(Structure): + """ + The main REBOUND particle data structure. + This is an abstraction of the reb_particle structure in C. + The Particle fields are set at the end of simulation.py to avoid circular references. + + Attributes + ---------- + x, y, z : float + Particle positions + vx, vy, vz : float + Particle velocities + ax, ay, az : float + Particle accelerations + m : float + Particle mass + r : float + Particle radius + last_collision : float + Last time the particle had a physical collision (if checking for collisions) + c : c_void_p (C void pointer) + Pointer to the cell the particle is currently in (if using tree code) + hash : c_uint32 + Particle hash (permanent identifier for the particle) + ap : c_void_p (C void pointer) + Pointer to additional parameters one might want to add to particles + _sim : POINTER(rebound.Simulation) + Internal pointer to the parent simulation (used in C version of REBOUND) + a, e, inc, Omega, omega, f : float + (Kepler Elements) Semi-major axis, eccentricity, inclination, longitude of the ascending node, argument of periapsis, and true anomaly respectively. The Keplerian Elements are in Jacobi coordinates (with mu = G*Minc, where Minc is the total mass from index 0 to the particle's index, inclusive). + """ + def __repr__(self): + """ + Returns a string with the position and velocity of the particle. + """ + return '<{0}.{1} object at {2}, m={3} x={4} y={5} z={6} vx={7} vy={8} vz={9}>'.format(self.__module__, type(self).__name__, hex(id(self)), self.m, self.x, self.y, self.z, self.vx, self.vy, self.vz) + + + def __init__(self, simulation=None, particle=None, m=None, x=None, y=None, z=None, vx=None, vy=None, vz=None, primary=None, a=None, P=None, e=None, inc=None, Omega=None, omega=None, pomega=None, f=None, M=None, E=None, l=None, theta=None, T=None, r=None, date=None, variation=None, variation2=None, h=None, k=None, ix=None, iy=None, pal_h=None, pal_k=None, pal_ix=None, pal_iy=None, hash=0, jacobi_masses=False): + """ + Initializes a Particle structure. Rather than explicitly creating + a Particle structure, users may use the ``add()`` member function + of a Simulation instance, which will both create a Particle and + then add it to the simulation with one function call. + + This function accepts either cartesian positions and velocities, + classical orbital elements together with the reference Particle + (the primary), as well as orbital parameters defined by Pal (2009). + + For convenience, optional keywords that are not passed default + to zero (mass, cartesian and orbital elements). + + Whenever initializing a particle from orbital elements, one must + specify either the semimajor axis or the period of the orbit. + + For classical orbital parameters, one can specify the longitude + of the ascending node by passing Omega, to specify the pericenter + one can pass either omega or pomega (not both), and for the + longitude/anomaly one can pass one of f, M, l or theta. + See ipython_examples/OrbitalElements.ipynb for examples. + See also Murray & Dermott Solar System Dynamics for formal + definitions of angles in orbital mechanics. + + All angles should be specified in radians. + + + Parameters + ---------- + simulation : Simulation + Simulation instance associated with this particle (Required if passing orbital elements or setting up a variation). + particle : Particle, optional + If a particle is passed, a copy of that particle is returned. + If a variational particle is initialized, then ``particle`` is + original particle that will be varied. + m : float + Mass (Default: 0) + x, y, z : float + Positions in Cartesian coordinates (Default: 0) + vx, vy, vz : float + Velocities in Cartesian coordinates (Default: 0) + primary : Particle + Primary body for converting orbital elements to cartesian (Default: center of mass of the particles in the passed simulation, i.e., this will yield Jacobi coordinates as one progressively adds particles) + a : float + Semimajor axis (a or P required if passing orbital elements) + P : float + Orbital period (a or P required if passing orbital elements) + e : float + Eccentricity (Default: 0) + inc : float + Inclination (Default: 0) + Omega : float + Longitude of ascending node (Default: 0) + omega : float + Argument of pericenter (Default: 0) + pomega : float + Longitude of pericenter (Default: 0) + f : float + True anomaly (Default: 0) + M : float + Mean anomaly (Default: 0) + E : float + Eccentric anomaly (Default: 0) + l : float + Mean longitude (Default: 0) + theta : float + True longitude (Default: 0) + T : float + Time of pericenter passage + h or pal_h : float + h variable, see Pal (2009) for a definition (Default: 0) + k or pal_k : float + k variable, see Pal (2009) for a definition (Default: 0) + ix or pal_ix : float + ix variable, see Pal (2009) for a definition (Default: 0) + iy or pal_iy : float + iy variable, see Pal (2009) for a definition (Default: 0) + r : float + Particle radius (only used for collisional simulations) + date : string + For consistency with adding particles through horizons. Not used here. + variation : string (Default: None) + Set this string to the name of an orbital parameter to initialize the particle as a variational particle. + Can be one of the following: m, a, e, inc, omega, Omega, f, k, h, lambda, ix, iy. + variation2 : string (Default: None) + Set this string to the name of a second orbital parameter to initialize the particle as a second order variational particle. Only used for second order variational equations. + Can be one of the following: m, a, e, inc, omega, Omega, f, k, h, lambda, ix, iy. + hash : c_uint32 + Unsigned integer identifier for particle. Can pass an integer directly, or a string that will be converted to a hash. User is responsible for assigning unique hashes. + jacobi_masses: bool + Whether to use jacobi primary mass in orbit initialization. Particle mass will still be set to physical value (Default: False) + Examples + -------- + + >>> sim = rebound.Simulation() + >>> sim.add(m=1.) + >>> p1 = rebound.Particle(simulation=sim, m=0.001, a=0.5, e=0.01) + >>> p2 = rebound.Particle(simulation=sim, m=0.0, x=1., vy=1.) + >>> p3 = rebound.Particle(simulation=sim, m=0.001, a=1.5, h=0.1, k=0.2, l=0.1) + >>> p4 = rebound.Particle(simulation=sim, m=0.001, a=1.5, omega="uniform") # omega will be a random number between 0 and 2pi + + """ + + # Unpickling + binarydata = None + if isinstance(simulation, bytes): + # simulation is actually a bytes array with the particle data + binarydata = simulation + if isinstance(particle, bytes): + # simulation is actually a bytes array with the particle data + binarydata = particle + if binarydata is not None: + if len(binarydata) != sizeof(self): + raise ValueError("Binary particle data does not have the right size.") + buft = c_char * len(binarydata) + buf = buft.from_buffer_copy(binarydata) + memmove(byref(self), byref(buf), sizeof(self)) + self.c = 0 + self.sim = 0 + self.ap = 0 + return + + # Random initialization of particle angles + clibrebound.reb_random_uniform.restype = c_double + if simulation is not None: + # Will use random seed stored in simulation. + simp = byref(simulation) + else: + # Will use random seed based on time. + simp = 0 + if Omega == "uniform": + Omega = clibrebound.reb_random_uniform(simp, c_double(0.0), c_double(math.pi*2.0)) + if omega == "uniform": + omega = clibrebound.reb_random_uniform(simp, c_double(0.0), c_double(math.pi*2.0)) + if pomega == "uniform": + pomega = clibrebound.reb_random_uniform(simp, c_double(0.0), c_double(math.pi*2.0)) + if f == "uniform": + f = clibrebound.reb_random_uniform(simp, c_double(0.0), c_double(math.pi*2.0)) + if M == "uniform": + M = clibrebound.reb_random_uniform(simp, c_double(0.0), c_double(math.pi*2.0)) + if E == "uniform": + E = clibrebound.reb_random_uniform(simp, c_double(0.0), c_double(math.pi*2.0)) + if l == "uniform": + l = clibrebound.reb_random_uniform(simp, c_double(0.0), c_double(math.pi*2.0)) + if theta == "uniform": + theta = clibrebound.reb_random_uniform(simp, c_double(0.0), c_double(math.pi*2.0)) + if inc == "uniform": + inc = clibrebound.reb_random_uniform(simp, c_double(0.0), c_double(math.pi*2.0)) + + self.hash = hash # set via the property, which checks for type + + if isinstance(primary, (str,int)): + primary = simulation.particles[primary] + + + if variation: + if primary is None: + primary = simulation.particles[0] + # Find particle to differenciate + lc = locals().copy() + del lc["self"] + del lc["variation"] + del lc["variation2"] + if particle is None: + particle = Particle(**lc) + # First or second order? + if variation and variation2: + variation_order = 2 + else: + variation_order = 1 + # Shortcuts for variable names + if variation == "l": + variation = "lambda" + if variation2 == "l": + variation2 = "lambda" + if variation == "i": + variation = "inc" + if variation2 == "i": + variation2 = "inc" + + variationtypes = ["m","a","e","inc","omega","Omega","f","k","h","lambda","ix","iy"] + if variation_order==1: + if variation in variationtypes: + method = getattr(clibrebound, 'reb_particle_derivative_'+variation) + method.restype = Particle + p = method(c_double(simulation.G), primary, particle) + else: + raise ValueError("Variational particles can only be initializes using the derivatives with respect to one of the following: %s."%", ".join(variationtypes)) + elif variation_order==2: + if variation in variationtypes and variation2 in variationtypes: + # Swap variations if needed + vi1 = variationtypes.index(variation) + vi2 = variationtypes.index(variation2) + if vi2 < vi1: + variation, variation2 = variation2, variation + + method = getattr(clibrebound, 'reb_particle_derivative_'+variation+'_'+variation2) + method.restype = Particle + p = method(c_double(simulation.G), primary, particle) + else: + raise ValueError("Variational particles can only be initializes using the derivatives with respect to one of the following: %s."%", ".join(variationtypes)) + else: + raise ValueError("Variational equations beyond second order are not implemented.") + self.m = p.m + self.x = p.x + self.y = p.y + self.z = p.z + self.vx = p.vx + self.vy = p.vy + self.vz = p.vz + return + + if particle is not None: + memmove(byref(self), byref(particle), sizeof(self)) + return + cart = [x,y,z,vx,vy,vz] + orbi = [primary,a,P,e,inc,Omega,omega,pomega,f,M,E,l,theta,T] + if pal_h is not None: + if h is not None: + raise ValueError("Both h and pal_h were given.") + h = pal_h + if pal_k is not None: + if k is not None: + raise ValueError("Both k and pal_k were given.") + k = pal_k + if pal_ix is not None: + if ix is not None: + raise ValueError("Both ix and pal_ix were given.") + ix = pal_ix + if pal_iy is not None: + if iy is not None: + raise ValueError("Both iy and pal_iy were given.") + iy = pal_iy + pal = [h,k,ix,iy] + + self.ax = 0. + self.ay = 0. + self.az = 0. + if m is None: + self.m = 0. + else: + self.m = m + if r is None: + self.r = 0. + else: + self.r = r + self.last_collision = 0. + self.c = None + self.ap = None + + if notNone([e,inc,omega,pomega,Omega,M,f,E,theta,T]) and notNone(pal): + raise ValueError("You cannot mix Pal coordinates (h,k,ix,iy) with the following orbital elements: e,inc,Omega,omega,pomega,f,M,E,theta,T. If a longitude/anomaly is needed in Pal coordinates, use l.") + if notNone(cart) and notNone(orbi): + raise ValueError("You cannot pass cartesian coordinates and orbital elements (and/or primary) at the same time.") + if notNone(orbi): + if simulation is None: + raise ValueError("Need to specify simulation when initializing particle with orbital elements.") + if primary is None: + clibrebound.reb_simulation_com.restype = Particle + primary = clibrebound.reb_simulation_com(byref(simulation)) # this corresponds to adding in Jacobi coordinates + if jacobi_masses is True: + interior_mass = 0 + for p in simulation.particles: + interior_mass += p.m + # orbit conversion uses mu=G*(p.m+primary.m) so set prim.m=Mjac-m so mu=G*Mjac + primary.m = simulation.particles[0].m*(self.m + interior_mass)/interior_mass - self.m + if a is None and P is None: + raise ValueError("You need to pass either a semimajor axis or orbital period to initialize the particle using orbital elements.") + if a is not None and P is not None: + raise ValueError("You can pass either the semimajor axis or orbital period, but not both.") + if a is None: + a = (P**2*simulation.G*(primary.m + self.m)/(4.*math.pi**2))**(1./3.)*(P/abs(P)) # keep sign of P for hyperbolic orbits + if notNone(pal): + # Pal orbital parameters + if h is None: + h = 0. + if k is None: + k = 0. + if l is None: + l = 0. + if ix is None: + ix = 0. + if iy is None: + iy = 0. + if((ix*ix + iy*iy) > 4.0): + raise ValueError("Passed (ix, iy) coordinates are not valid, squared sum exceeds 4.") + clibrebound.reb_particle_from_pal.restype = Particle + p = clibrebound.reb_particle_from_pal(c_double(simulation.G), primary, c_double(self.m), c_double(a), c_double(l), c_double(k), c_double(h), c_double(ix), c_double(iy)) + else: + # Normal orbital parameters + if e is None: + e = 0. + if inc is None: + inc = 0. + if Omega is None: # we require that Omega be passed if you want to specify longitude of node + Omega = 0. + + pericenters = [omega, pomega] # Need omega for C function. Can specify it either directly or through pomega indirectly. + numNones = pericenters.count(None) + + if numNones == 0: + raise ValueError("Can't pass both omega and pomega") + if numNones == 2: # Neither passed. Default to 0. + omega = 0. + if numNones == 1: + if pomega is not None: # Only have to find omega is pomega was passed + if math.cos(inc) > 0: # inc is in range [-pi/2, pi/2] (prograde), so pomega = Omega + omega + omega = pomega - Omega + else: + omega = Omega - pomega # for retrograde orbits, pomega = Omega - omega + + longitudes = [f,M,E,l,theta,T] # can specify longitude through any of these. Need f for C function. + numNones = longitudes.count(None) + + if numNones < 5: + raise ValueError("Can only pass one longitude/anomaly in the set [f, M, E, l, theta, T]") + if numNones == 6: # none of them passed. Default to 0. + f = 0. + if numNones == 5: # Only one was passed. Calculate f. + if f is not None: + pass # Nothing to be done + elif theta is not None: # theta is next easiest + if math.cos(inc) > 0: # for prograde orbits, theta = Omega + omega + f + f = theta - Omega - omega + else: + f = Omega - omega - theta # for retrograde, theta = Omega - omega - f + elif l is not None: + if math.cos(inc) > 0: # for prograde orbits, l = Omega + omega + M + M = l - Omega - omega + else: + M = Omega - omega - l # for retrograde, l = Omega - omega - M + f = M_to_f(e, M) + elif T is not None: # works for both elliptical and hyperbolic orbits + # TODO: has accuracy problems for M=n*(t-T) << 1 + n = (simulation.G*(primary.m+self.m)/abs(a**3))**0.5 + M = n*(simulation.t - T) + f = M_to_f(e, M) + elif M is not None: + f = M_to_f(e, M) + elif E is not None: + f = E_to_f(e, E) + + err = c_int() + clibrebound.reb_particle_from_orbit_err.restype = Particle + p = clibrebound.reb_particle_from_orbit_err(c_double(simulation.G), primary, c_double(self.m), c_double(a), c_double(e), c_double(inc), c_double(Omega), c_double(omega), c_double(f), byref(err)) + if err.value == 1: + raise ValueError("Can't set e exactly to 1.") + if err.value == 2: + raise ValueError("Eccentricity must be greater than or equal to zero.") + if err.value == 3: + raise ValueError("Bound orbit (a > 0) must have e < 1.") + if err.value == 4: + raise ValueError("Unbound orbit (a < 0) must have e > 1.") + if err.value == 5: + raise ValueError("Unbound orbit can't have f beyond the range allowed by the asymptotes set by the hyperbola.") + if err.value == 6: + raise ValueError("Primary has no mass.") + self.x = p.x + self.y = p.y + self.z = p.z + self.vx = p.vx + self.vy = p.vy + self.vz = p.vz + else: + if x is None: + x = 0. + if y is None: + y = 0. + if z is None: + z = 0. + if vx is None: + vx = 0. + if vy is None: + vy = 0. + if vz is None: + vz = 0. + self.x = x + self.y = y + self.z = z + self.vx = vx + self.vy = vy + self.vz = vz + + def copy(self): + """ + Returns a deep copy of the particle. The particle is not added to any simulation by default. + """ + np = Particle() + memmove(byref(np), byref(self), sizeof(self)) + return np + +# Pickling method + def __reduce__(self): + return (Particle, (string_at(byref(self), size=sizeof(self)),)) + + def orbit(self, primary=None, G=None): + """ + Returns a rebound.Orbit object with the keplerian orbital elements + corresponding to the particle around the passed primary + (rebound.Particle) If no primary is passed, defaults to Jacobi coordinates + (with mu = G*Minc, where Minc is the total mass from index 0 to the particle's index, inclusive). + + Examples + -------- + + >>> sim = rebound.Simulation() + >>> sim.add(m=1.) + >>> sim.add(x=1.,vy=1.) + >>> orbit = sim.particles[1].orbit(sim.particles[0]) # Heliocentric coordinates + >>> print(orbit.e) # gives the eccentricity + + Parameters + ---------- + primary : rebound.Particle + Central body (Optional. Default uses Jacobi coordinates) + G : float + Gravitational constant (Optional. Default takes G from simulation in which particle is in) + + Returns + ------- + A rebound.Orbit object + """ + if not self._sim: + # Particle not in a simulation + if primary is None: + raise ValueError("Particle does not belong to any simulation and no primary given. Cannot calculate orbit.") + if G is None: + raise ValueError("Particle does not belong to any simulation and G not given. Cannot calculate orbit.") + else: + G = c_double(G) + else: + # First check whether this is particles[0] + clibrebound.reb_simulation_particle_index.restype = c_int + index = clibrebound.reb_simulation_particle_index(byref(self)) # first check this isn't particles[0] + if index == 0 and primary is None: + raise ValueError("Orbital elements for particle[0] not implemented unless primary is provided") + + if primary is None: # Use default, i.e., Jacobi coordinates + clibrebound.reb_simulation_jacobi_com.restype = Particle # now return jacobi center of mass + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + G = c_double(self._sim.contents.G) + + err = c_int() + clibrebound.reb_orbit_from_particle_err.restype = Orbit + o = clibrebound.reb_orbit_from_particle_err(G, self, primary, byref(err)) + + if err.value == 1: + raise ValueError("Primary has no mass.") + if err.value == 2: + raise ValueError("Particle and primary positions are the same.") + + return o + + def sample_orbit(self, Npts=100, primary=None, samplingAngle=None, duplicateEndpoint=None): + """ + Returns a nested list of xyz positions along the osculating orbit of the particle. + If primary is not passed, returns xyz positions along the Jacobi osculating orbit + (with mu = G*Minc, where Minc is the total mass from index 0 to the particle's index, inclusive). + + Parameters + ---------- + Npts : int, optional + Number of points along the orbit to return (default: 100) + primary : rebound.Particle, optional + Primary to use for the osculating orbit (default: Jacobi center of mass) + samplingAngle: str, optional + This determines which angle is sampled linearly. Can be: + - "M" (mean anomaly) + - "E" (eccentric anomaly) + - "f" (true anomaly) + duplicateEndpoint: bool, optional + If true, then the first and last point will be identical for closed orbits. This is useful for some plotting tools. The default is true for eccentric orbits. The argument has no effect for hyperbolic orbits (because the endpoints are not identical). + """ + if primary is None: + primary = self.jacobi_com + o = self.orbit(primary=primary) + + phases_f = [] + if samplingAngle is not None: + if any(c not in "EMf" for c in samplingAngle): + raise ValueError("Unknown character in samplingAngle.") + + if o.a < 0.: # hyperbolic orbit + #a = o.a + if samplingAngle is None: + samplingAngle = "Mf" + Nptsangle = {} + for angle in samplingAngle[1:]: + Nptsangle[angle] = (Npts-1)//len(samplingAngle) # one point is reserved for actual position + Nptsangle[samplingAngle[0]] = Npts-1-sum(Nptsangle.values()) + if "M" in samplingAngle: + phi = math.acos(-1./o.e)*0.999 + Npts = Nptsangle["M"] + dphi = 2*phi/(Npts-1) + for i in range(Npts): + f = M_to_f(o.e, phi) + phases_f.append(f) + phi -= dphi + if "E" in samplingAngle: + phi = math.acos(-1./o.e)*0.999 + Npts = Nptsangle["E"] + dphi = 2*phi/(Npts-1) + for i in range(Npts): + f = E_to_f(o.e, phi) + phases_f.append(f) + phi -= dphi + if "f" in samplingAngle: + phi = math.acos(-1./o.e)*0.999 + Npts = Nptsangle["f"] + dphi = 2*phi/(Npts-1) + for i in range(Npts): + f = mod2pi(phi) + phases_f.append(f) + phi -= dphi + else: # circular orbit + #a = primary.m/(primary.m+self.m)*o.a + if samplingAngle is None: + samplingAngle = "Ef" + if duplicateEndpoint is None: + duplicateEndpoint = True + Nptsangle = {} + for angle in samplingAngle[1:]: + Nptsangle[angle] = (Npts-1)//len(samplingAngle) # one point is reserved for actual position + Nptsangle[samplingAngle[0]] = Npts-1-sum(Nptsangle.values()) + if "M" in samplingAngle: + Npts = Nptsangle["M"] + dphi = 2.*math.pi/(Npts-1 if duplicateEndpoint else Npts) # one point is reserved for the end point + for i in range(Npts): + f = M_to_f(o.e, i*dphi) + phases_f.append(f) + if "E" in samplingAngle: + Npts = Nptsangle["E"] + dphi = 2.*math.pi/(Npts-1 if duplicateEndpoint else Npts) # one point is reserved for the end point + for i in range(Npts): + f = E_to_f(o.e, i*dphi) + phases_f.append(f) + if "f" in samplingAngle: + Npts = Nptsangle["f"] + dphi = 2.*math.pi/(Npts-1 if duplicateEndpoint else Npts) # one point is reserved for the end point + for i in range(Npts): + f = i*dphi + f = mod2pi(f) + phases_f.append(f) + + # add actual position + f = mod2pi(o.f) + phases_f.append(f) + phases_f.sort() + + pts_pre = [] + pts_post = [] + + #clibrebound.reb_particle_com_of_pair.restype = Particle + #primary = clibrebound.reb_particle_com_of_pair(primary, self) + + for f in phases_f: + newp = Particle(a=o.a, f=f, inc=o.inc, omega=o.omega, Omega=o.Omega, e=o.e, m=self.m, primary=primary, simulation=self._sim.contents) + if f<=o.f: + pts_pre.append(newp.xyz) + else: + pts_post.append(newp.xyz) + + return pts_post + pts_pre + + # Simple operators for particles. + + def __eq__(self, other): + # This ignores the pointer values + if not isinstance(other,Particle): + return NotImplemented + clibrebound.reb_particle_diff.restype = c_int + ret = clibrebound.reb_particle_diff(self, other) + return not ret + + def __pow__(self, other): + if not isinstance(other, Particle): + return NotImplemented + clibrebound.reb_particle_distance.restype = c_double + return clibrebound.reb_particle_distance(byref(self), byref(other)) + def __add__(self, other): + if not isinstance(other, Particle): + return NotImplemented + c = self.copy() + return c.__iadd__(other) + + def __iadd__(self, other): + if not isinstance(other, Particle): + return NotImplemented + clibrebound.reb_particle_iadd(byref(self), byref(other)) + return self + + def __sub__(self, other): + if not isinstance(other, Particle): + return NotImplemented + c = self.copy() + return c.__isub__(other) + + def __isub__(self, other): + if not isinstance(other, Particle): + return NotImplemented + clibrebound.reb_particle_isub(byref(self), byref(other)) + return self + + def __mul__(self, other): + try: + other = float(other) + except: + return NotImplemented + c = self.copy() + return c.__imul__(other) + + def __imul__(self, other): + try: + other = float(other) + except: + return NotImplemented + clibrebound.reb_particle_imul(byref(self), c_double(other)) + return self + + def __rmul__(self, other): + try: + other = float(other) + except: + return NotImplemented + c = self.copy() + return c.__imul__(other) + + def __div__(self, other): + return self.__truediv__(other) + + def __idiv__(self, other): + return self.__itruediv__(other) + + def __truediv__(self, other): + try: + other = float(other) + except: + return NotImplemented + c = self.copy() + if other==0.: + raise ZeroDivisionError + return c.__imul__(1./other) + + def __itruediv__(self, other): + try: + other = float(other) + except: + return NotImplemented + if other==0.: + raise ZeroDivisionError + return self.__imul__(1./other) + + def rotate(self, q): + if not isinstance(q, Rotation): + raise NotImplementedError + clibrebound.reb_particle_irotate(byref(self), q) + + @property + def index(self): + clibrebound.reb_simulation_particle_index.restype = c_int + return clibrebound.reb_simulation_particle_index(byref(self)) + + @property + def xyz(self): + """ + Get or set the xyz position coordinates of the particle. + """ + return [self.x, self.y, self.z] + @xyz.setter + def xyz(self, value): + if len(value)!=3: + raise AttributeError("Can only set xyz positions to array with length 3") + self.x = float(value[0]) + self.y = float(value[1]) + self.z = float(value[2]) + + @property + def vxyz(self): + """ + Get or set the xyz velocity coordinates of the particle. + """ + return [self.vx, self.vy, self.vz] + @vxyz.setter + def vxyz(self, value): + if len(value)!=3: + raise AttributeError("Can only set xyz velocities to array with length 3") + self.vx = float(value[0]) + self.vy = float(value[1]) + self.vz = float(value[2]) + + @property + def d(self): + return self.orbit().d + @property + def v(self): + return self.orbit().v + @property + def h(self): + return self.orbit().h + @property + def hvec(self): + h = self.orbit().hvec + return [h.x, h.y, h.z] + @property + def P(self): + return self.orbit().P + @P.setter + def P(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, P=value, e=o.e, inc=o.inc, omega=o.omega, Omega=o.Omega, f=o.f) + self._copy_coordinates(newP) + @property + def n(self): + return self.orbit().n + @property + def a(self): + return self.orbit().a + @a.setter + def a(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, a=value, e=o.e, inc=o.inc, omega=o.omega, Omega=o.Omega, f=o.f) + self._copy_coordinates(newP) + @property + def rhill(self): + return self.orbit().rhill + @property + def e(self): + return self.orbit().e + @e.setter + def e(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, a=o.a, e=value, inc=o.inc, omega=o.omega, Omega=o.Omega, f=o.f) + self._copy_coordinates(newP) + @property + def evec(self): + e = self.orbit().evec + return [e.x, e.y, e.z] + @property + def inc(self): + return self.orbit().inc + @inc.setter + def inc(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, a=o.a, e=o.e, inc=value, omega=o.omega, Omega=o.Omega, f=o.f) + self._copy_coordinates(newP) + @property + def Omega(self): + return self.orbit().Omega + @Omega.setter + def Omega(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, a=o.a, e=o.e, inc=o.inc, omega=o.omega, Omega=value, f=o.f) + self._copy_coordinates(newP) + @property + def omega(self): + return self.orbit().omega + @omega.setter + def omega(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, a=o.a, e=o.e, inc=o.inc, omega=value, Omega=o.Omega, f=o.f) + self._copy_coordinates(newP) + @property + def pomega(self): + return self.orbit().pomega + @pomega.setter + def pomega(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, a=o.a, e=o.e, inc=o.inc, pomega=value, Omega=o.Omega, f=o.f) + self._copy_coordinates(newP) + @property + def f(self): + return self.orbit().f + @f.setter + def f(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, a=o.a, e=o.e, inc=o.inc, omega=o.omega, Omega=o.Omega, f=value) + self._copy_coordinates(newP) + @property + def M(self): + return self.orbit().M + @M.setter + def M(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, a=o.a, e=o.e, inc=o.inc, omega=o.omega, Omega=o.Omega, M=value) + self._copy_coordinates(newP) + @property + def l(self): + return self.orbit().l + @l.setter + def l(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, a=o.a, e=o.e, inc=o.inc, omega=o.omega, Omega=o.Omega, l=value) + self._copy_coordinates(newP) + @property + def theta(self): + return self.orbit().theta + @theta.setter + def theta(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, a=o.a, e=o.e, inc=o.inc, omega=o.omega, Omega=o.Omega, theta=value) + self._copy_coordinates(newP) + @property + def T(self): + return self.orbit().T + @T.setter + def T(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, a=o.a, e=o.e, inc=o.inc, omega=o.omega, Omega=o.Omega, T=value) + self._copy_coordinates(newP) + # Pal coordinates + @property + def pal_h(self): + return self.orbit().pal_h + @pal_h.setter + def pal_h(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, a=o.a, l=o.l, pal_h=value, pal_k=o.pal_k, pal_ix=o.pal_ix, pal_iy=o.pal_iy) + self._copy_coordinates(newP) + @property + def pal_k(self): + return self.orbit().pal_k + @pal_k.setter + def pal_k(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, a=o.a, l=o.l, pal_h=o.pal_h, pal_k=value, pal_ix=o.pal_ix, pal_iy=o.pal_iy) + self._copy_coordinates(newP) + @property + def pal_ix(self): + return self.orbit().pal_ix + @pal_ix.setter + def pal_ix(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, a=o.a, l=o.l, pal_h=o.pal_h, pal_k=o.pal_k, pal_ix=value, pal_iy=o.pal_iy) + self._copy_coordinates(newP) + @property + def pal_iy(self): + return self.orbit().pal_iy + @pal_iy.setter + def pal_iy(self,value): + o = self.orbit() + clibrebound.reb_simulation_jacobi_com.restype = Particle + primary = clibrebound.reb_simulation_jacobi_com(byref(self)) + if self._sim is None: + raise RuntimeError("Cannot modify particle which is not a member of a simulation.") + newP = Particle(simulation=self._sim.contents, primary=primary, m=self.m, a=o.a, l=o.l, pal_h=o.pal_h, pal_k=o.pal_k, pal_ix=o.pal_ix, pal_iy=value) + self._copy_coordinates(newP) + # Other properties + @property + def jacobi_com(self): + clibrebound.reb_simulation_jacobi_com.restype = Particle + return clibrebound.reb_simulation_jacobi_com(byref(self)) + # Calculate center of mass with another particle + def com_with(self, p): + clibrebound.reb_particle_com_of_pair.restype = Particle + return clibrebound.reb_particle_com_of_pair(p, self) + @property + def hash(self): + """ + Get or set the particle's hash. If set to a string, the corresponding integer hash is calculated. + """ + return c_uint32(self._hash) + @hash.setter + def hash(self, value): + PY3 = sys.version_info[0] == 3 + hash_types = c_uint32, c_uint, c_uint64 + if PY3: + string_types = str, + int_types = int, + else: + string_types = basestring, + int_types = int, long, + if isinstance(value, hash_types): + self._hash = value.value + elif isinstance(value, string_types): + self._hash = hash(value).value + elif isinstance(value, int_types): + self._hash = value + else: + raise AttributeError("Hash must be set to an integer, a ctypes.c_uint32 or a string. See UniquelyIdentifyingParticlesWithHashes.ipynb ipython_example.") + + def _copy_coordinates(self, p): + """ + Copy coordinates (and only coordinates) from particle p to self + """ + self.xyz = p.xyz + self.vxyz = p.vxyz + +from .simulation import Simulation +from . import clibrebound +from .tools import E_to_f, M_to_f, mod2pi +from .orbit import Orbit +from .rotation import Rotation +from .hash import hash + +if sizeof(c_void_p)==4: + # Add padding for 32 bit + Particle._fields_ = [("x", c_double), + ("y", c_double), + ("z", c_double), + ("vx", c_double), + ("vy", c_double), + ("vz", c_double), + ("ax", c_double), + ("ay", c_double), + ("az", c_double), + ("m", c_double), + ("r", c_double), + ("last_collision", c_double), + ("c", c_void_p), + ("_pad1", c_char*4), + ("_hash", c_uint32), + ("_pad2", c_char*4), + ("ap", c_void_p), + ("_pad3", c_char*4), + ("_sim", POINTER(Simulation)), + ("_pad4", c_char*4), + ] +else: + Particle._fields_ = [("x", c_double), + ("y", c_double), + ("z", c_double), + ("vx", c_double), + ("vy", c_double), + ("vz", c_double), + ("ax", c_double), + ("ay", c_double), + ("az", c_double), + ("m", c_double), + ("r", c_double), + ("last_collision", c_double), + ("c", c_void_p), + ("_hash", c_uint32), + ("ap", c_void_p), + ("_sim", POINTER(Simulation)), + ] diff --git a/rebound/source/rebound/particles.py b/rebound/source/rebound/particles.py new file mode 100644 index 0000000000000000000000000000000000000000..2b24cf49233d381e17b10ffb6545efcdcc6f0f13 --- /dev/null +++ b/rebound/source/rebound/particles.py @@ -0,0 +1,87 @@ +import sys +from ctypes import c_uint32, c_uint, c_uint64, addressof, POINTER, pointer, byref +from .hash import hash as rebhash +from .particle import Particle +from . import clibrebound, ParticleNotFound + +try: + # Required for Python>=3.9 + from collections.abc import MutableMapping +except: + from collections import MutableMapping + + +class Particles(MutableMapping): + """ + This class allows the user to access particles like a dictionary using the particle's 1) index 2) hash 3) string (which will be converted to hash). + Allows for negative indices and slicing. + """ + def __init__(self, sim): + self.sim = sim + + @property + def _ps(self): + ParticleList = Particle*self.sim.N + pl = ParticleList.from_address(addressof(self.sim._particles.contents)) + pl._sim = self.sim # keep reference to sim until ParticleList is deallocated to avoid memory issues + return pl + + def __getitem__(self, key): + hash_types = c_uint32, c_uint, c_uint64 + PY3 = sys.version_info[0] == 3 + if PY3: + string_types = str, + int_types = int, + else: + string_types = basestring, + int_types = int, long, + try: + import numpy as np + int_types += np.int64, + except: + pass + + if isinstance(key, slice): + return [self[i] for i in range(*key.indices(len(self)))] + + if isinstance(key, int_types): + if key < 0: # accept negative indices + key += self.sim.N + if key < 0 or key >= self.sim.N: + raise AttributeError("Index {0} used to access particles out of range.".format(key)) + return self._ps[key] + + else: + clibrebound.reb_simulation_particle_by_hash.restype = POINTER(Particle) + if isinstance(key, string_types): + key = rebhash(key) + elif not isinstance(key, hash_types): + raise AttributeError("Expecting string, integer or ctypes.c_uint32 as argument to sim.particles. See UniquelyIdentifyingParticlesWithHashes.ipynb ipython_example.") + + ptr = clibrebound.reb_simulation_particle_by_hash(byref(self.sim), key) + + if ptr: + p = Particle + return p.from_address(addressof(ptr.contents)) + else: + raise ParticleNotFound("Particle was not found in the simulation.") + + def __setitem__(self, key, value): + if isinstance(value, Particle): + value._sim = pointer(self.sim) + p = self[key] + if p.index == -1: + raise AttributeError("Can't set particle (particle not found in simulation).") + else: + self._ps[p.index] = value + + def __delitem__(self, key): + pass + + def __iter__(self): + if self.sim.N>0: + for p in self._ps: + yield p + + def __len__(self): + return self.sim.N diff --git a/rebound/source/rebound/plotting.py b/rebound/source/rebound/plotting.py new file mode 100644 index 0000000000000000000000000000000000000000..50b3a1a5668b32849a21268374c754bfa46d2794 --- /dev/null +++ b/rebound/source/rebound/plotting.py @@ -0,0 +1,465 @@ +# -*- coding: utf-8 -*- +from .particle import Particle +from itertools import cycle + + +class OrbitPlot: + """ + Class for visualizing simulations using instantaneous orbits. + """ + + def __init__(self, sim, fig=None, ax=None, figsize=(5,5), projection="xy", xlim=None, ylim=None, unitlabel=None, color=False, periastron=False, orbit_style="trail", lw=1., particles=None, primary=None, show_primary=True, origin=None, Narc=128): + """ + Initializer for OrbitPlot class + + By default each instance of OrbitPlot creates its own matplotlib figure and axes. However, you can also reuse an existing figure and axes by passing them as arguments. + + Parameters + ---------- + sim : Simulation (required) + fig : matplotlib.figure.Figure, optional + If a figure instances is passed as an argument, we will use it instead of creating a new one. + ax : matplotlib.axes._subplots.AxesSubplot, optional + If a Axes instances is passed as an argument, we will use it instead of creating a new one. + figsize : tuple of float, optional + Tuple defining the figure size (default: (5,5)) + + projection : string, optional + By default the orbit is shown as a projection into the xy plane. To show the orbit projected into the xz plane, set this string to "xy". + xlim : tuple of float, optional + Limits for x axes (default: None = automatically determined) + ylim : tuple of float, optional + Limits for y axes (default: None = automatically determined) + unitlabel : str, optional + String describing the units, shown on axis labels (default: None) + + color : bool, str or list, optional + By default plots are black and white. If set to True, plots use a color cycle. If set to a string or list of strings, e.g. ['red', 'cyan'], OrbitPlot will cycle between the colors. + periastron : bool, optional + Draw a marker at periastron (default: False) + orbit_style : str, optional + This argument determines the type of orbit show. By default, it shows the orbit as a trailing and fading line ("trail"). Other object are: "solid", None. + lw : float, optional + Linewidth used in plots (default: 1.) + + particles : list of (int, or str), optional + List of particles to plot. Can be a list of any valid keys for accessing sim.particles, i.e., integer indices or hashes (default: plot all particles). List should not include primary. + primary : rebound.Particle, optional + Primary to use for the osculating orbit (default: Jacobi center of mass) + show_primary : bool + Set to False to hide primary (default: True) + origin : tuple of two floats, optional + By default the origin to [0, 0]. Use this argument if you wish to move the entire OrbitPlot. + Narc : int, optional + Number of points used in an orbit. Increase this number for highly eccentric orbits. (default: 128) + + Returns + ------- + The function returns a new instance of the OrbitPlot class. + + Examples + -------- + The following example illustrates a typical use case. + + >>> sim = rebound.Simulation() + >>> sim.add(m=1) + >>> sim.add(a=1) + >>> op = rebound.OrbitPlot(sim) + >>> op.fig.savefig("image.png") # save figure to file + + """ + try: + import matplotlib.pyplot as plt + except: + raise ImportError("Error importing matplotlib and/or numpy. Plotting functions not available. If running from within a jupyter notebook, try calling '%matplotlib inline' beforehand.") + + self.sim = sim + + self._xlim = xlim + self._ylim = ylim + self.color = color + self.projection = projection + self._periastron = periastron # cannot be changed later + self._orbit_style = orbit_style # cannot be changed later + self._lw = lw # cannot be changed later + if isinstance(primary,(str,int)): + primary = sim.particles[primary] + self._primary = primary # cannot be changed later + self._show_primary = show_primary # cannot be changed later + self._Narc = Narc # cannot be changed later + self._particles = particles # cannot be changed later + self.origin = origin + + updateLimits = True + if fig is not None: + updateLimits = False + self.fig = fig + self.ax = ax + else: + # Initialize figure (figure size can not be changed later) + if unitlabel is not None: + unitlabel = " " + unitlabel + else: + unitlabel = "" + self.fig = plt.figure(figsize=figsize) + self.ax = plt.subplot(111,aspect="equal") #check syntax + self.ax.set_xlabel("x"+unitlabel) + self.ax.set_ylabel("y"+unitlabel) + + self.orbits = None + self.primary = None + self.particles = None + self.draw(updateLimits=updateLimits) + + @property + def xlim(self): + if self._xlim: + return self._xlim + else: + return self.ax.get_xlim() + + @xlim.setter + def xlim(self, value): + self._xlim = value + + @property + def ylim(self): + if self._ylim: + return self._ylim + else: + return self.ax.get_ylim() + + @ylim.setter + def ylim(self, value): + self._ylim = value + + + def draw(self, update=False, updateLimits=True): + if self.particles is None or update==False: + update = True # First run needs update + self.setup() + if update: + self.update(updateLimits=updateLimits) + + def offset(self): + import numpy as np + if self.origin is not None: + if isinstance(self.origin, (list, np.ndarray)): + return [-self.origin[0],-self.origin[1]] + elif isinstance(self.origin, Particle): + p = self.origin + else: + p = self.sim.particles[self.origin] + px, py = getattr(p,self.projection[0]), getattr(p,self.projection[1]) + return [-px, -py] + else: + return [0, 0] + + def setup(self): + """ + Construct the collections for particles and orbits. + Does not populate the data arrays -- that is done in update(). + """ + from matplotlib.collections import LineCollection + import numpy as np + + particles = self._particles + if not particles: + particles = range(1, self.sim.N_real) + + # Color stuff + color = self.color + if color: + if color == True: + colors = [(1.,0.,0.),(0.,0.75,0.75),(0.75,0.,0.75),(0.75, 0.75, 0,),(0., 0., 0.),(0., 0., 1.),(0., 0.5, 0.)] + if isinstance(color, str): + colors = [get_color(color)] + if isinstance(color, list): + colors = [] + for c in color: + colors.append(get_color(c)) + else: + colors = [(0.,0.,0.)] + coloriterator = cycle(colors) + color_list = [] + for i in range(len(particles)): + colori = next(coloriterator) + color_list.append(colori) + + if self._show_primary: + pc = self.ax.scatter([],[], marker="*", s=35*self._lw, facecolor="black", edgecolor=None, zorder=3) + self.ax.add_collection(pc) + self.primary = pc + + pc = self.ax.scatter([], [], s=25*self._lw, facecolor="black", edgecolor=None, zorder=3) + self.ax.add_collection(pc) + self.particles = pc + + lcs = [] + + for j in range(len(particles)): + if self._orbit_style is not None: + lc = LineCollection([], lw=self._lw) + + line_colors = np.zeros((self._Narc+1,4)) + line_colors[:,0:3] = color_list[j] + alpha = 1. + if self._orbit_style=="trail": + line_colors[:,3] = alpha*np.linspace(0,1,self._Narc+1) + elif self._orbit_style=="solid": + line_colors[:,3] = alpha + else: + raise ValueError("Unknown orbit_style.") + lc.set_color(line_colors) + + lcs.append(lc) + self.ax.add_collection(lc) + + self.orbits = lcs + + if self._periastron: + lc = LineCollection([], lw=self._lw, zorder=1, linestyle="dotted") + lc.set_color(color_list) + self.ax.add_collection(lc) + self.periastrons = lc + + + def update(self, updateLimits=False): + """ + This function sets the data arrays in the plot according to the simulation in self.sim. + Needs to be called after setup() to actually show something on the figure. + """ + + if self._xlim and self._ylim: + updateLimits = False # No need to calculate limits. + + offset_x, offset_y = self.offset() + + import numpy as np + projection = self.projection + particles = self._particles + if not particles: + particles = range(1, self.sim.N_real) + + prim = self.sim.particles[0] if self._primary is None else self._primary + px, py = getattr(prim,projection[0])+offset_x, getattr(prim,projection[1])+offset_y + if self._show_primary: + pc = self.primary + pc.set_offsets([[px, py]]) + limits_x = [px, px] + limits_y = [py, py] + + offsets = np.zeros((len(particles),2)) + periastrons = [] + proj = {"x": 0, "y": 1, "z": 2} + for j in range(len(particles)): + p = self.sim.particles[particles[j]] + px, py = getattr(p,projection[0])+offset_x, getattr(p,projection[1])+offset_y + offsets[j] = [px, py] + + if len(self.orbits): # no need to update if orbit_style = None + # Need many line segments here so we can color it. + pts = np.array(p.sample_orbit(Npts=self._Narc+1, primary=self._primary)) + segments = np.zeros((self._Narc,2,2)) + x, y = pts[:,proj[projection[0]]], pts[:,proj[projection[1]]] + segments[:,0,0] = x[:-1] + offset_x + segments[:,0,1] = y[:-1] + offset_y + segments[:,1,0] = x[1:] + offset_x + segments[:,1,1] = y[1:] + offset_y + lc = self.orbits[j] + lc.set_segments(segments) + + if updateLimits: + if p.a < 0.: # hyperbolic, avoid zooming out too much + limits_x = [min(limits_x[0], px), max(limits_x[1], px)] + limits_y = [min(limits_y[0], py), max(limits_y[1], py)] + else: + ma = np.max(segments, axis=(0,1)) + mi = np.min(segments, axis=(0,1)) + limits_x = [min(limits_x[0], px, mi[0]), max(limits_x[1], px, ma[0])] + limits_y = [min(limits_y[0], py, mi[1]), max(limits_y[1], py, ma[1])] + + + if self._periastron: + if self._primary is None: + pprimary = p.jacobi_com + else: + pprimary = self._primary + o = p.orbit(primary = pprimary) + newp = Particle(a=o.a, f=0., inc=o.inc, omega=o.omega, Omega=o.Omega, e=o.e, m=p.m, primary=pprimary, simulation=self.sim) + periastrons.append([[getattr(prim,projection[0])+offset_x, getattr(prim,projection[1])+offset_y], + [getattr(newp,projection[0])+offset_x, getattr(newp,projection[1])+offset_y]]) + else: + if updateLimits: + limits_x = [min(limits_x[0], px), max(limits_x[1], px)] + limits_y = [min(limits_y[0], py), max(limits_y[1], py)] + + self.particles.set_offsets(offsets) # path collection offsets + if self._periastron: + self.periastrons.set_segments(periastrons) + + if updateLimits: + width = limits_x[1] - limits_x[0] + height = limits_y[1] - limits_y[0] + + # prevent overly elongated plots + limits_x[0] -= height/10. + limits_x[1] += height/10. + limits_y[0] -= width/10. + limits_y[1] += width/10. + + if self._xlim is None: + self.ax.set_xlim([limits_x[0]-0.05*width, limits_x[1]+0.05*width ]) + if self._ylim is None: + self.ax.set_ylim([limits_y[0]-0.05*height,limits_y[1]+0.05*height]) + + if self._xlim: + self.ax.set_xlim(self._xlim) + if self._ylim: + self.ax.set_ylim(self._ylim) + + +class OrbitPlotSet: + """ + Class for visualizing simulations using instantaneous orbits in 3D. Uses three rebound.OrbitPlot instances internally. + """ + + def __init__(self, sim, slices=0.5, fig=None, ax=None, figsize=(5,8), unitlabel=None, **kwargs): + """ + Initializer for OrbitPlotSet class + + This function has the same arguments as OrbitPlot() with the addition of: + + Parameters + ---------- + slices : float, optional + Changes the height and width of the top and right plot relative to the main plot. Default: 0.5. + """ + + try: + import matplotlib.pyplot as plt + from mpl_toolkits.axes_grid1 import make_axes_locatable + except: + raise ImportError("Error importing matplotlib and/or numpy. Plotting functions not available. If running from within a jupyter notebook, try calling '%matplotlib inline' beforehand.") + updateLimits = True + if fig is not None: + updateLimits = False + self.fig = fig + self.ax_main, self.ax_top, self.ax_right = ax + else: + # Initialize figure (figure size can not be changed later) + + if unitlabel is not None: + unitlabel = " " + unitlabel + else: + unitlabel = "" + + self.fig = plt.figure(figsize=figsize) + self.ax_main = plt.subplot(111,aspect="equal") #check syntax + self.ax_main.set_xlabel("x"+unitlabel) + self.ax_main.set_ylabel("y"+unitlabel) + + divider = make_axes_locatable(self.ax_main) + divider.set_aspect(True) + self.ax_top = divider.append_axes("top", size="%.2f%%"%(100.*slices), sharex=self.ax_main, pad=0) + self.ax_top.set_aspect('equal', adjustable='datalim') + self.ax_right = divider.append_axes("right", size="%.2f%%"%(100.*slices), sharey=self.ax_main, pad=0) + self.ax_right.set_aspect('equal', adjustable='datalim') + + plt.setp(self.ax_top.get_xticklabels(), visible=False) + plt.setp(self.ax_top.get_xticklines(), visible=False) + self.ax_top.set_ylabel("z"+unitlabel) + + plt.setp(self.ax_right.get_yticklabels(), visible=False) + plt.setp(self.ax_right.get_yticklines(), visible=False) + self.ax_right.set_xlabel("z"+unitlabel) + + self.sim = sim + self.main = OrbitPlot(sim, fig=self.fig, ax=self.ax_main, projection="xy", **kwargs) + self.top = OrbitPlot(sim, fig=self.fig, ax=self.ax_top, projection="xz", **kwargs) + self.right = OrbitPlot(sim, fig=self.fig, ax=self.ax_right, projection="zy", **kwargs) + + self.draw(updateLimits=updateLimits, update=True) + + def draw(self, update=False, updateLimits=True): + self.main.draw(update=update, updateLimits=updateLimits) + self.top.draw(update=update, updateLimits=updateLimits) + self.right.draw(update=update, updateLimits=updateLimits) + def update(self, updateLimits=True): + self.main.update(updateLimits=updateLimits) + self.top.update(updateLimits=updateLimits) + self.right.update(updateLimits=updateLimits) + + +def get_color(color): + """ + Takes a string for a color name defined in matplotlib and returns of a 3-tuple of RGB values. + Will simply return passed value if it's a tuple of length three. + + Parameters + ---------- + color : str + Name of matplotlib color to calculate RGB values for. + """ + + if isinstance(color, tuple) and len(color) == 3: # already a tuple of RGB values + return color + + import matplotlib.colors as mplcolors + + try: + return mplcolors.to_rgb(color) + except KeyError: + raise AttributeError("Color not recognized in matplotlib.") + +#def OrbitPlotAddFancyStars(ax,lw,slices=1.): +# import numpy as np +# # safe the current random seed to restore later +# os = np.random.get_state() +# # always produce the same stars +# np.random.seed(1) +# +# ax.set_facecolor((0.,0.,0.)) +# for pos in ['top', 'bottom', 'right', 'left']: +# ax.spines[pos].set_edgecolor((0.3,0.3,0.3)) +# +# starcolor = (1.,1.,1.) +# starsurfacedensity = 0.8 +# +# area = np.sqrt(np.sum(np.square(ax.transAxes.transform([1.,1.]) - ax.transAxes.transform([0.,0.]))))*slices +# nstars = int(starsurfacedensity*area) +# +# #small stars +# xy = np.random.uniform(size=(nstars,2)) +# ax.scatter(xy[:,0],xy[:,1], transform=ax.transAxes, alpha=0.05, s=8*lw, facecolor=starcolor, edgecolor=None, zorder=3) +# ax.scatter(xy[:,0],xy[:,1], transform=ax.transAxes, alpha=0.1, s=4*lw, facecolor=starcolor, edgecolor=None, zorder=3) +# ax.scatter(xy[:,0],xy[:,1], transform=ax.transAxes, alpha=0.2, s=0.5*lw, facecolor=starcolor, edgecolor=None, zorder=3) +# +# #large stars +# xy = np.random.uniform(size=(nstars//4,2)) +# ax.scatter(xy[:,0],xy[:,1], transform=ax.transAxes, alpha=0.1, s=15*lw, facecolor=starcolor, edgecolor=None, zorder=3) +# ax.scatter(xy[:,0],xy[:,1], transform=ax.transAxes, alpha=0.1, s=5*lw, facecolor=starcolor, edgecolor=None, zorder=3) +# ax.scatter(xy[:,0],xy[:,1], transform=ax.transAxes, alpha=0.5, s=2*lw, facecolor=starcolor, edgecolor=None, zorder=3) +# +# np.random.set_state(os) +# +# +# +# +# if self.fancy: +# colors = [(181./206.,66./206.,191./206.)] +# else: +# if self.fancy: +# #TODO Color=colori +# pc = self.ax.scatter([],[], s=25*self._lw, edgecolor=None, zorder=3) # need to set color manually later in update +## if self.fancy: +# prim = self.sim.particles[0] if self._primary is None else self._primary +# #TODO: +# sun = (256./256.,256./256.,190./256.) +# opa = 0.035 +# size = 6000. +# for i in range(100): +# ax.scatter(getattr(prim,axes[0]),getattr(prim,axes[1]), alpha=opa, s=size*self._lw, facecolor=sun, edgecolor=None, zorder=3) +# size *= 0.95 +# pc = self.ax.scatter(getattr(prim,axes[0]),getattr(prim,axes[1]), s=size*self._lw, facecolor=sun, edgecolor=None, zorder=3) +# else: diff --git a/rebound/source/rebound/rebound.h b/rebound/source/rebound/rebound.h new file mode 100644 index 0000000000000000000000000000000000000000..98f1b354b7d3aace09013add0d91220df1dc25ff --- /dev/null +++ b/rebound/source/rebound/rebound.h @@ -0,0 +1,1432 @@ +/** + * @file rebound.h + * @brief REBOUND API definition. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2015 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#ifndef _MAIN_H +#define _MAIN_H + +#ifdef _WIN64 +#define _LP64 +#endif +#ifdef _WIN32 +#include +#define _WINSOCKAPI_ //stops windows.h including winsock.h +#include +#define REB_RESTRICT +#define DLLEXPORT __declspec(dllexport) +#define __restrict__ +#elif __EMSCRIPTEN__ +#include +#include +#define REB_RESTRICT +#define DLLEXPORT +#else // Linux and MacOS +#define REB_RESTRICT restrict +#define DLLEXPORT +#endif // _WIN32 + +#include +#include +#include +#include +#define _USE_MATH_DEFINES +#include + +#ifdef _WIN32 +typedef struct reb_timeval { + int64_t tv_sec; + int64_t tv_usec; +} reb_timeval; +int gettimeofday(struct reb_timeval * tp, struct timezone * tzp); +int asprintf(char **strp, const char *fmt, ...); +int rand_r (unsigned int *seed); +#include +#define _TIMEVAL_DEFINED +#else // Linux and MacOS +#define reb_timeval timeval +#include +#include +#include +#endif // _WIN32 + +#ifdef AVX512 +#include +#endif + +#ifdef MPI +#include "mpi.h" +#endif + +#ifndef GITHASH +#define GITHASH notavailable0000000000000000000000000001 +#endif + + +#ifndef __GNUC__ +# define __attribute__(x) /*Ignore attributes in non-GNU compilers*/ +#endif + + +// Global constants and variables +DLLEXPORT extern const char* reb_build_str; ///< Date and time build string. +DLLEXPORT extern const char* reb_version_str; ///< Version string. +DLLEXPORT extern const char* reb_githash_str; ///< Current git hash. +DLLEXPORT extern const char* reb_logo[26]; ///< Logo of rebound. +DLLEXPORT extern const unsigned char reb_favicon_png[]; /// < Favicon in PNG format. +DLLEXPORT extern const unsigned int reb_favicon_len; +DLLEXPORT extern const int reb_max_messages_length; +DLLEXPORT extern const int reb_N_max_messages; +extern volatile sig_atomic_t reb_sigint; ///< Graceful global interrupt handler + +// Forward declarations +struct reb_simulation; +struct reb_simulationarchive; +struct reb_display_data; +struct reb_server_data; +struct reb_treecell; +struct reb_variational_configuration; +struct reb_display_settings; + +// Particle structure +struct reb_particle { + double x; // Cartesian coordinates + double y; + double z; + double vx; + double vy; + double vz; + double ax; + double ay; + double az; + double m; // mass + double r; // physical radius + double last_collision; // Last time the particle had a physical collision. + struct reb_treecell* c; // Pointer to the cell the particle is currently in. +#if !defined(_LP64) + char pad1[4]; // c is short by 4 bytes +#endif + uint32_t hash; // Hash, can be used to identify particle. +#if !defined(_LP64) + char pad2[4]; // ap is not padded to 8 bytes +#endif + void* ap; // This pointer allows REBOUNDx to add additional properties to the particle. +#if !defined(_LP64) + char pad3[4]; // ap is short by 4 bytes +#endif + struct reb_simulation* sim; // Pointer to the parent simulation. +#if !defined(_LP64) + char pad4[4]; // sim is short by 4 bytes +#endif +}; + +// Generic 3d vector +struct reb_vec3d { + double x; + double y; + double z; +}; + +// Generic 4d matrix (single precision) +struct reb_mat4df { + float m[16]; +}; + + +// Generic 6d vector +struct reb_vec6d{ + double x; + double y; + double z; + double vx; + double vy; + double vz; +}; + +// Rotation (implemented as a quaternion) +struct reb_rotation { + double ix; + double iy; + double iz; + double r; +}; + +// Structure representing one particle-particle collision +struct reb_collision{ + int p1; // Index of first particle involved in collision + int p2; // Index of second particle + struct reb_vec6d gb; // Offset due to boundary conditions + int ri; // Root cell index (MPI only) +}; + +// Generic pointer with 7 elements, for internal use only (IAS15). +struct reb_dp7 { + double* REB_RESTRICT p0; + double* REB_RESTRICT p1; + double* REB_RESTRICT p2; + double* REB_RESTRICT p3; + double* REB_RESTRICT p4; + double* REB_RESTRICT p5; + double* REB_RESTRICT p6; +}; + +// Integrator structures +// IAS15 (Rein & Spiegel 2015) +struct reb_integrator_ias15 { + double epsilon; // Precision control parameter + double min_dt; // Minimal timestep + enum { + REB_IAS15_INDIVIDUAL = 0, // fractional error is calculated seperately for each particle + REB_IAS15_GLOBAL = 1, // fractional error is calculated globally (was default until 01/2024) + REB_IAS15_PRS23 = 2, // Pham, Rein & Spiegel (2023) timestep criterion (default since 01/2024) + REB_IAS15_AARSETH85 = 3, // Aarseth (1985) timestep criterion + } adaptive_mode; + uint64_t iterations_max_exceeded; // Counter how many times the iteration did not converge. + unsigned int N_allocated; + double* REB_RESTRICT at; + double* REB_RESTRICT x0; + double* REB_RESTRICT v0; + double* REB_RESTRICT a0; + double* REB_RESTRICT csx; + double* REB_RESTRICT csv; + double* REB_RESTRICT csa0; + struct reb_dp7 g; + struct reb_dp7 b; + struct reb_dp7 csb; // Compensated summation storage for b + struct reb_dp7 e; + struct reb_dp7 br; // Used for resetting the b coefficients if a timestep gets rejected + struct reb_dp7 er; // Same for e coefficients + int* map; // internal map to particles (this is an identity map except when MERCURIUS is used + unsigned int N_allocated_map; // allocated size for map +}; + +// Mercurius (Rein et al. 2019) +struct reb_integrator_mercurius { + double (*L) (const struct reb_simulation* const r, double d, double dcrit); // Switching function (default same as Mercury) + double r_crit_hill; // Critical switching distance in units of Hill radii + unsigned int recalculate_coordinates_this_timestep; // Set to 1 if particles have been modified + unsigned int recalculate_r_crit_this_timestep; // Set to 1 if to recalculate critical switching radii + unsigned int safe_mode; // Combine Kick steps at beginning and end of timestep + + // Internal use + unsigned int is_synchronized; + unsigned int mode; // 0 if WH is operating, 1 if IAS15 is operating. + unsigned int encounter_N; // Number of particles currently having an encounter + unsigned int encounter_N_active;// Number of active particles currently having an encounter + unsigned int tponly_encounter; // 0 if any encounters are between two massive bodies. 1 if encounters only involve test particles + unsigned int N_allocated; + unsigned int N_allocated_additional_forces; + unsigned int N_allocated_dcrit; // Current size of dcrit arrays + double* dcrit; // Precalculated switching radii for particles + struct reb_particle* REB_RESTRICT particles_backup; // contains coordinates before Kepler step for encounter prediction + struct reb_particle* REB_RESTRICT particles_backup_additional_forces; // contains coordinates before Kepler step for encounter prediction + int* encounter_map; // Map to represent which particles are integrated with ias15 + struct reb_vec3d com_pos; // Used to keep track of the center of mass during the timestep + struct reb_vec3d com_vel; +}; + +// Symplectic Epicycle Integrator SEI (Rein & Tremaine 2011) +struct reb_integrator_sei { + double OMEGA; // Epicyclic frequency + double OMEGAZ; // Epicyclic frequency in z direction (if not set, use OMEGA) + + // Internal use + double lastdt; // Cached sin(), tan() for this value of dt. + double sindt; // Cached sin() + double tandt; // Cached tan() + double sindtz; // Cached sin(), z axis + double tandtz; // Cached tan(), z axis +}; + +// Leapfrog Integrator +struct reb_integrator_leapfrog { + unsigned int order; +}; + +// TRACE (Lu Hernandez & Rein 2024) +struct reb_integrator_trace { + int (*S) (struct reb_simulation* const r, const unsigned int i, const unsigned int j); + int (*S_peri) (struct reb_simulation* const r, const unsigned int j); + + enum { + REB_TRACE_PERI_PARTIAL_BS = 0, + REB_TRACE_PERI_FULL_BS = 1, + REB_TRACE_PERI_FULL_IAS15 = 2, + } peri_mode; + + double r_crit_hill; + double peri_crit_eta; + + // Internal use + enum { + REB_TRACE_MODE_INTERACTION = 0, // Interaction step + REB_TRACE_MODE_KEPLER = 1, // Kepler step + REB_TRACE_MODE_NONE = 2, // In-between steps, to avoid calculate_accelerations + REB_TRACE_MODE_FULL = 3, // Doing everything in one step (only used for collision search) + } mode; + unsigned int encounter_N; // Number of particles currently having an encounter + unsigned int encounter_N_active; // Number of active particles currently having an encounter + + unsigned int N_allocated; + unsigned int N_allocated_additional_forces; + unsigned int tponly_encounter; // 0 if any encounters are between two massive bodies. 1 if encounters only involve test particles + + struct reb_particle* REB_RESTRICT particles_backup; // Contains coordinates before the entire step + struct reb_particle* REB_RESTRICT particles_backup_kepler; // Contains coordinates before kepler step + struct reb_particle* REB_RESTRICT particles_backup_additional_forces; // For additional forces + + int* encounter_map; // Map to represent which particles are integrated with BS + struct reb_vec3d com_pos; // Used to keep track of the centre of mass during the timestep + struct reb_vec3d com_vel; + + int* current_Ks; // Tracking K_ij for the entire timestep + unsigned int current_C; // Tracking C for the entire timestep + unsigned int force_accept; // Force accept for irreversible steps: collisions and adding particles +}; + +// SABA Integrator (Laskar & Robutel 2001) +struct reb_integrator_saba { + enum { + REB_SABA_1 = 0x0, // WH + REB_SABA_2 = 0x1, // SABA2 + REB_SABA_3 = 0x2, // SABA3 + REB_SABA_4 = 0x3, // SABA4 + REB_SABA_CM_1 = 0x100, // SABACM1 (Modified kick corrector) + REB_SABA_CM_2 = 0x101, // SABACM2 (Modified kick corrector) + REB_SABA_CM_3 = 0x102, // SABACM3 (Modified kick corrector) + REB_SABA_CM_4 = 0x103, // SABACM4 (Modified kick corrector) + REB_SABA_CL_1 = 0x200, // SABACL1 (lazy corrector) + REB_SABA_CL_2 = 0x201, // SABACL2 (lazy corrector) + REB_SABA_CL_3 = 0x202, // SABACL3 (lazy corrector) + REB_SABA_CL_4 = 0x203, // SABACL4 (lazy corrector) + REB_SABA_10_4 = 0x4, // SABA(10,4), 7 stages + REB_SABA_8_6_4 = 0x5, // SABA(8,6,4), 7 stages + REB_SABA_10_6_4 = 0x6, // SABA(10,6,4), 8 stages, default + REB_SABA_H_8_4_4 = 0x7,// SABAH(8,4,4), 6 stages + REB_SABA_H_8_6_4 = 0x8,// SABAH(8,6,4), 8 stages + REB_SABA_H_10_6_4 = 0x9,// SABAH(10,6,4), 9 stages + } type; // Type of integrator + unsigned int safe_mode; // Combine first and last sub-step + unsigned int is_synchronized; // 1: physical state, 0: needs synchronization + unsigned int keep_unsynchronized; // 1: continue from unsynchronized state after synchronization +}; + +// WHFast Integrator (Rein & Tamayo 2015) +struct reb_integrator_whfast { + unsigned int corrector; // Order of first symplectic corrector: 0 (default - no corrector), 3, 5, 7, 11, 17. + unsigned int corrector2; // 0: no second corrector, 1: use second corrector + enum { + REB_WHFAST_KERNEL_DEFAULT = 0, + REB_WHFAST_KERNEL_MODIFIEDKICK = 1, + REB_WHFAST_KERNEL_COMPOSITION = 2, + REB_WHFAST_KERNEL_LAZY = 3, + } kernel; // Kernel type. See Rein, Tamayo & Brown 2019 for details. + enum { + REB_WHFAST_COORDINATES_JACOBI = 0, // Jacobi coordinates (default) + REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC = 1, // Democratic Heliocentric coordinates + REB_WHFAST_COORDINATES_WHDS = 2, // WHDS coordinates (Hernandez and Dehnen, 2017) + REB_WHFAST_COORDINATES_BARYCENTRIC = 3, // Barycentric coordinates + } coordinates; // Coordinate system used in Hamiltonian splitting + unsigned int recalculate_coordinates_this_timestep; // 1: recalculate coordinates from inertial coordinates + unsigned int safe_mode; // 0: Drift Kick Drift scheme (default), 1: combine first and last sub-step. + unsigned int keep_unsynchronized; // 1: continue from unsynchronized state after synchronization + + // Internal use + struct reb_particle* REB_RESTRICT p_jh; // Jacobi/heliocentric/WHDS coordinates + struct reb_particle* REB_RESTRICT p_temp; // Used for lazy implementer's kernel + unsigned int is_synchronized; + unsigned int N_allocated; + unsigned int N_allocated_tmp; // Used for lazy implementer's kernel + unsigned int timestep_warning; + unsigned int recalculate_coordinates_but_not_synchronized_warning; +}; + +// Special particle struct for WHFast512 +struct reb_particle_avx512{ +#ifdef AVX512 + __m512d m __attribute__ ((aligned (64))); + __m512d x __attribute__ ((aligned (64))); + __m512d y __attribute__ ((aligned (64))); + __m512d z __attribute__ ((aligned (64))); + __m512d vx __attribute__ ((aligned (64))); + __m512d vy __attribute__ ((aligned (64))); + __m512d vz __attribute__ ((aligned (64))); +#else // AVX512 + double m[8]; // dummy for when AVX512 is not available + double x[8]; + double y[8]; + double z[8]; + double vx[8]; + double vy[8]; + double vz[8]; +#endif // AVX512 +}; + +// WHFast512 Integrator (Javaheri & Rein 2023) +struct reb_integrator_whfast512 { + unsigned int gr_potential; // 1: Turn on GR potential of central object, 0 (default): no GR potential + unsigned int N_systems; // Number of systems to be integrator in parallel: 1 (default, up to 8 planets), 2 (up to 4 planets each), 4 (2 planets each) + unsigned int keep_unsynchronized; // 1: continue from unsynchronized state after synchronization + + // Internal use + unsigned int is_synchronized; + unsigned int N_allocated; + unsigned int recalculate_constants; + struct reb_particle_avx512* p_jh; + struct reb_particle p_jh0[4]; +}; + +// Bulirsch Stoer Integrator (roughly follows fortran code by E. Hairer and G. Wanner) +struct reb_integrator_bs { + double eps_abs; // Allowed absolute scalar error. + double eps_rel; // Allowed relative scalar error. + double min_dt; // Minimum timestep + double max_dt; // Maximum teimstep + + // Internal use + struct reb_ode* nbody_ode; // ODE corresponding to N-body system + int* sequence; // stepsize sequence + int* cost_per_step; // overall cost of applying step reduction up to iteration k + 1, in number of calls. + double* cost_per_time_unit; // cost per unit step. + double* optimal_step; // optimal steps for each order. + double* coeff; // extrapolation coefficients. + double dt_proposed; + int first_or_last_step; + int previous_rejected; + int target_iter; + int user_ode_needs_nbody; // Do not set manually. Use needs_nbody in reb_ode instead. +}; + +// Available methods for EOS Integrator +enum REB_EOS_TYPE { + REB_EOS_LF = 0x00, + REB_EOS_LF4 = 0x01, + REB_EOS_LF6 = 0x02, + REB_EOS_LF8 = 0x03, + REB_EOS_LF4_2 = 0x04, + REB_EOS_LF8_6_4= 0x05, + REB_EOS_PLF7_6_4= 0x06, + REB_EOS_PMLF4 = 0x07, + REB_EOS_PMLF6 = 0x08, +}; + +// Available return values for collision resolve functions +enum REB_COLLISION_RESOLVE_OUTCOME { + REB_COLLISION_RESOLVE_OUTCOME_REMOVE_NONE = 0, + REB_COLLISION_RESOLVE_OUTCOME_REMOVE_P1 = 1, + REB_COLLISION_RESOLVE_OUTCOME_REMOVE_P2 = 2, + REB_COLLISION_RESOLVE_OUTCOME_REMOVE_BOTH = 3, +}; + +// Embedded Operator Splitting Integrator (Rein 2020) +struct reb_integrator_eos { + enum REB_EOS_TYPE phi0; // Outer operator splitting method + enum REB_EOS_TYPE phi1; // Inner operator splitting method + unsigned int n; // Number of inner splittings per outer splitting + unsigned int safe_mode; // Combine Kick steps at beginning and end of timestep + + // Internal use + unsigned int is_synchronized; +}; + + +// Integer-based positions and velocities for particles. Used in JANUS integrator. +#define REB_PARTICLE_INT_TYPE int64_t +struct reb_particle_int { + REB_PARTICLE_INT_TYPE x; + REB_PARTICLE_INT_TYPE y; + REB_PARTICLE_INT_TYPE z; + REB_PARTICLE_INT_TYPE vx; + REB_PARTICLE_INT_TYPE vy; + REB_PARTICLE_INT_TYPE vz; +}; + +// Janus integrator (Rein & Tamayo 2018) +struct reb_integrator_janus { + double scale_pos; // Scale of position grid. Default 1e-16 + double scale_vel; // Scale of velocity grid. Default 1e-16 + unsigned int order; // Order: 2 (default), 4, 6, 8, 10 + unsigned int recalculate_integer_coordinates_this_timestep; // Set to 1 if particles have been modified + + // Internal use + struct reb_particle_int* REB_RESTRICT p_int; + unsigned int N_allocated; +}; + +// Possible return values of of rebound_integrate +enum REB_STATUS { + // Any status less than SINGLE_STEP get incremented once every timestep until SINGLE_STEP is reached. + REB_STATUS_SINGLE_STEP = -10, // Performing a single step, then switching to PAUSED. + REB_STATUS_SCREENSHOT_READY=-5,// Screenshot is ready, send back, then finish integration + REB_STATUS_SCREENSHOT = -4, // Pause until visualization has taken a screenshot. + REB_STATUS_PAUSED = -3, // Simulation is paused by visualization. + REB_STATUS_LAST_STEP = -2, // Current timestep is the last one. Needed to ensure that t=tmax exactly. + REB_STATUS_RUNNING = -1, // Simulation is current running, no error occurred. + REB_STATUS_SUCCESS = 0, // Integration finished successfully. + REB_STATUS_GENERIC_ERROR = 1, // A generic error occurred and the integration was not successful. + REB_STATUS_NO_PARTICLES = 2, // The integration ends early because no particles are left in the simulation. + REB_STATUS_ENCOUNTER = 3, // The integration ends early because two particles had a close encounter (see exit_min_distance) + REB_STATUS_ESCAPE = 4, // The integration ends early because a particle escaped (see exit_max_distance) + REB_STATUS_USER = 5, // User caused exit, simulation did not finish successfully. + REB_STATUS_SIGINT = 6, // SIGINT received. Simulation stopped. + REB_STATUS_COLLISION = 7, // The integration ends early because two particles collided. +}; + +// Holds a particle's hash and the particle's index in the particles array. Used for particle_lookup_table. +struct reb_hash_pointer_pair{ + uint32_t hash; + int index; +}; + +// Main REBOUND Simulation structure +// Note: only variables that should be accessed by users are documented here. +struct reb_simulation { + double t; // Current simulation time. Default: 0. + double G; // Gravitational constant. Default: 1. + double softening; // Gravitational softening. Default: 0. + double dt; // Timestep. Default: 0.001. + double dt_last_done; // Last successful timestep. + uint64_t steps_done; // Number of timesteps done. + unsigned int N; // Number of particles (includes variational particles). Default: 0. + int N_var; // Number of variational particles. Default 0. + unsigned int N_var_config; + struct reb_variational_configuration* var_config; // Configuration structs. These contain details on variational particles. + int var_rescale_warning; + int N_active; // Number of active (i.e. not test-particle) particles. Default: -1 (all particles are active). + int testparticle_type; // 0 (default): active particles do not feel test-particles, 1: active particles feel test-particles + int testparticle_hidewarnings; + struct reb_hash_pointer_pair* particle_lookup_table; + int hash_ctr; + int N_lookup; // Number of entries in particle_lookup_table. + int N_allocated_lookup; // Number of lookup table entries allocated. + unsigned int N_allocated; // Current maximum space allocated in the particles array on this node. + struct reb_particle* particles; // Main particle array with active, variational, and test particles. + struct reb_vec3d* gravity_cs; + int N_allocated_gravity_cs; + struct reb_treecell** tree_root; + int tree_needs_update; // Flag to force a tree update (after boundary check) + double opening_angle2; // Opening angle for tree-based gravity calculation. Defaukt 0.25. + enum REB_STATUS status; // Current simulation status + int exact_finish_time; // 1 (default): integrate exactly to the time requested and adjust timestep if needed, 0: may overshoot by one timestep + + unsigned int force_is_velocity_dependent; // 0 (default): force only depends on position, 1: force also depends on velocities + unsigned int gravity_ignore_terms; + double output_timing_last; // Time when reb_simulation_output_timing() was called the last time. + int save_messages; // 0 (default): print messages on screen, 1: ignore messages (used in python interface). + char** messages; // Array of strings containing last messages (only used if save_messages==1). + double exit_max_distance; // Exit simulation if a particle is this far away from the origin. + double exit_min_distance; // Exit simulation if two particles come this close to each other. + double usleep; // Artificially slow down simulations by this many microseconds each timestep. + struct reb_display_settings* display_settings;// Optional. Will overwrite settings for visualization. If NULL, UI will determine settings. + struct reb_display_data* display_data; // Datastructure stores visualization related data. Does not have to be modified by the user. + struct reb_server_data* server_data; // Datastructure stores server related data. Does not have to be modified by the user. + int track_energy_offset; // 0 (default): do not track energy offset due to merging/lost particles, 1: track offset + double energy_offset; // Only used if track_energy_offset = 1 + double walltime; // Cumulative walltime of entire integration. + double walltime_last_step; // Wall time of last step. + double walltime_last_steps; // Average wall time of last step (updated every 0.1s). + double walltime_last_steps_sum; + int walltime_last_steps_N; + uint32_t python_unit_l; // Only used for when working with units in python. + uint32_t python_unit_m; // Only used for when working with units in python. + uint32_t python_unit_t; // Only used for when working with units in python. + + // Simulation domain and ghost boxes + struct reb_vec3d boxsize; // Size of the entire simulation box, root_x*boxsize. Set in box_init(). + double boxsize_max; // Maximum size of the entire box in any direction. Set in box_init(). + double root_size; // Size of a root box. + int N_root; // Total number of root boxes in all directions, N_root_x*N_root_y*N_root_z. Default: 1. Set in box_init(). + int N_root_x; // Number of ghost boxes in x direction. Do not change manually. + int N_root_y; + int N_root_z; + int N_ghost_x; // Number of ghost boxes in x direction. + int N_ghost_y; + int N_ghost_z; + + // MPI Parallelization +#ifdef MPI + int mpi_id; // Unique id of this node (starting at 0). Used for MPI only. + int mpi_num; // Number of MPI nodes. Used for MPI only. + struct reb_particle** particles_send; // Send buffer for particles. There is one buffer per node. + int* N_particles_send; // Current length of particle send buffer. + int* N_particles_send_max; // Maximal length of particle send beffer before realloc() is needed. + struct reb_particle** particles_recv; // Receive buffer for particles. There is one buffer per node. + int* N_particles_recv; // Current length of particle receive buffer. + int* N_particles_recv_max; // Maximal length of particle receive beffer before realloc() is needed. */ + + struct reb_treecell** tree_essential_send; // Send buffer for cells. There is one buffer per node. + int* N_tree_essential_send; // Current length of cell send buffer. + int* N_tree_essential_send_max; // Maximal length of cell send beffer before realloc() is needed. + struct reb_treecell** tree_essential_recv; // Receive buffer for cells. There is one buffer per node. + int* N_tree_essential_recv; // Current length of cell receive buffer. + int* N_tree_essential_recv_max; // Maximal length of cell receive beffer before realloc() is needed. +#endif // MPI + + int collision_resolve_keep_sorted; // 0 (default): may reorder particles during collisions, 1: keep particles sorted. + struct reb_collision* collisions; // Array of current collisions. Do not change manually + int N_allocated_collisions; + unsigned int collisions_N; // Number of collisions found during last collision search. + double minimum_collision_velocity; // Ensure relative velocity during collisions is at least this much (to avoid particles sinking into each other) + double collisions_plog; // Keeping track of momentum transfer in collisions (for ring simulations) + int64_t collisions_log_n; // Cumulative number of collisions in entire simulation. + + // MEGNO Chaos indicator. These variables should not be accessed directly. Use functions provided instead. + int calculate_megno; // Do not change manually. Internal flag that determines if megno is calculated (default=0, but megno_init() sets it to the index of variational particles used for megno) + double megno_Ys; // Running megno sum (internal use) + double megno_Yss; // Running megno sum (internal use) + double megno_cov_Yt; // covariance of MEGNO Y and t + double megno_var_t; // variance of t + double megno_mean_t; // mean of t + double megno_mean_Y; // mean of MEGNO Y + double megno_initial_t; // Time when MENGO was initialized + int64_t megno_n; // number of covariance updates + + unsigned int rand_seed; // seed for random number generator, used by MEGNO and other random number generators in REBOUND. + + // Simulationarchive. These variables should not be accessed directly. Use functions provided instead. + int simulationarchive_version; // Version of the SA binary format (1=original/, 2=incremental) + double simulationarchive_auto_interval; // Current sampling cadence, in code units + double simulationarchive_auto_walltime; // Current sampling cadence, in wall time + uint64_t simulationarchive_auto_step; // Current sampling cadence, in time steps + double simulationarchive_next; // Next output time (simulation tim or wall time, depending on wether auto_interval or auto_walltime is set) + uint64_t simulationarchive_next_step; // Next output step (only used if auto_steps is set) + char* simulationarchive_filename; // Name of output file + + // Available modules in REBOUND + enum { + REB_COLLISION_NONE = 0, // Do not search for collisions (default) + REB_COLLISION_DIRECT = 1, // Direct collision search O(N^2) + REB_COLLISION_TREE = 2, // Tree based collision search O(N log(N)) + REB_COLLISION_LINE = 4, // Direct collision search O(N^2), looks for collisions by assuming a linear path over the last timestep + REB_COLLISION_LINETREE = 5, // Tree-based collision search O(N log(N)), looks for collisions by assuming a linear path over the last timestep + } collision; + enum { + REB_INTEGRATOR_IAS15 = 0, // IAS15 integrator, 15th order, non-symplectic (default) + REB_INTEGRATOR_WHFAST = 1, // WHFast integrator, symplectic, 2nd order, up to 11th order correctors + REB_INTEGRATOR_SEI = 2, // SEI integrator for shearing sheet simulations, symplectic, needs OMEGA variable + REB_INTEGRATOR_LEAPFROG = 4, // LEAPFROG integrator, simple, 2nd order, symplectic + REB_INTEGRATOR_NONE = 7, // Do not integrate anything + REB_INTEGRATOR_JANUS = 8, // Bit-wise reversible JANUS integrator. + REB_INTEGRATOR_MERCURIUS = 9, // MERCURIUS integrator + REB_INTEGRATOR_SABA = 10, // SABA integrator family (Laskar and Robutel 2001) + REB_INTEGRATOR_EOS = 11, // Embedded Operator Splitting (EOS) integrator family (Rein 2019) + REB_INTEGRATOR_BS = 12, // Gragg-Bulirsch-Stoer + // REB_INTEGRATOR_TES = 20, // Used to be Terrestrial Exoplanet Simulator (TES) -- Do not reuse. + REB_INTEGRATOR_WHFAST512 = 21, // WHFast integrator, optimized for AVX512 + REB_INTEGRATOR_TRACE = 25, // TRACE integrator (Lu, Hernandez and Rein 2024) + } integrator; + enum { + REB_BOUNDARY_NONE = 0, // Do not check for anything (default) + REB_BOUNDARY_OPEN = 1, // Open boundary conditions. Removes particles if they leave the box + REB_BOUNDARY_PERIODIC = 2, // Periodic boundary conditions + REB_BOUNDARY_SHEAR = 3, // Shear periodic boundary conditions, needs OMEGA variable + } boundary; + enum { + REB_GRAVITY_NONE = 0, // Do not calculate graviational forces + REB_GRAVITY_BASIC = 1, // Basic O(N^2) direct summation algorithm, choose this for shearing sheet and periodic boundary conditions + REB_GRAVITY_COMPENSATED = 2, // Direct summation algorithm O(N^2) but with compensated summation, slightly slower than BASIC but more accurate + REB_GRAVITY_TREE = 3, // Use the tree to calculate gravity, O(N log(N)), set opening_angle2 to adjust accuracy. + REB_GRAVITY_MERCURIUS = 4, // Special gravity routine only for MERCURIUS + REB_GRAVITY_JACOBI = 5, // Special gravity routine which includes the Jacobi terms for WH integrators + REB_GRAVITY_TRACE = 6, // Special gravity routine only for TRACE + } gravity; + + // Datastructures for integrators + struct reb_integrator_sei ri_sei; // The SEI struct + struct reb_integrator_leapfrog ri_leapfrog; // The Leapfrog struct + struct reb_integrator_whfast ri_whfast; // The WHFast struct + struct reb_integrator_whfast512 ri_whfast512; // The WHFast512 struct + struct reb_integrator_saba ri_saba; // The SABA struct + struct reb_integrator_ias15 ri_ias15; // The IAS15 struct + struct reb_integrator_mercurius ri_mercurius; // The MERCURIUS struct + struct reb_integrator_trace ri_trace; // The TRACE struct + struct reb_integrator_janus ri_janus; // The JANUS struct + struct reb_integrator_eos ri_eos; // The EOS struct + struct reb_integrator_bs ri_bs; // The BS struct + + // ODEs. Do not access these variables directly. Use functions provided instead. + struct reb_ode** odes; // all ode sets (includes nbody if BS is set as integrator) + int N_odes; // number of ode sets + int N_allocated_odes; + int ode_warnings; + + // Callback functions + void (*additional_forces) (struct reb_simulation* const r); // Implement any additional (non-gravitational) forces here. + void (*pre_timestep_modifications) (struct reb_simulation* const r); // Executed just before eaach timestep. Used by REBOUNDx. + void (*post_timestep_modifications) (struct reb_simulation* const r); // Executed just after each timestep. Used by REBOUNDx. + void (*heartbeat) (struct reb_simulation* r); // Executed at each timestep once. Use this to do extra output/work during a simulation. + int (*key_callback) (struct reb_simulation* r, int key); // Used when SERVER or OPENGL visualization is on. Gets called after completed timestep and if a key has been pressed. Return 1 if you want to skip default key commands. + double (*coefficient_of_restitution) (const struct reb_simulation* const r, double v); // Allows for a velocity dependent coefficient of restitution (used for ring simulations) + enum REB_COLLISION_RESOLVE_OUTCOME (*collision_resolve) (struct reb_simulation* const r, struct reb_collision); // Determines what happens when two particles collide. + void (*free_particle_ap) (struct reb_particle* p); // Used by REBOUNDx. + void (*extras_cleanup) (struct reb_simulation* r); // Used by REBOUNDx. + void* extras; // Pointer to link to any additional (optional) libraries, e.g., REBOUNDx, ASSIST. +}; + + +////////////////////////////////////////////////////////////////////////////////////////////////////////// +// REBOUND API Functions +////////////////////////////////////////////////////////////////////////////////////////////////////////// + +// Simulation life cycle + +// Allocates memory for reb_simulation and initializes it. +DLLEXPORT struct reb_simulation* reb_simulation_create(void); +// Create a simulation object from a file. Set snapshot=-1 to load last snapshot. +DLLEXPORT struct reb_simulation* reb_simulation_create_from_file(char* filename, int64_t snapshot); +// Create a simulation object from a simulationarchive. Set snapshot=-1 to load last snapshot. +DLLEXPORT struct reb_simulation* reb_simulation_create_from_simulationarchive(struct reb_simulationarchive* sa, int64_t snapshot); +// Free simulation and all associated memory. +DLLEXPORT void reb_simulation_free(struct reb_simulation* const r); +// Only free memory in pointers of a simulation, but not the simulation itself. +DLLEXPORT void reb_simulation_free_pointers(struct reb_simulation* const r); +// Reset function pointers to default (NULL) values. Returns 1 if one ore more function pointers were not NULL before. +DLLEXPORT int reb_simulation_reset_function_pointers(struct reb_simulation* const r); +// Reset all integrator variables. +DLLEXPORT void reb_simulation_reset_integrator(struct reb_simulation* r); +// Make a deep copy of simulation. +DLLEXPORT struct reb_simulation* reb_simulation_copy(struct reb_simulation* r); +// Compare r1 to r2. If exactly equal then 0 is returned, otherwise 1. If output_option=1, then difference is also printed on screen. +DLLEXPORT int reb_simulation_diff(struct reb_simulation* r1, struct reb_simulation* r2, int output_option); +// Setup simulation domain and root boxes. This needs to be called before particles are added if the tree code is used. +DLLEXPORT void reb_simulation_configure_box(struct reb_simulation* const r, const double boxsize, const int N_root_x, const int N_root_y, const int N_root_z); // Configure the boundary/root box + +// Start webserver for visualization. Returns 0 on success. +DLLEXPORT int reb_simulation_start_server(struct reb_simulation* r, int port); +// Stop webserver. +DLLEXPORT void reb_simulation_stop_server(struct reb_simulation* r); + +// Errors, warnings + +// For fatal errors only. Print out an error message, then exit immediately and kill the process. Does no clean up memory. +DLLEXPORT void reb_exit(const char* const msg); +// Stop current integration in a nice way. Can be called from within heartbeat function. +DLLEXPORT void reb_simulation_stop(struct reb_simulation* const r); +// Print or store a warning message, then continue. +DLLEXPORT void reb_simulation_warning(struct reb_simulation* const r, const char* const msg); +// Print or store an error message, then continue. +DLLEXPORT void reb_simulation_error(struct reb_simulation* const r, const char* const msg); + + +// Output functions + +// Write the simulation to file (simulationarchive format). Appends a snapshot if file exists. +DLLEXPORT void reb_simulation_save_to_file(struct reb_simulation* r, const char* filename); +// Schedule regular outputs to a file based on simulation time. +DLLEXPORT void reb_simulation_save_to_file_interval(struct reb_simulation* const r, const char* filename, double interval); +// Schedule regular outputs to a file based on wall time. +DLLEXPORT void reb_simulation_save_to_file_walltime(struct reb_simulation* const r, const char* filename, double walltime); +// Schedule regular outputs to a file based on number of steps taken. +DLLEXPORT void reb_simulation_save_to_file_step(struct reb_simulation* const r, const char* filename, uint64_t step); +// Write the simulation to a memory buffer (simulationarchive format). +DLLEXPORT void reb_simulation_save_to_stream(struct reb_simulation* r, char** bufp, size_t* sizep); +// Output timing data to file. Appends file if it exists. +DLLEXPORT void reb_simulation_output_timing(struct reb_simulation* r, const double tmax); +// Output orbits to file. Appends file if it exists. +DLLEXPORT void reb_simulation_output_orbits(struct reb_simulation* r, char* filename); +// Output cartesian coordinates to file. Appends file if it exists. +DLLEXPORT void reb_simulation_output_ascii(struct reb_simulation* r, char* filename); +// Output velocity dispersion tensor to file. Used for ring simulations. Appends file if it exists. +DLLEXPORT void reb_simulation_output_velocity_dispersion(struct reb_simulation* r, char* filename); +// Function to allow for periodic outputs in heartbeat function. See examples on how to use it. +DLLEXPORT int reb_simulation_output_check(struct reb_simulation* r, double interval); +// Write a screenshot of the current simulation to a file. Requires that a server was started with reb_simulation_start_server() and one client web browser is connected. +// Returns 1 if successful, otherwise. +DLLEXPORT int reb_simulation_output_screenshot(struct reb_simulation* r, const char* filename); + + +// Timestepping + +// Advance simulation by 1 timestep. +DLLEXPORT void reb_simulation_step(struct reb_simulation* const r); +// Advance simulation by N_steps timesteps. +DLLEXPORT void reb_simulation_steps(struct reb_simulation* const r, unsigned int N_steps); +// Integrate simulation to at least time tmax (see exact_finish_time). +DLLEXPORT enum REB_STATUS reb_simulation_integrate(struct reb_simulation* const r, double tmax); +// Synchronize simulation if safe_mode is turned off by integrator to get physical coordinates. +DLLEXPORT void reb_simulation_synchronize(struct reb_simulation* r); + + +// Functions to operate on simulations + +// Move the simulation to the heliocentric frame (particle with index 0 will be at the origin and at rest after calling this function). +DLLEXPORT void reb_simulation_move_to_hel(struct reb_simulation* const r); +// Move the simultion to the center of mass frame (the center of mass will be at the origin and at rest after calling this function). +DLLEXPORT void reb_simulation_move_to_com(struct reb_simulation* const r); +// Multiply x,y,z,vx,vy,vz of each particle in r with given scalars. +DLLEXPORT void reb_simulation_imul(struct reb_simulation* r, double scalar_pos, double scalar_vel); +// Add cartesian components of each particle of r2 to cartesian components in r. r2 and r must have same number of particles. +DLLEXPORT int reb_simulation_iadd(struct reb_simulation* r, struct reb_simulation* r2); +// Same as above but substract r2 from r component wise. +DLLEXPORT int reb_simulation_isub(struct reb_simulation* r, struct reb_simulation* r2); +// Finds the two largest particles in the simulation. *p1 and *p2 will be set to the indicies of the largest particles. +DLLEXPORT void reb_simulation_two_largest_particles(struct reb_simulation* r, int* p1, int* p2); + + +// Diangnostic functions + +// Return the sum of potential and kinetic energy +DLLEXPORT double reb_simulation_energy(struct reb_simulation* const r); +// Returns the angular momentum. +DLLEXPORT struct reb_vec3d reb_simulation_angular_momentum(const struct reb_simulation* const r); +// Returns the center of mass of a simulation. +DLLEXPORT struct reb_particle reb_simulation_com(struct reb_simulation* r); +// Returns the center of mass of two particles. +DLLEXPORT struct reb_particle reb_particle_com_of_pair(struct reb_particle p1, struct reb_particle p2); +// Returns the center of mass of particles in the simulation within a given range. +DLLEXPORT struct reb_particle reb_simulation_com_range(struct reb_simulation* r, int first, int last); +// Returns the gravitational timescale as calculated in Pham, Rein, Spiegel (2023). Useful for setting the initial IAS15 timestep. +DLLEXPORT double reb_integrator_ias15_timescale(struct reb_simulation* r); + +// Functions to add and initialize particles + +// Use this function to add particle pt to simulation r. +DLLEXPORT void reb_simulation_add(struct reb_simulation* const r, struct reb_particle pt); +// Use this function to add a particle to a simulation using orbital parameters or cartesian coordinates. See examples on usage. +DLLEXPORT void reb_simulation_add_fmt(struct reb_simulation* r, const char* fmt, ...); +// Same as reb_simulation_add_fmt() but returns the particle instead of adding it to the simulation. Still need simulation for G, center of mass, etc. +DLLEXPORT struct reb_particle reb_particle_from_fmt(struct reb_simulation* r, const char* fmt, ...); +// This function sets up a Plummer sphere, N=number of particles, M=total mass, R=characteristic radius. Particles get added to simulation. +DLLEXPORT void reb_simulation_add_plummer(struct reb_simulation* r, int _N, double M, double R); +// Returns a particle given a set of orbital parameters. Also sets err to error code if initialization failed. +DLLEXPORT struct reb_particle reb_particle_from_orbit_err(double G, struct reb_particle primary, double m, double a, double e, double i, double Omega, double omega, double f, int* err); +// Same as above but without error code. +DLLEXPORT struct reb_particle reb_particle_from_orbit(double G, struct reb_particle primary, double m, double a, double e, double i, double Omega, double omega, double f); +// Returns a particle given a set of Pal orbital parameters. +DLLEXPORT struct reb_particle reb_particle_from_pal(double G, struct reb_particle primary, double m, double a, double lambda, double k, double h, double ix, double iy); +// Returns a reb_particle structure with fields/hash/ptrs initialized to nan/0/NULL. +DLLEXPORT struct reb_particle reb_particle_nan(void); + + +// Functions to access, remove, and operate on particles + +// Remove all particles +DLLEXPORT void reb_simulation_remove_all_particles(struct reb_simulation* const r); +// Remove one particle. keep_sorted flag can be set to 1 to maintain order of remaining particles. +DLLEXPORT int reb_simulation_remove_particle(struct reb_simulation* const r, int index, int keep_sorted); +// Remove one particle. Use hash to find particle. +DLLEXPORT int reb_simulation_remove_particle_by_hash(struct reb_simulation* const r, uint32_t hash, int keep_sorted); +// Returns pointer to particle with given hash. +DLLEXPORT struct reb_particle* reb_simulation_particle_by_hash(struct reb_simulation* const r, uint32_t hash); +// Same as above but searches on all nodes if MPI is enabled. Returns copy instead of a pointer because particle might be on a different node. +DLLEXPORT struct reb_particle reb_simulation_particle_by_hash_mpi(struct reb_simulation* const r, uint32_t hash); +// Returns a particle's index in the simulation given a pointer to the particle. Returns -1 if not found. +DLLEXPORT int reb_simulation_particle_index(struct reb_particle* p); +// Subtract particle p2 from p1 +DLLEXPORT void reb_particle_isub(struct reb_particle* p1, struct reb_particle* p2); +// Add particle p2 to p1 +DLLEXPORT void reb_particle_iadd(struct reb_particle* p1, struct reb_particle* p2); +// Multiply x,y,z,vx,vy,vz,m of p1 with given value. +DLLEXPORT void reb_particle_imul(struct reb_particle* p1, double value); +// Return the distance between particle p1 and p2 +DLLEXPORT double reb_particle_distance(struct reb_particle* p1, struct reb_particle* p2); +// Compares two particles, ignoring pointers. Returns 1 if particles differ, 0 if they are exactly equal. +DLLEXPORT int reb_particle_diff(struct reb_particle p1, struct reb_particle p2); + + +// Chaos indicators + +// Turn on MEGNO/Lyapunov calculation. Uses random seen in simulation. +DLLEXPORT void reb_simulation_init_megno(struct reb_simulation* const r); +// Same as above but used given random seend. Useful to reproduce same results every time. +DLLEXPORT void reb_simulation_init_megno_seed(struct reb_simulation* const r, unsigned int seed); +// Returns the current MEGNO value, +DLLEXPORT double reb_simulation_megno(struct reb_simulation* r); +// Returns the largest Lyapunov characteristic number (LCN). +DLLEXPORT double reb_simulation_lyapunov(struct reb_simulation* r); + + +// Built in mercurius switching functions + +DLLEXPORT double reb_integrator_mercurius_L_mercury(const struct reb_simulation* const r, double d, double dcrit); // default +DLLEXPORT double reb_integrator_mercurius_L_infinity(const struct reb_simulation* const r, double d, double dcrit); +DLLEXPORT double reb_integrator_mercurius_L_C4(const struct reb_simulation* const r, double d, double dcrit); +DLLEXPORT double reb_integrator_mercurius_L_C5(const struct reb_simulation* const r, double d, double dcrit); + +// Built in trace switching functions + +DLLEXPORT int reb_integrator_trace_switch_peri_default(struct reb_simulation* const r, const unsigned int j); +DLLEXPORT int reb_integrator_trace_switch_peri_none(struct reb_simulation* const r, const unsigned int j); +DLLEXPORT int reb_integrator_trace_switch_default(struct reb_simulation* const r, const unsigned int i, const unsigned int j); + + +// Built in collision resolve functions + +DLLEXPORT enum REB_COLLISION_RESOLVE_OUTCOME reb_collision_resolve_halt(struct reb_simulation* const r, struct reb_collision c); // halts a simulation when a collision occurs +DLLEXPORT enum REB_COLLISION_RESOLVE_OUTCOME reb_collision_resolve_hardsphere(struct reb_simulation* const r, struct reb_collision c); +DLLEXPORT enum REB_COLLISION_RESOLVE_OUTCOME reb_collision_resolve_merge(struct reb_simulation* const r, struct reb_collision c); + + +// Random sampling - These functions only use the simulation object for a seed. If r=NULL time and PID are used as a seed. + +DLLEXPORT double reb_random_uniform(struct reb_simulation* r, double min, double max); +DLLEXPORT double reb_random_powerlaw(struct reb_simulation* r, double min, double max, double slope); +DLLEXPORT double reb_random_normal(struct reb_simulation* r, double variance); +DLLEXPORT double reb_random_rayleigh(struct reb_simulation* r, double sigma); + + +// Miscellaneous functions + +// Calculate a hash value for a string. +DLLEXPORT uint32_t reb_hash(const char* str); +// Returns the angle f wrapped in the interval from 0 to 2*pi +DLLEXPORT double reb_mod2pi(double f); +// True anomaly for a given eccentricity and mean anomaly +DLLEXPORT double reb_M_to_f(double e, double M); +// True anomaly for a given eccentricity and eccentric anomaly +DLLEXPORT double reb_E_to_f(double e, double M); +// Eccentric anomaly for a given eccentricity and mean anomaly +DLLEXPORT double reb_M_to_E(double e, double M); + + +// Simulationarchive + +// Simulationarchive structure +struct reb_simulationarchive{ + FILE* inf; // File pointer (will be kept open) + char* filename; // Filename of open file. This is NULL if this is a memory-mapped file (using fmemopen) + int version; // Simulationarchive version + int reb_version_major; // Major REBOUND Version used to save SA + int reb_version_minor; // Minor REBOUND Version used to save SA + int reb_version_patch; // Patch REBOUND Version used to save SA + double auto_interval; // Interval setting used to create SA (if used) + double auto_walltime; // Walltime setting used to create SA (if used) + uint64_t auto_step; // Steps in-between SA snapshots (if used) + int64_t nblobs; // Total number of snapshots (including initial binary) + uint64_t* offset; // Index of offsets in file (length nblobs) + double* t; // Index of simulation times in file (length nblobs) +}; +// Allocate memory for a simulationarchive and initialize it with a file. +DLLEXPORT struct reb_simulationarchive* reb_simulationarchive_create_from_file(const char* filename); +// Free memory allocated by simulationarchive +DLLEXPORT void reb_simulationarchive_free(struct reb_simulationarchive* sa); + + +// Orbit calculation + +// Structure containing orbital elements for Keplerian orbits. +struct reb_orbit { + double d; // Radial distance from central object + double v; // velocity relative to central object's velocity + double h; // Specific angular momentum + double P; // Orbital period + double n; // Mean motion + double a; // Semi-major axis + double e; // Eccentricity + double inc; // Inclination + double Omega; // Longitude of ascending node + double omega; // Argument of pericenter + double pomega; // Longitude of pericenter + double f; // True anomaly + double M; // Mean anomaly + double l; // Mean Longitude + double theta; // True Longitude + double T; // Time of pericenter passage + double rhill; // Circular Hill radius + double pal_h; // Cartesian component of the eccentricity, h = e*sin(pomega) + double pal_k; // Cartesian component of the eccentricity, k = e*cos(pomega) + double pal_ix; // Cartesian component of the inclination, ix = 2*sin(i/2)*cos(Omega) + double pal_iy; // Cartesian component of the inclination, ix = 2*sin(i/2)*sin(Omega) + struct reb_vec3d hvec; // specific angular momentum vector + struct reb_vec3d evec; // eccentricity vector (mag=ecc, points toward peri) +}; +// Calculates all orbital elements of the particle p, assuming gravitational constant G and the given primary. +DLLEXPORT struct reb_orbit reb_orbit_from_particle(double G, struct reb_particle p, struct reb_particle primary); + + +// ODE functions + +// Defines one Ordinary Differential Equation (ODE) so that it can be integrated with REBOUND +struct reb_ode{ + unsigned int length; // number of components / dimenion + double* y; // Pointer to current state + unsigned int needs_nbody; // 1: ODE needs N-body particles to calculate RHS + void* ref; // Optional pointer to any additional data needed for derivative calculation + void (*derivatives)(struct reb_ode* const ode, double* const yDot, const double* const y, const double t); // Function pointer to right hand side of ODE + void (*getscale)(struct reb_ode* const ode, const double* const y0, const double* const y1); // Function pointer, sets scales for components (optional) + void (*pre_timestep)(struct reb_ode* const ode, const double* const y0); // Function pointer, gets called just before the ODE integration (optional) + void (*post_timestep)(struct reb_ode* const ode, const double* const y0); // Function pointer, gets called just after the ODE integration (optional) + + // Internal use + unsigned int N_allocated; + double* scale; + double* C; // Temporary internal array (extrapolation) + double** D; // Temporary internal array (extrapolation) + double* y1; // Temporary internal array (state during the step) + double* y0Dot; // Temporary internal array (derivatives at beginning of step) + double* yDot; // Temporary internal array (derivatives) + double* yTmp; // Temporary internal array (midpoint method) + struct reb_simulation* r; // weak reference to main simulation +}; +// Allocate memory for an ODE struct, initialize it, and attach it to the simulation. See examples for details on usage. +DLLEXPORT struct reb_ode* reb_ode_create(struct reb_simulation* r, unsigned int length); +// Free an ODE struct. +DLLEXPORT void reb_ode_free(struct reb_ode* ode); + + +// Variational equations + +// Struct describing the properties of a set of variational equations. +// If testparticle is set to -1, then it is assumed that all particles are massive +// and all particles influence all other particles. If testparticle is >=0 then +// the particle with that index is assumed to be a testparticle, i.e. it does not +// influence other particles. For second order variational equation, index_1st_order_a/b +// is the index in the particle array that corresponds to the 1st order variational +// equations. +struct reb_variational_configuration{ + struct reb_simulation* sim; // Reference to the simulation. + int order; // Order of the variational equation. 1 or 2. + int index; // Index of the first variational particle in the particles array. + int testparticle; // Is this variational configuration describe a test particle? -1 if not. + int index_1st_order_a; // Used for 2nd order variational particles only: Index of the first order variational particle in the particles array. + int index_1st_order_b; // Used for 2nd order variational particles only: Index of the first order variational particle in the particles array. + double lrescale; // Accumulates the logarithm of rescalings +}; + +// Add and initialize a set of first order variational particles +// If testparticle is >= 0, then only one variational particle (the test particle) will be added. +// If testparticle is -1, one variational particle for each real particle will be added. +// Returns the index of the first variational particle added +DLLEXPORT int reb_simulation_add_variation_1st_order(struct reb_simulation* const r, int testparticle); + +// Add and initialize a set of second order variational particles +// Note: a set of second order variational particles requires two sets of first order variational equations. +// If testparticle is >= 0, then only one variational particle (the test particle) will be added. +// If testparticle is -1, one variational particle for each real particle will be added. +// index_1st_order_a is the index of the corresponding first variational particles. +// index_1st_order_b is the index of the corresponding first variational particles. +// Returns the index of the first variational particle added +DLLEXPORT int reb_simulation_add_variation_2nd_order(struct reb_simulation* const r, int testparticle, int index_1st_order_a, int index_1st_order_b); + +// Rescale all sets of variational particles if their size gets too large (>1e100). +// This can prevent an overflow in floating point numbers. The logarithm of the rescaling +// factor is stored in the reb_variational_configuration's lrescale variable. +// This function is called automatically every timestep. To avoid automatic rescaling, +// set the reb_variational_configuration's lrescale variable to -1. +// For this function to work, the positions and velocities needs to be synchronized. +// A warning is presented if the integrator is not synchronized. +DLLEXPORT void reb_simulation_rescale_var(struct reb_simulation* const r); + +// These functions calculates the first/second derivative of a Keplerian orbit. +// Derivatives of Keplerian orbits are required for variational equations, in particular +// for optimization problems. +// The derivative is calculated with respect to the variables that appear in the function name. +// One variable implies that a first derivative is returned, two variables implies that a second +// derivate is returned. Classical orbital parameters and those introduced by Pal (2009) are +// supported. Pal coordinates have the advantage of being analytical (i.e. infinite differentiable). +// Classical orbital parameters may have singularities, for example when e is close to 0. +// Note that derivatives with respect to Cartesian coordinates are trivial and therefore not +// implemented as seperate functions. +// The following variables are supported: a, e, inc, f, omega, Omega, h, k, ix, iy and m (mass). +// The functions return the derivative as a particle structre. Each structure element is a derivative. +// The paramter po is the original particle for which the derivative is to be calculated. +DLLEXPORT struct reb_particle reb_particle_derivative_lambda(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_h(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_k(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_k_k(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_h_h(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_lambda_lambda(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_k_lambda(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_h_lambda(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_k_h(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_a(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_ix(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_ix_ix(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_iy_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_k_ix(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_h_ix(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_lambda_ix(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_lambda_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_h_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_k_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_ix_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_ix(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_lambda(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_h(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_k(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_a(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_lambda(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_h(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_k(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_ix(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_m(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_e(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_e_e(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_inc(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_inc_inc(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_Omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_Omega_Omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_omega_omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_f(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_f_f(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_e(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_inc(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_Omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_f(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_e_inc(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_e_Omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_e_omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_e_f(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_e(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_inc_Omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_inc_omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_inc_f(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_inc(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_omega_Omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_Omega_f(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_Omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_omega_f(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_f(double G, struct reb_particle primary, struct reb_particle po); + +// Functions for Frequency Analysis, MFT, FMFT +enum REB_FREQUENCY_ANALYSIS_TYPE { + REB_FREQUENCY_ANALYSIS_MFT = 0, + REB_FREQUENCY_ANALYSIS_FMFT = 1, + REB_FREQUENCY_ANALYSIS_FMFT2 = 2, +}; +// Returns 0 on success +DLLEXPORT int reb_frequency_analysis(double *output, int nfreq, double minfreq, double maxfreq, enum REB_FREQUENCY_ANALYSIS_TYPE type, double *input, unsigned long ndata); + +// Functions to convert between coordinate systems + +// Rotations +DLLEXPORT struct reb_rotation reb_rotation_inverse(const struct reb_rotation q); +DLLEXPORT struct reb_rotation reb_rotation_mul(const struct reb_rotation p, const struct reb_rotation q); + +DLLEXPORT struct reb_rotation reb_rotation_identity(); +DLLEXPORT struct reb_rotation reb_rotation_normalize(const struct reb_rotation q); +DLLEXPORT struct reb_rotation reb_rotation_conjugate(const struct reb_rotation q); +DLLEXPORT struct reb_rotation reb_rotation_init_angle_axis(const double angle, struct reb_vec3d axis); +DLLEXPORT struct reb_rotation reb_rotation_init_from_to(struct reb_vec3d from, struct reb_vec3d to); +DLLEXPORT struct reb_rotation reb_rotation_init_orbit(const double Omega, const double inc, const double omega); +DLLEXPORT struct reb_rotation reb_rotation_init_to_new_axes(struct reb_vec3d newz, struct reb_vec3d newx); +DLLEXPORT struct reb_rotation reb_rotation_slerp(struct reb_rotation q1, struct reb_rotation q2, double t); + +// transformations to/from vec3d +DLLEXPORT struct reb_vec3d reb_tools_spherical_to_xyz(const double mag, const double theta, const double phi); +DLLEXPORT void reb_tools_xyz_to_spherical(struct reb_vec3d const xyz, double* mag, double* theta, double* phi); + +DLLEXPORT struct reb_vec3d reb_vec3d_mul(const struct reb_vec3d v, const double s); +DLLEXPORT struct reb_vec3d reb_vec3d_add(const struct reb_vec3d v, const struct reb_vec3d w); +DLLEXPORT double reb_vec3d_length_squared(const struct reb_vec3d v); +DLLEXPORT double reb_vec3d_dot(const struct reb_vec3d a, const struct reb_vec3d b); +DLLEXPORT struct reb_vec3d reb_vec3d_cross(const struct reb_vec3d a, const struct reb_vec3d b); +DLLEXPORT struct reb_vec3d reb_vec3d_normalize(const struct reb_vec3d v); +DLLEXPORT struct reb_vec3d reb_vec3d_rotate(struct reb_vec3d v, const struct reb_rotation q); +DLLEXPORT void reb_vec3d_irotate(struct reb_vec3d *v, const struct reb_rotation q); +DLLEXPORT void reb_particle_irotate(struct reb_particle* p, const struct reb_rotation q); +DLLEXPORT void reb_simulation_irotate(struct reb_simulation* const sim, const struct reb_rotation q); + +DLLEXPORT void reb_rotation_to_orbital(struct reb_rotation q, double* Omega, double* inc, double* omega); + +#ifdef MPI +void reb_mpi_init(struct reb_simulation* const r); +void reb_mpi_finalize(struct reb_simulation* const r); +#endif // MPI + +#ifdef OPENMP +// Wrapper method to set number of OpenMP threads from python. +DLLEXPORT void reb_omp_set_num_threads(int num_threads); +#endif // OPENMP + +// The following stuctures are related to OpenGL/WebGL visualization. Nothing to be changed by the user. + +struct reb_orbit_opengl { + float x,y,z; + float a, e, f; + float omega, Omega, inc; +}; + +struct reb_vec3df { + float x,y,z; +}; + +struct reb_vec4df { + float x,y,z,r; +}; + +struct reb_server_data { + struct reb_simulation* r; + void* screenshot; // Screenshot data received by server (decoded) + size_t N_screenshot; // Size of decoded screenshot data + enum REB_STATUS status_before_screenshot; + int port; + int need_copy; + int ready; +#ifdef SERVER + int mutex_locked_by_integrate; // Let's heartbeat find out if it is being called while the mutex is locked. +#ifdef _WIN32 + SOCKET socket; + HANDLE mutex; // Mutex to allow for copying +#else // _WIN32 + int socket; + pthread_mutex_t mutex; // Mutex to allow for copying + pthread_t server_thread; +#endif // _WIN32 +#endif // SERVER +}; + +struct reb_display_settings { + struct reb_mat4df view; + int spheres; // Switches between point sprite and real spheres. + int pause; // Pauses visualization, but keep simulation running + int wire; // Shows/hides orbit wires. + unsigned int breadcrumbs; // Number of past particle positions. + int onscreentext; // Shows/hides onscreen text. + int onscreenhelp; // Shows/hides onscreen help. + int multisample; // Turn off/on multisampling. + int ghostboxes; // Shows/hides ghost boxes. + int reference; // reb_particle used as a reference for centering. +}; + +struct reb_display_data { + struct reb_display_settings s; + struct reb_simulation* r; + struct reb_simulation* r_copy; + void* screenshot; // Screenshot data to be sent to server + struct reb_vec4df* particle_data; + struct reb_orbit_opengl* orbit_data; + uint64_t N_allocated; + double mouse_x; + double mouse_y; + double retina; + int take_one_screenshot; +#ifndef _WIN32 + int need_copy; + pthread_mutex_t mutex; // Mutex to allow for copying + pthread_t compute_thread; +#endif // _WIN32 +#ifdef __EMSCRIPTEN__ + int connection_status; +#endif + uint64_t breadcrumb_last_steps_done; + unsigned int breadcrumb_N_allocated; + unsigned int breadcrumb_current_index; + unsigned int mouse_action; + unsigned int key_mods; + unsigned int particle_buffer; + unsigned int particle_buffer_current; + unsigned int orbit_buffer; + unsigned int orbit_buffer_current; + void* window; + struct { + unsigned int texture; + unsigned int program; + unsigned int vao; + unsigned int pos_location; + unsigned int ypos_location; + unsigned int scale_location; + unsigned int aspect_location; + unsigned int screen_aspect_location; + unsigned int rotation_location; + unsigned int texture_location; + unsigned int charval_buffer; + } shader_simplefont; + struct { + unsigned int program; + unsigned int box_vao; + unsigned int cross_vao; + unsigned int ruler_vao; + unsigned int mvp_location; + unsigned int color_location; + } shader_box; + struct { + unsigned int mvp_location; + unsigned int color_location; + unsigned int current_index_location; + unsigned int breadcrumb_N_location; + unsigned int N_real_location; + unsigned int program; + unsigned int particle_vao; + } shader_point; + struct { + unsigned int mvp_location; + unsigned int program; + unsigned int particle_vao_current; + unsigned int particle_vao; + } shader_sphere; + struct { + unsigned int mvp_location; + unsigned int current_index_location; + unsigned int breadcrumb_N_location; + unsigned int N_real_location; + unsigned int vertex_count_location; + unsigned int program; + unsigned int particle_vao_current; + unsigned int particle_vao; + unsigned int vertex_count; + } shader_orbit; + struct { + unsigned int mvp_location; + unsigned int vertex_count_location; + unsigned int program; + unsigned int particle_vao_current; + unsigned int vertex_count; + } shader_plane; +}; + +// Display settings initialization +DLLEXPORT void reb_simulation_add_display_settings(struct reb_simulation* r); + +// Matrix methods +DLLEXPORT struct reb_mat4df reb_mat4df_identity(); +DLLEXPORT struct reb_mat4df reb_mat4df_scale(struct reb_mat4df m, float x, float y, float z); +DLLEXPORT void reb_mat4df_print(struct reb_mat4df m); +DLLEXPORT int reb_mat4df_eq(struct reb_mat4df A, struct reb_mat4df B); +DLLEXPORT struct reb_vec3df reb_mat4df_get_scale(struct reb_mat4df m); +DLLEXPORT struct reb_mat4df reb_mat4df_translate(struct reb_mat4df m, float x, float y, float z); +DLLEXPORT struct reb_mat4df reb_mat4df_multiply(struct reb_mat4df A, struct reb_mat4df B); +DLLEXPORT struct reb_mat4df reb_rotation_to_mat4df(struct reb_rotation A); +DLLEXPORT struct reb_mat4df reb_mat4df_ortho(float l, float r, float b, float t, float n, float f); + + +// Declarations and functions needed internally or by python interface only. +void reb_sigint_handler(int signum); + +// Used in the binary file to identify data blobs +struct reb_simulationarchive_blob { + int32_t index; // Index of previous blob (binary file is 0, first blob is 1) + int32_t offset_prev; // Offset to beginning of previous blob (size of previous blob). + int32_t offset_next; // Offset to end of following blob (size of following blob). +}; +// Binary field descriptors are used to identify data blobs in simulationarchives. +struct reb_binary_field_descriptor { + uint32_t type; // Unique id for each field. Should not change between versions. Ids should not be reused. + enum { + REB_DOUBLE = 0, + REB_INT = 1, + REB_UINT = 2, // Same as UINT32 + REB_UINT32 = 3, + REB_INT64 = 4, + REB_UINT64 = 5, + // REB_ULONGLONG = 6, // No longer used. Using explicit lengths instead. + REB_VEC3D = 7, + REB_PARTICLE = 8, + REB_POINTER = 9, + REB_POINTER_ALIGNED = 10, // memory aligned to 64 bit boundary for AVX512 + REB_DP7 = 11, // Special datatype for IAS15 + REB_OTHER = 12, // Fields that need special treatment during input and/or output + REB_FIELD_END = 13, // Special type to indicate end of blob + REB_FIELD_NOT_FOUND = 14, // Special type used to throw error messages + REB_PARTICLE4 = 15, // Used for WHFast512 + REB_POINTER_FIXED_SIZE = 16, // A pointer with a fixed size. + } dtype; + char name[1024]; + size_t offset; // Offset of the storage location relative to the beginning of reb_simulation + size_t offset_N; // Offset of the storage location for the size relative to the beginning of reb_simulation + size_t element_size; // Size in bytes of each element (only used for pointers, dp7, etc) +}; +DLLEXPORT extern const struct reb_binary_field_descriptor reb_binary_field_descriptor_list[]; // List of blobs. Implemented in output.c +DLLEXPORT struct reb_binary_field_descriptor reb_binary_field_descriptor_for_type(int type); +DLLEXPORT struct reb_binary_field_descriptor reb_binary_field_descriptor_for_name(const char* name); + +// Possible errors that might occur during binary file reading. +enum reb_simulation_binary_error_codes { + REB_SIMULATION_BINARY_WARNING_NONE = 0, + REB_SIMULATION_BINARY_ERROR_NOFILE = 1, + REB_SIMULATION_BINARY_WARNING_VERSION = 2, + REB_SIMULATION_BINARY_WARNING_POINTERS = 4, + REB_SIMULATION_BINARY_WARNING_PARTICLES = 8, + REB_SIMULATION_BINARY_ERROR_FILENOTOPEN = 16, + REB_SIMULATION_BINARY_ERROR_OUTOFRANGE = 32, + REB_SIMULATION_BINARY_ERROR_SEEK = 64, + REB_SIMULATION_BINARY_WARNING_FIELD_UNKOWN = 128, + REB_SIMULATION_BINARY_ERROR_INTEGRATOR = 256, + REB_SIMULATION_BINARY_WARNING_CORRUPTFILE = 512, + REB_SIMULATION_BINARY_ERROR_OLD = 1024, +}; + + +struct reb_binary_field { // This structure is used to save and load binary files. + uint32_t type; // type as given by reb_binary_field_descriptor + uint64_t size; // Size in bytes of field (only counting what follows, not the binary field, itself). +}; + +DLLEXPORT void reb_simulation_init(struct reb_simulation* r); // Used internally and by python. Should not be called by the user. +DLLEXPORT void reb_simulation_update_acceleration(struct reb_simulation* r); // Used by REBOUNDx +DLLEXPORT void reb_simulation_update_tree(struct reb_simulation* const r); +DLLEXPORT int reb_simulation_get_next_message(struct reb_simulation* const r, char* const buf); // Get the next stored warning message. Used only if save_messages==1. Return value is 0 if no messages are present, 1 otherwise. +DLLEXPORT int reb_check_fp_contract(); // Returns 1 if floating point contraction are enabled. 0 otherwise. +DLLEXPORT size_t reb_simulation_struct_size(); +DLLEXPORT char* reb_simulation_diff_char(struct reb_simulation* r1, struct reb_simulation* r2); // Return the difference between two simulations as a human readable difference. Returned pointer needs to be freed. +DLLEXPORT void reb_simulation_set_collision_resolve(struct reb_simulation* r, enum REB_COLLISION_RESOLVE_OUTCOME (*resolve) (struct reb_simulation* const r, struct reb_collision c)); // Used from python +DLLEXPORT void reb_simulation_get_serialized_particle_data(struct reb_simulation* r, uint32_t* hash, double* m, double* radius, double (*xyz)[3], double (*vxvyvz)[3], double (*xyzvxvyvz)[6]); // NULL pointers will not be set. +DLLEXPORT void reb_simulation_set_serialized_particle_data(struct reb_simulation* r, uint32_t* hash, double* m, double* radius, double (*xyz)[3], double (*vxvyvz)[3], double (*xyzvxvyvz)[6]); // Null pointers will be ignored. +DLLEXPORT void reb_simulation_output_free_stream(char* buf); +DLLEXPORT struct reb_particle reb_simulation_jacobi_com(struct reb_particle* p); // Returns the Jacobi center of mass for a given particle. Used by python. Particle needs to be in a simulation. +DLLEXPORT struct reb_orbit reb_orbit_from_particle_err(double G, struct reb_particle p, struct reb_particle primary, int* err); +DLLEXPORT void reb_simulation_create_from_simulationarchive_with_messages(struct reb_simulation* r, struct reb_simulationarchive* sa, int64_t snapshot, enum reb_simulation_binary_error_codes* warnings); +DLLEXPORT void reb_simulation_copy_with_messages(struct reb_simulation* r_copy, struct reb_simulation* r, enum reb_simulation_binary_error_codes* warnings); // used from python +DLLEXPORT void reb_simulationarchive_init_from_buffer_with_messages(struct reb_simulationarchive* sa, char* buf, size_t size, struct reb_simulationarchive* sa_index, enum reb_simulation_binary_error_codes* warnings); +DLLEXPORT void reb_simulationarchive_create_from_file_with_messages(struct reb_simulationarchive* sa, const char* filename, struct reb_simulationarchive* sa_index, enum reb_simulation_binary_error_codes* warnings); +DLLEXPORT void reb_simulationarchive_free_pointers(struct reb_simulationarchive* sa); + +DLLEXPORT void reb_particles_transform_inertial_to_jacobi_posvel(const struct reb_particle* const particles, struct reb_particle* const p_j, const struct reb_particle* const p_mass, const unsigned int N, const unsigned int N_active); // p_mass: Should be the same particles array as ps for real particles. If passing variational particles in ps, p_mass should be the corresponding array of real particles. +DLLEXPORT void reb_particles_transform_inertial_to_jacobi_posvelacc(const struct reb_particle* const particles, struct reb_particle* const p_j, const struct reb_particle* const p_mass, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_inertial_to_jacobi_acc(const struct reb_particle* const particles, struct reb_particle* const p_j,const struct reb_particle* const p_mass, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_jacobi_to_inertial_posvel(struct reb_particle* const particles, const struct reb_particle* const p_j, const struct reb_particle* const p_mass, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_jacobi_to_inertial_pos(struct reb_particle* const particles, const struct reb_particle* const p_j, const struct reb_particle* const p_mass, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_jacobi_to_inertial_acc(struct reb_particle* const particles, const struct reb_particle* const p_j, const struct reb_particle* const p_mass, const unsigned int N, const unsigned int N_active); + +DLLEXPORT void reb_free(void* p); + +// Democratic heliocentric coordinates +DLLEXPORT void reb_particles_transform_inertial_to_democraticheliocentric_posvel(const struct reb_particle* const particles, struct reb_particle* const p_h, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_democraticheliocentric_to_inertial_pos(struct reb_particle* const particles, const struct reb_particle* const p_h, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_democraticheliocentric_to_inertial_posvel(struct reb_particle* const particles, const struct reb_particle* const p_h, const unsigned int N, const unsigned int N_active); + +// WHDS +DLLEXPORT void reb_particles_transform_inertial_to_whds_posvel(const struct reb_particle* const particles, struct reb_particle* const p_h, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_whds_to_inertial_pos(struct reb_particle* const particles, const struct reb_particle* const p_h, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_whds_to_inertial_posvel(struct reb_particle* const particles, const struct reb_particle* const p_h, const unsigned int N, const unsigned int N_active); + +// Barycentric coordinates +DLLEXPORT void reb_particles_transform_inertial_to_barycentric_posvel(const struct reb_particle* const particles, struct reb_particle* const p_b, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_barycentric_to_inertial_pos(struct reb_particle* const particles, const struct reb_particle* const p_b, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_barycentric_to_inertial_posvel(struct reb_particle* const particles, const struct reb_particle* const p_b, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_inertial_to_barycentric_acc(const struct reb_particle* const particles, struct reb_particle* const p_b, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_barycentric_to_inertial_acc(struct reb_particle* const particles, const struct reb_particle* const p_b, const unsigned int N, const unsigned int N_active); + +// Potentially useful API functions +DLLEXPORT void reb_whfast_kepler_solver(const struct reb_simulation* const r, struct reb_particle* const restrict p_j, const double M, unsigned int i, double _dt); // The WHFast Kepler solver + +// Temporary. Function declarations needed by REBOUNDx +DLLEXPORT void reb_integrator_ias15_reset(struct reb_simulation* r); ///< Internal function used to call a specific integrator +DLLEXPORT void reb_integrator_ias15_part2(struct reb_simulation* r); ///< Internal function used to call a specific integrator +DLLEXPORT void reb_integrator_whfast_from_inertial(struct reb_simulation* const r); ///< Internal function to the appropriate WHFast coordinates from inertial +DLLEXPORT void reb_integrator_whfast_to_inertial(struct reb_simulation* const r); ///< Internal function to move back from particular WHFast coordinates to inertial +DLLEXPORT void reb_integrator_whfast_reset(struct reb_simulation* r); ///< Internal function used to call a specific integrator +DLLEXPORT int reb_integrator_whfast_init(struct reb_simulation* const r); ///< Internal function to check errors and allocate memory if needed +DLLEXPORT void reb_whfast_interaction_step(struct reb_simulation* const r, const double _dt);///< Internal function +DLLEXPORT void reb_whfast_jump_step(const struct reb_simulation* const r, const double _dt); ///< Internal function +DLLEXPORT void reb_whfast_kepler_step(const struct reb_simulation* const r, const double _dt); ///< Internal function +DLLEXPORT void reb_whfast_com_step(const struct reb_simulation* const r, const double _dt); ///< Internal function +#endif // _MAIN_H diff --git a/rebound/source/rebound/rotation.py b/rebound/source/rebound/rotation.py new file mode 100644 index 0000000000000000000000000000000000000000..52ee1d3e89d0843e14ef284a694f23b1cd472125 --- /dev/null +++ b/rebound/source/rebound/rotation.py @@ -0,0 +1,225 @@ +import ctypes + +class Rotation(ctypes.Structure): + """ + This class facilitates rotations of Vec3d objects, and provides various convenience functions + for commonly used rotations in celestial mechanics. + """ + def __init__(self, ix=None, iy=None, iz=None, r=None, angle=None, axis=None, fromv=None, tov=None): + """ + Rotations are implemented as quaternions r + (ix)i + (iy)j + (iz)k. To initialize one + can directly pass a set of the real numbers (ix, iy, iz, r). Alternatively one can pass + an axis vector for the rotation axis, and an angle of rotation (counter-clockwise around axis). + Only one full set of (r, ix, iy, iz) OR (angle, axis) must be passed. + + Arguments + --------- + ix : float + Coefficient of i in quaternion r + (ix)i + (iy)j + (iz)k + iy : float + Coefficient of j in quaternion r + (ix)i + (iy)j + (iz)k + iz : float + Coefficient of k in quaternion r + (ix)i + (iy)j + (iz)k + r : float + Real part of quaternion r + (ix)i + (iy)j + (iz)k + angle: float + Angle (in radians) by which to rotate counterclockwise around passed axis + axis: rebound.Vec3d, list, numpy array, or character + 3D vector specifying the axis of rotation. The characters "x", "y", "z" are + shorthand for [1,0,0], [0,1,0], [0,0,1]. + """ + cart = [ix, iy, iz, r] + angleaxis = [angle, axis] + fromto = [fromv, tov] + supplied = [a.count(None)!=len(a) for a in [cart, angleaxis, fromto]] + if sum(supplied) > 1: + raise ValueError("Cannot mix parameters.") + if cart.count(None) == len(cart) and angleaxis.count(None) == len(angleaxis) and fromto.count(None) == len(fromto): + clibrebound.reb_rotation_identity.restype = Rotation + q = clibrebound.reb_rotation_identity() + super(Rotation, self).__init__(q.ix, q.iy, q.iz, q.r) + return + if cart.count(None) != 0 and cart.count(None) != len(cart): + raise ValueError("You need to specify all four parameters ix, iy, iz, r.") + if angleaxis.count(None) != 0 and angleaxis.count(None) != len(angleaxis): + raise ValueError("You need to specify both angle and axis.") + if fromto.count(None) != 0 and fromto.count(None) != len(fromto): + raise ValueError("You need to specify both fromv and tov.") + if cart.count(None) == 0: + super(Rotation, self).__init__(ix, iy, iz, r) + return + if angleaxis.count(None) == 0: + clibrebound.reb_rotation_init_angle_axis.restype = Rotation + q = clibrebound.reb_rotation_init_angle_axis(ctypes.c_double(angle), Vec3d(axis)._vec3d) + super(Rotation, self).__init__(q.ix, q.iy, q.iz, q.r) + return + if fromto.count(None) == 0: + q = Rotation.from_to(fromv, tov) + super(Rotation, self).__init__(q.ix, q.iy, q.iz, q.r) + return + + @classmethod + def from_to(cls, fromv, tov): + """ + Returns a Rotation object that maps the 3D fromv vector to the 3D tov vector, i.e., Rotation * fromv = tov. + Specifically, the rotation is done counterclockwise around the fromv cross tov axis. + + Arguments + --------- + fromv: list-like (e.g. list, numpy array), or character + Input 3D vector that Rotation will map to vector tov + tov: list-like (e.g. list, numpy array), or character + Output 3D vector when Rotation is applied to fromv + + Examples + -------- + + >>> fromv = [2,3,-5] # An arbitrary vector + >>> rot = rebound.Rotation.from_to(fromv=fromv, tov=[0,0,1]) # Get a rotation that maps fromv to the z axis + >>> print(rot * fromv) # When our rotation acts on fromv, we get back [0,0,1] + """ + # "from" is a keyword, need to use somethign else: "fromv" + _from = Vec3d(fromv) + _to = Vec3d(tov) + clibrebound.reb_rotation_init_from_to.restype = cls + q = clibrebound.reb_rotation_init_from_to(_from._vec3d, _to._vec3d) + return q + + @classmethod + def orbit(cls, Omega=0.0, inc=0.0, omega=0.0): + """ + Consider an orbit, which in a reference coordinate system has standard orbital angles Omega, inc, omega. + This returns a rotation object 'rot' that rotates vectors into this inclined orbital plane. The vector [1,0,0] + is rotated such that it points towards the pericenter of the orbit. Murray & Dermott Eq. 2.121 (left hand side) + + Arguments + --------- + Omega: float + Longitude of ascending node (default 0) + inc: float + Inclination (default 0) + omega: float + Argument of pericenter (default 0) + + Examples + -------- + + >>> a, e, inc, Omega, omega = 1, 0.1, 0.2, 0.3, 0.4 # Make up arbitrary numbers + >>> rot = rebound.Rotation.orbit(Omega=Omega, inc=inc, omega=omega) # Initialize a Rotation to that specific orbit + >>> sim = rebound.Simulation() + >>> sim.add(m=1) + >>> sim.add(a=a, e=e, inc=inc, Omega=Omega, omega=omega) # 3D orbit + >>> sim.add(a=a, e=e) # Orbit in the xy plane + >>> print(sim.particles[1].xyz) + >>> print(rot * sim.particles[2].xyz) # Same location as other particle after applying rot + """ + clibrebound.reb_rotation_init_orbit.restype = cls + q = clibrebound.reb_rotation_init_orbit(ctypes.c_double(Omega), ctypes.c_double(inc), ctypes.c_double(omega)) + return q + + @classmethod + def to_new_axes(cls, newz, newx=None): + """ + Returns a rotation object that rotates vectors into a new coordinate system with the z axis pointing along + the vector newz. If newx is passed, the new x axis will point along newx. If not, the new x axis defaults + to the intersection betweeen the new xy plane (normal to newz) and the original xy plane (specifically along + the z cross newz direction). The new y axis completes a right-handed coordinate system. + + If passed, newx should be perpendicular to newz. This function will only take the component of newx that is + perpendicular to newz, in order to avoid any rounding issues. + + Arguments + --------- + newz: list-like (e.g. list, numpy array) + 3D vector to use as the new z axis + newx: list-like (e.g. list, numpy array) + 3D vector to use as the new x axis. If not passed, defaults to the intersection between the new xy plane + (normal to newz) and the original xy plane (along the z cross newz direction). + + Examples + -------- + + >>> sim = rebound.Simulation() # Initialize a sim with two Jupiters on arbitrary inclined orbits + >>> sim.add(m=1) + >>> sim.add(m=1e-3, a=1, inc=0.3, Omega=4.2) + >>> sim.add(m=1e-3, a=2, inc=0.1, Omega=0.5) # Get a rotation to new axes where z points along total ang. momentum L. Didn't specify newx, + >>> rot = rebound.Rotation.to_new_axes(newz=sim.angular_momentum()) # so it points along line of nodes between our original xy plane + >>> sim.rotate(rot) # and the new plane perp. to L. Rotate our simulation into this new reference system + >>> print(sim.angular_momentum()) # Now the total angular momentum points in the z direction as we expect. + """ + if not newx: # newx not specified, newx will point along z cross newz (line of nodes) + clibrebound.reb_vec3d_cross.restype = Vec3dBasic + newx = Vec3d(clibrebound.reb_vec3d_cross(Vec3d(0,0,1)._vec3d, Vec3d(newz)._vec3d)) + mag = (newx.x**2 + newx.y**2 + newx.z**2)**(0.5) + if mag < 1e-15: # z and newz point in the same direction, so line of nodes undefined, don't rotate x + newx.x, newx.y, newx.z = 1,0,0 + clibrebound.reb_rotation_init_to_new_axes.restype = cls + q = clibrebound.reb_rotation_init_to_new_axes(Vec3d(newz)._vec3d, Vec3d(newx)._vec3d) + return q + + def orbital(self): + """ + Returns a three vector with orbital elements Omega, inc, omega. + Note: the angles might not always be in the correct quadrant and might be + inconsistent with REBOUND's standard definition of orbital elements. + """ + Omega = ctypes.c_double() + inc = ctypes.c_double() + omega = ctypes.c_double() + clibrebound.reb_rotation_to_orbital(self, ctypes.byref(Omega), ctypes.byref(inc), ctypes.byref(omega)) + return [Omega.value, inc.value, omega.value] + + + def inverse(self): + """ + Returns a Rotation object's inverse rotation. + """ + clibrebound.reb_rotation_inverse.restype = Rotation + q = clibrebound.reb_rotation_inverse(self) + return q + + def normalize(self): + """ + Returns a normalized copy of the Rotation object. + """ + clibrebound.reb_rotation_normalize.restype = Rotation + q = clibrebound.reb_rotation_normalize(self) + return q + + def __eq__(self, other): + if not isinstance(other, Rotation): + return NotImplemented + return self.ix == other.ix and self.iy == other.iy and self.iz == other.iz and self.r == other.r + + def __mul__(self, other): + if isinstance(other, Rotation): + clibrebound.reb_rotation_mul.restype = Rotation + q = clibrebound.reb_rotation_mul(self, other) + return q + if isinstance(other, Particle): + p = other.copy() + p.rotate(self) + return p + if isinstance(other, Simulation): + s = other.copy() + s.rotate(self) + return s + try: + vec = Vec3d(other) # make copy if vec3d, try to convert to vec3d if list-like + clibrebound.reb_vec3d_irotate(ctypes.byref(vec._vec3d), self) # rotate vector in place + return vec + except: + return NotImplemented + + def __repr__(self): + return '<{0}.{1} object at {2}, ix={3}, iy={4}, iz={5}, r={6}>'.format(self.__module__, type(self).__name__, hex(id(self)), self.ix, self.iy, self.iz, self.r) + _fields_ = [("ix", ctypes.c_double), + ("iy", ctypes.c_double), + ("iz", ctypes.c_double), + ("r", ctypes.c_double)] + +from . import clibrebound +from .simulation import Simulation +from .vectors import Vec3d, Vec3dBasic +from .particle import Particle + diff --git a/rebound/source/rebound/simulation.py b/rebound/source/rebound/simulation.py new file mode 100644 index 0000000000000000000000000000000000000000..cbbbebc2c241dae9daeb336352e0ad8b15ff6096 --- /dev/null +++ b/rebound/source/rebound/simulation.py @@ -0,0 +1,1623 @@ +from ctypes import Structure, c_double, POINTER, c_uint32, c_int, c_uint, c_int64, c_uint64, c_void_p, c_char_p, CFUNCTYPE, byref, create_string_buffer, addressof, c_char, c_size_t, string_at, sizeof +from . import clibrebound, Escape, NoParticles, Encounter, Collision, GenericError +from .citations import cite +from .units import units_convert_particle, check_units, convert_G, hash_to_unit +from .hash import hash as rebhash, HashPointerPair +from .vectors import Vec3d, Vec3dBasic, Vec6d +import os +import sys +import warnings + +# Avoid unboxing strings. See +# https://sourceforge.net/p/ctypes/mailman/message/8469497/ +class allocated_c_char_p(c_char_p): + pass + +import types + +### The following enum and class definitions need to +### consitent with those in rebound.h + +INTEGRATORS = {"ias15": 0, "whfast": 1, "sei": 2, "leapfrog": 4, "none": 7, "janus": 8, "mercurius": 9, "saba": 10, "eos": 11, "bs": 12, "whfast512":21, "trace":25} +BOUNDARIES = {"none": 0, "open": 1, "periodic": 2, "shear": 3} +GRAVITIES = {"none": 0, "basic": 1, "compensated": 2, "tree": 3, "mercurius": 4, "jacobi": 5, "trace": 6} +COLLISIONS = {"none": 0, "direct": 1, "tree": 2, "line": 4, "linetree": 5} +# Format: Majorerror, id, message +BINARY_WARNINGS = [ + (True, 1, "Cannot read binary file. Check filename and file contents."), + (False, 2, "Binary file was saved with a different version of REBOUND. Binary format might have changed."), + (False, 4, "You have to reset function pointers after creating a reb_simulation struct with a binary file."), + (False, 8, "Binary file might be corrupted. Number of particles found does not match particle number expected."), + (True, 16, "Error while reading binary file (file was closed).",), + (True, 32, "Index out of range.",), + (True, 64, "Error while trying to seek file.",), + (False, 128, "Encountered unknown field in file. File might have been saved with a different version of REBOUND."), + (True, 256, "Integrator type is not supported by this simulationarchive version."), + (False, 512, "The binary file seems to be corrupted. An attempt has been made to read the uncorrupted parts of it."), + (True, 1024, "Reading old Simulationarchives (version < 2) is no longer supported. If you need to read such an archive, use a REBOUND version <= 3.26.3"), +] + +# Note: name conflict with exception "Collision" +class CollisionS(Structure): + _fields_ = [("p1", c_int), + ("p2", c_int), + ("gb", Vec6d), + ("ri", c_int)] + + def __repr__(self): + return '<{0}.{1} object at {2}, p1={3}, p2={4}>'.format(self.__module__, type(self).__name__, hex(id(self)), self.p1, self.p2) + + + +class Simulation(Structure): + """ + This is the REBOUND Simulation Class. + In encapsulated an entire REBOUND simulation and is an abstraction of the C struct reb_simulation. + + ### Examples + + Most simulation parameters can be directly changed with the property syntax: + + >>> sim = rebound.Simulation() + >>> sim.G = 1. # Sets the graviational constant (default 1) + >>> sim.softening = 1. # Sets the graviational softening parameter (default 0) + >>> sim.testparticle_type = 1 # Allows massive particles to feel influence from testparticles (default 0) + >>> sim.dt = 0.1 # Sets the timestep (will change for adaptive integrators such as IAS15). + >>> sim.t = 0. # Sets the current simulation time (default 0) + >>> print(sim.N) # Gets the current number of particles + >>> print(sim.N_active) # Gets the current number of active particles + + By calling rebound.Simulation() as shown above, you create a new simulation object + The following example creates a simulation, saves it to a file and then creates + a copy of the simulation stored in the binary file. + + >>> sim = rebound.Simulation() + >>> sim.add(m=1.) + >>> sim.add(m=1.e-3,x=1.,vy=1.) + >>> sim.save_to_file("simulation.bin") + >>> sim_copy = rebound.Simulation("simulation.bin") + + Similarly, you can create a simulation from a Simulationarchive + by specifying the snapshot you want to load. + + >>> sim = rebound.Simulation("archive.bin", 34) + + or + + >>> sim = rebound.Simulation(filename="archive.bin", snapshot=34) + + Finally, you can also create a new Simulation by passing a bytes object of a + Simulationarchive to Simulation(): + + >>> sim = rebound.Simulation(open("archive.bin","rb").read()) + + """ + def __new__(cls, *args, **kw): + # Create a new simulation if no arguments given + if len(args)==0: + sim = super(Simulation,cls).__new__(cls) + clibrebound.reb_simulation_init(byref(sim)) + return sim + + # If first argument is of type bytes, then unpickle a Simulation + if isinstance(args[0], bytes): + l = len(args[0]) + buft = c_char * l + buf = buft.from_buffer_copy(args[0]) + # Note: Not calling Simulationarchive. + # Doing this manually here because we need to keep the reference to buf. + # So we can later access the contents of the archive to get the simulation. + sa = Simulationarchive.__new__(Simulationarchive, None, None) + w = c_int(0) + clibrebound.reb_simulationarchive_init_from_buffer_with_messages(byref(sa), byref(buf), c_size_t(l), None, byref(w)) + sim = super(Simulation,cls).__new__(cls) + clibrebound.reb_simulation_init(byref(sim)) + clibrebound.reb_simulation_create_from_simulationarchive_with_messages(byref(sim),byref(sa),c_int64(-1),byref(w)) + for majorerror, value, message in BINARY_WARNINGS: + if w.value & value: + if majorerror: + raise RuntimeError(message) + else: + # Just a warning + warnings.warn(message, RuntimeWarning) + return sim + + # Create simulation from Simulationarchive + if isinstance(args[0], Simulationarchive): + sa = args[0] + else: + # Otherwise assume first argument is filename + filename = args[0] + if "filename" in kw: + filename = kw["filename"] + sa = Simulationarchive(filename,process_warnings=False) + + snapshot = -1 + if len(args)>1: + snapshot = args[1] + if "snapshot" in kw: + snapshot = kw["snapshot"] + + if sa is not None: + # Recreate exisitng simulation + sim = super(Simulation,cls).__new__(cls) + clibrebound.reb_simulation_init(byref(sim)) + w = sa.warnings # warnings will be appended to previous warnings (as to not repeat them) + clibrebound.reb_simulation_create_from_simulationarchive_with_messages(byref(sim),byref(sa),c_int64(snapshot),byref(w)) + for majorerror, value, message in BINARY_WARNINGS: + if w.value & value: + if majorerror: + raise RuntimeError(message) + else: + # Just a warning + warnings.warn(message, RuntimeWarning) + return sim + + # Still here? Then an error occured. + raise RuntimeError("Can not create Simulation.") + + def __init__(self,filename=None,snapshot=None): + self.save_messages = 1 # Warnings will be checked within python + + def __repr__(self): + return '<{0}.{1} object at {2}, N={3}, t={4}>'.format(self.__module__, type(self).__name__, hex(id(self)), self.N, self.t) + + @classmethod + def from_simulationarchive(cls, simulationarchive, snapshot=-1): + return cls(filename=filename,snapshot=snapshot) + + @classmethod + def from_file(cls, filename, snapshot=-1): + return cls(filename=filename, snapshot=snapshot) + + def copy(self): + """ + Returns a deep copy of a REBOUND simulation. You need to reset + any function pointers on the copy. + + Returns + ------- + A rebound.Simulation object. + + """ + w = c_int(0) + sim = Simulation() + clibrebound.reb_simulation_copy_with_messages(byref(sim),byref(self),byref(w)) + for majorerror, value, message in BINARY_WARNINGS: + if w.value & value: + if majorerror: + raise RuntimeError(message) + else: + # Just a warning + warnings.warn(message, RuntimeWarning) + return sim + + def start_server(self, port=1234): + """ + Start webserver on specified port. + The default port is 1234. + You can access a running server by opening a web browser + at http://localhost:1234 or http://127.0.0.1:1234 + """ + clibrebound.reb_simulation_start_server.restype = c_int + ret_value = clibrebound.reb_simulation_start_server(byref(self), c_int(port)) + self.process_messages() + + def stop_server(self, port=1234): + """ + Stop the webserver. + """ + ret_value = clibrebound.reb_simulation_stop_server(byref(self)) + self.process_messages() + + + def widget(self, port=None, host="localhost", size=(500,500)): + if port is not None: + port = int(port) + if self._server_data: + if self._server_data.contents.port != port: + raise RuntimeError("Server is running already on port %d but port %d was requested."%(self._server_data.contents.port, port)) + if not self._server_data: + if port is not None: + self.start_server(port=port) + else: + self.start_server() + if not self._server_data: + raise RuntimeError("Server did not start up immediately. Try again in a few seconds.") + port = int(self._server_data.contents.port) + from IPython.display import IFrame + width, height = size + display(IFrame("http://"+host+":"+"%d"%port, width, height)) + + def cite(self): + """ + Generate citations + + This function generates citations to papers relevant to the current + setting of the simulation. + """ + + txt, bib = cite(self) + # one could check for REBOUNDx here, then append txt and bib accordingly + print(txt + "\n\n\n" + bib) + + @property + def simulationarchive_filename(self): + """ + Returns the current Simulationarchive filename in use. + Do not set manually. Use sim.save_to_file() instead + """ + return self._simulationarchive_filename + +# Message and memory management functions + def process_messages(self): + clibrebound.reb_simulation_get_next_message.restype = c_int + buf = create_string_buffer(c_int.in_dll(clibrebound, "reb_max_messages_length").value) + while clibrebound.reb_simulation_get_next_message(byref(self), buf): + msg = buf.value.decode("ascii") + if msg[0]=='w': + warnings.warn(msg[1:], RuntimeWarning) + elif msg[0]=='e': + raise RuntimeError(msg[1:]) + +# Pickling methods: return Simulationarchive binary + def __reduce__(self): + buf = c_char_p() + size = c_size_t() + clibrebound.reb_simulation_save_to_stream(byref(self), byref(buf), byref(size)) + s = bytes(string_at(buf, size=size.value)) #make copy + clibrebound.reb_simulation_output_free_stream(buf) # free original + return (Simulation, (s,)) + +# Other operators + + def __del__(self): + if self._b_needsfree_ == 1: # to avoid, e.g., sim.particles[1]._sim.contents.G creating a Simulation instance to get G, and then freeing the C simulation when it immediately goes out of scope + clibrebound.reb_simulation_free_pointers(byref(self)) + + def __eq__(self, other): + # This ignores the walltime parameter + if not isinstance(other,Simulation): + return NotImplemented + clibrebound.reb_simulation_diff.restype = c_int + ret = clibrebound.reb_simulation_diff(byref(self), byref(other),c_int(2)) + return not ret + + def diff(self, other): + if not isinstance(other,Simulation): + return NotImplemented + clibrebound.reb_simulation_diff_char.restype = allocated_c_char_p + output = clibrebound.reb_simulation_diff_char(byref(other), byref(self)) + print(output.value.decode("utf-8")) + clibrebound.reb_free(output) + + def __add__(self, other): + if not isinstance(other,Simulation): + return NotImplemented + c = self.copy() + return c.__iadd__(other) + + def __iadd__(self, other): + if not isinstance(other,Simulation): + return NotImplemented + clibrebound.reb_simulation_iadd.restype = c_int + ret = clibrebound.reb_simulation_iadd(byref(self), byref(other)) + if ret==-1: + raise RuntimeError("Cannot add simulations. Check that the simulations have the same number of particles") + return self + + def __sub__(self, other): + if not isinstance(other,Simulation): + return NotImplemented + c = self.copy() + return c.__isub__(other) + + def __isub__(self, other): + if not isinstance(other,Simulation): + return NotImplemented + clibrebound.reb_simulation_isub.restype = c_int + ret = clibrebound.reb_simulation_isub(byref(self), byref(other)) + if ret==-1: + raise RuntimeError("Cannot subtract simulations. Check that the simulations have the same number of particles") + return self + + def __mul__(self, other): + try: + other = float(other) + except: + return NotImplemented + c = self.copy() + c.multiply(other, other) + return c + + def __imul__(self, other): + try: + other = float(other) + except: + return NotImplemented + self.multiply(other, other) + return self + + def __rmul__(self, other): + try: + other = float(other) + except: + return NotImplemented + c = self.copy() + c.multiply(other, other) + return c + + def __div__(self, other): + return self.__truediv__(other) + + def __idiv__(self, other): + return self.__itruediv__(other) + + def __truediv__(self, other): + try: + other = float(other) + except: + return NotImplemented + c = self.copy() + if other==0.: + raise ZeroDivisionError + c.multiply(1./other, 1./other) + return c + + def __itruediv__(self, other): + try: + other = float(other) + except: + return NotImplemented + if other==0.: + raise ZeroDivisionError + self.multiply(1./other, 1./other) + return self + + def multiply(self, scalar_pos, scalar_vel): + try: + scalar_pos = float(scalar_pos) + scalar_vel = float(scalar_vel) + except: + raise ValueError("Cannot multiply simulation with non-scalars.") + clibrebound.reb_simulation_imul(byref(self), c_double(scalar_pos), c_double(scalar_vel)) + + def rotate(self, q): + from .rotation import Rotation + if not isinstance(q, Rotation): + return NotImplemented + clibrebound.reb_simulation_irotate(byref(self), q) + +#ODE functions + def create_ode(self, length, needs_nbody=True): + clibrebound.reb_ode_create.restype = POINTER(ODE) + ode_p = clibrebound.reb_ode_create(byref(self), c_int(length)) + ode_p.contents.needs_nbody = c_uint(needs_nbody) + return ODE.from_address(addressof(ode_p.contents)) + +# Status functions + def status(self, showParticles=True, showAllFields=True): + """ + Prints a summary of the current status + of the simulation. + """ + from rebound import __version__, __build__ + s= "" + s += "---------------------------------\n" + s += "REBOUND version: \t%s\n" %__version__ + s += "REBOUND built on: \t%s\n" %__build__ + s += "Number of particles: \t%d\n" %self.N + s += "Selected integrator: \t" + self.integrator + "\n" + s += "Simulation time: \t%.16e\n" %self.t + s += "Current timestep: \t%f\n" %self.dt + s += "---------------------------------\n" + if self.N>0 and showParticles: + for p in self.particles: + s += str(p) + "\n" + s += "---------------------------------\n" + print(s, end="") + if showAllFields: + print("The following fields have non-default values:") + newsim = Simulation() + clibrebound.reb_simulation_diff_char.restype = c_char_p + output = clibrebound.reb_simulation_diff_char(byref(newsim), byref(self)) + print(output.decode("utf-8")) + + + +# Set function pointer for additional forces + @property + def additional_forces(self): + """ + Get or set a function pointer for calculating additional forces in the simulation. + + The argument can be a python function or something that can + be cast to a C function of type CFUNCTYPE(None,POINTER(Simulaton)). + If the forces are velocity dependent, the flag + force_is_velocity_dependent needs to be set to 1. Otherwise, + the particle structures might contain incorrect velocity + values. + """ + raise AttributeError("You can only set C function pointers from python.") + @additional_forces.setter + def additional_forces(self, func): + self._afp = AFF(func) + self._additional_forces = self._afp + + @property + def pre_timestep_modifications(self): + """ + Get or set a function pointer for pre-timestep modifications. + + The argument can be a python function or something that can be cast to a C function or a + python function. + """ + raise AttributeError("You can only set C function pointers from python.") + @pre_timestep_modifications.setter + def pre_timestep_modifications(self, func): + self._pretmp = AFF(func) + self._pre_timestep_modifications = self._pretmp + + @property + def post_timestep_modifications(self): + """ + Get or set a function pointer for post-timestep modifications. + + The argument can be a python function or something that can be cast to a C function or a + python function. + """ + raise AttributeError("You can only set C function pointers from python.") + @post_timestep_modifications.setter + def post_timestep_modifications(self, func): + self._posttmp = AFF(func) + self._post_timestep_modifications = self._posttmp + + @property + def heartbeat(self): + """ + Set a function pointer for a heartbeat function. + The heartbeat function is called every timestep and can be used + to monitor long simulations, check for stalled simulations and + output debugging information. + + The argument can be a python function or something that can be + cast to a C function or a python function. + + The function called will receive a pointer to the simulation + object as its argument. + + Examples + -------- + + >>> import rebound + >>> sim = rebound.Simulation() + >>> sim.add(m=1.) + >>> sim.add(m=1e-3, a=1) + >>> def heartbeat(sim): + >>> # sim is a pointer to the simulation object, + >>> # thus use contents to access object data. + >>> # See ctypes documentation for details. + >>> print(sim.contents.t) + >>> sim.heartbeat = heartbeat + >>> sim.integrate(1.) + + """ + raise AttributeError("You can only set C function pointers from python (not get).") + @heartbeat.setter + def heartbeat(self, func): + self._hb = AFF(func) + self._heartbeat = self._hb + + @property + def coefficient_of_restitution(self): + """ + Get or set a function pointer that defined the coefficient of restitution. + """ + raise AttributeError("You can only set C function pointers from python.") + @coefficient_of_restitution.setter + def coefficient_of_restitution(self, func): + self._corfp = CORFF(func) + self._coefficient_of_restitution = self._corfp + + @property + def collision_resolve(self): + """ + Get or set a function pointer for collision resolving routine. + + Possible options for setting: + 1) Function pointer + 2) "merge": two colliding particles will merge) + 3) "hardsphere": two colliding particles will bounce off using a set coefficient of restitution + """ + raise AttributeError("You can only set C function pointers from python.") + @collision_resolve.setter + def collision_resolve(self, func): + if func == "merge": + clibrebound.reb_simulation_set_collision_resolve.restype = None + clibrebound.reb_simulation_set_collision_resolve(byref(self), clibrebound.reb_collision_resolve_merge) + elif func == "hardsphere": + clibrebound.reb_simulation_set_collision_resolve.restype = None + clibrebound.reb_simulation_set_collision_resolve(byref(self), clibrebound.reb_collision_resolve_hardsphere) + elif func == "halt": + clibrebound.reb_simulation_set_collision_resolve.restype = None + clibrebound.reb_simulation_set_collision_resolve(byref(self), clibrebound.reb_collision_resolve_halt) + else: + self._colrfp = COLRFF(func) + self._collision_resolve = self._colrfp + + @property + def free_particle_ap(self): + """ + Get or set a function pointer for freeing the ap pointer whenever sim.remove is called. + """ + raise AttributeError("You can only set C function pointers from python.") + @free_particle_ap.setter + def free_particle_ap(self, func): + self._fpa = FPA(func) + self._free_particle_ap = self._fpa + +# Setter/getter of parameters and constants + @property + def N_real(self): + """ + Get the current number of real (i.e. no variational/shadow) particles in the simulation. + """ + return self.N-self.N_var + + @property + def integrator(self): + """ + Get or set the integrator module. + + Available integrators include: + + - ``'IAS15'`` (default) + - ``'WHFast'`` + - ``'SEI'`` + - ``'LEAPFROG'`` + - ``'JANUS'`` + - ``'MERCURIUS'`` + - ``'WHCKL'`` + - ``'WHCKM'`` + - ``'WHCKC'`` + - ``'SABA4'`` + - ``'SABACL4'`` + - ``'SABACM4'`` + - ``'SABA(10,6,4)'`` + - ``'EOS'`` + - ``'BS'`` + - ``'WHFast512'`` + - ``'TRACE'`` + - ``'none'`` + + Check the online documentation for a full description of each of the integrators. + """ + i = self._integrator + for name, _i in INTEGRATORS.items(): + if i==_i: + return name + return i + @integrator.setter + def integrator(self, value): + if isinstance(value, int): + self._integrator = c_int(value) + elif isinstance(value, basestring): + value = value.lower() + if value in INTEGRATORS: + self._integrator = INTEGRATORS[value] + # Shortcuts + elif value=="wh": + self.integrator = "whfast" + self.ri_whfast.corrector = 0 + self.ri_whfast.kernel = "default" + elif value=="whc": + self.integrator = "whfast" + self.ri_whfast.corrector = 17 + self.ri_whfast.kernel = "default" + elif value=="whckl": + self.integrator = "whfast" + self.ri_whfast.corrector = 17 + self.ri_whfast.kernel = "lazy" + elif value=="whckm": + self.integrator = "whfast" + self.ri_whfast.corrector = 17 + self.ri_whfast.kernel = "modifiedkick" + elif value=="whckc": + self.integrator = "whfast" + self.ri_whfast.corrector = 17 + self.ri_whfast.kernel = "composition" + elif value[0:4]=="saba" and len(value)>4: + self.integrator = "saba" + self.ri_saba.type = value[4:] + else: + raise ValueError("Integrator not found.") + + @property + def boundary(self): + """ + Get or set the boundary module. + + Available boundary modules are: + + - ``'none'`` (default) + - ``'open'`` + - ``'periodic'`` + - ``'shear'`` + + Check the online documentation for a full description of each of the modules. + """ + i = self._boundary + for name, _i in BOUNDARIES.items(): + if i==_i: + return name + return i + @boundary.setter + def boundary(self, value): + if isinstance(value, int): + self._boundary = c_int(value) + elif isinstance(value, basestring): + value = value.lower() + if value in BOUNDARIES: + self._boundary = BOUNDARIES[value] + else: + raise ValueError("Warning. Boundary condition module not found.") + + @property + def gravity(self): + """ + Get or set the gravity module. + + Available gravity modules are: + + - ``'none'`` + - ``'basic'`` (default) + - ``'compensated'`` + - ``'tree'`` + + Check the online documentation for a full description of each of the modules. + """ + i = self._gravity + for name, _i in GRAVITIES.items(): + if i==_i: + return name + return i + @gravity.setter + def gravity(self, value): + if isinstance(value, int): + self._gravity = c_int(value) + elif isinstance(value, basestring): + value = value.lower() + if value in GRAVITIES: + self._gravity = GRAVITIES[value] + else: + raise ValueError("Warning. Gravity module not found.") + + @property + def collision(self): + """ + Get or set the collision module. + + Available collision modules are: + + - ``'none'`` (default) + - ``'direct'`` + - ``'tree'`` + - ``'line'`` + - ``'linetree'`` + + Check the online documentation for a full description of each of the modules. + """ + i = self._collision + for name, _i in COLLISIONS.items(): + if i==_i: + return name + return i + @collision.setter + def collision(self, value): + if isinstance(value, int): + self._collision = c_int(value) + elif isinstance(value, basestring): + value = value.lower() + if value in COLLISIONS: + self.collision = COLLISIONS[value] + else: + raise ValueError("Warning. Collision module not found.") + +# Units + + @property + def units(self): + """ + Tuple of the units for length, time and mass. Can be set in any order, and strings are not case-sensitive. See ipython_examples/Units.ipynb for more information. You can check the units' exact values and add Additional units in rebound/rebound/units.py. Units should be set before adding particles to the simulation (will give error otherwise). + + Currently supported Units + ------------------------- + + Times: + Hr : Hours + Yr : Julian years + Jyr : Julian years + Sidereal_yr : Sidereal year + Yr2pi : Year divided by 2pi, with year defined as orbital period of planet at 1AU around 1Msun star + Kyr : Kiloyears (Julian) + Myr : Megayears (Julian) + Gyr : Gigayears (Julian) + + Lengths: + M : Meters + Cm : Centimeters + Km : Kilometers + AU : Astronomical Units + + Masses: + Kg : Kilograms + Msun : Solar masses + Mmercury : Mercury masses + Mvenus : Venus masses + Mearth : Earth masses + Mmars : Mars masses + Mjupiter : Jupiter masses + Msaturn : Saturn masses + Muranus : Neptune masses + Mpluto : Pluto masses + + Examples + -------- + + >>> sim = rebound.Simulation() + >>> sim.units = ('yr', 'AU', 'Msun') + + """ + + return {'length':hash_to_unit(self.python_unit_l), 'mass':hash_to_unit(self.python_unit_m), 'time':hash_to_unit(self.python_unit_t)} + + @units.setter + def units(self, newunits): + newunits = check_units(newunits) + if self.N>0: # some particles are loaded + raise AttributeError("Error: You cannot set the units after populating the particles array. See ipython_examples/Units.ipynb.") + self.update_units(newunits) + + def update_units(self, newunits): + clibrebound.reb_hash.restype = c_uint32 + self.python_unit_l = clibrebound.reb_hash(c_char_p(newunits[0].encode("ascii"))) + self.python_unit_t = clibrebound.reb_hash(c_char_p(newunits[1].encode("ascii"))) + self.python_unit_m = clibrebound.reb_hash(c_char_p(newunits[2].encode("ascii"))) + self.G = convert_G(newunits) + + def equal_units(self, sim2): + """ + Compares of this simulation to another simulation. + + Returns + ------- + True if both simulations use the same units. False otherwise. + """ + if not isinstance(sim2,Simulation): + raise AttributeError("Error: Argument is not a Simulation object.") + + return self.python_unit_l == sim2.python_unit_l and self.python_unit_m == sim2.python_unit_m and self.python_unit_t == sim2.python_unit_t + + def convert_particle_units(self, *args): + """ + Will convert the units for the simulation (i.e. convert G) as well as the particles' cartesian elements. + Must have set sim.units ahead of calling this function, so REBOUND knows what units to convert from. + + Parameters + ---------- + 3 strings corresponding to units of time, length and mass. Can be in any order and aren't case-sensitive. You can add new units to rebound/rebound/units.py + """ + if self.python_unit_l == 0 or self.python_unit_m == 0 or self.python_unit_t == 0: + raise AttributeError("Must set sim.units before calling convert_particle_units in order to know what units to convert from.") + new_l, new_t, new_m = check_units(args) + for p in self.particles: + units_convert_particle(p, hash_to_unit(self.python_unit_l), hash_to_unit(self.python_unit_t), hash_to_unit(self.python_unit_m), new_l, new_t, new_m) + self.update_units((new_l, new_t, new_m)) + +# Variational Equations + def add_variation(self,order=1,first_order=None, first_order_2=None, testparticle=-1): + """ + This function adds a set of variational particles to the simulation. + + If there are N real particles in the simulation, this functions adds N additional variational + particles. To see how many particles (real and variational) are in a simulation, use ``'sim.N'``. + To see how many variational particles are in a simulation use ``'sim.N_var'``. + + Currently Leapfrog, WHFast and IAS15 support first order variational equations. IAS15 also + supports second order variational equations. + + Parameters + ---------- + order : integer, optional + By default, the function adds a set of first order variational particles to the simulation. Set this flag to 2 for second order. + first_order : Variation, optional + Second order variational equations depend on their corresponding first order variational equations. + This parameter expects the Variation object corresponding to the first order variational equations. + first_order_2 : Variation, optional + Same as first_order. But allows to set two different indicies to calculated off-diagonal elements. + If omitted, then first_order will be used for both first order equations. + testparticle : int, optional + If set to a value >= 0, then only one variational particle will be added and be treated as a test particle. + + + Returns + ------- + Returns Variation object (a copy--you can only modify it through its particles property or vary method). + """ + cur_N_var_config = self.N_var_config + if order==1: + index = clibrebound.reb_simulation_add_variation_1st_order(byref(self),c_int(testparticle)) + elif order==2: + if first_order is None: + raise AttributeError("Please specify corresponding first order variational equations when initializing second order variational equations.") + if first_order_2 is None: + first_order_2 = first_order + index = clibrebound.reb_simulation_add_variation_2nd_order(byref(self),c_int(testparticle),c_int(first_order.index),c_int(first_order_2.index)) + else: + raise AttributeError("Only variational equations of first and second order are supported.") + + # Need a copy because location of original might shift if more variations added + s = Variation.from_buffer_copy(self.var_config[cur_N_var_config]) + + return s + +# MEGNO + def init_megno(self, seed=None): + """ + This function initialises the chaos indicator MEGNO particles and enables their integration. + + MEGNO is short for Mean Exponential Growth of Nearby orbits. It can be used to test + if a system is chaotic or not. In the backend, the integrator is integrating an additional set + of particles using the variational equation. Note that variational equations are better + suited for this than shadow particles. MEGNO is currently only supported in the IAS15 + and WHFast integrators. + + This function also needs to be called if you are interested in the Lyapunov exponent as it is + calculate with the help of MEGNO. See Rein and Tamayo 2015 for details on the implementation. + + For more information on MEGNO see e.g. https://dx.doi.org/10.1051/0004-6361:20011189 + """ + if seed is None: + clibrebound.reb_simulation_init_megno(byref(self)) + else: + clibrebound.reb_simulation_init_megno_seed(byref(self), c_uint(seed)) + + def megno(self): + """ + Return the current MEGNO value. + Note that you need to call init_megno() before the start of the simulation. + """ + if self._calculate_megno==0: + raise RuntimeError("MEGNO cannot be calculated. Make sure to call init_megno() after adding all particles but before integrating the simulation.") + + clibrebound.reb_simulation_megno.restype = c_double + return clibrebound.reb_simulation_megno(byref(self)) + + def lyapunov(self): + """ + Return the current Lyapunov Characteristic Number (LCN). + Note that you need to call init_megno() before the start of the simulation. + Different definitions of the LCN exist. Here, we're following Eq 24 of + Cincotta and Simo (2000): https://aas.aanda.org/articles/aas/abs/2000/20/h1686/h1686.html. + To get a timescale (the Lyapunov timescale), take the inverse of this quantity. + """ + if self._calculate_megno==0: + raise RuntimeError("Lyapunov Characteristic Number cannot be calculated. Make sure to call init_megno() after adding all particles but before integrating the simulation.") + + clibrebound.reb_simulation_lyapunov.restype = c_double + return clibrebound.reb_simulation_lyapunov(byref(self)) + +# Particle add function, used to be called particle_add() and add_particle() + def add(self, particle=None, **kwargs): + """ + Adds a particle to REBOUND. Accepts one of the following: + + 1) A single Particle structure. + 2) The particle's mass and a set of cartesian coordinates: m,x,y,z,vx,vy,vz. + 3) The primary as a Particle structure, the particle's mass and a set of orbital elements: primary,m,a,anom,e,omega,inv,Omega,MEAN (see :class:`.Orbit` for the definition of orbital elements). + 4) A name of an object (uses NASA Horizons to look up coordinates) + 5) A list of particles or names. + """ + if particle is not None: + if isinstance(particle, Particle): + if (self.gravity == "tree" or self.collision == "tree") and self.root_size <=0.: + raise ValueError("The tree code for gravity and/or collision detection has been selected. However, the simulation box has not been configured yet. You cannot add particles until the the simulation box has a finite size.") + if particle._sim: + if not self.equal_units(particle._sim.contents): + warnings.warn("Particle added is from a simulation that uses different units.", RuntimeWarning) + clibrebound.reb_simulation_add(byref(self), particle) + elif isinstance(particle, list): + for p in particle: + self.add(p, **kwargs) + elif isinstance(particle,str): + if self.python_unit_l == 0 or self.python_unit_m == 0 or self.python_unit_t == 0: + self.units = ('AU', 'yr2pi', 'Msun') + self.G = 1.0 + builtindatasets = ["solar system", "outer solar system"] + if particle.lower() == "solar system": # built in test dataset + data.add_solar_system(self) + elif particle.lower() == "outer solar system": # built in test dataset + data.add_outer_solar_system(self) + else: + if "frame" not in kwargs: + if hasattr(self, 'default_plane'): + kwargs["plane"] = self.default_plane # allow ASSIST to set default plane + mass_unit = hash_to_unit(self.python_unit_m) # For manually provided masses + self.add(horizons.query_horizons_for_particle(mass_unit, particle, **kwargs), hash=particle) + units_convert_particle(self.particles[-1], 'km', 's', 'kg', hash_to_unit(self.python_unit_l), hash_to_unit(self.python_unit_t), hash_to_unit(self.python_unit_m)) + else: + raise ValueError("Argument passed to add() not supported.") + else: + self.add(Particle(simulation=self, **kwargs)) + self.process_messages() + +# Particle getter functions + @property + def particles(self): + """ + Returns a Particles object that allows users to access particles like a dictionary using indices, hashes, or strings. + + The Particles object uses pointers and thus the contents update + as the simulation progresses. Note that the pointers could change, + for example when a particle is added or removed from the simulation. + """ + particles = Particles(self) + return particles + + @particles.deleter + def particles(self): + """ + Remove all particles from the simulation + """ + clibrebound.reb_simulation_remove_all_particles(byref(self)) + self.process_messages() + + def remove(self, index=None, hash=None, keep_sorted=True): + """ + Removes a particle from the simulation. + + Parameters + ---------- + index : int, optional + Specify particle to remove by index. + hash : c_uint32 or string, optional + Specifiy particle to remove by hash (if a string is passed, the corresponding hash is calculated). + keep_sorted : bool, optional + By default, remove preserves the order of particles in the particles array. + Might set it to zero in cases with many particles and many removals to speed things up. + """ + if index is not None: + clibrebound.reb_simulation_remove_particle(byref(self), index, keep_sorted) + if hash is not None: + hash_types = c_uint32, c_uint, c_uint64 + PY3 = sys.version_info[0] == 3 + if PY3: + string_types = str, + int_types = int, + else: + string_types = basestring, + int_types = int, long + if isinstance(hash, string_types): + clibrebound.reb_simulation_remove_particle_by_hash(byref(self), rebhash(hash), keep_sorted) + elif isinstance(hash, int_types): + clibrebound.reb_simulation_remove_particle_by_hash(byref(self), c_uint32(hash), keep_sorted) + elif isinstance(hash, hash_types): + clibrebound.reb_simulation_remove_particle_by_hash(byref(self), hash, keep_sorted) + + self.process_messages() + +# Orbit calculation + def orbits(self, primary=None, jacobi_masses=False): + """ + Calculate orbital parameters for all particles in the simulation. + By default, this functions returns the orbits in Jacobi coordinates. + + If MEGNO is enabled, variational particles will be ignored. + + Parameters + ---------- + + primary : rebound.Particle, optional + Set the primary against which to reference the osculating orbit. Default (use Jacobi center of mass). + For heliocentric coordinates, pass the central object to this parameter. + jacobi_masses: bool + Whether to use jacobi primary mass in orbit calculation. (Default: False) + + Returns + ------- + Returns an array of Orbits of length N-1. + """ + orbits = [] + + if primary is None: + jacobi = True + primary = self.particles[0] + clibrebound.reb_particle_com_of_pair.restype = Particle + else: + jacobi = False + + for p in self.particles[1:self.N_real]: + if jacobi_masses is True: + interior_mass = primary.m + # orbit conversion uses mu=G*(p.m+primary.m) so set prim.m=Mjac-m so mu=G*Mjac + primary.m = self.particles[0].m*(p.m + interior_mass)/interior_mass - p.m + orbits.append(p.orbit(primary=primary)) + primary.m = interior_mass # back to total mass of interior bodies to update com + else: + orbits.append(p.orbit(primary=primary)) + if jacobi is True: # update com to include current particle for next iteration + primary = clibrebound.reb_particle_com_of_pair(primary, p) + + return orbits + +# COM calculation + def com(self, first=0, last=None): + """ + Returns the center of momentum for all particles in the simulation. + + Parameters + ---------- + first: int, optional + If ``first`` is specified, only calculate the center of momentum starting + from index=``first``. + last : int or None, optional + If ``last`` is specified only calculate the center of momentum up to + (but excluding) index=``last``. Same behavior as Python's range function. + + Examples + -------- + >>> sim = rebound.Simulation() + >>> sim.add(m=1, x=-20) + >>> sim.add(m=1, x=-10) + >>> sim.add(m=1, x=0) + >>> sim.add(m=1, x=10) + >>> sim.add(m=1, x=20) + >>> com = sim.com() + >>> com.x + 0.0 + >>> com = sim.com(first=2,last=4) # Considers indices 2,3 + >>> com.x + 5.0 + + """ + if last is None: + last = self.N_real + clibrebound.reb_simulation_com_range.restype = Particle + return clibrebound.reb_simulation_com_range(byref(self), c_int(first), c_int(last)) + +# Tools + def serialize_particle_data(self,**kwargs): + """ + Fast way to access serialized particle data via numpy arrays. + + This function can directly set the values of numpy arrays to + current particle data. This is significantly faster than accessing + particle data via `sim.particles` as all the copying is done + on the C side. + No memory is allocated by this function. + It expects correctly sized numpy arrays as arguments. The argument + name indicates what kind of particle data is written to the array. + + Possible argument names are "hash", "m", "r", "xyz", "vxvyvz", and + "xyzvxvyvz". The datatype for the "hash" array needs to be uint32. + The other arrays expect a datatype of float64. The lengths of + "hash", "m", "r" arrays need to be at least sim.N. The lengths of + xyz and vxvyvz need to be at least 3*sim.N. The length of + "xyzvxvyvz" arrays need to be 6*sim.N. Exceptions are raised + otherwise. + + Note that this routine is only intended for special use cases + where speed is an issue. For normal use, it is recommended to + access particle data via the `sim.particles` array. Be aware of + potential issues that arise by directly accesing the memory of + numpy arrays (see numpy documentation for more details). + + Examples + -------- + This sets an array to the xyz positions of all particles: + + >>> import numpy as np + >>> a = np.zeros((sim.N,3),dtype="float64") + >>> sim.serialize_particle_data(xyz=a) + >>> print(a) + + To get all current radii of particles: + + >>> a = np.zeros(sim.N,dtype="float64") + >>> sim.serialize_particle_data(r=a) + >>> print(a) + + To get all current radii and hashes of particles: + + >>> a = np.zeros(sim.N,dtype="float64") + >>> b = np.zeros(sim.N,dtype="uint32") + >>> sim.serialize_particle_data(r=a,hash=b) + >>> print(a,b) + + """ + N = self.N + possible_keys = ["hash","m","r","xyz","vxvyvz","xyzvxvyvz"] + d = {x:None for x in possible_keys} + for k,v in kwargs.items(): + if k in d: + if k == "hash": + if v.dtype!= "uint32": + raise AttributeError("Expected 'uint32' data type for '%s' array."%k) + if v.size>> sim = rebound.Simulation() + >>> sim.add(m=1.) + >>> sim.save_to_file("test.bin") + >>> sim2 = rebound.Simulation("test.bin") + + The following example creates a simulation, then + initializes the Simulationarchive and integrates + it forward in time. + + >>> sim = rebound.Simulation() + >>> sim.add(m=1.) + >>> sim.add(m=1.e-3,x=1.,vy=1.) + >>> sim.save_to_file("sa.bin",interval=1000.) + >>> sim.integrate(1e8) + + The Simulationarchive can later be read in using the following syntax: + + >>> sa = rebound.Simulationarchive("sa.bin") + >>> sim = sa[0] # get the first snapshot in the SA file (initial conditions) + >>> sim = sa[-1] # get the last snapshot in the SA file + + """ + if delete_file and os.path.isfile(filename): + os.remove(filename) + + modes = sum(1 for i in [interval, walltime,step] if i is not None) + + if modes == 0: + # Immediately save to file. + clibrebound.reb_simulation_save_to_file(byref(self), c_char_p(filename.encode("ascii"))) + elif modes == 1: + if delete_file: + # reset intervals so that automate functions in C set sim->next consistently + self.simulationarchive_auto_interval = 0 + self.simulationarchive_auto_walltime = 0 + self.simulationarchive_auto_step = 0 + if interval: + clibrebound.reb_simulation_save_to_file_interval(byref(self), c_char_p(filename.encode("ascii")), c_double(interval)) + if walltime: + clibrebound.reb_simulation_save_to_file_walltime(byref(self), c_char_p(filename.encode("ascii")), c_double(walltime)) + if step: + clibrebound.reb_simulation_save_to_file_step(byref(self), c_char_p(filename.encode("ascii")), c_uint64(step)) + self.process_messages() + else: + raise AttributeError("Cannot specify more than one of interval, walltime, or step.") + + def output_screenshot(self, filename): + """ + Saves a screenshot of the current WebGL visualization to a file in png format. + + The web server needs to be started, and a web browser needs to be + connected to the server in order to take screen shots. + + Arguments + --------- + filename : str + Filename of the output file. + + Examples + -------- + The following example take a screenshot of a simulation. + + >>> sim = rebound.Simulation() + >>> sim.integrator = "whfast" + >>> sim.add(m=1.) + >>> sim.add(a=1.) + >>> sim.widget() # this connects one client + >>> sim.output_screenshot("screenshot.png") + """ + + clibrebound.reb_simulation_output_screenshot(byref(self), c_char_p(filename.encode("ascii"))) + self.process_messages() + +# Integration + def step(self): + """ + Perform exactly one integration step with REBOUND. This function is rarely needed. + Instead, use integrate(). + """ + clibrebound.reb_simulation_step(byref(self)) + self.process_messages() + + def steps(self, N_steps): + """ + Perform exactly N_steps integration steps with REBOUND. This function is rarely needed. + Instead, use integrate(). + """ + clibrebound.reb_simulation_steps(byref(self),c_uint(N_steps)) + self.process_messages() + + def integrate(self, tmax, exact_finish_time=1): + """ + Main integration function. Call this function when you have setup your simulation and want to integrate it forward (or backward) in time. The function might be called many times to integrate the simulation in steps and create outputs in-between steps. + + Parameters + ---------- + tmax : float + The final time of your simulation. If the current time is 100, and tmax=200, then after the calling the integrate routine, the time has advanced to t=200. If tmax is larger than or equal to the current time, no integration will be performed. + exact_finish_time: int, optional + This argument determines whether REBOUND should try to finish at the exact time (tmax) you give it or if it is allowed to overshoot. Overshooting could happen if one starts at t=0, has a timestep of dt=10 and wants to integrate to tmax=25. With ``exact_finish_time=1``, the integrator will choose the last timestep such that t is exactly 25 after the integration, otherwise t=30. Note that changing the timestep does affect the accuracy of symplectic integrators negatively. + + Exceptions + ---------- + Exceptions are thrown when no more particles are left in the simulation or when a generic integration error occured. + If you specified exit_min_distance or exit_max_distance, then additional exceptions might thrown for escaping particles or particles that undergo a clos encounter. + + Examples + -------- + The typical usage is as follows. Note the use of ``np.linspace`` to create equally spaced outputs. + Using ``np.logspace`` can be used to easily produce logarithmically spaced outputs. + + >>> import numpy as np + >>> for time in np.linspace(0,100.,10): + >>> sim.integrate(time) + >>> perform_output(sim) + + """ + self.exact_finish_time = c_int(exact_finish_time) + ret_value = clibrebound.reb_simulation_integrate(byref(self), c_double(tmax)) + if ret_value == 1: + self.process_messages() + raise GenericError("An error occured during the integration.") + if ret_value == 2: + if self._N_odes>0: + raise NoParticles("No particles found. Will exit. Use BS integrator to integrate user-defined ODEs without any particles present."); + else: + raise NoParticles("No more particles left in simulation.") + if ret_value == 3: + raise Encounter("Two particles had a close encounter (dexit_max_distance).") + if ret_value == 5: + pass # User caused exit. Do not raise error message + if ret_value == 6: + raise KeyboardInterrupt + if ret_value == 7: + raise Collision("Two particles collided (d < r1+r2)") + self.process_messages() + + def stop(self): + """ + Call this function to stop an integration, for example + from the heartbeat function. + """ + clibrebound.reb_simulation_stop(byref(self)) + + def reset_integrator(self): + """ + Call this function to reset temporary integrator variables + """ + clibrebound.reb_simulation_reset_integrator(byref(self)) + + def synchronize(self): + """ + Call this function if safe-mode is disabled and you need to synchronize particle positions and velocities between timesteps. + """ + clibrebound.reb_simulation_synchronize(byref(self)) + self.process_messages() + + def update_tree(self): + """ + Call this function to update the tree structure manually after removing particles. + """ + clibrebound.reb_simulation_update_tree(byref(self)) + + +class timeval(Structure): + _fields_ = [("tv_sec",c_int64),("tv_usec",c_int64)] + +from .particle import Particle +from .particles import Particles + + +from .integrators.bs import ODE, IntegratorBS +from .integrators.whfast import IntegratorWHFast +from .integrators.whfast512 import IntegratorWHFast512 +from .integrators.janus import IntegratorJanus +from .integrators.sei import IntegratorSEI +from .integrators.leapfrog import IntegratorLeapfrog +from .integrators.eos import IntegratorEOS +from .integrators.ias15 import IntegratorIAS15 +from .integrators.saba import IntegratorSABA +from .integrators.mercurius import IntegratorMercurius +from .integrators.trace import IntegratorTRACE + +from .variation import Variation + +# Setting up fields after class definition (because of self-reference) + +class ServerData(Structure): + _fields_ = [ + ("r", POINTER(Simulation)), + ("_screenshot", c_void_p), + ("_N_screenshot", c_size_t), + ("_status_before_screenshot", c_int), + ("port", c_int), + ("need_copy", c_int), + ("ready", c_int), + # other fields not needed. + ] + +Simulation._fields_ = [ + ("t", c_double), + ("G", c_double), + ("softening", c_double), + ("dt", c_double), + ("dt_last_done", c_double), + ("steps_done", c_uint64), + ("N", c_uint), + ("N_var", c_int), + ("N_var_config", c_int), + ("var_config", POINTER(Variation)), + ("_var_rescale_warning", c_int), + ("N_active", c_int), + ("testparticle_type", c_int), + ("testparticle_hidewarnings", c_int), + ("_particle_lookup_table", POINTER(HashPointerPair)), + ("hash_ctr", c_int), + ("N_lookup", c_int), + ("N_allocated_lookup", c_int), + ("N_allocated", c_uint), + ("_particles", POINTER(Particle)), + ("gravity_cs", POINTER(Vec3dBasic)), + ("N_allocated_gravity_cs", c_int), + ("_tree_root", c_void_p), + ("_tree_needs_update", c_int), + ("opening_angle2", c_double), + ("_status", c_int), + ("exact_finish_time", c_int), + ("force_is_velocity_dependent", c_uint), + ("gravity_ignore", c_uint), + ("_output_timing_last", c_double), + ("save_messages", c_int), + ("messages", c_void_p), + ("exit_max_distance", c_double), + ("exit_min_distance", c_double), + ("usleep", c_double), + ("_display_view", c_void_p), + ("_display_data", c_void_p), # not needed from python + ("_server_data", POINTER(ServerData)), + ("track_energy_offset", c_int), + ("energy_offset", c_double), + ("walltime", c_double), + ("walltime_last_step", c_double), + ("walltime_last_steps", c_double), + ("_walltime_last_steps_sum", c_double), + ("_walltime_last_steps_N", c_int), + ("python_unit_t",c_uint32), + ("python_unit_l",c_uint32), + ("python_unit_m",c_uint32), + ("boxsize", Vec3dBasic), + ("boxsize_max", c_double), + ("root_size", c_double), + ("N_root", c_int), + ("N_root_x", c_int), + ("N_root_y", c_int), + ("N_root_z", c_int), + ("N_ghost_x", c_int), + ("N_ghost_y", c_int), + ("N_ghost_z", c_int), + ("collision_resolve_keep_sorted", c_int), + ("collisions", c_void_p), + ("N_allocated_collisions", c_int), + ("collisions_N", c_uint), + ("minimum_collision_velocity", c_double), + ("collisions_plog", c_double), + ("collisions_log_n", c_int64), + ("_calculate_megno", c_int), + ("_megno_Ys", c_double), + ("_megno_Yss", c_double), + ("_megno_cov_Yt", c_double), + ("_megno_var_t", c_double), + ("_megno_mean_t", c_double), + ("_megno_mean_Y", c_double), + ("_megno_initial_t", c_double), + ("_megno_n", c_int64), + ("rand_seed",c_uint), + ("simulationarchive_version", c_int), + ("simulationarchive_auto_interval", c_double), + ("simulationarchive_auto_walltime", c_double), + ("simulationarchive_auto_step", c_uint64), + ("simulationarchive_next", c_double), + ("simulationarchive_next_step", c_uint64), + ("_simulationarchive_filename", c_char_p), + ("_collision", c_int), + ("_integrator", c_int), + ("_boundary", c_int), + ("_gravity", c_int), + ("ri_sei", IntegratorSEI), + ("ri_leapfrog", IntegratorLeapfrog), + ("ri_whfast", IntegratorWHFast), + ("ri_whfast512", IntegratorWHFast512), + ("ri_saba", IntegratorSABA), + ("ri_ias15", IntegratorIAS15), + ("ri_mercurius", IntegratorMercurius), + ("ri_trace", IntegratorTRACE), + ("ri_janus", IntegratorJanus), + ("ri_eos", IntegratorEOS), + ("ri_bs", IntegratorBS), + ("_odes", POINTER(POINTER(ODE))), + ("_N_odes", c_int), + ("_N_allocated_odes", c_int), + ("_odes_warnings", c_int), + ("_additional_forces", CFUNCTYPE(None,POINTER(Simulation))), + ("_pre_timestep_modifications", CFUNCTYPE(None,POINTER(Simulation))), + ("_post_timestep_modifications", CFUNCTYPE(None,POINTER(Simulation))), + ("_heartbeat", CFUNCTYPE(None,POINTER(Simulation))), + ("_key_callback", CFUNCTYPE(c_int,POINTER(Simulation), c_int)), + ("_coefficient_of_restitution", CFUNCTYPE(c_double,POINTER(Simulation), c_double)), + ("_collision_resolve", CFUNCTYPE(c_int,POINTER(Simulation), CollisionS)), + ("_free_particle_ap", CFUNCTYPE(None, POINTER(Particle))), + ("_extras_cleanup", CFUNCTYPE(None, POINTER(Simulation))), + ("extras", c_void_p), + ] + + +AFF = CFUNCTYPE(None,POINTER(Simulation)) +CORFF = CFUNCTYPE(c_double,POINTER(Simulation), c_double) +COLRFF = CFUNCTYPE(c_int, POINTER(Simulation), CollisionS) +FPA = CFUNCTYPE(None, POINTER(Particle)) + +# Check if Simulation has same size upon import. Nothing will work if there is a mismatch. +clibrebound.reb_simulation_struct_size.res_type = c_size_t +simulation_size_c = clibrebound.reb_simulation_struct_size() + +if simulation_size_c != sizeof(Simulation): + raise ImportError("Size of C struct `reb_simulation` differs from size of python class `Simulation`. This will lead to undefined behaviour. Make sure the C and Python versions of REBOUND are up-to-date and consistent. If you have installed REBOUND from source, you might need to recompile / reinstall the python package.") + + +# Import at the end to avoid circular dependence +from . import horizons +from . import data +from .simulationarchive import Simulationarchive diff --git a/rebound/source/rebound/simulationarchive.py b/rebound/source/rebound/simulationarchive.py new file mode 100644 index 0000000000000000000000000000000000000000..5fee21bf955c564c81fe55527fafc534ba472d80 --- /dev/null +++ b/rebound/source/rebound/simulationarchive.py @@ -0,0 +1,366 @@ +from ctypes import Structure, c_double, POINTER, c_int, c_int64, c_uint64, c_void_p, c_char_p, byref +import os +import sys +import math +import warnings + +class Simulationarchive(Structure): + """ + Simulationarchive Class. + + The Simulationarchive is a binary file format which includes all + settings, constants as well as particle positions and velocities. + This makes it possible to reproduce a simulation exactly + (down to the last bit). The Simulationarchive allows you to add + an arbitrary number of snapshots. Simulations can be reconstructed + from these snapshots. Since version 2 of the Simulationarchive + (Spring 2018), you can change anything in-between snapshots, + including settings like the integrator, the timestep, the number of + particles. The file format is efficient in that only data + that changed is stored in the Simulationarchive file. This is all + done automatically. All the user has to do is call the function + to create a snapshot. + The Simulationarchive thus allows for fast access to any long-running + simulations. For a full discussion of the functionality see the paper + by Rein & Tamayo 2017. + + Requirements + ------------ + When using the Simulationarchive, the user is responsible for + setting up any additional forces or post-timestep modifications that + were present during the original integration. + + Examples + -------- + Here is a simple example: + + >>> sa = rebound.Simulationarchive("archive.bin") + >>> sim = sa.getSimulation(t=1e6) + >>> print(sim.particles[1]) + >>> for sim in sa: + >>> print(sim.t, sim.particles[1].e) + + """ + _fields_ = [("_inf", c_void_p), + ("_filename", c_char_p), + ("version", c_int), + ("_reb_version_major", c_int), + ("_reb_version_minor", c_int), + ("_reb_version_patch", c_int), + ("auto_interval", c_double), + ("auto_walltime", c_double), + ("auto_step", c_uint64), + ("nblobs", c_int64), + ("offset", POINTER(c_uint64)), + ("t", POINTER(c_double)) + ] + def __repr__(self): + return '<{0}.{1} object at {2}, nblobs={3}, reb_version={4}.{5}.{6}>'.format(self.__module__, type(self).__name__, hex(id(self)), self.nblobs, self._reb_version_major, self._reb_version_minor, self._reb_version_patch) + + def __init__(self,filename,setup=None, setup_args=(), process_warnings=True, reuse_index=None): + """ + Arguments + --------- + filename : str or bytes + Filename of the Simulationarchive file to be opened. + Can also be of type bytes to read from memory (uses fmemopen). + setup : function + Function to be called everytime a simulation object is created + In this function, the user can setup additional forces + setup_args : list + Arguments passed to setup function. + process_warnings : Bool + Display warning messages if True (default). Only fail on major errors if set to False. + reuse_index : Simulationarchive + Useful when loading many large Simulationarchives. After loading the first + Simulationarchive, pass it as this argument when opening other Simulationarchives with the + same shape. Note: Simulationarchive shape must be exactly the same to avoid unexpected + behaviour. + + """ + self.setup = setup + self.setup_args = setup_args + self.process_warnings = process_warnings + w = c_int(0) + if reuse_index: + # Optimized loading + clibrebound.reb_simulationarchive_create_from_file_with_messages(byref(self),c_char_p(filename.encode("ascii")), byref(reuse_index), byref(w)) + + else: + clibrebound.reb_simulationarchive_create_from_file_with_messages(byref(self),c_char_p(filename.encode("ascii")), None, byref(w)) + for majorerror, value, message in BINARY_WARNINGS: + if w.value & value: + if majorerror: + raise RuntimeError(message) + else: + # Just a warning + if value==2: # Version warning. Append version used to save SA to message + sa_version = "%d.%d.%d" %(self._reb_version_major, self._reb_version_minor, self._reb_version_patch) + if sa_version != __version__ and sa_version != "0.0.0": + message += " Binary file was saved with REBOUND Version " + sa_version + "." + message += " You are currently using REBOUND Version " + __version__ + "." + if process_warnings: + warnings.warn(message, RuntimeWarning) + if not process_warnings: + # Store for later + self.warnings = w + if self.nblobs<1: + RuntimeError("Something went wrong. Simulationarchive is empty.") + self.tmin = self.t[0] + self.tmax = self.t[self.nblobs-1] + + def __del__(self): + if self._b_needsfree_ == 1: + clibrebound.reb_simulationarchive_free_pointers(byref(self)) + + def __str__(self): + """ + Returns a string with details of this simulationarchive. + """ + return '<{0}.{1} object at {2}, nblobs={3}, reb_version={4}.{5}.{6}>'.format(self.__module__, type(self).__name__, hex(id(self)), self.nblobs, self._reb_version_major, self._reb_version_minor, self._reb_version_patch) + + def __getitem__(self, key): + PY3 = sys.version_info[0] == 3 + if PY3: + int_types = int, + else: + int_types = int, long, + + if isinstance(key, slice): + raise AttributeError("Slicing not supported due to optimizations.") + if not isinstance(key, int_types): + raise AttributeError("Must access individual simulations with integer index.") + if key < 0: + key += len(self) + if key>= len(self) or key<0: + raise IndexError("Index out of range, number of snapshots stored in binary: %d."%len(self)) + + w = c_int(0) + sim = Simulation() + clibrebound.reb_simulation_create_from_simulationarchive_with_messages(byref(sim), byref(self), c_int64(key), byref(w)) + if self.setup: + self.setup(sim, *self.setup_args) + for majorerror, value, message in BINARY_WARNINGS: + if w.value & value: + if majorerror: + raise RuntimeError(message) + else: + # Just a warning + if self.process_warnings: + warnings.warn(message, RuntimeWarning) + # Also process Simulation Warnings + if self.process_warnings: + sim.process_messages() + if sim.ri_eos.is_synchronized==0 or sim.ri_mercurius.is_synchronized==0 or sim.ri_whfast.is_synchronized==0 or sim.ri_mercurius.is_synchronized==0: + warnings.warn("The simulation might not be synchronized. You can manually synchronize it by calling sim.synchronize().", RuntimeWarning) + + return sim + + def __setitem__(self, key, value): + raise AttributeError("Cannot modify Simulationarchive.") + + def __delitem__(self, key): + raise AttributeError("Cannot modify Simulationarchive.") + + def __iter__(self): + for i in range(len(self)): + yield self[i] + + def __len__(self): + return self.nblobs # number of SA snapshots (also counting binary at t=0) + + def _getSnapshotIndex(self, t): + """ + Return the index for the snapshot just before t + """ + if t>self.tmax or tt: + r = bi + else: + l = bi + if r-1<=l: + bi = l + break + return bi, self.t[bi] + + def getSimulation(self, t, mode='snapshot', keep_unsynchronized=1): + """ + This function returns a simulation object at (or close to) the requested time `t`. + Everytime this function is called a new simulation object is created. + + + Arguments + --------- + t : float + Requested time. Needs to be within tmin and tmax of this Simulationarchive. + mode : str + This argument determines how close the simulation should be to the requested time. + There are three options. + - 'snapshot' This loads a nearby snapshot such that sim.t>> sa = rebound.Simulationarchive("archive.bin") + >>> sim = sa.getSimulation(t=1e6, mode="close") + >>> print(sim.particles[1]) + >>> for sim in sa: + >>> print(sim.t, sim.particles[1].e) + + """ + if mode not in ['snapshot', 'close', 'exact']: + raise AttributeError("Unknown mode.") + + bi, bt = self._getSnapshotIndex(t) + sim = Simulation() + w = c_int(0) + clibrebound.reb_simulation_create_from_simulationarchive_with_messages(byref(sim),byref(self),bi,byref(w)) + + # Restore function pointers and any additional setup required by the user provided functions + if self.setup: + self.setup(sim, *self.setup_args) + + if mode=='snapshot': + if (sim.integrator=="mercurius" and sim.ri_mercurius.safe_mode == 1) or (sim.integrator=="whfast" and sim.ri_whfast.safe_mode == 1) or (sim.integrator=="saba" and sim.ri_saba.safe_mode == 1): + keep_unsynchronized = 0 + sim.ri_whfast.keep_unsynchronized = keep_unsynchronized + sim.ri_saba.keep_unsynchronized = keep_unsynchronized + sim.synchronize() + return sim + else: + if mode=='exact': + keep_unsynchronized = 0 + if (sim.integrator=="mercurius" and sim.ri_mercurius.safe_mode == 1) or (sim.integrator=="whfast" and sim.ri_whfast.safe_mode == 1) or (sim.integrator=="saba" and sim.ri_saba.safe_mode == 1): + keep_unsynchronized = 0 + sim.ri_whfast.keep_unsynchronized = keep_unsynchronized + sim.ri_saba.keep_unsynchronized = keep_unsynchronized + exact_finish_time = 1 if mode=='exact' else 0 + sim.integrate(t,exact_finish_time=exact_finish_time) + + return sim + + + def getSimulations(self, times, **kwargs): + """ + A generator to quickly access many simulations. + The arguments are the same as for `getSimulation`. + """ + for t in times: + yield self.getSimulation(t, **kwargs) + + + def getBezierPaths(self,origin=None): + """ + This function returns array that can be used as a Cubic Bezier + Path in matplotlib. + The function returns two arrays, the first one contains + the vertices for each particle and has the shape + (Nvert, Nparticles, 2) where Nvert is the number of vertices. + The second array returned describes the type of vertices to be + used with matplotlib's Patch class. + + Arguments + --------- + origin : multiple, optional + If `origin` is None (default), then none of the + coordinates are shifted. If `origin` is an integer + then the particle with that index is used as the + origin. if `origin` is equal to `com`, then the + center of mass is used as the origin. + + + Examples + -------- + The following example reads in a Simulationarchive and plots + the trajectories as Cubic Bezier Curves. It also plots the + actual datapoints stored in the Simulationarchive. + Note that the Simulationarchive needs to have enough + datapoints to allow for smooth and reasonable orbits. + + >>> from matplotlib.path import Path + >>> import matplotlib.patches as patches + >>> sa = rebound.Simulationarchive("test.bin") + >>> verts, codes = sa.getBezierPaths(origin=0) + >>> fig, ax = plt.subplots() + >>> for j in range(sa[0].N): + >>> path = Path(verts[:,j,:], codes) + >>> patch = patches.PathPatch(path, facecolor='none') + >>> ax.add_patch(patch) + >>> ax.scatter(verts[::3,j,0],verts[::3,j,1]) + >>> ax.set_aspect('equal') + >>> ax.autoscale_view() + + """ + import numpy as np + Npoints = len(self)*3-2 + if len(self)<=1: + raise RuntimeError() + Nparticles = self[0].N + verts = np.zeros((Npoints,Nparticles,2)) + xy = np.zeros((len(self),Nparticles,2)) + + if origin=="com": + origin = -2 + elif origin is not None: + try: + origin = int(origin) + except: + raise AttributeError("Cannot parse origin") + if origin<0 or origin>=Nparticles: + raise AttributeError("Origin index out of range") + + + for i, sim in enumerate(self): + if origin is None: + shift = (0,0,0,0) + elif origin == -2: + sp = sim.com() + shift = (sp.x,sp.y,sp.vx,sp.vy) + else: + sp = sim.particles[origin] + shift = (sp.x,sp.y,sp.vx,sp.vy) + for j in range(sim.N): + p = sim.particles[j] + if i==0: + verts[0,j] = p.x-shift[0],p.y-shift[1] + verts[1,j] = p.vx-shift[2], p.vy-shift[3] + else: + dt = sim.t-tlast # time since last snapshot + verts[-2+i*3,j] = verts[-2+i*3,j]*dt/3.+verts[-3+i*3,j] + + verts[ 0+i*3,j] = p.x-shift[0],p.y-shift[1] + + verts[-1+i*3,j] = -p.vx+shift[2], -p.vy+shift[3] + verts[-1+i*3,j] = verts[-1+i*3+0,j]*dt/3.+verts[ 0+i*3,j] + + if i!=len(self)-1: + verts[+1+i*3,j] = p.vx-shift[2], p.vy-shift[3] + + + xy[i,j] = p.x,p.y + tlast = sim.t + codes = np.full(Npoints,4,dtype=np.uint8) # Hardcoded 4 = matplotlib.path.Path.CURVE4 + codes[0] = 1 # Hardcoded 1 = matplotlib.path.Path.MOVETO + return verts, codes + +from .simulation import Simulation, BINARY_WARNINGS +from . import clibrebound, __version__ diff --git a/rebound/source/rebound/tests/__init__.py b/rebound/source/rebound/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/rebound/source/rebound/tests/__init__.py @@ -0,0 +1 @@ + diff --git a/rebound/source/rebound/tests/test_additional_forces.py b/rebound/source/rebound/tests/test_additional_forces.py new file mode 100644 index 0000000000000000000000000000000000000000..45bdb4a6d0175078414d7c440da1e8a691e5dfcf --- /dev/null +++ b/rebound/source/rebound/tests/test_additional_forces.py @@ -0,0 +1,100 @@ +import rebound +import unittest + +class TestAdditionalForces(unittest.TestCase): + def test_af_ias15(self): + sim = rebound.Simulation() + sim.integrator = "ias15" + sim.force_is_velocity_dependent = 1 + sim.add(m=1) + sim.add(m=1e-6,a=1) + sim.add(m=1e-3,a=5) + sim.move_to_com() + def af(sim): + fac = 0.01 + sim.contents.particles[2].ax -= fac*sim.contents.particles[2].vx + sim.contents.particles[2].ay -= fac*sim.contents.particles[2].vz + sim.contents.particles[2].az -= fac*sim.contents.particles[2].vy + sim.additional_forces = af + sim.integrate(10.) + self.assertAlmostEqual(sim.particles[2].a,4.86583,delta=1e-5) + + def test_af_mercurius(self): + sim = rebound.Simulation() + sim.integrator = "mercurius" + sim.dt = 0.005 + sim.force_is_velocity_dependent = 1 + sim.add(m=1) + sim.add(m=1e-6,a=1) + sim.add(m=1e-3,a=5) + sim.move_to_com() + def af(sim): + fac = 0.01 + sim.contents.particles[2].ax -= fac*sim.contents.particles[2].vx + sim.contents.particles[2].ay -= fac*sim.contents.particles[2].vz + sim.contents.particles[2].az -= fac*sim.contents.particles[2].vy + sim.additional_forces = af + sim.integrate(10.) + self.assertAlmostEqual(sim.particles[2].a,4.86583,delta=1e-4) + + def test_af_mercurius_closeencounter(self): + sim = rebound.Simulation() + sim.integrator = "mercurius" + sim.ri_mercurius.r_crit_hill = 100000 # make sure encounter happens + sim.dt = 0.005 + sim.force_is_velocity_dependent = 1 + sim.add(m=1) + sim.add(m=1e-6,a=1) + sim.add(m=1e-3,a=5) + sim.move_to_com() + def af(sim): + fac = 0.01 + sim.contents.particles[2].ax -= fac*sim.contents.particles[2].vx + sim.contents.particles[2].ay -= fac*sim.contents.particles[2].vz + sim.contents.particles[2].az -= fac*sim.contents.particles[2].vy + sim.additional_forces = af + sim.integrate(10.) + self.assertAlmostEqual(sim.particles[2].a,4.86583,delta=1e-4) + + + def test_af_whfast(self): + sim = rebound.Simulation() + sim.integrator = "whfast" + sim.dt = 0.01 + sim.force_is_velocity_dependent = 1 + sim.add(m=1) + sim.add(m=1e-6,a=1) + sim.add(m=1e-3,a=5) + sim.move_to_com() + def af(sim): + fac = 0.01 + sim.contents.particles[2].ax -= fac*sim.contents.particles[2].vx + sim.contents.particles[2].ay -= fac*sim.contents.particles[2].vz + sim.contents.particles[2].az -= fac*sim.contents.particles[2].vy + sim.additional_forces = af + sim.integrate(10.) + self.assertAlmostEqual(sim.particles[2].a,4.86583,delta=1e-4) + + def test_af_whfastjac(self): + sim = rebound.Simulation() + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "jacobi" + sim.dt = 0.01 + sim.force_is_velocity_dependent = 1 + sim.add(m=1) + sim.add(m=1e-6,a=1) + sim.add(m=1e-3,a=5) + sim.move_to_com() + def af(sim): + fac = 0.01 + sim.contents.particles[2].ax -= fac*sim.contents.particles[2].vx + sim.contents.particles[2].ay -= fac*sim.contents.particles[2].vz + sim.contents.particles[2].az -= fac*sim.contents.particles[2].vy + sim.additional_forces = af + sim.integrate(10.) + self.assertAlmostEqual(sim.particles[2].a,4.86583,delta=1e-4) + + +if __name__ == "__main__": + unittest.main() + diff --git a/rebound/source/rebound/tests/test_binary_fields.py b/rebound/source/rebound/tests/test_binary_fields.py new file mode 100644 index 0000000000000000000000000000000000000000..cd22bb5235c944b5a94ce5872567c9be66b9415f --- /dev/null +++ b/rebound/source/rebound/tests/test_binary_fields.py @@ -0,0 +1,19 @@ +import rebound +import rebound.binary_field_descriptor +import unittest + +class TestBinaryFields(unittest.TestCase): + def test_unique(self): + l = rebound.binary_field_descriptor.binary_field_descriptor_list() + types = [] + names = [] + for i in l: + types.append(i.type) + names.append(i.name) + self.assertEqual(len(types), len(set(types))) + self.assertEqual(len(names), len(set(names))) + + +if __name__ == "__main__": + unittest.main() + diff --git a/rebound/source/rebound/tests/test_boundary.py b/rebound/source/rebound/tests/test_boundary.py new file mode 100644 index 0000000000000000000000000000000000000000..7c653fe65e1c4a0331bd670aaafcf8ba9adec8e6 --- /dev/null +++ b/rebound/source/rebound/tests/test_boundary.py @@ -0,0 +1,76 @@ +import rebound +import unittest + +class TestBoundary(unittest.TestCase): + + def test_open(self): + for gravity in ["basic", "tree"]: + sim = rebound.Simulation() + sim.boundary = "open" + sim.gravity = gravity + sim.configure_box(10.) + sim.add(m=0.1,x=1., vx=5.0) + sim.add(m=0.1,x=-1., vx=-5.0) + sim.add(m=0.1,y=1., vx=6.0) + sim.add(m=0.1,x=-1., y=-1., vx=-3., vy=-3.) + sim.add(m=0.1,z=1., vz=5.0) + sim.add(m=0.1,z=-1., vz=-5.0) + self.assertEqual(sim.N,6) + sim.integrate(1.) + self.assertEqual(sim.N,1) + with self.assertRaises(rebound.NoParticles): + sim.integrate(2.) + + def test_periodic(self): + sim = rebound.Simulation() + sim.boundary = "periodic" + sim.configure_box(10.) + sim.add(m=0.0,x=1., vx=5.0, vy=15.1, vz=26.) + sim.add(m=0.0,x=-1., vx=-5.0, vy=-15.1, vz=-26.) + sim.integrate(1.) + self.assertAlmostEqual(sim.particles[0].x,-4,delta=1e-16) + self.assertAlmostEqual(sim.particles[0].y,-4.9,delta=1e-14) + self.assertAlmostEqual(sim.particles[0].z,-4.0,delta=1e-16) + self.assertAlmostEqual(sim.particles[1].x,4,delta=1e-16) + sim.integrate(2.) + self.assertAlmostEqual(sim.particles[0].x,1,delta=1e-16) + self.assertAlmostEqual(sim.particles[0].y,0.2,delta=1e-14) + self.assertAlmostEqual(sim.particles[0].z,2.0,delta=1e-16) + self.assertAlmostEqual(sim.particles[1].x,-1,delta=1e-16) + self.assertEqual(sim.N,2) + + def test_shear_vertical(self): + # Note: not physical + sim = rebound.Simulation() + sim.ri_sei.OMEGA = 1 + sim.configure_box(1) + sim.N_ghost_x = 2 + sim.N_ghost_y = 2 + sim.integrator = "sei" + sim.boundary = "shear" + sim.add(z=0.45,vz=100.0) + sim.add(z=-0.45,vz=-100.0) + sim.integrate(1) + self.assertEqual(2,sim.N) + + def test_add_outside(self): + for boundary in ["open", "shear", "periodic"]: + sim = rebound.Simulation() + sim.boundary = boundary + sim.configure_box(10.) + with self.assertRaises(RuntimeError): + sim.add(x=6.) + with self.assertRaises(RuntimeError): + sim.add(x=-6.) + with self.assertRaises(RuntimeError): + sim.add(y=6.) + with self.assertRaises(RuntimeError): + sim.add(y=-6.) + with self.assertRaises(RuntimeError): + sim.add(z=6.) + with self.assertRaises(RuntimeError): + sim.add(z=-6.) + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_bs.py b/rebound/source/rebound/tests/test_bs.py new file mode 100644 index 0000000000000000000000000000000000000000..d4e0aa165e8dac2cfb0d3fdd30f3463a47656a78 --- /dev/null +++ b/rebound/source/rebound/tests/test_bs.py @@ -0,0 +1,373 @@ +import rebound +import unittest +import math +import rebound.data + + +def derivatives_ho(ode, yDot, y, t): + m = 1. + k = 100. + yDot[0] = y[1] + yDot[1] = -k/m*y[0] + +class TestIntegratorBSHarmonic(unittest.TestCase): + def test_bs_harmonic_only(self): + sim = rebound.Simulation() + sim.integrator = "BS" + ode_ho = sim.create_ode(length=2, needs_nbody=False) + ode_ho.derivatives = derivatives_ho + + ode_ho.y[0] = 1. + ode_ho.y[1] = 0. # zero velocity + + sim.integrate(20.*math.pi) + self.assertLess(math.fabs(ode_ho.y[0]-1.),2e-10) + self.assertLess(math.fabs(ode_ho.y[1]),2e-9) + + def test_bs_harmonic_only_low_eps(self): + sim = rebound.Simulation() + sim.integrator = "BS" + sim.ri_bs.eps_abs = 1e-5 + sim.ri_bs.eps_rel = 1e-5 + ode_ho = sim.create_ode(length=2, needs_nbody=False) + ode_ho.derivatives = derivatives_ho + + ode_ho.y[0] = 1. + ode_ho.y[1] = 0. # zero velocity + + sim.integrate(20.*math.pi) + self.assertLess(math.fabs(ode_ho.y[0]-1.),2e-8) + self.assertLess(math.fabs(ode_ho.y[1]),5e-6) + + def test_bs_harmonic_only_high_eps(self): + sim = rebound.Simulation() + sim.integrator = "BS" + sim.ri_bs.eps_abs = 1e-10 + sim.ri_bs.eps_rel = 1e-10 + ode_ho = sim.create_ode(length=2, needs_nbody=False) + ode_ho.derivatives = derivatives_ho + + ode_ho.y[0] = 1. + ode_ho.y[1] = 0. # zero velocity + + sim.integrate(20.*math.pi) + self.assertLess(math.fabs(ode_ho.y[0]-1.),1e-10) + self.assertLess(math.fabs(ode_ho.y[1]),1e-10) + + + def test_bs_harmonic_with_nbody(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.123); + sim.add(m=1e-3,a=2.6,e=0.123); + sim.integrator = "BS" + ode_ho = sim.create_ode(length=2, needs_nbody=False) + ode_ho.derivatives = derivatives_ho + + ode_ho.y[0] = 1. + ode_ho.y[1] = 0. # zero velocity + + sim.integrate(20.*math.pi) + self.assertLess(math.fabs(ode_ho.y[0]-1.),2e-10) + self.assertLess(math.fabs(ode_ho.y[1]),2e-9) + + def test_bs_harmonic_with_nbody_coupledy(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.123); + sim.add(m=1e-3,a=2.6,e=0.123); + sim.integrator = "BS" + ode_ho = sim.create_ode(length=2, needs_nbody=True) + ode_ho.derivatives = derivatives_ho + + ode_ho.y[0] = 1. + ode_ho.y[1] = 0. # zero velocity + + sim.integrate(20.*math.pi) + self.assertLess(math.fabs(ode_ho.y[0]-1.),2e-10) + self.assertLess(math.fabs(ode_ho.y[1]),2e-9) + + + +def af(simp): + sim = simp.contents + x = sim.particles[0].x + y = sim.particles[0].y + z = sim.particles[0].z + r = math.sqrt(x*x+y*y+z*z) + sim.particles[0].ax -= x/(r*r*r) + sim.particles[0].ay -= y/(r*r*r) + sim.particles[0].az -= z/(r*r*r) + +class TestIntegratorBS(unittest.TestCase): + def test_bs_additional_force_only(self): + sim = rebound.Simulation() + sim.additional_forces = af + sim.integrator = "bs" + eps = 1e-11 + sim.ri_bs.eps_rel = eps + sim.ri_bs.eps_abs = eps + sim.add(m=0,x=1,vy=1) + sim.integrate(2.*math.pi) + self.assertLess(math.fabs(sim.particles[0].x-1.),5*eps) + self.assertLess(math.fabs(sim.particles[0].vy-1.),5*eps) + self.assertLess(math.fabs(sim.particles[0].y),5*eps) + self.assertLess(math.fabs(sim.particles[0].vx),5*eps) + + + def test_bs_outersolarsystem(self): + for eps in [1e-5, 1e-7, 1e-9, 1e-11]: + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + sim.integrator = "bs" + sim.ri_bs.eps_rel = eps + sim.ri_bs.eps_abs = eps + e0 = sim.energy() + sim.integrate(1000) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),5*eps) + + def test_bs_high_e(self): + for eps in [1e-7, 1e-9, 1e-11]: + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.9) + sim.add(m=1e-3,a=6,e=0.9,f=0.5,omega=1.6) + sim.integrator = "bs" + sim.ri_bs.eps_rel = eps + sim.ri_bs.eps_abs = eps + e0 = sim.energy() + sim.integrate(1000) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),60*eps) + + def test_bs_inout(self): + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + eps = 1e-6 + sim.integrator = "bs" + sim.ri_bs.eps_rel = eps + sim.ri_bs.eps_abs = eps + sim.save_to_file("sim0.bin") + sim1 = rebound.Simulation("sim0.bin") + sim.integrate(100) + sim1.integrate(100) + sim1.save_to_file("sim1.bin") + sim2 = rebound.Simulation("sim1.bin") + sim.integrate(200) + sim1.integrate(200) + sim2.integrate(200) + self.assertEqual(sim.particles[1].x, sim1.particles[1].x) + self.assertEqual(sim.particles[1].x, sim2.particles[1].x) + self.assertEqual(sim.particles[2].vx, sim1.particles[2].vx) + self.assertEqual(sim.particles[2].vx, sim2.particles[2].vx) + self.assertEqual(sim.t, sim1.t) + self.assertEqual(sim.t, sim2.t) + + + def test_bs_archive(self): + sim = rebound.Simulation() + sim.integrator = "BS" + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1) + sim.add(m=1e-3,a=2,e=0.1) + sim.save_to_file("test.sa",interval=10, delete_file=True) + sim.integrate(100, exact_finish_time=0) + sim1 = rebound.Simulationarchive("test.sa")[-1] + sim.integrate(200, exact_finish_time=0) + sim1.integrate(200, exact_finish_time=0) + self.assertEqual(sim.particles[1].x, sim1.particles[1].x) + self.assertEqual(sim.particles[2].vx, sim1.particles[2].vx) + self.assertEqual(sim.t, sim1.t) + + def test_bs_change_particle_N(self): + sim = rebound.Simulation() + sim.integrator = "BS" + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1) + sim.N_active = sim.N + for i in range(100): + sim.add(a=1.4+i*0.01) + sim.integrate(10) + for i in range(100): + sim.add(a=2.4+i*0.01) + sim.integrate(20) + for i in range(50): + sim.remove(i*2+2) + sim.integrate(20) + self.assertEqual(sim.N, 150+2) + + def test_bs_collide(self): + sim = rebound.Simulation() + sim.integrator = "BS" + sim.add(m=1,r=1,x=-3) + sim.add(m=1,r=1,x=3) + sim.collision = "direct" + sim.collision_resolve = "merge" + sim.integrate(20) + self.assertEqual(sim.N, 1) + self.assertEqual(sim.particles[0].m, 2.) + self.assertEqual(sim.particles[0].x, 0.) + self.assertEqual(sim.particles[0].vx, 0.) + + +class TestVariationalBS(unittest.TestCase): + paramlist = [ + (1e-3,1.,0.1,0.02,0.3,0.56,0.4), + (1e-6,2.,0.02,0.0132,0.33,1.56,0.14), + (234.3e-6,1.7567,0.561,0.572,0.573,2.56,0.354), + (1e-2,1.7567,0.1561,0.15472,0.24573,12.56,1.354), + (1e-7,3.7567,0.00061,0.23572,0.523473,2.56,3.354), + ] + paramkeys = ["m","a","e","inc","Omega","omega","f"] + def test_all_1st_order_full(self): + for params in self.paramlist: + for v in self.paramkeys: + Delta=1e-8 + + param = dict(zip(self.paramkeys, params)) + simvp = rebound.Simulation() + simvp.integrator = "BS" + simvp.ri_bs.eps_abs = 1e-15 + simvp.ri_bs.eps_rel = 1e-15 + simvp.add(m=1.) + simvp.add(**param) + simvp.add(primary=simvp.particles[0],a=1.76, m=1e-3) + var_i = simvp.add_variation() + var_i.vary(1,v) + simvp.integrate(1.4) + + simsp = rebound.Simulation() + simsp.integrator = "BS" + simsp.ri_bs.eps_abs = 1e-15 + simsp.ri_bs.eps_rel = 1e-15 + simsp.add(m=1.) + param[v] += Delta + simsp.add(**param) + simsp.add(primary=simsp.particles[0],a=1.76, m=1e-3) + simsp.integrate(1.4) + + prec = 2e-5 + dp = (simsp.particles[1]-simvp.particles[1])/Delta - var_i.particles[1] + self.assertLess(abs(dp.x ),prec) + self.assertLess(abs(dp.y ),prec) + self.assertLess(abs(dp.z ),prec) + self.assertLess(abs(dp.vx),prec) + self.assertLess(abs(dp.vy),prec) + self.assertLess(abs(dp.vz),prec) + self.assertLess(abs(dp.m ),prec) + + + + def test_all_2nd_order_full(self): + self.run_2nd_order_full(com=False) + def test_all_2nd_order_full_com(self): + self.run_2nd_order_full(com=True) + def run_2nd_order_full(self, com): + for params in self.paramlist: + for v1 in self.paramkeys: + for v2 in self.paramkeys: + param = dict(zip(self.paramkeys, params)) + simvp = rebound.Simulation() + simvp.integrator = "BS" + simvp.ri_bs.eps_abs = 1e-15 + simvp.ri_bs.eps_rel = 1e-15 + simvp.add(m=1.) + simvp.add(**param) + simvp.add(primary=simvp.particles[0],a=1.76, m=1e-3) + var_ia = simvp.add_variation() + var_ib = simvp.add_variation() + var_ii = simvp.add_variation(order=2,first_order=var_ia,first_order_2=var_ib) + var_ia.vary(1, v1) + var_ib.vary(1, v2) + var_ii.vary(1, v1, v2) + if com: + simvp.move_to_com() + simvp.integrate(1.4) + + Delta = 1e-5 + + param = dict(zip(self.paramkeys, params)) + simpp = rebound.Simulation() + simpp.integrator = "BS" + simpp.ri_bs.eps_abs = 1e-15 + simpp.ri_bs.eps_rel = 1e-15 + simpp.add(m=1.) + param[v1] += Delta + param[v2] += Delta + simpp.add(**param) + simpp.add(primary=simpp.particles[0],a=1.76, m=1e-3) + if com: + simpp.move_to_com() + simpp.integrate(1.4) + + param = dict(zip(self.paramkeys, params)) + simpm = rebound.Simulation() + simpm.integrator = "BS" + simpm.ri_bs.eps_abs = 1e-15 + simpm.ri_bs.eps_rel = 1e-15 + simpm.add(m=1.) + param[v1] += Delta + param[v2] -= Delta + simpm.add(**param) + simpm.add(primary=simpm.particles[0],a=1.76, m=1e-3) + if com: + simpm.move_to_com() + simpm.integrate(1.4) + + param = dict(zip(self.paramkeys, params)) + simmp = rebound.Simulation() + simmp.integrator = "BS" + simmp.ri_bs.eps_abs = 1e-15 + simmp.ri_bs.eps_rel = 1e-15 + simmp.add(m=1.) + param[v1] -= Delta + param[v2] += Delta + simmp.add(**param) + simmp.add(primary=simmp.particles[0],a=1.76, m=1e-3) + if com: + simmp.move_to_com() + simmp.integrate(1.4) + + param = dict(zip(self.paramkeys, params)) + simmm = rebound.Simulation() + simmm.integrator = "BS" + simmm.ri_bs.eps_abs = 1e-15 + simmm.ri_bs.eps_rel = 1e-15 + simmm.add(m=1.) + param[v1] -= Delta + param[v2] -= Delta + simmm.add(**param) + simmm.add(primary=simmm.particles[0],a=1.76, m=1e-3) + if com: + simmm.move_to_com() + simmm.integrate(1.4) + + prec = 5e-4 + + dp = (simpp.particles[1]-simpm.particles[1]-simmp.particles[1]+simmm.particles[1])/(Delta*Delta*4.) - var_ii.particles[1] + + self.assertLess(abs(dp.x),prec) + self.assertLess(abs(dp.y),prec) + self.assertLess(abs(dp.z),prec) + self.assertLess(abs(dp.vx),prec) + self.assertLess(abs(dp.vy),prec) + self.assertLess(abs(dp.vz),prec) + self.assertLess(abs(dp.m),prec) + +class TestVariationalPal(TestVariationalBS): + paramkeys = ["m","a","h","k","l","ix","iy"] + paramlist = [ + [1e-3, 1., 0., 0., 0., 0.0, 0.0], + [1e-3, 1., 0.1, 0.02, 0.3, 0.0, 0.0], + [1e-6, 2., 0.02, 0.0132, 0.33, 0.126, 0.14], + [234.3e-6, 1.7567, 0.561, 0.572, 0.573, 0.056, 0.0091354], + [1e-2, 1.7567, 0.1561, 0.15472,0.24573, 0.0056, 0.0013], + [1e-7, 3.7567, 0.00061,0.23572,0.523473, 0.47256, 0.000024], + [1e-7, 3.7567, 0.00061,0.23572,0.523473, 1.97, 0.0], + [1e-7, 3.7567, 0.00061,0.23572,0.523473, 0.0, 1.97], + ] + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_collisions.py b/rebound/source/rebound/tests/test_collisions.py new file mode 100644 index 0000000000000000000000000000000000000000..56a869b5d9d5c34185b7ff00d92ca251a550ddfa --- /dev/null +++ b/rebound/source/rebound/tests/test_collisions.py @@ -0,0 +1,204 @@ +import rebound +import unittest +import math +import random + +class TestLineTreeCollisions(unittest.TestCase): + + def test_linetree_find(self): + # Should find the collision + sim = rebound.Simulation() + sim.integrator = "leapfrog" + sim.collision = "linetree" + sim.configure_box(100) + sim.dt = 10 + sim.add(r=1,x=0) + sim.add(r=1,x=3,vx=-1) + with self.assertRaises(rebound.Collision) as context: + sim.integrate(10) + def test_linetree_find_overlap1(self): + # Should find the collision which is already overlapping at t=0 + sim = rebound.Simulation() + sim.integrator = "leapfrog" + sim.collision = "linetree" + sim.configure_box(100) + sim.dt = 10 + sim.add(r=1,x=0) + sim.add(r=1,x=1,vx=-1) + with self.assertRaises(rebound.Collision) as context: + sim.integrate(10) + def test_linetree_find_overlap2(self): + # Should find the collision which is not overlapping at t=0, only at end + sim = rebound.Simulation() + sim.integrator = "leapfrog" + sim.collision = "linetree" + sim.configure_box(100) + sim.dt = 10 + sim.add(r=1,x=0) + sim.add(r=1,x=11,vx=-1) + with self.assertRaises(rebound.Collision) as context: + sim.integrate(10) + def test_linetree_miss(self): + sim = rebound.Simulation() + sim.integrator = "leapfrog" + sim.collision = "linetree" + sim.configure_box(100) + sim.dt = 10 + sim.add(r=1,x=0) + sim.add(r=1,x=2.1,vx=1) + sim.integrate(10) + + + +class TestLineCollisions(unittest.TestCase): + + def test_direct_miss(self): + # Should miss the collision + sim = rebound.Simulation() + sim.integrator = "leapfrog" + sim.collision = "direct" + sim.dt = 10 + sim.add(r=1,x=0) + sim.add(r=1,x=3,vx=-1) + sim.init_megno() + sim.particles[-1].x = math.nan # test that collisions with variational particles not being checked + sim.integrate(10) + def test_line_find(self): + # Should find the collision + sim = rebound.Simulation() + sim.integrator = "leapfrog" + sim.collision = "line" + sim.dt = 10 + sim.add(r=1,x=0) + sim.add(r=1,x=3,vx=-1) + sim.init_megno() + sim.particles[-1].x = math.nan + with self.assertRaises(rebound.Collision) as context: + sim.integrate(10) + def test_line_find_overlap1(self): + # Should find the collision already overlapping at t=0 + sim = rebound.Simulation() + sim.integrator = "leapfrog" + sim.collision = "line" + sim.dt = 10 + sim.add(r=1,x=0) + sim.add(r=1,x=1,vx=-1) + sim.init_megno() + sim.particles[-1].x = math.nan + with self.assertRaises(rebound.Collision) as context: + sim.integrate(10) + def test_line_find_overlap2(self): + # Should find the collision which is not overlapping at t=0, only at end + sim = rebound.Simulation() + sim.integrator = "leapfrog" + sim.collision = "line" + sim.dt = 10 + sim.add(r=1,x=0) + sim.add(r=1,x=11,vx=-1) + sim.init_megno() + sim.particles[-1].x = math.nan + with self.assertRaises(rebound.Collision) as context: + sim.integrate(10) + def test_line_miss(self): + sim = rebound.Simulation() + sim.integrator = "leapfrog" + sim.collision = "line" + sim.configure_box(100) + sim.dt = 10 + sim.add(r=1,x=0) + sim.add(r=1,x=2.1,vx=1) + sim.integrate(10) + + +class TestCollisions(unittest.TestCase): + + def test_tree_remove_both(self): + sim = rebound.Simulation() + boxsize = 50000. + sim.configure_box(boxsize) + sim.integrator = "leapfrog" + sim.boundary = "open" + sim.gravity = "tree" + sim.collision = "tree" + sim.collision_resolve = "hardsphere" + def cor_remove_both(r, c): + r.contents.collisions_log_n += 1 + return 3 + sim.collision_resolve = cor_remove_both + + while sim.N< 10: + sim.add(m=1., r=100., x=random.uniform(-20,20), + y=random.uniform(-20,20), + z=random.uniform(-20,20)) + sim.dt = 0.001 + with self.assertRaises(rebound.NoParticles): + sim.integrate(1000.) + self.assertEqual(sim.collisions_log_n,5) + + def test_direct_remove_both(self): + sim = rebound.Simulation() + boxsize = 50000. + sim.configure_box(boxsize) + sim.integrator = "leapfrog" + sim.boundary = "open" + sim.collision = "direct" + def cor_remove_both(r, c): + r.contents.collisions_log_n += 1 + return 3 + sim.collision_resolve = cor_remove_both + + while sim.N< 10: + sim.add(m=1., r=100., x=random.uniform(-20,20), + y=random.uniform(-20,20), + z=random.uniform(-20,20)) + sim.dt = 0.001 + with self.assertRaises(rebound.NoParticles): + sim.integrate(1000.) + self.assertEqual(sim.collisions_log_n,5) + + def test_tree_remove_one(self): + sim = rebound.Simulation() + boxsize = 50000. + sim.configure_box(boxsize) + sim.integrator = "leapfrog" + sim.boundary = "open" + sim.gravity = "tree" + sim.collision = "tree" + def cor_remove_both(r, c): + r.contents.collisions_log_n += 1 + return random.randint(1,3) + sim.collision_resolve = cor_remove_both + + while sim.N< 50: + sim.add(m=1., r=100., x=random.uniform(-2,2), + y=random.uniform(-2,2), + z=random.uniform(-2,2)) + sim.dt = 0.001 + sim.integrate(sim.dt) + sim.integrate(2.*sim.dt) + self.assertLess(sim.N,25) + + def test_direct_remove_one(self): + sim = rebound.Simulation() + boxsize = 50000. + sim.configure_box(boxsize) + sim.integrator = "leapfrog" + sim.boundary = "open" + sim.collision = "direct" + def cor_remove_both(r, c): + r.contents.collisions_log_n += 1 + return random.randint(1,3) + sim.collision_resolve = cor_remove_both + + random.seed(1) + while sim.N< 50: + sim.add(m=1., r=100., x=random.uniform(-2,2), + y=random.uniform(-2,2), + z=random.uniform(-2,2)) + sim.dt = 0.001 + sim.integrate(sim.dt) + sim.integrate(2.*sim.dt) + self.assertLess(sim.N,25) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_copy.py b/rebound/source/rebound/tests/test_copy.py new file mode 100644 index 0000000000000000000000000000000000000000..5ea3470efdcf7ed2a4df34c7917c4b7aedd4bd42 --- /dev/null +++ b/rebound/source/rebound/tests/test_copy.py @@ -0,0 +1,209 @@ +import rebound +import unittest + +class TestCopy(unittest.TestCase): + def test_copy_is_same(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.integrate(42.) + sim.save_to_file("test.bin") + + + sim_copy = sim.copy() + + self.assertEqual(sim.t,sim_copy.t) + for i in range(sim.N): + self.assertEqual(sim.particles[i].x,sim_copy.particles[i].x) + self.assertEqual(sim.particles[i].y,sim_copy.particles[i].y) + self.assertEqual(sim.particles[i].z,sim_copy.particles[i].z) + self.assertEqual(sim.particles[i].vx,sim_copy.particles[i].vx) + self.assertEqual(sim.particles[i].vy,sim_copy.particles[i].vy) + self.assertEqual(sim.particles[i].vz,sim_copy.particles[i].vz) + + sim_copy.integrate(84.) + sim.integrate(84.) + + self.assertEqual(sim.t,sim_copy.t) + for i in range(sim.N): + self.assertEqual(sim.particles[i].x,sim_copy.particles[i].x) + self.assertEqual(sim.particles[i].y,sim_copy.particles[i].y) + self.assertEqual(sim.particles[i].z,sim_copy.particles[i].z) + self.assertEqual(sim.particles[i].vx,sim_copy.particles[i].vx) + self.assertEqual(sim.particles[i].vy,sim_copy.particles[i].vy) + self.assertEqual(sim.particles[i].vz,sim_copy.particles[i].vz) + + sim.integrate(126.) + + self.assertNotEqual(sim.t,sim_copy.t) + for i in range(sim.N): + self.assertNotEqual(sim.particles[i].x,sim_copy.particles[i].x) + self.assertNotEqual(sim.particles[i].y,sim_copy.particles[i].y) + self.assertNotEqual(sim.particles[i].z,sim_copy.particles[i].z) + self.assertNotEqual(sim.particles[i].vx,sim_copy.particles[i].vx) + self.assertNotEqual(sim.particles[i].vy,sim_copy.particles[i].vy) + self.assertNotEqual(sim.particles[i].vz,sim_copy.particles[i].vz) + +class TestMultiply(unittest.TestCase): + def test_multiply_with_minus_one(self): + sim1 = rebound.Simulation() + sim1.add(m=1) + sim1.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.integrator = "whfast" + sim1.integrate(2.) + + sim2 = sim1*(-1.) + + for i in range(sim1.N): + self.assertEqual(-sim1.particles[i].x,sim2.particles[i].x) + self.assertEqual(-sim1.particles[i].y,sim2.particles[i].y) + self.assertEqual(-sim1.particles[i].z,sim2.particles[i].z) + self.assertEqual(-sim1.particles[i].vx,sim2.particles[i].vx) + self.assertEqual(-sim1.particles[i].vy,sim2.particles[i].vy) + self.assertEqual(-sim1.particles[i].vz,sim2.particles[i].vz) + + def test_rmultiply_with_minus_one(self): + sim1 = rebound.Simulation() + sim1.add(m=1) + sim1.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.integrator = "whfast" + sim1.integrate(2.) + + sim2 = -1.*sim1 + + for i in range(sim1.N): + self.assertEqual(-sim1.particles[i].x,sim2.particles[i].x) + self.assertEqual(-sim1.particles[i].y,sim2.particles[i].y) + self.assertEqual(-sim1.particles[i].z,sim2.particles[i].z) + self.assertEqual(-sim1.particles[i].vx,sim2.particles[i].vx) + self.assertEqual(-sim1.particles[i].vy,sim2.particles[i].vy) + self.assertEqual(-sim1.particles[i].vz,sim2.particles[i].vz) + + def test_multiply_with_zero(self): + sim1 = rebound.Simulation() + sim1.add(m=1) + sim1.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.integrator = "whfast" + sim1.integrate(2.) + sim2 = 0*sim1 + + for i in range(sim1.N): + self.assertNotEqual(-sim1.particles[i].x,0.) + self.assertNotEqual(-sim1.particles[i].y,0.) + self.assertNotEqual(-sim1.particles[i].z,0.) + self.assertNotEqual(-sim1.particles[i].vx,0.) + self.assertNotEqual(-sim1.particles[i].vy,0.) + self.assertNotEqual(-sim1.particles[i].vz,0.) + for i in range(sim2.N): + self.assertEqual(-sim2.particles[i].x,0.) + self.assertEqual(-sim2.particles[i].y,0.) + self.assertEqual(-sim2.particles[i].z,0.) + self.assertEqual(-sim2.particles[i].vx,0.) + self.assertEqual(-sim2.particles[i].vy,0.) + self.assertEqual(-sim2.particles[i].vz,0.) + + def test_div2(self): + sim1 = rebound.Simulation() + sim1.add(m=1) + sim1.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.integrator = "whfast" + sim1.integrate(2.) + sim2 = sim1/2 + + for i in range(sim1.N): + self.assertEqual(2*sim2.particles[i].x,sim1.particles[i].x) + self.assertEqual(2*sim2.particles[i].y,sim1.particles[i].y) + self.assertEqual(2*sim2.particles[i].z,sim1.particles[i].z) + self.assertEqual(2*sim2.particles[i].vx,sim1.particles[i].vx) + self.assertEqual(2*sim2.particles[i].vy,sim1.particles[i].vy) + self.assertEqual(2*sim2.particles[i].vz,sim1.particles[i].vz) + +class TestAdd(unittest.TestCase): + def test_add(self): + sim1 = rebound.Simulation() + sim1.add(m=1) + sim1.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.integrator = "whfast" + sim2 = sim1.copy() + sim1.integrate(2.) + + sim3 = sim1 + sim2 + + for i in range(sim3.N): + self.assertEqual(sim3.particles[i].x, sim1.particles[i].x +sim2.particles[i].x ) + self.assertEqual(sim3.particles[i].y, sim1.particles[i].y +sim2.particles[i].y ) + self.assertEqual(sim3.particles[i].z, sim1.particles[i].z +sim2.particles[i].z ) + self.assertEqual(sim3.particles[i].vx,sim1.particles[i].vx+sim2.particles[i].vx) + self.assertEqual(sim3.particles[i].vy,sim1.particles[i].vy+sim2.particles[i].vy) + self.assertEqual(sim3.particles[i].vz,sim1.particles[i].vz+sim2.particles[i].vz) + + def test_iadd(self): + sim1 = rebound.Simulation() + sim1.add(m=1) + sim1.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.integrator = "whfast" + sim2 = sim1.copy() + sim1.integrate(2.) + + sim3 = sim1 + sim2 + sim1 += sim2 + + for i in range(sim3.N): + self.assertEqual(sim3.particles[i].x, sim1.particles[i].x ) + self.assertEqual(sim3.particles[i].y, sim1.particles[i].y ) + self.assertEqual(sim3.particles[i].z, sim1.particles[i].z ) + self.assertEqual(sim3.particles[i].vx,sim1.particles[i].vx) + self.assertEqual(sim3.particles[i].vy,sim1.particles[i].vy) + self.assertEqual(sim3.particles[i].vz,sim1.particles[i].vz) + +class TestSubtract(unittest.TestCase): + def test_subtract(self): + sim1 = rebound.Simulation() + sim1.add(m=1) + sim1.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.integrator = "whfast" + sim2 = sim1.copy() + sim1.integrate(2.) + + sim3 = sim1 - sim2 + + for i in range(sim3.N): + self.assertEqual(sim3.particles[i].x, sim1.particles[i].x -sim2.particles[i].x ) + self.assertEqual(sim3.particles[i].y, sim1.particles[i].y -sim2.particles[i].y ) + self.assertEqual(sim3.particles[i].z, sim1.particles[i].z -sim2.particles[i].z ) + self.assertEqual(sim3.particles[i].vx,sim1.particles[i].vx-sim2.particles[i].vx) + self.assertEqual(sim3.particles[i].vy,sim1.particles[i].vy-sim2.particles[i].vy) + self.assertEqual(sim3.particles[i].vz,sim1.particles[i].vz-sim2.particles[i].vz) + + def test_isubtract(self): + sim1 = rebound.Simulation() + sim1.add(m=1) + sim1.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim1.integrator = "whfast" + sim2 = sim1.copy() + sim1.integrate(2.) + + sim3 = sim1 - sim2 + sim1 -= sim2 + + for i in range(sim3.N): + self.assertEqual(sim3.particles[i].x, sim1.particles[i].x ) + self.assertEqual(sim3.particles[i].y, sim1.particles[i].y ) + self.assertEqual(sim3.particles[i].z, sim1.particles[i].z ) + self.assertEqual(sim3.particles[i].vx,sim1.particles[i].vx) + self.assertEqual(sim3.particles[i].vy,sim1.particles[i].vy) + self.assertEqual(sim3.particles[i].vz,sim1.particles[i].vz) + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_data.py b/rebound/source/rebound/tests/test_data.py new file mode 100644 index 0000000000000000000000000000000000000000..c9c00c57e5c8334d540dad22f19b33916d1304cc --- /dev/null +++ b/rebound/source/rebound/tests/test_data.py @@ -0,0 +1,17 @@ +import rebound +import unittest +import rebound.data as data + +class TestData(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + + def tearDown(self): + self.sim = None + + def test_add_outer_solar_system(self): + data.add_outer_solar_system(self.sim) + self.assertEqual(self.sim.N,6) + self.assertAlmostEqual(self.sim.particles[5].x,-21.3858977531573,delta=1e-15) + self.assertAlmostEqual(self.sim.particles[5].a,39.485206935092286,delta=1e-15) + diff --git a/rebound/source/rebound/tests/test_eos.py b/rebound/source/rebound/tests/test_eos.py new file mode 100644 index 0000000000000000000000000000000000000000..a4a783fbb722aa7b5340001fe7ca0359d5fb84b1 --- /dev/null +++ b/rebound/source/rebound/tests/test_eos.py @@ -0,0 +1,108 @@ +import rebound +import unittest +import math + +class TestEOSn(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + self.sim.add(m=1) + self.sim.add(m=1e-3,a=1,e=0.05,f=0.) + self.sim.add(m=1e-3,a=1.6,e=0.05,f=1.) + self.sim.move_to_com() + + def tearDown(self): + self.sim = None + + def _run(self): + tmax = 100. + Emax = 0 + E0 = self.sim.energy() + while self.sim.t 2**32: # 64 bit + self.assertAlmostEqual(abs((self.megnoIAS-self.megnoWHFast)/self.megnoIAS), 0., delta=0.3) + else: # 32 bit + self.assertAlmostEqual(abs((self.megnoIAS-self.megnoWHFast)/self.megnoIAS), 0., delta=1.9) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_fpcontract.py b/rebound/source/rebound/tests/test_fpcontract.py new file mode 100644 index 0000000000000000000000000000000000000000..a73de7ac1a123ecea811cff0d23ec4ee6deb402d --- /dev/null +++ b/rebound/source/rebound/tests/test_fpcontract.py @@ -0,0 +1,16 @@ +import rebound +import unittest +from ctypes import c_int + +class TestFPContract(unittest.TestCase): + + def test_fp_off(self): + cl = rebound.clibrebound + cl.reb_check_fp_contract.res_type = c_int + fp_contract = cl.reb_check_fp_contract() + + # make sure floating point contraction are off + self.assertEqual(fp_contract, 0) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_frequency_analysis.py b/rebound/source/rebound/tests/test_frequency_analysis.py new file mode 100644 index 0000000000000000000000000000000000000000..30b90fbddb7e8a05d5ae9a4e1ef2220e9bf2e36a --- /dev/null +++ b/rebound/source/rebound/tests/test_frequency_analysis.py @@ -0,0 +1,57 @@ +import rebound +import unittest +import numpy as np + +# Secular modes for Jupiter. Taken from Laskar (1990). +nu5 = np.array([4.2488163, 28.2206942, 3.0895148, 52.1925732, 27.0613982, 29.3799573, 28.8679427, 27.5734578, 5.4070444, 0.6671228]) # frequency, "/yr +A5 = np.array([44119.0e-6, 15750.0e-6, 1800.0e-6, 516.0e-6, 183.0e-6, 178.0e-6, 107.0e-6, 95.0e-6, 62.0e-6, 58.0e-6]) #amplitude +phi5 = np.array([30.676, 308.112, 121.362, 45.551, 218.696, 217.460, 32.614, 43.733, 116.984, 74.116]) # phase, deg +datasep = 120000.0/365.25*2.0*np.pi # 120000 days in units of year/2pi + +class TestFrequencyAnalysis(unittest.TestCase): + def LA1990(self, type): + Nsamples = 32768 + nfreq = len(nu5) + inp = np.zeros(Nsamples*2) + for i in range(nfreq): + nu = nu5[i]/1296000.0 # to units of radians/(year/2pi) + inp[0::2] += A5[i]*np.cos(nu*np.arange(Nsamples)*datasep+phi5[i]/180.0*np.pi) + inp[1::2] += A5[i]*np.sin(nu*np.arange(Nsamples)*datasep+phi5[i]/180.0*np.pi) + + + minfreq = 60.0/1296000.0*datasep + return rebound.frequency_analysis(inp, type=type, minfreq=-minfreq, maxfreq=minfreq) + + def test_LA1990_type_0(self): + nu, A, phi = self.LA1990("mft") + nfreq = len(nu) + for i in range(nfreq): + nu_error = np.abs(nu[i]*1296000.0/datasep-nu5[i]) + self.assertLess(nu_error, 3e-4) + A_error = np.abs((A[i]-A5[i])/A5[i]) + self.assertLess(nu_error, 2e-3) + phi_error = np.abs(phi[i]/np.pi*180.0-phi5[i]) + self.assertLess(phi_error, 5e-1) + def test_LA1990_type_1(self): + nu, A, phi = self.LA1990("fmft") + nfreq = len(nu) + for i in range(nfreq): + nu_error = np.abs(nu[i]*1296000.0/datasep-nu5[i]) + self.assertLess(nu_error, 4e-6) + A_error = np.abs((A[i]-A5[i])/A5[i]) + self.assertLess(nu_error, 1e-5) + phi_error = np.abs(phi[i]/np.pi*180.0-phi5[i]) + self.assertLess(phi_error, 6e-3) + def test_LA1990_type_2(self): + nu, A, phi = self.LA1990("fmft2") + nfreq = len(nu) + for i in range(nfreq): + nu_error = np.abs(nu[i]*1296000.0/datasep-nu5[i]) + self.assertLess(nu_error, 2e-8) + A_error = np.abs((A[i]-A5[i])/A5[i]) + self.assertLess(nu_error, 3e-7) + phi_error = np.abs(phi[i]/np.pi*180.0-phi5[i]) + self.assertLess(phi_error, 5e-5) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_gravity.py b/rebound/source/rebound/tests/test_gravity.py new file mode 100644 index 0000000000000000000000000000000000000000..ee3336f9d3d1b9ed7248382ad29b5421769c0b46 --- /dev/null +++ b/rebound/source/rebound/tests/test_gravity.py @@ -0,0 +1,113 @@ +import rebound +import unittest +import warnings + +class TestGravity(unittest.TestCase): + + def test_testparticle_0(self): + sim = rebound.Simulation() + sim.testparticle_type = 0 + sim.add(m=1.) + sim.add(m=1e-3, a=1.) + sim.N_active = 1 + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(10.) + self.assertEqual(1,len(w)) + x0 = sim.particles[0].x + self.assertEqual(x0, 0.) + + def test_testparticle_1(self): + sim = rebound.Simulation() + sim.testparticle_type = 1 + sim.add(m=1.) + sim.add(m=1e-3, a=1.) + sim.N_active = 1 + sim.integrate(10.) + x0 = sim.particles[0].x + self.assertNotEqual(x0, 0.) + + def test_testparticle_comp_0(self): + sim = rebound.Simulation() + sim.gravity = "compensated" + sim.testparticle_type = 0 + sim.add(m=1.) + sim.add(m=1e-3, a=1.) + sim.N_active = 1 + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(10.) + self.assertEqual(1,len(w)) + x0 = sim.particles[0].x + self.assertEqual(x0, 0.) + + def test_testparticle_comp_1(self): + sim = rebound.Simulation() + sim.gravity = "compensated" + sim.testparticle_type = 1 + sim.add(m=1.) + sim.add(m=1e-3, a=1.) + sim.N_active = 1 + sim.integrate(10.) + x0 = sim.particles[0].x + self.assertNotEqual(x0, 0.) + + + + + def test_testparticle_whfast_comp_0(self): + sim = rebound.Simulation() + sim.gravity = "compensated" + sim.integrator = "whfast" + sim.testparticle_type = 0 + sim.add(m=1.) + sim.add(m=1e-3, a=1.) + sim.N_active = 1 + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(10.) + self.assertEqual(1,len(w)) + x0 = sim.particles[0].x + # TODO + # Currently fails. WHFAST evolves COM, but should only include star + #self.assertEqual(x0, 0.) + + def test_testparticle_whfast_comp_1(self): + sim = rebound.Simulation() + sim.gravity = "compensated" + sim.integrator = "whfast" + sim.dt = 1e-4 + sim.testparticle_type = 1 + sim.add(m=1.) + sim.add(m=1e-3, a=1.) + sim.add(m=1e-3, a=1.4) + sim.N_active = 2 + sim.integrate(10.) + x0 = sim.particles[0].x + x1 = sim.particles[1].x + self.assertNotEqual(x0, 0.) + + sim = rebound.Simulation() + sim.gravity = "compensated" + sim.testparticle_type = 1 + sim.add(m=1.) + sim.add(m=1e-3, a=1.) + sim.add(m=1e-3, a=1.4) + sim.N_active = 2 + sim.integrate(10.) + x1ias = sim.particles[1].x + self.assertAlmostEqual(x1ias, x1,delta=1e-9) + + def test_tree_duplicate_particle(self): + sim = rebound.Simulation() + sim.configure_box(10) + sim.gravity = "tree" + sim.add(m=1.) + with self.assertRaises(RuntimeError): + # Cannot add two particles on top of each other + sim.add(m=1.) + + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_hash.py b/rebound/source/rebound/tests/test_hash.py new file mode 100644 index 0000000000000000000000000000000000000000..9ba0b31d7e1945eae3ddae5d36a84108b8092962 --- /dev/null +++ b/rebound/source/rebound/tests/test_hash.py @@ -0,0 +1,143 @@ +import rebound +import unittest +from ctypes import c_uint32 + +class TestHash(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + self.sim.add(m=1.) + self.sim.add(a=0.1) + self.sim.add(a=1.) + self.sim.add(a=5.) + self.sim.particles[2].hash = "earth" + self.sim.particles[3].hash = "jupiter" + + def tearDown(self): + self.sim = None + + def test_rebound_hash(self): + self.assertNotEqual(rebound.hash("foo").value, rebound.hash("bar").value) + self.assertEqual(rebound.hash("earth").value, 1424801690) + + def test_add_hash(self): + self.assertEqual(self.sim.particles[0].hash.value, 0) + self.assertEqual(self.sim.particles[2].hash.value, 1424801690) + + def test_particles(self): + self.assertAlmostEqual(self.sim.particles["earth"].a, 1., delta=1e-15) + self.assertAlmostEqual(self.sim.particles["jupiter"].a, 5., delta=1e-15) + with self.assertRaises(rebound.ParticleNotFound): + self.sim.particles["venus"] + + def test_removing_particles(self): + self.sim.add(a=30.) + self.sim.remove(0) + self.sim.remove(0) + self.sim.remove(hash=rebound.hash("earth"), keep_sorted=0) + self.assertEqual(self.sim.particles["jupiter"].hash.value, rebound.hash("jupiter").value) + self.assertEqual(self.sim.N, 2) + with self.assertRaises(rebound.ParticleNotFound): + self.sim.particles["earth"] + self.sim.remove(hash="jupiter") + with self.assertRaises(rebound.ParticleNotFound): + self.sim.particles["jupiter"] + + def test_adding_particles(self): + self.assertAlmostEqual(self.sim.particles["earth"].a, 1., delta=1e-15) + self.assertEqual(self.sim.N_lookup, 3) + self.sim.add(a=10.) + self.sim.particles[4].hash = "saturn" + self.assertAlmostEqual(self.sim.particles["jupiter"].a, 5., delta=1e-15) + self.assertAlmostEqual(self.sim.particles["saturn"].a, 10., delta=1e-15) + self.assertAlmostEqual(self.sim.particles["earth"].a, 1., delta=1e-15) + self.assertEqual(self.sim.N_lookup, 4) + + def test_add(self): + self.sim.add(a=7., hash = "planet 9") + self.assertEqual(rebound.hash("planet 9").value, self.sim.particles["planet 9"].hash.value) + +class TestEmptyLookup(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + self.sim.add(m=1.) + self.sim.add(a=0.1) + self.sim.add(a=1.) + self.sim.add(a=5.) + + def tearDown(self): + self.sim = None + + def test_empty_lookup(self): + with self.assertRaises(rebound.ParticleNotFound): + self.sim.particles["venus"] + +class TestZeroHash(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + + def tearDown(self): + self.sim = None + + def test_zero_first_hash(self): + self.sim.add(m=1., hash=c_uint32(0)) + self.sim.add(m=2., hash=c_uint32(1)) + self.assertAlmostEqual(self.sim.particles[c_uint32(1)].m, 2., delta=1e-15) + self.assertEqual(self.sim.N_lookup, 2) + self.sim.add(m=3., hash="jupiter") + self.assertAlmostEqual(self.sim.particles[c_uint32(0)].m, 1., delta=1e-15) + self.assertAlmostEqual(self.sim.particles["jupiter"].m, 3., delta=1e-15) + self.assertEqual(self.sim.N_lookup, 3) + + def test_zero_second_hash(self): + self.sim.add(m=1., hash=c_uint32(1)) + self.sim.add(m=2., hash=c_uint32(0)) + self.assertAlmostEqual(self.sim.particles[c_uint32(0)].m, 2., delta=1e-15) + self.assertEqual(self.sim.N_lookup, 2) + self.sim.add(m=3., hash="jupiter") + self.assertAlmostEqual(self.sim.particles[c_uint32(0)].m, 2., delta=1e-15) + self.assertAlmostEqual(self.sim.particles["jupiter"].m, 3., delta=1e-15) + self.assertEqual(self.sim.N_lookup, 3) + +class TestSort(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + + def tearDown(self): + self.sim = None + + def init(self, hashes): + for hash in hashes: + if hash is None: + self.sim.add(m=0.) + else: + self.sim.add(m=hash, hash=hash) + + def case(self, hashes): + self.setUp() + self.init(hashes) + for hash in hashes: + if hash is not None: + self.assertAlmostEqual(self.sim.particles[c_uint32(hash)].m, hash, delta=1e-15) + self.tearDown() + + def test_hash(self): + self.case(hashes=[0,1,2,3]) + self.case(hashes=[0,None,2,3]) + self.case(hashes=[2,3,1,4]) + self.case(hashes=[2,4,None,3]) + self.case(hashes=[2,0,4,3]) + self.case(hashes=[2,0,4,None]) + self.case(hashes=[2,3,4,0]) + self.case(hashes=[None,4,3,0]) + e = rebound.hash("earth").value + self.case(hashes=[0,1,2,e]) + self.case(hashes=[0,None,e,3]) + self.case(hashes=[2,3,e,4]) + self.case(hashes=[2,e,None,3]) + self.case(hashes=[2,0,e,3]) + self.case(hashes=[e,0,4,None]) + self.case(hashes=[2,e,4,0]) + self.case(hashes=[None,4,e,0]) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_horizons.py b/rebound/source/rebound/tests/test_horizons.py new file mode 100644 index 0000000000000000000000000000000000000000..d3c6efb14c5d5a11a44030f7468bd2cd89d02bfa --- /dev/null +++ b/rebound/source/rebound/tests/test_horizons.py @@ -0,0 +1,35 @@ +import rebound +import unittest +import socket +import warnings + +class TestHorizons(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + + def tearDown(self): + self.sim = None + + def test_earth(self): + try: + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + self.sim.add("Earth",date="2000-01-01 00:00") + self.assertEqual(0,len(w)) + self.assertAlmostEqual(self.sim.particles[0].x,-0.17569031580176828,delta=1e-10) + self.assertAlmostEqual(self.sim.particles[0].m,3.0404326480226416e-06,delta=1e-15) + except socket.error: + print("Socket error. Most likely due to HORIZON being slow. Ignoring.") + pass + + def test_notfound(self): + with self.assertRaises(Exception): + try: + self.sim.add("BogusPlanet",date="2000-01-01 00:00") + except socket.error: + print("Socket error. Most likely due to HORIZON being slow. Ignoring.") + raise Exception("Socket error. Should have been bogus planet error. Ignoring") + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_import.py b/rebound/source/rebound/tests/test_import.py new file mode 100644 index 0000000000000000000000000000000000000000..1417a0609e2ca0e0de985fcf8d555c1a80b43105 --- /dev/null +++ b/rebound/source/rebound/tests/test_import.py @@ -0,0 +1,12 @@ +import warnings +import unittest + +class TestImport(unittest.TestCase): + def test_no_warning_on_import(self): + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + import rebound + self.assertEqual(0,len(w)) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_integrator.py b/rebound/source/rebound/tests/test_integrator.py new file mode 100644 index 0000000000000000000000000000000000000000..69e9e413de5b370db346c2562452b72b1b8324a9 --- /dev/null +++ b/rebound/source/rebound/tests/test_integrator.py @@ -0,0 +1,193 @@ +import rebound +import unittest +import math +import rebound.data +import warnings + +class TestIntegratorIAS15Timescale(unittest.TestCase): + def test_ias15_timescale(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(a=1) + tau = sim.ias15_timescale() + self.assertAlmostEqual(tau, 1., delta=1e-15) + def test_ias15_timescale2(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(P=2.0) + tau = sim.ias15_timescale()*math.pi*2.0 + self.assertAlmostEqual(tau, 2., delta=1e-15) + +class TestIntegratorWHFastHyper(unittest.TestCase): + def test_whfast_veryhyperbolic(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=0.,x=1.,vy=100000.) + sim.integrator = "whfast" + sim.dt = 1.234567 + sim.step() + y = sim.particles[1].y + ys = 1.234567*100000. + self.assertAlmostEqual((y-ys)/ys, 0., delta=1e-10) + def test_ias_veryhyperbolic(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=0.,x=1.,vy=100000.) + sim.integrator = "ias15" + sim.dt = 1.234567 + sim.integrate(1.234567) + y = sim.particles[1].y + ys = 1.234567*100000. + self.assertAlmostEqual((y-ys)/ys, 0., delta=1e-10) + +class TestIntegrator2(unittest.TestCase): + def test_whfast_verylargedt(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3, a=1.) + sim.move_to_com() + sim.integrator = "whfast" + yr = sim.particles[1].P + sim.dt = 4.56*yr + x0 = sim.particles[1].x + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(1e3*yr) + self.assertEqual(1,len(w)) + x1 = sim.particles[1].x + self.assertAlmostEqual(x0, x1, delta=1e-11) + + def test_whfast_hyperbolic(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3, a=-1.,e=2.5) + sim.integrator = "whfast" + x0 = sim.energy() + yr = -sim.particles[1].P + sim.dt = 0.12*yr + sim.integrate(1e2*yr) + x1 = sim.energy() + self.assertAlmostEqual(x0, x1, delta=1e-14) + + def test_whfast_verylargedt_hyperbolic(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3, a=-1.,e=2.5) + sim.integrator = "whfast" + x0 = sim.energy() + yr = -sim.particles[1].P + sim.dt = 4.56*yr + sim.integrate(1e3*yr) + x1 = sim.energy() + self.assertAlmostEqual(x0, x1, delta=1e-14) + + +class TestIntegrator(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + rebound.data.add_outer_solar_system(self.sim) + self.sim.move_to_com() + + def tearDown(self): + self.sim = None + + def test_ias15_globaloff(self): + self.sim.integrator = "ias15" + self.sim.ri_ias15.epsilon_global = 0 + jupyr = 11.86*2.*math.pi + e0 = self.sim.energy() + self.assertNotEqual(e0,0.) + self.sim.integrate(1e3*jupyr) + e1 = self.sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1e-14) + + def test_ias15_small_initial_dt(self): + self.sim.integrator = "ias15" + jupyr = 11.86*2.*math.pi + self.sim.dt = jupyr*1e-7 + e0 = self.sim.energy() + self.assertNotEqual(e0,0.) + self.sim.integrate(self.sim.dt*1.001) + self.sim.dt = jupyr + self.sim.integrate(1e3*jupyr) + e1 = self.sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1e-14) + + def test_ias15(self): + self.sim.integrator = "ias15" + jupyr = 11.86*2.*math.pi + e0 = self.sim.energy() + self.assertNotEqual(e0,0.) + self.sim.integrate(1e3*jupyr) + e1 = self.sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1e-14) + # Longer tests: + #self.sim.integrate(1e4*jupyr) + #e1 = self.sim.energy() + #self.assertLess(math.fabs((e0-e1)/e1),10**13.5) + + def test_ias15_compensated(self): + self.sim.integrator = "ias15" + self.sim.gravity = "compensated" + jupyr = 11.86*2.*math.pi + e0 = self.sim.energy() + self.assertNotEqual(e0,0.) + self.sim.integrate(1e3*jupyr) + e1 = self.sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1e-14) + + def test_whfast_largedt(self): + self.sim.integrator = "whfast" + jupyr = 11.86*2.*math.pi + self.sim.dt = 0.123*jupyr + e0 = self.sim.energy() + self.sim.integrate(1e3*jupyr) + self.assertNotEqual(e0,0.) + e1 = self.sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1e-4) + + def test_whfast_smalldt(self): + self.sim.integrator = "whfast" + jupyr = 11.86*2.*math.pi + self.sim.dt = 0.0123*jupyr + e0 = self.sim.energy() + self.sim.integrate(1e3*jupyr) + self.assertNotEqual(e0,0.) + e1 = self.sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1e-6) + + def test_whfast_smalldt_compensated(self): + self.sim.integrator = "whfast" + self.sim.gravity = "compensated" + jupyr = 11.86*2.*math.pi + self.sim.dt = 0.0123*jupyr + e0 = self.sim.energy() + self.sim.integrate(1e3*jupyr) + self.assertNotEqual(e0,0.) + e1 = self.sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1e-6) + + def test_whfast_verysmalldt(self): + self.sim.integrator = "whfast" + jupyr = 11.86*2.*math.pi + self.sim.dt = 0.00123*jupyr + e0 = self.sim.energy() + self.sim.integrate(1e3*jupyr) + self.assertNotEqual(e0,0.) + e1 = self.sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1e-8) + + def test_whfast_nosafemode(self): + self.sim.integrator = "whfast" + self.sim.ri_whfast.safe_mode = 0 + self.sim.ri_whfast.corrector = 11 + jupyr = 11.86*2.*math.pi + self.sim.dt = 0.0123*jupyr + e0 = self.sim.energy() + self.sim.integrate(1e3*jupyr) + self.assertNotEqual(e0,0.) + e1 = self.sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1e-9) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_janus.py b/rebound/source/rebound/tests/test_janus.py new file mode 100644 index 0000000000000000000000000000000000000000..909e3386aa57513d56f87fca5ab681238b9d70c2 --- /dev/null +++ b/rebound/source/rebound/tests/test_janus.py @@ -0,0 +1,102 @@ +import rebound +import unittest +import math +import rebound.data + +class TestIntegratorJanus(unittest.TestCase): + def test_janus_energy(self): + for o, eps in [ (2,1e-4), (4,1e-8), (6,1e-9), (8,1e-11), (10,1e-13)]: + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3,a=1.12313) + sim.add(m=1e-3,a=2.32323) + sim.move_to_com() + sim.dt = 0.25 + sim.integrator = "janus" + sim.ri_janus.order = o + sim.ri_janus.scale_pos = 1e-16 + sim.ri_janus.scale_vel = 1e-16 + e0 = sim.energy() + sim.integrate(1e2) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),eps) + + def test_janus_reverse(self): + for o in [2,4,6,8,10]: + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3,a=1.12313,omega=0.32643,l=0.3788,e=0.012) + sim.add(m=1e-3,a=2.32323,omega=0.12314,l=0.1726,e=0.103) + sim.move_to_com() + sim.dt = 0.25 + sim.integrator = "janus" + sim.ri_janus.order = o + sim.ri_janus.safe_mode = 0 + sim.ri_janus.scale_pos = 1e-16 + sim.ri_janus.scale_vel = 1e-16 + sim.step() + t0 = sim.t + + x1, x2 = sim.particles[1].x, sim.particles[2].x + vx1, vx2 = sim.particles[1].vx, sim.particles[2].vx + y1, y2 = sim.particles[1].y, sim.particles[2].y + vy1, vy2 = sim.particles[1].vy, sim.particles[2].vy + + sim.integrate(1e2,exact_finish_time=0) + sim.dt *= -1 + sim.integrate(t0,exact_finish_time=0) + + xf1, xf2 = sim.particles[1].x, sim.particles[2].x + vxf1, vxf2 = sim.particles[1].vx, sim.particles[2].vx + yf1, yf2 = sim.particles[1].y, sim.particles[2].y + vyf1, vyf2 = sim.particles[1].vy, sim.particles[2].vy + + self.assertEqual(x1,xf1) + self.assertEqual(x2,xf2) + self.assertEqual(vx1,vxf1) + self.assertEqual(vx2,vxf2) + self.assertEqual(y1,yf1) + self.assertEqual(y2,yf2) + self.assertEqual(vy1,vyf1) + self.assertEqual(vy2,vyf2) + + def test_janus_simulationarchive(self): + for o in [2,4,6,8,10]: + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3,a=1.12313) + sim.add(m=1e-3,a=2.32323) + sim.move_to_com() + sim.dt = 0.25 + sim.save_to_file("test.bin",interval=5,delete_file=True) + sim.integrator = "janus" + sim.ri_janus.order = o + sim.ri_janus.scale_pos = 1e-16 + sim.ri_janus.scale_vel = 1e-16 + sim.integrate(1e2,exact_finish_time=0) + + sim2 = rebound.Simulation("test.bin") + sim2.integrate(2e2,exact_finish_time=0) + + sim.integrate(2e2,exact_finish_time=0) + + self.assertEqual(sim.t,sim2.t) + self.assertEqual(sim.particles[1].x,sim2.particles[1].x) + + def test_janus_invalid_order(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3,a=1.12313) + sim.integrator = "janus" + sim.ri_janus.order = 2 # valid order + sim.integrate(1e1,exact_finish_time=0) + sim.reset_integrator() + sim.integrator = "janus" + sim.ri_janus.order = 12 #invalid order + with self.assertRaises(RuntimeError): + sim.integrate(1e2,exact_finish_time=0) + + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_leapfrog.py b/rebound/source/rebound/tests/test_leapfrog.py new file mode 100644 index 0000000000000000000000000000000000000000..8bc015bf3a122899bc76df4c1d02e6bd5875b6fd --- /dev/null +++ b/rebound/source/rebound/tests/test_leapfrog.py @@ -0,0 +1,65 @@ +import rebound +import unittest +import math +import rebound.data + +class TestIntegrator(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + rebound.data.add_outer_solar_system(self.sim) + self.sim.move_to_com() + + def tearDown(self): + self.sim = None + + def test_leapfrog_order_2(self): + self.sim.integrator = "leapfrog" + self.sim.ri_leapfrog.order = 2 + self.sim.dt = 1 + e0 = self.sim.energy() + self.assertNotEqual(e0,0.) + self.sim.integrate(1e3) + e1 = self.sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1e-3) + + def test_leapfrog_order_4(self): + self.sim.integrator = "leapfrog" + self.sim.ri_leapfrog.order = 4 + self.sim.dt = 1 + e0 = self.sim.energy() + self.assertNotEqual(e0,0.) + self.sim.integrate(1e3) + self.sim.step() + e1 = self.sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),3e-6) + + def test_leapfrog_order_6(self): + self.sim.integrator = "leapfrog" + self.sim.ri_leapfrog.order = 6 + self.sim.dt = 1 + e0 = self.sim.energy() + self.assertNotEqual(e0,0.) + self.sim.integrate(1e3) + self.sim.step() + e1 = self.sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1e-9) + + def test_leapfrog_order_8(self): + self.sim.integrator = "leapfrog" + self.sim.ri_leapfrog.order = 8 + self.sim.dt = 1 + e0 = self.sim.energy() + self.assertNotEqual(e0,0.) + self.sim.integrate(1e3) + self.sim.step() + e1 = self.sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1e13) + + def test_leapfrog_wrong_order(self): + self.sim.integrator = "leapfrog" + self.sim.ri_leapfrog.order = 42 + with self.assertRaises(RuntimeError): + self.sim.step() + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_megno.py b/rebound/source/rebound/tests/test_megno.py new file mode 100644 index 0000000000000000000000000000000000000000..15f2e7bc12d228877d1c54af3cdce9846adad2c7 --- /dev/null +++ b/rebound/source/rebound/tests/test_megno.py @@ -0,0 +1,80 @@ +import rebound +import unittest +import math + +class TestMegno(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + + def tearDown(self): + self.sim = None + + def test_ias15(self): + self.sim.integrator = "ias15" + self.sim.add(m=1) + self.sim.add(m=1e-3,a=1.5,e=0.1,inc=0.1) + self.sim.add(m=1.e-3, a=15., e=0.1, inc=0.1) + self.sim.init_megno(seed=0) + self.sim.integrate(10000.) + self.assertAlmostEqual(self.sim.megno(),2.,delta=2e-1) + self.assertAlmostEqual(self.sim.lyapunov(),0.,delta=1e-3) + + def test_initial_t(self): + self.sim.integrator = "ias15" + self.sim.t = 1e6 + self.sim.add(m=1) + self.sim.add(m=1e-3,a=1.5,e=0.1,inc=0.1) + self.sim.add(m=1.e-3, a=15., e=0.1, inc=0.1) + self.sim.init_megno(seed=0) + self.sim.integrate(self.sim.t + 10000.) + self.assertAlmostEqual(self.sim.megno(),2.,delta=2e-1) + self.assertAlmostEqual(self.sim.lyapunov(),0.,delta=1e-3) + + def test_whfast(self): + self.sim.integrator = "whfast" + self.sim.add(m=1) + self.sim.add(m=1e-3,a=1.5,e=0.1,inc=0.1) + self.sim.add(m=1.e-3, a=15., e=0.1, inc=0.1) + self.sim.init_megno(seed=0) + self.sim.dt = self.sim.particles[1].P*0.07 + self.sim.integrate(10000.) + self.assertAlmostEqual(self.sim.megno(),2.,delta=2e-1) + self.assertAlmostEqual(self.sim.lyapunov(),0.,delta=1e-3) + + def test_whfast_close_regular(self): + self.sim = rebound.Simulation() + self.sim.integrator = "whfast" + self.sim.G = 4*math.pi**2 + self.sim.add(m=1.0, x=-4.7298443749900997e-07, y=2.3452237398515157e-06, z=-2.8779986923394045e-08, vx=-9.994358883493113e-06, vy=-2.8416720717989476e-06, vz=1.5927607755978474e-07) + self.sim.add(m=4.544728982917554e-07, x=0.9818659845399763, y=0.19089291910956852, z=-0.011300485084842085, vx=-1.1951384526938573, vy=6.164295939653557, vz=0.16345519841419276) + self.sim.add(m=1.7367161546229798e-06, x=-0.07616371745657412, y=-1.2648949778387153, z=0.01873838700271951, vx=5.516651885197617, vy=-0.34889260830083374, vz=-0.13577609379397024) + self.sim.add(m=2.1454312223049496e-07, x=0.741238938912468, y=-1.0963570106709737, z=0.006397276680495443, vx=4.459049824337919, vy=3.011488098634852, vz=0.010452444973871466) + self.sim.init_megno(seed=0) + self.sim.dt = 0.034641008279678746 + self.sim.integrate(10000.) + self.assertAlmostEqual(self.sim.megno(),2.,delta=2e-1) + self.assertAlmostEqual(self.sim.lyapunov(),0.,delta=1e-3) + + def test_chaotic(self): + self.sim = rebound.Simulation() + self.sim.integrator = "ias15" + self.sim.add(m=1.) + self.sim.add(m=1.e-4, P=1.) + self.sim.add(m=1.e-4, P=1.17) + self.sim.init_megno(seed=0) + self.sim.move_to_com() + self.sim.integrate(1000.) + self.megnoIAS = self.sim.megno() + self.sim = rebound.Simulation() + self.sim.integrator = "whfast" + self.sim.add(m=1.) + self.sim.add(m=1.e-4, P=1.) + self.sim.add(m=1.e-4, P=1.17) + self.sim.init_megno(seed=0) + self.sim.move_to_com() + self.sim.integrate(1000) + self.megnoWHFast = self.sim.megno() + self.assertAlmostEqual(abs((self.megnoIAS-self.megnoWHFast)/self.megnoIAS), 0., delta=0.3) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_mercurius.py b/rebound/source/rebound/tests/test_mercurius.py new file mode 100644 index 0000000000000000000000000000000000000000..7799e21c2e6b6fa33a03a0a7012d7c3fcb2c192a --- /dev/null +++ b/rebound/source/rebound/tests/test_mercurius.py @@ -0,0 +1,325 @@ +import rebound +import unittest +import sys +import warnings +import os +from datetime import datetime + +class TestMercurius(unittest.TestCase): + + def test_no_effect_tp(self): + # tests if test particle encounters have an effect + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1) + sim.move_to_com() + sim.N_active=2 + sim.integrator = "mercurius" + sim.dt = 0.1 + sim2 = sim.copy() + p = sim.particles[1].copy() + p.x += 0.01 + p.m = 0 + sim.add(p) + sim.step() + sim2.step() + + self.assertEqual(sim.particles[1].x,sim2.particles[1].x) + self.assertEqual(sim.particles[1].vx,sim2.particles[1].vx) + self.assertEqual(sim.particles[0].x,sim2.particles[0].x) + self.assertEqual(sim.particles[0].vx,sim2.particles[0].vx) + + def test_outer_solar(self): + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + + sim.integrator = "mercurius" + P = sim.particles[1].P + sim.dt = 1e-3*P + + E0 = sim.energy() + sim.integrate(1000) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,2e-10) + + def test_order_doesnt_matter_tp0(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + + sim.integrator = "mercurius" + #sim.integrator = "whfast" + #sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 0 + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(1000) + self.assertEqual(1,len(w)) + + o1 = sim.particles[1].orbit(primary=sim.particles[0]) + o2 = sim.particles[2].orbit(primary=sim.particles[0]) + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + + sim.integrator = "mercurius" + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 0 + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(1000) + self.assertEqual(1,len(w)) + + o3 = sim.particles[1].orbit(primary=sim.particles[0]) + o4 = sim.particles[2].orbit(primary=sim.particles[0]) + + self.assertLess(abs(o1.e-o4.e),2e-16) + self.assertLess(abs(o2.e-o3.e),2e-16) + self.assertLess(abs(o1.a-o4.a),2e-16) + self.assertLess(abs(o2.a-o3.a),2e-16) + + def test_order_doesnt_matter_tp1(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + + sim.integrator = "mercurius" + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 1 + + sim.integrate(1000) + + o1 = sim.particles[1].orbit(primary=sim.particles[0]) + o2 = sim.particles[2].orbit(primary=sim.particles[0]) + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + + sim.integrator = "mercurius" + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 1 + + sim.integrate(1000) + + o3 = sim.particles[1].orbit(primary=sim.particles[0]) + o4 = sim.particles[2].orbit(primary=sim.particles[0]) + + self.assertLess(abs(o1.e-o4.e),2e-13) + self.assertLess(abs(o2.e-o3.e),9e-14) + self.assertLess(abs(o1.a-o4.a),9e-14) + self.assertLess(abs(o2.a-o3.a),4e-14) + + def test_outer_solar_massive(self): + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + for i in range(1,sim.N): + sim.particles[i].m *=50. + + sim.integrator = "mercurius" + P = sim.particles[1].P + sim.dt = 1e-3*P + + E0 = sim.energy() + sim.integrate(1000) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,7e-8) + + def test_simple_collision(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-5,r=1.6e-4,a=0.5,e=0.1) #these params lead to collision on my machine + sim.add(m=1e-8,r=4e-5,a=0.55,e=0.4,f=-0.94) + mtot0= sum([p.m for p in sim.particles]) + com0 = sim.com() + N0 = sim.N + + sim.integrator = "mercurius" + sim.dt = 0.01 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + + E0 = sim.energy() + sim.integrate(1) + com1 = sim.com() + self.assertAlmostEqual(com1.vx,com0.vx,delta=1e-16) + self.assertAlmostEqual(com1.vy,com0.vy,delta=1e-16) + self.assertAlmostEqual(com1.vz,com0.vz,delta=1e-16) + mtot1= sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,3e-9) + self.assertEqual(N0-1,sim.N) + + + def test_planetesimal_collision(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-5,r=1.6e-4,a=0.5,e=0.1) #these params lead to collision on my machine + sim.N_active = 2 + sim.add(m=1e-8,r=4e-5,a=0.55,e=0.4,f=-0.94) + mtot0= sum([p.m for p in sim.particles]) + N0 = sim.N + + sim.integrator = "mercurius" + sim.dt = 0.01 + sim.testparticle_type = 1 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + + E0 = sim.energy() + sim.integrate(1) + mtot1= sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,3e-9) + self.assertEqual(N0-1,sim.N) + + def test_massive_ejection(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-4,r=1.6e-4,a=0.5,e=0.1) + sim.add(m=1e-6,r=4e-5,a=0.6) + sim.particles[2].vy *= 2 + + sim.N_active = 2 + + sim.integrator = "mercurius" + sim.dt = 0.01 + sim.testparticle_type = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + sim.track_energy_offset = 1 + + sim.boundary = "open" + boxsize = 3. + sim.configure_box(boxsize) + + E0 = sim.energy() + sim.integrate(1) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,4e-6) + + def test_collision_with_star_simple(self): + sim = rebound.Simulation() + sim.add(m=1.,r=1.) + sim.add(m=1e-3,r=1.e-3,a=0.5) + mtot0 = sum([p.m for p in sim.particles]) + com0 = sim.com() + N0 = sim.N + + sim.integrator = "mercurius" + sim.dt = 0.01 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + + E0 = sim.energy() + sim.integrate(1) + com1 = sim.com() + self.assertAlmostEqual(com1.vx,com0.vx,delta=1e-16) + self.assertAlmostEqual(com1.vy,com0.vy,delta=1e-16) + self.assertAlmostEqual(com1.vz,com0.vz,delta=1e-16) + mtot1 = sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + self.assertEqual(N0-1,sim.N) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,1e-16) + + def test_collision_with_star(self): + sim = rebound.Simulation() + sim.add(m=1.,r=0.00465) + sim.add(m=1e-5,r=1.6e-4,a=0.5,e=0.1,f=2.3) + sim.add(m=1e-4,r=1.4e-3,x=1.,vx=-0.4) # falling onto the star + sim.add(m=1e-5,r=1.6e-4,a=1.5,e=0.1) + mtot0 = sum([p.m for p in sim.particles]) + com0 = sim.com() + N0 = sim.N + + sim.integrator = "mercurius" + sim.dt = 0.01 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + + E0 = sim.energy() + sim.integrate(1) + com1 = sim.com() + self.assertAlmostEqual(com1.vx,com0.vx,delta=1e-16) + self.assertAlmostEqual(com1.vy,com0.vy,delta=1e-16) + self.assertAlmostEqual(com1.vz,com0.vz,delta=1e-16) + mtot1 = sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + self.assertEqual(N0-1,sim.N) + dE = abs((sim.energy() - E0)/E0) + # bad energy conservation due to democratic heliocentric! + self.assertLess(dE,3e-2) + + def test_many_encounters(self): + def get_sim(): + sim = rebound.Simulation() + sim.add(m=1) + # Setup using xyz instead of orbital elements for + # machine independent test + sim.add(m=0.0001,x=0.90000, y=0.00000, vx=0.00000, vy=1.10360) + sim.add(m=0.0001, x=-1.17676, y=-0.05212, vx=0.22535, vy=-0.90102) + sim.add(m=0.0001, x=-1.66025, y=-0.69852, vx=0.18932, vy=-0.60030) + sim.add(m=0.0001, x=0.57904, y=1.03836, vx=-0.69267, vy=0.75995) + sim.add(m=0.0001, x=-0.41683, y=0.83128, vx=-1.03478, vy=-0.72482) + sim.add(m=0.0001, x=1.83969, y=0.32938, vx=-0.55114, vy=0.51646) + sim.move_to_com() + sim.dt = 0.034 + return sim + + sim = get_sim() + sim.integrator = "mercurius" + E0 = sim.energy() + start=datetime.now() + sim.integrate(2000) + time_mercurius = (datetime.now()-start).total_seconds() + dE_mercurius = abs((sim.energy() - E0)/E0) + + sim = get_sim() + sim.integrator = "ias15" + start=datetime.now() + sim.integrate(2000) + time_ias15 = (datetime.now()-start).total_seconds() + dE_ias15 = abs((sim.energy() - E0)/E0) + + sim = get_sim() + sim.integrator = "whfast" + start=datetime.now() + sim.integrate(2000) + time_whfast = (datetime.now()-start).total_seconds() + dE_whfast = abs((sim.energy() - E0)/E0) + + # Note: precision might vary on machine as initializations use cos/sin + # and are therefore machine dependent. + self.assertLess(dE_mercurius,5e-6) # reasonable precision for mercurius + self.assertLess(dE_mercurius/dE_whfast,1e-4) # at least 1e4 times better than whfast + if os.getenv("CI") != "true": + self.assertLess(time_mercurius,5.0*time_ias15) # not much slower than ias15 (often fails in unit tests) + if sys.maxsize > 2**32: # 64 bit + self.assertEqual(7060.644251181158, sim.particles[5].x) # Check if bitwise unchanged + + + +if __name__ == "__main__": + unittest.main() + diff --git a/rebound/source/rebound/tests/test_modify_orbital_parameters.py b/rebound/source/rebound/tests/test_modify_orbital_parameters.py new file mode 100644 index 0000000000000000000000000000000000000000..eaba7cc35aac8123e3326a31e84d1be85c80d439 --- /dev/null +++ b/rebound/source/rebound/tests/test_modify_orbital_parameters.py @@ -0,0 +1,191 @@ +import rebound +import unittest + +d = 1e-14 # precision. some orbit transformations are not well behaved + +class TestOrbitalElements(unittest.TestCase): + def test_P(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.2,Omega=0.3,inc=0.4,f=0.5) + sim.add(m=1e-3,a=2) + os0 = sim.orbits() + sim.particles[1].P += 0.5 + os1 = sim.orbits() + self.assertAlmostEqual(os1[0].P, os0[0].P+0.5, delta=d) + self.assertAlmostEqual(os1[0].e, os0[0].e, delta=d) + self.assertAlmostEqual(os1[0].f, os0[0].f, delta=d) + self.assertAlmostEqual(os1[0].omega, os0[0].omega, delta=d) + self.assertAlmostEqual(os1[0].Omega, os0[0].Omega, delta=d) + self.assertAlmostEqual(os1[0].inc, os0[0].inc, delta=d) + + def test_a(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.2,Omega=0.3,inc=0.4,f=0.5) + sim.add(m=1e-3,a=2) + os0 = sim.orbits() + sim.particles[1].a += 0.5 + os1 = sim.orbits() + self.assertAlmostEqual(os1[0].a, os0[0].a+0.5, delta=d) + self.assertAlmostEqual(os1[0].e, os0[0].e, delta=d) + self.assertAlmostEqual(os1[0].f, os0[0].f, delta=d) + self.assertAlmostEqual(os1[0].omega, os0[0].omega, delta=d) + self.assertAlmostEqual(os1[0].Omega, os0[0].Omega, delta=d) + self.assertAlmostEqual(os1[0].inc, os0[0].inc, delta=d) + + def test_e(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.2,Omega=0.3,inc=0.4,f=0.5) + sim.add(m=1e-3,a=2) + os0 = sim.orbits() + sim.particles[1].e += 0.5 + os1 = sim.orbits() + self.assertAlmostEqual(os1[0].a, os0[0].a, delta=d) + self.assertAlmostEqual(os1[0].e, os0[0].e+0.5, delta=d) + self.assertAlmostEqual(os1[0].f, os0[0].f, delta=d) + self.assertAlmostEqual(os1[0].omega, os0[0].omega, delta=d) + self.assertAlmostEqual(os1[0].Omega, os0[0].Omega, delta=d) + self.assertAlmostEqual(os1[0].inc, os0[0].inc, delta=d) + + def test_inc(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.2,Omega=0.3,inc=0.4,f=0.5) + sim.add(m=1e-3,a=2) + os0 = sim.orbits() + sim.particles[1].inc += 0.5 + os1 = sim.orbits() + self.assertAlmostEqual(os1[0].a, os0[0].a, delta=d) + self.assertAlmostEqual(os1[0].e, os0[0].e, delta=d) + self.assertAlmostEqual(os1[0].f, os0[0].f, delta=d) + self.assertAlmostEqual(os1[0].omega, os0[0].omega, delta=d) + self.assertAlmostEqual(os1[0].Omega, os0[0].Omega, delta=d) + self.assertAlmostEqual(os1[0].inc, os0[0].inc+0.5, delta=d) + + def test_omega(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.2,Omega=0.3,inc=0.4,f=0.5) + sim.add(m=1e-3,a=2) + os0 = sim.orbits() + sim.particles[1].omega += 0.5 + os1 = sim.orbits() + self.assertAlmostEqual(os1[0].a, os0[0].a, delta=d) + self.assertAlmostEqual(os1[0].e, os0[0].e, delta=d) + self.assertAlmostEqual(os1[0].f, os0[0].f, delta=d) + self.assertAlmostEqual(os1[0].omega, os0[0].omega+0.5, delta=d) + self.assertAlmostEqual(os1[0].Omega, os0[0].Omega, delta=d) + self.assertAlmostEqual(os1[0].inc, os0[0].inc, delta=d) + + def test_pomega(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.2,Omega=0.3,inc=0.4,f=0.5) + sim.add(m=1e-3,a=2) + os0 = sim.orbits() + sim.particles[1].pomega += 0.5 + os1 = sim.orbits() + self.assertAlmostEqual(os1[0].a, os0[0].a, delta=d) + self.assertAlmostEqual(os1[0].e, os0[0].e, delta=d) + self.assertAlmostEqual(os1[0].f, os0[0].f, delta=d) + self.assertAlmostEqual(os1[0].pomega, os0[0].pomega+0.5, delta=d) + self.assertAlmostEqual(os1[0].Omega, os0[0].Omega, delta=d) + self.assertAlmostEqual(os1[0].inc, os0[0].inc, delta=d) + + def test_Omega(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.2,Omega=0.3,inc=0.4,f=0.5) + sim.add(m=1e-3,a=2) + os0 = sim.orbits() + sim.particles[1].Omega += 0.5 + os1 = sim.orbits() + self.assertAlmostEqual(os1[0].a, os0[0].a, delta=d) + self.assertAlmostEqual(os1[0].e, os0[0].e, delta=d) + self.assertAlmostEqual(os1[0].f, os0[0].f, delta=d) + self.assertAlmostEqual(os1[0].omega, os0[0].omega, delta=d) + self.assertAlmostEqual(os1[0].Omega, os0[0].Omega+0.5, delta=d) + self.assertAlmostEqual(os1[0].inc, os0[0].inc, delta=d) + + def test_f(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.2,Omega=0.3,inc=0.4,f=0.5) + sim.add(m=1e-3,a=2) + os0 = sim.orbits() + sim.particles[1].f += 0.5 + os1 = sim.orbits() + self.assertAlmostEqual(os1[0].a, os0[0].a, delta=d) + self.assertAlmostEqual(os1[0].e, os0[0].e, delta=d) + self.assertAlmostEqual(os1[0].f, os0[0].f+0.5, delta=d) + self.assertAlmostEqual(os1[0].omega, os0[0].omega, delta=d) + self.assertAlmostEqual(os1[0].Omega, os0[0].Omega, delta=d) + self.assertAlmostEqual(os1[0].inc, os0[0].inc, delta=d) + + def test_M(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.2,Omega=0.3,inc=0.4,f=0.5) + sim.add(m=1e-3,a=2) + os0 = sim.orbits() + sim.particles[1].M += 0.5 + os1 = sim.orbits() + self.assertAlmostEqual(os1[0].a, os0[0].a, delta=d) + self.assertAlmostEqual(os1[0].e, os0[0].e, delta=d) + self.assertAlmostEqual(os1[0].M, os0[0].M+0.5, delta=d) + self.assertAlmostEqual(os1[0].omega, os0[0].omega, delta=d) + self.assertAlmostEqual(os1[0].Omega, os0[0].Omega, delta=d) + self.assertAlmostEqual(os1[0].inc, os0[0].inc, delta=d) + + + def test_l(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.2,Omega=0.3,inc=0.4,f=0.5) + sim.add(m=1e-3,a=2) + os0 = sim.orbits() + sim.particles[1].l += 0.5 + os1 = sim.orbits() + self.assertAlmostEqual(os1[0].a, os0[0].a, delta=d) + self.assertAlmostEqual(os1[0].e, os0[0].e, delta=d) + self.assertAlmostEqual(os1[0].l, os0[0].l+0.5, delta=d) + self.assertAlmostEqual(os1[0].omega, os0[0].omega, delta=d) + self.assertAlmostEqual(os1[0].Omega, os0[0].Omega, delta=d) + self.assertAlmostEqual(os1[0].inc, os0[0].inc, delta=d) + + def test_theta(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.2,Omega=0.3,inc=0.4,f=0.5) + sim.add(m=1e-3,a=2) + os0 = sim.orbits() + sim.particles[1].theta += 0.5 + os1 = sim.orbits() + self.assertAlmostEqual(os1[0].a, os0[0].a, delta=d) + self.assertAlmostEqual(os1[0].e, os0[0].e, delta=d) + self.assertAlmostEqual(os1[0].theta, os0[0].theta+0.5, delta=d) + self.assertAlmostEqual(os1[0].omega, os0[0].omega, delta=d) + self.assertAlmostEqual(os1[0].Omega, os0[0].Omega, delta=d) + self.assertAlmostEqual(os1[0].inc, os0[0].inc, delta=d) + + def test_T(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.2,Omega=0.3,inc=0.4,f=0.5) + sim.add(m=1e-3,a=2) + os0 = sim.orbits() + sim.particles[1].T += 0.5 + os1 = sim.orbits() + self.assertAlmostEqual(os1[0].a, os0[0].a, delta=d) + self.assertAlmostEqual(os1[0].e, os0[0].e, delta=d) + self.assertAlmostEqual(os1[0].T, os0[0].T+0.5, delta=d) + self.assertAlmostEqual(os1[0].omega, os0[0].omega, delta=d) + self.assertAlmostEqual(os1[0].Omega, os0[0].Omega, delta=d) + self.assertAlmostEqual(os1[0].inc, os0[0].inc, delta=d) + + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_orbital_elements.py b/rebound/source/rebound/tests/test_orbital_elements.py new file mode 100644 index 0000000000000000000000000000000000000000..abf849257cbb185324710498bfdc9db8c791c6c1 --- /dev/null +++ b/rebound/source/rebound/tests/test_orbital_elements.py @@ -0,0 +1,362 @@ +import rebound +import math +import unittest + +class TestOrbitalElements(unittest.TestCase): + def test_add_errors(self): + sim = rebound.Simulation() + with self.assertRaises(ValueError): + sim.add(a=1) + sim.add(m=1.) + with self.assertRaises(ValueError): + sim.add(a=1, e=1) + with self.assertRaises(ValueError): + sim.add(a=1, e=-2) + with self.assertRaises(ValueError): + sim.add(a=1, e=1.2) + with self.assertRaises(ValueError): + sim.add(a=-1, e=.2) + with self.assertRaises(ValueError): + sim.add(a=-1, e=2.2, f=3.) + + def test_orbit_errors(self): + sim = rebound.Simulation() + sim.add() + sim.add(x=1.) + with self.assertRaises(ValueError): + a = sim.particles[1].a + + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1.e-3) + with self.assertRaises(ValueError): + a = sim.particles[1].a + + def test_inclined_eccentric(self): + sim = rebound.Simulation() + d = 1.e-12 # abs error tolerance + sim.add(m=1.2354) + sim.add(m=1.e-4,a=1.24,e=0.123,inc=0.14,omega=0.12,Omega=0.64,l=0.632) + sim.add(m=1.e-4,a=2.24,e=0.123,inc=0.14,omega=0.12,Omega=0.64,f=0.632) + sim.add(m=1.e-4,a=3.24,e=0.123,inc=0.14,omega=0.12,Omega=0.64,theta=0.632) + sim.add(m=1.e-4,a=4.24,e=0.123,inc=0.14,omega=0.12,Omega=0.64,M=0.632) + sim.add(m=1.e-4,a=5.24,e=0.123,inc=0.14,omega=0.12,Omega=0.64,T=0.632) + sim.add(m=1.e-4,a=6.24,e=0.123,inc=0.14,pomega=0.12,Omega=0.64,l=0.632) + sim.add(m=1.e-4,a=7.24,e=0.123,inc=0.14,pomega=0.12,Omega=0.64,f=0.632) + sim.add(m=1.e-4,a=8.24,e=0.123,inc=0.14,pomega=0.12,Omega=0.64,theta=0.632) + sim.add(m=1.e-4,a=9.24,e=0.123,inc=0.14,pomega=0.12,Omega=0.64,M=0.632) + sim.add(m=1.e-4,a=10.24,e=0.123,inc=0.14,pomega=0.12,Omega=0.64,T=0.632) + + def test_p(p): + self.assertAlmostEqual(p.e, 0.123, delta=d) + self.assertAlmostEqual(p.inc, 0.14, delta=d) + self.assertAlmostEqual(p.Omega, 0.64, delta=d) + + ps = sim.particles + for p in ps[1:]: + test_p(p) + + self.assertAlmostEqual(ps[1].a, 1.24, delta=d) + self.assertAlmostEqual(ps[1].omega, 0.12, delta=d) + self.assertAlmostEqual(ps[1].l, 0.632, delta=d) + self.assertAlmostEqual(ps[2].a, 2.24, delta=d) + self.assertAlmostEqual(ps[2].omega, 0.12, delta=d) + self.assertAlmostEqual(ps[2].f, 0.632, delta=d) + self.assertAlmostEqual(ps[3].a, 3.24, delta=d) + self.assertAlmostEqual(ps[3].omega, 0.12, delta=d) + self.assertAlmostEqual(ps[3].theta, 0.632, delta=d) + self.assertAlmostEqual(ps[4].a, 4.24, delta=d) + self.assertAlmostEqual(ps[4].omega, 0.12, delta=d) + self.assertAlmostEqual(ps[4].M, 0.632, delta=d) + self.assertAlmostEqual(ps[5].a, 5.24, delta=d) + self.assertAlmostEqual(ps[5].omega, 0.12, delta=d) + self.assertAlmostEqual(ps[5].T, 0.632, delta=d) + self.assertAlmostEqual(ps[6].a, 6.24, delta=d) + self.assertAlmostEqual(ps[6].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[6].l, 0.632, delta=d) + self.assertAlmostEqual(ps[7].a, 7.24, delta=d) + self.assertAlmostEqual(ps[7].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[7].f, 0.632, delta=d) + self.assertAlmostEqual(ps[8].a, 8.24, delta=d) + self.assertAlmostEqual(ps[8].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[8].theta, 0.632, delta=d) + self.assertAlmostEqual(ps[9].a, 9.24, delta=d) + self.assertAlmostEqual(ps[9].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[9].M, 0.632, delta=d) + self.assertAlmostEqual(ps[10].a, 10.24, delta=d) + self.assertAlmostEqual(ps[10].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[10].T, 0.632, delta=d) + + def test_planar_eccentric(self): + sim = rebound.Simulation() + d = 1.e-12 # abs error tolerance + sim.add(m=1.2354) + sim.add(m=1.e-4,a=1.00,e=0.123) # dummy, make sure jacobi com is calculated right for higher indices + sim.add(m=1.e-4,a=1.24,e=0.123,pomega=0.12,l=0.632) + sim.add(m=1.e-4,a=2.24,e=0.123,pomega=0.12,f=0.632) + sim.add(m=1.e-4,a=3.24,e=0.123,pomega=0.12,theta=0.632) + sim.add(m=1.e-4,a=4.24,e=0.123,pomega=0.12,M=0.632) + sim.add(m=1.e-4,a=5.24,e=0.123,pomega=0.12,T=0.632) + sim.add(m=1.e-4,a=6.24,e=0.123,Omega=1.25,pomega=0.12,l=0.632) + sim.add(m=1.e-4,a=7.24,e=0.123,Omega=1.25,pomega=0.12,f=0.632) + sim.add(m=1.e-4,a=8.24,e=0.123,Omega=1.25,pomega=0.12,theta=0.632) + sim.add(m=1.e-4,a=9.24,e=0.123,Omega=1.25,pomega=0.12,M=0.632) + sim.add(m=1.e-4,a=10.24,e=0.123,Omega=1.25,pomega=0.12,T=6.32) + + def test_p(p): + self.assertAlmostEqual(p.e, 0.123, delta=d) + + ps = sim.particles + for p in ps[1:]: + test_p(p) + + self.assertAlmostEqual(ps[2].a, 1.24, delta=d) + self.assertAlmostEqual(ps[2].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[2].l, 0.632, delta=d) + self.assertAlmostEqual(ps[3].a, 2.24, delta=d) + self.assertAlmostEqual(ps[3].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[3].f, 0.632, delta=d) + self.assertAlmostEqual(ps[4].a, 3.24, delta=d) + self.assertAlmostEqual(ps[4].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[4].theta, 0.632, delta=d) + self.assertAlmostEqual(ps[5].a, 4.24, delta=d) + self.assertAlmostEqual(ps[5].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[5].M, 0.632, delta=d) + self.assertAlmostEqual(ps[6].a, 5.24, delta=d) + self.assertAlmostEqual(ps[6].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[6].T, 0.632, delta=d) + self.assertAlmostEqual(ps[7].a, 6.24, delta=d) + self.assertAlmostEqual(ps[7].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[7].l, 0.632, delta=d) + self.assertAlmostEqual(ps[8].a, 7.24, delta=d) + self.assertAlmostEqual(ps[8].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[8].f, 0.632, delta=d) + self.assertAlmostEqual(ps[9].a, 8.24, delta=d) + self.assertAlmostEqual(ps[9].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[9].theta, 0.632, delta=d) + self.assertAlmostEqual(ps[10].a, 9.24, delta=d) + self.assertAlmostEqual(ps[10].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[10].M, 0.632, delta=d) + self.assertAlmostEqual(ps[11].a, 10.24, delta=d) + self.assertAlmostEqual(ps[11].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[11].T, 6.32, delta=d) + + def test_inclined_circular(self): + sim = rebound.Simulation() + d = 1.e-12 # abs error tolerance + sim.add(m=1.2354) + sim.add(m=1.e-4,a=1.00,inc=0.14,Omega=0.64) # dummy, make sure jacobi com is calculated right for higher indices + sim.add(m=1.e-4,a=1.24,inc=0.14,Omega=0.64,l=0.632) + sim.add(m=1.e-4,a=2.24,inc=0.14,Omega=0.64,theta=0.632) + + def test_p(p): + self.assertAlmostEqual(p.e, 0., delta=d) + self.assertAlmostEqual(p.inc, 0.14, delta=d) + self.assertAlmostEqual(p.Omega, 0.64, delta=d) + + ps = sim.particles + for p in ps[1:]: + test_p(p) + + self.assertAlmostEqual(ps[2].a, 1.24, delta=d) + self.assertAlmostEqual(ps[2].l, 0.632, delta=d) + self.assertAlmostEqual(ps[3].a, 2.24, delta=d) + self.assertAlmostEqual(ps[3].theta, 0.632, delta=d) + + def test_planar_circular(self): + sim = rebound.Simulation() + d = 1.e-12 # abs error tolerance + sim.add(m=1.2354) + sim.add(m=1.e-4,a=1.00) # dummy, make sure jacobi com is calculated right for higher indices + sim.add(m=1.e-4,a=1.24,l=0.632) + sim.add(m=1.e-4,a=2.24,theta=0.632) + + def test_p(p): + self.assertAlmostEqual(p.e, 0., delta=d) + self.assertAlmostEqual(p.inc, 0., delta=d) + + ps = sim.particles + for p in ps[1:]: + test_p(p) + + self.assertAlmostEqual(ps[2].a, 1.24, delta=d) + self.assertAlmostEqual(ps[2].l, 0.632, delta=d) + self.assertAlmostEqual(ps[3].a, 2.24, delta=d) + self.assertAlmostEqual(ps[3].theta, 0.632, delta=d) + + def test_retrograde_inclined_eccentric(self): + sim = rebound.Simulation() + d = 1.e-12 # abs error tolerance + sim.add(m=1.2354) + sim.add(m=1.e-4,a=1.24,e=0.123,inc=2.14,omega=0.12,Omega=0.64,l=0.632) + sim.add(m=1.e-4,a=2.24,e=0.123,inc=2.14,omega=0.12,Omega=0.64,f=0.632) + sim.add(m=1.e-4,a=3.24,e=0.123,inc=2.14,omega=0.12,Omega=0.64,theta=0.632) + sim.add(m=1.e-4,a=4.24,e=0.123,inc=2.14,omega=0.12,Omega=0.64,M=0.632) + sim.add(m=1.e-4,a=5.24,e=0.123,inc=2.14,omega=0.12,Omega=0.64,T=0.632) + sim.add(m=1.e-4,a=6.24,e=0.123,inc=2.14,pomega=0.12,Omega=0.64,l=0.632) + sim.add(m=1.e-4,a=7.24,e=0.123,inc=2.14,pomega=0.12,Omega=0.64,f=0.632) + sim.add(m=1.e-4,a=8.24,e=0.123,inc=2.14,pomega=0.12,Omega=0.64,theta=0.632) + sim.add(m=1.e-4,a=9.24,e=0.123,inc=2.14,pomega=0.12,Omega=0.64,M=0.632) + sim.add(m=1.e-4,a=10.24,e=0.123,inc=2.14,pomega=0.12,Omega=0.64,T=0.632) + + def test_p(p): + self.assertAlmostEqual(p.e, 0.123, delta=d) + self.assertAlmostEqual(p.inc, 2.14, delta=d) + self.assertAlmostEqual(p.Omega, 0.64, delta=d) + + ps = sim.particles + for p in ps[1:]: + test_p(p) + + self.assertAlmostEqual(ps[1].a, 1.24, delta=d) + self.assertAlmostEqual(ps[1].omega, 0.12, delta=d) + self.assertAlmostEqual(ps[1].l, 0.632, delta=d) + self.assertAlmostEqual(ps[2].a, 2.24, delta=d) + self.assertAlmostEqual(ps[2].omega, 0.12, delta=d) + self.assertAlmostEqual(ps[2].f, 0.632, delta=d) + self.assertAlmostEqual(ps[3].a, 3.24, delta=d) + self.assertAlmostEqual(ps[3].omega, 0.12, delta=d) + self.assertAlmostEqual(ps[3].theta, 0.632, delta=d) + self.assertAlmostEqual(ps[4].a, 4.24, delta=d) + self.assertAlmostEqual(ps[4].omega, 0.12, delta=d) + self.assertAlmostEqual(ps[4].M, 0.632, delta=d) + self.assertAlmostEqual(ps[5].a, 5.24, delta=d) + self.assertAlmostEqual(ps[5].omega, 0.12, delta=d) + self.assertAlmostEqual(ps[5].T, 0.632, delta=d) + self.assertAlmostEqual(ps[6].a, 6.24, delta=d) + self.assertAlmostEqual(ps[6].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[6].l, 0.632, delta=d) + self.assertAlmostEqual(ps[7].a, 7.24, delta=d) + self.assertAlmostEqual(ps[7].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[7].f, 0.632, delta=d) + self.assertAlmostEqual(ps[8].a, 8.24, delta=d) + self.assertAlmostEqual(ps[8].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[8].theta, 0.632, delta=d) + self.assertAlmostEqual(ps[9].a, 9.24, delta=d) + self.assertAlmostEqual(ps[9].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[9].M, 0.632, delta=d) + self.assertAlmostEqual(ps[10].a, 10.24, delta=d) + self.assertAlmostEqual(ps[10].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[10].T, 0.632, delta=d) + + def test_retrorade_planar_eccentric(self): + sim = rebound.Simulation() + d = 1.e-12 # abs error tolerance + sim.add(m=1.2354) + sim.add(m=1.e-4,a=1.00,e=0.123,inc=math.pi) # dummy, make sure jacobi com is calculated right for higher indices + sim.add(m=1.e-4,a=1.24,e=0.123,inc=math.pi,pomega=0.12,l=0.632) + sim.add(m=1.e-4,a=2.24,e=0.123,inc=math.pi,pomega=0.12,f=0.632) + sim.add(m=1.e-4,a=3.24,e=0.123,inc=math.pi,pomega=0.12,theta=0.632) + sim.add(m=1.e-4,a=4.24,e=0.123,inc=math.pi,pomega=0.12,M=0.632) + sim.add(m=1.e-4,a=5.24,e=0.123,inc=math.pi,pomega=0.12,T=0.632) + sim.add(m=1.e-4,a=6.24,e=0.123,inc=math.pi,Omega=1.25,pomega=0.12,l=0.632) + sim.add(m=1.e-4,a=7.24,e=0.123,inc=math.pi,Omega=1.25,pomega=0.12,f=0.632) + sim.add(m=1.e-4,a=8.24,e=0.123,inc=math.pi,Omega=1.25,pomega=0.12,theta=0.632) + sim.add(m=1.e-4,a=9.24,e=0.123,inc=math.pi,Omega=1.25,pomega=0.12,M=0.632) + sim.add(m=1.e-4,a=10.24,e=0.123,inc=math.pi,Omega=1.25,pomega=0.12,T=6.32) + + def test_p(p): + self.assertAlmostEqual(p.e, 0.123, delta=d) + self.assertAlmostEqual(p.inc, math.pi, delta=d) + + ps = sim.particles + for p in ps[1:]: + test_p(p) + + self.assertAlmostEqual(ps[2].a, 1.24, delta=d) + self.assertAlmostEqual(ps[2].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[2].l, 0.632, delta=d) + self.assertAlmostEqual(ps[3].a, 2.24, delta=d) + self.assertAlmostEqual(ps[3].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[3].f, 0.632, delta=d) + self.assertAlmostEqual(ps[4].a, 3.24, delta=d) + self.assertAlmostEqual(ps[4].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[4].theta, 0.632, delta=d) + self.assertAlmostEqual(ps[5].a, 4.24, delta=d) + self.assertAlmostEqual(ps[5].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[5].M, 0.632, delta=d) + self.assertAlmostEqual(ps[6].a, 5.24, delta=d) + self.assertAlmostEqual(ps[6].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[6].T, 0.632, delta=d) + self.assertAlmostEqual(ps[7].a, 6.24, delta=d) + self.assertAlmostEqual(ps[7].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[7].l, 0.632, delta=d) + self.assertAlmostEqual(ps[8].a, 7.24, delta=d) + self.assertAlmostEqual(ps[8].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[8].f, 0.632, delta=d) + self.assertAlmostEqual(ps[9].a, 8.24, delta=d) + self.assertAlmostEqual(ps[9].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[9].theta, 0.632, delta=d) + self.assertAlmostEqual(ps[10].a, 9.24, delta=d) + self.assertAlmostEqual(ps[10].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[10].M, 0.632, delta=d) + self.assertAlmostEqual(ps[11].a, 10.24, delta=d) + self.assertAlmostEqual(ps[11].pomega, 0.12, delta=d) + self.assertAlmostEqual(ps[11].T, 6.32, delta=d) + + def test_retrograde_inclined_circular(self): + sim = rebound.Simulation() + d = 1.e-12 # abs error tolerance + sim.add(m=1.2354) + sim.add(m=1.e-4,a=1.00,inc=2.14,Omega=0.64) # dummy, make sure jacobi com is calculated right for higher indices + sim.add(m=1.e-4,a=1.24,inc=2.14,Omega=0.64,l=0.632) + sim.add(m=1.e-4,a=2.24,inc=2.14,Omega=0.64,theta=0.632) + + def test_p(p): + self.assertAlmostEqual(p.e, 0., delta=d) + self.assertAlmostEqual(p.inc, 2.14, delta=d) + self.assertAlmostEqual(p.Omega, 0.64, delta=d) + + ps = sim.particles + for p in ps[1:]: + test_p(p) + + self.assertAlmostEqual(ps[2].a, 1.24, delta=d) + self.assertAlmostEqual(ps[2].l, 0.632, delta=d) + self.assertAlmostEqual(ps[3].a, 2.24, delta=d) + self.assertAlmostEqual(ps[3].theta, 0.632, delta=d) + + def test_retrograde_planar_circular(self): + sim = rebound.Simulation() + d = 1.e-12 # abs error tolerance + sim.add(m=1.2354) + sim.add(m=1.e-4,inc=math.pi,a=1.00) # dummy, make sure jacobi com is calculated right for higher indices + sim.add(m=1.e-4,inc=math.pi,a=1.24,l=0.632) + sim.add(m=1.e-4,inc=math.pi,a=2.24,theta=0.632) + + def test_p(p): + self.assertAlmostEqual(p.e, 0., delta=d) + self.assertAlmostEqual(p.inc, math.pi, delta=d) + + ps = sim.particles + for p in ps[1:]: + test_p(p) + + self.assertAlmostEqual(ps[2].a, 1.24, delta=d) + self.assertAlmostEqual(ps[2].l, 0.632, delta=d) + self.assertAlmostEqual(ps[2].inc, math.pi, delta=d) + self.assertAlmostEqual(ps[3].a, 2.24, delta=d) + self.assertAlmostEqual(ps[3].theta, 0.632, delta=d) + self.assertAlmostEqual(ps[3].inc, math.pi, delta=d) + + def test_pal_back_and_forth(self): + def test_p(x, y, z, vx, vy, vz): + sim = rebound.Simulation() + sim.add(m=1.234) + sim.add(m=0.0002345, x=x, y=y, z=z, vx=vx, vy=vy, vz=vz) + o = sim.orbits()[0] + sim.add(primary=sim.particles[0], m=sim.particles[1].m, a=o.a, l=o.l, h=o.pal_h, k=o.pal_k, ix=o.pal_ix, iy=o.pal_iy) + + d = 2.e-14 # abs error tolerance + self.assertAlmostEqual(sim.particles[1].x, sim.particles[2].x, delta=d) + self.assertAlmostEqual(sim.particles[1].y, sim.particles[2].y, delta=d) + self.assertAlmostEqual(sim.particles[1].z, sim.particles[2].z, delta=d) + self.assertAlmostEqual(sim.particles[1].vx, sim.particles[2].vx, delta=d) + self.assertAlmostEqual(sim.particles[1].vy, sim.particles[2].vy, delta=d) + self.assertAlmostEqual(sim.particles[1].vz, sim.particles[2].vz, delta=d) + + test_p(x=0.98, y=0.023, z=0.01, vx=-0.0151, vy=0.9981, vz=-0.01) + test_p(x=0.198, y=0.023, z=1.01, vx=-0.01, vy=0.09981, vz=-0.01) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_particle.py b/rebound/source/rebound/tests/test_particle.py new file mode 100644 index 0000000000000000000000000000000000000000..200e94ad2f8933de09ad7c7a58e3857ab0872255 --- /dev/null +++ b/rebound/source/rebound/tests/test_particle.py @@ -0,0 +1,346 @@ +import rebound +import unittest +import math +import warnings + +class TestParticleWarning(unittest.TestCase): + def test_testparticle0_with_mass(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.N_active = sim.N + sim.add(m=1,a=1) + sim.testparticle_type = 1 + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(1) + self.assertEqual(0,len(w)) + sim.testparticle_type = 0 + # Warning occurs each time integrate is called + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(2) + sim.integrate(3) + self.assertEqual(2,len(w)) + sim.testparticle_hidewarnings = 1 + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(4) + self.assertEqual(0,len(w)) + + +class TestParticleInSimulation(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + + def tearDown(self): + self.sim = None + + def test_adding(self): + self.sim.add() + self.sim.add(m=1.) + self.sim.add(m=1.,x=1, vy=1) + self.sim.add(x=2) + self.sim.add(x=3, r=1.) + with self.assertRaises(ValueError): + self.sim.add(x=4,a=1) + p4 = self.sim.particles[4] + ind = p4.index + self.assertEqual(ind,4) + + def test_masses(self): + self.sim.add(m=1.) + self.sim.add(m=1.e-3, a=1.) + self.sim.add(m=1.e-6, a=2.) + self.sim.add(m=0., a=3.) + ps = self.sim.particles + self.assertAlmostEqual(ps[0].m,1.,delta=1e-15) + self.assertAlmostEqual(ps[1].m,1.e-3,delta=1e-15) + self.assertAlmostEqual(ps[2].m,1.e-6,delta=1e-15) + self.assertAlmostEqual(ps[3].m,0.,delta=1e-15) + + def test_jacobi_masses(self): + self.sim.add(m=1.) + self.sim.add(m=1.e-3, a=1., jacobi_masses=True) + self.sim.add(m=1.e-6, a=2., jacobi_masses=True) + self.sim.add(m=0., a=3., jacobi_masses=True) + ps = self.sim.particles + self.assertAlmostEqual(ps[0].m,1.,delta=1e-15) + self.assertAlmostEqual(ps[1].m,1.e-3,delta=1e-15) + self.assertAlmostEqual(ps[2].m,1.e-6,delta=1e-15) + self.assertAlmostEqual(ps[3].m,0.,delta=1e-15) + self.assertAlmostEqual(ps[1].vy,1.000499875062461,delta=1e-15) + self.assertAlmostEqual(ps[2].vy,0.7081066347613374,delta=1e-15) + self.assertAlmostEqual(ps[3].vy,0.5783504759643414,delta=1e-15) + o = self.sim.orbits(jacobi_masses=True) + self.assertAlmostEqual(o[0].a,1.,delta=1e-15) + self.assertAlmostEqual(o[1].a,2.,delta=1e-15) + self.assertAlmostEqual(o[2].a,3.,delta=1e-15) + self.assertAlmostEqual(o[0].e,0.,delta=1e-15) + self.assertAlmostEqual(o[1].e,0.,delta=1e-15) + self.assertAlmostEqual(o[2].e,0.,delta=1e-15) + + def test_adding_orbits(self): + self.sim.add(m=1.) + self.sim.add(a=1.) + with self.assertRaises(ValueError): + self.sim.add(e=0.1) + with self.assertRaises(ValueError): + self.sim.add(a=1.,e=0.1,omega=0.1,pomega=0.1) + self.sim.add(a=2.,e=0.1,inc=0.1,pomega=0.1) + self.sim.add(a=2.,e=0.1,inc=-0.1,pomega=0.1) + self.sim.add(a=2.,e=0.1,inc=0.1,theta=0.1) + self.sim.add(a=2.,e=0.1,inc=-0.1,theta=0.1) + self.sim.add(a=2.,e=0.1,inc=0.1,l=0.1) + self.sim.add(a=2.,e=0.1,inc=-0.1,l=0.1) + self.sim.add(P=2.,e=0.1,inc=-2.1,pomega=0.1) + self.sim.add(P=2.,e=0.1,inc=-2.1,pomega=0.1,f=0.2) + self.sim.add(P=2.,e=0.1,inc=-2.1,pomega=0.1,T=0.2) + self.sim.add(P=2.,e=0.1,inc=-2.1,pomega=0.1,theta=0.2) + with self.assertRaises(ValueError): + self.sim.add(a=2.,e=0.1,f=0.1,M=0.1) + with self.assertRaises(ValueError): + self.sim.add(a=2.,e=0.1,f=0.1,l=0.1) + with self.assertRaises(ValueError): + self.sim.add(a=2.,e=0.1,f=0.1,theta=0.1) + with self.assertRaises(ValueError): + self.sim.add(a=3.,e=1.) + with self.assertRaises(ValueError): + self.sim.add(a=3.,e=1.1) + with self.assertRaises(ValueError): + self.sim.add(a=3.,P=1.1) + with self.assertRaises(ValueError): + self.sim.add(a=3.,e=-0.1) + self.sim.add(a=-3.,e=1.4) + with self.assertRaises(ValueError): + self.sim.add(a=-3.,e=0.9) + self.sim.add(a=-3.,e=1.4,f=0.1) + with self.assertRaises(ValueError): + self.sim.add(a=-3.,e=1.4,f=3.1) + + def test_sim_orbits(self): + self.sim.add(m=1.) + self.sim.add(m=1.e-3, a=1.,e=0.2,inc=0.3) + self.sim.add(m=1.e-3, a=2.,e=0.2,inc=0.3) + ps = self.sim.particles + self.assertAlmostEqual(ps[1].a,1.,delta=1e-15) + self.assertAlmostEqual(ps[1].e,0.2,delta=1e-15) + self.assertAlmostEqual(ps[1].inc,0.3,delta=1e-15) + self.assertAlmostEqual(ps[2].a,2.,delta=1e-15) + self.assertAlmostEqual(ps[2].e,0.2,delta=1e-15) + self.assertAlmostEqual(ps[2].inc,0.3,delta=1e-15) + + def test_orbits(self): + self.sim.add(m=1.) + self.sim.add(a=1.) + p = self.sim.particles + with self.assertRaises(ValueError): + p[0].orbit() + o = p[1].orbit() + string = o.__str__() + self.assertGreater(len(string),20) + self.assertAlmostEqual(o.a,1.,delta=1e-15) + self.assertAlmostEqual(o.e,0.,delta=1e-15) + self.assertAlmostEqual(o.f,0.,delta=1e-15) + self.assertAlmostEqual(o.inc,0.,delta=1e-15) + + self.assertAlmostEqual(p[1].a,1.,delta=1e-15) + self.assertAlmostEqual(p[1].e,0.,delta=1e-15) + self.assertAlmostEqual(p[1].f,0.,delta=1e-15) + self.assertAlmostEqual(p[1].inc,0.,delta=1e-15) + self.assertAlmostEqual(p[1].d,1.,delta=1e-15) + self.assertAlmostEqual(p[1].v,1.,delta=1e-15) + self.assertAlmostEqual(p[1].h,1.,delta=1e-15) + self.assertAlmostEqual(p[1].P,math.pi*2.,delta=1e-15) + self.assertAlmostEqual(p[1].n,1.,delta=1e-15) + self.assertAlmostEqual(p[1].omega,0.,delta=1e-15) + self.assertAlmostEqual(p[1].pomega,0.,delta=1e-15) + self.assertAlmostEqual(p[1].Omega,0.,delta=1e-15) + self.assertAlmostEqual(p[1].M,0.,delta=1e-15) + self.assertAlmostEqual(p[1].l,0.,delta=1e-15) + self.assertAlmostEqual(p[1].theta,0.,delta=1e-15) + self.assertAlmostEqual(p[1].T,0.,delta=1e-15) + self.assertAlmostEqual(p[1].pal_h,0.,delta=1e-15) + self.assertAlmostEqual(p[1].pal_k,0.,delta=1e-15) + self.assertAlmostEqual(p[1].pal_ix,0.,delta=1e-15) + self.assertAlmostEqual(p[1].pal_iy,0.,delta=1e-15) + + def test_orbits_errors(self): + self.sim.add() + self.sim.add(x=1) + with self.assertRaises(ValueError): + self.sim.particles[1].orbit() + + def test_orbits_errors2(self): + self.sim.add(m=1) + p1 = rebound.Particle(simulation=self.sim, a=1,m=0.1) + self.sim.add(p1) + with self.assertRaises(ValueError): + self.sim.particles[1].orbit(primary=p1) + + def test_orbits_errors3(self): + p1 = rebound.Particle(m=1.,x=1.,vy=0.4) + p2 = rebound.Particle(m=1.,x=4.,vy=2.4) + with self.assertRaises(ValueError): + p2.orbit() + with self.assertRaises(ValueError): + p2.orbit(primary=p1) + p2.orbit(primary=p1,G=1.) + + +class TestParticleOperators(unittest.TestCase): + def test_sub(self): + p1 = rebound.Particle(m=1.1,x=1.2,vy=1.3) + p2 = rebound.Particle(m=1.4,x=1.6,vy=1.8) + p3 = p1 - p2 + self.assertEqual(p3.x,p1.x-p2.x) + self.assertEqual(p3.y,p1.y-p2.y) + self.assertEqual(p3.z,p1.z-p2.z) + self.assertEqual(p3.vx,p1.vx-p2.vx) + self.assertEqual(p3.vy,p1.vy-p2.vy) + self.assertEqual(p3.vz,p1.vz-p2.vz) + self.assertEqual(p3.m,p1.m-p2.m) + + def test_add(self): + p1 = rebound.Particle(m=1.1,x=1.2,vy=1.3) + p2 = rebound.Particle(m=1.4,x=1.6,vy=1.8) + p3 = p1 + p2 + self.assertEqual(p3.x,p1.x+p2.x) + self.assertEqual(p3.y,p1.y+p2.y) + self.assertEqual(p3.z,p1.z+p2.z) + self.assertEqual(p3.vx,p1.vx+p2.vx) + self.assertEqual(p3.vy,p1.vy+p2.vy) + self.assertEqual(p3.vz,p1.vz+p2.vz) + self.assertEqual(p3.m,p1.m+p2.m) + + def test_mul(self): + p1 = rebound.Particle(m=1.1,x=1.2,vy=1.3) + p2 = 2.*p1 + self.assertEqual(p2.x,2.*p1.x) + self.assertEqual(p2.y,2.*p1.y) + self.assertEqual(p2.z,2.*p1.z) + self.assertEqual(p2.vx,2.*p1.vx) + self.assertEqual(p2.vy,2.*p1.vy) + self.assertEqual(p2.vz,2.*p1.vz) + self.assertEqual(p2.m,2.*p1.m) + + def test_div(self): + p1 = rebound.Particle(m=1.2,x=1.4,vy=1.8) + p2 = p1/2. + self.assertEqual(p2.x,p1.x/2.) + self.assertEqual(p2.y,p1.y/2.) + self.assertEqual(p2.z,p1.z/2.) + self.assertEqual(p2.vx,p1.vx/2.) + self.assertEqual(p2.vy,p1.vy/2.) + self.assertEqual(p2.vz,p1.vz/2.) + self.assertEqual(p2.m,p1.m/2.) + + def test_truediv(self): + p1 = rebound.Particle(m=1.2,x=1.4,vy=1.8) + p2 = p1/2 + self.assertEqual(p2.x,p1.x/2.) + self.assertEqual(p2.y,p1.y/2.) + self.assertEqual(p2.z,p1.z/2.) + self.assertEqual(p2.vx,p1.vx/2.) + self.assertEqual(p2.vy,p1.vy/2.) + self.assertEqual(p2.vz,p1.vz/2.) + self.assertEqual(p2.m,p1.m/2.) + + def test_isub(self): + p1 = rebound.Particle(m=1.1,x=1.2,vy=1.3) + p3 = p1.copy() + p2 = rebound.Particle(m=1.4,x=1.6,vy=1.8) + p3 -= p2 + self.assertEqual(p3.x,p1.x-p2.x) + self.assertEqual(p3.y,p1.y-p2.y) + self.assertEqual(p3.z,p1.z-p2.z) + self.assertEqual(p3.vx,p1.vx-p2.vx) + self.assertEqual(p3.vy,p1.vy-p2.vy) + self.assertEqual(p3.vz,p1.vz-p2.vz) + self.assertEqual(p3.m,p1.m-p2.m) + + def test_iadd(self): + p1 = rebound.Particle(m=1.1,x=1.2,vy=1.3) + p3 = p1.copy() + p2 = rebound.Particle(m=1.4,x=1.6,vy=1.8) + p3 += p2 + self.assertEqual(p3.x,p1.x+p2.x) + self.assertEqual(p3.y,p1.y+p2.y) + self.assertEqual(p3.z,p1.z+p2.z) + self.assertEqual(p3.vx,p1.vx+p2.vx) + self.assertEqual(p3.vy,p1.vy+p2.vy) + self.assertEqual(p3.vz,p1.vz+p2.vz) + self.assertEqual(p3.m,p1.m+p2.m) + + def test_imul(self): + p1 = rebound.Particle(m=1.1,x=1.2,vy=1.3) + p2 = p1.copy() + p2 *= 2. + self.assertEqual(p2.x,2.*p1.x) + self.assertEqual(p2.y,2.*p1.y) + self.assertEqual(p2.z,2.*p1.z) + self.assertEqual(p2.vx,2.*p1.vx) + self.assertEqual(p2.vy,2.*p1.vy) + self.assertEqual(p2.vz,2.*p1.vz) + self.assertEqual(p2.m,2.*p1.m) + + def test_idiv(self): + p1 = rebound.Particle(m=1.2,x=1.4,vy=1.8) + p2 = p1.copy() + p2 /=2. + self.assertEqual(p2.x,p1.x/2.) + self.assertEqual(p2.y,p1.y/2.) + self.assertEqual(p2.z,p1.z/2.) + self.assertEqual(p2.vx,p1.vx/2.) + self.assertEqual(p2.vy,p1.vy/2.) + self.assertEqual(p2.vz,p1.vz/2.) + self.assertEqual(p2.m,p1.m/2.) + + def test_itruediv(self): + p1 = rebound.Particle(m=1.2,x=1.4,vy=1.8) + p2 = p1.copy() + p2 /=2 + self.assertEqual(p2.x,p1.x/2.) + self.assertEqual(p2.y,p1.y/2.) + self.assertEqual(p2.z,p1.z/2.) + self.assertEqual(p2.vx,p1.vx/2.) + self.assertEqual(p2.vy,p1.vy/2.) + self.assertEqual(p2.vz,p1.vz/2.) + self.assertEqual(p2.m,p1.m/2.) + + + +class TestParticleCopy(unittest.TestCase): + def test_copy(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1.,e=0.2,a=1) + pc = sim.particles[1].copy() + self.assertEqual(sim.particles[1].x,pc.x) + self.assertEqual(sim.particles[1].vx,pc.vx) + self.assertEqual(sim.particles[1].m,pc.m) + sim.particles[1].m=0.01 + self.assertNotEqual(sim.particles[1].m,pc.m) + def test_copy2(self): + sim = rebound.Simulation() + sim.add(m=1.) + p1 = rebound.Particle(simulation=sim,m=1.,e=0.2,a=1) + p2 = rebound.Particle(p1) + p1.m=2. + p2.m=3. + sim.add(p1) + sim.add(p2) + self.assertEqual(p1.m,2.) + self.assertEqual(p2.m,3.) + self.assertEqual(sim.particles[1].m,2.) + self.assertEqual(sim.particles[2].m,3.) + + +class TestParticleNotInSimulation(unittest.TestCase): + def test_create(self): + p1 = rebound.Particle() + p2 = rebound.Particle(x=1) + with self.assertRaises(ValueError): + p3 = rebound.Particle(a=1) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_pickle.py b/rebound/source/rebound/tests/test_pickle.py new file mode 100644 index 0000000000000000000000000000000000000000..b9ce15cec337646b9fdca78ae34ac812c008e058 --- /dev/null +++ b/rebound/source/rebound/tests/test_pickle.py @@ -0,0 +1,64 @@ +import rebound +import unittest +import pickle +import warnings + +class TestPickle(unittest.TestCase): + def test_pickle_basic(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1,a=1) + sim.step() + + with open("test.pickle", "wb") as f: + pickle.dump(sim, f) + + with open("test.pickle", "rb") as f: + sim2 = pickle.load(f) + + self.assertEqual(sim,sim2) + sim.step() + sim2.step() + self.assertEqual(sim,sim2) + + def test_pickle_warning(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.collision_resolve = "merge" + sim.step() + + with open("test.pickle", "wb") as f: + pickle.dump(sim, f) + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + with open("test.pickle", "rb") as f: + sim2 = pickle.load(f) + + self.assertEqual(1, len(w)) + self.assertNotEqual(sim,sim2) + sim2.collision_resolve = "merge" + sim.step() + sim2.step() + self.assertEqual(sim,sim2) + + def test_pickle_particle(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1,a=1) + sim.step() + + with open("test.pickle", "wb") as f: + pickle.dump(sim.particles[1], f) + + with open("test.pickle", "rb") as f: + p2 = pickle.load(f) + + self.assertEqual(sim.particles[1], p2) + + # Pointers are set to zero when unpickling + self.assertNotEqual(sim.particles[1]._sim, p2._sim) + self.assertEqual(p2.sim, 0) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_plotting.py b/rebound/source/rebound/tests/test_plotting.py new file mode 100644 index 0000000000000000000000000000000000000000..c275ee78947fe77704ccfea7422bd1ba9b7a9401 --- /dev/null +++ b/rebound/source/rebound/tests/test_plotting.py @@ -0,0 +1,35 @@ +import rebound +import unittest +import warnings + +class TestPlotting(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + self.sim.add(m=1) + self.sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + self.sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + + def tearDown(self): + self.sim = None + + def test_orbitplot(self): + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + import matplotlib; matplotlib.use("pdf") + op = rebound.OrbitPlot(self.sim,periastron=True) + self.assertIsInstance(op.fig,matplotlib.figure.Figure) + op = rebound.OrbitPlot(self.sim,periastron=True,color=True,unitlabel="AU") + self.assertIsInstance(op.fig,matplotlib.figure.Figure) + + def test_orbitplot_slices(self): + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + import matplotlib; matplotlib.use("pdf") + op = rebound.OrbitPlotSet(self.sim,periastron=True) + self.assertIsInstance(op.fig,matplotlib.figure.Figure) + op = rebound.OrbitPlot(self.sim,periastron=True,color=True,orbit_style="solid",unitlabel="AU",xlim=[-1.,1]) + self.assertIsInstance(op.fig,matplotlib.figure.Figure) + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_post_timestep_modifications.py b/rebound/source/rebound/tests/test_post_timestep_modifications.py new file mode 100644 index 0000000000000000000000000000000000000000..63bf953629783e6817762613689bdd54976b8c81 --- /dev/null +++ b/rebound/source/rebound/tests/test_post_timestep_modifications.py @@ -0,0 +1,75 @@ +import rebound +import unittest + +mdot = 1e-6 +def ptm(sim): + if sim.contents.ri_mercurius.mode == 0: + sim.contents.particles[2].m -= sim.contents.dt_last_done*mdot + +class TestPostTimestepModifications(unittest.TestCase): + + def test_ptm_ias15(self): + sim = rebound.Simulation() + sim.integrator = "ias15" + sim.add(m=1) + sim.add(m=1e-3,a=1) + sim.add(m=1e-3,a=5) + sim.move_to_com() + sim.post_timestep_modifications = ptm + sim.integrate(10.) + self.assertAlmostEqual(sim.particles[2].m,1e-3-mdot*sim.t,delta=1e-13) + + def test_ptm_mercurius(self): + sim = rebound.Simulation() + sim.integrator = "mercurius" + sim.dt = 0.01 + sim.add(m=1) + sim.add(m=1e-3,a=1) + sim.add(m=1e-3,a=5) + sim.move_to_com() + sim.post_timestep_modifications = ptm + sim.integrate(10.) + self.assertAlmostEqual(sim.particles[2].m,1e-3-mdot*sim.t,delta=1e-13) + + def test_ptm_mercurius_closeencounter(self): + sim = rebound.Simulation() + sim.integrator = "mercurius" + sim.dt = 0.01 + sim.ri_mercurius.r_crit_hill = 100000 # make sure encounter happens + sim.add(m=1) + sim.add(m=1e-3,a=1) + sim.add(m=1e-3,a=5) + sim.move_to_com() + sim.post_timestep_modifications = ptm + sim.integrate(10.) + self.assertAlmostEqual(sim.particles[2].m,1e-3-mdot*sim.t,delta=1e-13) + + def test_ptm_whfast(self): + sim = rebound.Simulation() + sim.integrator = "whfast" + sim.dt = 0.01 + sim.add(m=1) + sim.add(m=1e-3,a=1) + sim.add(m=1e-3,a=5) + sim.move_to_com() + sim.post_timestep_modifications = ptm + sim.integrate(10.) + self.assertAlmostEqual(sim.particles[2].m,1e-3-mdot*sim.t,delta=1e-13) + + def test_ptm_whfastjac(self): + sim = rebound.Simulation() + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "jacobi" + sim.dt = 0.01 + sim.add(m=1) + sim.add(m=1e-3,a=1) + sim.add(m=1e-3,a=5) + sim.move_to_com() + sim.post_timestep_modifications = ptm + sim.integrate(10.) + self.assertAlmostEqual(sim.particles[2].m,1e-3-mdot*sim.t,delta=1e-13) + + +if __name__ == "__main__": + unittest.main() + diff --git a/rebound/source/rebound/tests/test_random.py b/rebound/source/rebound/tests/test_random.py new file mode 100644 index 0000000000000000000000000000000000000000..8e556751a7978cbc9aed520ab52f6d6fbf75faf7 --- /dev/null +++ b/rebound/source/rebound/tests/test_random.py @@ -0,0 +1,62 @@ +import rebound +from ctypes import c_double, byref +import unittest +from time import sleep + +class TestRandom(unittest.TestCase): + def test_uniform(self): + rebound.clibrebound.reb_random_uniform.restype = c_double + simulation = rebound.Simulation() + for simp in [0, byref(simulation)]: + for i in range(10): + r = rebound.clibrebound.reb_random_uniform(simp, c_double(0.0), c_double(1.0)) + self.assertLess(r, 1.0) + self.assertGreater(r, 0.0) + + def test_powerlaw(self): + rebound.clibrebound.reb_random_powerlaw.restype = c_double + simulation = rebound.Simulation() + for simp in [0, byref(simulation)]: + for slope in [-1.0, 0.0, 1.0]: + for i in range(10): + r = rebound.clibrebound.reb_random_powerlaw(simp, c_double(1.0), c_double(2.0), c_double(slope)) + self.assertLess(r, 2.0) + self.assertGreater(r, 1.0) + + def test_normal(self): + rebound.clibrebound.reb_random_normal.restype = c_double + simulation = rebound.Simulation() + for simp in [0, byref(simulation)]: + for i in range(10): + r = rebound.clibrebound.reb_random_normal(simp, c_double(1.0)) + self.assertLess(r, 1e5) + self.assertGreater(r, -1e5) + + def test_rayleigh(self): + rebound.clibrebound.reb_random_rayleigh.restype = c_double + simulation = rebound.Simulation() + for simp in [0, byref(simulation)]: + for i in range(10): + r = rebound.clibrebound.reb_random_rayleigh(simp, c_double(1.0)) + self.assertLess(r, 1e5) + self.assertGreater(r, 0.0) + + def test_reproducible(self): + rebound.clibrebound.reb_random_uniform.restype = c_double + sim1 = rebound.Simulation() + sim2 = sim1.copy() + sleep(0.05) # Windows implementation is very slow, so we wait to get a different seed + sim3 = rebound.Simulation() + self.assertEqual(sim1.rand_seed, sim2.rand_seed) + self.assertNotEqual(sim2.rand_seed, sim3.rand_seed) + r1 = rebound.clibrebound.reb_random_uniform(byref(sim1), c_double(0.0), c_double(1.0)) + r2 = rebound.clibrebound.reb_random_uniform(byref(sim2), c_double(0.0), c_double(1.0)) + r3 = rebound.clibrebound.reb_random_uniform(byref(sim3), c_double(0.0), c_double(1.0)) + self.assertEqual(r1, r2) + self.assertNotEqual(r2, r3) + r2 = rebound.clibrebound.reb_random_uniform(byref(sim2), c_double(0.0), c_double(1.0)) + r3 = rebound.clibrebound.reb_random_uniform(byref(sim3), c_double(0.0), c_double(1.0)) + self.assertNotEqual(r2, r3) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_restart_mercurius.py b/rebound/source/rebound/tests/test_restart_mercurius.py new file mode 100644 index 0000000000000000000000000000000000000000..e04e71b67112c36f427eed3474ceb3b3838cc6e8 --- /dev/null +++ b/rebound/source/rebound/tests/test_restart_mercurius.py @@ -0,0 +1,47 @@ +import rebound +import unittest + +class TestSimulationRestartMercurius(unittest.TestCase): + def test_sa_mercurius_restart(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "mercurius" + sim.dt = 0.1313 + sim.ri_mercurius.safe_mode = 0 + sim.integrate(40.,exact_finish_time=0) + sim.save_to_file("test_mid.bin") + sim.integrate(80.,exact_finish_time=0) + x0 = sim.particles[1].x + + sim = rebound.Simulation("test_mid.bin") + sim.integrate(80.,exact_finish_time=0) + x1 = sim.particles[1].x + + self.assertEqual(x0,x1) + + def test_sa_mercurius_restart_safemode(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "mercurius" + sim.dt = 0.1313 + sim.ri_mercurius.safe_mode = 1 + sim.integrate(40.,exact_finish_time=0) + sim.save_to_file("test.bin") + sim.integrate(80.,exact_finish_time=0) + x0 = sim.particles[1].x + + sim = rebound.Simulation("test.bin") + sim.integrate(80.,exact_finish_time=0) + x1 = sim.particles[1].x + + self.assertEqual(x0,x1) + + + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_rotations.py b/rebound/source/rebound/tests/test_rotations.py new file mode 100644 index 0000000000000000000000000000000000000000..c00aabc84cecaacf3e8afe21999126232bde8f51 --- /dev/null +++ b/rebound/source/rebound/tests/test_rotations.py @@ -0,0 +1,164 @@ +import rebound +import unittest +import math + +class TestRotations(unittest.TestCase): + def test_init(self): + r = rebound.Rotation(angle=math.pi/2, axis=[0,0,1.]) + res = r*[1,0,0] + self.assertAlmostEqual(res[0], 0, delta=1e-15) + self.assertAlmostEqual(res[1], 1, delta=1e-15) + self.assertAlmostEqual(res[2], 0, delta=1e-15) + + def test_inverse(self): + r = rebound.Rotation(ix=0.1, iy=0.2, iz=0.3, r=0.5) + res = r*r.inverse()*[1,1,1] + self.assertAlmostEqual(res[0], 1, delta=1e-15) + self.assertAlmostEqual(res[1], 1, delta=1e-15) + self.assertAlmostEqual(res[2], 1, delta=1e-15) + + def test_from_to(self): + fromv = [0.5,0.5,-0.5] + tov = [0.5,0.5,0.5] + r = rebound.Rotation.from_to(fromv=fromv, tov=tov) + res = r*fromv + self.assertAlmostEqual(res[0], tov[0], delta=1e-15) + self.assertAlmostEqual(res[1], tov[1], delta=1e-15) + self.assertAlmostEqual(res[2], tov[2], delta=1e-15) + + def test_from_to_edge(self): + q = rebound.Rotation.from_to([1,0,0], [-1,0,0]) + res = q*[1,0,0] + self.assertAlmostEqual(res[0], -1, delta=1e-15) + self.assertAlmostEqual(res[1], 0, delta=1e-15) + self.assertAlmostEqual(res[2], 0, delta=1e-15) + + def test_orbit(self): + sim = rebound.Simulation() + a, e, inc, Omega, omega = 1, 0.1, 0.2, 0.3, 0.4 + sim.add(m=1) + sim.add(a=a,e=e,inc=inc,Omega=Omega,omega=omega,f=0) + sim.add(a=a,e=e) + # when we rotate our particle's xyz orbit (x=toward peri, z=orb normal) we should get (a(1-e), 0, 0) + r = rebound.Rotation.orbit(Omega=Omega, inc=inc, omega=omega) + res = r*sim.particles[2].xyz + self.assertAlmostEqual(res[0], sim.particles[1].x, delta=1e-15) + self.assertAlmostEqual(res[1], sim.particles[1].y, delta=1e-15) + self.assertAlmostEqual(res[2], sim.particles[1].z, delta=1e-15) + + # checking inverse: Rotation -> orbital elements + _Omega, _inc, _omega = r.orbital() + self.assertAlmostEqual(_Omega, Omega, delta=2e-15) + self.assertAlmostEqual(_inc, inc, delta=2e-15) + self.assertAlmostEqual(_omega, omega, delta=2e-15) + + def test_to_new_axes(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(a=1,inc=math.pi/2,Omega=math.pi/2) + orbnorm = [1,0,0] # along x axis for above orbit + ascnode = [0,1,0] # along y axis for above orbit + # since omega=f=0, particle is at node. If we rotate into a frame with newx along the node, and z along orbnorm, should get (1,0,0) + r = rebound.Rotation.to_new_axes(newz=orbnorm, newx=ascnode) + res = r*sim.particles[1].xyz + self.assertAlmostEqual(res[0], 1, delta=1e-15) + self.assertAlmostEqual(res[1], 0, delta=1e-15) + self.assertAlmostEqual(res[2], 0, delta=1e-15) + + def test_to_new_axes_not_perp(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(a=1,inc=math.pi/2,Omega=math.pi/2) + orbnorm = [1,0,0] # along x axis for above orbit + # since omega=f=0, particle is at node. If we rotate into a frame with newx along the node, and z along orbnorm, should get (1,0,0) + delta = 0.01 # deviation from orthogonal newx ([0,1,0]) + r = rebound.Rotation.to_new_axes(newz=orbnorm, newx=[0,1,delta]) + res = r*sim.particles[1].xyz + self.assertAlmostEqual(res[0], 1, delta=delta) + self.assertAlmostEqual(res[1], 0, delta=delta) + self.assertAlmostEqual(res[2], 0, delta=delta) + + + def test_to_new_axes_no_x_unnormalized(self): + newz = [-1.,-1.,-1.] + mag = (newz[0]**2 + newz[1]**2 + newz[2]**2)**0.5 + r = rebound.Rotation.to_new_axes(newz=newz) + res = r*newz + self.assertAlmostEqual(res[0], 0, delta=1e-15) + self.assertAlmostEqual(res[1], 0, delta=1e-15) + self.assertAlmostEqual(res[2], mag, delta=1e-15) + + def test_mul(self): + r = rebound.Rotation(angle=math.pi/2, axis=[0,0,1.]) + rhalf = rebound.Rotation(angle=math.pi/4, axis=[0,0,1.]) + res1 = r*[1,0,0] + res2 = (rhalf*rhalf)*[1,0,0] + self.assertAlmostEqual(res1[0]-res2[0], 0, delta=1e-15) + self.assertAlmostEqual(res1[1]-res2[1], 0, delta=1e-15) + self.assertAlmostEqual(res1[2]-res2[2], 0, delta=1e-15) + + def test_to_from_spherical(self): + mag, theta, phi = 3, math.pi/3, -math.pi/4 + vec = rebound.spherical_to_xyz(mag, theta, phi) + mag2, theta2, phi2 = rebound.xyz_to_spherical(vec) + self.assertAlmostEqual(mag, mag2, delta=1e-15) + self.assertAlmostEqual(theta, theta2, delta=1e-15) + self.assertAlmostEqual(phi, phi2, delta=1e-15) + + def test_rotate_sim(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(x=1) + r = rebound.Rotation(angle=math.pi/2, axis=[0,0,1]) + sim = r * sim + self.assertAlmostEqual(0, sim.particles[0].x, delta=1e-15) + self.assertAlmostEqual(0, sim.particles[0].y, delta=1e-15) + self.assertAlmostEqual(0, sim.particles[0].z, delta=1e-15) + self.assertAlmostEqual(0, sim.particles[1].x, delta=1e-15) + self.assertAlmostEqual(1, sim.particles[1].y, delta=1e-15) + self.assertAlmostEqual(0, sim.particles[1].z, delta=1e-15) + + def test_rotate_particle(self): + p = rebound.Particle(x=1) + r = rebound.Rotation(angle=math.pi/2, axis=[0,0,1]) + p = r * p + self.assertAlmostEqual(0, p.x, delta=1e-15) + self.assertAlmostEqual(1, p.y, delta=1e-15) + self.assertAlmostEqual(0, p.z, delta=1e-15) + + def test_normalize(self): + r1 = rebound.Rotation(ix=1, iy=0, iz=0, r=0) + r2 = rebound.Rotation(ix=2, iy=0, iz=0, r=0) + r3 = r2.normalize() + self.assertNotEqual(r1, r2) + self.assertNotEqual(r2, r3) + self.assertEqual(r1, r3) + + def test_identity(self): + r = rebound.Rotation() + a = [1,2,3] + b = r*a + self.assertEqual(a[0], b[0]) + self.assertEqual(a[1], b[1]) + self.assertEqual(a[2], b[2]) + + def test_tofrom(self): + sim = rebound.Simulation() + a, e, inc, Omega, omega = 1, 0.1, 0.2, 0.3, 0.4 + sim.add(m=1) + sim.add(a=a,e=e) + sim.add(a=a,e=e,inc=inc,Omega=Omega,omega=omega,f=0) + r = rebound.Rotation(fromv=sim.particles[1].xyz, tov=sim.particles[2].xyz) + res = r*sim.particles[1].xyz + self.assertAlmostEqual(res[0], sim.particles[2].x, delta=1e-15) + self.assertAlmostEqual(res[1], sim.particles[2].y, delta=1e-15) + self.assertAlmostEqual(res[2], sim.particles[2].z, delta=1e-15) + + r = rebound.Rotation.from_to(fromv=sim.particles[1].xyz, tov=sim.particles[2].xyz) + res = r*sim.particles[1].xyz + self.assertAlmostEqual(res[0], sim.particles[2].x, delta=1e-15) + self.assertAlmostEqual(res[1], sim.particles[2].y, delta=1e-15) + self.assertAlmostEqual(res[2], sim.particles[2].z, delta=1e-15) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_saba.py b/rebound/source/rebound/tests/test_saba.py new file mode 100644 index 0000000000000000000000000000000000000000..4aad7f0d1bae8a4b220bfa9fdf94fb8beb371a85 --- /dev/null +++ b/rebound/source/rebound/tests/test_saba.py @@ -0,0 +1,161 @@ +import rebound +import unittest +import math +import rebound.data + +sabasettings1 = [ # type, relative error + ["SABA2",1e-10], + ["SABACM2",1e-10], + ["SABACL2",1e-10], + ["SABA3",2e-11], + ["SABACM3",2e-11], + ["SABACL3",2e-11], + ["SABA4",2e-11], + ["SABACM4",2e-11], + ["SABACL4",2e-11], + ["SABA10,4",5e-13], + ["SABA8,6,4",5e-13], + ["SABA10,6,4",5e-13], + ["SABAH8,4,4",5e-13], + ["SABAH8,6,4",5e-13], + ["SABAH10,6,4",5e-13], + ] +sabasettings2 = [ # type, relative error + ["SABA1",3e-14], + ["SABACL4",4e-14], + ["SABA2",4e-14], + ["SABA3",4e-14], + ["SABACM4",4e-14], + ["SABA4",4e-14], + ["SABA10,4",4e-14], + ["SABA8,6,4",4e-14], + ["SABA10,6,4",4e-14], + ["SABAH8,4,4",4e-14], + ["SABAH8,6,4",4e-14], + ["SABAH10,6,4",4e-14], + ] + +class TestIntegratorSABA(unittest.TestCase): + + def energy(self, s): + integrator, maxerror = s + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + sim.integrator = integrator + sim.ri_saba.safe_mode = False + sim.dt = 0.0123235235*sim.particles[1].P + e0 = sim.energy() + sim.integrate(1000.*2.*3.1415) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),maxerror) + + def energy_notcom(self, s): + integrator, maxerror = s + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + for p in sim.particles: + p.vx += 1. + com = sim.com() + sim.integrator = integrator + sim.dt = 0.0123235235*sim.particles[1].P + e0 = sim.energy() + sim.integrate(1000.*2.*3.1415) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),maxerror) + com1 = sim.com() + self.assertLess(math.fabs((com.x+com.vx*sim.t-com1.x)/(com1.x+com1.y)),1e-12) + self.assertLess(math.fabs((com.y+com.vy*sim.t-com1.y)/(com1.x+com1.y)),1e-12) + + def compias(self, s): + integrator, maxerror = s + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + for p in sim.particles: + p.vx += 1050. # move out of com to make it harder + sim.integrator = integrator + sim.dt = 0.0123235235*sim.particles[1].P + sim.integrate(13.21415,exact_finish_time=False) + + simi = rebound.Simulation() + simi.integrator = "ias15" + rebound.data.add_outer_solar_system(simi) + for p in simi.particles: + p.vx += 1050. + simi.integrate(sim.t,exact_finish_time=True) + + for i in range(sim.N): + self.assertLess(math.fabs(simi.particles[i].x-sim.particles[i].x),5e-9) + + def backandforth(self, s): + integrator, maxerror = s + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + for p in sim.particles: + p.vx += 1. + sim0=sim.copy() + sim.integrator = integrator + sim.dt = 0.0123235235*sim.particles[1].P + steps = 10 + for i in range(steps): + sim.step() + sim.dt *= -1 + for i in range(steps): + sim.step() + for i in range(sim.N): + self.assertLess(math.fabs(sim0.particles[i].x-sim.particles[i].x),maxerror) + + def restart(self, s): + integrator, maxerror = s + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + sim.integrator = integrator + sim.step() + sim2 = sim.copy() + sim.step() + sim2.step() + self.assertEqual(sim,sim2) + +def create_test_sabasettings1(s): + def doTest(self): + test_name = "test_energy_%s" % (s[0]) + self.energy(s) + test_name = "test_energy_notcom_%s" % (s[0]) + self.energy_notcom(s) + test_name = "test_compias_%s" % (s[0]) + self.compias(s) + return doTest + +for s in sabasettings1: + test_method = create_test_sabasettings1(s) + test_method.__name__ = "test_sabasettings1" + for k in s: + test_method.__name__ += "_"+str(k) + setattr(TestIntegratorSABA, test_method.__name__, test_method) + +def create_test_sabasettings2_bf(s): + def doTest(self): + test_name = "test_backandforth_%s" % (s[0]) + self.backandforth(s) + return doTest + +def create_test_sabasettings2_re(s): + def doTest(self): + test_name = "test_restart_%s" % (s[0]) + self.restart(s) + return doTest + +for s in sabasettings2: + test_method = create_test_sabasettings2_bf(s) + test_method.__name__ = "test_sabasettings2_backandforth" + for k in s: + test_method.__name__ += "_"+str(k) + setattr(TestIntegratorSABA, test_method.__name__, test_method) + + test_method = create_test_sabasettings2_re(s) + test_method.__name__ = "test_sabasettings2_restart" + for k in s: + test_method.__name__ += "_"+str(k) + setattr(TestIntegratorSABA, test_method.__name__, test_method) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_serialize.py b/rebound/source/rebound/tests/test_serialize.py new file mode 100644 index 0000000000000000000000000000000000000000..b7fecfd2d0013758fc21c1c8119454737c5bf08e --- /dev/null +++ b/rebound/source/rebound/tests/test_serialize.py @@ -0,0 +1,68 @@ +import rebound +import unittest + +class TestSerialize(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + self.sim.t = 1.246 + self.sim.add(m=1.) + self.sim.add(a=1.) + + def tearDown(self): + self.sim = None + + def test_serialize(self): + try: + import numpy as np + except: + # Make numpy tests optional + print("WARNING: Not testing serialization because numpy is not available") + return; + + a = np.zeros((self.sim.N,3),dtype="float64") + self.sim.serialize_particle_data(xyz=a) + + self.assertEqual(a[1][0],1) + self.assertEqual(a[1][1],0) + self.assertEqual(a[1][2],0) + + self.sim.particles[0].xyz = [0,0,0] + + b = np.zeros(self.sim.N,dtype="uint32") + c = np.zeros(self.sim.N) + self.sim.serialize_particle_data(r=c,hash=b) + + with self.assertRaises(AttributeError): + self.sim.serialize_particle_data(r=b) + + with self.assertRaises(AttributeError): + self.sim.serialize_particle_data(hash=a) + + with self.assertRaises(AttributeError): + self.sim.serialize_particle_data(xyz=c) + + + def test_set_serialize(self): + try: + import numpy as np + except: + # Make numpy tests optional + print("WARNING: Not testing serialization because numpy is not available") + return; + + for i in range(self.sim.N): + self.sim.particles[i].xyz = [0,0,0] + self.assertEqual(self.sim.particles[i].x,0) + self.assertEqual(self.sim.particles[i].y,0) + self.assertEqual(self.sim.particles[i].z,0) + + a = np.zeros((self.sim.N,3),dtype="float64") + a[0][1] = 2 + a[1][2] = 6 + self.sim.set_serialized_particle_data(xyz=a) + self.assertEqual(self.sim.particles[0].y,2) + self.assertEqual(self.sim.particles[1].z,6) + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_server.py b/rebound/source/rebound/tests/test_server.py new file mode 100644 index 0000000000000000000000000000000000000000..12e25e4150ef05216479c2eb04fb229548f9095a --- /dev/null +++ b/rebound/source/rebound/tests/test_server.py @@ -0,0 +1,55 @@ +import rebound +import unittest +import os +import warnings +import time +import urllib.request + + +class TestServer(unittest.TestCase): + def test_start_without_download(self): + with open("rebound.html", "w") as f: + f.write("

Hi

") + sim = rebound.Simulation() + sim.start_server(port=1234) + self.assertNotEqual(sim._server_data,None) + self.assertEqual(sim._server_data.contents.ready,1) + self.assertEqual(sim._server_data.contents.port,1234) + + def test_start_with_download(self): + if os.path.isfile("rebound.html"): + os.remove("rebound.html") + sim = rebound.Simulation() + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.start_server(port=1234) + self.assertGreater(len(w),0) + time.sleep(1) + self.assertNotEqual(sim._server_data,None) + self.assertEqual(sim._server_data.contents.ready,1) + self.assertEqual(sim._server_data.contents.port,1234) + + def test_connect(self): + teststring = "

Hi

" + with open("rebound.html", "w") as f: + f.write(teststring ) + sim = rebound.Simulation() + sim.start_server(port=1234) + contents = urllib.request.urlopen("http://localhost:1234/").read() + contents = contents.decode("ascii") + self.assertEqual(contents, teststring) + + def test_pause(self): + teststring = "

Hi

" + with open("rebound.html", "w") as f: + f.write(teststring ) + sim = rebound.Simulation() + sim.start_server(port=1234) + sim._status = -1; + contents = urllib.request.urlopen("http://localhost:1234/keyboard/32") + self.assertEqual(sim._status, -3) + + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_shearingsheet.py b/rebound/source/rebound/tests/test_shearingsheet.py new file mode 100644 index 0000000000000000000000000000000000000000..72c0264d6d04484ea888df5e301cc1158ec51965 --- /dev/null +++ b/rebound/source/rebound/tests/test_shearingsheet.py @@ -0,0 +1,68 @@ +import rebound +import unittest +import math +import random + +class TestShearingSheet(unittest.TestCase): + + def test_saturnsrings(self): + sim = rebound.Simulation() + OMEGA = 0.00013143527 # [1/s] + sim.ri_sei.OMEGA = OMEGA + surface_density = 400. # kg/m^2 + particle_density = 400. # kg/m^3 + sim.G = 6.67428e-11 # N m^2 / kg^2 + sim.dt = 1e-3*2.*math.pi/OMEGA + sim.softening = 0.2 # [m] + boxsize = 50. # [m] + sim.configure_box(boxsize) + sim.N_ghost_x = 2 + sim.N_ghost_y = 2 + sim.integrator = "sei" + sim.boundary = "shear" + sim.gravity = "tree" + sim.collision = "tree" + sim.collision_resolve = "hardsphere" + def cor_bridges(r, v): + eps = 0.32*pow(abs(v)*100.,-0.234) + if eps>1.: + eps=1. + if eps<0.: + eps=0. + return eps + sim.coefficient_of_restitution = cor_bridges + def powerlaw(slope, min_v, max_v): + y = random.random() + pow_max = pow(max_v, slope+1.) + pow_min = pow(min_v, slope+1.) + return pow((pow_max-pow_min)*y + pow_min, 1./(slope+1.)) + total_mass = 0. + while total_mass < surface_density*(boxsize**2): + radius = powerlaw(slope=-3, min_v=1, max_v=4) # [m] + mass = particle_density*4./3.*math.pi*(radius**3) + x = random.uniform(-boxsize/2., boxsize/2.) + sim.add( + m=mass, + r=radius, + x=x, + y=random.uniform(-boxsize/2., boxsize/2.), + z=random.normalvariate(mu=0.0, sigma=1.0), + vx = 0., + vy = -3./2.*x*OMEGA, + vz = 0.) + total_mass += mass + self.assertGreater(sim.N,50) + sim.integrate(2.*math.pi/OMEGA) + self.assertGreater(sim.collisions_log_n,1000) + Nbefore = sim.N + sim.remove(0,keep_sorted=0) + sim.update_tree() + self.assertEqual(Nbefore-1,sim.N) + with self.assertRaises(RuntimeError): + sim.remove(0,keep_sorted=1) + self.assertNotEqual(sim.ri_sei._lastdt,0.0) + sim.reset_integrator() + self.assertEqual(sim.ri_sei._lastdt,0.0) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_simulation.py b/rebound/source/rebound/tests/test_simulation.py new file mode 100644 index 0000000000000000000000000000000000000000..c05e9b99c8236152bcb0d89e493644ca7b73f75c --- /dev/null +++ b/rebound/source/rebound/tests/test_simulation.py @@ -0,0 +1,299 @@ +import rebound +import warnings +import unittest +import os +import sys + +class TestSimulation(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + self.sim.t = 1.246 + self.sim.add(m=1.) + self.sim.add(m=1e-3, a=1., e=0.01, omega=0.02, M=0.04, inc=0.1) + + def tearDown(self): + self.sim = None + + def test_status(self): + sys.stdout = open(os.devnull, 'w') + self.sim.status() + sys.stdout.close() + sys.stdout = sys.__stdout__ + + def test_escape(self): + self.sim.exit_max_distance = 0.1 + with self.assertRaises(rebound.Escape): + self.sim.integrate(1.) + + def test_encounter(self): + self.sim.exit_min_distance = 1. + with self.assertRaises(rebound.Encounter): + self.sim.integrate(1.) + + def test_removeall(self): + del self.sim.particles + self.assertEqual(self.sim.N,0) + + def test_remove_too_many(self): + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + self.sim.remove(0) + self.sim.remove(0) + self.assertEqual(1,len(w)) + with self.assertRaises(RuntimeError): + self.sim.remove(0) + + def test_remove_variational(self): + v = self.sim.add_variation() + with self.assertRaises(RuntimeError): + self.sim.remove(0) + + def test_remove(self): + self.sim.remove(1) + self.assertEqual(self.sim.N,1) + + def test_remove_keepsorted(self): + self.sim.remove(1,keep_sorted=0) + self.assertEqual(self.sim.N,1) + + def test_removehash(self): + self.sim.add(m=1e-3, a=1., e=0.01, omega=0.02, M=0.04, inc=0.1) + self.sim.particles[-1].hash = 99 + self.sim.remove(hash=99) + self.assertEqual(self.sim.N,2) + with self.assertRaises(RuntimeError): + self.sim.remove(hash=99) + with self.assertRaises(RuntimeError): + self.sim.remove(hash=99) + with self.assertRaises(RuntimeError): + self.sim.remove(hash=-99334) + + def test_step(self): + self.sim.step() + self.assertNotEqual(self.sim.t, 1.246) + + def test_configure_box(self): + self.assertEqual(self.sim.root_size,-1.) + self.sim.configure_box(100.,1,1,1) + self.assertEqual(self.sim.root_size,100.) + + def test_orbits(self): + orbits = self.sim.orbits() + self.assertAlmostEqual(orbits[0].a,1.,delta=1e-15) + self.assertAlmostEqual(orbits[0].e,0.01,delta=1e-15) + self.assertAlmostEqual(orbits[0].omega,0.02,delta=1e-12) + self.assertAlmostEqual(orbits[0].inc,0.1,delta=1e-15) + orbits = self.sim.orbits(primary=self.sim.particles[0]) + self.assertAlmostEqual(orbits[0].a,1.,delta=1e-15) + self.assertAlmostEqual(orbits[0].e,0.01,delta=1e-15) + self.assertAlmostEqual(orbits[0].omega,0.02,delta=1e-12) + self.assertAlmostEqual(orbits[0].inc,0.1,delta=1e-15) + orbits = self.sim.orbits(primary=self.sim.com()) + self.assertAlmostEqual(orbits[0].a,1.,delta=1e-2) + + def test_com(self): + self.sim.move_to_com() + com = self.sim.com() + self.assertAlmostEqual(com.x, 0., delta=1e-15) + # Check if tree is adjusted. + sim = rebound.Simulation() + sim.configure_box(10) + sim.gravity = "tree" + sim.add(m=1,x=1) + sim.move_to_com() + com = sim.com() + self.assertAlmostEqual(com.x, 0., delta=1e-15) + + def test_hel(self): + for p in self.sim.particles: + p.x += 10.0 + p.vx += 10.0 + self.sim.move_to_hel() + self.assertAlmostEqual(self.sim.particles[0].x, 0., delta=1e-16) + self.assertAlmostEqual(self.sim.particles[0].y, 0., delta=1e-16) + self.assertAlmostEqual(self.sim.particles[0].z, 0., delta=1e-16) + self.assertAlmostEqual(self.sim.particles[0].vx, 0., delta=1e-16) + self.assertAlmostEqual(self.sim.particles[0].vy, 0., delta=1e-16) + self.assertAlmostEqual(self.sim.particles[0].vz, 0., delta=1e-16) + + def test_com_range(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1., x=2.) + sim.add(m=2., x=5.) + com = sim.com(first=1) + self.assertAlmostEqual(com.x, 4., delta=1e-15) + com = sim.com(last=2) + self.assertAlmostEqual(com.x, 1., delta=1e-15) + com = sim.com(first=1,last=2) + self.assertAlmostEqual(com.x, 2., delta=1e-15) + com = sim.com(first=4, last=-3) + self.assertAlmostEqual(com.x, 0., delta=1e-15) + + def test_jacobi_com(self): + sim = rebound.Simulation() + sim.add(m=1., x=1.) + sim.add(m=1., x=3.) + sim.add(m=2., x=5.) + com = sim.particles[1].jacobi_com + self.assertAlmostEqual(com.x, 1., delta=1e-15) + com = sim.particles[2].jacobi_com + self.assertAlmostEqual(com.x, 2., delta=1e-15) + com = sim.particles[0].jacobi_com + self.assertAlmostEqual(com.x, 0., delta=1e-15) + + def test_init_megno(self): + self.sim.init_megno() + self.assertEqual(self.sim.N,4) + self.assertEqual(self.sim.N_real,2) + self.assertEqual(self.sim.megno(),0) + self.assertEqual(self.sim.lyapunov(),0) + + def test_energy(self): + self.sim.move_to_com() + energy = self.sim.energy() + self.assertAlmostEqual(energy, -0.5e-3, delta=1e-14) + + def test_angular_momentum(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1.e-3, a=1., inc=0.3, Omega=0.5) + sim.add(m=1.e-3, a=3., inc=0.2, Omega = -0.8) + L0 = sim.angular_momentum() + sim.integrate(1.) + Lf = sim.angular_momentum() + for i in range(3): + self.assertAlmostEqual(abs((Lf[i]-L0[i])/L0[i]), 0., delta=1e-15) + + def test_additional_forces(self): + def af(sim): + sim.contents.particles[0].hash = 5 + pass + self.sim.additional_forces = af + self.sim.integrate(.1) + self.assertEqual(self.sim.particles[0].hash.value,5) + with self.assertRaises(AttributeError): + self.sim.additional_forces + + def test_post_timestep_modifications(self): + def ptm(sim): + sim.contents.particles[0].hash = 6 + pass + self.sim.post_timestep_modifications = ptm + self.sim.integrate(.1) + self.assertEqual(self.sim.particles[0].hash.value,6) + with self.assertRaises(AttributeError): + self.sim.post_timestep_modifications + + def test_N(self): + self.assertEqual(self.sim.N, 2) + + def test_N_real(self): + self.assertEqual(self.sim.N_real, 2) + + def test_integrator(self): + self.assertEqual(self.sim.integrator, "ias15") + self.sim.integrator = "whfast" + self.assertEqual(self.sim.integrator, "whfast") + self.sim.integrator = 1 + self.assertEqual(self.sim.integrator, "whfast") + with self.assertRaises(ValueError): + self.sim.integrator = "bogusintegrator" + + def test_boundaries(self): + self.sim.boundary = "open" + self.assertEqual(self.sim.boundary, "open") + self.sim.boundary = 8 + self.assertEqual(self.sim.boundary, 8) + with self.assertRaises(ValueError): + self.sim.boundary = "bogusboundary" + + + def test_gravity(self): + self.sim.gravity = "tree" + self.assertEqual(self.sim.gravity, "tree") + self.sim.gravity = 8 + self.assertEqual(self.sim.gravity, 8) + with self.assertRaises(ValueError): + self.sim.gravity = "bogusgravity" + + def test_collision(self): + self.sim.collision = "tree" + self.assertEqual(self.sim.collision, "tree") + self.sim.collision = 8 + self.assertEqual(self.sim.collision, 8) + with self.assertRaises(ValueError): + self.sim.collision = "boguscollision" + + + def test_nofile(self): + with self.assertRaises(RuntimeError): + sim2 = rebound.Simulation("doesnotexist.bin") + + + def test_checkpoint(self): + self.sim.save_to_file("bintest.bin", delete_file=True) + sim2 = rebound.Simulation("bintest.bin") + self.assertEqual(self.sim.particles[1].x, sim2.particles[1].x) + self.assertEqual(self.sim.particles[1].vx, sim2.particles[1].vx) + self.assertEqual(self.sim.t, sim2.t) + self.assertEqual(self.sim.N, sim2.N) + self.assertEqual(self.sim.integrator, sim2.integrator) + os.remove("bintest.bin") + + def test_checkpoint_ias15_pointers(self): + self.sim.integrate(1.) + self.sim.save_to_file("bintest.bin", delete_file=True) + self.sim.integrate(5.) + sim2 = rebound.Simulation("bintest.bin") + sim2.integrate(5.) + self.assertEqual(self.sim.particles[1].x, sim2.particles[1].x) + self.assertEqual(self.sim.particles[1].vx, sim2.particles[1].vx) + self.assertEqual(self.sim.t, sim2.t) + self.assertEqual(self.sim.N, sim2.N) + self.assertEqual(self.sim.integrator, sim2.integrator) + os.remove("bintest.bin") + +class TestSimulationCollisions(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + self.sim.gravity = "none" + self.sim.collision = "direct" + self.sim.collision_resolve = "hardsphere" + self.sim.integrator = "leapfrog" + self.sim.G = 0.0 + self.sim.dt = 0.01 + + def tearDown(self): + self.sim = None + + def test_coefficient_of_restitution(self): + self.sim.add(m=1.,x=-1,vx=1.,r=0.5) + self.sim.add(m=1.,x=1,vx=-1.,r=0.5) + energy_initial = self.sim.energy() + def coef(sim,vrel): + return 0.5 + self.sim.coefficient_of_restitution = coef + self.sim.integrate(1.) + energy_final = self.sim.energy() + self.assertAlmostEqual(energy_final, 0.25*energy_initial,delta=1e-15) + + def test_direct(self): + self.sim.add(m=1.,x=-1,vx=1.,r=0.5) + self.sim.add(m=1.,x=1,vx=-1.,r=0.5) + self.sim.integrate(1.) + self.assertAlmostEqual(self.sim.particles[0].x,-1,delta=1e-15) + + def test_tree(self): + self.sim.configure_box(10) + self.sim.collision = "tree" + self.sim.collision_resolve = "hardsphere" + self.sim.add(m=1.,x=-1,vx=1.,r=0.5) + self.sim.add(m=1.,x=1,vx=-1.,r=0.5) + self.sim.integrate(1.) + self.assertAlmostEqual(self.sim.particles[0].x,-1,delta=1e-15) + + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_simulationarchive.py b/rebound/source/rebound/tests/test_simulationarchive.py new file mode 100644 index 0000000000000000000000000000000000000000..cf00dd604ecedfe873a825a9f07f8fa29ee6a523 --- /dev/null +++ b/rebound/source/rebound/tests/test_simulationarchive.py @@ -0,0 +1,606 @@ +import rebound +import unittest +import os +import warnings + +class TestSimulationarchive(unittest.TestCase): + def test_sa_step(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 1 + sim.save_to_file("test.bin", step=10,delete_file=True) + sim.integrate(40.,exact_finish_time=0) + + sim = None + sim = rebound.Simulation("test.bin") + sim.integrate(80.,exact_finish_time=0) + x1 = sim.particles[1].x + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 1 + sim.integrate(80.,exact_finish_time=0) + x0 = sim.particles[1].x + + self.assertEqual(x0,x1) + def test_sa_fromarchive(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 1 + sim.save_to_file("test.bin", 10.,delete_file=True) + sim.integrate(40.,exact_finish_time=0) + + sim = None + sim = rebound.Simulation("test.bin") + sim.integrate(80.,exact_finish_time=0) + x1 = sim.particles[1].x + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 1 + sim.integrate(80.,exact_finish_time=0) + x0 = sim.particles[1].x + + self.assertEqual(x0,x1) + def test_safe_mode_warning(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 1 + sim.save_to_file("test.bin", 10.,delete_file=True) + sim.integrate(40.,exact_finish_time=0) + x1 = sim.particles[1].x + + sa = rebound.Simulationarchive("test.bin") + sim = sa.getSimulation(0.) + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(40.,exact_finish_time=0) + x0 = sim.particles[1].x + self.assertEqual(0, len(w)) # did not raise recalculating Jacobi warning + + self.assertEqual(x0,x1) + + def test_sa_whfasthelio_restart_safe_mode(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 1 + sim.save_to_file("test.bin", 10.,delete_file=True) + sim.integrate(40.,exact_finish_time=0) + + sim = None + sa = rebound.Simulationarchive("test.bin") + sim = sa[-1] + sim.integrate(80.,exact_finish_time=0) + x1 = sim.particles[1].x + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 1 + sim.integrate(80.,exact_finish_time=0) + x0 = sim.particles[1].x + + self.assertEqual(x0,x1) + + def test_sa_whfasthelio_restart(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 0 + sim.save_to_file("test.bin", 10.,delete_file=True) + sim.integrate(42.,exact_finish_time=0) + + sim = None + sa = rebound.Simulationarchive("test.bin") + sim = sa[-1] + sim.integrate(80.,exact_finish_time=0) + x1 = sim.particles[1].x + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 0 + sim.integrate(80.,exact_finish_time=0) + x0 = sim.particles[1].x + + self.assertEqual(x0,x1) + + def test_sa_whds_restart_safe_mode(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "whds" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 1 + sim.save_to_file("test.bin", 10.,delete_file=True) + sim.integrate(40.,exact_finish_time=0) + + sim = None + sa = rebound.Simulationarchive("test.bin") + sim = sa[-1] + sim.integrate(80.,exact_finish_time=0) + x1 = sim.particles[1].x + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "whds" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 1 + sim.integrate(80.,exact_finish_time=0) + x0 = sim.particles[1].x + + self.assertEqual(x0,x1) + + def test_sa_whds_restart(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "whds" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 0 + sim.save_to_file("test.bin", 10.,delete_file=True) + sim.integrate(42.,exact_finish_time=0) + + sim = None + sa = rebound.Simulationarchive("test.bin") + sim = sa[-1] + sim.integrate(80.,exact_finish_time=0) + x1 = sim.particles[1].x + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "whds" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 0 + sim.integrate(80.,exact_finish_time=0) + x0 = sim.particles[1].x + + self.assertEqual(x0,x1) + + + def test_sa_restart_safe_mode(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 1 + sim.save_to_file("test.bin", 10.,delete_file=True) + sim.integrate(40.,exact_finish_time=0) + + sim = None + sa = rebound.Simulationarchive("test.bin") + sim = sa[-1] + sim.integrate(80.,exact_finish_time=0) + x1 = sim.particles[1].x + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 1 + sim.integrate(80.,exact_finish_time=0) + x0 = sim.particles[1].x + + self.assertEqual(x0,x1) + + def test_sa_restart(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 0 + sim.save_to_file("test.bin", 10.,delete_file=True) + sim.integrate(42.,exact_finish_time=0) + + sim = None + sa = rebound.Simulationarchive("test.bin") + sim = sa[-1] + sim.integrate(80.,exact_finish_time=0) + x1 = sim.particles[1].x + t1 = sim.t + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 0 + sim.integrate(80.,exact_finish_time=0) + x0 = sim.particles[1].x + t0 = sim.t + + self.assertEqual(t0,t1) + self.assertEqual(x0,x1) + + tget = 27.123 + sim = sa.getSimulation(tget,mode="exact") + self.assertAlmostEqual(sim.t,tget,delta=1e-14) + tget = 25.123 + sim = sa.getSimulation(tget,mode="close") + self.assertAlmostEqual(sim.t,tget,delta=sim.dt) + + def test_sa_restart_append(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 0 + sim.save_to_file("test.bin", 10.,delete_file=True) + sim.integrate(40.,exact_finish_time=0) + + sim = None + sa = rebound.Simulationarchive("test.bin") + sim = sa[-1] + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.save_to_file("test.bin", 10.) + sim.integrate(80.,exact_finish_time=0) + self.assertEqual(1, len(w)) + + + def test_sa_restart_generator(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 0 + sim.save_to_file("test.bin", 10.,delete_file=True) + sim.integrate(40.,exact_finish_time=0) + + sim = None + sa = rebound.Simulationarchive("test.bin") + + times = [0.,11.,22.] + for sim in sa.getSimulations(times,mode="close"): + pass + self.assertAlmostEqual(sim.t,22.058400000000105,delta=sim.dt) + + + + def test_sa_restart_corrector(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 0 + sim.ri_whfast.corrector = 5 + sim.save_to_file("test.bin", 10.,delete_file=True) + sim.integrate(42.,exact_finish_time=0) + + sim = None + sa = rebound.Simulationarchive("test.bin") + sim = sa[-1] + sim.integrate(80.,exact_finish_time=0) + x1 = sim.particles[1].x + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.dt = 0.1313 + sim.ri_whfast.safe_mode = 0 + sim.ri_whfast.corrector = 5 + sim.integrate(80.,exact_finish_time=0) + x0 = sim.particles[1].x + + self.assertEqual(x0,x1) + + tget = 27.123 + sim = sa.getSimulation(tget,mode="exact") + self.assertAlmostEqual(sim.t,tget,delta=1e-14) + tget = 25.123 + sim = sa.getSimulation(tget,mode="close") + self.assertAlmostEqual(sim.t,tget,delta=sim.dt) + + + def test_sa_restart_ias15(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "ias15" + sim.dt = 0.1313 + sim.save_to_file("test.bin", 10.,delete_file=True) + sim.integrate(40.,exact_finish_time=0) + + sim = None + sa = rebound.Simulationarchive("test.bin") + sim = sa[-1] + sim.integrate(80.,exact_finish_time=0) + x1 = sim.particles[1].x + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "ias15" + sim.dt = 0.1313 + sim.integrate(80.,exact_finish_time=0) + x0 = sim.particles[1].x + + self.assertEqual(x0,x1) + + tget = 27.123 + sim = sa.getSimulation(tget,mode="exact") + self.assertAlmostEqual(sim.t,tget,delta=1e-14) + tget = 25.123 + sim = sa.getSimulation(tget,mode="close") + self.assertAlmostEqual(sim.t,tget,delta=sim.dt) + +# def test_sa_restart_ias15_walltime(self): +# sim = rebound.Simulation() +# sim.add(m=1) +# sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) +# sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) +# sim.integrator = "ias15" +# sim.dt = 0.1313 +# sim.save_to_file("test.bin", walltime = 0.1,delete_file=True) +# sim.integrate(3000.,exact_finish_time=0) +# +# sim = None +# sa = rebound.Simulationarchive("test.bin") +# sim = sa[-1] +# self.assertGreater(sim.t,100.) +# sim.integrate(20000.,exact_finish_time=0) +# x1 = sim.particles[1].x +# +# +# sim = rebound.Simulation() +# sim.add(m=1) +# sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) +# sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) +# sim.integrator = "ias15" +# sim.dt = 0.1313 +# sim.integrate(20000.,exact_finish_time=0) +# x0 = sim.particles[1].x +# +# self.assertEqual(x0,x1) +# +# tget = 116.123 +# sim = sa.getSimulation(tget,mode="exact"); +# self.assertAlmostEqual(sim.t,tget,delta=1e-14) +# tget = 116.123 +# sim = sa.getSimulation(tget,mode="close"); +# self.assertAlmostEqual(sim.t,tget,delta=sim.dt) +# + +class TestSimulationarchiveWarningsErrors(unittest.TestCase): + def test_sa_binary_missing(self): + with self.assertRaises(RuntimeError): + sa = rebound.Simulationarchive("testmissing.bin") + def test_sa_binary_version(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "ias15" + sim.dt = 0.1313 + sim.save_to_file("test.bin", walltime = 0.01,delete_file=True) + sim.integrate(400.,exact_finish_time=0) + with open("test.bin","r+b") as f: + f.seek(30) + f.write("1.0.0 ".encode('ascii')) + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sa = rebound.Simulationarchive("test.bin") + self.assertEqual(1, len(w)) + + +class TestSimulationarchiveTmin(unittest.TestCase): + def test_sa_tmin(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "whfast" + sim.dt = 0.1313 + sim.integrate(400.,exact_finish_time=0) + sim.save_to_file("test.bin", interval = 100.,delete_file=True) + tmin = sim.t + sim.integrate(800.,exact_finish_time=0) + sa = rebound.Simulationarchive("test.bin") + self.assertEqual(tmin,sa[0].t) + self.assertEqual(tmin,sa.tmin) + self.assertNotEqual(tmin,sa.tmax) + + +class TestSimulationarchiveMercurius(unittest.TestCase): + def test_sa_mercurius_restart(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "mercurius" + sim.dt = 0.1313 + sim.ri_mercurius.safe_mode = 0 + sim.save_to_file("test.bin", 10.,delete_file=True) + sim.integrate(42.,exact_finish_time=0) + + sim = None + sa = rebound.Simulationarchive("test.bin") + sim = sa[-1] + sim.integrate(80.,exact_finish_time=0) + x1 = sim.particles[1].x + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "mercurius" + sim.dt = 0.1313 + sim.ri_mercurius.safe_mode = 0 + sim.integrate(80.,exact_finish_time=0) + x0 = sim.particles[1].x + + self.assertEqual(x0,x1) + + def test_sa_mercurius_restart_safemode(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "mercurius" + sim.dt = 0.1313 + sim.ri_mercurius.safe_mode = 1 + sim.save_to_file("test.bin", 10.,delete_file=True) + sim.integrate(40.,exact_finish_time=0) + + sim = None + sa = rebound.Simulationarchive("test.bin") + sim = sa[-1] + sim.integrate(80.,exact_finish_time=0) + x1 = sim.particles[1].x + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = "mercurius" + sim.dt = 0.1313 + sim.ri_mercurius.safe_mode = 1 + sim.integrate(80.,exact_finish_time=0) + x0 = sim.particles[1].x + + self.assertEqual(x0,x1) + + def test_append_to_corrupt_snapshot(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3,a=1.) + sim.add(m=5e-3,a=2.25) + + sim.save_to_file("simulationarchive.bin", interval=1000,delete_file=True) + sim.integrate(3001) + with open('simulationarchive.bin', 'r+b') as f: + f.seek(0, os.SEEK_END) + f.seek(f.tell() - 72, os.SEEK_SET) + f.write(bytes(72)) # binary should be 15972 bytes, overwrite last 72 bytes with all zeros + sa = rebound.Simulationarchive("simulationarchive.bin") + sim = sa[-1] + sim.save_to_file("simulationarchive.bin", interval=1000) + sim.integrate(7001) + sa = rebound.Simulationarchive("simulationarchive.bin") + self.assertEqual(sa.nblobs, 8) + self.assertAlmostEqual(sa[-1].t, 7000, places=0) + + + def test_append_to_corrupt_snapshot_by_2bytes(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3,a=1.) + sim.add(m=5e-3,a=2.25) + + sim.save_to_file("simulationarchive.bin", interval=1000,delete_file=True) + sim.integrate(3001) + s1 = os.path.getsize('simulationarchive.bin') + with open('simulationarchive.bin', 'r+b') as f: + f.seek(0, os.SEEK_END) + f.seek(f.tell() - 2, os.SEEK_SET) + f.truncate() # truncate by 2 bytes + s2 = os.path.getsize('simulationarchive.bin') + self.assertEqual(s1, s2+2) + + sa = rebound.Simulationarchive("simulationarchive.bin") + sim = sa[-1] + sim.save_to_file("simulationarchive.bin", interval=1000) + sim.integrate(7001) + sa = rebound.Simulationarchive("simulationarchive.bin") + self.assertEqual(sa.nblobs, 8) + self.assertAlmostEqual(sa[-1].t, 7000, places=0) + + def test_tree(self): + sim = rebound.Simulation() + sim.gravity = "tree" + sim.integrator = "leapfrog" + sim.configure_box(100,2,2,1) + sim.add(m=1.) + sim.add(m=1e-3,a=1.) + sim.add(m=5e-3,a=2.25) + + sim.save_to_file("out.bin", interval=100,delete_file=True) + sim.integrate(305) + + sa = rebound.Simulationarchive("out.bin") + self.assertEqual(sa.nblobs, 4) + + sim2 = sa[-1] + sim2.integrate(305) + self.assertEqual(sim, sim2) + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_simulationarchive_matrix.py b/rebound/source/rebound/tests/test_simulationarchive_matrix.py new file mode 100644 index 0000000000000000000000000000000000000000..4ecd086a83b67a172127998c2157e2cbd38e1fe0 --- /dev/null +++ b/rebound/source/rebound/tests/test_simulationarchive_matrix.py @@ -0,0 +1,118 @@ +import rebound +import unittest +import warnings + +class TestSimulationarchiveMatrix(unittest.TestCase): + pass + +def runSimulation(test,tmax=40., restart=False, keep_unsynchronized=1, interval=None, safe_mode=True, integrator="ias15",G=1., testparticle=0,simulationarchive_version=3): + if restart: + if keep_unsynchronized==1: + sim = rebound.Simulation("test.bin") + else: + sa = rebound.Simulationarchive("test.bin") + sim = sa.getSimulation(sa.tmax,keep_unsynchronized=0) + else: + sim = rebound.Simulation() + sim.G = G + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.add(m=1e-3,a=-2,e=1.1,omega=0.1,M=0.1,inc=0.1,Omega=0.1) + sim.integrator = integrator + sim.dt = 0.1313 + sim.simulationarchive_version = simulationarchive_version + if safe_mode==False: + sim.ri_whfast.safe_mode = 1 + sim.ri_mercurius.safe_mode = 1 + if testparticle>0: + if testparticle==1: + sim.testparticle_type=0 + if testparticle==2: + sim.testparticle_type=1 + sim.add(m=1e-4,a=1.2,e=0.04,omega=0.21,M=1.41,inc=0.21,Omega=1.1) + sim.N_active = sim.N-1 # one test particle + if interval: + sim.save_to_file("test.bin", interval, delete_file=True) + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(tmax,exact_finish_time=0) + if testparticle==1: + test.assertEqual(1,len(w)) + else: + test.assertEqual(0,len(w)) + return sim + +def compareSim(test,sim1,sim2): + test.assertEqual(sim1.N,sim2.N) + test.assertEqual(sim1.N_active,sim2.N_active) + test.assertEqual(sim1.N_var,sim2.N_var) + test.assertEqual(sim1.t,sim2.t) + test.assertEqual(sim1.G,sim2.G) + for i in range(sim1.N): + test.assertEqual(sim1.particles[i].r,sim2.particles[i].r) + test.assertEqual(sim1.particles[i].m,sim2.particles[i].m) + test.assertEqual(sim1.particles[i].x,sim2.particles[i].x) + test.assertEqual(sim1.particles[i].y,sim2.particles[i].y) + test.assertEqual(sim1.particles[i].z,sim2.particles[i].z) + test.assertEqual(sim1.particles[i].vx,sim2.particles[i].vx) + test.assertEqual(sim1.particles[i].vy,sim2.particles[i].vy) + test.assertEqual(sim1.particles[i].vz,sim2.particles[i].vz) + +def create_test_sa_restart(params): + def doTest(self): + runSimulation(self, 40., restart=False, interval=10., **params) + sim1 = runSimulation(self, 80., restart=True, **params) + sim2 = runSimulation(self, 80., restart=False, **params) + compareSim(self,sim1,sim2) + return doTest + +def create_test_sa_synchronize(params): + def doTest2(self): + sim1 = runSimulation(self, 40., restart=False, interval=10., **params) + if params['keep_unsynchronized']==1: + sim2 = rebound.Simulation("test.bin") + else: + sa = rebound.Simulationarchive("test.bin") + sim2 = sa.getSimulation(sa.tmax,keep_unsynchronized=0) + compareSim(self,sim1,sim2) + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim1.integrate(sim1.t+12.) + sim2.integrate(sim2.t+12.) + if params["testparticle"]==1: + self.assertEqual(2,len(w)) + else: + self.assertEqual(0,len(w)) + compareSim(self,sim1,sim2) + return doTest2 + + + +for integrator in ["ias15","whfast","leapfrog","janus","mercurius","saba","sabacl4", "saba(10,6,4)"]: + for safe_mode in [True,False]: + for G in [1.,0.9]: + for testparticle in [0,1,2]: # no test particle, passive, semi-active + for keep_unsynchronized in [1,0]: + for simulationarchive_version in [3]: # no longer testing versions 1 and 2! + params = {'safe_mode':safe_mode, + 'integrator':integrator, + 'G':G, + 'testparticle':testparticle, + 'keep_unsynchronized':keep_unsynchronized, + 'simulationarchive_version':simulationarchive_version} + test_method = create_test_sa_restart(params) + name = "test_sa_restart" + for key in params: + name += "_"+key+":"+str(params[key]) + test_method.__name__ = name + setattr(TestSimulationarchiveMatrix, name,test_method) + + test_method = create_test_sa_synchronize(params) + name = "test_sa_synchronize" + for key in params: + name += "_"+key+":"+str(params[key]) + test_method.__name__ = name + setattr(TestSimulationarchiveMatrix, name,test_method) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_size_of_simulation.py b/rebound/source/rebound/tests/test_size_of_simulation.py new file mode 100644 index 0000000000000000000000000000000000000000..d65870c5e4d9dd030ba2967a9392c1647d7e7f4c --- /dev/null +++ b/rebound/source/rebound/tests/test_size_of_simulation.py @@ -0,0 +1,15 @@ +import rebound +import unittest +from ctypes import c_size_t, sizeof + +class TestSizeOfSimmulation(unittest.TestCase): + + def test_size_of_simulation(self): + cl = rebound.clibrebound + cl.reb_simulation_struct_size.res_type = c_size_t + simulation_size_c = cl.reb_simulation_struct_size() + + self.assertEqual(simulation_size_c, sizeof(rebound.Simulation)) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_tponly_encounter.py b/rebound/source/rebound/tests/test_tponly_encounter.py new file mode 100644 index 0000000000000000000000000000000000000000..e11323769b144b5e4cc9b20ac5e6be771be94e7a --- /dev/null +++ b/rebound/source/rebound/tests/test_tponly_encounter.py @@ -0,0 +1,63 @@ +import rebound +import unittest +import sys +import warnings +import math +import random +from datetime import datetime + +class TestTPOnlyEncounter(unittest.TestCase): + + def test_tponly_encounter0_mercurius(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-2,a=1) + sim.add(m=1e-2,a=2) + sim.move_to_com() + sim.N_active = sim.N + sim.integrator = "mercurius" + sim.testparticle_type = 1 # Test particles can affect active particles + sim.dt = 0.1 + sim2 = sim.copy() + + random.seed(10) + for i in range(10): + sim.add(a=1.0+1e-2*random.uniform(-1,1), f=0.3*random.uniform(-1,1)) + sim2.add(a=1.0+1e-2*random.uniform(-1,1), f=0.3*random.uniform(-1,1)) + + + sim.integrate(10) + sim2.integrate(10) + + self.assertNotEqual(sim.particles[2].x, sim2.particles[2].x) + self.assertNotEqual(sim.particles[1].x, sim2.particles[1].x) + + def test_tponly_encounter1_mercurius(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1) + sim.add(m=1e-3,a=2) + sim.move_to_com() + sim.N_active = sim.N + sim.integrator = "mercurius" + sim.testparticle_type = 0 # Test particles can not affect active particles (default) + sim.dt = 0.1 + sim2 = sim.copy() + + random.seed(10) + for i in range(10): + sim.add(a=1.0+1e-2*random.uniform(-1,1), f=0.3*random.uniform(-1,1)) + sim2.add(a=1.0+1e-2*random.uniform(-1,1), f=0.3*random.uniform(-1,1)) + + + sim.integrate(10) + sim2.integrate(10) + + self.assertEqual(sim.particles[2].x, sim2.particles[2].x) + self.assertEqual(sim.particles[1].x, sim2.particles[1].x) + + + +if __name__ == "__main__": + unittest.main() + diff --git a/rebound/source/rebound/tests/test_trace.py b/rebound/source/rebound/tests/test_trace.py new file mode 100644 index 0000000000000000000000000000000000000000..b6bb1b6c5041f0cc9df7907da1abdaf3bfd3396f --- /dev/null +++ b/rebound/source/rebound/tests/test_trace.py @@ -0,0 +1,513 @@ +import rebound +import unittest +import numpy as np +import math +import sys +import warnings +import os +from datetime import datetime + +def chaotic_exchange_sim(): + sim = rebound.Simulation() + # Setup using xyz instead of orbital elements for + # machine independent test + + star_m = 1; + jup_m = 0.01 / (star_m - 0.01); + + jup_a = 5.2; + jup_e = 0.0; + star_x = -(jup_m / (star_m + jup_m)) * (jup_a * (1 + jup_e)); + star_vy = -(jup_m / (star_m + jup_m)) * np.sqrt(((star_m + jup_m) / jup_a) * ((1 - jup_e) / (1 + jup_e))); + + jup_x = (star_m / (star_m + jup_m)) * (jup_a * (1 + jup_e)); + jup_vy = (star_m / (star_m + jup_m)) * np.sqrt(((star_m + jup_m) / jup_a) * ((1 - jup_e) / (1 + jup_e))); + + t_x = 4.42; + t_vy = 0.0072 * (365.25) * (1 / (2 * np.pi)) + + sim = rebound.Simulation() + sim.add(m=star_m, x=star_x, vy=star_vy) + sim.add(m=jup_m, x=jup_x, vy = jup_vy) + sim.add(m=0, x=t_x + star_x, vy = t_vy + star_vy) + return sim + +def pericenter_sim(): + sim = rebound.Simulation() + sun = rebound.Particle(m=1.) + sim.add(sun) + sim.add(primary=sun, m=9.55e-4, a=5.2) + sim.add(primary=sun, m=2.857e-4, a=9.58,e=0.99,inc=math.pi/2.) + sim.move_to_com() + return sim + +def derivatives_ho(ode, yDot, y, t): + m = 1. + k = 100. + yDot[0] = y[1] + yDot[1] = -k/m*y[0] + +def collision_add_particle(sim_pointer, collision): + sim = sim_pointer.contents + sim.add(m=1e-10, a=1.) # meaningless + sim.add(m=1e-10, a=2.) # meaningless + sim.add(m=1e-10, a=3.) # meaningless + return 3 + +class TestIntegratorTraceHarmonic(unittest.TestCase): + + def test_trace_harmonic_with_nbody(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.123); + sim.add(m=1e-3,a=2.6,e=0.123); + sim.integrator = "TRACE" + ode_ho = sim.create_ode(length=2, needs_nbody=False) + ode_ho.derivatives = derivatives_ho + + ode_ho.y[0] = 1. + ode_ho.y[1] = 0. # zero velocity + + sim.integrate(20.*math.pi) + self.assertLess(math.fabs(ode_ho.y[0]-1.),2e-10) + self.assertLess(math.fabs(ode_ho.y[1]),2e-9) + + def test_trace_harmonic_with_nbody_coupledy(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.123); + sim.add(m=1e-3,a=2.6,e=0.123); + sim.integrator = "TRACE" + e0 = sim.energy() + ode_ho = sim.create_ode(length=2, needs_nbody=True) + ode_ho.derivatives = derivatives_ho + + ode_ho.y[0] = 1. + ode_ho.y[1] = 0. # zero velocity + + sim.integrate(20.*math.pi) + self.assertLess(math.fabs(ode_ho.y[0]-1.),2e-10) + self.assertLess(math.fabs(ode_ho.y[1]),2e-9) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e0),1e-10) + +class TestIntegratorTrace(unittest.TestCase): + + def test_no_effect_tp(self): + # tests if test particle encounters have an effect + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1) + sim.move_to_com() + sim.N_active=2 + sim.integrator = "trace" + sim.dt = 0.1 + sim2 = sim.copy() + p = sim.particles[1].copy() + p.x += 0.01 + p.m = 0 + sim.add(p) + sim.step() + sim2.step() + + self.assertEqual(sim.particles[1].x,sim2.particles[1].x) + self.assertEqual(sim.particles[1].vx,sim2.particles[1].vx) + self.assertEqual(sim.particles[0].x,sim2.particles[0].x) + self.assertEqual(sim.particles[0].vx,sim2.particles[0].vx) + + def test_outer_solar(self): + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + + sim.integrator = "trace" + P = sim.particles[1].P + sim.dt = 1e-3*P + + E0 = sim.energy() + sim.integrate(1000) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,2e-10) + + def test_order_doesnt_matter_tp0(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + + sim.integrator = "trace" + #sim.integrator = "whfast" + #sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 0 + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(1000) + self.assertEqual(1,len(w)) + + o1 = sim.particles[1].orbit(primary=sim.particles[0]) + o2 = sim.particles[2].orbit(primary=sim.particles[0]) + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + + sim.integrator = "trace" + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 0 + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(1000) + self.assertEqual(1,len(w)) + + o3 = sim.particles[1].orbit(primary=sim.particles[0]) + o4 = sim.particles[2].orbit(primary=sim.particles[0]) + + self.assertLess(abs(o1.e-o4.e),2e-16) + self.assertLess(abs(o2.e-o3.e),2e-16) + self.assertLess(abs(o1.a-o4.a),2e-16) + self.assertLess(abs(o2.a-o3.a),2e-16) + + def test_order_doesnt_matter_tp1(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + + sim.integrator = "trace" + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 1 + + sim.integrate(1000) + + o1 = sim.particles[1].orbit(primary=sim.particles[0]) + o2 = sim.particles[2].orbit(primary=sim.particles[0]) + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + + sim.integrator = "trace" + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 1 + + sim.integrate(1000) + + o3 = sim.particles[1].orbit(primary=sim.particles[0]) + o4 = sim.particles[2].orbit(primary=sim.particles[0]) + + self.assertLess(abs(o1.e-o4.e),2e-13) + self.assertLess(abs(o2.e-o3.e),9e-14) + self.assertLess(abs(o1.a-o4.a),9e-14) + self.assertLess(abs(o2.a-o3.a),4e-14) + + def test_outer_solar_massive(self): + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + for i in range(1,sim.N): + sim.particles[i].m *=50. + + sim.integrator = "trace" + P = sim.particles[1].P + sim.dt = 1e-3*P + + E0 = sim.energy() + sim.integrate(1000) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,7e-8) + + def test_simple_collision(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-5,r=1.6e-4,a=0.5,e=0.1) #these params lead to collision on my machine + sim.add(m=1e-8,r=4e-5,a=0.55,e=0.4,f=-0.94) + mtot0= sum([p.m for p in sim.particles]) + com0 = sim.com() + N0 = sim.N + + sim.integrator = "trace" + sim.dt = 0.01 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + + E0 = sim.energy() + sim.integrate(1) + com1 = sim.com() + self.assertAlmostEqual(com1.vx,com0.vx,delta=1e-16) + self.assertAlmostEqual(com1.vy,com0.vy,delta=1e-16) + self.assertAlmostEqual(com1.vz,com0.vz,delta=1e-16) + mtot1= sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,3e-9) + self.assertEqual(N0-1,sim.N) + self.assertEqual(0,sim.ri_trace._force_accept) # check force_accept bug + + def test_collision_add_particles(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-5,r=1.6e-4,a=0.5,e=0.1) #these params lead to collision on my machine + sim.add(m=1e-8,r=4e-5,a=0.55,e=0.4,f=-0.94) + N0 = sim.N + + sim.integrator = "trace" + sim.dt = 0.01 + sim.collision = "direct" + sim.collision_resolve = collision_add_particle + + sim.integrate(1) + self.assertEqual(N0+1,sim.N) + + def test_planetesimal_collision(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-5,r=1.6e-4,a=0.5,e=0.1) #these params lead to collision on my machine + sim.N_active = 2 + sim.add(m=1e-8,r=4e-5,a=0.55,e=0.4,f=-0.94) + mtot0= sum([p.m for p in sim.particles]) + N0 = sim.N + + sim.integrator = "trace" + sim.dt = 0.01 + sim.testparticle_type = 1 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + + E0 = sim.energy() + sim.integrate(1) + mtot1= sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,3e-9) + self.assertEqual(N0-1,sim.N) + + def test_massive_ejection(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-4,r=1.6e-4,a=0.5,e=0.1) + sim.add(m=1e-6,r=4e-5,a=0.6) + sim.particles[2].vy *= 2 + + sim.N_active = 2 + + sim.integrator = "trace" + sim.dt = 0.01 + sim.testparticle_type = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + sim.track_energy_offset = 1 + + sim.boundary = "open" + boxsize = 3. + sim.configure_box(boxsize) + + E0 = sim.energy() + sim.integrate(1) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,4e-6) + + def test_collision_with_star_simple(self): + sim = rebound.Simulation() + sim.add(m=1.,r=1.) + sim.add(m=1e-3,r=1.e-3,a=0.5) + mtot0 = sum([p.m for p in sim.particles]) + com0 = sim.com() + N0 = sim.N + + sim.integrator = "trace" + sim.dt = 0.01 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + + E0 = sim.energy() + sim.integrate(1) + com1 = sim.com() + self.assertAlmostEqual(com1.vx,com0.vx,delta=1e-16) + self.assertAlmostEqual(com1.vy,com0.vy,delta=1e-16) + self.assertAlmostEqual(com1.vz,com0.vz,delta=1e-16) + mtot1 = sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + self.assertEqual(N0-1,sim.N) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,1e-16) + + def test_collision_with_star(self): + sim = rebound.Simulation() + sim.add(m=1.,r=0.00465) + sim.add(m=1e-5,r=1.6e-4,a=0.5,e=0.1,f=2.3) + sim.add(m=1e-4,r=1.4e-3,x=1.,vx=-0.4) # falling onto the star + sim.add(m=1e-5,r=1.6e-4,a=1.5,e=0.1) + mtot0 = sum([p.m for p in sim.particles]) + com0 = sim.com() + N0 = sim.N + + sim.integrator = "trace" + sim.dt = 0.01 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + + E0 = sim.energy() + sim.integrate(1) + com1 = sim.com() + self.assertAlmostEqual(com1.vx,com0.vx,delta=1e-16) + self.assertAlmostEqual(com1.vy,com0.vy,delta=1e-16) + self.assertAlmostEqual(com1.vz,com0.vz,delta=1e-16) + mtot1 = sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + self.assertEqual(N0-1,sim.N) + dE = abs((sim.energy() - E0)/E0) + # bad energy conservation due to democratic heliocentric! + # worse than MERCURIUS, but still acceptable. Can maybe be improved... + self.assertLess(dE,5e-2) + + def test_many_encounters(self): + def get_sim(): + sim = rebound.Simulation() + sim.add(m=1) + # Setup using xyz instead of orbital elements for + # machine independent test + sim.add(m=0.0001,x=0.90000, y=0.00000, vx=0.00000, vy=1.10360) + sim.add(m=0.0001, x=-1.17676, y=-0.05212, vx=0.22535, vy=-0.90102) + sim.add(m=0.0001, x=-1.66025, y=-0.69852, vx=0.18932, vy=-0.60030) + sim.add(m=0.0001, x=0.57904, y=1.03836, vx=-0.69267, vy=0.75995) + sim.add(m=0.0001, x=-0.41683, y=0.83128, vx=-1.03478, vy=-0.72482) + sim.add(m=0.0001, x=1.83969, y=0.32938, vx=-0.55114, vy=0.51646) + sim.move_to_com() + sim.dt = 0.034 + return sim + + sim = get_sim() + sim.integrator = "trace" + E0 = sim.energy() + start=datetime.now() + sim.integrate(2000) + time_trace = (datetime.now()-start).total_seconds() + dE_trace = abs((sim.energy() - E0)/E0) + + sim = get_sim() + sim.integrator = "ias15" + start=datetime.now() + sim.integrate(2000) + time_ias15 = (datetime.now()-start).total_seconds() + dE_ias15 = abs((sim.energy() - E0)/E0) + + sim = get_sim() + sim.integrator = "whfast" + start=datetime.now() + sim.integrate(2000) + time_whfast = (datetime.now()-start).total_seconds() + dE_whfast = abs((sim.energy() - E0)/E0) + + # Note: precision might vary on machine as initializations use cos/sin + # and are therefore machine dependent. + self.assertLess(dE_trace,5e-5) # reasonable precision for trace. Changed by Hanno 23 Jan 2024 + self.assertLess(dE_trace/dE_whfast,1e-4) # at least 1e4 times better than whfast + if os.getenv("CI") != "true": + self.assertLess(time_trace,time_ias15) # faster than ias15 + if sys.maxsize > 2**32: # 64 bit + self.assertEqual(7060.644251181158, sim.particles[5].x) # Check if bitwise unchanged + + # TLu additional tests + def test_chaotic_exchange(self): + def jacobi(sim): + ps = sim.particles + star = ps[0] + planet = ps[1] + particle = ps[2] + rstar = np.array(star.xyz) + rplanet = np.array(planet.xyz) + r = np.array(particle.xyz) + v = np.array(particle.vxyz) + + KE = 0.5 * v@v # test particle kinetic energy + mu1 = sim.G * star.m + mu2 = sim.G * planet.m + r1 = r-rstar + r2 = r-rplanet + PE = -1*mu1/np.sqrt(r1@r1) - mu2/np.sqrt(r2@r2) # test particle potential energy + + lz = np.cross(r,v)[-1] + + CJ = 2 * planet.n * lz - 2 * (KE + PE) # jacobi constant + return CJ + + sim = chaotic_exchange_sim() + sim.integrator = "trace" + sim.ri_trace.r_crit_hill *= 1.21 # previously this was hardcoded + sim.dt = (8./365.)*2.*math.pi + E0 = jacobi(sim) + start=datetime.now() + sim.integrate(2000.) + time_trace = (datetime.now()-start).total_seconds() + dE_trace = abs((jacobi(sim) - E0)/E0) + + sim = chaotic_exchange_sim() + sim.integrator = "ias15" + start=datetime.now() + sim.integrate(2000.) + time_ias15 = (datetime.now()-start).total_seconds() + dE_ias15 = abs((jacobi(sim) - E0)/E0) + + self.assertLess(dE_trace, 1e-6) # reasonable precision for trace + if os.getenv("CI") != "true": + self.assertLess(time_trace,2.0*time_ias15) # not much slower than ias15 + + def test_pericenter(self): + + sim = pericenter_sim() + sim.integrator = "ias15" + start_ias15=datetime.now() + sim.integrate(10 * 2 * math.pi * 29.4) + time_ias15 = (datetime.now()-start_ias15).total_seconds() + + sim = pericenter_sim() + sim.integrator = "trace" + sim.dt = 0.15 * 2 * math.pi + E0 = sim.energy() + start_trace=datetime.now() + sim.integrate(10 * 2 * math.pi * 29.4) + time_trace = (datetime.now()-start_trace).total_seconds() + dE_trace = abs((sim.energy() - E0)/E0) + + self.assertLess(dE_trace,1e-4) # reasonable precision for trace + if os.getenv("CI") != "true": + self.assertLess(time_trace, 2.*time_ias15) # not much slower than ias15 + + def test_trace_simulationarchive(self): + sim = chaotic_exchange_sim() + sim.integrator = "trace" + sim.dt = (8./365.)*2.*math.pi + sim.hillfac = 5 # change rcrit + sim.save_to_file("test.bin", step=10,delete_file=True) + sim.integrate(1000.,exact_finish_time=0) + + sim = None + sim = rebound.Simulation("test.bin") + sim.integrate(2000.,exact_finish_time=0) + x1 = sim.particles[1].x + + + sim = chaotic_exchange_sim() + sim.integrator = "trace" + sim.dt = (8./365.)*2.*math.pi + sim.hillfac = 5 + sim.integrate(2000.,exact_finish_time=0) + x0 = sim.particles[1].x + + self.assertEqual(x0,x1) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_trace_basic.py b/rebound/source/rebound/tests/test_trace_basic.py new file mode 100644 index 0000000000000000000000000000000000000000..8691e9361991a10eb7b80a119a30fc63df710563 --- /dev/null +++ b/rebound/source/rebound/tests/test_trace_basic.py @@ -0,0 +1,54 @@ +import rebound +import unittest + + +class TestIntegratorTraceBasic(unittest.TestCase): + + def test_trace_encounter_condition(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1) + sim.add(m=1e-3,a=1.1,f=0.25) # First step will be rejected. + sim.add(m=1e-3,a=3.1) + sim.integrator = "TRACE" + sim.ri_trace.r_crit_hill *= 1.21 + sim.dt = 0.14 + + for k in range(3): + sim.step() + self.assertEqual(sim.ri_trace._current_C,0) + self.assertEqual(sim.ri_trace._encounter_N,3) + self.assertEqual(sim.ri_trace._encounter_N_active,3) + for i in range(sim.N): + for j in range(i+1,sim.N): + if i==1 and j==2: + self.assertEqual(sim.ri_trace._current_Ks[i*sim.N+j],1) + else: + self.assertEqual(sim.ri_trace._current_Ks[i*sim.N+j],0) + + # Change condition. No more encounters. + sim.ri_trace.r_crit_hill = 0.1 + for k in range(3): + sim.step() + self.assertEqual(sim.ri_trace._current_C,0) + self.assertEqual(sim.ri_trace._encounter_N,1) + for i in range(sim.N): + for j in range(i+1,sim.N): + self.assertEqual(sim.ri_trace._current_Ks[i*sim.N+j],0) + + def test_trace_encounter_prediction(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=9.55e-4,x=5.2) + sim.add(x=5.3,y=0.36,vy=-7.2) # Non-encounter prediction misses this + sim.integrator = "TRACE" + sim.dt = 0.01 + sim.ri_trace.r_crit_hill = 1 + sim.step() + + self.assertEqual(sim.ri_trace._encounter_N,3) + + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_trace_full_bs.py b/rebound/source/rebound/tests/test_trace_full_bs.py new file mode 100644 index 0000000000000000000000000000000000000000..a2ff0ebe2fd04dcfff858b39de3ab2d0913f6d76 --- /dev/null +++ b/rebound/source/rebound/tests/test_trace_full_bs.py @@ -0,0 +1,458 @@ +import rebound +import unittest +import numpy as np +import math +import sys +import warnings +from datetime import datetime + +def chaotic_exchange_sim(): + sim = rebound.Simulation() + # Setup using xyz instead of orbital elements for + # machine independent test + + star_m = 1; + jup_m = 0.01 / (star_m - 0.01); + + jup_a = 5.2; + jup_e = 0.0; + star_x = -(jup_m / (star_m + jup_m)) * (jup_a * (1 + jup_e)); + star_vy = -(jup_m / (star_m + jup_m)) * np.sqrt(((star_m + jup_m) / jup_a) * ((1 - jup_e) / (1 + jup_e))); + + jup_x = (star_m / (star_m + jup_m)) * (jup_a * (1 + jup_e)); + jup_vy = (star_m / (star_m + jup_m)) * np.sqrt(((star_m + jup_m) / jup_a) * ((1 - jup_e) / (1 + jup_e))); + + t_x = 4.42; + t_vy = 0.0072 * (365.25) * (1 / (2 * np.pi)) + + sim = rebound.Simulation() + sim.add(m=star_m, x=star_x, vy=star_vy) + sim.add(m=jup_m, x=jup_x, vy = jup_vy) + sim.add(m=0, x=t_x + star_x, vy = t_vy + star_vy) + return sim + +def pericenter_sim(): + sim = rebound.Simulation() + sun = rebound.Particle(m=1.) + sim.add(sun) + sim.add(primary=sun, m=9.55e-4, a=5.2) + sim.add(primary=sun, m=2.857e-4, a=9.58,e=0.99,inc=math.pi/2.) + sim.move_to_com() + return sim + +def derivatives_ho(ode, yDot, y, t): + m = 1. + k = 100. + yDot[0] = y[1] + yDot[1] = -k/m*y[0] + +class TestIntegratorTraceHarmonic(unittest.TestCase): + + def test_trace_harmonic_with_nbody(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.123); + sim.add(m=1e-3,a=2.6,e=0.123); + sim.integrator = "TRACE" + ode_ho = sim.create_ode(length=2, needs_nbody=False) + ode_ho.derivatives = derivatives_ho + + ode_ho.y[0] = 1. + ode_ho.y[1] = 0. # zero velocity + + sim.integrate(20.*math.pi) + self.assertLess(math.fabs(ode_ho.y[0]-1.),2e-10) + self.assertLess(math.fabs(ode_ho.y[1]),2e-9) + + def test_trace_harmonic_with_nbody_coupledy(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.123); + sim.add(m=1e-3,a=2.6,e=0.123); + sim.integrator = "TRACE" + e0 = sim.energy() + ode_ho = sim.create_ode(length=2, needs_nbody=True) + ode_ho.derivatives = derivatives_ho + + ode_ho.y[0] = 1. + ode_ho.y[1] = 0. # zero velocity + + sim.integrate(20.*math.pi) + self.assertLess(math.fabs(ode_ho.y[0]-1.),2e-10) + self.assertLess(math.fabs(ode_ho.y[1]),2e-9) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e0),1e-10) + +class TestIntegratorTrace(unittest.TestCase): + + def test_no_effect_tp(self): + # tests if test particle encounters have an effect + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1) + sim.move_to_com() + sim.N_active=2 + sim.integrator = "trace" + sim.ri_trace.peri_mode = 1 + sim.dt = 0.1 + sim2 = sim.copy() + p = sim.particles[1].copy() + p.x += 0.01 + p.m = 0 + sim.add(p) + sim.step() + sim2.step() + + self.assertEqual(sim.particles[1].x,sim2.particles[1].x) + self.assertEqual(sim.particles[1].vx,sim2.particles[1].vx) + self.assertEqual(sim.particles[0].x,sim2.particles[0].x) + self.assertEqual(sim.particles[0].vx,sim2.particles[0].vx) + + def test_outer_solar(self): + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 1 + P = sim.particles[1].P + sim.dt = 1e-3*P + + E0 = sim.energy() + sim.integrate(1000) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,2e-10) + + def test_order_doesnt_matter_tp0(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 1 + #sim.integrator = "whfast" + #sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 0 + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(1000) + self.assertEqual(1,len(w)) + + o1 = sim.particles[1].orbit(primary=sim.particles[0]) + o2 = sim.particles[2].orbit(primary=sim.particles[0]) + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 1 + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 0 + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(1000) + self.assertEqual(1,len(w)) + + o3 = sim.particles[1].orbit(primary=sim.particles[0]) + o4 = sim.particles[2].orbit(primary=sim.particles[0]) + + self.assertLess(abs(o1.e-o4.e),2e-16) + self.assertLess(abs(o2.e-o3.e),2e-16) + self.assertLess(abs(o1.a-o4.a),2e-16) + self.assertLess(abs(o2.a-o3.a),2e-16) + + def test_order_doesnt_matter_tp1(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 1 + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 1 + + sim.integrate(1000) + + o1 = sim.particles[1].orbit(primary=sim.particles[0]) + o2 = sim.particles[2].orbit(primary=sim.particles[0]) + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 1 + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 1 + + sim.integrate(1000) + + o3 = sim.particles[1].orbit(primary=sim.particles[0]) + o4 = sim.particles[2].orbit(primary=sim.particles[0]) + + self.assertLess(abs(o1.e-o4.e),2e-13) + self.assertLess(abs(o2.e-o3.e),9e-14) + self.assertLess(abs(o1.a-o4.a),9e-14) + self.assertLess(abs(o2.a-o3.a),4e-14) + + def test_outer_solar_massive(self): + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + for i in range(1,sim.N): + sim.particles[i].m *=50. + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 1 + P = sim.particles[1].P + sim.dt = 1e-3*P + + E0 = sim.energy() + sim.integrate(1000) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,7e-8) + + def test_simple_collision(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-5,r=1.6e-4,a=0.5,e=0.1) #these params lead to collision on my machine + sim.add(m=1e-8,r=4e-5,a=0.55,e=0.4,f=-0.94) + mtot0= sum([p.m for p in sim.particles]) + com0 = sim.com() + N0 = sim.N + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 1 + sim.dt = 0.01 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + + E0 = sim.energy() + sim.integrate(1) + com1 = sim.com() + self.assertAlmostEqual(com1.vx,com0.vx,delta=1e-16) + self.assertAlmostEqual(com1.vy,com0.vy,delta=1e-16) + self.assertAlmostEqual(com1.vz,com0.vz,delta=1e-16) + mtot1= sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,3e-9) + self.assertEqual(N0-1,sim.N) + + + def test_planetesimal_collision(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-5,r=1.6e-4,a=0.5,e=0.1) #these params lead to collision on my machine + sim.N_active = 2 + sim.add(m=1e-8,r=4e-5,a=0.55,e=0.4,f=-0.94) + mtot0= sum([p.m for p in sim.particles]) + N0 = sim.N + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 1 + sim.dt = 0.01 + sim.testparticle_type = 1 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + + E0 = sim.energy() + sim.integrate(1) + mtot1= sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,3e-9) + self.assertEqual(N0-1,sim.N) + + def test_massive_ejection(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-4,r=1.6e-4,a=0.5,e=0.1) + sim.add(m=1e-6,r=4e-5,a=0.6) + sim.particles[2].vy *= 2 + + sim.N_active = 2 + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 1 + sim.dt = 0.01 + sim.testparticle_type = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + sim.track_energy_offset = 1 + + sim.boundary = "open" + boxsize = 3. + sim.configure_box(boxsize) + + E0 = sim.energy() + sim.integrate(1) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,4e-6) + + def test_collision_with_star_simple(self): + sim = rebound.Simulation() + sim.add(m=1.,r=1.) + sim.add(m=1e-3,r=1.e-3,a=0.5) + mtot0 = sum([p.m for p in sim.particles]) + com0 = sim.com() + N0 = sim.N + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 1 + sim.dt = 0.01 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + + E0 = sim.energy() + sim.integrate(1) + com1 = sim.com() + self.assertAlmostEqual(com1.vx,com0.vx,delta=1e-16) + self.assertAlmostEqual(com1.vy,com0.vy,delta=1e-16) + self.assertAlmostEqual(com1.vz,com0.vz,delta=1e-16) + mtot1 = sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + self.assertEqual(N0-1,sim.N) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,1e-16) + + def test_collision_with_star(self): + sim = rebound.Simulation() + sim.add(m=1.,r=0.00465) + sim.add(m=1e-5,r=1.6e-4,a=0.5,e=0.1,f=2.3) + sim.add(m=1e-4,r=1.4e-3,x=1.,vx=-0.4) # falling onto the star + sim.add(m=1e-5,r=1.6e-4,a=1.5,e=0.1) + mtot0 = sum([p.m for p in sim.particles]) + com0 = sim.com() + N0 = sim.N + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 1 + sim.dt = 0.01 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + sim.ri_trace.peri_crit_distance=0.2 + + E0 = sim.energy() + sim.integrate(1) + com1 = sim.com() + self.assertAlmostEqual(com1.vx,com0.vx,delta=1e-16) + self.assertAlmostEqual(com1.vy,com0.vy,delta=1e-16) + self.assertAlmostEqual(com1.vz,com0.vz,delta=1e-16) + mtot1 = sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + self.assertEqual(N0-1,sim.N) + dE = abs((sim.energy() - E0)/E0) + # bad energy conservation due to democratic heliocentric! + # worse than MERCURIUS, but still acceptable. Can maybe be improved... + self.assertLess(dE,5e-2) + + def test_many_encounters(self): + def get_sim(): + sim = rebound.Simulation() + sim.add(m=1) + # Setup using xyz instead of orbital elements for + # machine independent test + sim.add(m=0.0001,x=0.90000, y=0.00000, vx=0.00000, vy=1.10360) + sim.add(m=0.0001, x=-1.17676, y=-0.05212, vx=0.22535, vy=-0.90102) + sim.add(m=0.0001, x=-1.66025, y=-0.69852, vx=0.18932, vy=-0.60030) + sim.add(m=0.0001, x=0.57904, y=1.03836, vx=-0.69267, vy=0.75995) + sim.add(m=0.0001, x=-0.41683, y=0.83128, vx=-1.03478, vy=-0.72482) + sim.add(m=0.0001, x=1.83969, y=0.32938, vx=-0.55114, vy=0.51646) + sim.move_to_com() + sim.dt = 0.034 + return sim + + sim = get_sim() + sim.integrator = "trace" + sim.ri_trace.peri_mode = 1 + E0 = sim.energy() + start=datetime.now() + sim.integrate(2000) + time_trace = (datetime.now()-start).total_seconds() + dE_trace = abs((sim.energy() - E0)/E0) + + sim = get_sim() + sim.integrator = "ias15" + start=datetime.now() + sim.integrate(2000) + time_ias15 = (datetime.now()-start).total_seconds() + dE_ias15 = abs((sim.energy() - E0)/E0) + + sim = get_sim() + sim.integrator = "whfast" + start=datetime.now() + sim.integrate(2000) + time_whfast = (datetime.now()-start).total_seconds() + dE_whfast = abs((sim.energy() - E0)/E0) + + # Note: precision might vary on machine as initializations use cos/sin + # and are therefore machine dependent. + self.assertLess(dE_trace,5e-5) # reasonable precision for trace. Changed by Hanno 23 Jan 2024 + self.assertLess(dE_trace/dE_whfast,1e-4) # at least 1e4 times better than whfast + self.assertLess(time_trace,time_ias15) # faster than ias15 + if sys.maxsize > 2**32: # 64 bit + self.assertEqual(7060.644251181158, sim.particles[5].x) # Check if bitwise unchanged + + # TLu additional tests + def test_chaotic_exchange(self): + def jacobi(sim): + ps = sim.particles + star = ps[0] + planet = ps[1] + particle = ps[2] + rstar = np.array(star.xyz) + rplanet = np.array(planet.xyz) + r = np.array(particle.xyz) + v = np.array(particle.vxyz) + + KE = 0.5 * v@v # test particle kinetic energy + mu1 = sim.G * star.m + mu2 = sim.G * planet.m + r1 = r-rstar + r2 = r-rplanet + PE = -1*mu1/np.sqrt(r1@r1) - mu2/np.sqrt(r2@r2) # test particle potential energy + + lz = np.cross(r,v)[-1] + + CJ = 2 * planet.n * lz - 2 * (KE + PE) # jacobi constant + return CJ + + sim = chaotic_exchange_sim() + sim.integrator = "trace" + sim.ri_trace.peri_mode = 1 + sim.ri_trace.r_crit_hill *= 1.21 # previously this was hardcoded + sim.dt = (8./365.)*2.*math.pi + E0 = jacobi(sim) + start=datetime.now() + sim.integrate(5000.) + time_trace = (datetime.now()-start).total_seconds() + dE_trace = abs((jacobi(sim) - E0)/E0) + + sim = chaotic_exchange_sim() + sim.integrator = "ias15" + start=datetime.now() + sim.integrate(5000.) + time_ias15 = (datetime.now()-start).total_seconds() + dE_ias15 = abs((jacobi(sim) - E0)/E0) + + self.assertLess(dE_trace, 1e-6) # reasonable precision for trace + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_trace_full_ias15.py b/rebound/source/rebound/tests/test_trace_full_ias15.py new file mode 100644 index 0000000000000000000000000000000000000000..3ecced6efbf6bde6de19e59aee3352d1e2504a22 --- /dev/null +++ b/rebound/source/rebound/tests/test_trace_full_ias15.py @@ -0,0 +1,451 @@ +import rebound +import unittest +import numpy as np +import math +import sys +import warnings +from datetime import datetime + +def chaotic_exchange_sim(): + sim = rebound.Simulation() + # Setup using xyz instead of orbital elements for + # machine independent test + + star_m = 1; + jup_m = 0.01 / (star_m - 0.01); + + jup_a = 5.2; + jup_e = 0.0; + star_x = -(jup_m / (star_m + jup_m)) * (jup_a * (1 + jup_e)); + star_vy = -(jup_m / (star_m + jup_m)) * np.sqrt(((star_m + jup_m) / jup_a) * ((1 - jup_e) / (1 + jup_e))); + + jup_x = (star_m / (star_m + jup_m)) * (jup_a * (1 + jup_e)); + jup_vy = (star_m / (star_m + jup_m)) * np.sqrt(((star_m + jup_m) / jup_a) * ((1 - jup_e) / (1 + jup_e))); + + t_x = 4.42; + t_vy = 0.0072 * (365.25) * (1 / (2 * np.pi)) + + sim = rebound.Simulation() + sim.add(m=star_m, x=star_x, vy=star_vy) + sim.add(m=jup_m, x=jup_x, vy = jup_vy) + sim.add(m=0, x=t_x + star_x, vy = t_vy + star_vy) + return sim + +def pericenter_sim(): + sim = rebound.Simulation() + sun = rebound.Particle(m=1.) + sim.add(sun) + sim.add(primary=sun, m=9.55e-4, a=5.2) + sim.add(primary=sun, m=2.857e-4, a=9.58,e=0.99,inc=math.pi/2.) + sim.move_to_com() + return sim + +def derivatives_ho(ode, yDot, y, t): + m = 1. + k = 100. + yDot[0] = y[1] + yDot[1] = -k/m*y[0] + +class TestIntegratorTraceHarmonic(unittest.TestCase): + + def test_trace_harmonic_with_nbody(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.123); + sim.add(m=1e-3,a=2.6,e=0.123); + sim.integrator = "TRACE" + ode_ho = sim.create_ode(length=2, needs_nbody=False) + ode_ho.derivatives = derivatives_ho + + ode_ho.y[0] = 1. + ode_ho.y[1] = 0. # zero velocity + + sim.integrate(20.*math.pi) + self.assertLess(math.fabs(ode_ho.y[0]-1.),2e-10) + self.assertLess(math.fabs(ode_ho.y[1]),2e-9) + + def test_trace_harmonic_with_nbody_coupledy(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1,e=0.123); + sim.add(m=1e-3,a=2.6,e=0.123); + sim.integrator = "TRACE" + e0 = sim.energy() + ode_ho = sim.create_ode(length=2, needs_nbody=True) + ode_ho.derivatives = derivatives_ho + + ode_ho.y[0] = 1. + ode_ho.y[1] = 0. # zero velocity + + sim.integrate(20.*math.pi) + self.assertLess(math.fabs(ode_ho.y[0]-1.),2e-10) + self.assertLess(math.fabs(ode_ho.y[1]),2e-9) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e0),1e-10) + +class TestIntegratorTrace(unittest.TestCase): + + def test_no_effect_tp(self): + # tests if test particle encounters have an effect + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1) + sim.move_to_com() + sim.N_active=2 + sim.integrator = "trace" + sim.ri_trace.peri_mode = 2 + sim.dt = 0.1 + sim2 = sim.copy() + p = sim.particles[1].copy() + p.x += 0.01 + p.m = 0 + sim.add(p) + sim.step() + sim2.step() + + self.assertEqual(sim.particles[1].x,sim2.particles[1].x) + self.assertEqual(sim.particles[1].vx,sim2.particles[1].vx) + self.assertEqual(sim.particles[0].x,sim2.particles[0].x) + self.assertEqual(sim.particles[0].vx,sim2.particles[0].vx) + + def test_outer_solar(self): + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 2 + P = sim.particles[1].P + sim.dt = 1e-3*P + + E0 = sim.energy() + sim.integrate(1000) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,2e-10) + + def test_order_doesnt_matter_tp0(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 2 + #sim.integrator = "whfast" + #sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 0 + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(1000) + self.assertEqual(1,len(w)) + + o1 = sim.particles[1].orbit(primary=sim.particles[0]) + o2 = sim.particles[2].orbit(primary=sim.particles[0]) + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 2 + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 0 + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(1000) + self.assertEqual(1,len(w)) + + o3 = sim.particles[1].orbit(primary=sim.particles[0]) + o4 = sim.particles[2].orbit(primary=sim.particles[0]) + + self.assertLess(abs(o1.e-o4.e),2e-16) + self.assertLess(abs(o2.e-o3.e),2e-16) + self.assertLess(abs(o1.a-o4.a),2e-16) + self.assertLess(abs(o2.a-o3.a),2e-16) + + def test_order_doesnt_matter_tp1(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 2 + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 1 + + sim.integrate(1000) + + o1 = sim.particles[1].orbit(primary=sim.particles[0]) + o2 = sim.particles[2].orbit(primary=sim.particles[0]) + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 2 + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 1 + + sim.integrate(1000) + + o3 = sim.particles[1].orbit(primary=sim.particles[0]) + o4 = sim.particles[2].orbit(primary=sim.particles[0]) + + self.assertLess(abs(o1.e-o4.e),2e-13) + self.assertLess(abs(o2.e-o3.e),9e-14) + self.assertLess(abs(o1.a-o4.a),9e-14) + self.assertLess(abs(o2.a-o3.a),4e-14) + + def test_outer_solar_massive(self): + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + for i in range(1,sim.N): + sim.particles[i].m *=50. + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 2 + P = sim.particles[1].P + sim.dt = 1e-3*P + + E0 = sim.energy() + sim.integrate(1000) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,7e-8) + + def test_simple_collision(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-5,r=1.6e-4,a=0.5,e=0.1) #these params lead to collision on my machine + sim.add(m=1e-8,r=4e-5,a=0.55,e=0.4,f=-0.94) + mtot0= sum([p.m for p in sim.particles]) + com0 = sim.com() + N0 = sim.N + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 2 + sim.dt = 0.01 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + + E0 = sim.energy() + sim.integrate(1) + com1 = sim.com() + self.assertAlmostEqual(com1.vx,com0.vx,delta=1e-16) + self.assertAlmostEqual(com1.vy,com0.vy,delta=1e-16) + self.assertAlmostEqual(com1.vz,com0.vz,delta=1e-16) + mtot1= sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,3e-9) + self.assertEqual(N0-1,sim.N) + + + def test_planetesimal_collision(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-5,r=1.6e-4,a=0.5,e=0.1) #these params lead to collision on my machine + sim.N_active = 2 + sim.add(m=1e-8,r=4e-5,a=0.55,e=0.4,f=-0.94) + mtot0= sum([p.m for p in sim.particles]) + N0 = sim.N + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 2 + sim.dt = 0.01 + sim.testparticle_type = 1 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + + E0 = sim.energy() + sim.integrate(1) + mtot1= sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,3e-9) + self.assertEqual(N0-1,sim.N) + + def test_massive_ejection(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-4,r=1.6e-4,a=0.5,e=0.1) + sim.add(m=1e-6,r=4e-5,a=0.6) + sim.particles[2].vy *= 2 + + sim.N_active = 2 + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 2 + sim.dt = 0.01 + sim.testparticle_type = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + sim.track_energy_offset = 1 + + sim.boundary = "open" + boxsize = 3. + sim.configure_box(boxsize) + + E0 = sim.energy() + sim.integrate(1) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,4e-6) + + def test_collision_with_star_simple(self): + sim = rebound.Simulation() + sim.add(m=1.,r=1.) + sim.add(m=1e-3,r=1.e-3,a=0.5) + mtot0 = sum([p.m for p in sim.particles]) + com0 = sim.com() + N0 = sim.N + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 2 + sim.dt = 0.01 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + + E0 = sim.energy() + sim.integrate(1) + com1 = sim.com() + self.assertAlmostEqual(com1.vx,com0.vx,delta=1e-16) + self.assertAlmostEqual(com1.vy,com0.vy,delta=1e-16) + self.assertAlmostEqual(com1.vz,com0.vz,delta=1e-16) + mtot1 = sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + self.assertEqual(N0-1,sim.N) + dE = abs((sim.energy() - E0)/E0) + self.assertLess(dE,1e-16) + + def test_collision_with_star(self): + sim = rebound.Simulation() + sim.add(m=1.,r=0.00465) + sim.add(m=1e-5,r=1.6e-4,a=0.5,e=0.1,f=2.3) + sim.add(m=1e-4,r=1.4e-3,x=1.,vx=-0.4) # falling onto the star + sim.add(m=1e-5,r=1.6e-4,a=1.5,e=0.1) + mtot0 = sum([p.m for p in sim.particles]) + com0 = sim.com() + N0 = sim.N + + sim.integrator = "trace" + sim.ri_trace.peri_mode = 2 + sim.dt = 0.01 + sim.track_energy_offset = 1 + sim.collision = "direct" + sim.collision_resolve = "merge" + sim.ri_trace.peri_crit_distance=0.2 + + E0 = sim.energy() + sim.integrate(1) + com1 = sim.com() + self.assertAlmostEqual(com1.vx,com0.vx,delta=1e-16) + self.assertAlmostEqual(com1.vy,com0.vy,delta=1e-16) + self.assertAlmostEqual(com1.vz,com0.vz,delta=1e-16) + mtot1 = sum([p.m for p in sim.particles]) + self.assertEqual(mtot0,mtot1) + self.assertEqual(N0-1,sim.N) + dE = abs((sim.energy() - E0)/E0) + # bad energy conservation due to democratic heliocentric! + # worse than MERCURIUS, but still acceptable. Can maybe be improved... + self.assertLess(dE,5e-2) + + def test_many_encounters(self): + def get_sim(): + sim = rebound.Simulation() + sim.add(m=1) + # Setup using xyz instead of orbital elements for + # machine independent test + sim.add(m=0.0001,x=0.90000, y=0.00000, vx=0.00000, vy=1.10360) + sim.add(m=0.0001, x=-1.17676, y=-0.05212, vx=0.22535, vy=-0.90102) + sim.add(m=0.0001, x=-1.66025, y=-0.69852, vx=0.18932, vy=-0.60030) + sim.add(m=0.0001, x=0.57904, y=1.03836, vx=-0.69267, vy=0.75995) + sim.add(m=0.0001, x=-0.41683, y=0.83128, vx=-1.03478, vy=-0.72482) + sim.add(m=0.0001, x=1.83969, y=0.32938, vx=-0.55114, vy=0.51646) + sim.move_to_com() + sim.dt = 0.034 + return sim + + sim = get_sim() + sim.integrator = "trace" + sim.ri_trace.peri_mode = 2 + E0 = sim.energy() + start=datetime.now() + sim.integrate(2000) + time_trace = (datetime.now()-start).total_seconds() + dE_trace = abs((sim.energy() - E0)/E0) + + sim = get_sim() + sim.integrator = "ias15" + start=datetime.now() + sim.integrate(2000) + time_ias15 = (datetime.now()-start).total_seconds() + dE_ias15 = abs((sim.energy() - E0)/E0) + + sim = get_sim() + sim.integrator = "whfast" + start=datetime.now() + sim.integrate(2000) + time_whfast = (datetime.now()-start).total_seconds() + dE_whfast = abs((sim.energy() - E0)/E0) + + # Note: precision might vary on machine as initializations use cos/sin + # and are therefore machine dependent. + self.assertLess(dE_trace,5e-5) # reasonable precision for trace. Changed by Hanno 23 Jan 2024 + self.assertLess(dE_trace/dE_whfast,1e-4) # at least 1e4 times better than whfast + self.assertLess(time_trace,time_ias15) # faster than ias15 + if sys.maxsize > 2**32: # 64 bit + self.assertEqual(7060.644251181158, sim.particles[5].x) # Check if bitwise unchanged + + # TLu additional tests + def test_chaotic_exchange(self): + def jacobi(sim): + ps = sim.particles + star = ps[0] + planet = ps[1] + particle = ps[2] + rstar = np.array(star.xyz) + rplanet = np.array(planet.xyz) + r = np.array(particle.xyz) + v = np.array(particle.vxyz) + + KE = 0.5 * v@v # test particle kinetic energy + mu1 = sim.G * star.m + mu2 = sim.G * planet.m + r1 = r-rstar + r2 = r-rplanet + PE = -1*mu1/np.sqrt(r1@r1) - mu2/np.sqrt(r2@r2) # test particle potential energy + + lz = np.cross(r,v)[-1] + + CJ = 2 * planet.n * lz - 2 * (KE + PE) # jacobi constant + return CJ + + sim = chaotic_exchange_sim() + sim.integrator = "trace" + sim.ri_trace.peri_mode = 2 + sim.ri_trace.r_crit_hill *= 1.21 # previously this was hardcoded + sim.dt = (8./365.)*2.*math.pi + E0 = jacobi(sim) + start=datetime.now() + sim.integrate(5000.) + time_trace = (datetime.now()-start).total_seconds() + dE_trace = abs((jacobi(sim) - E0)/E0) + + self.assertLess(dE_trace, 3e-6) # reasonable precision for trace + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_transformations.py b/rebound/source/rebound/tests/test_transformations.py new file mode 100644 index 0000000000000000000000000000000000000000..8e36fd5aff6260a906eafa00db3ccab5ad882a45 --- /dev/null +++ b/rebound/source/rebound/tests/test_transformations.py @@ -0,0 +1,163 @@ +import rebound +import unittest +import ctypes + + +def getc(sim): + c = [] + for i in range(sim.N): + c.append(sim.particles[i].x) + c.append(sim.particles[i].y) + c.append(sim.particles[i].z) + c.append(sim.particles[i].vx) + c.append(sim.particles[i].vy) + c.append(sim.particles[i].vz) + c.append(sim.particles[i].m) + c.append(sim.particles[i].r) + return c + +class TestTransformations(unittest.TestCase): + + def test_barycentric(self): + sim = rebound.Simulation() + sim.add(m=1.2354) + sim.add(m=0.1,a=1.24,e=0.123,inc=0.14,omega=0.12,Omega=0.64,l=0.632) + sim.add(m=0.01,a=5.24,e=0.2123,inc=0.014,omega=0.012,Omega=0.0164,l=10.18632) + sim.add(m=1e-7,a=7.24,e=0.22123,inc=0.3014,omega=0.4012,Omega=0.110164,l=2.18632) + + elems = (rebound.Particle * sim.N)() + p = ctypes.cast(elems,ctypes.POINTER(rebound.Particle)) + + c0 = getc(sim) + cl = rebound.clibrebound + cl.reb_particles_transform_inertial_to_barycentric_posvel(sim._particles,p,sim.N,sim.N) + + for i in range(sim.N): + sim.particles[i].x = 1234. + sim.particles[i].vx = 1234. + cl.reb_particles_transform_barycentric_to_inertial_posvel(sim._particles,p,sim.N,sim.N) + + c1 = getc(sim) + for i in range(len(c0)): + self.assertAlmostEqual(c0[i],c1[i],delta=1e-16) + + for i in range(sim.N): + sim.particles[i].x = 1234. + cl.reb_particles_transform_barycentric_to_inertial_pos(sim._particles,p,sim.N,sim.N) + + c1 = getc(sim) + for i in range(len(c0)): + self.assertAlmostEqual(c0[i],c1[i],delta=1e-16) + + + def test_democratichelio(self): + sim = rebound.Simulation() + sim.add(m=1.2354) + sim.add(m=0.1,a=1.24,e=0.123,inc=0.14,omega=0.12,Omega=0.64,l=0.632) + sim.add(m=0.01,a=5.24,e=0.2123,inc=0.014,omega=0.012,Omega=0.0164,l=10.18632) + sim.add(m=1e-7,a=7.24,e=0.22123,inc=0.3014,omega=0.4012,Omega=0.110164,l=2.18632) + + elems = (rebound.Particle * sim.N)() + p = ctypes.cast(elems,ctypes.POINTER(rebound.Particle)) + + c0 = getc(sim) + + cl = rebound.clibrebound + cl.reb_particles_transform_inertial_to_democraticheliocentric_posvel(sim._particles,p,sim.N,sim.N) + + for i in range(sim.N): + sim.particles[i].x = 1234. + sim.particles[i].vx = 1234. + cl.reb_particles_transform_democraticheliocentric_to_inertial_posvel(sim._particles,p,sim.N,sim.N) + + c1 = getc(sim) + + for i in range(len(c0)): + self.assertAlmostEqual(c0[i],c1[i],delta=1e-16) + + for i in range(sim.N): + sim.particles[i].x = 1234. + cl.reb_particles_transform_democraticheliocentric_to_inertial_pos(sim._particles,p,sim.N,sim.N) + + c1 = getc(sim) + + for i in range(len(c0)): + self.assertAlmostEqual(c0[i],c1[i],delta=1e-16) + + + def test_whds(self): + sim = rebound.Simulation() + sim.add(m=1.2354) + sim.add(m=0.1,a=1.24,e=0.123,inc=0.14,omega=0.12,Omega=0.64,l=0.632) + sim.add(m=0.01,a=5.24,e=0.2123,inc=0.014,omega=0.012,Omega=0.0164,l=10.18632) + sim.add(m=1e-7,a=7.24,e=0.22123,inc=0.3014,omega=0.4012,Omega=0.110164,l=2.18632) + + elems = (rebound.Particle * sim.N)() + p = ctypes.cast(elems,ctypes.POINTER(rebound.Particle)) + + c0 = getc(sim) + + cl = rebound.clibrebound + cl.reb_particles_transform_inertial_to_whds_posvel(sim._particles,p,sim.N,sim.N) + + for i in range(sim.N): + sim.particles[i].x = 1234. + sim.particles[i].vx = 1234. + cl.reb_particles_transform_whds_to_inertial_posvel(sim._particles,p,sim.N,sim.N) + + c1 = getc(sim) + + for i in range(len(c0)): + self.assertAlmostEqual(c0[i],c1[i],delta=1e-16) + + for i in range(sim.N): + sim.particles[i].x = 1234. + cl.reb_particles_transform_whds_to_inertial_pos(sim._particles,p,sim.N,sim.N) + + c1 = getc(sim) + + for i in range(len(c0)): + self.assertAlmostEqual(c0[i],c1[i],delta=1e-16) + + + def test_jacoobi(self): + sim = rebound.Simulation() + sim.add(m=1.2354) + sim.add(m=0.1,a=1.24,e=0.123,inc=0.14,omega=0.12,Omega=0.64,l=0.632) + sim.add(m=0.01,a=5.24,e=0.2123,inc=0.014,omega=0.012,Omega=0.0164,l=10.18632) + sim.add(m=1e-7,a=7.24,e=0.22123,inc=0.3014,omega=0.4012,Omega=0.110164,l=2.18632) + + elems = (rebound.Particle * sim.N)() + p = ctypes.cast(elems,ctypes.POINTER(rebound.Particle)) + + elemse = (ctypes.c_double * sim.N)() + + c0 = getc(sim) + + cl = rebound.clibrebound + + + cl.reb_particles_transform_inertial_to_jacobi_posvel(sim._particles,p,sim._particles,sim.N,sim.N) + + for i in range(sim.N): + sim.particles[i].x = 1234. + sim.particles[i].vx = 1234. + cl.reb_particles_transform_jacobi_to_inertial_posvel(sim._particles,p,sim._particles,sim.N,sim.N) + + c1 = getc(sim) + + for i in range(len(c0)): + self.assertAlmostEqual(c0[i],c1[i],delta=1e-16) + + for i in range(sim.N): + sim.particles[i].x = 1234. + cl.reb_particles_transform_jacobi_to_inertial_pos(sim._particles,p,sim._particles,sim.N,sim.N) + + c1 = getc(sim) + + for i in range(len(c0)): + self.assertAlmostEqual(c0[i],c1[i],delta=1e-16) + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_units.py b/rebound/source/rebound/tests/test_units.py new file mode 100644 index 0000000000000000000000000000000000000000..9b88f9628360a84beb942dd4269d005c4ccbbfe8 --- /dev/null +++ b/rebound/source/rebound/tests/test_units.py @@ -0,0 +1,66 @@ +import rebound +import unittest +import warnings + +class TestUnits(unittest.TestCase): + def setUp(self): + self.sim = rebound.Simulation() + + def tearDown(self): + self.sim = None + + def test_units_no_particle(self): + default_units = {'length':None, 'mass':None, 'time':None} + self.assertEqual(self.sim.units, default_units) + new_units = {'length':'au', 'mass':'msun', 'time': 'yr2pi'} + self.sim.units = ("au", "msun", "yr2pi") + self.assertEqual(self.sim.units, new_units) + + self.sim.add(m=1.) + with self.assertRaises(AttributeError): + self.sim.units = ("au", "kg", "yr2pi") + + def test_wrong_units(self): + with self.assertRaises(Exception): + self.sim.units = ("au", "yr2pi") + with self.assertRaises(Exception): + self.sim.units = ("au", "bogusunit", "yr2pi") + + def test_units_with_particle(self): + self.sim.units = ("au", "msun", "yr2pi") + self.sim.add(m=1.) + self.sim.add(m=1., x=1., vx=1.) + self.sim.convert_particle_units("au", "kg", "yr2pi") + self.assertAlmostEqual(self.sim.particles[0].m,1.9884754159665356e+30, delta=1e-15) + self.sim.convert_particle_units("m", "kg", "yr2pi") + self.assertAlmostEqual(self.sim.particles[1].x,149597870700.0, delta=1e-15) + self.sim.convert_particle_units("m", "kg", "s") + self.assertAlmostEqual(self.sim.particles[1].vx,29784.691834383168, delta=1e-15) + + def test_units_restore(self): + units = ["au", "msun", "yr2pi"] + self.sim.units = units + self.sim.save_to_file("test.bin",delete_file=True) + sim2 = rebound.Simulation("test.bin") + for i in ["length","time","mass"]: + self.assertEqual(sim2.units[i], self.sim.units[i]) + self.assertIsNotNone(sim2.units[i]) + + def test_units_restore(self): + units1 = ["au", "msun", "yr2pi"] + units2 = ["au", "mearth", "yr2pi"] + + sim1 = rebound.Simulation() + sim1.units = units1 + + sim2 = rebound.Simulation() + sim2.units = units2 + + sim1.add(m=1) + + with warnings.catch_warnings(record=True) as w: + sim2.add(sim1.particles[0]) + self.assertEqual(1, len(w)) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_variational.py b/rebound/source/rebound/tests/test_variational.py new file mode 100644 index 0000000000000000000000000000000000000000..dfe212f7d7384a022b1b673cd2c9d272979ae37f --- /dev/null +++ b/rebound/source/rebound/tests/test_variational.py @@ -0,0 +1,354 @@ +import rebound +import unittest +import math +import sys + +class TestVariationalRescale(unittest.TestCase): + def test_var_rescale_ias15(self): + sim = rebound.Simulation() + sim.integrator = "ias15" + sim.add(m=1.) # Star + sim.add(m=0.000954, a=5.204, M=0.600, omega=0.257, e=0.048) + sim.add(m=0.000285, a=7.2, M=0.871, omega=1.616, e=0.12) + sim.move_to_com() + + v = sim.add_variation() + v.particles[1].x = 1 + sim.integrate(2e5) + + self.assertGreater(v.lrescale, 100.0) + + def test_var_rescale_whfast(self): + sim = rebound.Simulation() + sim.integrator = "whfast" + sim.dt = 5. + sim.add(m=1.) # Star + sim.add(m=0.000954, a=5.204, M=0.600, omega=0.257, e=0.048) + sim.add(m=0.000285, a=7.2, M=0.871, omega=1.616, e=0.12) + sim.move_to_com() + + v = sim.add_variation() + v.particles[1].x = 1 + sim.integrate(4e5) + + self.assertGreater(v.lrescale, 100.0) + + def test_var_rescale_whfast_norescale(self): + sim = rebound.Simulation() + sim.integrator = "whfast" + sim.dt = 5. + sim.add(m=1.) # Star + sim.add(m=0.000954, a=5.204, M=0.600, omega=0.257, e=0.048) + sim.add(m=0.000285, a=7.2, M=0.871, omega=1.616, e=0.12) + sim.move_to_com() + + v = sim.add_variation() + v.particles[1].x = 1 + v.lrescale = -1 + sim.integrate(4e5) + + self.assertTrue(math.isnan(v.particles[1].x)) + self.assertEqual(v.lrescale, -1.0) + + def test_var_rescale_whfast_megno(self): + sim = rebound.Simulation() + sim.integrator = "whfast" + sim.dt = 5. + sim.add(m=1.) # Star + sim.add(m=0.000954, a=5.204, M=0.600, omega=0.257, e=0.048) + sim.add(m=0.000285, a=7.2, M=0.871, omega=1.616, e=0.12) + sim.move_to_com() + + sim.init_megno(seed=1) + sim2 = sim.copy() + sim2.var_config[0].lrescale = -1 + + sim.integrate(1.3e5) + sim2.integrate(1.3e5) + + if sys.maxsize > 2**32: # 64 bit + self.assertGreater(sim.var_config[0].lrescale, 100.0) + self.assertEqual(sim2.var_config[0].lrescale, -1.0) + self.assertAlmostEqual(sim2.megno(), sim.megno(), places=12) + + + + + + + +class TestVariational(unittest.TestCase): + paramlist = [ + (1e-3,1.,0.1,0.02,0.3,0.56,0.4), + (1e-6,2.,0.02,0.0132,0.33,1.56,0.14), + (234.3e-6,1.7567,0.561,0.572,0.573,2.56,0.354), + (1e-2,1.7567,0.1561,0.15472,0.24573,12.56,1.354), + (1e-7,3.7567,0.00061,0.23572,0.523473,2.56,3.354), + ] + paramkeys = ["m","a","e","inc","Omega","omega","f"] + def test_all_1st_order_full(self): + for params in self.paramlist: + for v in self.paramkeys: + Delta=1e-8 + + param = dict(zip(self.paramkeys, params)) + simvp = rebound.Simulation() + simvp.add(m=1.) + simvp.add(**param) + simvp.add(primary=simvp.particles[0],a=1.76, m=1e-3) + var_i = simvp.add_variation() + var_i.vary(1,v) + simvp.integrate(1.4) + + simsp = rebound.Simulation() + simsp.add(m=1.) + param[v] += Delta + simsp.add(**param) + simsp.add(primary=simsp.particles[0],a=1.76, m=1e-3) + simsp.integrate(1.4) + + prec = 1e-5 + dp = (simsp.particles[1]-simvp.particles[1])/Delta - var_i.particles[1] + self.assertLess(abs(dp.x ),prec) + self.assertLess(abs(dp.y ),prec) + self.assertLess(abs(dp.z ),prec) + self.assertLess(abs(dp.vx),prec) + self.assertLess(abs(dp.vy),prec) + self.assertLess(abs(dp.vz),prec) + self.assertLess(abs(dp.m ),prec) + + + + def test_all_2nd_order_full(self): + self.run_2nd_order_full(com=False) + def test_all_2nd_order_full_com(self): + self.run_2nd_order_full(com=True) + def run_2nd_order_full(self, com): + for params in self.paramlist: + for v1 in self.paramkeys: + for v2 in self.paramkeys: + param = dict(zip(self.paramkeys, params)) + simvp = rebound.Simulation() + simvp.add(m=1.) + simvp.add(**param) + simvp.add(primary=simvp.particles[0],a=1.76, m=1e-3) + var_ia = simvp.add_variation() + var_ib = simvp.add_variation() + var_ii = simvp.add_variation(order=2,first_order=var_ia,first_order_2=var_ib) + var_ia.vary(1, v1) + var_ib.vary(1, v2) + var_ii.vary(1, v1, v2) + if com: + simvp.move_to_com() + simvp.integrate(1.4) + + Delta = 1e-5 + + param = dict(zip(self.paramkeys, params)) + simpp = rebound.Simulation() + simpp.add(m=1.) + param[v1] += Delta + param[v2] += Delta + simpp.add(**param) + simpp.add(primary=simpp.particles[0],a=1.76, m=1e-3) + if com: + simpp.move_to_com() + simpp.integrate(1.4) + + param = dict(zip(self.paramkeys, params)) + simpm = rebound.Simulation() + simpm.add(m=1.) + param[v1] += Delta + param[v2] -= Delta + simpm.add(**param) + simpm.add(primary=simpm.particles[0],a=1.76, m=1e-3) + if com: + simpm.move_to_com() + simpm.integrate(1.4) + + param = dict(zip(self.paramkeys, params)) + simmp = rebound.Simulation() + simmp.add(m=1.) + param[v1] -= Delta + param[v2] += Delta + simmp.add(**param) + simmp.add(primary=simmp.particles[0],a=1.76, m=1e-3) + if com: + simmp.move_to_com() + simmp.integrate(1.4) + + param = dict(zip(self.paramkeys, params)) + simmm = rebound.Simulation() + simmm.add(m=1.) + param[v1] -= Delta + param[v2] -= Delta + simmm.add(**param) + simmm.add(primary=simmm.particles[0],a=1.76, m=1e-3) + if com: + simmm.move_to_com() + simmm.integrate(1.4) + + prec = 1e-4 + + dp = (simpp.particles[1]-simpm.particles[1]-simmp.particles[1]+simmm.particles[1])/(Delta*Delta*4.) - var_ii.particles[1] + + self.assertLess(abs(dp.x),prec) + self.assertLess(abs(dp.y),prec) + self.assertLess(abs(dp.z),prec) + self.assertLess(abs(dp.vx),prec) + self.assertLess(abs(dp.vy),prec) + self.assertLess(abs(dp.vz),prec) + self.assertLess(abs(dp.m),prec) + +class TestVariationalPal(TestVariational): + paramkeys = ["m","a","h","k","l","ix","iy"] + paramlist = [ + [1e-3, 1., 0., 0., 0., 0.0, 0.0], + [1e-3, 1., 0.1, 0.02, 0.3, 0.0, 0.0], + [1e-6, 2., 0.02, 0.0132, 0.33, 0.126, 0.14], + [234.3e-6, 1.7567, 0.561, 0.572, 0.573, 0.056, 0.0091354], + [1e-2, 1.7567, 0.1561, 0.15472,0.24573, 0.0056, 0.0013], + [1e-7, 3.7567, 0.00061,0.23572,0.523473, 0.47256, 0.000024], + [1e-7, 3.7567, 0.00061,0.23572,0.523473, 1.97, 0.0], + [1e-7, 3.7567, 0.00061,0.23572,0.523473, 0.0, 1.97], + ] + + +class TestVariationalTestParticle(unittest.TestCase): + paramlist = [ + (1.,0.1,0.02,0.3,0.56,0.4), + (2.,0.02,0.0132,0.33,1.56,0.14), + (1.7567,0.561,0.572,0.573,2.56,0.354), + (1.7567,0.1561,0.15472,0.24573,12.56,1.354), + (3.7567,0.00061,0.23572,0.523473,2.56,3.354), + ] + paramkeys = ["a","e","inc","Omega","omega","f"] + def test_all_1st_order_full(self): + for params in self.paramlist: + for v in self.paramkeys: + Delta=1e-8 + + param = dict(zip(self.paramkeys, params)) + simvp = rebound.Simulation() + simvp.add(m=1.) + simvp.add(**param) + simvp.add(primary=simvp.particles[0],a=1.76, m=1e-3) + var_i = simvp.add_variation(testparticle=1) + var_i.vary(1,v) + simvp.integrate(1.4) + + simsp = rebound.Simulation() + simsp.add(m=1.) + param[v] += Delta + simsp.add(**param) + simsp.add(primary=simsp.particles[0],a=1.76, m=1e-3) + simsp.integrate(1.4) + + prec = 1e-5 + dp = (simsp.particles[1]-simvp.particles[1])/Delta - var_i.particles[0] + self.assertLess(abs(dp.x ),prec) + self.assertLess(abs(dp.y ),prec) + self.assertLess(abs(dp.z ),prec) + self.assertLess(abs(dp.vx),prec) + self.assertLess(abs(dp.vy),prec) + self.assertLess(abs(dp.vz),prec) + self.assertLess(abs(dp.m ),prec) + + + + def test_all_2nd_order_full(self): + self.run_2nd_order_full(com=False) + def test_all_2nd_order_full_com(self): + self.run_2nd_order_full(com=True) + def run_2nd_order_full(self, com): + for params in self.paramlist: + for v1 in self.paramkeys: + for v2 in self.paramkeys: + param = dict(zip(self.paramkeys, params)) + simvp = rebound.Simulation() + simvp.add(m=1.) + simvp.add(**param) + simvp.add(primary=simvp.particles[0],a=1.76, m=1e-3) + var_ia = simvp.add_variation(testparticle=1) + var_ib = simvp.add_variation(testparticle=1) + var_ii = simvp.add_variation(order=2,first_order=var_ia,first_order_2=var_ib,testparticle=1) + var_ia.vary(1, v1) + var_ib.vary(1, v2) + var_ii.vary(1, v1, v2) + if com: + simvp.move_to_com() + simvp.integrate(1.4) + + Delta = 1e-5 + + param = dict(zip(self.paramkeys, params)) + simpp = rebound.Simulation() + simpp.add(m=1.) + param[v1] += Delta + param[v2] += Delta + simpp.add(**param) + simpp.add(primary=simpp.particles[0],a=1.76, m=1e-3) + if com: + simpp.move_to_com() + simpp.integrate(1.4) + + param = dict(zip(self.paramkeys, params)) + simpm = rebound.Simulation() + simpm.add(m=1.) + param[v1] += Delta + param[v2] -= Delta + simpm.add(**param) + simpm.add(primary=simpm.particles[0],a=1.76, m=1e-3) + if com: + simpm.move_to_com() + simpm.integrate(1.4) + + param = dict(zip(self.paramkeys, params)) + simmp = rebound.Simulation() + simmp.add(m=1.) + param[v1] -= Delta + param[v2] += Delta + simmp.add(**param) + simmp.add(primary=simmp.particles[0],a=1.76, m=1e-3) + if com: + simmp.move_to_com() + simmp.integrate(1.4) + + param = dict(zip(self.paramkeys, params)) + simmm = rebound.Simulation() + simmm.add(m=1.) + param[v1] -= Delta + param[v2] -= Delta + simmm.add(**param) + simmm.add(primary=simmm.particles[0],a=1.76, m=1e-3) + if com: + simmm.move_to_com() + simmm.integrate(1.4) + + prec = 1e-4 + + dp = (simpp.particles[1]-simpm.particles[1]-simmp.particles[1]+simmm.particles[1])/(Delta*Delta*4.) - var_ii.particles[0] + + self.assertLess(abs(dp.x),prec) + self.assertLess(abs(dp.y),prec) + self.assertLess(abs(dp.z),prec) + self.assertLess(abs(dp.vx),prec) + self.assertLess(abs(dp.vy),prec) + self.assertLess(abs(dp.vz),prec) + self.assertLess(abs(dp.m),prec) + +class TestVariationalPalTestParticle(TestVariationalTestParticle): + paramkeys = ["a","h","k","l","ix","iy"] + paramlist = [ + [1., 0., 0., 0., 0.0, 0.0], + [1., 0.1, 0.02, 0.3, 0.0, 0.0], + [2., 0.02, 0.0132, 0.33, 0.126, 0.14], + [1.7567, 0.561, 0.572, 0.573, 0.056, 0.0091354], + [1.7567, 0.1561, 0.15472,0.24573, 0.0056, 0.0013], + [3.7567, 0.00061,0.23572,0.523473, 0.47256, 0.000024], + [3.7567, 0.00061,0.23572,0.523473, 1.97, 0.0], + [3.7567, 0.00061,0.23572,0.523473, 0.0, 1.97], + ] + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_whfast.py b/rebound/source/rebound/tests/test_whfast.py new file mode 100644 index 0000000000000000000000000000000000000000..cd5f55935c086582c23100d7d5f717252b5eba4b --- /dev/null +++ b/rebound/source/rebound/tests/test_whfast.py @@ -0,0 +1,355 @@ +import rebound +import unittest +import math +import rebound.data +import warnings + + +class TestIntegratorWHFast(unittest.TestCase): + # WHDS + def test_whfastwhds_outersolarsystem(self): + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "whds" + sim.dt = 0.005*12.*2.*3.1415 # ~ 1/200 of a jupiter year + e0 = sim.energy() + sim.integrate(1000.*2.*3.1415) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),2.4e-8) + + # Jacobi + def test_whfast_outersolarsystem(self): + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "jacobi" + sim.dt = 0.005*12.*2.*3.1415 # ~ 1/200 of a jupiter year + e0 = sim.energy() + sim.integrate(1000.*2.*3.1415) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),2.4e-8) + + def test_whfast_veryhyperbolic(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=0.,x=1.,vy=100000.) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "jacobi" + sim.dt = 1.234567 + sim.step() + y = sim.particles[1].y + ys = 1.234567*100000. + self.assertAlmostEqual((y-ys)/ys, 0., delta=1e-15) + + def test_whfast_hyperbolic(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3, a=-1.,e=2.5) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "jacobi" + e0 = sim.energy() + yr = -sim.particles[1].P + sim.dt = 0.00512*yr + sim.integrate(1e2*yr) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1e-14) + + def test_whfast(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3, a=1.,e=.1) + sim.add(m=1e-3, a=3.,e=0.1) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "jacobi" + jupyr = 2.*math.pi + sim.dt = 0.005123*jupyr + e0 = sim.energy() + sim.integrate(1e3*jupyr) + self.assertNotEqual(e0,0.) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1.2e-8) + + def test_whfast_nosafemode(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3, a=1.,e=.1) + sim.add(m=1e-3, a=3.,e=0.1) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + sim.ri_whfast.safe_mode = 0 + jupyr = 2.*math.pi + sim.dt = 0.005123*jupyr + e0 = sim.energy() + sim.integrate(1e3*jupyr) + self.assertNotEqual(e0,0.) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),3e-8) + + # Democratic Heliocentric + def test_order_doesnt_matter_tp0(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 0 + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(1000) + self.assertEqual(1,len(w)) + + o1 = sim.particles[1].orbit(primary=sim.particles[0]) + o2 = sim.particles[2].orbit(primary=sim.particles[0]) + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 0 + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim.integrate(1000) + self.assertEqual(1,len(w)) + + o3 = sim.particles[1].orbit(primary=sim.particles[0]) + o4 = sim.particles[2].orbit(primary=sim.particles[0]) + + self.assertLess(abs(o1.e-o4.e),2e-16) + self.assertLess(abs(o2.e-o3.e),2e-16) + self.assertLess(abs(o1.a-o4.a),2e-16) + self.assertLess(abs(o2.a-o3.a),2e-16) + + def test_order_doesnt_matter_tp1(self): + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 1 + + sim.integrate(1000) + + o1 = sim.particles[1].orbit(primary=sim.particles[0]) + o2 = sim.particles[2].orbit(primary=sim.particles[0]) + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 1e-2*2.*3.14 + sim.N_active = 1 + sim.testparticle_type = 1 + + sim.integrate(1000) + + o3 = sim.particles[1].orbit(primary=sim.particles[0]) + o4 = sim.particles[2].orbit(primary=sim.particles[0]) + + self.assertLess(abs(o1.e-o4.e),4e-14) + self.assertLess(abs(o2.e-o3.e),1e-13) + self.assertLess(abs(o1.a-o4.a),7e-14) + self.assertLess(abs(o2.a-o3.a),4e-14) + + def test_testparticle_type_one(self): + # Testparticle type 1 with only 1 semi-active particle + # should be the same as having only active particles + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 1e-2*2.*3.14 + sim.N_active = sim.N-1 + sim.testparticle_type = 1 + + sim.integrate(1000) + + o1 = sim.particles[1].orbit(primary=sim.particles[0]) + o2 = sim.particles[2].orbit(primary=sim.particles[0]) + + + sim = rebound.Simulation() + sim.add(m=1) + sim.add(m=1e-3,a=1.1,e=0.1,primary=sim.particles[0]) + sim.add(m=5e-3,a=1.0,e=0.1,primary=sim.particles[0]) + + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 1e-2*2.*3.14 + + sim.integrate(1000) + + o3 = sim.particles[1].orbit(primary=sim.particles[0]) + o4 = sim.particles[2].orbit(primary=sim.particles[0]) + + self.assertLess(abs(o1.e-o3.e),2e-16) + self.assertLess(abs(o2.e-o4.e),2e-16) + self.assertLess(abs(o1.a-o3.a),2e-16) + self.assertLess(abs(o2.a-o4.a),2e-16) + + def test_whfasthelio_outersolarsystem(self): + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 0.005*12.*2.*3.1415 # ~ 1/200 of a jupiter year + e0 = sim.energy() + sim.integrate(1000.*2.*3.1415) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1.2e-8) + + def test_whfasthelio_veryhyperbolic(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=0.,x=1.,vy=100000.) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + sim.dt = 1.234567 + sim.step() + y = sim.particles[1].y + ys = 1.234567*100000. + self.assertAlmostEqual((y-ys)/ys, 0., delta=1e-15) + + def test_whfasthelio_hyperbolic(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3, a=-1.,e=2.5) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + e0 = sim.energy() + yr = -sim.particles[1].P + sim.dt = 0.00512*yr + sim.integrate(1e2*yr) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),4.5e-8) + + def test_whfasthelio(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3, a=1.,e=.1) + sim.add(m=1e-3, a=3.,e=0.1) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + jupyr = 2.*math.pi + sim.dt = 0.005123*jupyr + e0 = sim.energy() + sim.integrate(1e3*jupyr) + self.assertNotEqual(e0,0.) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),2.9e-8) + + def test_whfasthelio_orderdoesnotmatter(self): + jupyr = 2.*math.pi + + sim1 = rebound.Simulation() + sim1.add(m=1.) + sim1.add(m=1e-3, a=1.,e=0.1,primary=sim1.particles[0]) + sim1.add(m=1e-3, a=3.,e=0.1,primary=sim1.particles[0]) + sim1.integrator = "whfast" + sim1.ri_whfast.coordinates = "democraticheliocentric" + sim1.dt = 0.005123*jupyr + sim1.integrate(1e0*jupyr) + sim2 = rebound.Simulation() + sim2.add(m=1.) + sim2.add(m=1e-3, a=3.,e=0.1,primary=sim2.particles[0]) + sim2.add(m=1e-3, a=1.,e=0.1,primary=sim2.particles[0]) + sim2.integrator = "whfast" + sim2.ri_whfast.coordinates = "democraticheliocentric" + sim2.dt = 0.005123*jupyr + sim2.integrate(1e0*jupyr) + + self.assertAlmostEqual(sim1.particles[1].x, sim2.particles[2].x, delta=1e-14) + self.assertAlmostEqual(sim1.particles[1].y, sim2.particles[2].y, delta=1e-14) + self.assertAlmostEqual(sim1.particles[2].x, sim2.particles[1].x, delta=1e-14) + self.assertAlmostEqual(sim1.particles[2].y, sim2.particles[1].y, delta=1e-14) + + + def test_whfasthelio_nosafemode(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3, a=1.,e=.1) + sim.add(m=1e-3, a=3.,e=0.1) + sim.integrator = "whfast" + sim.ri_whfast.coordinates = "democraticheliocentric" + sim.ri_whfast.safe_mode = 0 + jupyr = 2.*math.pi + sim.dt = 0.005123*jupyr + e0 = sim.energy() + sim.integrate(1e3*jupyr) + self.assertNotEqual(e0,0.) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),2.9e-8) + + +class TestIntegratorWHFastBackAndForth(unittest.TestCase): + def test_whfast_hyperbolic(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3, a=-1.,e=2.5,omega=0.3,Omega=0.4,inc=0.1) + x0 = sim.particles[1].x + v0 = sim.particles[1].vx + sim.integrator = "whfast" + e0 = sim.energy() + yr = -sim.particles[1].P + sim.dt = 0.0512*yr + for i in range(100): + sim.step() + sim.dt *= -1 + for i in range(100): + sim.step() + x1 = sim.particles[1].x + v1 = sim.particles[1].vx + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1e-14) + self.assertLess(math.fabs((x0-x1)/x1),1e-14) + self.assertLess(math.fabs((v0-v1)/v1),1e-14) + + def test_whfast_eccentric(self): + sim = rebound.Simulation() + sim.add(m=1.) + sim.add(m=1e-3, a=1.4,e=0.0125,omega=0.3,Omega=0.4,inc=0.1) + x0 = sim.particles[1].x + v0 = sim.particles[1].vx + sim.integrator = "whfast" + e0 = sim.energy() + yr = sim.particles[1].P + sim.dt = 0.0512*yr + for i in range(100): + sim.step() + sim.dt *= -1 + for i in range(100): + sim.step() + x1 = sim.particles[1].x + v1 = sim.particles[1].vx + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),1e-13) + self.assertLess(math.fabs((x0-x1)/x1),1e-13) + self.assertLess(math.fabs((v0-v1)/v1),1e-13) + + + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_whfast_advanced.py b/rebound/source/rebound/tests/test_whfast_advanced.py new file mode 100644 index 0000000000000000000000000000000000000000..1b6d3216a9c32b60c84d7fcb5efd24184b079d88 --- /dev/null +++ b/rebound/source/rebound/tests/test_whfast_advanced.py @@ -0,0 +1,174 @@ +import rebound +import unittest +import math +import rebound.data + +whfastsettings1 = [ # corrector, corrector2, kernel, relative error + [0, 0,"default",2e-7], + [3, 0,"default",1e-9], + [5, 0,"default",1e-9], + [7, 0,"default",1e-9], + [11,0,"default",1e-9], + [17,0,"default",1e-9], + [0, 0,"modifiedkick",2e-7], + [3, 0,"modifiedkick",1e-9], + [5, 0,"modifiedkick",1e-11], + [7, 0,"modifiedkick",1e-12], + [11,0,"modifiedkick",1e-12], + [17,0,"modifiedkick",1e-12], + [17,0,"composition",1e-12], + [17,0,"lazy",1e-12], + [11,1,"modifiedkick",1e-12], + ] + +whfastsettings2 = [ # corrector, corrector2, kernel, relative error + [0, 0,"default",2e-7], + [3, 0,"modifiedkick",1e-9], + [3, 0,"composition",1e-12], + [3, 0,"default",1e-9], + [3, 0,"lazy",1e-12], + [3, 1,"lazy",1e-12], + ] + +class TestIntegratorWHFastAdvanced(unittest.TestCase): + def energy(self, s): + corrector, corrector2, kernel, maxerror = s + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + sim.integrator = "whfast" + sim.ri_whfast.corrector = corrector + sim.ri_whfast.corrector2 = corrector2 + sim.ri_whfast.kernel = kernel + sim.ri_whfast.safe_mode = False + sim.dt = 0.0123235235*sim.particles[1].P + e0 = sim.energy() + sim.integrate(1000.*2.*3.1415) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),maxerror) + + def energy_notcom(self, s): + corrector, corrector2, kernel, maxerror = s + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + for p in sim.particles: + p.vx += 1. + com = sim.com() + sim.integrator = "whfast" + sim.ri_whfast.corrector = corrector + sim.ri_whfast.corrector2 = corrector2 + sim.ri_whfast.kernel = kernel + sim.dt = 0.0123235235*sim.particles[1].P + e0 = sim.energy() + sim.integrate(1000.*2.*3.1415) + e1 = sim.energy() + self.assertLess(math.fabs((e0-e1)/e1),maxerror) + com1 = sim.com() + self.assertLess(math.fabs((com.x+com.vx*sim.t-com1.x)/(com1.x+com1.y)),1e-12) + self.assertLess(math.fabs((com.y+com.vy*sim.t-com1.y)/(com1.x+com1.y)),1e-12) + + def compias(self, s): + corrector, corrector2, kernel, maxerror = s + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + for p in sim.particles: + p.vx += 1050. # move out of com to make it harder + sim.integrator = "whfast" + sim.ri_whfast.corrector = corrector + sim.ri_whfast.corrector2 = corrector2 + sim.ri_whfast.kernel = kernel + sim.dt = 0.0123235235*sim.particles[1].P + sim.integrate(13.21415,exact_finish_time=False) + + simi = rebound.Simulation() + simi.integrator = "ias15" + rebound.data.add_outer_solar_system(simi) + for p in simi.particles: + p.vx += 1050. + simi.integrate(sim.t,exact_finish_time=True) + + for i in range(sim.N): + if corrector: + self.assertLess(math.fabs(simi.particles[i].x-sim.particles[i].x),1e-8) + else: # less accurate + self.assertLess(math.fabs(simi.particles[i].x-sim.particles[i].x),2e-7) + + def backandforth(self, s): + corrector, corrector2, kernel, maxerror = s + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + for p in sim.particles: + p.vx += 1. + sim0=sim.copy() + sim.integrator = "whfast" + sim.ri_whfast.corrector = corrector + sim.ri_whfast.corrector2 = corrector2 + sim.ri_whfast.kernel = kernel + sim.dt = 0.0123235235*sim.particles[1].P + steps = 10 + for i in range(steps): + sim.step() + sim.dt *= -1 + for i in range(steps): + sim.step() + for i in range(sim.N): + if corrector: + self.assertLess(math.fabs(sim0.particles[i].x-sim.particles[i].x),2e-11) + + def restart(self, s): + corrector, corrector2, kernel, maxerror = s + sim = rebound.Simulation() + rebound.data.add_outer_solar_system(sim) + sim.integrator = "whfast" + sim.ri_whfast.corrector = corrector + sim.ri_whfast.corrector2 = corrector2 + sim.ri_whfast.kernel = kernel + sim.step() + sim2 = sim.copy() + sim.step() + sim2.step() + self.assertEqual(sim,sim2) + +def create_test_whfastsettings1(s): + def doTest(self): + test_name = "test_energy_WHFastAdvanced_c_%02d_c2_%d_kernel_%s" % (s[0], s[1], s[2]) + self.energy(s) + test_name = "test_energy_notcom_WHFastAdvanced_c_%02d_c2_%d_kernel_%s" % (s[0], s[1], s[2]) + self.energy_notcom(s) + test_name = "test_compias_WHFastAdvanced_c_%02d_c2_%d_kernel_%s" % (s[0], s[1], s[2]) + self.compias(s) + return doTest + +def create_test_whfastsettings2_bf(s): + def doTest(self): + test_name = "test_backandforth_WHFastAdvanced_c_%02d_c2_%d_kernel_%s" % (s[0], s[1], s[2]) + self.backandforth(s) + return doTest + +def create_test_whfastsettings2_re(s): + def doTest(self): + test_name = "test_restart_WHFastAdvanced_c_%02d_c2_%d_kernel_%s" % (s[0], s[1], s[2]) + self.restart(s) + return doTest + +for s in whfastsettings1: + test_method = create_test_whfastsettings1(s) + test_method.__name__ = "test_whfastsettings1" + for k in s: + test_method.__name__ += "_"+str(k) + setattr(TestIntegratorWHFastAdvanced, test_method.__name__, test_method) + +for s in whfastsettings2: + test_method = create_test_whfastsettings2_bf(s) + test_method.__name__ = "test_whfastsettings2_backandforth" + for k in s: + test_method.__name__ += "_"+str(k) + setattr(TestIntegratorWHFastAdvanced, test_method.__name__, test_method) + + test_method = create_test_whfastsettings2_re(s) + test_method.__name__ = "test_whfastsettings2_restart" + for k in s: + test_method.__name__ += "_"+str(k) + setattr(TestIntegratorWHFastAdvanced, test_method.__name__, test_method) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tests/test_whfast_testparticles.py b/rebound/source/rebound/tests/test_whfast_testparticles.py new file mode 100644 index 0000000000000000000000000000000000000000..38ef8fec918d95329ef851071ae61bdbbd143620 --- /dev/null +++ b/rebound/source/rebound/tests/test_whfast_testparticles.py @@ -0,0 +1,178 @@ +import rebound +import unittest +import rebound.data +import warnings + +coordinatelist = ["democraticheliocentric","whds","jacobi","barycentric"] +class TestIntegratorWHFastTestParticle(unittest.TestCase): + pass + +def create_whfast_testparticle(coordinates, N, N_active): + def do_test(self): + sim = rebound.Simulation() + sim.ri_whfast.coordinates = coordinates + sim.integrator = "whfast" + sim.dt=1e-1 + sim.add(m=1) + for i in range(N): + sim.add(m=0,P=1,e=0.1,f=i) + + sim2 = sim.copy() + if N_active>0: + sim2.N_active = N_active + sim2.integrate(1) + + # some combinations can't do a simple keplerian orbit exactly (sad but true) + eps = 2e-14 + for i in range(sim.N): + self.assertLess(abs(sim.particles[i].x-sim2.particles[i].x),eps) + self.assertLess(abs(sim.particles[i].vx-sim2.particles[i].vx),eps) + self.assertLess(abs(sim.particles[i].y-sim2.particles[i].y),eps) + self.assertLess(abs(sim.particles[i].vy-sim2.particles[i].vy),eps) + + # all should be able to do this exactly + sim.integrate(1) + eps = 1e-16 + for i in range(sim.N): + self.assertLess(abs(sim.particles[i].x-sim2.particles[i].x),eps) + self.assertLess(abs(sim.particles[i].vx-sim2.particles[i].vx),eps) + self.assertLess(abs(sim.particles[i].y-sim2.particles[i].y),eps) + self.assertLess(abs(sim.particles[i].vy-sim2.particles[i].vy),eps) + return do_test + + +def create_whfast_testparticle_withplanet(coordinates, N, N_active): + def do_test(self): + eps = 1e-13 + sim = rebound.Simulation() + sim.integrator = "whfast" + sim.ri_whfast.coordinates = coordinates + sim.dt=1e-3 + sim.add(m=1) + sim.add(m=1e-3,P=0.4) + sim.add(m=1e-3,P=0.7) + for i in range(N): + sim.add(m=0,P=1,e=0.1,f=i) + + sim2 = sim.copy() + if N_active>0: + sim2.N_active = N_active + + sim2.integrate(1) + sim.integrate(1) + for i in range(sim.N): + self.assertLess(abs(sim.particles[i].x-sim2.particles[i].x),eps) + self.assertLess(abs(sim.particles[i].vx-sim2.particles[i].vx),eps) + self.assertLess(abs(sim.particles[i].y-sim2.particles[i].y),eps) + self.assertLess(abs(sim.particles[i].vy-sim2.particles[i].vy),eps) + return do_test + +def create_whfast_testparticletype1(coordinates, N_active): + def do_test(self): + eps = 1e-16 + sim = rebound.Simulation() + sim.ri_whfast.coordinates = coordinates + sim.testparticle_type = 1 + sim.integrator = "whfast" + sim.dt=1e-3 + sim.add(m=1) + sim.add(m=1e-3,P=1,e=0.1) + + sim2 = sim.copy() + if N_active>0: + sim2.N_active = N_active + sim2.integrate(1) + sim.integrate(1) + + for i in range(sim.N): + self.assertLess(abs(sim.particles[i].x-sim2.particles[i].x),eps) + self.assertLess(abs(sim.particles[i].vx-sim2.particles[i].vx),eps) + self.assertLess(abs(sim.particles[i].y-sim2.particles[i].y),eps) + self.assertLess(abs(sim.particles[i].vy-sim2.particles[i].vy),eps) + return do_test +def create_whfast_testparticletype1_withplanet(coordinates, N_active): + def do_test(self): + eps = 1e-16 + sim = rebound.Simulation() + sim.integrator = "whfast" + sim.ri_whfast.coordinates = coordinates + sim.testparticle_type = 1 + sim.dt=1e-3 + sim.add(m=1) + sim.add(m=1e-3,P=0.4) + sim.add(m=1e-3,P=0.7,e=0.1) + sim.add(m=1e-3,P=1.0) + + sim2 = sim.copy() + if N_active>0: + sim2.N_active = N_active + + sim2.integrate(1) + sim.integrate(1) + for i in range(sim.N): + self.assertLess(abs(sim.particles[i].x-sim2.particles[i].x),eps) + self.assertLess(abs(sim.particles[i].vx-sim2.particles[i].vx),eps) + self.assertLess(abs(sim.particles[i].y-sim2.particles[i].y),eps) + self.assertLess(abs(sim.particles[i].vy-sim2.particles[i].vy),eps) + return do_test + +## Testparticles with mass currently lead to unexpexted behaviour: +def create_whfast_massivetestparticle(coordinates, N): + def do_test(self): + eps = 2e-13 + sim = rebound.Simulation() + sim.ri_whfast.coordinates = coordinates + sim.integrator = "whfast" + sim.dt=1e-3 + sim.add(m=1) + sim.add(m=1e-3,P=0.4) + for i in range(N): + sim.add(m=0,P=1,e=0.1,f=i) + + sim2 = sim.copy() + for i in range(N): + sim2.particles[i+2].m = 1 # particles have zero mass for sim, but finite for sim2 + + sim2.N_active = 2 + + sim.integrate(1) + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + sim2.integrate(1) + self.assertEqual(1,len(w)) + + for i in range(sim.N): + self.assertLess(abs(sim.particles[i].x-sim2.particles[i].x),eps) + self.assertLess(abs(sim.particles[i].vx-sim2.particles[i].vx),eps) + self.assertLess(abs(sim.particles[i].y-sim2.particles[i].y),eps) + self.assertLess(abs(sim.particles[i].vy-sim2.particles[i].vy),eps) + return do_test + + +for N in [1,2]: + for coordinates in coordinatelist: + for N_active in [-1]+list(range(1,N+2)): + test_method = create_whfast_testparticle(coordinates,N, N_active) + test_method.__name__ = "test_whfast_testparticle_N%d_N_active%d_"%(N,N_active)+coordinates + setattr(TestIntegratorWHFastTestParticle, test_method.__name__, test_method) + + for N_active in [-1]+list(range(3,N+4)): + test_method = create_whfast_testparticle_withplanet(coordinates,N, N_active) + test_method.__name__ = "test_whfast_testparticle_withplanet_N%d_N_active%d_"%(N,N_active)+coordinates + setattr(TestIntegratorWHFastTestParticle, test_method.__name__, test_method) + test_method = create_whfast_massivetestparticle(coordinates,N) + test_method.__name__ = "test_whfast_massivetestparticle_N%d_"%(N)+coordinates + setattr(TestIntegratorWHFastTestParticle, test_method.__name__, test_method) + +for coordinates in coordinatelist: + for N_active in [-1,1]: + test_method = create_whfast_testparticletype1(coordinates, N_active) + test_method.__name__ = "test_whfast_testparticletype1_N_active%d_"%(N_active)+coordinates + setattr(TestIntegratorWHFastTestParticle, test_method.__name__, test_method) + for N_active in [-1,3]: + test_method = create_whfast_testparticletype1_withplanet(coordinates, N_active) + test_method.__name__ = "test_whfast_testparticletype1_withplanet_N_active%d_"%(N_active)+coordinates + setattr(TestIntegratorWHFastTestParticle, test_method.__name__, test_method) + +if __name__ == "__main__": + unittest.main() diff --git a/rebound/source/rebound/tools.py b/rebound/source/rebound/tools.py new file mode 100644 index 0000000000000000000000000000000000000000..8dea515fa704fe1b2660b8bec0f0bdeb2f5bd8b6 --- /dev/null +++ b/rebound/source/rebound/tools.py @@ -0,0 +1,77 @@ +from ctypes import c_double, byref +import rebound + +def mod2pi(x): + try: + x = float(x) + except: + ValueError("Argument of mod2pi needs to be a float.") + clibrebound.reb_mod2pi.restype = c_double + return clibrebound.reb_mod2pi(c_double(x)) + +def M_to_f(e, M): + try: + e = float(e) + M = float(M) + except: + ValueError("Arguments of M_to_f need to be floats.") + clibrebound.reb_M_to_f.restype = c_double + return clibrebound.reb_M_to_f(c_double(e), c_double(M)) + +def E_to_f(e, E): + try: + e = float(e) + E = float(E) + except: + ValueError("Arguments of E_to_f need to be floats.") + clibrebound.reb_E_to_f.restype = c_double + return clibrebound.reb_E_to_f(c_double(e), c_double(E)) + +def M_to_E(e, M): + try: + e = float(e) + M = float(M) + except: + ValueError("Arguments of M_to_E need to be floats.") + clibrebound.reb_M_to_E.restype = c_double + return clibrebound.reb_M_to_E(c_double(e), c_double(M)) + +def spherical_to_xyz(magnitude=1., theta=0., phi=0.): + """Initialize Cartesian vector from its magnitude and two spherical angles theta (polar angle measured from z) and phi (azimuthal angle measured from x) + + Arguments + --------- + magnitude: float + Magnitude of the vector + theta: float + Polar angle of the vector, i.e. measured from the z axis + phi: float + Azimuthal angle of the vector, i.e. measured counterclockwise from the x axis + + Returns + ------- + List of [x,y,z] components + """ + clibrebound.reb_tools_spherical_to_xyz.restype = rebound.Vec3dBasic + xyz = clibrebound.reb_tools_spherical_to_xyz(c_double(magnitude), c_double(theta), c_double(phi)) + return rebound.Vec3d(xyz) + +def xyz_to_spherical(vector): + """Return spherical angle theta measured from z axis + + Arguments + --------- + vector: List-like (e.g., list, numpy array) + 3D Cartesian vector to convert to spherical coordinates + + Returns + ------- + List [magnitude, theta, phi] of vector magnitude, polar angle theta (from z axis) and azimuthal angle phi (from x axis) + """ + magnitude = c_double() + theta = c_double() + phi = c_double() + clibrebound.reb_tools_xyz_to_spherical(rebound.Vec3d(vector)._vec3d, byref(magnitude), byref(theta), byref(phi)) + return magnitude.value, theta.value, phi.value + +from . import clibrebound diff --git a/rebound/source/rebound/units.py b/rebound/source/rebound/units.py new file mode 100644 index 0000000000000000000000000000000000000000..0932d1bb1fb9b168f1104091d2792c597a9fd4f1 --- /dev/null +++ b/rebound/source/rebound/units.py @@ -0,0 +1,123 @@ +# Unit constants +import math +from . import clibrebound +from ctypes import c_char_p, c_uint32 + +def hash_to_unit(hash): + clibrebound.reb_hash.restype = c_uint32 + for u in times_SI.keys(): + uhash = clibrebound.reb_hash(c_char_p(u.encode("ascii"))) + if uhash == hash: + return u + for u in masses_SI.keys(): + uhash = clibrebound.reb_hash(c_char_p(u.encode("ascii"))) + if uhash == hash: + return u + for u in lengths_SI.keys(): + uhash = clibrebound.reb_hash(c_char_p(u.encode("ascii"))) + if uhash == hash: + return u + return None + +# All units entered in SI (kg, m, s) +G_SI = 6.67408e-11 +times_SI = {'s':1., + 'hr':3600., + 'day': 86400., + 'days': 86400., + 'd': 86400., + 'yr':31557600., # Julian year (exact) + 'year':31557600., + 'years':31557600., + 'yrs':31557600., + 'jyr':31557600., + 'sidereal_yr':31558149.7635, + 'yr2pi':math.sqrt(149597870700.**3/1.3271244004193938e20), # chosen to make G=1 + 'kyr':31557600.*1.e3, + 'myr':31557600.*1.e6, + 'gyr':31557600.*1.e9} +lengths_SI = {'m':1., + 'cm':0.01, + 'km':1000., + 'au':149597870700., + 'aus':149597870700., + 'pc':3.085677581e16, + 'parsec':3.085677581e16 + } + + #What we measure accurately is GM, so set mass units such that G*M gives the value of GM in horizons.py (in the list at the end of horizons.py, the NAIF codes ending in 99 refer to the planets, single digits to the total mass of the planet plus its moons). Have to multiply by 10**9 since that list has G in kg^-1km^3/s^2 and we use SI. + +masses_SI = {'kg':1., + 'g':1.0e-3, + 'gram':1.0e-3, + 'msun':1.3271244004193938E+11/G_SI*10**9, + 'solarmass':1.3271244004193938E+11/G_SI*10**9, + 'sunmass':1.3271244004193938E+11/G_SI*10**9, + 'msolar':1.3271244004193938E+11/G_SI*10**9, + 'mmercury':2.2031780000000021E+04/G_SI*10**9, + 'mvenus':3.2485859200000006E+05/G_SI*10**9, + 'mearth':3.9860043543609598E+05/G_SI*10**9, + 'mmars':4.282837362069909E+04/G_SI*10**9, + 'mjupiter':1.266865349218008E+08/G_SI*10**9, + 'msaturn':3.793120749865224E+07/G_SI*10**9, + 'muranus':5.793951322279009E+06/G_SI*10**9, + 'mneptune':6.835099502439672E+06/G_SI*10**9, + 'mpluto':8.696138177608748E+02/G_SI*10**9, + 'massist':4.48485856027459e+14/G_SI*10**9, # Sun has mass 0.00029591220828412 in these units. Used to keep G=1 while length=AU and time=day + } + + +def units_convert_particle(p, old_l, old_t, old_m, new_l, new_t, new_m): + p.m = convert_mass(p.m, old_m, new_m) + p.x = convert_length(p.x, old_l, new_l) + p.y = convert_length(p.y, old_l, new_l) + p.z = convert_length(p.z, old_l, new_l) + p.r = convert_length(p.r, old_l, new_l) + p.vx = convert_vel(p.vx, old_l, old_t, new_l, new_t) + p.vy = convert_vel(p.vy, old_l, old_t, new_l, new_t) + p.vz = convert_vel(p.vz, old_l, old_t, new_l, new_t) + p.ax = convert_acc(p.ax, old_l, old_t, new_l, new_t) + p.ay = convert_acc(p.ay, old_l, old_t, new_l, new_t) + p.az = convert_acc(p.az, old_l, old_t, new_l, new_t) + return p + +def convert_mass(mass, old_m, new_m): + return mass*masses_SI[old_m]/masses_SI[new_m] + +def convert_length(length, old_l, new_l): + return length*lengths_SI[old_l]/lengths_SI[new_l] + +def convert_vel(vel, old_l, old_t, new_l, new_t): + in_SI=vel*lengths_SI[old_l]/times_SI[old_t] + return in_SI*times_SI[new_t]/lengths_SI[new_l] + +def convert_acc(acc, old_l, old_t, new_l, new_t): + in_SI=acc*lengths_SI[old_l]/times_SI[old_t]**2 + return in_SI*times_SI[new_t]**2/lengths_SI[new_l] + +def convert_G(newunits): + new_l, new_t, new_m = newunits + return G_SI*masses_SI[new_m]*times_SI[new_t]**2/lengths_SI[new_l]**3 + +def check_units(newunits): + if len(newunits) != 3: + raise Exception("Error: Need to pass exactly 3 units for length, time, and mass (any order), see ipython_examples/Units.ipynb") + + if isinstance(newunits, dict): + # keys are not important as they are inferred from the values anyway + newunits = newunits.values() + + l_unit = t_unit = m_unit = None + for unit in newunits: + unit = unit.lower() + if unit in lengths_SI: + l_unit = unit + if unit in times_SI: + t_unit = unit + if unit in masses_SI: + m_unit = unit + + if l_unit is None or t_unit is None or m_unit is None: + raise Exception("Error: Need to assign rebound.units a tuple consisting of 3 units for length, time, and mass (any order). See ipython/examples/Units.ipynb. If you passed such a tuple, at least one of your units isn't in our list. Please update the dictionaries at the top of rebound/rebound/units.py and send a pull request!") + + return (l_unit, t_unit, m_unit) diff --git a/rebound/source/rebound/variation.py b/rebound/source/rebound/variation.py new file mode 100644 index 0000000000000000000000000000000000000000..5b54f2aa78364b57658987e5af080640356cbce6 --- /dev/null +++ b/rebound/source/rebound/variation.py @@ -0,0 +1,152 @@ +import ctypes +from . import GenericError +from .particle import Particle +from .simulation import Simulation + +class Variation(ctypes.Structure): + """ + REBOUND Variational Configuration Object. + + This object encapsulated the configuration of one set of variational + equations in a REBOUND simulation. It is an abstraction of the + C struct reb_variational_configuration. + + None of the fields in this struct should be changed after it has + been initialized. + + One rebound simulation can include any number of first and second order + variational equations. + + Note that variations are only encoded as particles for convenience. + A variational particle's position and velocity should be interpreted as a derivative, i.e. how much that position or velocity varies with respect to the first or second-order variation. + See ipython_examples/VariationalEquations.ipynb and Rein and Tamayo (2016) for details. + + Examples + -------- + + >>> sim = rebound.Simulation() # Create a simulation + >>> sim.add(m=1.) # Add a star + >>> sim.add(m=1.e-3, a=1.) # a planet + >>> var_config = sim.add_variation() # Add a set of variational equations. + >>> var_config.particles[1].x = 1. # Initialize the variational particle corresponding to the planet + >>> sim.integrate(100.) # Integrate the simulation + >>> print(var_config.particles[0].vx) # Print the velocity of the variational particle corresponding to the star + """ + _fields_ = [ + ("_sim", ctypes.POINTER(Simulation)), + ("order", ctypes.c_int), + ("index", ctypes.c_int), + ("testparticle", ctypes.c_int), + ("index_1st_order_a", ctypes.c_int), + ("index_1st_order_b", ctypes.c_int), + ("_lrescale", ctypes.c_double)] + + def vary(self, particle_index, variation, variation2=None, primary=None): + """ + This function can be used to initialize the variational particles that are + part of a Variation. + + Note that rather than using this convenience function, one can + also directly manipulate the particles' coordinate using the following + syntax: + + >>> var = sim.add_variation() + >>> var.particles[0].x = 1. + + The ``vary()`` function is useful for initializing variations corresponding to + changes in one of the orbital parameters for a particle on a bound + Keplerian orbit. + + The function supports both first and second order variations in the following + classical orbital parameters: + a, e, inc, omega, Omega, f + as well as the Pal (2009) coordinates: + a, h, k, ix, iy, lambda + and in both cases the mass m of the particle. The advantage of the Pal coordinate + system is that all derivatives are well behaved (infinitely differentiable). + Classical orbital parameters on the other hand exhibit coordinate singularities, + for example when e=0. + + The following example initializes the variational particles corresponding to a + change in the semi-major axis of the particle with index 1: + + >>> var = sim.add_variation() + >>> var.vary(1,"a") + + Parameters + ---------- + particle_index : int + The index of the particle that should be varied. The index starts at 0 and runs through N-1. The first particle added to a simulation receives the index 0, the second 1, and the on. + variation : string + This parameter determines which orbital parameter is varied. + variation2: string, optional + This is only used for second order variations which can depend on two varying parameters. If omitted, then it is assumed that the parameter variation is variation2. + primary: Particle, optional + By default, variational particles are created in the Heliocentric frame. + Set this parameter to use any other particles as a primary (e.g. the center of mass). + """ + if self.order==2 and variation2 is None: + variation2 = variation + if self._sim is not None: + sim = self._sim.contents + particles = sim.particles + else: + raise RuntimeError("Something went wrong. Cannot seem to find simulation corresponding to variation.") + if self.testparticle >= 0: + particles[self.index] = Particle(simulation=sim,particle=particles[particle_index], variation=variation, variation2=variation2, primary=primary) + else: + particles[self.index + particle_index] = Particle(simulation=sim,particle=particles[particle_index], variation=variation, variation2=variation2, primary=primary) + + @property + def particles(self): + """ + Access the variational particles corresponding to this set of variational equations. + + The function returns a list of particles which are sorted in the same way as those in + sim.particles + + The particles are pointers and thus can be modified. + + If there are N real particles, this function will also return a list of N particles (all of which are + variational particles). + """ + sim = self._sim.contents + ps = [] + if self.testparticle>=0: + N = 1 + else: + N = sim.N-sim.N_var + + ParticleList = Particle*N + ps = ParticleList.from_address(ctypes.addressof(sim._particles.contents)+self.index*ctypes.sizeof(Particle)) + return ps + + @property + def lrescale(self): + """ + Access the lrescale parameter. + + This is a property because sim.add_variation() returns a copy of the struct, so need to find up-to-date reb_variational_configuration struct in simulation. + """ + sim = self._sim.contents + for i in range(sim.N_var_config): + if sim.var_config[i].index == self.index: + return sim.var_config[i]._lrescale + raise GenericError("An error occured while trying to find variational struct in simulation.") + + @lrescale.setter + def lrescale(self, value): + """ + Set the lrescale parameter. + + This is a property because sim.add_variation() returns a copy of the struct, so need to find up-to-date reb_variational_configuration struct in simulation. + """ + sim = self._sim.contents + for i in range(sim.N_var_config): + if sim.var_config[i].index == self.index: + self._lrescale = ctypes.c_double(value) + sim.var_config[i]._lrescale = ctypes.c_double(value) + return + + raise GenericError("An error occured while trying to find variational struct in simulation.") + diff --git a/rebound/source/rebound/vectors.py b/rebound/source/rebound/vectors.py new file mode 100644 index 0000000000000000000000000000000000000000..d233fb2a13c78f498aaba7ebc3f4b963c6cbdd4f --- /dev/null +++ b/rebound/source/rebound/vectors.py @@ -0,0 +1,135 @@ +from ctypes import Structure, c_double + +class Vec6d(Structure): + _fields_ = [("x", c_double), + ("y", c_double), + ("z", c_double), + ("vx", c_double), + ("vy", c_double), + ("vz", c_double)] + +class Vec3dBasic(Structure): + """ + Internal use only. Not used as Vec3d directly because assigments to numpy arrays don't worl + """ + _fields_ = [("x", c_double), + ("y", c_double), + ("z", c_double)] + +class Vec3d: + """ + Class for 3D Cartesian vectors. + """ + _vec3d = None + + @property + def __array_interface__(self): + return {"shape": (3,), "typestr": "= 3: + vec = [float(args[0]), float(args[1]), float(args[2])] + self._vec3d =Vec3dBasic(vec[0],vec[1],vec[2]) + + def __mul__(self, other): + try: + return Vec3d([self.x*other, self.y*other, self.z*other]) + except: + return NotImplemented + + def __truediv__(self, other): + if other==0.: + raise ZeroDivisionError + try: + return Vec3d([self.x/other, self.y/other, self.z/other]) + except: + return NotImplemented + + def __add__(self, other): + try: + o = Vec3d(other) + return Vec3d([self[0]+other[0], self[1]+other[1], self[2]+other[2]]) + except: + return NotImplemented + + def __sub__(self, other): + try: + o = Vec3d(other) + return Vec3d([self[0]-other[0], self[1]-other[1], self[2]-other[2]]) + except: + return NotImplemented + + def rotate(self, q): + if not isinstance(q, Rotation): + raise NotImplementedError + clibrebound.reb_vec3d_irotate(byref(_vec3d), q) + return self + + def normalize(self): + clibrebound.reb_vec3d_normalize.restype = Vec3dBasic + r = clibrebound.reb_vec3d_normalize(self._vec3d) + self._vec3d = r._vec3d + return self + + def __getitem__(self, key): + if not isinstance(key, int): + raise IndexError("Index must be an integer.") + if key < 0 or key >= 3: + raise IndexError("Vec3d has exactly three elements and can therefore not access the item with index "+str(key)+".") + if key == 0: + return self._vec3d.x + if key == 1: + return self._vec3d.y + if key == 2: + return self._vec3d.z + + def __setitem__(self, key, value): + if not isinstance(key, int): + raise IndexError("Index must be an integer.") + if key < 0 or key >= 3: + raise IndexError("Vec3d has exactly three elements and can therefore not access the item with index "+str(key)+".") + if key == 0: + self._vec3d.x = c_double(value) + if key == 1: + self._vec3d.y = c_double(value) + if key == 2: + self._vec3d.z = c_double(value) + + @property + def x(self): + return self._vec3d.x + @x.setter + def x(self, v): + self._vec3d.x = v + @property + def y(self): + return self._vec3d.y + @y.setter + def y(self, v): + self._vec3d.y = v + @property + def z(self): + return self._vec3d.z + @z.setter + def z(self, v): + self._vec3d.z = v + + def __repr__(self): + return '<{0}.{1} object at {2}, [{3}, {4}, {5}]>'.format(self.__module__, type(self).__name__, hex(id(self)), self._vec3d.x, self._vec3d.y, self._vec3d.z) + diff --git a/rebound/source/rebound/widget.py b/rebound/source/rebound/widget.py new file mode 100644 index 0000000000000000000000000000000000000000..d7a8da39aa58b4bc366823ac3d8553a310842ccc --- /dev/null +++ b/rebound/source/rebound/widget.py @@ -0,0 +1,666 @@ +shader_code = """ + + + + +""" +js_code = """ + +""" + +import ipywidgets +ipywidgets_major_version = int((ipywidgets.__version__).split(".")[0]) + + +if ipywidgets_major_version<7: + js_code = js_code.replace("@jupyter-widgets/base", "jupyter-js-widgets") + js_code = js_code.replace(".cid", ".id") + +from ipywidgets import DOMWidget +import traitlets +import base64 +import sys +from ctypes import byref, c_int, c_char, pointer +from . import clibrebound +from .simulation import VISUALIZATIONS + +def savescreenshot(change): + if len(change["new"]) and change["type"] =="change": + w = change["owner"] + bd = base64.b64decode(change["new"].split(",")[-1]) + if sys.version_info[0] < 3: + with open(w.screenshotprefix+"%05d.png"%w.screenshotcountall, 'w') as f: + f.write(bd) + else: + with open(w.screenshotprefix+"%05d.png"%w.screenshotcountall, 'bw') as f: + f.write(bd) + w.screenshotcountall += 1 + if len(w.times)>w.screenshotcount: + nexttime = w.times[w.screenshotcount] + if w.archive: + sim = w.archive.getSimulation(w.times[w.screenshotcount],mode=w.mode) + sim.visualization = VISUALIZATIONS["webgl"] + clibrebound.reb_display_init_data(byref(sim)) + + w.refresh(pointer(sim)) + else: + w.simp.contents.integrate(w.times[w.screenshotcount]) + w.screenshotcount += 1 + else: + w.unobserve(savescreenshot) + w.times = None + w.screenshotprefix = None + +class Widget(DOMWidget): + _view_name = traitlets.Unicode('ReboundView').tag(sync=True) + _view_module = traitlets.Unicode('rebound').tag(sync=True) + count = traitlets.Int(0).tag(sync=True) + screenshotcount = traitlets.Int(0).tag(sync=True) + t = traitlets.Float().tag(sync=True) + N = traitlets.Int().tag(sync=True) + overlay = traitlets.Unicode('REB WIdund').tag(sync=True) + width = traitlets.Float().tag(sync=True) + height = traitlets.Float().tag(sync=True) + scale = traitlets.Float().tag(sync=True) + particle_data = traitlets.CBytes(allow_none=True).tag(sync=True) + orbit_data = traitlets.CBytes(allow_none=True).tag(sync=True) + orientation = traitlets.Tuple().tag(sync=True) + orbits = traitlets.Int().tag(sync=True) + pointsize = traitlets.Float().tag(sync=True) + screenshot = traitlets.Unicode().tag(sync=True) + def __init__(self,simulation,size=(200,200),orientation=(0.,0.,0.,1.),scale=None,autorefresh=True,pointsize=15,orbits=True, overlay=True): + """ + Initializes a Widget. + + Widgets provide real-time 3D interactive visualizations for REBOUND simulations + within Jupyter Notebooks. To use widgets, the ipywidgets package needs to be installed + and enabled in your Jupyter notebook server. + + Parameters + ---------- + size : (int, int), optional + Specify the size of the widget in pixels. The default is 200 times 200 pixels. + orientation : (float, float, float, float), optional + Specify the initial orientation of the view. The four floats correspond to the + x, y, z, and w components of a quaternion. The quaternion will be normalized. + scale : float, optional + Set the initial scale of the view. If not set, the widget will determine the + scale automatically based on current particle positions. + autorefresh : bool, optional + The default value if True. The view is updated whenever a particle is added, + removed and every 100th of a second while a simulation is running. If set + to False, then the user needs to manually call the refresh() function on the + widget. This might be useful if performance is an issue. + orbits : bool, optional + The default value for this is True and the widget will draw the instantaneous + orbits of the particles. For simulations in which particles are not on + Keplerian orbits, the orbits shown will not be accurate. + pointsize : float, optional + The default point size is 15. + overlay : string, optional + Change the default text overlay. Set to None to hide all text. + """ + self.screenshotcountall = 0 + self.width, self.height = size + self.t, self.N = simulation.t, simulation.N + self.orientation = orientation + self.autorefresh = autorefresh + self.orbits = orbits + self.pointsize = pointsize + self.useroverlay = overlay + self.simp = pointer(simulation) + clibrebound.reb_display_copy_data.restype = c_int + if scale is None: + self.scale = simulation.display_data.contents.scale + else: + self.scale = scale + self.count += 1 + + super(Widget, self).__init__() + + def refresh(self, simp=None, isauto=0): + """ + Manually refreshes a widget. + + Note that this function can also be called using the wrapper function of + the Simulation object: sim.refresh_widgets(). + """ + + if simp is None: + simp = self.simp + if self.autorefresh==0 and isauto==1: + return + sim = simp.contents + size_changed = clibrebound.reb_display_copy_data(simp) + clibrebound.reb_display_prepare_data(simp,c_int(self.orbits)) + if sim.N>0: + self.particle_data = (c_char * (4*7*sim.N)).from_address(sim.display_data.contents.particle_data).raw + if self.orbits: + self.orbit_data = (c_char * (4*9*(sim.N-1))).from_address(sim.display_data.contents.orbit_data).raw + if size_changed: + #TODO: Implement better GPU size change + pass + if self.useroverlay==True: + self.overlay = "REBOUND (%s), N=%d, t=%g"%(sim.integrator,sim.N,sim.t) + elif self.useroverlay is None or self.useroverlay==False: + self.overlay = "" + else: + self.overlay = self.useroverlay + ", N=%d, t=%g"%(sim.N,sim.t) + self.N = sim.N + self.t = sim.t + self.count += 1 + + def takeScreenshot(self, times=None, prefix="./screenshot", resetCounter=False, archive=None,mode="snapshot"): + """ + Take one or more screenshots of the widget and save the images to a file. + The images can be used to create a video. + + This function cannot be called multiple times within one cell. + + Note: this is a new feature and might not work on all systems. + It was tested on python 2.7.10 and 3.5.2 on MacOSX. + + Parameters + ---------- + times : (float, list), optional + If this argument is not given a screenshot of the widget will be made + as it is (without integrating the simulation). If a float is given, then the + simulation will be integrated to that time and then a screenshot will + be taken. If a list of floats is given, the simulation will be integrated + to each time specified in the array. A separate screenshot for + each time will be saved. + prefix : (str), optional + This string will be part of the output filename for each image. + Follow by a five digit integer and the suffix .png. By default the + prefix is './screenshot' which outputs images in the current + directory with the filnames screenshot00000.png, screenshot00001.png... + Note that the prefix can include a directory. + resetCounter : (bool), optional + Resets the output counter to 0. + archive : (rebound.Simulationarchive), optional + Use a REBOUND Simulationarchive. Thus, instead of integratating the + Simulation from the current time, it will use the Simulationarchive + to load a snapshot. See examples for usage. + mode : (string), optional + Mode to use when querying the Simulationarchive. See Simulationarchive + documentation for details. By default the value is "snapshot". + + Examples + -------- + + First, create a simulation and widget. All of the following can go in + one cell. + + >>> sim = rebound.Simulation() + >>> sim.add(m=1.) + >>> sim.add(m=1.e-3,x=1.,vy=1.) + >>> w = sim.widget() + >>> w + + The widget should show up. To take a screenshot, simply call + + >>> w.takeScreenshot() + + A new file with the name screenshot00000.png will appear in the + current directory. + + Note that the takeScreenshot command needs to be in a separate cell, + i.e. after you see the widget. + + You can pass an array of times to the function. This allows you to + take multiple screenshots, for example to create a movie, + + >>> times = [0,10,100] + >>> w.takeScreenshot(times) + + """ + self.archive = archive + if resetCounter: + self.screenshotcountall = 0 + self.screenshotprefix = prefix + self.screenshotcount = 0 + self.overlay = "REBOUND" + self.screenshot = "" + if archive is None: + if times is None: + times = self.simp.contents.t + try: + # List + len(times) + except: + # Float: + times = [times] + self.times = times + self.observe(savescreenshot,names="screenshot") + self.simp.contents.integrate(times[0]) + self.screenshotcount += 1 # triggers first screenshot + else: + if times is None: + raise ValueError("Need times argument for archive mode.") + try: + len(times) + except: + raise ValueError("Need a list of times for archive mode.") + self.times = times + self.mode = mode + self.observe(savescreenshot,names="screenshot") + sim = archive.getSimulation(times[0],mode=mode) + sim.visualization = VISUALIZATIONS["webgl"] + clibrebound.reb_display_init_data(byref(sim)) + self.refresh(pointer(sim)) + self.screenshotcount += 1 # triggers first screenshot + + + + + + + + @staticmethod + def getClientCode(): + return shader_code + js_code diff --git a/rebound/source/requirements.txt b/rebound/source/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..db5d81e01ea66c581a5c41c45df1bfe61111e41e --- /dev/null +++ b/rebound/source/requirements.txt @@ -0,0 +1,2 @@ +matplotlib +numpy diff --git a/rebound/source/setup.py b/rebound/source/setup.py new file mode 100644 index 0000000000000000000000000000000000000000..234d6a0589e0ada8e5083fb7ded2adc6a1b96807 --- /dev/null +++ b/rebound/source/setup.py @@ -0,0 +1,131 @@ +try: + from setuptools import setup, Extension +except ImportError: + # Legacy distutils import. No longer available on Pyton > 3.12 + from distutils.core import setup, Extension +from codecs import open +import os +import sys + +import sysconfig +suffix = sysconfig.get_config_var('EXT_SUFFIX') +if suffix is None: + suffix = ".so" + +# Try to get git hash +try: + import subprocess + ghash = subprocess.check_output(["git", "rev-parse", "HEAD"]).decode("ascii") + ghash_arg = "-DGITHASH="+ghash.strip() +except: + ghash_arg = "-DGITHASH=ffad73aeaabd740234299bc523bd3569f4a314f7" #GITHASHAUTOUPDATE + +extra_link_args=[] +if sys.platform == 'darwin': + config_vars = sysconfig.get_config_vars() + config_vars['LDSHARED'] = config_vars['LDSHARED'].replace('-bundle', '-shared') + extra_link_args=['-Wl,-install_name,@rpath/librebound'+suffix] +if sys.platform == 'win32': + extra_compile_args=[ghash_arg, '-DLIBREBOUND', '-D_GNU_SOURCE', '-DSERVER'] +else: + # Default compile args + extra_compile_args=['-fstrict-aliasing', '-std=c99','-Wno-unknown-pragmas', ghash_arg, '-DLIBREBOUND', '-D_GNU_SOURCE', '-DSERVER', '-fPIC'] + # For coverage runs, turn off optimizations and turn on coverage generation + COVERAGE = os.environ.get("COVERAGE", None) + if COVERAGE: + extra_compile_args += ['-O1', '-fprofile-arcs', '-ftest-coverage' ,'-coverage'] + extra_link_args += ['-fprofile-arcs', '-ftest-coverage' ,'-coverage'] + else: + extra_compile_args += ['-O3'] + +# Option to disable FMA in CLANG. +FFP_CONTRACT_OFF = os.environ.get("FFP_CONTRACT_OFF", None) +if FFP_CONTRACT_OFF: + extra_compile_args.append('-ffp-contract=off') + +# Option to enable AVX512 enabled integrators (WHFast512). +AVX512 = os.environ.get("AVX512", None) +if AVX512: + extra_compile_args.append('-march=native') + extra_compile_args.append('-DAVX512') + +libreboundmodule = Extension('librebound', + sources = [ 'src/rebound.c', + 'src/integrator_ias15.c', + 'src/integrator_whfast.c', + 'src/integrator_whfast512.c', + 'src/integrator_saba.c', + 'src/integrator_mercurius.c', + 'src/integrator_trace.c', + 'src/integrator_eos.c', + 'src/integrator_leapfrog.c', + 'src/integrator_bs.c', + 'src/integrator_janus.c', + 'src/integrator_sei.c', + 'src/integrator.c', + 'src/gravity.c', + 'src/server.c', + 'src/frequency_analysis.c', + 'src/boundary.c', + 'src/display.c', + 'src/collision.c', + 'src/tools.c', + 'src/fmemopen.c', + 'src/rotations.c', + 'src/derivatives.c', + 'src/tree.c', + 'src/particle.c', + 'src/binarydiff.c', + 'src/output.c', + 'src/input.c', + 'src/simulationarchive.c', + 'src/transformations.c', + ], + include_dirs = ['src'], + define_macros=[ ('LIBREBOUND', None) ], + extra_link_args=extra_link_args, + extra_compile_args=extra_compile_args, + ) + +here = os.path.abspath(os.path.dirname(__file__)) +with open(os.path.join(here, 'README.md'), encoding='utf-8') as f: + long_description = f.read() + +setup(name='rebound', + version='4.5.1', + description='An open-source multi-purpose N-body code', + long_description=long_description, + long_description_content_type="text/markdown", + url='https://github.com/hannorein/rebound/', + author='Hanno Rein', + author_email='hanno@hanno-rein.de', + license='GPL', + classifiers=[ + # How mature is this project? Common values are + # 3 - Alpha + # 4 - Beta + # 5 - Production/Stable + 'Development Status :: 5 - Production/Stable', + + # Indicate who your project is intended for + 'Intended Audience :: Science/Research', + 'Intended Audience :: Developers', + 'Topic :: Software Development :: Build Tools', + 'Topic :: Scientific/Engineering :: Astronomy', + + # Pick your license as you wish (should match "license" above) + 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)', + + # Specify the Python versions you support here. In particular, ensure + # that you indicate whether you support Python 2, Python 3 or both. + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 3', + ], + keywords='astronomy astrophysics nbody integrator symplectic wisdom-holman', + packages=['rebound', 'rebound.integrators'], + package_data = {'rebound':['rebound.h']}, + install_requires=[], + tests_require=["numpy","matplotlib"], + test_suite="rebound.tests", + ext_modules = [libreboundmodule], + zip_safe=False) diff --git a/rebound/source/src/Makefile b/rebound/source/src/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..60b091c1e1b86267afcfa96c23c9eef9a2e7067d --- /dev/null +++ b/rebound/source/src/Makefile @@ -0,0 +1,46 @@ +include Makefile.defs + +SOURCES=rebound.c tree.c particle.c gravity.c integrator.c integrator_whfast.c integrator_whfast512.c integrator_saba.c integrator_ias15.c integrator_sei.c integrator_bs.c integrator_leapfrog.c integrator_mercurius.c integrator_trace.c integrator_eos.c boundary.c input.c binarydiff.c output.c collision.c communication_mpi.c display.c tools.c rotations.c derivatives.c simulationarchive.c glad.c integrator_janus.c transformations.c fmemopen.c server.c frequency_analysis.c +OBJECTS=$(SOURCES:.c=.$(OBJFILEEXT)) +HEADERS=$(SOURCES:.c=.h) + +all: $(SOURCES) $(LIBREBOUND) + +ifneq ($(OS),Windows_NT) +# Linux, MacOS +%.$(OBJFILEEXT): %.c $(HEADERS) + @echo "Compiling source file $< ..." + $(CC) -c $(OPT) $(PREDEF) -o $@ $< + +$(LIBREBOUND): $(OBJECTS) + @echo "" + @echo "Linking shared library $@ ..." + $(CC) $(OPT) -shared $(OBJECTS) $(LIB) -o $@ + + @echo "" + @echo "The shared library $< has been created successfully." +else +# Windows +%.$(OBJFILEEXT): %.c $(HEADERS) + @echo "Compiling source file $< ..." + $(CC) -c $(OPT) $(PREDEF) /Fo: $@ $< + +$(LIBREBOUND): $(OBJECTS) + @echo "" + @echo "Linking shared library $@ ..." + $(CC) /D_USRDLL /D_WINDLL $(OBJECTS) /link /DLL /OUT:$@ + + @echo "" + @echo "The shared library $< has been created successfully." +endif + + +clean: + @echo "Removing object files *.$(OBJFILEEXT) ..." + @-$(RM) *.$(OBJFILEEXT) + @echo "Removing shared library $(LIBREBOUND) ..." + @-$(RM) *.so + @echo "Removing coverage files ..." + @-$(RM) *.gcda + @-$(RM) *.gcno + diff --git a/rebound/source/src/Makefile.defs b/rebound/source/src/Makefile.defs new file mode 100644 index 0000000000000000000000000000000000000000..72ca0eb11b35b6df7d77e5a7c1c655646df528f6 --- /dev/null +++ b/rebound/source/src/Makefile.defs @@ -0,0 +1,125 @@ +ifndef OS + OS=$(shell uname) +endif +ifneq ($(OS), Windows_NT) + OPT+= -std=c99 -Wpointer-arith -D_GNU_SOURCE -fPIC + OBJFILEEXT=o + LIBREBOUND=librebound.so + EXEREBOUND=rebound + RM=rm -f + LINKORCOPYLIBREBOUND=ln -s -f ../../src/$(LIBREBOUND) . + LINKORCOPYLIBREBOUNDMAIN=ln -s -f src/$(LIBREBOUND) . + CCPROBLEM=$(CC) -I../../src/ -Wl,-rpath,./ $(OPT) $(PREDEF) $< -L. -lrebound $(LIB) -o $(EXEREBOUND) +else +ifeq ($(OPENGL), 1) +$(warning OpenGL not supported on Windows. Setting OPENGL=0) + OPENGL=0 +endif +ifeq ($(MPI), 1) +$(error MPI currently not supported on Windows. Please set MPI=0) +endif +ifeq ($(OPENMP), 1) +$(error OPENMP currently not supported on Windows. Please set OPENMP=0) +endif +ifeq ($(AVX512), 1) +$(error AVX512 currently not supported on Windows. Please set AVX512=0) +endif + OPT+= /D_GNU_SOURCE /Ox /fp:precise + OBJFILEEXT=obj + LIBREBOUND=librebound.dll + EXEREBOUND=rebound.exe + RM=del + ifeq (, $(shell copy)) + LINKORCOPYLIBREBOUND=cp ../../src/librebound.* . & cp ../../src/rebound.h . + LINKORCOPYLIBREBOUNDMAIN=cp src/librebound.* . & cp src/rebound.h . + else + LINKORCOPYLIBREBOUND=copy ..\..\src\librebound.* . & copy ..\..\src\rebound.h . + LINKORCOPYLIBREBOUNDMAIN=copy src\librebound.* . & copy src\rebound.h . + endif + CCPROBLEM=$(CC) $(OPT) $(PREDEF) $< librebound.lib /Fe: $(EXEREBOUND) +endif +# Removed -march=native for now +ifeq ($(OS), Linux) + OPT+= -Wall -g + LIB+= -lm -lrt +endif +ifeq ($(OS), Darwin) + OPT+= -I/usr/local/include -Wall -g #-Wsign-compare + PREDEF+= -D_APPLE + LIB+= -L/usr/local/lib +endif + +ifeq ($(MPI), 1) + ifeq ($(origin CC),default) + CC:=mpicc + else + CC?=mpicc + endif + PREDEF+= -DMPI +else + ifeq ($(OS),Windows_NT) + ifeq ($(origin CC),default) + CC:=cl + endif + else + CC?=cc + endif +endif + +ifeq ($(FFTW), 1) + PREDEF+= -DFFTW + LIB+= -lfftw3 +endif + +ifneq ($(SERVER), 0) +PREDEF+= -DSERVER +endif + +ifeq ($(OPENGL), 1) +PREDEF+= -DOPENGL +ifeq ($(OS), Darwin) + OPT+= -I/opt/homebrew/include + OPT+= -L/opt/homebrew/lib + LIB+= -lglfw -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo +else + LIB+= -lglfw +endif +endif + +ifeq ($(AVX512), 1) + PREDEF+= -DAVX512 +endif + +ifeq ($(QUADRUPOLE), 1) + PREDEF+= -DQUADRUPOLE +endif + +ifeq ($(PROFILING), 1) + PREDEF+= -DPROFILING +endif + +ifeq ($(OPENMP), 1) + PREDEF+= -DOPENMP +ifeq ($(CC), icc) + OPT+= -openmp + LIB+= -openmp +else + OPT+= -fopenmp + LIB+= -fopenmp +endif +else +ifeq ($(OPENMPCLANG), 1) + PREDEF+= -DOPENMP + OPT+= -I$(brew --prefix libomp)/include -Xpreprocessor -fopenmp + LIB+= -lomp +else + ifneq ($(OS), Windows_NT) + OPT+= -Wno-unknown-pragmas + endif +endif +endif + +ifndef GITHASH + GITHASH = $(shell git rev-parse HEAD || echo '0000000000gitnotfound0000000000000000000') + PREDEF+= -DGITHASH=$(GITHASH) +endif diff --git a/rebound/source/src/binarydiff.c b/rebound/source/src/binarydiff.c new file mode 100644 index 0000000000000000000000000000000000000000..06e142e1a6525e48f075462d351876294607379a --- /dev/null +++ b/rebound/source/src/binarydiff.c @@ -0,0 +1,382 @@ +/** + * @file binarydiff.c + * @brief Binary diff allows to compare binary snapshots. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2018 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#include "particle.h" +#include "rebound.h" +#include "tools.h" +#include "output.h" +#include "binarydiff.h" + + +int reb_particle_diff(struct reb_particle p1, struct reb_particle p2){ + int differ = 0; + differ = differ || (p1.x != p2.x); + differ = differ || (p1.y != p2.y); + differ = differ || (p1.z != p2.z); + differ = differ || (p1.vx != p2.vx); + differ = differ || (p1.vy != p2.vy); + differ = differ || (p1.vz != p2.vz); + differ = differ || (p1.ax != p2.ax); + differ = differ || (p1.ay != p2.ay); + differ = differ || (p1.az != p2.az); + differ = differ || (p1.m != p2.m); + differ = differ || (p1.r != p2.r); + differ = differ || (p1.last_collision != p2.last_collision); + differ = differ || (p1.hash != p2.hash); + return differ; +} + +struct reb_binary_field_descriptor reb_binary_field_descriptor_for_type(int type){ + int i=-1; + do{ + i++; + if (reb_binary_field_descriptor_list[i].type==type){ + return reb_binary_field_descriptor_list[i]; + } + } while (reb_binary_field_descriptor_list[i].dtype!=REB_FIELD_END); + struct reb_binary_field_descriptor bfd = {0}; + bfd.dtype = REB_FIELD_NOT_FOUND; + return bfd; +} + +struct reb_binary_field_descriptor reb_binary_field_descriptor_for_name(const char* name){ + int i=-1; + do{ + i++; + if (strcmp(reb_binary_field_descriptor_list[i].name, name)==0){ + return reb_binary_field_descriptor_list[i]; + } + } while (reb_binary_field_descriptor_list[i].dtype!=REB_FIELD_END); + struct reb_binary_field_descriptor bfd = {0}; + bfd.dtype = REB_FIELD_NOT_FOUND; + return bfd; +} + +static void output_stream_reb_type(int dtype, char* pointer, size_t dsize, char** buf){ + char* newbuf = NULL; + switch (dtype){ + case REB_DOUBLE: + asprintf(&newbuf,"%e",*(double*)(pointer)); + break; + case REB_INT: + asprintf(&newbuf,"%d",*(int*)(pointer)); + break; + case REB_UINT: + asprintf(&newbuf,"%u",*(unsigned int*)(pointer)); + break; + case REB_UINT32: + asprintf(&newbuf,"%" PRIu32,*(uint32_t*)(pointer)); // PRIu32 defined in inttypes.h + break; + case REB_INT64: + asprintf(&newbuf,"%" PRId64,*(int64_t*)(pointer)); + break; + case REB_UINT64: + asprintf(&newbuf,"%" PRIu64,*(uint64_t*)(pointer)); + break; + default: + asprintf(&newbuf,"(%zu bytes, values not printed)", dsize); + break; + } + if (buf){ + *buf = realloc(*buf, strlen(*buf) + strlen(newbuf) + sizeof(char)); + strcat(*buf,newbuf); + }else{ + printf("%s",newbuf); + } + free(newbuf); +} + +int reb_binary_diff(char* buf1, size_t size1, char* buf2, size_t size2, char** bufp, size_t* sizep, int output_option){ + if (!buf1 || !buf2 || size1<64 || size2<64){ + printf("Cannot read input buffers.\n"); + return 0; + } + + int are_different = 0; + + if (output_option==0){ + *bufp = NULL; + *sizep = 0; + } + if (output_option==3){ + *bufp = malloc(sizeof(char)); + *bufp[0] = '\0'; + } + size_t allocatedsize = 0; + + // Header. + if(memcmp(buf1,buf2,64)!=0 && output_option==1){ + printf("Header in binary files are different.\n"); + } + + size_t pos1 = 64; + size_t pos2 = 64; + + struct reb_binary_field_descriptor fd_end = reb_binary_field_descriptor_for_name("end"); + + while(1){ + if (pos1+sizeof(struct reb_binary_field)>size1) break; + struct reb_binary_field field1; + memcpy(&field1, buf1+pos1, sizeof(struct reb_binary_field)); // need copy because of 8 byte alignment requirement + pos1 += sizeof(struct reb_binary_field); + if (field1.type==fd_end.type){ + break; + } + if (pos2+sizeof(struct reb_binary_field)>size2) pos2 = 64; + struct reb_binary_field field2; + memcpy(&field2, buf2+pos2, sizeof(struct reb_binary_field)); // need copy because of 8 byte alignment requirement + pos2 += sizeof(struct reb_binary_field); + + // Fields might not be in the same order. + if (field1.type!=field2.type){ + // Will search for element in buf2, starting at beginning just past header + // Note that we ignore all ADDITIONAL fields in buf2 that were not present in buf1 + pos2 = 64; + int notfound = 0; + while(1) { + if (pos2+sizeof(struct reb_binary_field)>size2){ + notfound = 1; + break; + } + memcpy(&field2, buf2+pos2, sizeof(struct reb_binary_field)); // need copy because of 8 byte alignment requirement + pos2 += sizeof(struct reb_binary_field); + if(field2.type==fd_end.type){ + notfound = 1; + break; + } + if (field2.type==field1.type){ + break; // found!! + }else{ + pos2 += field2.size; //skip + } + }; + if (notfound == 1){ + pos1 += field1.size; // For next search + pos2 = 64; // For next search + field1.size = 0; // Output field with size 0 + are_different = 1.; + if (output_option==0){ + reb_output_stream_write(bufp, &allocatedsize, sizep, &field1,sizeof(struct reb_binary_field)); + }else if (output_option==1 || output_option==3){ + const struct reb_binary_field_descriptor fd = reb_binary_field_descriptor_for_type(field1.type); + char* buf; +#ifndef _WIN32 + asprintf(&buf, "%s:\n\033[31m< ",fd.name); +#else // _WIN32 + asprintf(&buf, "%s:\n< ",fd.name); +#endif // _WIN32 + if (bufp){ + *bufp = realloc(*bufp, strlen(*bufp) + strlen(buf) + sizeof(char)); + strcat(*bufp,buf); + }else{ + printf("%s",buf); + } + free(buf); + output_stream_reb_type(fd.dtype, buf1+pos1, field1.size, bufp); +#ifndef _WIN32 + asprintf(&buf, "\033[0m\n"); +#else // _WIN32 + asprintf(&buf, "\n"); +#endif // _WIN32 + if (bufp){ + *bufp = realloc(*bufp, strlen(*bufp) + strlen(buf) + sizeof(char)); + strcat(*bufp,buf); + }else{ + printf("%s",buf); + } + free(buf); + } + field1.size = 0; + continue; + } + } + // Can assume field1.type == field2.type from here on + if (pos1+field1.size>size1) printf("Corrupt binary file buf1.\n"); + if (pos2+field2.size>size2) printf("Corrupt binary file buf2.\n"); + int fields_differ = 0; + if (field1.size==field2.size){ + if (strcmp(reb_binary_field_descriptor_for_type(field1.type).name, "particles")==0){ + struct reb_particle* pb1 = (struct reb_particle*)(buf1+pos1); + struct reb_particle* pb2 = (struct reb_particle*)(buf2+pos2); + for (unsigned int i=0;i "); +#else // _WIN32 + asprintf(&buf, "\n---\n> "); +#endif // _WIN32 + if (bufp){ + *bufp = realloc(*bufp, strlen(*bufp) + strlen(buf) + sizeof(char)); + strcat(*bufp,buf); + }else{ + printf("%s",buf); + } + free(buf); + output_stream_reb_type(fd.dtype, buf2+pos2, field2.size, bufp); +#ifndef _WIN32 + asprintf(&buf, "\033[0m\n"); +#else // _WIN32 + asprintf(&buf, "\n"); +#endif // _WIN32 + if (bufp){ + *bufp = realloc(*bufp, strlen(*bufp) + strlen(buf) + sizeof(char)); + strcat(*bufp,buf); + }else{ + printf("%s",buf); + } + free(buf); + } + } + pos1 += field1.size; + pos2 += field2.size; + } + // Search for fields which are present in buf2 but not in buf1 + pos1 = 64; + pos2 = 64; + while(1){ + if (pos2+sizeof(struct reb_binary_field)>size2) break; + struct reb_binary_field field2; + memcpy(&field2, buf2+pos2, sizeof(struct reb_binary_field)); // need copy because of 8 byte alignment requirement + pos2 += sizeof(struct reb_binary_field); + if (field2.type==fd_end.type){ + break; + } + if (pos1+sizeof(struct reb_binary_field)>size1) pos1 = 64; + struct reb_binary_field field1; + memcpy(&field1, buf1+pos1, sizeof(struct reb_binary_field)); // need copy because of 8 byte alignment requirement + pos1 += sizeof(struct reb_binary_field); + + if (field1.type==field2.type){ + // Not a new field. Skip. + pos1 += field1.size; + pos2 += field2.size; + continue; + } + // Fields might not be in the same order. + // Will search for element in buf1, starting at beginning just past header + pos1 = 64; + int notfound = 0; + while(1) { + if (pos1+sizeof(struct reb_binary_field)>size1){ + notfound = 1; + break; + } + memcpy(&field1, buf1+pos1, sizeof(struct reb_binary_field)); // need copy because of 8 byte alignment requirement + pos1 += sizeof(struct reb_binary_field); + if(field1.type==fd_end.type){ + notfound = 1; + break; + } + if (field2.type==field1.type){ + break; // found it, not new + }else{ + // not found, try next + pos1 += field1.size; + } + }; + if (notfound == 0){ + // Not a new field. Skip. + pos1 = 64; + pos2 += field2.size; + continue; + } + + are_different = 1.; + if (output_option==0){ + reb_output_stream_write(bufp, &allocatedsize, sizep, &field2,sizeof(struct reb_binary_field)); + reb_output_stream_write(bufp, &allocatedsize, sizep, buf2+pos2,field2.size); + }else if (output_option==1 || output_option==3){ + const struct reb_binary_field_descriptor fd = reb_binary_field_descriptor_for_type(field2.type); + char* buf; +#ifndef _WIN32 + asprintf(&buf, "%s:\n\033[32m> ",fd.name); +#else // _WIN32 + asprintf(&buf, "%s:\n> ",fd.name); +#endif // _WIN32 + if (bufp){ + *bufp = realloc(*bufp, strlen(*bufp) + strlen(buf) + sizeof(char)); + strcat(*bufp,buf); + }else{ + printf("%s",buf); + } + output_stream_reb_type(fd.dtype, buf2+pos2, field2.size, bufp); +#ifndef _WIN32 + asprintf(&buf, "\033[0m\n"); +#else // _WIN32 + asprintf(&buf, "\n"); +#endif // _WIN32 + if (bufp){ + *bufp = realloc(*bufp, strlen(*bufp) + strlen(buf) + sizeof(char)); + strcat(*bufp,buf); + }else{ + printf("%s",buf); + } + } + pos1 = 64; + pos2 += field2.size; + } + + return are_different; +} diff --git a/rebound/source/src/binarydiff.h b/rebound/source/src/binarydiff.h new file mode 100644 index 0000000000000000000000000000000000000000..765e8da19e5729b888e8cc9ea139f7c462be57f2 --- /dev/null +++ b/rebound/source/src/binarydiff.h @@ -0,0 +1,41 @@ +/** + * @file binarydiff.h + * @brief Binary diff allows to compare binary snapshots. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2018 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _BINARYDIFF_H +#define _BINARYDIFF_H + +// Compares two simulations, stores difference in buffer. +// +// output_option: +// - If set to 0, differences are written to bufp in the form of reb_binary_field structs. +// - If set to 1, differences are printed on the screen. +// - If set to 2, only the return value indicates any differences. +// - If set to 3, differences are written to bufp in a human readable form. +// +// returns value: 0 is returned if the simulations do not differ (are equal). 1 is return if they differ. + +int reb_binary_diff(char* buf1, size_t size1, char* buf2, size_t size2, char** bufp, size_t* sizep, int output_option); + + +#endif // _BINARYDIFF_H diff --git a/rebound/source/src/boundary.c b/rebound/source/src/boundary.c new file mode 100644 index 0000000000000000000000000000000000000000..2a49d250f51939d0b1e2da902f327006db80b668 --- /dev/null +++ b/rebound/source/src/boundary.c @@ -0,0 +1,231 @@ +/** + * @file boundary.c + * @brief Implementation of all boundary conditions. + * @author Hanno Rein + * + * @details The code supports different boundary conditions. + * + * + * @section LICENSE + * Copyright (c) 2015 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#include +#include +#include "particle.h" +#include "integrator.h" +#include "rebound.h" +#include "boundary.h" +#include "tree.h" + +void reb_boundary_check(struct reb_simulation* const r){ + struct reb_particle* const particles = r->particles; + int N = r->N; + const struct reb_vec3d boxsize = r->boxsize; + switch(r->boundary){ + case REB_BOUNDARY_OPEN: + for (int i=0;iboxsize.x/2.){ + removep = 1; + } + if(particles[i].x<-boxsize.x/2.){ + removep = 1; + } + if(particles[i].y>boxsize.y/2.){ + removep = 1; + } + if(particles[i].y<-boxsize.y/2.){ + removep = 1; + } + if(particles[i].z>boxsize.z/2.){ + removep = 1; + } + if(particles[i].z<-boxsize.z/2.){ + removep = 1; + } + if (removep==1){ + if(r->track_energy_offset){ + double Ei = reb_simulation_energy(r); + reb_simulation_remove_particle(r, i,1); + r->energy_offset += Ei - reb_simulation_energy(r); + } else { + reb_simulation_remove_particle(r, i,0); // keep_sorted=0 by default in C version + } + if (r->tree_root==NULL){ + i--; // need to recheck the particle that replaced the removed one + N--; // This is the local N + }else{ + // particle just marked, will be removed later + r->tree_needs_update= 1; + } + } + } + break; + case REB_BOUNDARY_SHEAR: + { + // The offset of ghostcell is time dependent. + const double OMEGA = r->ri_sei.OMEGA; + const double offsetp1 = -fmod(-1.5*OMEGA*boxsize.x*r->t+boxsize.y/2.,boxsize.y)-boxsize.y/2.; + const double offsetm1 = -fmod( 1.5*OMEGA*boxsize.x*r->t-boxsize.y/2.,boxsize.y)+boxsize.y/2.; + struct reb_particle* const particles = r->particles; +#pragma omp parallel for schedule(guided) + for (int i=0;iboxsize.x/2.){ + particles[i].x -= boxsize.x; + particles[i].y += offsetp1; + particles[i].vy += 3./2.*OMEGA*boxsize.x; + } + while(particles[i].x<-boxsize.x/2.){ + particles[i].x += boxsize.x; + particles[i].y += offsetm1; + particles[i].vy -= 3./2.*OMEGA*boxsize.x; + } + // Azimuthal + while(particles[i].y>boxsize.y/2.){ + particles[i].y -= boxsize.y; + } + while(particles[i].y<-boxsize.y/2.){ + particles[i].y += boxsize.y; + } + // Vertical (there should be no boundary, but periodic makes life easier) + while(particles[i].z>boxsize.z/2.){ + particles[i].z -= boxsize.z; + } + while(particles[i].z<-boxsize.z/2.){ + particles[i].z += boxsize.z; + } + } + } + break; + case REB_BOUNDARY_PERIODIC: +#pragma omp parallel for schedule(guided) + for (int i=0;iboxsize.x/2.){ + particles[i].x -= boxsize.x; + } + while(particles[i].x<-boxsize.x/2.){ + particles[i].x += boxsize.x; + } + while(particles[i].y>boxsize.y/2.){ + particles[i].y -= boxsize.y; + } + while(particles[i].y<-boxsize.y/2.){ + particles[i].y += boxsize.y; + } + while(particles[i].z>boxsize.z/2.){ + particles[i].z -= boxsize.z; + } + while(particles[i].z<-boxsize.z/2.){ + particles[i].z += boxsize.z; + } + } + break; + default: + break; + } +} + +static const struct reb_vec6d nan_ghostbox = {.x = 0, .y = 0, .z = 0, .vx = 0, .vy = 0, .vz = 0}; + +struct reb_vec6d reb_boundary_get_ghostbox(struct reb_simulation* const r, int i, int j, int k){ + switch(r->boundary){ + case REB_BOUNDARY_OPEN: + { + struct reb_vec6d gb; + gb.x = r->boxsize.x*(double)i; + gb.y = r->boxsize.y*(double)j; + gb.z = r->boxsize.z*(double)k; + gb.vx = 0; + gb.vy = 0; + gb.vz = 0; + return gb; + } + case REB_BOUNDARY_SHEAR: + { + const double OMEGA = r->ri_sei.OMEGA; + struct reb_vec6d gb; + // Ghostboxes habe a finite velocity. + gb.vx = 0.; + gb.vy = -1.5*(double)i*OMEGA*r->boxsize.x; + gb.vz = 0.; + // The shift in the y direction is time dependent. + double shift; + if (i==0){ + shift = -fmod(gb.vy*r->t,r->boxsize.y); + }else{ + if (i>0){ + shift = -fmod(gb.vy*r->t-r->boxsize.y/2.,r->boxsize.y)-r->boxsize.y/2.; + }else{ + shift = -fmod(gb.vy*r->t+r->boxsize.y/2.,r->boxsize.y)+r->boxsize.y/2.; + } + } + gb.x = r->boxsize.x*(double)i; + gb.y = r->boxsize.y*(double)j-shift; + gb.z = r->boxsize.z*(double)k; + return gb; + } + case REB_BOUNDARY_PERIODIC: + { + struct reb_vec6d gb; + gb.x = r->boxsize.x*(double)i; + gb.y = r->boxsize.y*(double)j; + gb.z = r->boxsize.z*(double)k; + gb.vx = 0; + gb.vy = 0; + gb.vz = 0; + return gb; + } + default: + return nan_ghostbox; + } +} + +int reb_boundary_particle_is_in_box(const struct reb_simulation* const r, struct reb_particle p){ + switch(r->boundary){ + case REB_BOUNDARY_OPEN: + case REB_BOUNDARY_SHEAR: + case REB_BOUNDARY_PERIODIC: + if(p.x>r->boxsize.x/2.){ + return 0; + } + if(p.x<-r->boxsize.x/2.){ + return 0; + } + if(p.y>r->boxsize.y/2.){ + return 0; + } + if(p.y<-r->boxsize.y/2.){ + return 0; + } + if(p.z>r->boxsize.z/2.){ + return 0; + } + if(p.z<-r->boxsize.z/2.){ + return 0; + } + return 1; + default: + case REB_BOUNDARY_NONE: + return 1; + } +} + + diff --git a/rebound/source/src/boundary.h b/rebound/source/src/boundary.h new file mode 100644 index 0000000000000000000000000000000000000000..debc72fd6df853ad00f6c62bac3844cff13b6ec2 --- /dev/null +++ b/rebound/source/src/boundary.h @@ -0,0 +1,52 @@ +/** + * @file boundary.h + * @brief Handles different boundary conditions. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _BOUNDARIES_H +#define _BOUNDARIES_H + +/** + * @brief This function checks if any particle has left the main box. + * @details If a particle left the box, it is shifted back in the box + * for periodic boundary conditions or remove from the simulation. + * @param r REBOUND Simulation to consider + */ +void reb_boundary_check(struct reb_simulation* r); + +/** + * @brief Creates a ghostbox. + * @param r REBOUND Simulation to consider + * @param i Index in x direction. + * @param j Index in y direction. + * @param k Index in z direction. + */ +struct reb_vec6d reb_boundary_get_ghostbox(struct reb_simulation* const r, int i, int j, int k); + +/** + * @details Return 1 if a particle is in the box, 0 otherwise. + * @param r REBOUND Simulation to consider + * @param p Particle to check + */ +int reb_boundary_particle_is_in_box(const struct reb_simulation* const r, struct reb_particle p); + +#endif diff --git a/rebound/source/src/collision.c b/rebound/source/src/collision.c new file mode 100644 index 0000000000000000000000000000000000000000..7ae5fa795278baf78ee072016485dada135b7db6 --- /dev/null +++ b/rebound/source/src/collision.c @@ -0,0 +1,878 @@ +/** + * @file collision.c + * @brief Collision search routine. + * @author Hanno Rein + * + * @details A collision is defined as an overlap between two particles. This + * is only an approximation and works only if the timestep is small + * enough. More precisely, dt << v / Rp, where v is the typical velocity + * and Rp the radius of a particle. Furthermore, particles must be + * approaching each other at the time when they overlap. + * + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include "particle.h" +#include "collision.h" +#include "rebound.h" +#include "boundary.h" +#include "tree.h" +#include "integrator_trace.h" +#ifdef MPI +#include "communication_mpi.h" +#endif // MPI +#define MIN(a, b) ((a) > (b) ? (b) : (a)) ///< Returns the minimum of a and b +#define MAX(a, b) ((a) > (b) ? (a) : (b)) ///< Returns the maximum of a and b + +static void reb_tree_get_nearest_neighbour_in_cell(struct reb_simulation* const r, struct reb_vec6d gb, struct reb_vec6d gbunmod, int ri, double p1_r, double second_largest_radius, struct reb_collision* collision_nearest, struct reb_treecell* c); +static void reb_tree_check_for_overlapping_trajectories_in_cell(struct reb_simulation* const r, struct reb_vec6d gb, struct reb_vec6d gbunmod, int ri, double p1_r, double p1_r_plus_dtv, struct reb_collision* collision_nearest, struct reb_treecell* c, double maxdrift); + +void reb_collision_search(struct reb_simulation* const r){ + r->collisions_N = 0; + int N = r->N - r->N_var; + int Ninner = N; + + int* map = NULL; + switch (r->integrator){ + case REB_INTEGRATOR_MERCURIUS: + if (r->ri_mercurius.mode==0){ + // After jump step, only collisions with star might occur. + // All other collisions in encounter step/ + Ninner = 1; + }else{ + N = r->ri_mercurius.encounter_N; + Ninner = N; + map = r->ri_mercurius.encounter_map; + } + break; + case REB_INTEGRATOR_TRACE: + switch (r->ri_trace.mode){ + case REB_TRACE_MODE_INTERACTION: + case REB_TRACE_MODE_NONE: + // After jump step, only collisions with star might occur. + // All other collisions in encounter step/ + Ninner = 1; + break; + case REB_TRACE_MODE_KEPLER: + N = r->ri_trace.encounter_N; + Ninner = N; + map = r->ri_trace.encounter_map; + break; + case REB_TRACE_MODE_FULL: + // Do the default collision search + break; + } + break; + default: + // map = NULL + break; + } + const struct reb_particle* const particles = r->particles; + switch (r->collision){ + case REB_COLLISION_NONE: + break; + case REB_COLLISION_DIRECT: + { + // Loop over ghost boxes, but only the inner most ring. + int N_ghost_xcol = (r->N_ghost_x>1?1:r->N_ghost_x); + int N_ghost_ycol = (r->N_ghost_y>1?1:r->N_ghost_y); + int N_ghost_zcol = (r->N_ghost_z>1?1:r->N_ghost_z); + for (int gbx=-N_ghost_xcol; gbx<=N_ghost_xcol; gbx++){ + for (int gby=-N_ghost_ycol; gby<=N_ghost_ycol; gby++){ + for (int gbz=-N_ghost_zcol; gbz<=N_ghost_zcol; gbz++){ + // Loop over all particles + for (int i=0;i 1) return; +#endif // OPENMP + int ip = i; + if (map){ + ip = map[i]; + } + struct reb_particle p1 = particles[ip]; + struct reb_vec6d gborig = reb_boundary_get_ghostbox(r, gbx,gby,gbz); + struct reb_vec6d gb = gborig; + // Precalculate shifted position + gb.x += p1.x; + gb.y += p1.y; + gb.z += p1.z; + gb.vx += p1.vx; + gb.vy += p1.vy; + gb.vz += p1.vz; + // Loop over all particles again + for (int j=0;jsr*sr) continue; + double dvx = gb.vx - p2.vx; + double dvy = gb.vy - p2.vy; + double dvz = gb.vz - p2.vz; + // Check if particles are approaching each other + if (dvx*dx + dvy*dy + dvz*dz >0) continue; + // Add particles to collision array. + if (r->N_allocated_collisions<=r->collisions_N){ + // Allocate memory if there is no space in array. + // Init to 32 if no space has been allocated yet, otherwise double it. + r->N_allocated_collisions = r->N_allocated_collisions ? r->N_allocated_collisions * 2 : 32; + r->collisions = realloc(r->collisions,sizeof(struct reb_collision)*r->N_allocated_collisions); + } + r->collisions[r->collisions_N].p1 = ip; + r->collisions[r->collisions_N].p2 = jp; + r->collisions[r->collisions_N].gb = gborig; + r->collisions_N++; + } + } + } + } + } + } + break; + case REB_COLLISION_LINE: + { + double dt_last_done = r->dt_last_done; + // Loop over ghost boxes, but only the inner most ring. + int N_ghost_xcol = (r->N_ghost_x>1?1:r->N_ghost_x); + int N_ghost_ycol = (r->N_ghost_y>1?1:r->N_ghost_y); + int N_ghost_zcol = (r->N_ghost_z>1?1:r->N_ghost_z); + for (int gbx=-N_ghost_xcol; gbx<=N_ghost_xcol; gbx++){ + for (int gby=-N_ghost_ycol; gby<=N_ghost_ycol; gby++){ + for (int gbz=-N_ghost_zcol; gbz<=N_ghost_zcol; gbz++){ + // Loop over all particles + for (int i=0;i 1) return; +#endif // OPENMP + int ip = i; + if (map){ + ip = map[i]; + } + struct reb_particle p1 = particles[ip]; + struct reb_vec6d gborig = reb_boundary_get_ghostbox(r, gbx,gby,gbz); + struct reb_vec6d gb = gborig; + // Precalculate shifted position + gb.x += p1.x; + gb.y += p1.y; + gb.z += p1.z; + gb.vx += p1.vx; + gb.vy += p1.vy; + gb.vz += p1.vz; + // Loop over all particles again + for (int j=i+1;j=0. && t_closest/dt_last_done<=1.){ + const double dx3 = dx1-t_closest*dvx1; // closest approach + const double dy3 = dy1-t_closest*dvy1; + const double dz3 = dz1-t_closest*dvz1; + const double r3 = (dx3*dx3 + dy3*dy3 + dz3*dz3); + rmin2_ab = MIN(rmin2_ab, r3); + } + double rsum = p1.r + p2.r; + if (rmin2_ab>rsum*rsum) continue; + + // Add particles to collision array. + if (r->N_allocated_collisions<=r->collisions_N){ + // Allocate memory if there is no space in array. + // Init to 32 if no space has been allocated yet, otherwise double it. + r->N_allocated_collisions = r->N_allocated_collisions ? r->N_allocated_collisions * 2 : 32; + r->collisions = realloc(r->collisions,sizeof(struct reb_collision)*r->N_allocated_collisions); + } + r->collisions[r->collisions_N].p1 = ip; + r->collisions[r->collisions_N].p2 = jp; + r->collisions[r->collisions_N].gb = gborig; + r->collisions_N++; + } + } + } + } + } + } + break; + case REB_COLLISION_TREE: + { + // Update and simplify tree. + // Prepare particles for distribution to other nodes. + reb_simulation_update_tree(r); + +#ifdef MPI + // Distribute particles and add newly received particles to tree. + reb_communication_mpi_distribute_particles(r); + + // Prepare essential tree (and particles close to the boundary needed for collisions) for distribution to other nodes. + reb_tree_prepare_essential_tree_for_collisions(r); + + // Transfer essential tree and particles needed for collisions. + reb_communication_mpi_distribute_essential_tree_for_collisions(r); +#endif // MPI + + // Loop over ghost boxes, but only the inner most ring. + int N_ghost_xcol = (r->N_ghost_x>1?1:r->N_ghost_x); + int N_ghost_ycol = (r->N_ghost_y>1?1:r->N_ghost_y); + int N_ghost_zcol = (r->N_ghost_z>1?1:r->N_ghost_z); + const struct reb_particle* const particles = r->particles; + const int N = r->N - r->N_var; + // Find second largest radius + int l1 = -1; + int l2 = -1; + reb_simulation_two_largest_particles(r, &l1, &l2); + double second_largest_radius = 0; + if (l2 != -1){ + second_largest_radius = r->particles[l2].r; + } + + // Loop over all particles +#pragma omp parallel for schedule(guided) + for (int i=0;i 1) return; +#endif // OPENMP + struct reb_particle p1 = particles[i]; + struct reb_collision collision_nearest; + collision_nearest.p1 = i; + collision_nearest.p2 = -1; + double p1_r = p1.r; + // Loop over ghost boxes. + for (int gbx=-N_ghost_xcol; gbx<=N_ghost_xcol; gbx++){ + for (int gby=-N_ghost_ycol; gby<=N_ghost_ycol; gby++){ + for (int gbz=-N_ghost_zcol; gbz<=N_ghost_zcol; gbz++){ + // Calculated shifted position (for speedup). + struct reb_vec6d gb = reb_boundary_get_ghostbox(r, gbx,gby,gbz); + struct reb_vec6d gbunmod = gb; + gb.x += p1.x; + gb.y += p1.y; + gb.z += p1.z; + gb.vx += p1.vx; + gb.vy += p1.vy; + gb.vz += p1.vz; + // Loop over all root boxes. + for (int ri=0;riN_root;ri++){ + struct reb_treecell* rootcell = r->tree_root[ri]; + if (rootcell!=NULL){ + reb_tree_get_nearest_neighbour_in_cell(r, gb, gbunmod, ri, p1_r, second_largest_radius, &collision_nearest, rootcell); + } + } + } + } + } + // Continue if no collision was found + if (collision_nearest.p2==-1) continue; + } + } + break; + case REB_COLLISION_LINETREE: + { + // Calculate max drift (can also be stored in tree for further speedup) + double vmax2 = 0.; + for (int i=0;idt_last_done*sqrt(vmax2); + // Update and simplify tree. + // Prepare particles for distribution to other nodes. + reb_simulation_update_tree(r); + + // Loop over ghost boxes, but only the inner most ring. + int N_ghost_xcol = (r->N_ghost_x>1?1:r->N_ghost_x); + int N_ghost_ycol = (r->N_ghost_y>1?1:r->N_ghost_y); + int N_ghost_zcol = (r->N_ghost_z>1?1:r->N_ghost_z); + const struct reb_particle* const particles = r->particles; + const int N = r->N - r->N_var; + // Loop over all particles +#pragma omp parallel for schedule(guided) + for (int i=0;i 1) return; +#endif // OPENMP + struct reb_particle p1 = particles[i]; + struct reb_collision collision_nearest; + collision_nearest.p1 = i; + collision_nearest.p2 = -1; + double p1_r = p1.r; + // Add drift during last timestep + double p1_r_plus_dtv = p1_r + r->dt_last_done*sqrt(p1.vx*p1.vx + p1.vy*p1.vy + p1.vz*p1.vz); + // Loop over ghost boxes. + for (int gbx=-N_ghost_xcol; gbx<=N_ghost_xcol; gbx++){ + for (int gby=-N_ghost_ycol; gby<=N_ghost_ycol; gby++){ + for (int gbz=-N_ghost_zcol; gbz<=N_ghost_zcol; gbz++){ + // Calculated shifted position (for speedup). + struct reb_vec6d gb = reb_boundary_get_ghostbox(r, gbx,gby,gbz); + struct reb_vec6d gbunmod = gb; + gb.x += p1.x; + gb.y += p1.y; + gb.z += p1.z; + gb.vx += p1.vx; + gb.vy += p1.vy; + gb.vz += p1.vz; + // Loop over all root boxes. + for (int ri=0;riN_root;ri++){ + struct reb_treecell* rootcell = r->tree_root[ri]; + if (rootcell!=NULL){ + reb_tree_check_for_overlapping_trajectories_in_cell(r, gb, gbunmod,ri,p1_r,p1_r_plus_dtv,&collision_nearest,rootcell,maxdrift); + } + } + } + } + } + // Continue if no collision was found + if (collision_nearest.p2==-1) continue; + } + } + break; + default: + reb_exit("Collision routine not implemented."); + } + + // randomize + for (int i=0;icollisions_N;i++){ + int new = rand_r(&(r->rand_seed))%r->collisions_N; + struct reb_collision c1 = r->collisions[i]; + r->collisions[i] = r->collisions[new]; + r->collisions[new] = c1; + } + // Loop over all collisions previously found in reb_collision_search(). + + enum REB_COLLISION_RESOLVE_OUTCOME (*resolve) (struct reb_simulation* const r, struct reb_collision c) = r->collision_resolve; + if (resolve==NULL){ + // Default is to throw an exception + resolve = reb_collision_resolve_halt; + } + unsigned int collision_resolve_keep_sorted = r->collision_resolve_keep_sorted; + if (r->integrator == REB_INTEGRATOR_MERCURIUS || r->integrator == REB_INTEGRATOR_TRACE){ + collision_resolve_keep_sorted = 1; // Force keep_sorted for hybrid integrator + } + + for (int i=0;icollisions_N;i++){ + + struct reb_collision c = r->collisions[i]; + if (c.p1 != -1 && c.p2 != -1){ + // Resolve collision + enum REB_COLLISION_RESOLVE_OUTCOME outcome = resolve(r, c); + + // Remove particles + if (outcome & REB_COLLISION_RESOLVE_OUTCOME_REMOVE_P1){ + // Remove p1 + int removedp1 = reb_simulation_remove_particle(r,c.p1,collision_resolve_keep_sorted); + if (removedp1){ + if (r->tree_root){ // In a tree, particles get removed later. + for (int j=i+1;jcollisions_N;j++){ // Update other collisions + struct reb_collision* cp = &(r->collisions[j]); + // Skip collisions which involved the removed particle + if (cp->p1==c.p1 || cp->p2==c.p1){ + cp->p1 = -1; + cp->p2 = -1; + } + } + }else{ // Not in a tree, particles get removed immediately + // Update p2 of current collision + if (collision_resolve_keep_sorted){ + if (c.p2 > c.p1){ + c.p2--; + } + }else{ + if (c.p2 == (int)(r->N-r->N_var)){ + c.p2 = c.p1; + } + } + for (int j=i+1;jcollisions_N;j++){ // Update other collisions + struct reb_collision* cp = &(r->collisions[j]); + // Skip collisions which involve the removed particle + if (cp->p1==c.p1 || cp->p2==c.p1){ + cp->p1 = -1; + cp->p2 = -1; + } + // Adjust collisions + if (collision_resolve_keep_sorted){ + if (cp->p1 > c.p1){ + cp->p1--; + } + if (cp->p2 > c.p1){ + cp->p2--; + } + }else{ + if (cp->p1 == (int)(r->N-r->N_var)){ + cp->p1 = c.p1; + } + if (cp->p2 == (int)(r->N-r->N_var)){ + cp->p2 = c.p1; + } + } + } + } + } + } + if (outcome & REB_COLLISION_RESOLVE_OUTCOME_REMOVE_P2){ + // Remove p1 + int removedp2 = reb_simulation_remove_particle(r,c.p2,collision_resolve_keep_sorted); + if (removedp2){ // Update other collisions + if (r->tree_root){ // In a tree, particles get removed later. + for (int j=i+1;jcollisions_N;j++){ // Update other collisions + struct reb_collision* cp = &(r->collisions[j]); + // Skip collisions which involved the removed particle + if (cp->p1==c.p2 || cp->p2==c.p2){ + cp->p1 = -1; + cp->p2 = -1; + } + } + }else{ // Not in a tree, particles get removed immediately + for (int j=i+1;jcollisions_N;j++){ + struct reb_collision* cp = &(r->collisions[j]); + // Skip collisions which involve the removed particle + if (cp->p1==c.p2 || cp->p2==c.p2){ + cp->p1 = -1; + cp->p2 = -1; + } + // Adjust collisions + if (collision_resolve_keep_sorted){ + if (cp->p1 > c.p2){ + cp->p1--; + } + if (cp->p2 > c.p2){ + cp->p2--; + } + }else{ + if (cp->p1 == (int)(r->N-r->N_var)){ + cp->p1 = c.p2; + } + if (cp->p2 == (int)(r->N-r->N_var)){ + cp->p2 = c.p2; + } + } + } + } + } + } + } + } +} + +/** + * @brief Workaround for python setters. + **/ +void reb_simulation_set_collision_resolve(struct reb_simulation* r, enum REB_COLLISION_RESOLVE_OUTCOME (*resolve) (struct reb_simulation* const r, struct reb_collision c)){ + r->collision_resolve = resolve; +} + +/** + * @brief Find the nearest neighbour in a cell or its daughters. + * @details The function only returns a positive result if the particles + * are overlapping. Thus, the name nearest neighbour is not + * exactly true. + * @param r REBOUND simulation to work on. + * @param gb (Shifted) position and velocity of the particle. + * @param ri Index of the root box currently being searched in. + * @param p1_r Radius of the particle (this is not in gb). + * @param second_largest_radius The radius of the second largest particles. + * @param collision_nearest Pointer to the nearest collision found so far. + * @param c Pointer to the cell currently being searched in. + * @param gbunmod Ghostbox unmodified + */ +static void reb_tree_get_nearest_neighbour_in_cell(struct reb_simulation* const r, struct reb_vec6d gb, struct reb_vec6d gbunmod, int ri, double p1_r, double second_largest_radius, struct reb_collision* collision_nearest, struct reb_treecell* c){ + const struct reb_particle* const particles = r->particles; + if (c->pt>=0){ + // c is a leaf node + int condition = 1; +#ifdef MPI + int isloc = 1 ; + isloc = reb_communication_mpi_rootbox_is_local(r, ri); + if (isloc==1){ +#endif // MPI + /** + * If this is a local cell, make sure particle is not colliding with itself. + * If this is a remote cell, the particle number might be the same, even for + * different particles. + * TODO: This can probably be written in a cleaner way. + */ + condition = (c->pt != collision_nearest->p1); +#ifdef MPI + } +#endif // MPI + if (condition){ + struct reb_particle p2; +#ifdef MPI + if (isloc==1){ +#endif // MPI + p2 = particles[c->pt]; +#ifdef MPI + }else{ + int N_root_per_node = r->N_root/r->mpi_num; + int proc_id = ri/N_root_per_node; + p2 = r->particles_recv[proc_id][c->pt]; + } +#endif // MPI + + double dx = gb.x - p2.x; + double dy = gb.y - p2.y; + double dz = gb.z - p2.z; + double r2 = dx*dx+dy*dy+dz*dz; + // A closer neighbour has already been found + double rp = p1_r+p2.r; + // reb_particles are not overlapping + if (r2 > rp*rp) return; + double dvx = gb.vx - p2.vx; + double dvy = gb.vy - p2.vy; + double dvz = gb.vz - p2.vz; + // reb_particles are not approaching each other + if (dvx*dx + dvy*dy + dvz*dz >0) return; + // Found a new nearest neighbour. Save it for later. + collision_nearest->ri = ri; + collision_nearest->p2 = c->pt; + collision_nearest->gb = gbunmod; + // Save collision in collisions array. +#pragma omp critical + { + if (r->N_allocated_collisions<=r->collisions_N){ + // Init to 32 if no space has been allocated yet, otherwise double it. + r->N_allocated_collisions = r->N_allocated_collisions ? r->N_allocated_collisions * 2 : 32; + r->collisions = realloc(r->collisions,sizeof(struct reb_collision)*r->N_allocated_collisions); + } + r->collisions[r->collisions_N] = *collision_nearest; + r->collisions_N++; + } + } + }else{ + // c is not a leaf node + double dx = gb.x - c->x; + double dy = gb.y - c->y; + double dz = gb.z - c->z; + double r2 = dx*dx + dy*dy + dz*dz; + double rp = p1_r + second_largest_radius + 0.86602540378443*c->w; + // Check if we need to decent into daughter cells + if (r2 < rp*rp ){ + for (int o=0;o<8;o++){ + struct reb_treecell* d = c->oct[o]; + if (d!=NULL){ + reb_tree_get_nearest_neighbour_in_cell(r, gb,gbunmod,ri,p1_r,second_largest_radius,collision_nearest,d); + } + } + } + } +} + + +static void reb_tree_check_for_overlapping_trajectories_in_cell(struct reb_simulation* const r, struct reb_vec6d gb, struct reb_vec6d gbunmod, int ri, double p1_r, double p1_r_plus_dtv, struct reb_collision* collision_nearest, struct reb_treecell* c, double maxdrift){ + const struct reb_particle* const particles = r->particles; + if (c->pt>=0){ + // c is a leaf node + if (c->pt != collision_nearest->p1){ + struct reb_particle p2 = particles[c->pt]; + double dt_done_last = r->dt_last_done; + const double dx1 = gb.x - p2.x; // distance at beginning + const double dy1 = gb.y - p2.y; + const double dz1 = gb.z - p2.z; + const double r1 = (dx1*dx1 + dy1*dy1 + dz1*dz1); + const double dvx1 = gb.vx - p2.vx; + const double dvy1 = gb.vy - p2.vy; + const double dvz1 = gb.vz - p2.vz; + const double dx2 = dx1 -dt_done_last*dvx1; // distance at end + const double dy2 = dy1 -dt_done_last*dvy1; + const double dz2 = dz1 -dt_done_last*dvz1; + const double r2 = (dx2*dx2 + dy2*dy2 + dz2*dz2); + const double t_closest = (dx1*dvx1 + dy1*dvy1 + dz1*dvz1)/(dvx1*dvx1 + dvy1*dvy1 + dvz1*dvz1); + + double rmin2_ab = MIN(r1,r2); + if (t_closest/dt_done_last>=0. && t_closest/dt_done_last<=1.){ + const double dx3 = dx1-t_closest*dvx1; // closest approach + const double dy3 = dy1-t_closest*dvy1; + const double dz3 = dz1-t_closest*dvz1; + const double r3 = (dx3*dx3 + dy3*dy3 + dz3*dz3); + rmin2_ab = MIN(rmin2_ab, r3); + } + double rsum = p1_r + p2.r; + if (rmin2_ab>rsum*rsum) return; + collision_nearest->ri = ri; + collision_nearest->p2 = c->pt; + collision_nearest->gb = gbunmod; + // Save collision in collisions array. +#pragma omp critical + { + if (r->N_allocated_collisions<=r->collisions_N){ + // Init to 32 if no space has been allocated yet, otherwise double it. + r->N_allocated_collisions = r->N_allocated_collisions ? r->N_allocated_collisions * 2 : 32; + r->collisions = realloc(r->collisions,sizeof(struct reb_collision)*r->N_allocated_collisions); + } + r->collisions[r->collisions_N] = *collision_nearest; + r->collisions_N++; + } + } + }else{ + // c is not a leaf node + double dx = gb.x - c->x; + double dy = gb.y - c->y; + double dz = gb.z - c->z; + double r2 = dx*dx + dy*dy + dz*dz; + double rp = p1_r_plus_dtv + maxdrift + 0.86602540378443*c->w; + // Check if we need to decent into daughter cells + if (r2 < rp*rp ){ + for (int o=0;o<8;o++){ + struct reb_treecell* d = c->oct[o]; + if (d!=NULL){ + reb_tree_check_for_overlapping_trajectories_in_cell(r, gb,gbunmod,ri,p1_r,p1_r_plus_dtv,collision_nearest,d,maxdrift); + } + } + } + } +} + + + + +enum REB_COLLISION_RESOLVE_OUTCOME reb_collision_resolve_hardsphere(struct reb_simulation* const r, struct reb_collision c){ + struct reb_particle* const particles = r->particles; + struct reb_particle p1 = particles[c.p1]; + struct reb_particle p2; +#ifdef MPI + int isloc = reb_communication_mpi_rootbox_is_local(r, c.ri); + if (isloc==1){ +#endif // MPI + p2 = particles[c.p2]; +#ifdef MPI + }else{ + int N_root_per_node = r->N_root/r->mpi_num; + int proc_id = c.ri/N_root_per_node; + p2 = r->particles_recv[proc_id][c.p2]; + } +#endif // MPI + // if (p1.last_collision==t || p2.last_collision==t) return; + struct reb_vec6d gb = c.gb; + double x21 = p1.x + gb.x - p2.x; + double y21 = p1.y + gb.y - p2.y; + double z21 = p1.z + gb.z - p2.z; + double rp = p1.r+p2.r; + double oldvyouter; + if (x21>0){ + oldvyouter = p1.vy; + }else{ + oldvyouter = p2.vy; + } + if (rp*rp < x21*x21 + y21*y21 + z21*z21) return 0; + double vx21 = p1.vx + gb.vx - p2.vx; + double vy21 = p1.vy + gb.vy - p2.vy; + double vz21 = p1.vz + gb.vz - p2.vz; + if (vx21*x21 + vy21*y21 + vz21*z21 >0) return 0; // not approaching + // Bring the to balls in the xy plane. + // NOTE: this could probabely be an atan (which is faster than atan2) + double theta = atan2(z21,y21); + double stheta = sin(theta); + double ctheta = cos(theta); + double vy21n = ctheta * vy21 + stheta * vz21; + double y21n = ctheta * y21 + stheta * z21; + + // Bring the two balls onto the positive x axis. + double phi = atan2(y21n,x21); + double cphi = cos(phi); + double sphi = sin(phi); + double vx21nn = cphi * vx21 + sphi * vy21n; + + // Coefficient of restitution + double eps= 1; // perfect bouncing by default + if (r->coefficient_of_restitution){ + eps = r->coefficient_of_restitution(r, vx21nn); + } + double dvx2 = -(1.0+eps)*vx21nn; + double minr = (p1.r>p2.r)?p2.r:p1.r; + double maxr = (p1.rminimum_collision_velocity; + double _r = sqrt(x21*x21 + y21*y21 + z21*z21); + mindv *= 1.-(_r - maxr)/minr; + if (mindv>maxr*r->minimum_collision_velocity)mindv = maxr*r->minimum_collision_velocity; + if (dvx2t; +#ifdef MPI + } +#endif // MPI + const double p1pf = p2.m/(p1.m+p2.m); + particles[c.p1].vx += p1pf*dvx2n; + particles[c.p1].vy += p1pf*dvy2nn; + particles[c.p1].vz += p1pf*dvz2nn; + particles[c.p1].last_collision = r->t; + + // Return y-momentum change + if (x21>0){ + r->collisions_plog += -fabs(x21)*(oldvyouter-particles[c.p1].vy) * p1.m; + r->collisions_log_n ++; + }else{ + r->collisions_plog += -fabs(x21)*(oldvyouter-particles[c.p2].vy) * p2.m; + r->collisions_log_n ++; + } + return REB_COLLISION_RESOLVE_OUTCOME_REMOVE_NONE; +} + +enum REB_COLLISION_RESOLVE_OUTCOME reb_collision_resolve_halt(struct reb_simulation* const r, struct reb_collision c){ + r->status = REB_STATUS_COLLISION; + r->particles[c.p1].last_collision = r->t; + r->particles[c.p2].last_collision = r->t; + return REB_COLLISION_RESOLVE_OUTCOME_REMOVE_NONE; // don't remove either particle +} + +enum REB_COLLISION_RESOLVE_OUTCOME reb_collision_resolve_merge(struct reb_simulation* const r, struct reb_collision c){ + if (r->particles[c.p1].last_collision==r->t || r->particles[c.p2].last_collision==r->t) return 0; + + // Every collision will cause two callbacks (with p1/p2 interchanged). + // Always remove particle with larger index and merge into lower index particle. + // This will keep N_active meaningful even after mergers. + int swap = 0; + unsigned int i = c.p1; + unsigned int j = c.p2; + if (jparticles[i]); + struct reb_particle* pj = &(r->particles[j]); + + double invmass = 1.0/(pi->m + pj->m); + + //Scale out energy from collision - initial energy + double Ei=0, Ef=0; + if(r->track_energy_offset){ + { + double vx = pi->vx; + double vy = pi->vy; + double vz = pi->vz; + // Calculate energy difference in inertial frame + if (r->integrator == REB_INTEGRATOR_MERCURIUS && r->ri_mercurius.mode==1){ + vx += r->ri_mercurius.com_vel.x; + vy += r->ri_mercurius.com_vel.y; + vz += r->ri_mercurius.com_vel.z; + } + + if (r->integrator == REB_INTEGRATOR_TRACE && r->ri_trace.mode==REB_TRACE_MODE_KEPLER){ + vx += r->ri_trace.com_vel.x; + vy += r->ri_trace.com_vel.y; + vz += r->ri_trace.com_vel.z; + } + + Ei += 0.5*pi->m*(vx*vx + vy*vy + vz*vz); + } + { + double vx = pj->vx; + double vy = pj->vy; + double vz = pj->vz; + if (r->integrator == REB_INTEGRATOR_MERCURIUS && r->ri_mercurius.mode==1){ + vx += r->ri_mercurius.com_vel.x; + vy += r->ri_mercurius.com_vel.y; + vz += r->ri_mercurius.com_vel.z; + } + + if (r->integrator == REB_INTEGRATOR_TRACE && r->ri_trace.mode==REB_TRACE_MODE_KEPLER){ + vx += r->ri_trace.com_vel.x; + vy += r->ri_trace.com_vel.y; + vz += r->ri_trace.com_vel.z; + } + + Ei += 0.5*pj->m*(vx*vx + vy*vy + vz*vz); + } + const unsigned int N_active = ((r->N_active==-1)?r->N-r->N_var: (unsigned int)r->N_active); + // No potential energy between test particles + if (ix - pj->x; + double y = pi->y - pj->y; + double z = pi->z - pj->z; + double _r = sqrt(x*x + y*y + z*z); + + Ei += - r->G*pi->m*pj->m/_r; + } + } + + // Merge by conserving mass, volume and momentum + pi->vx = (pi->vx*pi->m + pj->vx*pj->m)*invmass; + pi->vy = (pi->vy*pi->m + pj->vy*pj->m)*invmass; + pi->vz = (pi->vz*pi->m + pj->vz*pj->m)*invmass; + pi->x = (pi->x*pi->m + pj->x*pj->m)*invmass; + pi->y = (pi->y*pi->m + pj->y*pj->m)*invmass; + pi->z = (pi->z*pi->m + pj->z*pj->m)*invmass; + pi->m = pi->m + pj->m; + pi->r = cbrt(pi->r*pi->r*pi->r + pj->r*pj->r*pj->r); + pi->last_collision = r->t; + + + // Keeping track of energy offst + if(r->track_energy_offset){ + { + double vx = pi->vx; + double vy = pi->vy; + double vz = pi->vz; + if (r->integrator == REB_INTEGRATOR_MERCURIUS && r->ri_mercurius.mode==1){ + vx += r->ri_mercurius.com_vel.x; + vy += r->ri_mercurius.com_vel.y; + vz += r->ri_mercurius.com_vel.z; + } + + if (r->integrator == REB_INTEGRATOR_TRACE && r->ri_trace.mode==REB_TRACE_MODE_KEPLER){ + vx += r->ri_trace.com_vel.x; + vy += r->ri_trace.com_vel.y; + vz += r->ri_trace.com_vel.z; + } + + Ef += 0.5*pi->m*(vx*vx + vy*vy + vz*vz); + } + r->energy_offset += Ei - Ef; + } + + return swap ? REB_COLLISION_RESOLVE_OUTCOME_REMOVE_P1 : REB_COLLISION_RESOLVE_OUTCOME_REMOVE_P2; // Remove particle with higher index +} diff --git a/rebound/source/src/collision.h b/rebound/source/src/collision.h new file mode 100644 index 0000000000000000000000000000000000000000..9eb84d1f620fc6a3184cfdae93441dc6a61a09a8 --- /dev/null +++ b/rebound/source/src/collision.h @@ -0,0 +1,32 @@ +/** + * @file collision.h + * @brief Collision search. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _COLLISIONS_H +#define _COLLISIONS_H +/** + * @brief Search for collisions and resolve them. + */ +void reb_collision_search(struct reb_simulation* const r); + +#endif // _COLLISIONS_H diff --git a/rebound/source/src/communication_mpi.c b/rebound/source/src/communication_mpi.c new file mode 100644 index 0000000000000000000000000000000000000000..83841d014347ffd93711be77c7d591818f06c2e3 --- /dev/null +++ b/rebound/source/src/communication_mpi.c @@ -0,0 +1,492 @@ +/** + * @file communication_mpi.c + * @brief Handles communication between nodes using MPI. + * @author Hanno Rein + * + * @details These routines handle the communication between + * different nodes via the Message Passing Interface (MPI). + * There are two different types of communications implemented + * at the moment: + * - Distributing particles to the correct node. + * - Creating, and distributing the essential tree to allow + * other nodes walk remote trees. Note that the opening + * criteria is different for gravity and collision + * tree walks. + * + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifdef MPI +#include +#include +#include "particle.h" +#include "rebound.h" +#include "tree.h" +#include "boundary.h" +#include "communication_mpi.h" + +void reb_communication_mpi_init(struct reb_simulation* const r, int argc, char** argv){ + int initialized; + MPI_Initialized(&initialized); + if (!initialized){ + MPI_Init(&argc,&argv); + } + MPI_Comm_size(MPI_COMM_WORLD,&(r->mpi_num)); + MPI_Comm_rank(MPI_COMM_WORLD,&(r->mpi_id)); + + // Prepare send/recv buffers for particles + r->particles_send = calloc(r->mpi_num,sizeof(struct reb_particle*)); + r->N_particles_send = calloc(r->mpi_num,sizeof(int)); + r->N_particles_send_max = calloc(r->mpi_num,sizeof(int)); + r->particles_recv = calloc(r->mpi_num,sizeof(struct reb_particle*)); + r->N_particles_recv = calloc(r->mpi_num,sizeof(int)); + r->N_particles_recv_max = calloc(r->mpi_num,sizeof(int)); + + // Prepare send/recv buffers for essential tree + r->tree_essential_send = calloc(r->mpi_num,sizeof(struct reb_treecell*)); + r->N_tree_essential_send = calloc(r->mpi_num,sizeof(int)); + r->N_tree_essential_send_max = calloc(r->mpi_num,sizeof(int)); + r->tree_essential_recv = calloc(r->mpi_num,sizeof(struct reb_treecell*)); + r->N_tree_essential_recv = calloc(r->mpi_num,sizeof(int)); + r->N_tree_essential_recv_max = calloc(r->mpi_num,sizeof(int)); +} + +int reb_communication_mpi_rootbox_is_local(struct reb_simulation* const r, int i){ + int N_root_per_node = r->N_root/r->mpi_num; + int proc_id = i/N_root_per_node; + if (proc_id != r->mpi_id){ + return 0; + }else{ + return 1; + } +} + + +void reb_communication_mpi_distribute_particles(struct reb_simulation* const r){ + // Distribute the number of particles to be transferred. + for (int i=0;impi_num;i++){ + MPI_Scatter(r->N_particles_send, 1, MPI_INT, &(r->N_particles_recv[i]), 1, MPI_INT, i, MPI_COMM_WORLD); + } + // Allocate memory for incoming particles + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + while (r->N_particles_recv_max[i]N_particles_recv[i]){ + r->N_particles_recv_max[i] += 32; + r->particles_recv[i] = realloc(r->particles_recv[i],sizeof(struct reb_particle)*r->N_particles_recv_max[i]); + } + } + + // Exchange particles via MPI. + // Using non-blocking receive call. + MPI_Request request[r->mpi_num]; + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + if (r->N_particles_recv[i]==0) continue; + MPI_Irecv(r->particles_recv[i], sizeof(struct reb_particle)*r->N_particles_recv[i], MPI_CHAR, i, i*r->mpi_num+r->mpi_id, MPI_COMM_WORLD, &(request[i])); + } + // Using blocking send call. + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + if (r->N_particles_send[i]==0) continue; + MPI_Send(r->particles_send[i], sizeof(struct reb_particle)* r->N_particles_send[i], MPI_CHAR, i, r->mpi_id*r->mpi_num+i, MPI_COMM_WORLD); + } + // Wait for all particles to be received. + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + if (r->N_particles_recv[i]==0) continue; + MPI_Status status; + MPI_Wait(&(request[i]), &status); + } + // Add particles to local tree + for (int i=0;impi_num;i++){ + for (int j=0;jN_particles_recv[i];j++){ + reb_simulation_add(r,r->particles_recv[i][j]); + } + } + // Bring everybody into sync, clean up. + MPI_Barrier(MPI_COMM_WORLD); + for (int i=0;impi_num;i++){ + r->N_particles_send[i] = 0; + r->N_particles_recv[i] = 0; + } +} + +void reb_communication_mpi_distribute_particles_all_to_all(struct reb_simulation* const r){ + // Distribute the number of particles to be transferred. + MPI_Allgather(&r->N, 1, MPI_INT, r->N_particles_recv, 1, MPI_INT, MPI_COMM_WORLD); + + // Allocate memory for incoming particles + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + while (r->N_particles_recv_max[i]N_particles_recv[i]){ + r->N_particles_recv_max[i] += 32; + r->particles_recv[i] = realloc(r->particles_recv[i],sizeof(struct reb_particle)*r->N_particles_recv_max[i]); + } + } + + // Exchange particles via MPI. + // Using non-blocking receive call. + MPI_Request request[r->mpi_num]; + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + if (r->N_particles_recv[i]==0) continue; + MPI_Irecv(r->particles_recv[i], sizeof(struct reb_particle)*r->N_particles_recv[i], MPI_CHAR, i, i*r->mpi_num+r->mpi_id, MPI_COMM_WORLD, &(request[i])); + } + // Using blocking send call. + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + if (r->N==0) continue; + MPI_Send(r->particles, sizeof(struct reb_particle)* r->N, MPI_CHAR, i, r->mpi_id*r->mpi_num+i, MPI_COMM_WORLD); + } + // Wait for all particles to be received. + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + if (r->N_particles_recv[i]==0) continue; + MPI_Status status; + MPI_Wait(&(request[i]), &status); + } + MPI_Barrier(MPI_COMM_WORLD); +} + +void reb_communication_mpi_add_particle_to_send_queue(struct reb_simulation* const r, struct reb_particle pt, int proc_id){ + int send_N = r->N_particles_send[proc_id]; + while (r->N_particles_send_max[proc_id] <= send_N){ + r->N_particles_send_max[proc_id] += 128; + r->particles_send[proc_id] = realloc(r->particles_send[proc_id],sizeof(struct reb_particle)*r->N_particles_send_max[proc_id]); + } + r->particles_send[proc_id][send_N] = pt; + r->N_particles_send[proc_id]++; +} + + +/** + * This is the data structure for an axis aligned bounding box. + */ +struct reb_aabb{ + double xmin; + double xmax; + double ymin; + double ymax; + double zmin; + double zmax; +}; + +struct reb_aabb communication_boundingbox_for_root(struct reb_simulation* const r, int index){ + int i = index%r->N_root_x; + int j = ((index-i)/r->N_root_x)%r->N_root_y; + int k = ((index-i)/r->N_root_x-j)/r->N_root_y; + struct reb_aabb boundingbox; + boundingbox.xmin = -r->boxsize.x/2.+r->root_size*(double)i; + boundingbox.ymin = -r->boxsize.y/2.+r->root_size*(double)j; + boundingbox.zmin = -r->boxsize.z/2.+r->root_size*(double)k; + boundingbox.xmax = -r->boxsize.x/2.+r->root_size*(double)(i+1); + boundingbox.ymax = -r->boxsize.y/2.+r->root_size*(double)(j+1); + boundingbox.zmax = -r->boxsize.z/2.+r->root_size*(double)(k+1); + return boundingbox; +} + +struct reb_aabb reb_communication_boundingbox_for_proc(struct reb_simulation* const r, int proc_id){ + int N_root_per_node = r->N_root/r->mpi_num; + int root_start = proc_id*N_root_per_node; + int root_stop = (proc_id+1)*N_root_per_node; + struct reb_aabb boundingbox = communication_boundingbox_for_root(r, root_start); + for (int i=root_start+1;i boundingbox2.xmin) boundingbox.xmin = boundingbox2.xmin; + if (boundingbox.ymin > boundingbox2.ymin) boundingbox.ymin = boundingbox2.ymin; + if (boundingbox.zmin > boundingbox2.zmin) boundingbox.zmin = boundingbox2.zmin; + if (boundingbox.xmax < boundingbox2.xmax) boundingbox.xmax = boundingbox2.xmax; + if (boundingbox.ymax < boundingbox2.ymax) boundingbox.ymax = boundingbox2.ymax; + if (boundingbox.zmax < boundingbox2.zmax) boundingbox.zmax = boundingbox2.zmax; + } + return boundingbox; +} + +double reb_communication_distance2_of_aabb_to_cell(struct reb_aabb bb, struct reb_treecell* node){ + double distancex = fabs(node->x - (bb.xmin+bb.xmax)/2.) - (node->w + bb.xmax-bb.xmin)/2.; + double distancey = fabs(node->y - (bb.ymin+bb.ymax)/2.) - (node->w + bb.ymax-bb.ymin)/2.; + double distancez = fabs(node->z - (bb.zmin+bb.zmax)/2.) - (node->w + bb.zmax-bb.zmin)/2.; + if (distancex<0) distancex =0; + if (distancey<0) distancey =0; + if (distancez<0) distancez =0; + return distancex*distancex + distancey*distancey + distancez*distancez; +} + +double reb_communication_distance2_of_proc_to_node(struct reb_simulation* const r, int proc_id, struct reb_treecell* node){ + int N_ghost_xcol = (r->N_ghost_x>0?1:0); + int N_ghost_ycol = (r->N_ghost_y>0?1:0); + int N_ghost_zcol = (r->N_ghost_z>0?1:0); + double distance2 = r->root_size*(double)r->N_root; // A conservative estimate for the minimum distance. + distance2 *= distance2; + for (int gbx=-N_ghost_xcol; gbx<=N_ghost_xcol; gbx++){ + for (int gby=-N_ghost_ycol; gby<=N_ghost_ycol; gby++){ + for (int gbz=-N_ghost_zcol; gbz<=N_ghost_zcol; gbz++){ + struct reb_vec6d gb = reb_boundary_get_ghostbox(r, gbx,gby,gbz); + struct reb_aabb boundingbox = reb_communication_boundingbox_for_proc(r, proc_id); + boundingbox.xmin+=gb.x; + boundingbox.xmax+=gb.x; + boundingbox.ymin+=gb.y; + boundingbox.ymax+=gb.y; + boundingbox.zmin+=gb.z; + boundingbox.zmax+=gb.z; + // calculate distance + double distance2new = reb_communication_distance2_of_aabb_to_cell(boundingbox,node); + if (distance2 > distance2new) distance2 = distance2new; + } + } + } + return distance2; +} + +void reb_communication_mpi_prepare_essential_cell_for_collisions_for_proc(struct reb_simulation* const r, struct reb_treecell* node, int proc, double largest_radius){ + // Add essential cell to tree_essential_send + if (r->N_tree_essential_send[proc]>=r->N_tree_essential_send_max[proc]){ + r->N_tree_essential_send_max[proc] += 32; + r->tree_essential_send[proc] = realloc(r->tree_essential_send[proc],sizeof(struct reb_treecell)*r->N_tree_essential_send_max[proc]); + } + // Copy node to send buffer + r->tree_essential_send[proc][r->N_tree_essential_send[proc]] = (*node); + r->N_tree_essential_send[proc]++; + if (node->pt>=0){ // Is leaf + // Also transmit particle (Here could be another check if the particle actually overlaps with the other box) + if (r->N_particles_send[proc]>=r->N_particles_send_max[proc]){ + r->N_particles_send_max[proc] += 32; + r->particles_send[proc] = realloc(r->particles_send[proc],sizeof(struct reb_treecell)*r->N_particles_send_max[proc]); + } + // Copy particle to send buffer + r->particles_send[proc][r->N_particles_send[proc]] = r->particles[node->pt]; + // Update reference from cell to particle + r->tree_essential_send[proc][r->N_tree_essential_send[proc]-1].pt = r->N_particles_send[proc]; + r->N_particles_send[proc]++; + }else{ // Not a leaf. Check if we need to transfer daughters. + double distance2 = reb_communication_distance2_of_proc_to_node(r, proc,node); + double rp = 2.*largest_radius + 0.86602540378443*node->w; + if (distance2 < rp*rp ){ + for (int o=0;o<8;o++){ + struct reb_treecell* d = node->oct[o]; + if (d==NULL) continue; + reb_communication_mpi_prepare_essential_cell_for_collisions_for_proc(r, d,proc,largest_radius); + } + } + } +} +void reb_communication_mpi_prepare_essential_tree_for_collisions(struct reb_simulation* const r, struct reb_treecell* root){ + if (root==NULL) return; + int l1 = -1; + int l2 = -1; + reb_simulation_two_largest_particles(r, &l1, &l2); + double largest_radius = 0; + if (l1!=-1){ + largest_radius = r->particles[l1].r; + } + // Find out which cells are needed by every other node + for (int i=0; impi_num; i++){ + if (i==r->mpi_id) continue; + reb_communication_mpi_prepare_essential_cell_for_collisions_for_proc(r, root,i,largest_radius); + } +} + + +void reb_communication_mpi_prepare_essential_cell_for_gravity_for_proc(struct reb_simulation* const r, struct reb_treecell* node, int proc){ + // Add essential cell to tree_essential_send + if (r->N_tree_essential_send[proc]>=r->N_tree_essential_send_max[proc]){ + r->N_tree_essential_send_max[proc] += 32; + r->tree_essential_send[proc] = realloc(r->tree_essential_send[proc],sizeof(struct reb_treecell)*r->N_tree_essential_send_max[proc]); + } + // Copy node to send buffer + r->tree_essential_send[proc][r->N_tree_essential_send[proc]] = (*node); + r->N_tree_essential_send[proc]++; + if (node->pt<0){ // Not a leaf. Check if we need to transfer daughters. + double width = node->w; + double distance2 = reb_communication_distance2_of_proc_to_node(r, proc,node); + if ( width*width > r->opening_angle2*distance2) { + for (int o=0;o<8;o++){ + struct reb_treecell* d = node->oct[o]; + if (d!=NULL){ + reb_communication_mpi_prepare_essential_cell_for_gravity_for_proc(r, d,proc); + } + } + } + } +} + +void reb_communication_mpi_prepare_essential_tree_for_gravity(struct reb_simulation* const r,struct reb_treecell* root){ + if (root==NULL) return; + // Find out which cells are needed by every other node + for (int i=0; impi_num; i++){ + if (i==r->mpi_id) continue; + reb_communication_mpi_prepare_essential_cell_for_gravity_for_proc(r, root,i); + } +} + +void reb_communication_mpi_distribute_essential_tree_for_gravity(struct reb_simulation* const r){ + /////////////////////////////////////////////////////////////// + // Distribute essential tree needed for gravity and collisions + /////////////////////////////////////////////////////////////// + + // Distribute the number of cells to be transferred. + for (int i=0;impi_num;i++){ + MPI_Scatter(r->N_tree_essential_send, 1, MPI_INT, &(r->N_tree_essential_recv[i]), 1, MPI_INT, i, MPI_COMM_WORLD); + } + // Allocate memory for incoming tree_essential + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + while (r->N_tree_essential_recv_max[i]N_tree_essential_recv[i]){ + r->N_tree_essential_recv_max[i] += 32; + r->tree_essential_recv[i] = realloc(r->tree_essential_recv[i],sizeof(struct reb_treecell)*r->N_tree_essential_recv_max[i]); + } + } + + // Exchange tree_essential via MPI. + // Using non-blocking receive call. + MPI_Request request[r->mpi_num]; + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + if (r->N_tree_essential_recv[i]==0) continue; + MPI_Irecv(r->tree_essential_recv[i], sizeof(struct reb_treecell)* r->N_tree_essential_recv[i], MPI_CHAR, i, i*r->mpi_num+r->mpi_id, MPI_COMM_WORLD, &(request[i])); + } + // Using blocking send call. + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + if (r->N_tree_essential_send[i]==0) continue; + MPI_Send(r->tree_essential_send[i], sizeof(struct reb_treecell)*r->N_tree_essential_send[i], MPI_CHAR, i, r->mpi_id*r->mpi_num+i, MPI_COMM_WORLD); + } + // Wait for all tree_essential to be received. + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + if (r->N_tree_essential_recv[i]==0) continue; + MPI_Status status; + MPI_Wait(&(request[i]), &status); + } + // Add tree_essential to local tree + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + for (int j=0;jN_tree_essential_recv[i];j++){ + reb_tree_add_essential_node(r, &(r->tree_essential_recv[i][j])); + } + } + // Bring everybody into sync, clean up. + MPI_Barrier(MPI_COMM_WORLD); + for (int i=0;impi_num;i++){ + r->N_tree_essential_send[i] = 0; + r->N_tree_essential_recv[i] = 0; + } +} + +void reb_communication_mpi_distribute_essential_tree_for_collisions(struct reb_simulation* const r){ + /////////////////////////////////////////////////////////////// + // Distribute essential tree needed for gravity and collisions + /////////////////////////////////////////////////////////////// + + // Distribute the number of cells to be transferred. + for (int i=0;impi_num;i++){ + MPI_Scatter(r->N_tree_essential_send, 1, MPI_INT, &(r->N_tree_essential_recv[i]), 1, MPI_INT, i, MPI_COMM_WORLD); + } + // Allocate memory for incoming tree_essential + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + while (r->N_tree_essential_recv_max[i]N_tree_essential_recv[i]){ + r->N_tree_essential_recv_max[i] += 32; + r->tree_essential_recv[i] = realloc(r->tree_essential_recv[i],sizeof(struct reb_treecell)*r->N_tree_essential_recv_max[i]); + } + } + + // Exchange tree_essential via MPI. + // Using non-blocking receive call. + MPI_Request request[r->mpi_num]; + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + if (r->N_tree_essential_recv[i]==0) continue; + MPI_Irecv(r->tree_essential_recv[i], sizeof(struct reb_treecell)*r->N_tree_essential_recv[i], MPI_CHAR, i, i*r->mpi_num+r->mpi_id, MPI_COMM_WORLD, &(request[i])); + } + // Using blocking send call. + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + if (r->N_tree_essential_send[i]==0) continue; + MPI_Send(r->tree_essential_send[i], sizeof(struct reb_treecell)*r->N_tree_essential_send[i], MPI_CHAR, i, r->mpi_id*r->mpi_num+i, MPI_COMM_WORLD); + } + // Wait for all tree_essential to be received. + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + if (r->N_tree_essential_recv[i]==0) continue; + MPI_Status status; + MPI_Wait(&(request[i]), &status); + } + // Add tree_essential to local tree + for (int i=0;impi_num;i++){ + for (int j=0;jN_tree_essential_recv[i];j++){ + reb_tree_add_essential_node(r, &(r->tree_essential_recv[i][j])); + } + } + // Bring everybody into sync, clean up. + MPI_Barrier(MPI_COMM_WORLD); + for (int i=0;impi_num;i++){ + r->N_tree_essential_send[i] = 0; + r->N_tree_essential_recv[i] = 0; + } + + ////////////////////////////////////////////////////// + // Distribute particles needed for collisiosn search + ////////////////////////////////////////////////////// + + // Distribute the number of particles to be transferred. + for (int i=0;impi_num;i++){ + MPI_Scatter(r->N_particles_send, 1, MPI_INT, &(r->N_particles_recv[i]), 1, MPI_INT, i, MPI_COMM_WORLD); + } + // Allocate memory for incoming particles + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + while (r->N_particles_recv_max[i]N_particles_recv[i]){ + r->N_particles_recv_max[i] += 32; + r->particles_recv[i] = realloc(r->particles_recv[i],sizeof(struct reb_particle)*r->N_particles_recv_max[i]); + } + } + + // Exchange particles via MPI. + // Using non-blocking receive call. + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + if (r->N_particles_recv[i]==0) continue; + MPI_Irecv(r->particles_recv[i], sizeof(struct reb_particle)* r->N_particles_recv[i], MPI_CHAR, i, i*r->mpi_num+r->mpi_id, MPI_COMM_WORLD, &(request[i])); + } + // Using blocking send call. + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + if (r->N_particles_send[i]==0) continue; + MPI_Send(r->particles_send[i], sizeof(struct reb_particle)* r->N_particles_send[i], MPI_CHAR, i, r->mpi_id*r->mpi_num+i, MPI_COMM_WORLD); + } + // Wait for all particles to be received. + for (int i=0;impi_num;i++){ + if (i==r->mpi_id) continue; + if (r->N_particles_recv[i]==0) continue; + MPI_Status status; + MPI_Wait(&(request[i]), &status); + } + // No need to add particles to tree as reference already set. + // Bring everybody into sync, clean up. + MPI_Barrier(MPI_COMM_WORLD); + for (int i=0;impi_num;i++){ + r->N_particles_send[i] = 0; + r->N_particles_recv[i] = 0; + } +} + + +#endif // MPI diff --git a/rebound/source/src/communication_mpi.h b/rebound/source/src/communication_mpi.h new file mode 100644 index 0000000000000000000000000000000000000000..b7f6a084964edf47780b42f535ed2543d27efc94 --- /dev/null +++ b/rebound/source/src/communication_mpi.h @@ -0,0 +1,118 @@ +/** + * @file communication_mpi.h + * @brief Handles communication between nodes using MPI. + * @author Hanno Rein + * + * @details These routines handle the communication between + * different nodes via the Message Passing Interface (MPI). + * There are two different types of communications + * implemented at the moment: + * - Distributing particles to the correct node. + * - Creating, and distributing the essential tree to allow + * other nodes walk remote trees. Note that the opening + * criteria is different for gravity and collision + * tree walks. + * + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + + +#ifndef _COMMUNICATION_MPI_H +#define _COMMUNICATION_MPI_H +#ifdef MPI +#include "mpi.h" + +/** + * \defgroup mpistructures Data structures for MPI comminication. + * These buffers are used for communicating with other nodes. + * Each buffer is an array with the number of elements being equal + * to the number of nodes. + * The number of particles/cells that have to be send to every other + * node is saved in N_particles_send/N_tree_essential_send. The number + * are different every time and have to be communicated to the other + * nodes before the actual communication of the particles/cells. + * @{ + */ + + +/** + * Initializes MPI and sets up all necessary data structures. + * @param argc Number of command line arguments. + * @param argc Command line arguments. + */ +void reb_communication_mpi_init(struct reb_simulation* const r, int argc, char** argv); + +/** + * Send particles in buffer particles_send to corresponding node. + * Receives particles from all nodes in buffer particles_recv and adds them + * to the current simulation. + */ +void reb_communication_mpi_distribute_particles(struct reb_simulation* const r); + +/** + * Send all particles to all nodes. Does not add particles to simulation. + * Needs manual cleanup. Used for energy calculation. + */ +void reb_communication_mpi_distribute_particles_all_to_all(struct reb_simulation* const r); + +/** + * Places a particle in the send queue. + * @param pt reb_particle to be added to the send queue. + * @param proc_id reb_particle will be send to this MPI node on next call of communication_mpi_distribute_particles(); + */ +void reb_communication_mpi_add_particle_to_send_queue(struct reb_simulation* const r, struct reb_particle pt, int proc_id); + +/** + * Determine if the root box is local or if it is a copy of a remote node. + * @param i Id of root box. + */ +int reb_communication_mpi_rootbox_is_local(struct reb_simulation* const r, int i); + +/** + * Send cells in buffer tree_essential_send to corresponding node. + * Receives cells from all nodes in buffer tree_essential_recv and adds them + * to the non-local root boxes. + */ +void reb_communication_mpi_distribute_essential_tree_for_gravity(struct reb_simulation* const r); + +/** + * Prepares the essential tree of a root box for communication with other nodes. + * @param root The root cell under investigation. + */ +void reb_communication_mpi_prepare_essential_tree_for_gravity(struct reb_simulation* const r, struct reb_treecell* root); + +/** + * Send cells/particles in buffer tree_essential_send/particles_send to corresponding node. + * Receives cells/particles from all nodes in buffers. Does not insert particles + * into local tree. + */ +void reb_communication_mpi_distribute_essential_tree_for_collisions(struct reb_simulation* const r); + +/** + * Prepares the essential tree/particles of a root box for communication with other nodes. + * Adds copy of particles into particles_send. + * @param root The root cell under investigation. + */ +void reb_communication_mpi_prepare_essential_tree_for_collisions(struct reb_simulation* const r, struct reb_treecell* root); + + +#endif // MPI +#endif // _COMMUNICATION_MPI_H diff --git a/rebound/source/src/derivatives.c b/rebound/source/src/derivatives.c new file mode 100644 index 0000000000000000000000000000000000000000..40aad43b687fde0a7f0318d669d00fd87c18c447 --- /dev/null +++ b/rebound/source/src/derivatives.c @@ -0,0 +1,2298 @@ +/** + * @file derivatives.c + * @brief Functions to calculate derivatives of Keplerian orbits. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2016 Hanno Rein, Dan Tamayp, Rejean Leblanc + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include "rebound.h" +#include "tools.h" +#include "derivatives.h" + + + +struct reb_particle reb_particle_derivative_lambda(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + double dq_dlambda = -p/(1.-q); + double dp_dlambda = q/(1.-q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dlambda = -1./(1.-q)*slp; + double dslp_dlambda = 1./(1.-q)*clp; + + double l = 1.-sqrt(1.-h*h-k*k); + double dxi_dlambda = a*(dclp_dlambda + dp_dlambda/(2.-l)*h); + double deta_dlambda = a*(dslp_dlambda - dp_dlambda/(2.-l)*k); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dlambda = deta_dlambda*ix-dxi_dlambda*iy; + + np.x = dxi_dlambda+0.5*iy*dW_dlambda; + np.y = deta_dlambda-0.5*ix*dW_dlambda; + np.z = 0.5*iz*dW_dlambda; + + double an = sqrt(G*(po.m+primary.m)/a); + double ddxi_dlambda = an/((1.-q)*(1.-q))*dq_dlambda*(-slp+q/(2.-l)*h) + + an/(1.-q)*(-dslp_dlambda+dq_dlambda/(2.-l)*h); + double ddeta_dlambda = an/((1.-q)*(1.-q))*dq_dlambda*(+clp-q/(2.-l)*k) + + an/(1.-q)*(dclp_dlambda-dq_dlambda/(2.-l)*k); + double ddW_dlambda = ddeta_dlambda*ix-ddxi_dlambda*iy; + np.vx = ddxi_dlambda+0.5*iy*ddW_dlambda; + np.vy = ddeta_dlambda-0.5*ix*ddW_dlambda; + np.vz = 0.5*iz*ddW_dlambda; + + return np; +} + +struct reb_particle reb_particle_derivative_h(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dh = -1./(1.-q)*(-slp*clp); + double dslp_dh = -1./(1.-q)*(clp*clp); + + double l = 1.-sqrt(1.-h*h-k*k); + double dl_dh = 1./sqrt(1.-h*h-k*k)*h; + double dp_dh = 1./(1.-q)*(-clp); + double dxi_dh = a*(dclp_dh + dp_dh/(2.-l)*h + p/(2.-l) + p/((2.-l)*(2.-l))*dl_dh*h); + double deta_dh = a*(dslp_dh - dp_dh/(2.-l)*k - p/((2.-l)*(2.-l))*k*dl_dh -1); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dh = deta_dh*ix-dxi_dh*iy; + + np.x = dxi_dh+0.5*iy*dW_dh; + np.y = deta_dh-0.5*ix*dW_dh; + np.z = 0.5*iz*dW_dh; + + double dq_dh = 1./(1.-q)*(slp-h); + + double an = sqrt(G*(po.m+primary.m)/a); + double ddxi_dh = dq_dh*an/((1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + + an/(1.-q) * (-dslp_dh+dq_dh/(2.-l)*h+dl_dh*q/((2.-l)*(2.-l))*h+q/(2.-l)); + double ddeta_dh = dq_dh*an/((1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + + an/(1.-q) * (+dclp_dh-dq_dh/(2.-l)*k-dl_dh*q/((2.-l)*(2.-l))*k); + double ddW_dh = ddeta_dh*ix-ddxi_dh*iy; + + np.vx = ddxi_dh+0.5*iy*ddW_dh; + np.vy = ddeta_dh-0.5*ix*ddW_dh; + np.vz = 0.5*iz*ddW_dh; + + return np; +} + +struct reb_particle reb_particle_derivative_k(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dk = -1./(1.-q)*(slp*slp); + double dslp_dk = -1./(1.-q)*(-slp*clp); + + double l = 1.-sqrt(1.-h*h-k*k); + double dl_dk = 1./sqrt(1.-h*h-k*k)*k; + double dp_dk = 1./(1.-q)*(slp); + double dxi_dk = a*(dclp_dk + dp_dk/(2.-l)*h + p/((2.-l)*(2.-l))*dl_dk*h -1); + double deta_dk = a*(dslp_dk - dp_dk/(2.-l)*k - p/(2.-l) - p/((2.-l)*(2.-l))*dl_dk*k); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dk = deta_dk*ix-dxi_dk*iy; + + np.x = dxi_dk+0.5*iy*dW_dk; + np.y = deta_dk-0.5*ix*dW_dk; + np.z = 0.5*iz*dW_dk; + + double dq_dk = 1./(1.-q)*(clp-k); + + double an = sqrt(G*(po.m+primary.m)/a); + double ddxi_dk = dq_dk*an/((1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + + an/(1.-q) * (-dslp_dk+dq_dk/(2.-l)*h+dl_dk*q/((2.-l)*(2.-l))*h); + double ddeta_dk = dq_dk*an/((1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + + an/(1.-q) * (+dclp_dk-dq_dk/(2.-l)*k-dl_dk*q/((2.-l)*(2.-l))*k-q/(2.-l)); + double ddW_dk = ddeta_dk*ix-ddxi_dk*iy; + + np.vx = ddxi_dk+0.5*iy*ddW_dk; + np.vy = ddeta_dk-0.5*ix*ddW_dk; + np.vz = 0.5*iz*ddW_dk; + + return np; +} + +struct reb_particle reb_particle_derivative_k_k(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dk = -1./(1.-q)*(slp*slp); + double dslp_dk = -1./(1.-q)*(-slp*clp); + + double l = 1.-sqrt(1.-h*h-k*k); + double dl_dk = 1./sqrt(1.-h*h-k*k)*k; + double dl_dkk = 1./sqrt(1.-h*h-k*k) + (k*k)/(sqrt(1.-h*h-k*k)*sqrt(1.-h*h-k*k)*sqrt(1.-h*h-k*k)); + double dp_dk = 1./(1.-q)*(slp); + double dq_dk = 1./(1.-q)*(clp-k); + double dp_dkk = dq_dk/((1.-q)*(1.-q))*(slp) + 1./(1.-q)*(dslp_dk); + double dq_dkk = dq_dk/((1.-q)*(1.-q))*(clp-k) + 1./(1.-q)*(dclp_dk -1.); + double dclp_dkk = -dq_dk/((1.-q)*(1.-q))*(slp*slp) -2./(1.-q)*slp*dslp_dk; + double dslp_dkk = -dq_dk/((1.-q)*(1.-q))*(-slp*clp) -1./(1.-q)*-slp*dclp_dk -1./(1.-q)*-dslp_dk*clp; + + double dxi_dkk = a*(dclp_dkk + dp_dkk/(2.-l)*h + dl_dk*dp_dk/((2.-l)*(2.-l))*h + dp_dk/((2.-l)*(2.-l))*dl_dk*h + 2.*dl_dk*p/((2.-l)*(2.-l)*(2.-l))*dl_dk*h + p/((2.-l)*(2.-l))*dl_dkk*h); + double deta_dkk = a*(dslp_dkk - dp_dkk/(2.-l)*k - dl_dk*dp_dk/((2.-l)*(2.-l))*k - dp_dk/(2.-l) - dp_dk/(2.-l) - dl_dk*p/((2.-l)*(2.-l)) + - dp_dk/((2.-l)*(2.-l))*dl_dk*k - 2.*dl_dk*p/((2.-l)*(2.-l)*(2.-l))*dl_dk*k - p/((2.-l)*(2.-l))*dl_dkk*k - p/((2.-l)*(2.-l))*dl_dk); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dkk = deta_dkk*ix-dxi_dkk*iy; + + np.x = dxi_dkk+0.5*iy*dW_dkk; + np.y = deta_dkk-0.5*ix*dW_dkk; + np.z = 0.5*iz*dW_dkk; + + double an = sqrt(G*(po.m+primary.m)/a); + double ddxi_dkk = dq_dkk*an/((1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + 2.*dq_dk*dq_dk*an/((1.-q)*(1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + + dq_dk*an/((1.-q)*(1.-q))*(-dslp_dk+dq_dk/(2.-l)*h+dl_dk*q/((2.-l)*(2.-l))*h) + + dq_dk*an/((1.-q)*(1.-q))*(-dslp_dk+dq_dk/(2.-l)*h+dl_dk*q/((2.-l)*(2.-l))*h) + + an/(1.-q)*(-dslp_dkk + dq_dkk/(2.-l)*h + dl_dk*dq_dk/((2.-l)*(2.-l))*h + + dl_dkk*q/((2.-l)*(2.-l))*h + dl_dk*dq_dk/((2.-l)*(2.-l))*h + 2.*dl_dk*dl_dk*q/((2.-l)*(2.-l)*(2.-l))*h ); + double ddeta_dkk = dq_dkk*an/((1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + 2.*dq_dk*dq_dk*an/((1.-q)*(1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + + dq_dk*an/((1.-q)*(1.-q))*(+dclp_dk-dq_dk/(2.-l)*k-dl_dk*q/((2.-l)*(2.-l))*k-q/(2.-l)) + + dq_dk*an/((1.-q)*(1.-q))*(+dclp_dk-dq_dk/(2.-l)*k-dl_dk*q/((2.-l)*(2.-l))*k-q/(2.-l)) + + an/(1.-q)*(+dclp_dkk - dq_dkk/(2.-l)*k - dq_dk*dl_dk/((2.-l)*(2.-l))*k - dq_dk/(2.-l) + - dl_dkk*q/((2.-l)*(2.-l))*k - dl_dk*dq_dk/((2.-l)*(2.-l))*k - 2.*dl_dk*dl_dk*q/((2.-l)*(2.-l)*(2.-l))*k - dl_dk*q/((2.-l)*(2.-l)) - dq_dk/(2.-l) - dl_dk*q/((2.-l)*(2.-l)) ); + double ddW_dkk = ddeta_dkk*ix-ddxi_dkk*iy; + + np.vx = ddxi_dkk+0.5*iy*ddW_dkk; + np.vy = ddeta_dkk-0.5*ix*ddW_dkk; + np.vz = 0.5*iz*ddW_dkk; + + return np; +} + +struct reb_particle reb_particle_derivative_h_h(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dh = -1./(1.-q)*(-slp*clp); + double dslp_dh = -1./(1.-q)*(clp*clp); + + double l = 1.-sqrt(1.-h*h-k*k); + double dl_dh = 1./sqrt(1.-h*h-k*k)*h; + double dl_dhh = 1./sqrt(1.-h*h-k*k) + (h*h)/(sqrt(1.-h*h-k*k)*sqrt(1.-h*h-k*k)*sqrt(1.-h*h-k*k)); + double dp_dh = 1./(1.-q)*(-clp); + double dq_dh = 1./(1.-q)*(slp-h); + double dq_dhh = 1./((1.-q)*(1.-q))*dq_dh*(slp-h) + 1./(1.-q)*(dslp_dh-1); + double dp_dhh = 1./((1.-q)*(1.-q))*dq_dh*(-clp) + 1./(1.-q)*(-dclp_dh); + double dclp_dhh = -1./((1.-q)*(1.-q))*dq_dh*(-slp*clp) - 1./(1.-q)*(-dslp_dh*clp) - 1./(1.-q)*(-slp*dclp_dh); + double dslp_dhh = -1./((1.-q)*(1.-q))*dq_dh*(clp*clp) - 2./(1.-q)*(clp*dclp_dh); + + double dxi_dhh = a*(dclp_dhh + (dp_dhh/(2.-l)*h + dl_dh*dp_dh/((2.-l)*(2.-l))*h + dp_dh/(2.-l)) + (dp_dh/(2.-l)+ dl_dh*p/((2.-l)*(2.-l))) + + (dp_dh/((2.-l)*(2.-l))*dl_dh*h + 2.*p/((2.-l)*(2.-l)*(2.-l))*dl_dh*dl_dh*h + p/((2.-l)*(2.-l))*dl_dhh*h + p/((2.-l)*(2.-l))*dl_dh)); + double deta_dhh = a*(dslp_dhh + (-dp_dhh/(2.-l)*k - dl_dh*dp_dh/((2.-l)*(2.-l))*k) +(- dp_dh/((2.-l)*(2.-l))*k*dl_dh - 2.*p/((2.-l)*(2.-l)*(2.-l))*k*dl_dh*dl_dh- p/((2.-l)*(2.-l))*k*dl_dhh )); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dhh = deta_dhh*ix-dxi_dhh*iy; + + np.x = dxi_dhh+0.5*iy*dW_dhh; + np.y = deta_dhh-0.5*ix*dW_dhh; + np.z = 0.5*iz*dW_dhh; + + double an = sqrt(G*(po.m+primary.m)/a); + double ddxi_dhh = dq_dhh*an/((1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + 2.*dq_dh*dq_dh*an/((1.-q)*(1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + + dq_dh*an/((1.-q)*(1.-q))*(-dslp_dh+dq_dh/(2.-l)*h+dl_dh*q/((2.-l)*(2.-l))*h+q/(2.-l)) + + dq_dh*an/((1.-q)*(1.-q))*(-dslp_dh+dq_dh/(2.-l)*h+dl_dh*q/((2.-l)*(2.-l))*h+q/(2.-l)) + + an/(1.-q)*(-dslp_dhh + (dq_dhh/(2.-l)*h+dl_dh*dq_dh/((2.-l)*(2.-l))*h+dq_dh/(2.-l)) + + (dl_dhh*q/((2.-l)*(2.-l))*h+dl_dh*dq_dh/((2.-l)*(2.-l))*h+2.*dl_dh*dl_dh*q/((2.-l)*(2.-l)*(2.-l))*h+dl_dh*q/((2.-l)*(2.-l))) + (dq_dh/(2.-l)+dl_dh*q/((2.-l)*(2.-l))) ); + double ddeta_dhh = dq_dhh*an/((1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + 2.*dq_dh*dq_dh*an/((1.-q)*(1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + + dq_dh*an/((1.-q)*(1.-q))*(+dclp_dh-dq_dh/(2.-l)*k-dl_dh*q/((2.-l)*(2.-l))*k) + + dq_dh*an/((1.-q)*(1.-q))*(+dclp_dh-dq_dh/(2.-l)*k-dl_dh*q/((2.-l)*(2.-l))*k) + + an/(1.-q)*(+dclp_dhh - dq_dhh/(2.-l)*k - dl_dh*dq_dh/((2.-l)*(2.-l))*k + - dl_dhh*q/((2.-l)*(2.-l))*k - dl_dh*dq_dh/((2.-l)*(2.-l))*k - 2.*dl_dh*dl_dh*q/((2.-l)*(2.-l)*(2.-l))*k ); + + double ddW_dhh = ddeta_dhh*ix-ddxi_dhh*iy; + + np.vx = ddxi_dhh+0.5*iy*ddW_dhh; + np.vy = ddeta_dhh-0.5*ix*ddW_dhh; + np.vz = 0.5*iz*ddW_dhh; + + return np; +} + +struct reb_particle reb_particle_derivative_lambda_lambda(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + double dq_dlambda = -p/(1.-q); + double dp_dlambda = q/(1.-q); + double dq_dlambdalambda = -dp_dlambda/(1.-q) - p/((1.-q)*(1.-q))*dq_dlambda ; + double dp_dlambdalambda = dq_dlambda/(1.-q) + q/((1.-q)*(1.-q))*dq_dlambda ; + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dlambda = -1./(1.-q)*slp; + double dslp_dlambda = 1./(1.-q)*clp; + double dclp_dlambdalambda = -1./((1.-q)*(1.-q))*dq_dlambda*slp -1./(1.-q)*dslp_dlambda; + double dslp_dlambdalambda = 1./((1.-q)*(1.-q))*dq_dlambda*clp + 1./(1.-q)*dclp_dlambda; + + double l = 1.-sqrt(1.-h*h-k*k); + double dxi_dlambdalambda = a*(dclp_dlambdalambda + dp_dlambdalambda/(2.-l)*h); + double deta_dlambdalambda = a*(dslp_dlambdalambda - dp_dlambdalambda/(2.-l)*k); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dlambdalambda = deta_dlambdalambda*ix-dxi_dlambdalambda*iy; + + np.x = dxi_dlambdalambda+0.5*iy*dW_dlambdalambda; + np.y = deta_dlambdalambda-0.5*ix*dW_dlambdalambda; + np.z = 0.5*iz*dW_dlambdalambda; + + double an = sqrt(G*(po.m+primary.m)/a); + double ddxi_dlambdalambda = 2.*an/((1.-q)*(1.-q)*(1.-q))*dq_dlambda*dq_dlambda*(-slp+q/(2.-l)*h) + + an/((1.-q)*(1.-q))*dq_dlambdalambda*(-slp+q/(2.-l)*h) + an/((1.-q)*(1.-q))*dq_dlambda*(-dslp_dlambda+dq_dlambda/(2.-l)*h) + + an/((1.-q)*(1.-q))*dq_dlambda*(-dslp_dlambda+dq_dlambda/(2.-l)*h) + an/(1.-q)*(-dslp_dlambdalambda+dq_dlambdalambda/(2.-l)*h); + double ddeta_dlambdalambda = 2.*an/((1.-q)*(1.-q)*(1.-q))*dq_dlambda*dq_dlambda*(+clp-q/(2.-l)*k) + + an/((1.-q)*(1.-q))*dq_dlambdalambda*(+clp-q/(2.-l)*k) + an/((1.-q)*(1.-q))*dq_dlambda*(dclp_dlambda-dq_dlambda/(2.-l)*k) + + an/((1.-q)*(1.-q))*dq_dlambda*(dclp_dlambda-dq_dlambda/(2.-l)*k) + an/(1.-q)*(dclp_dlambdalambda-dq_dlambdalambda/(2.-l)*k); + + double ddW_dlambdalambda = ddeta_dlambdalambda*ix-ddxi_dlambdalambda*iy; + np.vx = ddxi_dlambdalambda+0.5*iy*ddW_dlambdalambda; + np.vy = ddeta_dlambdalambda-0.5*ix*ddW_dlambdalambda; + np.vz = 0.5*iz*ddW_dlambdalambda; + + return np; +} + +struct reb_particle reb_particle_derivative_k_lambda(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dk = -1./(1.-q)*(slp*slp); + double dslp_dk = -1./(1.-q)*(-slp*clp); + double dclp_dlambda = -1./(1.-q)*slp; + double dslp_dlambda = 1./(1.-q)*clp; + + double l = 1.-sqrt(1.-h*h-k*k); + double dl_dk = 1./sqrt(1.-h*h-k*k)*k; + double dp_dk = 1./(1.-q)*(slp); + double dq_dk = 1./(1.-q)*(clp-k); + double dq_dlambda = -p/(1.-q); + double dp_dlambda = q/(1.-q); + double dq_dklambda = -dp_dk/(1.-q) -p/((1.-q)*(1.-q))*dq_dk; + double dp_dklambda = dq_dk/(1.-q) + q/((1.-q)*(1.-q))*dq_dk; + double dclp_dklambda = -1./(1.-q)*dslp_dk -1./((1.-q)*(1.-q))*dq_dk*slp; + double dslp_dklambda = 1./(1.-q)*dclp_dk + 1./((1.-q)*(1.-q))*dq_dk*clp; + + + double dxi_dklambda = a*(dclp_dklambda + dp_dklambda/(2.-l)*h + dp_dlambda/((2.-l)*(2.-l))*dl_dk*h); + double deta_dklambda = a*(dslp_dklambda - dp_dklambda/(2.-l)*k - dp_dlambda/(2.-l) - dp_dlambda/((2.-l)*(2.-l))*dl_dk*k); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dklambda = deta_dklambda*ix-dxi_dklambda*iy; + + np.x = dxi_dklambda+0.5*iy*dW_dklambda; + np.y = deta_dklambda-0.5*ix*dW_dklambda; + np.z = 0.5*iz*dW_dklambda; + + double an = sqrt(G*(po.m+primary.m)/a); + double ddxi_dklambda = dq_dklambda*an/((1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + 2.*dq_dk*dq_dlambda*an/((1.-q)*(1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + + dq_dk*an/((1.-q)*(1.-q))*(-dslp_dlambda+dq_dlambda/(2.-l)*h) + + dq_dlambda*an/((1.-q)*(1.-q))*(-dslp_dk+dq_dk/(2.-l)*h+dl_dk*q/((2.-l)*(2.-l))*h) + + an/(1.-q)*(-dslp_dklambda+dq_dklambda/(2.-l)*h+dl_dk*dq_dlambda/((2.-l)*(2.-l))*h); + double ddeta_dklambda = dq_dklambda*an/((1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + 2.*dq_dk*dq_dlambda*an/((1.-q)*(1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + + dq_dk*an/((1.-q)*(1.-q))*(+dclp_dlambda-dq_dlambda/(2.-l)*k) + + dq_dlambda*an/((1.-q)*(1.-q))*(+dclp_dk-dq_dk/(2.-l)*k-dl_dk*q/((2.-l)*(2.-l))*k-q/(2.-l)) + + an/(1.-q)*(+dclp_dklambda-dq_dklambda/(2.-l)*k-dl_dk*dq_dlambda/((2.-l)*(2.-l))*k-dq_dlambda/(2.-l)); + double ddW_dklambda = ddeta_dklambda*ix-ddxi_dklambda*iy; + + np.vx = ddxi_dklambda+0.5*iy*ddW_dklambda; + np.vy = ddeta_dklambda-0.5*ix*ddW_dklambda; + np.vz = 0.5*iz*ddW_dklambda; + + return np; +} + +struct reb_particle reb_particle_derivative_h_lambda(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dh = -1./(1.-q)*(-slp*clp); + double dslp_dh = -1./(1.-q)*(clp*clp); + double dclp_dlambda = -1./(1.-q)*slp; + double dslp_dlambda = 1./(1.-q)*clp; + + double l = 1.-sqrt(1.-h*h-k*k); + double dl_dh = 1./sqrt(1.-h*h-k*k)*h; + double dp_dh = 1./(1.-q)*(-clp); + double dq_dh = 1./(1.-q)*(slp-h); + double dq_dlambda = -p/(1.-q); + double dp_dlambda = q/(1.-q); + double dq_dhlambda = -dp_dh/(1.-q) -p/((1.-q)*(1.-q))*dq_dh; + double dp_dhlambda = dq_dh/(1.-q) +q/((1.-q)*(1.-q))*dq_dh; + double dclp_dhlambda = -1./((1.-q)*(1.-q))*(-slp*clp)*dq_dlambda -1./(1.-q)*(-dslp_dlambda*clp) -1./(1.-q)*(-slp*dclp_dlambda); + double dslp_dhlambda = -1./((1.-q)*(1.-q))*(clp*clp)*dq_dlambda -2./(1.-q)*(clp*dclp_dlambda); + + double dxi_dhlambda = a*(dclp_dhlambda + dp_dhlambda/(2.-l)*h + dp_dlambda/(2.-l) + dp_dlambda/((2.-l)*(2.-l))*dl_dh*h); + double deta_dhlambda = a*(dslp_dhlambda - dp_dhlambda/(2.-l)*k - dp_dlambda/((2.-l)*(2.-l))*k*dl_dh); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dhlambda = deta_dhlambda*ix-dxi_dhlambda*iy; + + np.x = dxi_dhlambda+0.5*iy*dW_dhlambda; + np.y = deta_dhlambda-0.5*ix*dW_dhlambda; + np.z = 0.5*iz*dW_dhlambda; + + double an = sqrt(G*(po.m+primary.m)/a); + double ddxi_dhlambda = dq_dhlambda*an/((1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + 2.*dq_dlambda*dq_dh*an/((1.-q)*(1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + + dq_dh*an/((1.-q)*(1.-q))*(-dslp_dlambda+dq_dlambda/(2.-l)*h) + + dq_dlambda*an/((1.-q)*(1.-q))*(-dslp_dh+dq_dh/(2.-l)*h+dl_dh*q/((2.-l)*(2.-l))*h+q/(2.-l)) + + an/(1.-q)*(-dslp_dhlambda+dq_dhlambda/(2.-l)*h+dl_dh*dq_dlambda/((2.-l)*(2.-l))*h+dq_dlambda/(2.-l)); + double ddeta_dhlambda = dq_dhlambda*an/((1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + 2.*dq_dh*dq_dlambda*an/((1.-q)*(1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + + dq_dh*an/((1.-q)*(1.-q))*(+dclp_dlambda-dq_dlambda/(2.-l)*k) + + dq_dlambda*an/((1.-q)*(1.-q))*(+dclp_dh-dq_dh/(2.-l)*k-dl_dh*q/((2.-l)*(2.-l))*k) + + an/(1.-q)*(+dclp_dhlambda-dq_dhlambda/(2.-l)*k-dl_dh*dq_dlambda/((2.-l)*(2.-l))*k); + double ddW_dhlambda = ddeta_dhlambda*ix-ddxi_dhlambda*iy; + + np.vx = ddxi_dhlambda+0.5*iy*ddW_dhlambda; + np.vy = ddeta_dhlambda-0.5*ix*ddW_dhlambda; + np.vz = 0.5*iz*ddW_dhlambda; + + return np; +} + +struct reb_particle reb_particle_derivative_k_h(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dk = -1./(1.-q)*(slp*slp); + double dslp_dk = -1./(1.-q)*(-slp*clp); + double dclp_dh = -1./(1.-q)*(-slp*clp); + double dslp_dh = -1./(1.-q)*(clp*clp); + + double l = 1.-sqrt(1.-h*h-k*k); + double dl_dh = 1./sqrt(1.-h*h-k*k)*h; + double dp_dh = 1./(1.-q)*(-clp); + double dq_dh = 1./(1.-q)*(slp-h); + double dl_dk = 1./sqrt(1.-h*h-k*k)*k; + double dp_dk = 1./(1.-q)*(slp); + double dq_dk = 1./(1.-q)*(clp-k); + double dl_dkh = k*h/(sqrt(1.-h*h-k*k)*sqrt(1.-h*h-k*k)*sqrt(1.-h*h-k*k)); + double dp_dkh = 1./((1.-q)*(1.-q))*dq_dh*(slp) + 1./(1.-q)*(dslp_dh); + double dq_dkh = 1./((1.-q)*(1.-q))*dq_dh*(clp-k) + 1./(1.-q)*(dclp_dh); + double dclp_dkh = -1./((1.-q)*(1.-q))*dq_dh*(slp*slp) -2./(1.-q)*(slp*dslp_dh); + double dslp_dkh = -1./((1.-q)*(1.-q))*dq_dh*(-slp*clp) -1./(1.-q)*(-dslp_dh*clp) -1./(1.-q)*(-slp*dclp_dh); + + double dxi_dkh = a*(dclp_dkh + dp_dkh/(2.-l)*h + dl_dh*dp_dk/((2.-l)*(2.-l))*h + dp_dk/(2.-l) + + dp_dh/((2.-l)*(2.-l))*dl_dk*h + 2.*p/((2.-l)*(2.-l)*(2.-l))*dl_dk*dl_dh*h + p/((2.-l)*(2.-l))*dl_dkh*h + p/((2.-l)*(2.-l))*dl_dk); + double deta_dkh = a*(dslp_dkh - dp_dkh/(2.-l)*k - dl_dh*dp_dk/((2.-l)*(2.-l))*k - dp_dh/(2.-l)- dl_dh*p/((2.-l)*(2.-l)) + - dp_dh/((2.-l)*(2.-l))*dl_dk*k - p/((2.-l)*(2.-l))*dl_dkh*k - 2.*p/((2.-l)*(2.-l)*(2.-l))*dl_dk*dl_dh*k); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dkh = deta_dkh*ix-dxi_dkh*iy; + + np.x = dxi_dkh+0.5*iy*dW_dkh; + np.y = deta_dkh-0.5*ix*dW_dkh; + np.z = 0.5*iz*dW_dkh; + + double an = sqrt(G*(po.m+primary.m)/a); + double ddxi_dkh = dq_dkh*an/((1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + 2.*dq_dh*dq_dk*an/((1.-q)*(1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + + dq_dk*an/((1.-q)*(1.-q))*(-dslp_dh+dq_dh/(2.-l)*h + dl_dh*q/((2.-l)*(2.-l))*h + q/(2.-l)) + + dq_dh*an/((1.-q)*(1.-q))*(-dslp_dk+dq_dk/(2.-l)*h+dl_dk*q/((2.-l)*(2.-l))*h) + + an/(1.-q)*(-dslp_dkh+(dq_dkh/(2.-l)*h+dl_dh*dq_dk/((2.-l)*(2.-l))*h+dq_dk/(2.-l)) + + dl_dkh*q/((2.-l)*(2.-l))*h + dl_dk*dq_dh/((2.-l)*(2.-l))*h + 2.*dl_dh*dl_dk*q/((2.-l)*(2.-l)*(2.-l))*h + dl_dk*q/((2.-l)*(2.-l))); + double ddeta_dkh = dq_dkh*an/((1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + 2.*dq_dh*dq_dk*an/((1.-q)*(1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + + dq_dk*an/((1.-q)*(1.-q))*(+dclp_dh-dq_dh/(2.-l)*k-dl_dh*q/((2.-l)*(2.-l))*k) + + dq_dh*an/((1.-q)*(1.-q))*(+dclp_dk-dq_dk/(2.-l)*k-dl_dk*q/((2.-l)*(2.-l))*k-q/(2.-l)) + + an/(1.-q)*(+dclp_dkh-dq_dkh/(2.-l)*k-dl_dh*dq_dk/((2.-l)*(2.-l))*k + -dl_dkh*q/((2.-l)*(2.-l))*k -dl_dk*dq_dh/((2.-l)*(2.-l))*k -2.*dl_dk*dl_dh*q/((2.-l)*(2.-l)*(2.-l))*k -dq_dh/(2.-l)-dl_dh*q/((2.-l)*(2.-l)) ); + double ddW_dkh = ddeta_dkh*ix-ddxi_dkh*iy; + + np.vx = ddxi_dkh+0.5*iy*ddW_dkh; + np.vy = ddeta_dkh-0.5*ix*ddW_dkh; + np.vz = 0.5*iz*ddW_dkh; + + return np; +} + +struct reb_particle reb_particle_derivative_a(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + + double l = 1.-sqrt(1.-h*h-k*k); + double dxi_da = clp + p/(2.-l)*h -k; + double deta_da = slp - p/(2.-l)*k -h; + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_da = deta_da*ix-dxi_da*iy; + + np.x = dxi_da+0.5*iy*dW_da; + np.y = deta_da-0.5*ix*dW_da; + np.z = 0.5*iz*dW_da; + + double dan_da = -0.5*sqrt(G*(po.m+primary.m)/(a*a*a)); + double ddxi_da = dan_da/(1.-q)*(-slp+q/(2.-l)*h); + double ddeta_da = dan_da/(1.-q)*(+clp-q/(2.-l)*k); + + double ddW_da = ddeta_da*ix-ddxi_da*iy; + np.vx = ddxi_da+0.5*iy*ddW_da; + np.vy = ddeta_da-0.5*ix*ddW_da; + np.vz = 0.5*iz*ddW_da; + + return np; +} + +struct reb_particle reb_particle_derivative_a_a(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + + double l = 1.-sqrt(1.-h*h-k*k); + double dxi_daa = 0.0;//clp + p/(2.-l)*h -k; + double deta_daa = 0.0;//slp - p/(2.-l)*k -h; + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_daa = deta_daa*ix-dxi_daa*iy; + + np.x = dxi_daa+0.5*iy*dW_daa; + np.y = deta_daa-0.5*ix*dW_daa; + np.z = 0.5*iz*dW_daa; + + double dan_daa = 0.75*sqrt(G*(po.m+primary.m)/(a*a*a*a*a)); + double ddxi_daa = dan_daa/(1.-q)*(-slp+q/(2.-l)*h); + double ddeta_daa = dan_daa/(1.-q)*(+clp-q/(2.-l)*k); + + double ddW_daa = ddeta_daa*ix-ddxi_daa*iy; + np.vx = ddxi_daa+0.5*iy*ddW_daa; + np.vy = ddeta_daa-0.5*ix*ddW_daa; + np.vz = 0.5*iz*ddW_daa; + + return np; +} + +struct reb_particle reb_particle_derivative_ix(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + + double l = 1.-sqrt(1.-h*h-k*k); + double xi = a*(clp + p/(2.-l)*h -k); + double eta = a*(slp - p/(2.-l)*k -h); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_dix = -ix/sqrt(fabs(4.-ix*ix-iy*iy)); + double W = eta*ix-xi*iy; + double dW_dix = eta; + + np.x = 0.5*iy*dW_dix; + np.y = -0.5*W-0.5*ix*dW_dix; + np.z = 0.5*diz_dix*W + 0.5*iz*dW_dix; + + double an = sqrt(G*(po.m+primary.m)/a); + double dxi = an/(1.-q)*(-slp+q/(2.-l)*h); + double deta = an/(1.-q)*(+clp-q/(2.-l)*k); + double dW = deta*ix-dxi*iy; + double ddW_dix = deta; + + np.vx = 0.5*iy*ddW_dix; + np.vy = -0.5*dW-0.5*ix*ddW_dix; + np.vz = 0.5*diz_dix*dW + 0.5*iz*ddW_dix; + + return np; +} + +struct reb_particle reb_particle_derivative_ix_ix(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + + double l = 1.-sqrt(1.-h*h-k*k); + double xi = a*(clp + p/(2.-l)*h -k); + double eta = a*(slp - p/(2.-l)*k -h); + + double iz = sqrt(4.-ix*ix-iy*iy); + double diz_dix = -ix/iz; + double diz_dixix = -1./iz - ix*ix/(iz*iz*iz); + double W = eta*ix-xi*iy; + double dW_dix = eta; + double dW_dixix = 0.0; + + np.x = 0.5*iy*dW_dixix; + np.y = -dW_dix-0.5*ix*dW_dixix; + np.z = 0.5*diz_dixix*W+diz_dix*dW_dix; + + double an = sqrt(G*(po.m+primary.m)/a); + double dxi = an/(1.-q)*(-slp+q/(2.-l)*h); + double deta = an/(1.-q)*(+clp-q/(2.-l)*k); + double dW = deta*ix-dxi*iy; + double ddW_dix = deta; + double ddW_dixix = 0.0; + + np.vx = 0.5*iy*ddW_dixix; + np.vy = -ddW_dix-0.5*ix*ddW_dixix; + np.vz = 0.5*diz_dixix*dW+diz_dix*ddW_dix; + + return np; +} + +struct reb_particle reb_particle_derivative_iy(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + + double l = 1.-sqrt(1.-h*h-k*k); + double xi = a*(clp + p/(2.-l)*h -k); + double eta = a*(slp - p/(2.-l)*k -h); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_diy = -iy/sqrt(fabs(4.-ix*ix-iy*iy)); + double W = eta*ix-xi*iy; + double dW_diy = -xi; + + np.x = 0.5*W+0.5*iy*dW_diy; + np.y = -0.5*ix*dW_diy; + np.z = 0.5*diz_diy*W + 0.5*iz*dW_diy; + + double an = sqrt(G*(po.m+primary.m)/a); + double dxi = an/(1.-q)*(-slp+q/(2.-l)*h); + double deta = an/(1.-q)*(+clp-q/(2.-l)*k); + double dW = deta*ix-dxi*iy; + double ddW_diy = -dxi; + + np.vx = 0.5*dW+0.5*iy*ddW_diy; + np.vy = -0.5*ix*ddW_diy; + np.vz = 0.5*diz_diy*dW + 0.5*iz*ddW_diy; + + return np; +} + +struct reb_particle reb_particle_derivative_iy_iy(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + + double l = 1.-sqrt(1.-h*h-k*k); + double xi = a*(clp + p/(2.-l)*h -k); + double eta = a*(slp - p/(2.-l)*k -h); + + //double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_diy = -iy/sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_diyiy = -1./sqrt(fabs(4.-ix*ix-iy*iy)) -iy*iy/( sqrt(fabs(4.-ix*ix-iy*iy))*sqrt(fabs(4.-ix*ix-iy*iy))*sqrt(fabs(4.-ix*ix-iy*iy)) ); + double W = eta*ix-xi*iy; + double dW_diy = -xi; + double dW_diyiy = 0.0; + + np.x = dW_diy+0.5*iy*dW_diyiy; + np.y = -0.5*ix*dW_diyiy; + np.z = 0.5*diz_diyiy*W + diz_diy*dW_diy; + + double an = sqrt(G*(po.m+primary.m)/a); + double dxi = an/(1.-q)*(-slp+q/(2.-l)*h); + double deta = an/(1.-q)*(+clp-q/(2.-l)*k); + double dW = deta*ix-dxi*iy; + double ddW_diy = -dxi; + double ddW_diyiy = 0.0; + + np.vx = ddW_diy-0.5*iy*ddW_diyiy; + np.vy = -0.5*ix*ddW_diyiy; + np.vz = 0.5*diz_diyiy*dW + diz_diy*ddW_diy; + + return np; +} + +struct reb_particle reb_particle_derivative_k_ix(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dk = -1./(1.-q)*(slp*slp); + double dslp_dk = -1./(1.-q)*(-slp*clp); + + double l = 1.-sqrt(1.-h*h-k*k); + double dl_dk = 1./sqrt(1.-h*h-k*k)*k; + double dp_dk = 1./(1.-q)*(slp); + double dxi_dk = a*(dclp_dk + dp_dk/(2.-l)*h + p/((2.-l)*(2.-l))*dl_dk*h -1); + double deta_dk = a*(dslp_dk - dp_dk/(2.-l)*k - p/(2.-l) - p/((2.-l)*(2.-l))*dl_dk*k); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_dix = -ix/sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dk = deta_dk*ix-dxi_dk*iy; + double dW_dkix = deta_dk; + + np.x = 0.5*iy*dW_dkix; + np.y = -0.5*dW_dk-0.5*ix*dW_dkix; + np.z = 0.5*diz_dix*dW_dk+0.5*iz*dW_dkix; + + double dq_dk = 1./(1.-q)*(clp-k); + + double an = sqrt(G*(po.m+primary.m)/a); + double ddxi_dk = dq_dk*an/((1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + + an/(1.-q) * (-dslp_dk+dq_dk/(2.-l)*h+dl_dk*q/((2.-l)*(2.-l))*h); + double ddeta_dk = dq_dk*an/((1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + + an/(1.-q) * (+dclp_dk-dq_dk/(2.-l)*k-dl_dk*q/((2.-l)*(2.-l))*k-q/(2.-l)); + double ddW_dk = ddeta_dk*ix-ddxi_dk*iy; + double ddW_dkix = ddeta_dk; + + np.vx = 0.5*iy*ddW_dkix; + np.vy = -0.5*ddW_dk-0.5*ix*ddW_dkix; + np.vz = 0.5*diz_dix*ddW_dk+0.5*iz*ddW_dkix; + + return np; +} + +struct reb_particle reb_particle_derivative_h_ix(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dh = -1./(1.-q)*(-slp*clp); + double dslp_dh = -1./(1.-q)*(clp*clp); + + double l = 1.-sqrt(1.-h*h-k*k); + double dl_dh = 1./sqrt(1.-h*h-k*k)*h; + double dp_dh = 1./(1.-q)*(-clp); + double dxi_dh = a*(dclp_dh + dp_dh/(2.-l)*h + p/(2.-l) + p/((2.-l)*(2.-l))*dl_dh*h); + double deta_dh = a*(dslp_dh - dp_dh/(2.-l)*k - p/((2.-l)*(2.-l))*k*dl_dh -1); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_dix = -ix/sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dh = deta_dh*ix-dxi_dh*iy; + double dW_dhix = deta_dh; + + np.x = 0.5*iy*dW_dhix; + np.y = -0.5*dW_dh-0.5*ix*dW_dhix; + np.z = 0.5*diz_dix*dW_dh+0.5*iz*dW_dhix; + + double dq_dh = 1./(1.-q)*(slp-h); + + double an = sqrt(G*(po.m+primary.m)/a); + double ddxi_dh = dq_dh*an/((1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + + an/(1.-q) * (-dslp_dh+dq_dh/(2.-l)*h+dl_dh*q/((2.-l)*(2.-l))*h+q/(2.-l)); + double ddeta_dh = dq_dh*an/((1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + + an/(1.-q) * (+dclp_dh-dq_dh/(2.-l)*k-dl_dh*q/((2.-l)*(2.-l))*k); + double ddW_dh = ddeta_dh*ix-ddxi_dh*iy; + double ddW_dhix = ddeta_dh; + + np.vx = 0.5*iy*ddW_dhix; + np.vy = -0.5*ddW_dh-0.5*ix*ddW_dhix; + np.vz = 0.5*diz_dix*ddW_dh+0.5*iz*ddW_dhix; + + return np; +} + +struct reb_particle reb_particle_derivative_lambda_ix(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + double dq_dlambda = -p/(1.-q); + double dp_dlambda = q/(1.-q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dlambda = -1./(1.-q)*slp; + double dslp_dlambda = 1./(1.-q)*clp; + + double l = 1.-sqrt(1.-h*h-k*k); + double dxi_dlambda = a*(dclp_dlambda + dp_dlambda/(2.-l)*h); + double deta_dlambda = a*(dslp_dlambda - dp_dlambda/(2.-l)*k); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_dix = -ix/sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dlambda = deta_dlambda*ix-dxi_dlambda*iy; + double dW_dlambdaix = deta_dlambda; + + np.x = 0.5*iy*dW_dlambdaix; + np.y = -0.5*dW_dlambda-0.5*ix*dW_dlambdaix; + np.z = 0.5*diz_dix*dW_dlambda+0.5*iz*dW_dlambdaix; + + double an = sqrt(G*(po.m+primary.m)/a); + double ddxi_dlambda = an/((1.-q)*(1.-q))*dq_dlambda*(-slp+q/(2.-l)*h) + + an/(1.-q)*(-dslp_dlambda+dq_dlambda/(2.-l)*h); + double ddeta_dlambda = an/((1.-q)*(1.-q))*dq_dlambda*(+clp-q/(2.-l)*k) + + an/(1.-q)*(dclp_dlambda-dq_dlambda/(2.-l)*k); + double ddW_dlambda = ddeta_dlambda*ix-ddxi_dlambda*iy; + double ddW_dlambdaix = ddeta_dlambda; + np.vx = 0.5*iy*ddW_dlambdaix; + np.vy = -0.5*ddW_dlambda-0.5*ix*ddW_dlambdaix; + np.vz = 0.5*diz_dix*ddW_dlambda+0.5*iz*ddW_dlambdaix; + + return np; +} + +struct reb_particle reb_particle_derivative_lambda_iy(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + double dq_dlambda = -p/(1.-q); + double dp_dlambda = q/(1.-q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dlambda = -1./(1.-q)*slp; + double dslp_dlambda = 1./(1.-q)*clp; + + double l = 1.-sqrt(1.-h*h-k*k); + double dxi_dlambda = a*(dclp_dlambda + dp_dlambda/(2.-l)*h); + double deta_dlambda = a*(dslp_dlambda - dp_dlambda/(2.-l)*k); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_diy = -iy/sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dlambda = deta_dlambda*ix-dxi_dlambda*iy; + double dW_dlambdaiy = -dxi_dlambda; + np.x = 0.5*dW_dlambda+0.5*iy*dW_dlambdaiy; + np.y = -0.5*ix*dW_dlambdaiy; + np.z = 0.5*diz_diy*dW_dlambda+0.5*iz*dW_dlambdaiy; + + double an = sqrt(G*(po.m+primary.m)/a); + double ddxi_dlambda = an/((1.-q)*(1.-q))*dq_dlambda*(-slp+q/(2.-l)*h) + + an/(1.-q)*(-dslp_dlambda+dq_dlambda/(2.-l)*h); + double ddeta_dlambda = an/((1.-q)*(1.-q))*dq_dlambda*(+clp-q/(2.-l)*k) + + an/(1.-q)*(dclp_dlambda-dq_dlambda/(2.-l)*k); + double ddW_dlambda = ddeta_dlambda*ix-ddxi_dlambda*iy; + double ddW_dlambdaiy = -ddxi_dlambda; + np.vx = 0.5*ddW_dlambda+0.5*iy*ddW_dlambdaiy; + np.vy = -0.5*ix*ddW_dlambdaiy; + np.vz = 0.5*diz_diy*ddW_dlambda+0.5*iz*ddW_dlambdaiy; + + return np; +} + +struct reb_particle reb_particle_derivative_h_iy(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dh = -1./(1.-q)*(-slp*clp); + double dslp_dh = -1./(1.-q)*(clp*clp); + + double l = 1.-sqrt(1.-h*h-k*k); + double dl_dh = 1./sqrt(1.-h*h-k*k)*h; + double dp_dh = 1./(1.-q)*(-clp); + double dxi_dh = a*(dclp_dh + dp_dh/(2.-l)*h + p/(2.-l) + p/((2.-l)*(2.-l))*dl_dh*h); + double deta_dh = a*(dslp_dh - dp_dh/(2.-l)*k - p/((2.-l)*(2.-l))*k*dl_dh -1); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_diy = -iy/sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dh = deta_dh*ix-dxi_dh*iy; + double dW_dhiy = -dxi_dh; + np.x = 0.5*dW_dh+0.5*iy*dW_dhiy; + np.y = -0.5*ix*dW_dhiy; + np.z = 0.5*diz_diy*dW_dh+0.5*iz*dW_dhiy; + + double dq_dh = 1./(1.-q)*(slp-h); + + double an = sqrt(G*(po.m+primary.m)/a); + double ddxi_dh = dq_dh*an/((1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + + an/(1.-q) * (-dslp_dh+dq_dh/(2.-l)*h+dl_dh*q/((2.-l)*(2.-l))*h+q/(2.-l)); + double ddeta_dh = dq_dh*an/((1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + + an/(1.-q) * (+dclp_dh-dq_dh/(2.-l)*k-dl_dh*q/((2.-l)*(2.-l))*k); + double ddW_dh = ddeta_dh*ix-ddxi_dh*iy; + double ddW_dhiy = -ddxi_dh; + np.vx = 0.5*ddW_dh+0.5*iy*ddW_dhiy; + np.vy = -0.5*ix*ddW_dhiy; + np.vz = 0.5*diz_diy*ddW_dh+0.5*iz*ddW_dhiy; + + return np; +} + +struct reb_particle reb_particle_derivative_k_iy(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dk = -1./(1.-q)*(slp*slp); + double dslp_dk = -1./(1.-q)*(-slp*clp); + + double l = 1.-sqrt(1.-h*h-k*k); + double dl_dk = 1./sqrt(1.-h*h-k*k)*k; + double dp_dk = 1./(1.-q)*(slp); + double dxi_dk = a*(dclp_dk + dp_dk/(2.-l)*h + p/((2.-l)*(2.-l))*dl_dk*h -1); + double deta_dk = a*(dslp_dk - dp_dk/(2.-l)*k - p/(2.-l) - p/((2.-l)*(2.-l))*dl_dk*k); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_diy = -iy/sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dk = deta_dk*ix-dxi_dk*iy; + double dW_dkiy = -dxi_dk; + np.x = 0.5*dW_dk+0.5*iy*dW_dkiy; + np.y = -0.5*ix*dW_dkiy; + np.z = 0.5*diz_diy*dW_dk+0.5*iz*dW_dkiy; + + double dq_dk = 1./(1.-q)*(clp-k); + + double an = sqrt(G*(po.m+primary.m)/a); + double ddxi_dk = dq_dk*an/((1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + + an/(1.-q) * (-dslp_dk+dq_dk/(2.-l)*h+dl_dk*q/((2.-l)*(2.-l))*h); + double ddeta_dk = dq_dk*an/((1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + + an/(1.-q) * (+dclp_dk-dq_dk/(2.-l)*k-dl_dk*q/((2.-l)*(2.-l))*k-q/(2.-l)); + double ddW_dk = ddeta_dk*ix-ddxi_dk*iy; + double ddW_dkiy = -ddxi_dk; + np.vx = 0.5*ddW_dk+0.5*iy*ddW_dkiy; + np.vy = -0.5*ix*ddW_dkiy; + np.vz = 0.5*diz_diy*ddW_dk+0.5*iz*ddW_dkiy; + + return np; +} + +struct reb_particle reb_particle_derivative_ix_iy(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + + double l = 1.-sqrt(1.-h*h-k*k); + double xi = a*(clp + p/(2.-l)*h -k); + double eta = a*(slp - p/(2.-l)*k -h); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_dix = -ix/sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_diy = -iy/sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_dixiy = -ix*iy/(sqrt(fabs(4.-ix*ix-iy*iy))*sqrt(fabs(4.-ix*ix-iy*iy))*sqrt(fabs(4.-ix*ix-iy*iy))); + double W = eta*ix-xi*iy; + double dW_dix = eta; + double dW_diy = -xi; + double dW_dixiy = 0.0; + np.x = 0.5*dW_dix+0.5*iy*dW_dixiy; + np.y = -0.5*dW_diy-0.5*ix*dW_dixiy; + np.z = 0.5*diz_dixiy*W+0.5*diz_dix*dW_diy + 0.5*diz_diy*dW_dix+0.5*iz*dW_dixiy; + + double an = sqrt(G*(po.m+primary.m)/a); + double dxi = an/(1.-q)*(-slp+q/(2.-l)*h); + double deta = an/(1.-q)*(+clp-q/(2.-l)*k); + double dW = deta*ix-dxi*iy; + double ddW_dix = deta; + double ddW_diy = -dxi; + double ddW_dixiy = 0.0; + + np.vx = 0.5*ddW_dix+0.5*iy*ddW_dixiy; + np.vy = -0.5*ddW_diy-0.5*ix*ddW_dixiy; + np.vz = 0.5*diz_dixiy*dW+0.5*diz_dix*ddW_diy + 0.5*diz_diy*ddW_dix+0.5*iz*ddW_dixiy; + + return np; +} + +struct reb_particle reb_particle_derivative_a_ix(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + + double l = 1.-sqrt(1.-h*h-k*k); + double deta_da = (slp - p/(2.-l)*k -h); + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_dix = -ix/sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_daix = deta_da; + double dxi_da = clp + p/(2.-l)*h -k; + double dW_da = deta_da*ix-dxi_da*iy; + + np.x = 0.5*iy*dW_daix; + np.y = -0.5*dW_da-0.5*ix*dW_daix; + np.z = 0.5*diz_dix*dW_da + 0.5*iz*dW_daix; + + double dan_da = -0.5*sqrt(G*(po.m+primary.m)/(a*a*a)); + double ddeta_da = dan_da/(1.-q)*(+clp-q/(2.-l)*k); + double ddW_daix = ddeta_da; + double ddxi_da = dan_da/(1.-q)*(-slp+q/(2.-l)*h); + double ddW_da = ddeta_da*ix-ddxi_da*iy; + + np.vx = 0.5*iy*ddW_daix; + np.vy = -0.5*ddW_da-0.5*ix*ddW_daix; + np.vz = 0.5*diz_dix*ddW_da + 0.5*iz*ddW_daix; + + return np; +} + +struct reb_particle reb_particle_derivative_a_iy(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + + double l = 1.-sqrt(1.-h*h-k*k); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_diy = -iy/sqrt(fabs(4.-ix*ix-iy*iy)); + double dxi_da = clp + p/(2.-l)*h -k; + double deta_da = slp - p/(2.-l)*k -h; + double dW_da = deta_da*ix-dxi_da*iy; + double dW_daiy = -dxi_da; + np.x = 0.5*dW_da+0.5*iy*dW_daiy; + np.y = -0.5*ix*dW_daiy; + np.z = 0.5*diz_diy*dW_da + 0.5*iz*dW_daiy; + + double dan_da = -0.5*sqrt(G*(po.m+primary.m)/(a*a*a)); + double ddxi_da = dan_da/(1.-q)*(-slp+q/(2.-l)*h); + double ddW_daiy = -ddxi_da; + double ddeta_da = dan_da/(1.-q)*(+clp-q/(2.-l)*k); + double ddW_da = ddeta_da*ix-ddxi_da*iy; + + np.vx = 0.5*ddW_da+0.5*iy*ddW_daiy; + np.vy = -0.5*ix*ddW_daiy; + np.vz = 0.5*diz_diy*ddW_da + 0.5*iz*ddW_daiy; + + return np; +} + + +struct reb_particle reb_particle_derivative_a_lambda(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + double dq_dlambda = -p/(1.-q); + double dp_dlambda = q/(1.-q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dlambda = -1./(1.-q)*slp; + double dslp_dlambda = 1./(1.-q)*clp; + + double l = 1.-sqrt(1.-h*h-k*k); + double dxi_dalambda = (dclp_dlambda + dp_dlambda/(2.-l)*h); + double deta_dalambda = (dslp_dlambda - dp_dlambda/(2.-l)*k); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dalambda = deta_dalambda*ix-dxi_dalambda*iy; + + np.x = dxi_dalambda+0.5*iy*dW_dalambda; + np.y = deta_dalambda-0.5*ix*dW_dalambda; + np.z = 0.5*iz*dW_dalambda; + + double dan_da = -0.5*sqrt(G*(po.m+primary.m)/(a*a*a)); + double ddxi_dalambda = dan_da/((1.-q)*(1.-q))*dq_dlambda*(-slp+q/(2.-l)*h) + + dan_da/(1.-q)*(-dslp_dlambda+dq_dlambda/(2.-l)*h); + double ddeta_dalambda = dan_da/((1.-q)*(1.-q))*dq_dlambda*(+clp-q/(2.-l)*k) + + dan_da/(1.-q)*(dclp_dlambda-dq_dlambda/(2.-l)*k); + double ddW_dalambda = ddeta_dalambda*ix-ddxi_dalambda*iy; + np.vx = ddxi_dalambda+0.5*iy*ddW_dalambda; + np.vy = ddeta_dalambda-0.5*ix*ddW_dalambda; + np.vz = 0.5*iz*ddW_dalambda; + + return np; +} + +struct reb_particle reb_particle_derivative_a_h(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dh = -1./(1.-q)*(-slp*clp); + double dslp_dh = -1./(1.-q)*(clp*clp); + + double l = 1.-sqrt(1.-h*h-k*k); + double dl_dh = 1./sqrt(1.-h*h-k*k)*h; + double dp_dh = 1./(1.-q)*(-clp); + double dxi_dah = (dclp_dh + dp_dh/(2.-l)*h + p/(2.-l) + p/((2.-l)*(2.-l))*dl_dh*h); + double deta_dah = (dslp_dh - dp_dh/(2.-l)*k - p/((2.-l)*(2.-l))*k*dl_dh -1); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dah = deta_dah*ix-dxi_dah*iy; + + np.x = dxi_dah+0.5*iy*dW_dah; + np.y = deta_dah-0.5*ix*dW_dah; + np.z = 0.5*iz*dW_dah; + + double dq_dh = 1./(1.-q)*(slp-h); + + double dan_da = -0.5*sqrt(G*(po.m+primary.m)/(a*a*a)); + double ddxi_dah = dq_dh*dan_da/((1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + + dan_da/(1.-q) * (-dslp_dh+dq_dh/(2.-l)*h+dl_dh*q/((2.-l)*(2.-l))*h+q/(2.-l)); + double ddeta_dah = dq_dh*dan_da/((1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + + dan_da/(1.-q) * (+dclp_dh-dq_dh/(2.-l)*k-dl_dh*q/((2.-l)*(2.-l))*k); + double ddW_dah = ddeta_dah*ix-ddxi_dah*iy; + + np.vx = ddxi_dah+0.5*iy*ddW_dah; + np.vy = ddeta_dah-0.5*ix*ddW_dah; + np.vz = 0.5*iz*ddW_dah; + + return np; +} + +struct reb_particle reb_particle_derivative_a_k(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dk = -1./(1.-q)*(slp*slp); + double dslp_dk = -1./(1.-q)*(-slp*clp); + + double l = 1.-sqrt(1.-h*h-k*k); + double dl_dk = 1./sqrt(1.-h*h-k*k)*k; + double dp_dk = 1./(1.-q)*(slp); + double dxi_dak = (dclp_dk + dp_dk/(2.-l)*h + p/((2.-l)*(2.-l))*dl_dk*h -1); + double deta_dak = (dslp_dk - dp_dk/(2.-l)*k - p/(2.-l) - p/((2.-l)*(2.-l))*dl_dk*k); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double dW_dak = deta_dak*ix-dxi_dak*iy; + + np.x = dxi_dak+0.5*iy*dW_dak; + np.y = deta_dak-0.5*ix*dW_dak; + np.z = 0.5*iz*dW_dak; + + double dq_dk = 1./(1.-q)*(clp-k); + + double dan_da = -0.5*sqrt(G*(po.m+primary.m)/(a*a*a)); + double ddxi_dak = dq_dk*dan_da/((1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + + dan_da/(1.-q) * (-dslp_dk+dq_dk/(2.-l)*h+dl_dk*q/((2.-l)*(2.-l))*h); + double ddeta_dak = dq_dk*dan_da/((1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + + dan_da/(1.-q) * (+dclp_dk-dq_dk/(2.-l)*k-dl_dk*q/((2.-l)*(2.-l))*k-q/(2.-l)); + double ddW_dak = ddeta_dak*ix-ddxi_dak*iy; + + np.vx = ddxi_dak+0.5*iy*ddW_dak; + np.vy = ddeta_dak-0.5*ix*ddW_dak; + np.vz = 0.5*iz*ddW_dak; + + return np; +} + +struct reb_particle reb_particle_derivative_m(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + np.m = 1.; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + + double l = 1.-sqrt(1.-h*h-k*k); + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + np.x = 0.0; + np.y = 0.0; + np.z = 0.0; + + double dan_dm = 0.5*sqrt(G/(a*(po.m+primary.m))); + double ddxi_dm = dan_dm/(1.-q)*(-slp+q/(2.-l)*h); + double ddeta_dm = dan_dm/(1.-q)*(+clp-q/(2.-l)*k); + + double ddW_dm = ddeta_dm*ix-ddxi_dm*iy; + np.vx = ddxi_dm+0.5*iy*ddW_dm; + np.vy = ddeta_dm-0.5*ix*ddW_dm; + np.vz = 0.5*iz*ddW_dm; + + return np; +} + +struct reb_particle reb_particle_derivative_m_a(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double l = 1.-sqrt(1.-h*h-k*k); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + np.x = 0.0; + np.y = 0.0; + np.z = 0.0; + + double dan_dma = -0.5*0.5*sqrt(G/(a*a*a*(po.m+primary.m))); + double ddxi_dma = dan_dma/(1.-q)*(-slp+q/(2.-l)*h); + double ddeta_dma = dan_dma/(1.-q)*(+clp-q/(2.-l)*k); + + double ddW_dma = ddeta_dma*ix-ddxi_dma*iy; + np.vx = ddxi_dma+0.5*iy*ddW_dma; + np.vy = ddeta_dma-0.5*ix*ddW_dma; + np.vz = 0.5*iz*ddW_dma; + + return np; +} + +struct reb_particle reb_particle_derivative_m_lambda(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + double dq_dlambda = -p/(1.-q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dlambda = -1./(1.-q)*slp; + double dslp_dlambda = 1./(1.-q)*clp; + + double l = 1.-sqrt(1.-h*h-k*k); + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + + np.x = 0.0; + np.y = 0.0; + np.z = 0.0; + + double dan_dm = 0.5*sqrt(G/(a*(po.m+primary.m))); + double ddxi_dmlambda = dan_dm/((1.-q)*(1.-q))*dq_dlambda*(-slp+q/(2.-l)*h) + + dan_dm/(1.-q)*(-dslp_dlambda+dq_dlambda/(2.-l)*h); + double ddeta_dmlambda = dan_dm/((1.-q)*(1.-q))*dq_dlambda*(+clp-q/(2.-l)*k) + + dan_dm/(1.-q)*(dclp_dlambda-dq_dlambda/(2.-l)*k); + double ddW_dmlambda = ddeta_dmlambda*ix-ddxi_dmlambda*iy; + np.vx = ddxi_dmlambda+0.5*iy*ddW_dmlambda; + np.vy = ddeta_dmlambda-0.5*ix*ddW_dmlambda; + np.vz = 0.5*iz*ddW_dmlambda; + + return np; +} + +struct reb_particle reb_particle_derivative_m_h(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dh = -1./(1.-q)*(-slp*clp); + double dslp_dh = -1./(1.-q)*(clp*clp); + + double l = 1.-sqrt(1.-h*h-k*k); + double dl_dh = 1./sqrt(1.-h*h-k*k)*h; + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + + np.x = 0.0; + np.y = 0.0; + np.z = 0.0; + + double dq_dh = 1./(1.-q)*(slp-h); + + double dan_dm = 0.5*sqrt(G/(a*(po.m+primary.m))); + double ddxi_dmh = dq_dh*dan_dm/((1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + + dan_dm/(1.-q) * (-dslp_dh+dq_dh/(2.-l)*h+dl_dh*q/((2.-l)*(2.-l))*h+q/(2.-l)); + double ddeta_dmh = dq_dh*dan_dm/((1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + + dan_dm/(1.-q) * (+dclp_dh-dq_dh/(2.-l)*k-dl_dh*q/((2.-l)*(2.-l))*k); + double ddW_dmh = ddeta_dmh*ix-ddxi_dmh*iy; + + np.vx = ddxi_dmh+0.5*iy*ddW_dmh; + np.vy = ddeta_dmh-0.5*ix*ddW_dmh; + np.vz = 0.5*iz*ddW_dmh; + + return np; +} + +struct reb_particle reb_particle_derivative_m_k(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + double slp = sin(lambda+p); + double clp = cos(lambda+p); + double dclp_dk = -1./(1.-q)*(slp*slp); + double dslp_dk = -1./(1.-q)*(-slp*clp); + + double l = 1.-sqrt(1.-h*h-k*k); + double dl_dk = 1./sqrt(1.-h*h-k*k)*k; + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + + np.x = 0.0; + np.y = 0.0; + np.z = 0.0; + + double dq_dk = 1./(1.-q)*(clp-k); + + double dan_dm = 0.5*sqrt(G/(a*(po.m+primary.m))); + double ddxi_dmk = dq_dk*dan_dm/((1.-q)*(1.-q))*(-slp+q/(2.-l)*h) + + dan_dm/(1.-q) * (-dslp_dk+dq_dk/(2.-l)*h+dl_dk*q/((2.-l)*(2.-l))*h); + double ddeta_dmk = dq_dk*dan_dm/((1.-q)*(1.-q))*(+clp-q/(2.-l)*k) + + dan_dm/(1.-q) * (+dclp_dk-dq_dk/(2.-l)*k-dl_dk*q/((2.-l)*(2.-l))*k-q/(2.-l)); + double ddW_dmk = ddeta_dmk*ix-ddxi_dmk*iy; + + np.vx = ddxi_dmk+0.5*iy*ddW_dmk; + np.vy = ddeta_dmk-0.5*ix*ddW_dmk; + np.vz = 0.5*iz*ddW_dmk; + + return np; +} + +struct reb_particle reb_particle_derivative_m_ix(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + double slp = sin(lambda+p); + double clp = cos(lambda+p); + + double l = 1.-sqrt(1.-h*h-k*k); + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_dix = -ix/sqrt(fabs(4.-ix*ix-iy*iy)); + + np.x = 0.0; + np.y = 0.0; + np.z = 0.0; + + double dan_dm = 0.5*sqrt(G/(a*(po.m+primary.m))); + double ddxi_dm = dan_dm/(1.-q)*(-slp+q/(2.-l)*h); + double ddeta_dm = dan_dm/(1.-q)*(+clp-q/(2.-l)*k); + double ddW_dm = ddeta_dm*ix-ddxi_dm*iy; + double ddW_dmix = ddeta_dm; + + np.vx = 0.5*iy*ddW_dmix; + np.vy = -0.5*ddW_dm-0.5*ix*ddW_dmix; + np.vz = 0.5*diz_dix*ddW_dm + 0.5*iz*ddW_dmix; + + return np; +} + +struct reb_particle reb_particle_derivative_m_iy(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + double slp = sin(lambda+p); + double clp = cos(lambda+p); + + double l = 1.-sqrt(1.-h*h-k*k); + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double diz_diy = -iy/sqrt(fabs(4.-ix*ix-iy*iy)); + + np.x = 0.0; + np.y = 0.0; + np.z = 0.0; + + double dan_dm = 0.5*sqrt(G/(a*(po.m+primary.m))); + double ddxi_dm = dan_dm/(1.-q)*(-slp+q/(2.-l)*h); + double ddeta_dm = dan_dm/(1.-q)*(+clp-q/(2.-l)*k); + double ddW_dm = ddeta_dm*ix-ddxi_dm*iy; + double ddW_dmiy = -ddxi_dm; + + np.vx = 0.5*ddW_dm+0.5*iy*ddW_dmiy; + np.vy = -0.5*ix*ddW_dmiy; + np.vz = 0.5*diz_diy*ddW_dm + 0.5*iz*ddW_dmiy; + + return np; +} + +struct reb_particle reb_particle_derivative_m_m(double G, struct reb_particle primary, struct reb_particle po){ + double a, lambda, k, h, ix, iy; + reb_tools_particle_to_pal(G, po, primary, &a, &lambda, &k, &h, &ix, &iy); + + struct reb_particle np = {0}; + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + + double l = 1.-sqrt(1.-h*h-k*k); + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + np.x = 0.0; + np.y = 0.0; + np.z = 0.0; + + double dan_dmm = -0.25*sqrt(G/(a*(po.m+primary.m)*(po.m+primary.m)*(po.m+primary.m))); + double ddxi_dmm = dan_dmm/(1.-q)*(-slp+q/(2.-l)*h); + double ddeta_dmm = dan_dmm/(1.-q)*(+clp-q/(2.-l)*k); + + double ddW_dmm = ddeta_dmm*ix-ddxi_dmm*iy; + np.vx = ddxi_dmm+0.5*iy*ddW_dmm; + np.vy = ddeta_dmm-0.5*ix*ddW_dmm; + np.vz = 0.5*iz*ddW_dmm; + + return np; +} + +struct reb_particle reb_particle_derivative_e(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double cosf = cos(o.f); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + double dr = -o.a*(cosf*o.e*o.e+cosf+2.*o.e)/((cosf*o.e+1.)*(cosf*o.e+1.)); + double dv0 = sqrt(G*(po.m+primary.m)/o.a)*o.e/((1.-o.e*o.e)*sqrt(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + double si = sin(o.inc); + + p.x = dr*(cO*(co*cf-so*sf) - sO*(so*cf+co*sf)*ci); + p.y = dr*(sO*(co*cf-so*sf) + cO*(so*cf+co*sf)*ci); + p.z = dr*(so*cf+co*sf)*si; + + p.vx = dv0*((o.e+cf)*(-ci*co*sO - cO*so) - sf*(co*cO - ci*so*sO)); + p.vy = dv0*((o.e+cf)*(ci*co*cO - sO*so) - sf*(co*sO + ci*so*cO)); + p.vz = dv0*((o.e+cf)*co*si - sf*si*so); + + p.vx += v0*(-ci*co*sO - cO*so); + p.vy += v0*(ci*co*cO - sO*so); + p.vz += v0*(co*si); + + return p; +} + + + +struct reb_particle reb_particle_derivative_e_e(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double cosf = cos(o.f); + double ddr = o.a*2.*(cosf*cosf-1.)/((cosf*o.e+1.)*(cosf*o.e+1.)*(cosf*o.e+1.)); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + double dv0 = o.e*v0/(1.-o.e*o.e); + double ddv0 = v0/((o.e*o.e-1.)*(o.e*o.e-1.)) * (2.*o.e*o.e+1.); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + double si = sin(o.inc); + + p.x = ddr*(cO*(co*cf-so*sf) - sO*(so*cf+co*sf)*ci); + p.y = ddr*(sO*(co*cf-so*sf) + cO*(so*cf+co*sf)*ci); + p.z = ddr*(so*cf+co*sf)*si; + + p.vx = ddv0*((o.e+cf)*(-ci*co*sO - cO*so) - sf*(co*cO - ci*so*sO)); + p.vy = ddv0*((o.e+cf)*(ci*co*cO - sO*so) - sf*(co*sO + ci*so*cO)); + p.vz = ddv0*((o.e+cf)*co*si - sf*si*so); + + p.vx += 2.*dv0*(-ci*co*sO - cO*so); + p.vy += 2.*dv0*(ci*co*cO - sO*so); + p.vz += 2.*dv0*(co*si); + + return p; +} + +struct reb_particle reb_particle_derivative_inc(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double r = o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double dci = -sin(o.inc); + double dsi = cos(o.inc); + + p.x = r*(- sO*(so*cf+co*sf)*dci); + p.y = r*(+ cO*(so*cf+co*sf)*dci); + p.z = r*(so*cf+co*sf)*dsi; + + p.vx = v0*((o.e+cf)*(-dci*co*sO) - sf*(- dci*so*sO)); + p.vy = v0*((o.e+cf)*(dci*co*cO) - sf*(dci*so*cO)); + p.vz = v0*((o.e+cf)*co*dsi - sf*dsi*so); + + + return p; +} + +struct reb_particle reb_particle_derivative_inc_inc(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double r = o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ddci = -cos(o.inc); + double ddsi = -sin(o.inc); + + p.x = r*(- sO*(so*cf+co*sf)*ddci); + p.y = r*(+ cO*(so*cf+co*sf)*ddci); + p.z = r*(so*cf+co*sf)*ddsi; + + p.vx = v0*((o.e+cf)*(-ddci*co*sO) - sf*(- ddci*so*sO)); + p.vy = v0*((o.e+cf)*(ddci*co*cO) - sf*(ddci*so*cO)); + p.vz = v0*((o.e+cf)*co*ddsi - sf*ddsi*so); + + return p; +} + +struct reb_particle reb_particle_derivative_Omega(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double r = o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + + double dcO = -sin(o.Omega); + double dsO = cos(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + + p.x = r*(dcO*(co*cf-so*sf) - dsO*(so*cf+co*sf)*ci); + p.y = r*(dsO*(co*cf-so*sf) + dcO*(so*cf+co*sf)*ci); + p.z = 0.; + + p.vx = v0*((o.e+cf)*(-ci*co*dsO - dcO*so) - sf*(co*dcO - ci*so*dsO)); + p.vy = v0*((o.e+cf)*(ci*co*dcO - dsO*so) - sf*(co*dsO + ci*so*dcO)); + p.vz = 0.; + + return p; +} + +struct reb_particle reb_particle_derivative_Omega_Omega(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double r = o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + + double ddcO = -cos(o.Omega); + double ddsO = -sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + + p.x = r*(ddcO*(co*cf-so*sf) - ddsO*(so*cf+co*sf)*ci); + p.y = r*(ddsO*(co*cf-so*sf) + ddcO*(so*cf+co*sf)*ci); + p.z = 0.; + + p.vx = v0*((o.e+cf)*(-ci*co*ddsO - ddcO*so) - sf*(co*ddcO - ci*so*ddsO)); + p.vy = v0*((o.e+cf)*(ci*co*ddcO - ddsO*so) - sf*(co*ddsO + ci*so*ddcO)); + p.vz = 0.; + + return p; +} + +struct reb_particle reb_particle_derivative_omega(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double r = o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double dco = -sin(o.omega); + double dso = cos(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + double si = sin(o.inc); + + p.x = r*(cO*(dco*cf-dso*sf) - sO*(dso*cf+dco*sf)*ci); + p.y = r*(sO*(dco*cf-dso*sf) + cO*(dso*cf+dco*sf)*ci); + p.z = r*(dso*cf+dco*sf)*si; + + p.vx = v0*((o.e+cf)*(-ci*dco*sO - cO*dso) - sf*(dco*cO - ci*dso*sO)); + p.vy = v0*((o.e+cf)*(ci*dco*cO - sO*dso) - sf*(dco*sO + ci*dso*cO)); + p.vz = v0*((o.e+cf)*dco*si - sf*si*dso); + + return p; +} + +struct reb_particle reb_particle_derivative_omega_omega(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double r = o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double ddco = -cos(o.omega); + double ddso = -sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + double si = sin(o.inc); + + p.x = r*(cO*(ddco*cf-ddso*sf) - sO*(ddso*cf+ddco*sf)*ci); + p.y = r*(sO*(ddco*cf-ddso*sf) + cO*(ddso*cf+ddco*sf)*ci); + p.z = r*(ddso*cf+ddco*sf)*si; + + p.vx = v0*((o.e+cf)*(-ci*ddco*sO - cO*ddso) - sf*(ddco*cO - ci*ddso*sO)); + p.vy = v0*((o.e+cf)*(ci*ddco*cO - sO*ddso) - sf*(ddco*sO + ci*ddso*cO)); + p.vz = v0*((o.e+cf)*ddco*si - sf*si*ddso); + + return p; +} + +struct reb_particle reb_particle_derivative_f(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double r = o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double dr = o.a*(1.-o.e*o.e)/((1. + o.e*cos(o.f))*(1. + o.e*cos(o.f)))*o.e*sin(o.f); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double dcf = -sin(o.f); + double dsf = cos(o.f); + double ci = cos(o.inc); + double si = sin(o.inc); + + p.x = dr*(cO*(co*cf-so*sf) - sO*(so*cf+co*sf)*ci); + p.y = dr*(sO*(co*cf-so*sf) + cO*(so*cf+co*sf)*ci); + p.z = dr*(so*cf+co*sf)*si; + + p.x += r*(cO*(co*dcf-so*dsf) - sO*(so*dcf+co*dsf)*ci); + p.y += r*(sO*(co*dcf-so*dsf) + cO*(so*dcf+co*dsf)*ci); + p.z += r*(so*dcf+co*dsf)*si; + + p.vx = v0*(dcf*(-ci*co*sO - cO*so) - dsf*(co*cO - ci*so*sO)); + p.vy = v0*(dcf*(ci*co*cO - sO*so) - dsf*(co*sO + ci*so*cO)); + p.vz = v0*(dcf*co*si - dsf*si*so); + + return p; +} + +struct reb_particle reb_particle_derivative_f_f(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double r = o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double dr = o.a*(1.-o.e*o.e)/((1. + o.e*cos(o.f))*(1. + o.e*cos(o.f)))*o.e*sin(o.f); + double ddr = 2.*o.a*(1.-o.e*o.e)/((1. + o.e*cos(o.f))*(1. + o.e*cos(o.f))*(1. + o.e*cos(o.f)))*o.e*o.e*sin(o.f)*sin(o.f) + o.a*(1.-o.e*o.e)*o.e*cos(o.f)/((1. + o.e*cos(o.f))*(1. + o.e*cos(o.f))); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double dcf = -sin(o.f); + double dsf = cos(o.f); + double ddcf = -cos(o.f); + double ddsf = -sin(o.f); + double ci = cos(o.inc); + double si = sin(o.inc); + + p.x = ddr*(cO*(co*cf-so*sf) - sO*(so*cf+co*sf)*ci); + p.y = ddr*(sO*(co*cf-so*sf) + cO*(so*cf+co*sf)*ci); + p.z = ddr*(so*cf+co*sf)*si; + + p.x += 2.*dr*(cO*(co*dcf-so*dsf) - sO*(so*dcf+co*dsf)*ci); + p.y += 2.*dr*(sO*(co*dcf-so*dsf) + cO*(so*dcf+co*dsf)*ci); + p.z += 2.*dr*(so*dcf+co*dsf)*si; + + p.x += r*(cO*(co*ddcf-so*ddsf) - sO*(so*ddcf+co*ddsf)*ci); + p.y += r*(sO*(co*ddcf-so*ddsf) + cO*(so*ddcf+co*ddsf)*ci); + p.z += r*(so*ddcf+co*ddsf)*si; + + p.vx = v0*(ddcf*(-ci*co*sO - cO*so) - ddsf*(co*cO - ci*so*sO)); + p.vy = v0*(ddcf*(ci*co*cO - sO*so) - ddsf*(co*sO + ci*so*cO)); + p.vz = v0*(ddcf*co*si - ddsf*si*so); + + return p; +} + + +struct reb_particle reb_particle_derivative_a_e(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double cosf = cos(o.f); + double ddr = -(cosf*o.e*o.e+cosf+2.*o.e)/((cosf*o.e+1.)*(cosf*o.e+1.)); + double dv0_da = -0.5/sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e))*G*(po.m+primary.m)/(o.a*o.a)/(1.-o.e*o.e); + + double dv0_da_de = o.e*dv0_da/(1.-o.e*o.e); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + double si = sin(o.inc); + + p.x = ddr*(cO*(co*cf-so*sf) - sO*(so*cf+co*sf)*ci); + p.y = ddr*(sO*(co*cf-so*sf) + cO*(so*cf+co*sf)*ci); + p.z = ddr*(so*cf+co*sf)*si; + + p.vx = dv0_da_de*((o.e+cf)*(-ci*co*sO - cO*so) - sf*(co*cO - ci*so*sO)); + p.vy = dv0_da_de*((o.e+cf)*(ci*co*cO - sO*so) - sf*(co*sO + ci*so*cO)); + p.vz = dv0_da_de*((o.e+cf)*co*si - sf*si*so); + + p.vx += dv0_da*(-ci*co*sO - cO*so); + p.vy += dv0_da*(ci*co*cO - sO*so); + p.vz += dv0_da*(co*si); + + return p; +} + +struct reb_particle reb_particle_derivative_a_inc(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double dr = (1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double dv0 = -0.5/sqrt(o.a*o.a*o.a)*sqrt(G*(po.m+primary.m)/(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double dci = -sin(o.inc); + double dsi = cos(o.inc); + + p.x = dr*(- sO*(so*cf+co*sf)*dci); + p.y = dr*(+ cO*(so*cf+co*sf)*dci); + p.z = dr*(so*cf+co*sf)*dsi; + + p.vx = dv0*((o.e+cf)*(-dci*co*sO) - sf*(- dci*so*sO)); + p.vy = dv0*((o.e+cf)*(dci*co*cO) - sf*(dci*so*cO)); + p.vz = dv0*((o.e+cf)*co*dsi - sf*dsi*so); + + return p; +} + +struct reb_particle reb_particle_derivative_a_Omega(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double dr = (1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double dv0 = -0.5/sqrt(o.a*o.a*o.a)*sqrt(G*(po.m+primary.m)/(1.-o.e*o.e)); + + double dcO = -sin(o.Omega); + double dsO = cos(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + + p.x = dr*(dcO*(co*cf-so*sf) - dsO*(so*cf+co*sf)*ci); + p.y = dr*(dsO*(co*cf-so*sf) + dcO*(so*cf+co*sf)*ci); + + p.vx = dv0*((o.e+cf)*(-ci*co*dsO - dcO*so) - sf*(co*dcO - ci*so*dsO)); + p.vy = dv0*((o.e+cf)*(ci*co*dcO - dsO*so) - sf*(co*dsO + ci*so*dcO)); + + return p; +} + +struct reb_particle reb_particle_derivative_a_omega(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double dr = (1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double dv0 = -0.5/sqrt(o.a*o.a*o.a)*sqrt(G*(po.m+primary.m)/(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double dco = -sin(o.omega); + double dso = cos(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + double si = sin(o.inc); + + p.x = dr*(cO*(dco*cf-dso*sf) - sO*(dso*cf+dco*sf)*ci); + p.y = dr*(sO*(dco*cf-dso*sf) + cO*(dso*cf+dco*sf)*ci); + p.z = dr*(dso*cf+dco*sf)*si; + + p.vx = dv0*((o.e+cf)*(-ci*dco*sO - cO*dso) - sf*(dco*cO - ci*dso*sO)); + p.vy = dv0*((o.e+cf)*(ci*dco*cO - sO*dso) - sf*(dco*sO + ci*dso*cO)); + p.vz = dv0*((o.e+cf)*dco*si - sf*si*dso); + + return p; +} + +struct reb_particle reb_particle_derivative_a_f(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double dr = (1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double ddr = o.e*sin(o.f)*(1.-o.e*o.e)/(1. + o.e*cos(o.f))/(1. + o.e*cos(o.f)); + double dv0 = -0.5/sqrt(o.a*o.a*o.a)*sqrt(G*(po.m+primary.m)/(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double dcf = -sin(o.f); + double dsf = cos(o.f); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + double si = sin(o.inc); + + p.x = dr*(cO*(co*dcf-so*dsf) - sO*(so*dcf+co*dsf)*ci); + p.y = dr*(sO*(co*dcf-so*dsf) + cO*(so*dcf+co*dsf)*ci); + p.z = dr*(so*dcf+co*dsf)*si; + + p.x += ddr*(cO*(co*cf-so*sf) - sO*(so*cf+co*sf)*ci); + p.y += ddr*(sO*(co*cf-so*sf) + cO*(so*cf+co*sf)*ci); + p.z += ddr*(so*cf+co*sf)*si; + + p.vx = dv0*(dcf*(-ci*co*sO - cO*so) - dsf*(co*cO - ci*so*sO)); + p.vy = dv0*(dcf*(ci*co*cO - sO*so) - dsf*(co*sO + ci*so*cO)); + p.vz = dv0*(dcf*co*si - dsf*si*so); + + return p; +} + +struct reb_particle reb_particle_derivative_e_inc(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double cosf = cos(o.f); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + double dr = -o.a*(cosf*o.e*o.e+cosf+2.*o.e)/((cosf*o.e+1.)*(cosf*o.e+1.)); + double dv0 = sqrt(G*(po.m+primary.m)/o.a)*o.e/((1.-o.e*o.e)*sqrt(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double dci = -sin(o.inc); + double dsi = cos(o.inc); + + p.x = dr*(- sO*(so*cf+co*sf)*dci); + p.y = dr*(+ cO*(so*cf+co*sf)*dci); + p.z = dr*(so*cf+co*sf)*dsi; + + p.vx = dv0*((o.e+cf)*(-dci*co*sO) - sf*(- dci*so*sO)); + p.vy = dv0*((o.e+cf)*(dci*co*cO) - sf*(+ dci*so*cO)); + p.vz = dv0*((o.e+cf)*co*dsi - sf*dsi*so); + + p.vx += v0*(-dci*co*sO); + p.vy += v0*(dci*co*cO); + p.vz += v0*(co*dsi); + + return p; +} + + +struct reb_particle reb_particle_derivative_e_Omega(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double cosf = cos(o.f); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + double dr = -o.a*(cosf*o.e*o.e+cosf+2.*o.e)/((cosf*o.e+1.)*(cosf*o.e+1.)); + double dv0 = sqrt(G*(po.m+primary.m)/o.a)*o.e/((1.-o.e*o.e)*sqrt(1.-o.e*o.e)); + + double dcO = -sin(o.Omega); + double dsO = cos(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + + p.x = dr*(dcO*(co*cf-so*sf) - dsO*(so*cf+co*sf)*ci); + p.y = dr*(dsO*(co*cf-so*sf) + dcO*(so*cf+co*sf)*ci); + + p.vx = dv0*((o.e+cf)*(-ci*co*dsO - dcO*so) - sf*(co*dcO - ci*so*dsO)); + p.vy = dv0*((o.e+cf)*(ci*co*dcO - dsO*so) - sf*(co*dsO + ci*so*dcO)); + + p.vx += v0*(-ci*co*dsO - dcO*so); + p.vy += v0*(ci*co*dcO - dsO*so); + + return p; +} + +struct reb_particle reb_particle_derivative_e_omega(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double cosf = cos(o.f); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + double dr = -o.a*(cosf*o.e*o.e+cosf+2.*o.e)/((cosf*o.e+1.)*(cosf*o.e+1.)); + double dv0 = sqrt(G*(po.m+primary.m)/o.a)*o.e/((1.-o.e*o.e)*sqrt(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double dco = -sin(o.omega); + double dso = cos(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + double si = sin(o.inc); + + p.x = dr*(cO*(dco*cf-dso*sf) - sO*(dso*cf+dco*sf)*ci); + p.y = dr*(sO*(dco*cf-dso*sf) + cO*(dso*cf+dco*sf)*ci); + p.z = dr*(dso*cf+dco*sf)*si; + + p.vx = dv0*((o.e+cf)*(-ci*dco*sO - cO*dso) - sf*(dco*cO - ci*dso*sO)); + p.vy = dv0*((o.e+cf)*(ci*dco*cO - sO*dso) - sf*(dco*sO + ci*dso*cO)); + p.vz = dv0*((o.e+cf)*dco*si - sf*si*dso); + + p.vx += v0*(-ci*dco*sO - cO*dso); + p.vy += v0*(ci*dco*cO - sO*dso); + p.vz += v0*(dco*si); + + return p; +} +struct reb_particle reb_particle_derivative_e_f(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double cosf = cos(o.f); + double dr = -o.a*(cosf*o.e*o.e+cosf+2.*o.e)/((cosf*o.e+1.)*(cosf*o.e+1.)); + double ddr = -o.a*(-sin(o.f)*o.e*o.e-sin(o.f))/((cosf*o.e+1.)*(cosf*o.e+1.)) + -2.*o.e*sin(o.f) * o.a*(cosf*o.e*o.e+cosf+2.*o.e)/((cosf*o.e+1.)*(cosf*o.e+1.)*(cosf*o.e+1.)); + double dv0 = sqrt(G*(po.m+primary.m)/o.a)*o.e/((1.-o.e*o.e)*sqrt(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double dcf = -sin(o.f); + double dsf = cos(o.f); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + double si = sin(o.inc); + + p.x = dr*(cO*(co*dcf-so*dsf) - sO*(so*dcf+co*dsf)*ci); + p.y = dr*(sO*(co*dcf-so*dsf) + cO*(so*dcf+co*dsf)*ci); + p.z = dr*(so*dcf+co*dsf)*si; + + p.x += ddr*(cO*(co*cf-so*sf) - sO*(so*cf+co*sf)*ci); + p.y += ddr*(sO*(co*cf-so*sf) + cO*(so*cf+co*sf)*ci); + p.z += ddr*(so*cf+co*sf)*si; + + p.vx = dv0*(dcf*(-ci*co*sO - cO*so) - dsf*(co*cO - ci*so*sO)); + p.vy = dv0*(dcf*(ci*co*cO - sO*so) - dsf*(co*sO + ci*so*cO)); + p.vz = dv0*(dcf*co*si - dsf*si*so); + + return p; +} +struct reb_particle reb_particle_derivative_m_e(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double dv0m = 0.5*G/o.a/(1.-o.e*o.e)/sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + double dv0ea = 0.5*G/o.a/sqrt(G*(po.m+primary.m)/o.a)*o.e/((1.-o.e*o.e)*sqrt(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + double si = sin(o.inc); + + p.vx = dv0ea*((o.e+cf)*(-ci*co*sO - cO*so) - sf*(co*cO - ci*so*sO)); + p.vy = dv0ea*((o.e+cf)*(ci*co*cO - sO*so) - sf*(co*sO + ci*so*cO)); + p.vz = dv0ea*((o.e+cf)*co*si - sf*si*so); + + p.vx += dv0m*(-ci*co*sO - cO*so); + p.vy += dv0m*(ci*co*cO - sO*so); + p.vz += dv0m*(co*si); + + return p; +} + +struct reb_particle reb_particle_derivative_inc_Omega(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double r = o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + + double dcO = -sin(o.Omega); + double dsO = cos(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double dci = -sin(o.inc); + + p.x = r*(- dsO*(so*cf+co*sf)*dci); + p.y = r*(+ dcO*(so*cf+co*sf)*dci); + + p.vx = v0*((o.e+cf)*(-dci*co*dsO) - sf*(- dci*so*dsO)); + p.vy = v0*((o.e+cf)*(dci*co*dcO) - sf*(dci*so*dcO)); + + return p; +} + +struct reb_particle reb_particle_derivative_inc_omega(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double r = o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double dco = -sin(o.omega); + double dso = cos(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double dci = -sin(o.inc); + double dsi = cos(o.inc); + + p.x = r*(- sO*(dso*cf+dco*sf)*dci); + p.y = r*(+ cO*(dso*cf+dco*sf)*dci); + p.z = r*(dso*cf+dco*sf)*dsi; + + p.vx = v0*((o.e+cf)*(-dci*dco*sO) - sf*(- dci*dso*sO)); + p.vy = v0*((o.e+cf)*(dci*dco*cO) - sf*(dci*dso*cO)); + p.vz = v0*((o.e+cf)*dco*dsi - sf*dsi*dso); + + return p; +} + +struct reb_particle reb_particle_derivative_inc_f(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double r = o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double dr = o.e*sin(o.f)*o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f))/(1. + o.e*cos(o.f)); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double dcf = -sin(o.f); + double dsf = cos(o.f); + double cf = cos(o.f); + double sf = sin(o.f); + double dci = -sin(o.inc); + double dsi = cos(o.inc); + + p.x = r*(- sO*(so*dcf+co*dsf)*dci); + p.y = r*(+ cO*(so*dcf+co*dsf)*dci); + p.z = r*(so*dcf+co*dsf)*dsi; + + p.x += dr*(- sO*(so*cf+co*sf)*dci); + p.y += dr*(+ cO*(so*cf+co*sf)*dci); + p.z += dr*(so*cf+co*sf)*dsi; + + p.vx = v0*(dcf*(-dci*co*sO) - dsf*(- dci*so*sO)); + p.vy = v0*(dcf*(dci*co*cO) - dsf*(dci*so*cO)); + p.vz = v0*(dcf*co*dsi - dsf*dsi*so); + + return p; +} + +struct reb_particle reb_particle_derivative_m_inc(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double dv0 = 0.5/sqrt(po.m+primary.m)*sqrt(G/o.a/(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double dci = -sin(o.inc); + double dsi = cos(o.inc); + + p.vx = dv0*((o.e+cf)*(-dci*co*sO) - sf*(- dci*so*sO)); + p.vy = dv0*((o.e+cf)*(dci*co*cO) - sf*(dci*so*cO)); + p.vz = dv0*((o.e+cf)*co*dsi - sf*dsi*so); + + return p; +} + +struct reb_particle reb_particle_derivative_omega_Omega(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double r = o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + + double dcO = -sin(o.Omega); + double dsO = cos(o.Omega); + double dco = -sin(o.omega); + double dso = cos(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + + p.x = r*(dcO*(dco*cf-dso*sf) - dsO*(dso*cf+dco*sf)*ci); + p.y = r*(dsO*(dco*cf-dso*sf) + dcO*(dso*cf+dco*sf)*ci); + + p.vx = v0*((o.e+cf)*(-ci*dco*dsO - dcO*dso) - sf*(dco*dcO - ci*dso*dsO)); + p.vy = v0*((o.e+cf)*(ci*dco*dcO - dsO*dso) - sf*(dco*dsO + ci*dso*dcO)); + + return p; +} + +struct reb_particle reb_particle_derivative_Omega_f(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double r = o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double dr = o.e*sin(o.f)*o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f))/(1. + o.e*cos(o.f)); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + + double dcO = -sin(o.Omega); + double dsO = cos(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double dcf = -sin(o.f); + double dsf = cos(o.f); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + + p.x = r*(dcO*(co*dcf-so*dsf) - dsO*(so*dcf+co*dsf)*ci); + p.y = r*(dsO*(co*dcf-so*dsf) + dcO*(so*dcf+co*dsf)*ci); + + p.x += dr*(dcO*(co*cf-so*sf) - dsO*(so*cf+co*sf)*ci); + p.y += dr*(dsO*(co*cf-so*sf) + dcO*(so*cf+co*sf)*ci); + + p.vx = v0*((dcf)*(-ci*co*dsO - dcO*so) - dsf*(co*dcO - ci*so*dsO)); + p.vy = v0*((dcf)*(ci*co*dcO - dsO*so) - dsf*(co*dsO + ci*so*dcO)); + + return p; +} + +struct reb_particle reb_particle_derivative_m_Omega(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double dv0 = 0.5/sqrt(po.m+primary.m)*sqrt(G/o.a/(1.-o.e*o.e)); + + double dcO = -sin(o.Omega); + double dsO = cos(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + + p.vx = dv0*((o.e+cf)*(-ci*co*dsO - dcO*so) - sf*(co*dcO - ci*so*dsO)); + p.vy = dv0*((o.e+cf)*(ci*co*dcO - dsO*so) - sf*(co*dsO + ci*so*dcO)); + + return p; +} + +struct reb_particle reb_particle_derivative_omega_f(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double r = o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f)); + double dr = o.e*sin(o.f)*o.a*(1.-o.e*o.e)/(1. + o.e*cos(o.f))/(1. + o.e*cos(o.f)); + double v0 = sqrt(G*(po.m+primary.m)/o.a/(1.-o.e*o.e)); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double dco = -sin(o.omega); + double dso = cos(o.omega); + double dcf = -sin(o.f); + double dsf = cos(o.f); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + double si = sin(o.inc); + + p.x = r*(cO*(dco*dcf-dso*dsf) - sO*(dso*dcf+dco*dsf)*ci); + p.y = r*(sO*(dco*dcf-dso*dsf) + cO*(dso*dcf+dco*dsf)*ci); + p.z = r*(dso*dcf+dco*dsf)*si; + + p.x += dr*(cO*(dco*cf-dso*sf) - sO*(dso*cf+dco*sf)*ci); + p.y += dr*(sO*(dco*cf-dso*sf) + cO*(dso*cf+dco*sf)*ci); + p.z += dr*(dso*cf+dco*sf)*si; + + p.vx = v0*((dcf)*(-ci*dco*sO - cO*dso) - dsf*(dco*cO - ci*dso*sO)); + p.vy = v0*((dcf)*(ci*dco*cO - sO*dso) - dsf*(dco*sO + ci*dso*cO)); + p.vz = v0*((dcf)*dco*si - dsf*si*dso); + + return p; +} + +struct reb_particle reb_particle_derivative_m_omega(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double dv0 = 0.5*sqrt(G/o.a/(1.-o.e*o.e))/sqrt(po.m+primary.m); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double dco = -sin(o.omega); + double dso = cos(o.omega); + double cf = cos(o.f); + double sf = sin(o.f); + double ci = cos(o.inc); + double si = sin(o.inc); + + p.vx = dv0*((o.e+cf)*(-ci*dco*sO - cO*dso) - sf*(dco*cO - ci*dso*sO)); + p.vy = dv0*((o.e+cf)*(ci*dco*cO - sO*dso) - sf*(dco*sO + ci*dso*cO)); + p.vz = dv0*((o.e+cf)*dco*si - sf*si*dso); + + return p; +} + +struct reb_particle reb_particle_derivative_m_f(double G, struct reb_particle primary, struct reb_particle po){ + struct reb_orbit o = reb_orbit_from_particle(G, po, primary); + struct reb_particle p = {0}; + double dv0 = 0.5*sqrt(G/o.a/(1.-o.e*o.e))/sqrt(po.m+primary.m); + + double cO = cos(o.Omega); + double sO = sin(o.Omega); + double co = cos(o.omega); + double so = sin(o.omega); + double dcf = -sin(o.f); + double dsf = cos(o.f); + double ci = cos(o.inc); + double si = sin(o.inc); + + p.vx = dv0*(dcf*(-ci*co*sO - cO*so) - dsf*(co*cO - ci*so*sO)); + p.vy = dv0*(dcf*(ci*co*cO - sO*so) - dsf*(co*sO + ci*so*cO)); + p.vz = dv0*(dcf*co*si - dsf*si*so); + + return p; +} diff --git a/rebound/source/src/derivatives.h b/rebound/source/src/derivatives.h new file mode 100644 index 0000000000000000000000000000000000000000..95a0783db91bff88ef6d10ddfe0f4e6892a42e1a --- /dev/null +++ b/rebound/source/src/derivatives.h @@ -0,0 +1,30 @@ +/** + * @file derivatives.h + * @brief Functions to calculate derivatives of Keplerian orbits. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2016 Hanno Rein, Dan Tamayp, Rejean Leblanc + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef DERIVATIVES_H +#define DERIVATIVES_H + +// All functions declared in rebound.h + +#endif // DERIVATIVES_H diff --git a/rebound/source/src/display.c b/rebound/source/src/display.c new file mode 100644 index 0000000000000000000000000000000000000000..d86ab091bada0684040031f11d8726afb4051a62 --- /dev/null +++ b/rebound/source/src/display.c @@ -0,0 +1,1740 @@ +/** + * @file display.c + * @brief Realtime OpenGL visualization. + * @author Hanno Rein + * @details These functions provide real time visualizations + * using OpenGL. + * + * @section LICENSE + * Copyright (c) 2015 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#define DEG2RAD (M_PI/180.) +#include +#include +#ifndef _WIN32 +#include +#endif // _WIN32 +#include +#include +#include +#include "rebound.h" +#include "display.h" +#include "tools.h" +#include "particle.h" +#include "boundary.h" +#include "display.h" +#include "output.h" +#include "integrator.h" +#define MAX(a, b) ((a) < (b) ? (b) : (a)) ///< Returns the maximum of a and b + +static void reb_display_set_default_view(struct reb_simulation* const r, struct reb_display_settings* s){ + float scale = 0.; + // Need a scale for visualization + if (r->root_size==-1){ + scale = 0.; + const struct reb_particle* p = r->particles; + for (unsigned int i=0;iN-r->N_var;i++){ + const double _r = sqrt(p[i].x*p[i].x+p[i].y*p[i].y+p[i].z*p[i].z); + scale = MAX(scale, _r); + } + if(scale==0.){ + scale = 1.; + } + scale *= 1.1; + }else{ + scale = r->boxsize_max/2.; + } + + struct reb_mat4df oldview = s->view; + s->view = reb_mat4df_scale(reb_mat4df_identity(), 1./scale, 1./scale, 1./scale); + if (oldview.m[1]==0. && oldview.m[2]==0. && oldview.m[4]==0. && oldview.m[6]==0.){ + struct reb_rotation rotation = { + .ix = 1./sqrt(2.), + .iy = 0., + .iz = 0., + .r = 1./sqrt(2.), + }; + s->view = reb_mat4df_multiply(reb_rotation_to_mat4df(rotation), s->view); + }else if (oldview.m[1]==0. && oldview.m[2]==0. && oldview.m[4]==0. && oldview.m[5]==0.){ + struct reb_rotation rotation = { + .ix = 0., + .iy = -1./sqrt(2.), + .iz = 0., + .r = 1./sqrt(2.), + }; + s->view = reb_mat4df_multiply(reb_rotation_to_mat4df(rotation), s->view); + } +} + +void reb_display_settings_init(struct reb_simulation*r, struct reb_display_settings* s){ + int l1 = -1; + int l2 = -1; + reb_simulation_two_largest_particles(r, &l1, &l2); + double largest_radius = 0; + if (l1!=-1){ + largest_radius = r->particles[l1].r; + } + if (largest_radius > 0.0){ + s->spheres = 1; + }else{ + s->spheres = 0; + } + s->pause = 0; + s->multisample = 1; + if (r->integrator==REB_INTEGRATOR_WHFAST){ + s->wire = 1; + }else{ + s->wire = 0; + } + s->breadcrumbs = 0; + s->onscreentext = 1; + s->ghostboxes = 0; + s->reference = -1; + s->view.m[1]=1; // this will make set_default_view show the xy plane + reb_display_set_default_view(r, s); +} + +void reb_simulation_add_display_settings(struct reb_simulation*r){ + if (r->display_settings){ + reb_simulation_error(r,"Simulation already has display settings."); + return; + } + r->display_settings = calloc(1,sizeof(struct reb_display_settings)); + reb_display_settings_init(r, r->display_settings); +} + + +#ifdef OPENGL +#include "simplefont.h" + +#ifdef __EMSCRIPTEN__ +#include +// Need to use emscripten_ version of these functions because types are wrong otherwise +void emscripten_glVertexAttribDivisor(GLuint index, GLuint divisor); +void emscripten_glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +#define reb_glVertexAttribDivisor emscripten_glVertexAttribDivisor +#define reb_glDrawArraysInstanced emscripten_glDrawArraysInstanced + + +EM_JS(void, reb_overlay_update, (const char* text, int status), { + var overlaytext = document.getElementById("overlaytext"); + if (overlaytext){ + overlaytext.innerHTML = UTF8ToString(text); + } + var overlay = document.getElementById("overlay"); + if (overlay){ + if (status==-3){ // Pause + overlay.style.backgroundColor = "rgba(100.0, 100.0, 0.0, 0.5)"; + }else if (status==0 || status==5){ // Finished. + overlay.style.backgroundColor = "rgba(0.0, 255.0, 0.0, 0.5)"; + }else if (status==10){ // Connection error. + overlay.style.backgroundColor = "rgba(255.0, 0.0, 0.0, 0.5)"; + }else{ + overlay.style.backgroundColor = "rgba(0, 0, 0, 0.5)"; + } + } + }); +EM_JS(int, reb_overlay_help_show, (int show), { + var overlaytoggle = document.getElementById("overlay-toggle"); + if (overlaytoggle){ + if (overlaytoggle.innerHTML == "1"){ + overlaytoggle.innerHTML = ""; + show = !show; + } + } + var overlayhelp = document.getElementById("overlay-help"); + if (show){ + overlayhelp.style.display = "block"; + }else{ + overlayhelp.style.display = "none"; + } + return show; + }); + +#else +#define reb_glVertexAttribDivisor glVertexAttribDivisor +#define reb_glDrawArraysInstanced glDrawArraysInstanced +#endif + +void reb_render_frame(void* p); + +static const char* onscreenhelp[] = { + "REBOUND mouse and keyboard commands", + "----------------------------------------------------", + " To rotate the view, simply drag the simulation", + " with the mouse. To zoom in, press the shift key ", + " and then drag the simulation with the mouse.", + "----------------------------------------------------", + " h | Show/hide this page", + " q | Quit simulation", + " (space) | Pause simulation", + " (ar dwn)| Perform one single time step", + " (pg dwn)| Perform 50 time steps", +#ifdef __EMSCRIPTEN__ + " e | Take screenshot and export as png file", +#else // __EMSCRIPTEN__ + " e | Take screenshot and export as tga file", +#endif // __EMSCRIPTEN__ + " d | Pause real-time visualization", + " | (the simulation continues)", + " r | Reset view. Press multiple times to", + " | change orientation", + " x/X | Move to a coordinate system centered", + " | on a particle (note: does not work if", + " | particle array is resorted)", + " t | Show/hide logo, time, timestep, number", + " | of particles, and scale", + " s | Toggle points/spheres/points+spheres/none", + " g | Toggle ghost boxes", + " m | Toggle multisampling", + " w | Toggle orbit mode (none/wire/plane)", + " i / o | Increase / decrease number of breadcrumbs", + " c | Clear breadcrumb data", + "----------------------------------------------------" +}; + + +static int convertLine(const char* in, float* out){ + int j = 0; + while(in[j]!=0&&in[j]!=10){ // end on new line or \0 + out[j*2+0] = (float)((((int)in[j]))%16); + out[j*2+1] = (float)((((int)in[j]))/16); + j++; + } + return j; +} + +static unsigned int compileShader(int* shader, int type, const char* source){ + GLint status; + + *shader = glCreateShader(type); + glShaderSource(*shader, 1, &source, NULL); + glCompileShader(*shader); + + GLint logLength; + glGetShaderiv(*shader, GL_INFO_LOG_LENGTH, &logLength); + if (logLength > 0) { + GLchar *log = (GLchar *)malloc(logLength); + glGetShaderInfoLog(*shader, logLength, &logLength, log); + printf("\n\n%s\n\n",log); + free(log); + } + + glGetShaderiv(*shader, GL_COMPILE_STATUS, &status); + if (status == 0) { + glDeleteShader(*shader); + return 0; + } + + return 1; +} + +static unsigned int linkProgram(int prog){ + GLint status; + glLinkProgram(prog); + + GLint logLength; + glGetProgramiv(prog, GL_INFO_LOG_LENGTH, &logLength); + if (logLength > 1) { // 0 should work - bug in emscripten? + GLchar *log = (GLchar *)malloc(logLength); + glGetProgramInfoLog(prog, logLength, &logLength, log); + printf("\n\n%s\n\n",log); + free(log); + } + + glGetProgramiv(prog, GL_LINK_STATUS, &status); + if (status == 0) { + return 0; + } + + return 1; +} + +static int loadShader(const char* vert_source, const char* frag_source){ + GLint vertShader, fragShader; + + GLuint _program = glCreateProgram(); + + if(!compileShader(&vertShader, GL_VERTEX_SHADER, vert_source)) { + printf("Failed to compile vertex shader.\n"); + return -1; + } + + if (!compileShader(&fragShader, GL_FRAGMENT_SHADER, frag_source)){ + printf("Failed to compile fragment shader.\n"); + return -1; + } + + glAttachShader(_program, vertShader); + glAttachShader(_program, fragShader); + + if (!linkProgram(_program)) { + printf("Failed to link shader.\n"); + return -1; + } + + if (vertShader) { + glDetachShader(_program, vertShader); + glDeleteShader(vertShader); + } + if (fragShader) { + glDetachShader(_program, fragShader); + glDeleteShader(fragShader); + } + return _program; +} + +static void reb_glfw_error_callback(int error, const char* description){ + fprintf(stderr, "GLFW Error: %s\n", description); +} + +static void reb_display_scroll(GLFWwindow* window, double xoffset, double yoffset){ + struct reb_display_data* data = glfwGetWindowUserPointer(window); + if (!data){ + printf("Error accessing data in reb_display_scroll\n"); + return; + } + float scale = 1.-yoffset/100.; + data->s.view = reb_mat4df_scale(data->s.view, scale, scale, scale); +} +static void reb_display_mouse_button(GLFWwindow* window, int button, int action, int mods){ + struct reb_display_data* data = glfwGetWindowUserPointer(window); + if (!data){ + printf("Error accessing data in reb_display_mouse_button\n"); + return; + } + data->mouse_action = action; +} + +static void reb_display_resize(GLFWwindow* window, int x, int y){ + struct reb_display_data* data = glfwGetWindowUserPointer(window); + if (!data){ + printf("Error accessing data in reb_display_resize\n"); + return; + } +} + +static void reb_display_cursor(GLFWwindow* window, double x, double y){ + struct reb_display_data* data = glfwGetWindowUserPointer(window); + if (!data){ + printf("Error accessing data in reb_display_cursor\n"); + return; + } + int width, height; + glfwGetWindowSize(window, &width, &height); + if (data->mouse_action==GLFW_RELEASE){ + // No button pressed + data->mouse_x = INFINITY; + data->mouse_y = INFINITY; + return; + } + if (isinf(data->mouse_x)){ + // New drag event + data->mouse_x = x; + data->mouse_y = y; + return; + } + if (data->mouse_action==GLFW_PRESS){ + if ((data->key_mods&GLFW_MOD_SHIFT)==0){ + // Drag + float dx = 3.*(x-data->mouse_x)/width; + float dy = 3.*(y-data->mouse_y)/height; + struct reb_rotation rot_dy = {.ix=sin(dy), .r=cos(dy)}; + struct reb_rotation rot_dx = {.iy=sin(dx), .r=cos(dx)}; + data->s.view = reb_mat4df_multiply(reb_rotation_to_mat4df(rot_dy), data->s.view); + data->s.view = reb_mat4df_multiply(reb_rotation_to_mat4df(rot_dx), data->s.view); + }else{ + // Zoom + float ix = data->mouse_x/width-0.5; + float iy = data->mouse_y/height-0.5; + float ir = sqrt(ix*ix + iy*iy); + float nx = x/width-0.5; + float ny = y/height-0.5; + float nr = sqrt(nx*nx + ny*ny); + data->s.view = reb_mat4df_scale(data->s.view, nr/ir, nr/ir, nr/ir); + } + data->mouse_x = x; + data->mouse_y = y; + return; + } +} + +#define xstr(s) ystr(s) +#define ystr(s) #s +static void reb_display_clear_particle_data(struct reb_display_data* data){ + int N_real = data->N_allocated; + int N_hist = data->breadcrumb_N_allocated; + if (data->particle_data){ + float n = NAN; + for (int i=0; iparticle_data[i].x = n; + data->particle_data[i].y = n; + data->particle_data[i].z = n; + data->particle_data[i].r = n; + } + glBindBuffer(GL_ARRAY_BUFFER, data->particle_buffer); + for (int i=0; iparticle_data); + } + } + if (data->orbit_data){ + float n = NAN; + for (int i=0; iorbit_data[i].x = n; // enought to not render + data->orbit_data[i].y = n; + data->orbit_data[i].z = n; + } + glBindBuffer(GL_ARRAY_BUFFER, data->orbit_buffer); + for (int i=0; iorbit_data); + } + } +} + +void reb_display_keyboard(GLFWwindow* window, int key, int scancode, int action, int mods){ + struct reb_display_data* data = glfwGetWindowUserPointer(window); + if (!data){ + printf("Error accessing data in reb_display_keyboard\n"); + return; + } + if (!data->r){ + printf("Error accessing data->r in reb_display_keyboard\n"); + return; + } + // User defined keys: + int skip_default_keys = 0; + if (data->r->key_callback){ + skip_default_keys = data->r->key_callback(data->r, key); + } + if (skip_default_keys){ + return; + } + // Default keys: + data->key_mods = mods; + if (action==GLFW_PRESS){ + switch(key){ + case 'H': + data->s.onscreenhelp = !data->s.onscreenhelp; + break; + case 'Q': + data->r->status = REB_STATUS_USER; + break; + case ' ': + if (data->r->status == REB_STATUS_PAUSED){ + printf("Resume.\n"); + data->r->status = REB_STATUS_RUNNING; + }else if (data->r->status == REB_STATUS_RUNNING || data->r->status == REB_STATUS_LAST_STEP){ + printf("Pause.\n"); + data->r->status = REB_STATUS_PAUSED; + } + break; + case 'S': + data->s.spheres = (data->s.spheres+1)%4; + break; + case 'G': + data->s.ghostboxes = !data->s.ghostboxes; + break; + case 'M': + data->s.multisample = !data->s.multisample; + if (data->s.multisample){ + glEnable(GL_MULTISAMPLE); + }else{ + glDisable(GL_MULTISAMPLE); + } + break; + case 'R': + data->s.reference = -1; + reb_display_set_default_view(data->r, &data->s); + break; + case 'D': + data->s.pause = !data->s.pause; + break; + case 'W': + data->s.wire = (data->s.wire+1)%3; + break; + case 'C': + reb_display_clear_particle_data(data); + break; + case 'E': + data->take_one_screenshot = 1; + break; + case 'I': + data->s.breadcrumbs = MAX(1,data->s.breadcrumbs*2); + break; + case 'O': + data->s.breadcrumbs = MAX(0, data->s.breadcrumbs/2) ; + data->breadcrumb_current_index = 0; // prevent bad memory access after rescale + break; + case 'T': + data->s.onscreentext = !data->s.onscreentext; + break; + case 'X': + if (mods!=GLFW_MOD_SHIFT){ + data->s.reference++; + if (data->s.reference>=data->r->N) data->s.reference = -1; + printf("Reference particle: %d.\n",data->s.reference); + }else{ + data->s.reference--; + if (data->s.reference<-1) data->s.reference = data->r->N-1; + printf("Reference particle: %d.\n",data->s.reference); + } + break; + case 264: // arrow down + if (data->r->status == REB_STATUS_PAUSED){ + data->r->status = REB_STATUS_SINGLE_STEP; + printf("Step.\n"); + } + break; + case 267: // page down + if (data->r->status == REB_STATUS_PAUSED){ + data->r->status = REB_STATUS_SINGLE_STEP - 50; + printf("50 steps.\n"); + } + break; + } + } +} + +// Actual rendering +// Makes a copy of the simulation first. +void reb_render_frame(void* p){ + struct reb_display_data* data = (struct reb_display_data*)p; + struct reb_simulation* r = data->r; + if (!data){ + printf("reb_display_data undefinded in reb_render_frame().\n"); + return; + } + int width, height; +#ifdef __EMSCRIPTEN__ + // Need to query canvas size using JS, set window size, then read framebuffer size. + width = EM_ASM_INT({ + return document.getElementById("canvas").scrollWidth; + }); + height = EM_ASM_INT({ + return document.getElementById("canvas").scrollHeight; + }); +#endif + int cwidth, cheight; + glfwGetWindowSize(data->window, &cwidth, &cheight); +#ifdef __EMSCRIPTEN__ + if (cwidth!=width || cheight !=height){ + glfwSetWindowSize(data->window, width, height); + } +#endif + glfwGetFramebufferSize(data->window, &width, &height); + + // Check if we have a retina display + data->retina = (double)width/(double)cwidth; + + struct reb_simulation* r_copy = r->display_data->r_copy; + if (!r_copy){ + data->r_copy = reb_simulation_create(); + r_copy = data->r_copy; + } + + // lock mutex for update + data->need_copy = 1; + int wait_count = 0; + const int wait_count_max = 10; + int ret_try = EBUSY; + while (wait_countmutex); + if (ret_try){ // not locked + usleep(1./120.*1e6/wait_count_max); + wait_count++; + } + } + + if (!ret_try){ + // Copy if lock obtained. Otherwise use old data. + enum reb_simulation_binary_error_codes warnings = REB_SIMULATION_BINARY_WARNING_NONE; + reb_simulation_copy_with_messages(data->r_copy,r,&warnings); + data->need_copy = 0; + pthread_mutex_unlock(&(data->mutex)); + } + + if (r_copy->display_settings){ + // User provided settings server-side. Will overwrite our own. + data->s = *r_copy->display_settings; + } + + // prepare data (incl orbit calculation) + const int N_real = r_copy->N - r_copy->N_var; + + if (N_real > data->N_allocated || data->s.breadcrumbs+1 != data->breadcrumb_N_allocated){ + data->N_allocated = N_real; + data->breadcrumb_N_allocated = data->s.breadcrumbs+1; + + data->particle_data = realloc(data->particle_data, data->N_allocated*sizeof(struct reb_vec4df)); + data->orbit_data = realloc(data->orbit_data, data->N_allocated*sizeof(struct reb_orbit_opengl)); + + // Resize memory if needed + glBindBuffer(GL_ARRAY_BUFFER, data->particle_buffer); + glBufferData(GL_ARRAY_BUFFER, data->breadcrumb_N_allocated*data->N_allocated*sizeof(struct reb_vec4df), NULL, GL_STATIC_DRAW); + glBindBuffer(GL_ARRAY_BUFFER, data->particle_buffer_current); + glBufferData(GL_ARRAY_BUFFER, data->N_allocated*sizeof(struct reb_vec4df), NULL, GL_STATIC_DRAW); + + glBindBuffer(GL_ARRAY_BUFFER, data->orbit_buffer); + glBufferData(GL_ARRAY_BUFFER, data->breadcrumb_N_allocated*data->N_allocated*sizeof(struct reb_orbit_opengl), NULL, GL_STATIC_DRAW); + glBindBuffer(GL_ARRAY_BUFFER, data->orbit_buffer_current); + glBufferData(GL_ARRAY_BUFFER, data->N_allocated*sizeof(struct reb_orbit_opengl), NULL, GL_STATIC_DRAW); + + reb_display_clear_particle_data(data); + } + + // this only does something for WHFAST + reb_simulation_synchronize(r_copy); + + // Update data on GPU + for (unsigned int i=0;iparticles[i]; + data->particle_data[i].x = (float)p.x; + data->particle_data[i].y = (float)p.y; + data->particle_data[i].z = (float)p.z; + data->particle_data[i].r = (float)p.r; + } + // Only advance breadcrumb index if simulation has advanced + if (r->steps_done != data->breadcrumb_last_steps_done){ + if (r->steps_done < data->breadcrumb_last_steps_done){ + // Something strange is happening. New simulation? + reb_display_clear_particle_data(data); + } + data->breadcrumb_last_steps_done = r->steps_done; + data->breadcrumb_current_index = (data->breadcrumb_current_index+1) % data->breadcrumb_N_allocated; + } + + if (data->s.wire && N_real>1){ + struct reb_particle com = r_copy->particles[0]; + for (unsigned int i=1;iparticles[i]; + data->orbit_data[i-1].x = (float)com.x; + data->orbit_data[i-1].y = (float)com.y; + data->orbit_data[i-1].z = (float)com.z; + struct reb_orbit o = reb_orbit_from_particle(r_copy->G, p,com); + data->orbit_data[i-1].a = (float)o.a; + data->orbit_data[i-1].e = (float)o.e; + data->orbit_data[i-1].f = (float)o.f; + data->orbit_data[i-1].omega = (float)o.omega; + data->orbit_data[i-1].Omega = (float)o.Omega; + data->orbit_data[i-1].inc = (float)o.inc; + com = reb_particle_com_of_pair(p,com); + } + } + if (N_real>0){ + // Fill memory (but not resize) + glBindBuffer(GL_ARRAY_BUFFER, data->particle_buffer); + glBufferSubData(GL_ARRAY_BUFFER, data->breadcrumb_current_index*N_real*sizeof(struct reb_vec4df), N_real*sizeof(struct reb_vec4df), data->particle_data); + if (data->s.spheres==1 || data->s.spheres==2){ + glBindBuffer(GL_ARRAY_BUFFER, data->particle_buffer_current); + glBufferSubData(GL_ARRAY_BUFFER, 0, N_real*sizeof(struct reb_vec4df), data->particle_data); + } + + glBindBuffer(GL_ARRAY_BUFFER, data->orbit_buffer); + glBufferSubData(GL_ARRAY_BUFFER, data->breadcrumb_current_index*(N_real-1)*sizeof(struct reb_orbit_opengl), (N_real-1)*sizeof(struct reb_orbit_opengl), data->orbit_data); + if (data->s.wire){ + glBindBuffer(GL_ARRAY_BUFFER, data->orbit_buffer_current); + glBufferSubData(GL_ARRAY_BUFFER, 0, (N_real-1)*sizeof(struct reb_orbit_opengl), data->orbit_data); + } + } + + // Do actual drawing + double ratio = (double)width/(double)height; + glViewport(0,0,width,height); + glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT ); + +#ifndef __EMSCRIPTEN__ + glPointSize(15.*data->retina); +#endif + + // Precalculate matricies + struct reb_mat4df projection = reb_mat4df_ortho( -1.6*ratio, 1.6*ratio, -1.6,1.6, -2.5,2.5); + struct reb_mat4df view = data->s.view; + if (data->s.reference>=0){ + struct reb_particle p = data->r_copy->particles[data->s.reference]; + view = reb_mat4df_translate(view, -p.x, -p.y, -p.z); + } + + for (int i=-data->s.ghostboxes*data->r_copy->N_ghost_x;i<=data->s.ghostboxes*data->r_copy->N_ghost_x;i++){ + for (int j=-data->s.ghostboxes*data->r_copy->N_ghost_y;j<=data->s.ghostboxes*data->r_copy->N_ghost_y;j++){ + for (int k=-data->s.ghostboxes*data->r_copy->N_ghost_z;k<=data->s.ghostboxes*data->r_copy->N_ghost_z;k++){ + struct reb_vec6d gb = reb_boundary_get_ghostbox(data->r_copy, i,j,k); + struct reb_mat4df model = reb_mat4df_translate(reb_mat4df_identity(), gb.x, gb.y, gb.z); + { // Particles + struct reb_mat4df mvp = reb_mat4df_multiply(projection, reb_mat4df_multiply(view, model)); + if (data->s.wire==2){ + // Orbit Planes + glDisable(GL_CULL_FACE); + glUseProgram(data->shader_plane.program); + glUniformMatrix4fv(data->shader_plane.mvp_location, 1, GL_TRUE, (GLfloat*) mvp.m); + glBindVertexArray(data->shader_plane.particle_vao_current); + glUniform1i(data->shader_plane.vertex_count_location, data->shader_plane.vertex_count); + reb_glDrawArraysInstanced(GL_TRIANGLES, 0, data->shader_plane.vertex_count, N_real-1); + glBindVertexArray(0); + glEnable(GL_CULL_FACE); + } + if(data->s.spheres==1||data->s.spheres==2){ + // Solid Spheres + glEnable(GL_DEPTH_TEST); + glUseProgram(data->shader_sphere.program); + glUniformMatrix4fv(data->shader_sphere.mvp_location, 1, GL_TRUE, (GLfloat*) mvp.m); + if (data->breadcrumb_N_allocated>1){ + glBindVertexArray(data->shader_sphere.particle_vao); + reb_glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 800, N_real*data->breadcrumb_N_allocated); + }else{ + glBindVertexArray(data->shader_sphere.particle_vao_current); + reb_glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 800, N_real); + } + glBindVertexArray(0); + glDisable(GL_DEPTH_TEST); + } + + if(data->s.spheres%2==0){ + glUseProgram(data->shader_point.program); + glBindVertexArray(data->shader_point.particle_vao); + glUniformMatrix4fv(data->shader_point.mvp_location, 1, GL_TRUE, (GLfloat*) mvp.m); + glUniform1i(data->shader_point.breadcrumb_N_location, data->breadcrumb_N_allocated); + if (data->breadcrumb_N_allocated>1){ + glUniform4f(data->shader_point.color_location, 1.,1.,1.,0.8); + glUniform1i(data->shader_point.N_real_location, N_real); + glUniform1i(data->shader_point.current_index_location, data->breadcrumb_current_index); + glDrawArrays(GL_POINTS, 0, N_real*data->breadcrumb_N_allocated); + } + // Points + glUniform4f(data->shader_point.color_location, 1.,1.,0.,0.8); + glUniform1i(data->shader_point.N_real_location, 0); + glDrawArrays(GL_POINTS, N_real*data->breadcrumb_current_index, N_real); + glBindVertexArray(0); + } + if (data->s.wire>=1){ + // Orbits + glUseProgram(data->shader_orbit.program); + glUniformMatrix4fv(data->shader_orbit.mvp_location, 1, GL_TRUE, (GLfloat*) mvp.m); + glUniform1i(data->shader_orbit.breadcrumb_N_location, data->breadcrumb_N_allocated); + glUniform1i(data->shader_orbit.vertex_count_location, data->shader_orbit.vertex_count); + if (data->breadcrumb_N_allocated>1){ + glBindVertexArray(data->shader_orbit.particle_vao); + glUniform1i(data->shader_orbit.N_real_location, N_real-1); + glUniform1i(data->shader_orbit.current_index_location, data->breadcrumb_current_index); + reb_glDrawArraysInstanced(GL_LINE_STRIP, 0, data->shader_orbit.vertex_count, data->breadcrumb_N_allocated*(N_real-1)); + }else{ + glBindVertexArray(data->shader_orbit.particle_vao_current); + glUniform1i(data->shader_orbit.N_real_location, 0); + reb_glDrawArraysInstanced(GL_LINE_STRIP, 0, data->shader_orbit.vertex_count, N_real-1); + } + glBindVertexArray(0); + } + } + { // Box + glUseProgram(data->shader_box.program); + struct reb_mat4df boxmodel = model; + if (data->r_copy->boundary == REB_BOUNDARY_NONE){ + struct reb_vec3df scale = reb_mat4df_get_scale(view); // Extract scale from view matrix so it can be undone + glBindVertexArray(data->shader_box.cross_vao); + boxmodel = reb_mat4df_scale(boxmodel, 1./scale.x, 1./scale.y, 1./scale.z); + }else{ + glBindVertexArray(data->shader_box.box_vao); + boxmodel = reb_mat4df_scale(boxmodel, data->r_copy->boxsize.x/2., data->r_copy->boxsize.y/2., data->r_copy->boxsize.z/2.); + } + struct reb_mat4df mvp = reb_mat4df_multiply(projection, reb_mat4df_multiply(view, boxmodel)); + glUniformMatrix4fv(data->shader_box.mvp_location, 1, GL_TRUE, (GLfloat*) mvp.m); + glUniform4f(data->shader_box.color_location, 1.,0.,0.,1.); + if (data->r_copy->boundary == REB_BOUNDARY_NONE){ + glDrawArrays(GL_LINES, 0, 6); + }else{ + glDrawArrays(GL_LINES, 0, 24); + } + glBindVertexArray(0); + } + }}} + + + // Ruler + if (data->s.onscreentext){ + glUseProgram(data->shader_box.program); + glBindVertexArray(data->shader_box.ruler_vao); + glUniform4f(data->shader_box.color_location, 1.,1.,1.,1.); + struct reb_vec3df scale3 = reb_mat4df_get_scale(view); // Extract scale from view matrix so it can be undone + float scaley = powf(10.,floor(log10f(3./scale3.y))); // nearest power of 10, factor of 3. determines wrapping + if (5.*scaley<3./scale3.y) { scaley*=5;} + if (2.*scaley<3./scale3.y) { scaley*=2;} + + struct reb_mat4df ruler_mvp = reb_mat4df_identity(); + ruler_mvp = reb_mat4df_translate(ruler_mvp, 1.-30./width, 0, 0); + ruler_mvp = reb_mat4df_scale(ruler_mvp, 15.0/width, 0.3125*scale3.y*scaley, 1); // 0.3125 comes from b and t values in projection matrix + glUniformMatrix4fv(data->shader_box.mvp_location, 1, GL_TRUE, (GLfloat*) ruler_mvp.m); + glDrawArrays(GL_LINES, 0, 6); + glBindVertexArray(0); + + // Text + char str[256]; + float val[200] = {0.}; + float char_size = data->retina*16.; // px per char + float scale = 2.*char_size/height; // size of one char in screen coordinates + glUseProgram(data->shader_simplefont.program); + glBindVertexArray(data->shader_simplefont.vao); + glUniform1i(data->shader_simplefont.texture_location, 0); + glBindTexture(GL_TEXTURE_2D,data->shader_simplefont.texture); + float screen_aspect = (float)height/(float)width; + glUniform1f(data->shader_simplefont.screen_aspect_location, screen_aspect); + glBindBuffer(GL_ARRAY_BUFFER, data->shader_simplefont.charval_buffer); + + + // Ruler + if (scaley >= 1000. || scaley<=0.01){ + sprintf(str, "%.0e", scaley); + }else{ + sprintf(str, "%.*f", MAX(0,1-(int)log10f(scaley)), scaley); + } + float ruler_height = strlen(str)*0.75*scale; + glUniform2f(data->shader_simplefont.pos_location, 1.-31./width,-ruler_height/2.); + glUniform1f(data->shader_simplefont.ypos_location, 0); + glUniform1i(data->shader_simplefont.rotation_location, 1); + glUniform1f(data->shader_simplefont.scale_location, scale); + glUniform1f(data->shader_simplefont.aspect_location, 0.75); + int j = convertLine(str,val); + glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(val), val); + reb_glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 4, j); + +#ifdef __EMSCRIPTEN__ + } +#else // __EMSCRIPTEN__ + // Logo + char_size = data->retina*4.; // px per char + scale = 2.*char_size/height; // size of one char in screen coordinates + float logo_width = 42.0*0.5 *scale*screen_aspect; // 41=num char, 0.5=aspect + float logo_height = 26.0 *scale; // 26=num char + glUniform2f(data->shader_simplefont.pos_location, -1.,-1.+logo_height); + glUniform1f(data->shader_simplefont.aspect_location, 0.5); + glUniform1i(data->shader_simplefont.rotation_location, 0); + glUniform1f(data->shader_simplefont.scale_location, scale); + for (int i=0;ishader_simplefont.ypos_location, (float)i); + glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(val), val); + reb_glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 4, j); + } + + // Status text + char_size = data->retina*16.; // px per char + scale = 2.*char_size/height; // size of one char in screen coordinates + + int ypos = 1; + glUniform2f(data->shader_simplefont.pos_location, -1+logo_width,-1.+logo_height); + glUniform1f(data->shader_simplefont.aspect_location,0.75); + glUniform1f(data->shader_simplefont.scale_location, scale); + + glUniform1f(data->shader_simplefont.ypos_location, ypos++); + sprintf(str,"REBOUND v%s",reb_version_str); + j = convertLine(str,val); + glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(val), val); + reb_glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 4, j); + + if (data->r_copy->status == REB_STATUS_RUNNING){ + sprintf(str, "Simulation is running "); + }else if (data->r_copy->status == REB_STATUS_PAUSED){ + sprintf(str, "Simulation is paused "); + }else if (data->r_copy->status <= REB_STATUS_SINGLE_STEP){ + if (data->r_copy->status == REB_STATUS_SINGLE_STEP){ + sprintf(str, "Integrating 1 step"); + }else{ + sprintf(str, "Integrating %d steps",REB_STATUS_SINGLE_STEP - data->r_copy->status + 1); + } + } + glUniform1f(data->shader_simplefont.ypos_location, ypos++); + j = convertLine(str,val); + glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(val), val); + reb_glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 4, j); + + if (!r_copy->display_settings){ + sprintf(str, "Press h for help "); + }else{ + sprintf(str, "User interaction disabled"); + } + glUniform1f(data->shader_simplefont.ypos_location, ypos++); + j = convertLine(str,val); + glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(val), val); + reb_glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 4, j); + + + sprintf(str, "N = %d ",data->r_copy->N); + glUniform1f(data->shader_simplefont.ypos_location, ypos++); + j = convertLine(str,val); + glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(val), val); + reb_glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 4, j); + + glUniform1f(data->shader_simplefont.ypos_location, ypos++); + if (data->r_copy->integrator==REB_INTEGRATOR_SEI){ + sprintf(str, "t = %f [orb] ", data->r_copy->t*data->r_copy->ri_sei.OMEGA/2./M_PI); + }else{ + sprintf(str, "t = %f ", data->r_copy->t); + } + j = convertLine(str,val); + glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(val), val); + reb_glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 4, j); + +} +glBindVertexArray(0); +glBindTexture(GL_TEXTURE_2D,0); +if (data->s.onscreenhelp){ // On screen help + glUseProgram(data->shader_simplefont.program); + glBindVertexArray(data->shader_simplefont.vao); + glBindTexture(GL_TEXTURE_2D,data->shader_simplefont.texture); + glUniform2f(data->shader_simplefont.pos_location, -0.67,0.7); + glUniform1f(data->shader_simplefont.aspect_location, 0.75); + glUniform1f(data->shader_simplefont.screen_aspect_location, 1./ratio); + glUniform1i(data->shader_simplefont.rotation_location, 0); + glUniform1f(data->shader_simplefont.scale_location, 0.035); + glBindBuffer(GL_ARRAY_BUFFER, data->shader_simplefont.charval_buffer); + float val[200] = {0.}; + for (int i=0;ishader_simplefont.ypos_location, (float)i); + glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(val), val); + reb_glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 4, j); + } +} +#endif // __EMSCRIPTEN__ + +glfwSwapBuffers(data->window); +glfwPollEvents(); +} + +#ifdef __EMSCRIPTEN__ +EM_BOOL reb_render_frame_emscripten(double time, void* p){ + struct reb_simulation* r = (struct reb_simulation*)p; + struct reb_display_data* data = r->display_data; + if (!data){ + return EM_TRUE; + } + if (data->s.pause){ + return EM_TRUE; + } + reb_render_frame(data); + EM_ASM({ + var overlay = document.getElementById("overlay"); + if ($0){ + overlay.style.display = "none"; + }else{ + overlay.style.display = "block"; + } + }, !data->s.onscreentext); + if (data->s.onscreentext){ + char str[10240] = "\0"; + char line[1024]; + sprintf(line,"
REBOUND v%s
",reb_version_str); + strlcat(str, line, 10240); + if (data->connection_status>=0){ + if (data->r_copy->status == REB_STATUS_RUNNING){ + sprintf(line, "Simulation is running
"); + }else if (data->r_copy->status == REB_STATUS_PAUSED){ + sprintf(line, "Simulation is paused
"); + }else if (data->r_copy->status == REB_STATUS_SCREENSHOT_READY){ + sprintf(line, "Screenshot ready
"); + }else if (data->r_copy->status == REB_STATUS_SCREENSHOT){ + sprintf(line, "Taking screenshot
"); + }else if (data->r_copy->status == REB_STATUS_SUCCESS){ + sprintf(line, "Simulation ready
"); + }else if (data->r_copy->status == REB_STATUS_USER){ + sprintf(line, "Simulation canceled
"); + }else if (data->r_copy->status > 0){ + sprintf(line, "Simulation error occured
"); + }else if (data->r_copy->status <= REB_STATUS_SINGLE_STEP){ + if (data->r_copy->status == REB_STATUS_SINGLE_STEP){ + sprintf(line, "Integrating 1 step
"); + }else{ + sprintf(line, "Integrating %d steps
",REB_STATUS_SINGLE_STEP - data->r_copy->status + 1); + } + } + strlcat(str, line, 10240); + sprintf(line, "N = %d
",data->r_copy->N); + strlcat(str, line, 10240); + sprintf(line, "t = %g
",data->r_copy->t); + strlcat(str, line, 10240); + sprintf(line, "steps/s = %g
",1./data->r_copy->walltime_last_steps); + strlcat(str, line, 10240); + if (!data->r_copy->display_settings){ + strlcat(str, "Press h or click for help
", 10240); + }else{ + strlcat(str, "User interaction disabled
", 10240); + } + reb_overlay_update(str, data->r_copy->status); + }else{ + sprintf(line, "Unable to connect. Server might have shut down."); + strlcat(str, line, 10240); + reb_overlay_update(str, 10); + } + } + data->s.onscreenhelp = reb_overlay_help_show(data->s.onscreenhelp); + if (data->s.onscreenhelp){ + char str[10240] = "\0"; + for (int i=0;i", 10240); + EM_ASM({ + var overlaytext = document.getElementById("overlaytext-help"); + if (overlaytext){ + overlaytext.innerHTML = UTF8ToString($0); + }}, str); + } + } + if (data->take_one_screenshot){ + EM_ASM_PTR({ + var canvas = document.getElementById('canvas'); + var link = document.createElement("a"); + link.download = "screenshot.png"; + link.href = canvas.toDataURL(); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + delete link; + }); + data->take_one_screenshot = 0; + } + if (data->r_copy->status == REB_STATUS_SCREENSHOT && !data->screenshot){ + data->screenshot = EM_ASM_PTR({ + var canvas = document.getElementById('canvas'); + return stringToNewUTF8(canvas.toDataURL()); + }); + if (!data->screenshot){ + printf("Error, screenshot not successful."); + } + data->r->status = REB_STATUS_SCREENSHOT_READY; // changing main simulation as r_copy will be overwritten + } + return EM_TRUE; +} +#endif + + +void reb_display_init(struct reb_simulation * const r){ + struct reb_display_data* data = r->display_data; + if (!glfwInit()){ + reb_simulation_error(r, "GLFW initialization failed."); + return; + } + + glfwSetErrorCallback(reb_glfw_error_callback); +#ifdef __EMSCRIPTEN__ + glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API); +#else + glfwWindowHint(GLFW_SAMPLES, 4); + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); + glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, 1); + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); +#endif + + GLFWwindow* window = glfwCreateWindow(700, 700, "rebound", NULL, NULL); + if (!window){ + reb_simulation_error(r,"GLFW window creation failed."); + return; + } + + glfwMakeContextCurrent(window); + +#ifndef __EMSCRIPTEN__ + gladLoadGLLoader((GLADloadproc) glfwGetProcAddress); +#endif // __EMSCRIPTEN__ + + glfwSetWindowUserPointer(window,data); + + // Default parameters + reb_display_settings_init(r, &r->display_data->s); + { // Check if we have a retina display + int wwidth, wheight, fwidth, fheight; + glfwGetWindowSize(window, &wwidth, &wheight); + glfwGetFramebufferSize(window, &fwidth, &fheight); + data->retina = (double)fwidth/(double)wwidth; + } + data->window = window; + data->breadcrumb_current_index= 0; + data->breadcrumb_N_allocated = 0; + + glfwSetKeyCallback(window,reb_display_keyboard); + glfwSetScrollCallback(window,reb_display_scroll); + glfwGetInputMode(window, GLFW_STICKY_MOUSE_BUTTONS); + glfwSetMouseButtonCallback(window, reb_display_mouse_button); + glfwSetCursorPosCallback(window, reb_display_cursor); + glfwSetWindowSizeCallback(window, reb_display_resize); + glDepthMask(GL_TRUE); +#ifndef __EMSCRIPTEN__ + glEnable(GL_MULTISAMPLE); +#endif + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glBlendEquation(GL_FUNC_ADD); + glEnable(GL_CULL_FACE); + glCullFace(GL_FRONT); + + { + // SIMPLEFONT shader + const char* vertex_shader = +#ifdef __EMSCRIPTEN__ + "#version 300 es\n" +#else + "#version 330\n" +#endif + "in vec2 vp;\n" + "in float charpos;\n" + "uniform float scale;\n" + "uniform float aspect;\n" + "uniform float screen_aspect;\n" + "uniform float ypos;\n" + "uniform vec2 pos;\n" + "uniform int rotation;\n" + "in vec2 charval;\n" + "in vec2 texcoord;\n" + "out vec2 Texcoord;\n" + "void main() {\n" + " if (rotation==0) {\n" + " gl_Position = vec4(pos.x+screen_aspect*scale*(vp.x+charpos*aspect),pos.y+scale*(vp.y-ypos),0.,1.);\n" + " }else{\n" + " gl_Position = vec4(pos.x+screen_aspect*scale*(-vp.y),pos.y+scale*(vp.x-ypos+charpos*aspect),0.,1.);\n" + " }\n" + " Texcoord = vec2((charval.s+texcoord.s)/16.,(charval.t+texcoord.t)/16.00);\n" + "}\n"; + const char* fragment_shader = +#ifdef __EMSCRIPTEN__ + "#version 300 es\n" +#else + "#version 330\n" +#endif + "precision highp float;" + "out vec4 outcolor;\n" + "uniform sampler2D tex;\n" + "in vec2 Texcoord;\n" + "void main() {\n" + " outcolor = vec4(0.5,0.5,0.5,(1.-texture(tex, Texcoord).r)); \n" + "}\n"; + + data->shader_simplefont.program = loadShader(vertex_shader, fragment_shader); + data->shader_simplefont.ypos_location = glGetUniformLocation(data->shader_simplefont.program, "ypos"); + data->shader_simplefont.pos_location = glGetUniformLocation(data->shader_simplefont.program, "pos"); + data->shader_simplefont.scale_location = glGetUniformLocation(data->shader_simplefont.program, "scale"); + data->shader_simplefont.rotation_location = glGetUniformLocation(data->shader_simplefont.program, "rotation"); + data->shader_simplefont.texture_location = glGetUniformLocation(data->shader_simplefont.program, "tex"); + data->shader_simplefont.aspect_location = glGetUniformLocation(data->shader_simplefont.program, "aspect"); + data->shader_simplefont.screen_aspect_location = glGetUniformLocation(data->shader_simplefont.program, "screen_aspect"); + + glUseProgram(data->shader_simplefont.program); + glGenVertexArrays(1, &data->shader_simplefont.vao); + glBindVertexArray(data->shader_simplefont.vao); + GLuint sfvp = glGetAttribLocation(data->shader_simplefont.program,"vp"); + glEnableVertexAttribArray(sfvp); + GLuint sftexcoordp = glGetAttribLocation(data->shader_simplefont.program,"texcoord"); + glEnableVertexAttribArray(sftexcoordp); + GLuint charval_location = glGetAttribLocation(data->shader_simplefont.program,"charval"); + glEnableVertexAttribArray(charval_location); + GLuint charpos_location = glGetAttribLocation(data->shader_simplefont.program,"charpos"); + glEnableVertexAttribArray(charpos_location); + float simplefont_data[] = { + 0., 0., 0., 1., + 0., 1., 0., 0.0, + 1., 0., 1., 1., + 1., 1., 1., 0.0 + }; + GLuint simplefont_buffer; + glGenBuffers(1, &simplefont_buffer); + glBindBuffer(GL_ARRAY_BUFFER, simplefont_buffer); + glBufferData(GL_ARRAY_BUFFER, sizeof(simplefont_data), simplefont_data, GL_STATIC_DRAW); + + glVertexAttribPointer(sfvp, 2, GL_FLOAT, GL_FALSE, sizeof(float)*4, NULL); + glVertexAttribPointer(sftexcoordp, 2, GL_FLOAT, GL_FALSE, sizeof(float)*4, (void *)(sizeof(float)*2)); + + GLuint charpos_buffer; + glGenBuffers(1, &charpos_buffer); + glBindBuffer(GL_ARRAY_BUFFER, charpos_buffer); + float charpos[100]; + for(int i=0;i<100;i++){ + charpos[i] = (float)i; + } + glBufferData(GL_ARRAY_BUFFER, sizeof(charpos), charpos, GL_STATIC_DRAW); + glVertexAttribPointer(charpos_location, 1, GL_FLOAT, GL_FALSE, sizeof(float)*1, NULL); + + glGenBuffers(1, &data->shader_simplefont.charval_buffer); + glBindBuffer(GL_ARRAY_BUFFER, data->shader_simplefont.charval_buffer); + glBufferData(GL_ARRAY_BUFFER, 200*sizeof(float), NULL,GL_DYNAMIC_DRAW); + glVertexAttribPointer(charval_location, 2, GL_FLOAT, GL_FALSE, sizeof(float)*2, NULL); + + reb_glVertexAttribDivisor(sfvp, 0); + reb_glVertexAttribDivisor(sftexcoordp, 0); + reb_glVertexAttribDivisor(charpos_location,1); + reb_glVertexAttribDivisor(charval_location,1); + + glBindVertexArray(0); + + // Load simplefont + unsigned char image[65536]; + for(int i=0;i<8192;i++){ + unsigned char byte = simplefont[i]; + for(int b=0;b<8;b++){ + image[i*8+b] = ((byte >> b) & 0x01)? 0xFF : 0x00; + } + } + glGenTextures(1, &data->shader_simplefont.texture); + glBindTexture(GL_TEXTURE_2D,data->shader_simplefont.texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexImage2D(GL_TEXTURE_2D, 0, GL_R8, 256, 256, 0, GL_RED, GL_UNSIGNED_BYTE, image); + glBindTexture(GL_TEXTURE_2D,0); + + } + + { + // POINT shader + const char* vertex_shader = +#ifdef __EMSCRIPTEN__ + "#version 300 es\n" +#else + "#version 330\n" +#endif + "in vec3 vp;\n" + "uniform mat4 mvp;\n" + "uniform vec4 vc;\n" + "out vec4 color;\n" + "uniform int current_index;\n" + "uniform int N_real;\n" + "uniform int breadcrumb_N;\n" + "void main() {\n" + " gl_Position = mvp*vec4(vp, 1.0);\n" + " gl_Position.z = 0.;\n" // no clipping + " gl_PointSize = 15.0f;\n" + " color = vc;\n" + " float age = float( (gl_VertexID/N_real - current_index + 2*breadcrumb_N -1)%breadcrumb_N +1 )/float(breadcrumb_N);\n" + " if (N_real == 0) age = 1.0;\n" + " color = vec4(vc.xyz,age*vc.a);\n" + "}\n"; + const char* fragment_shader = +#ifdef __EMSCRIPTEN__ + "#version 300 es\n" +#else + "#version 330\n" +#endif + "precision highp float;" + "in vec4 color;\n" + "out vec4 outcolor;\n" + "void main() {\n" + " vec2 rel = gl_PointCoord.st;\n" + " rel.s -=0.5f;\n" + " rel.t -=0.5f;\n" + " if (length(rel)>0.25f){\n" + " outcolor = vec4(0.f,0.f,0.f,0.f); \n" + " }else{\n" + " vec4 cmod = color;\n" + " cmod.a*= min(1.,1.-4.*(length(rel)/0.25-0.75));\n" + " outcolor = cmod;\n" + " }\n" + "}\n"; + + data->shader_point.program = loadShader(vertex_shader, fragment_shader); + data->shader_point.mvp_location = glGetUniformLocation(data->shader_point.program, "mvp"); + data->shader_point.color_location = glGetUniformLocation(data->shader_point.program, "vc"); + data->shader_point.current_index_location = glGetUniformLocation(data->shader_point.program, "current_index"); + data->shader_point.breadcrumb_N_location = glGetUniformLocation(data->shader_point.program, "breadcrumb_N"); + data->shader_point.N_real_location = glGetUniformLocation(data->shader_point.program, "N_real"); + + glUseProgram(data->shader_point.program); + glGenVertexArrays(1, &data->shader_point.particle_vao); + glBindVertexArray(data->shader_point.particle_vao); + GLuint pvp = glGetAttribLocation(data->shader_point.program,"vp"); + glEnableVertexAttribArray(pvp); + + glGenBuffers(1, &data->particle_buffer); + glBindBuffer(GL_ARRAY_BUFFER, data->particle_buffer); + glVertexAttribPointer(pvp, 3, GL_FLOAT, GL_FALSE, sizeof(float)*4, NULL); + glBindVertexArray(0); + } + + { + // BOX shader + const char* vertex_shader = +#ifdef __EMSCRIPTEN__ + "#version 300 es\n" +#else + "#version 330\n" +#endif + "in vec3 vp;\n" + "uniform mat4 mvp;\n" + "uniform vec4 vc;\n" + "out vec4 color;\n" + "void main() {\n" + " gl_Position = mvp*vec4(vp, 1.0);\n" + " gl_Position.z = 0.;\n" // no clipping + " color = vc;\n" + "}\n"; + const char* fragment_shader = +#ifdef __EMSCRIPTEN__ + "#version 300 es\n" +#else + "#version 330\n" +#endif + "precision highp float;" + "in vec4 color;\n" + "out vec4 outcolor;\n" + "void main() {\n" + " outcolor = color;\n" + "}\n"; + + data->shader_box.program = loadShader(vertex_shader, fragment_shader); + data->shader_box.mvp_location = glGetUniformLocation(data->shader_box.program, "mvp"); + data->shader_box.color_location = glGetUniformLocation(data->shader_box.program, "vc"); + + // Create cross mesh + glUseProgram(data->shader_box.program); + glGenVertexArrays(1, &data->shader_box.cross_vao); + glBindVertexArray(data->shader_box.cross_vao); + GLuint vp = glGetAttribLocation(data->shader_box.program,"vp"); + glEnableVertexAttribArray(vp); + + float cross_data[18] = { + -0.04,0.,0., +0.04,0.,0., 0.,-0.04,0., 0.,+0.04,0., 0.,0.,-0.04, 0.,0.,+0.04, + }; + GLuint cross_buffer; + glGenBuffers(1, &cross_buffer); + glBindBuffer(GL_ARRAY_BUFFER, cross_buffer); + glBufferData(GL_ARRAY_BUFFER, sizeof(cross_data), cross_data, GL_STATIC_DRAW); + + glVertexAttribPointer(vp, 3, GL_FLOAT, GL_FALSE, 0, NULL); + glBindVertexArray(0); + + // Create box mesh + glGenVertexArrays(1, &data->shader_box.box_vao); + glBindVertexArray(data->shader_box.box_vao); + glEnableVertexAttribArray(vp); + + float box_data[] = { + -1,-1,-1, 1,-1,-1, 1,-1,-1, 1, 1,-1, 1, 1,-1, -1, 1,-1, -1, 1,-1, -1,-1,-1, + -1,-1, 1, 1,-1, 1, 1,-1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1,-1, 1, + -1,-1,-1, -1,-1, 1, -1, 1,-1, -1, 1, 1, 1, 1,-1, 1, 1, 1, 1,-1,-1, 1,-1, 1, + }; + GLuint box_buffer; + glGenBuffers(1, &box_buffer); + glBindBuffer(GL_ARRAY_BUFFER, box_buffer); + glBufferData(GL_ARRAY_BUFFER, sizeof(box_data), box_data, GL_STATIC_DRAW); + + glVertexAttribPointer(vp, 3, GL_FLOAT, GL_FALSE, 0, NULL); + glBindVertexArray(0); + + // Create ruler mesh + glGenVertexArrays(1, &data->shader_box.ruler_vao); + glBindVertexArray(data->shader_box.ruler_vao); + glEnableVertexAttribArray(vp); + + float ruler_data[18] = { + 0.0, -1.0, 0., + 0.0, 1.0, 0., + 1.0, 1.0, 0., + -1.0, 1.0, 0., + 1.0, -1.0, 0., + -1.0, -1.0, 0., + }; + GLuint ruler_buffer; + glGenBuffers(1, &ruler_buffer); + glBindBuffer(GL_ARRAY_BUFFER, ruler_buffer); + glBufferData(GL_ARRAY_BUFFER, sizeof(ruler_data), ruler_data, GL_STATIC_DRAW); + + glVertexAttribPointer(vp, 3, GL_FLOAT, GL_FALSE, 0, NULL); + glBindVertexArray(0); + + } + + { + // SPHERE shader + const char* vertex_shader = +#ifdef __EMSCRIPTEN__ + "#version 300 es\n" +#else + "#version 330\n" +#endif + "in vec3 vp;\n" + "in float sr;\n" + "in vec3 sp;\n" + "out vec3 normal;\n" + "uniform mat4 mvp;\n" + "void main() {\n" + " gl_Position = mvp*(vec4(sr*vp, 1.0)+vec4(sp,0.));\n" + " normal = vp;\n" + "}\n"; + const char* fragment_shader = +#ifdef __EMSCRIPTEN__ + "#version 300 es\n" +#else + "#version 330\n" +#endif + "precision highp float;" + "out vec4 outcolor;\n" + "in vec3 normal;\n" + "void main() {\n" + " vec3 lightdir = vec3(1.,1.,1.);\n" + " float intensity = 0.5+max(0.,0.5*dot(normalize(lightdir),normalize(normal)));\n" + " outcolor = vec4(intensity,intensity,intensity,1.);\n" + "}\n"; + + data->shader_sphere.program = loadShader(vertex_shader, fragment_shader); + data->shader_sphere.mvp_location = glGetUniformLocation(data->shader_sphere.program, "mvp"); + + // Sphere data + float* sphere_data = malloc(sizeof(float)*3*800); + int count = 0; // will be 800 by end + const int ni = 20; + const int nj = 20; + for(int i=0;ishader_sphere.program); + GLuint svp = glGetAttribLocation(data->shader_sphere.program,"vp"); + GLuint ssp = glGetAttribLocation(data->shader_sphere.program,"sp"); + GLuint ssr = glGetAttribLocation(data->shader_sphere.program,"sr"); + + + { // current + glGenVertexArrays(1, &data->shader_sphere.particle_vao_current); + glBindVertexArray(data->shader_sphere.particle_vao_current); + glBindBuffer(GL_ARRAY_BUFFER, sphere_vertex_buffer); + glEnableVertexAttribArray(svp); + + glVertexAttribPointer(svp, 3, GL_FLOAT, GL_FALSE, 0, NULL); + + glEnableVertexAttribArray(ssp); + glEnableVertexAttribArray(ssr); + glGenBuffers(1, &data->particle_buffer_current); + glBindBuffer(GL_ARRAY_BUFFER, data->particle_buffer_current); + glVertexAttribPointer(ssp, 3, GL_FLOAT, GL_FALSE, sizeof(float)*4, NULL); + glVertexAttribPointer(ssr, 1, GL_FLOAT, GL_FALSE, sizeof(float)*4, (void*)(sizeof(float)*3)); + + reb_glVertexAttribDivisor(svp, 0); + reb_glVertexAttribDivisor(data->shader_sphere.mvp_location, 0); + reb_glVertexAttribDivisor(ssp, 1); + reb_glVertexAttribDivisor(ssr, 1); + } + { // current + glGenVertexArrays(1, &data->shader_sphere.particle_vao); + glBindVertexArray(data->shader_sphere.particle_vao); + glBindBuffer(GL_ARRAY_BUFFER, sphere_vertex_buffer); + glEnableVertexAttribArray(svp); + + glVertexAttribPointer(svp, 3, GL_FLOAT, GL_FALSE, 0, NULL); + + glEnableVertexAttribArray(ssp); + glEnableVertexAttribArray(ssr); + // glGenBuffers(1, &data->particle_buffer); // generated earlier + glBindBuffer(GL_ARRAY_BUFFER, data->particle_buffer); + glVertexAttribPointer(ssp, 3, GL_FLOAT, GL_FALSE, sizeof(float)*4, NULL); + glVertexAttribPointer(ssr, 1, GL_FLOAT, GL_FALSE, sizeof(float)*4, (void*)(sizeof(float)*3)); + + reb_glVertexAttribDivisor(svp, 0); + reb_glVertexAttribDivisor(data->shader_sphere.mvp_location, 0); + reb_glVertexAttribDivisor(ssp, 1); + reb_glVertexAttribDivisor(ssr, 1); + } + + glBindVertexArray(0); + } + + { + // ORBIT shader + const char* vertex_shader = +#ifdef __EMSCRIPTEN__ + "#version 300 es\n" +#else + "#version 330\n" +#endif + "in vec3 focus;\n" + "in vec3 aef;\n" + "in vec3 omegaOmegainc;\n" + "uniform int current_index;\n" + "uniform int N_real;\n" + "uniform int vertex_count;\n" + "uniform int breadcrumb_N;\n" + "out float lin;\n" + "uniform mat4 mvp;\n" + "const float M_PI = 3.14159265359;\n" + "void main() {\n" + " float a = aef.x;\n" + " float e = aef.y;\n" + " lin = float(gl_VertexID)/float(vertex_count-1);\n" + " float f = aef.z+lin*M_PI*2.;\n" + " if (e>1.){\n" + " float theta_max = acos(-1./e);\n" + " f = 0.0001-theta_max+1.9998*lin*theta_max;\n" + " lin = sqrt(min(0.5,lin));\n" + " }\n" + " if (N_real != 0) {\n" + " lin = float( (gl_InstanceID/N_real - current_index + 2*breadcrumb_N -1)%breadcrumb_N )/float(breadcrumb_N);\n" + " }\n" + " float omega = omegaOmegainc.x;\n" + " float Omega = omegaOmegainc.y;\n" + " float inc = omegaOmegainc.z;\n" + " float r = a*(1.-e*e)/(1. + e*cos(f));\n" + " float cO = cos(Omega);\n" + " float sO = sin(Omega);\n" + " float co = cos(omega);\n" + " float so = sin(omega);\n" + " float cf = cos(f);\n" + " float sf = sin(f);\n" + " float ci = cos(inc);\n" + " float si = sin(inc);\n" + " vec3 pos = vec3(r*(cO*(co*cf-so*sf) - sO*(so*cf+co*sf)*ci),r*(sO*(co*cf-so*sf) + cO*(so*cf+co*sf)*ci),+ r*(so*cf+co*sf)*si);\n" + " gl_Position = mvp*(vec4(focus+pos, 1.0));\n" + " gl_Position.z = 0.;\n" // no clipping + "}\n"; + const char* fragment_shader = +#ifdef __EMSCRIPTEN__ + "#version 300 es\n" +#else + "#version 330\n" +#endif + "precision highp float;" + "out vec4 outcolor;\n" + "in float lin;\n" + "void main() {\n" + " outcolor = vec4(1.,1.,1.,sqrt(lin));\n" + "}\n"; + + data->shader_orbit.program = loadShader(vertex_shader, fragment_shader); + data->shader_orbit.mvp_location = glGetUniformLocation(data->shader_orbit.program, "mvp"); + data->shader_orbit.current_index_location = glGetUniformLocation(data->shader_orbit.program, "current_index"); + data->shader_orbit.vertex_count_location = glGetUniformLocation(data->shader_orbit.program, "vertex_count"); + data->shader_orbit.breadcrumb_N_location = glGetUniformLocation(data->shader_orbit.program, "breadcrumb_N"); + data->shader_orbit.N_real_location = glGetUniformLocation(data->shader_orbit.program, "N_real"); + data->shader_orbit.vertex_count = 500; // higher number = smoother orbits + + // Generate two orbit vao + glUseProgram(data->shader_orbit.program); + GLuint ofocusp = glGetAttribLocation(data->shader_orbit.program,"focus"); + GLuint oaefp = glGetAttribLocation(data->shader_orbit.program,"aef"); + GLuint oomegaOmegaincp = glGetAttribLocation(data->shader_orbit.program,"omegaOmegainc"); + + { // Current + glGenVertexArrays(1, &data->shader_orbit.particle_vao_current); + glBindVertexArray(data->shader_orbit.particle_vao_current); + glEnableVertexAttribArray(ofocusp); + glEnableVertexAttribArray(oaefp); + glEnableVertexAttribArray(oomegaOmegaincp); + + glGenBuffers(1, &data->orbit_buffer_current); + glBindBuffer(GL_ARRAY_BUFFER, data->orbit_buffer_current); + glVertexAttribPointer(ofocusp, 3, GL_FLOAT, GL_FALSE, sizeof(float)*9, NULL); + glVertexAttribPointer(oaefp, 3, GL_FLOAT, GL_FALSE, sizeof(float)*9, (void*)(sizeof(float)*3)); + glVertexAttribPointer(oomegaOmegaincp, 3, GL_FLOAT, GL_FALSE, sizeof(float)*9, (void*)(sizeof(float)*6)); + + reb_glVertexAttribDivisor(data->shader_orbit.mvp_location, 0); + reb_glVertexAttribDivisor(ofocusp, 1); + reb_glVertexAttribDivisor(oaefp, 1); + reb_glVertexAttribDivisor(oomegaOmegaincp, 1); + } + + { // Past + glGenVertexArrays(1, &data->shader_orbit.particle_vao); + glBindVertexArray(data->shader_orbit.particle_vao); + glEnableVertexAttribArray(ofocusp); + glEnableVertexAttribArray(oaefp); + glEnableVertexAttribArray(oomegaOmegaincp); + + glGenBuffers(1, &data->orbit_buffer); + glBindBuffer(GL_ARRAY_BUFFER, data->orbit_buffer); + glVertexAttribPointer(ofocusp, 3, GL_FLOAT, GL_FALSE, sizeof(float)*9, NULL); + glVertexAttribPointer(oaefp, 3, GL_FLOAT, GL_FALSE, sizeof(float)*9, (void*)(sizeof(float)*3)); + glVertexAttribPointer(oomegaOmegaincp, 3, GL_FLOAT, GL_FALSE, sizeof(float)*9, (void*)(sizeof(float)*6)); + + reb_glVertexAttribDivisor(data->shader_orbit.mvp_location, 0); + reb_glVertexAttribDivisor(ofocusp, 1); + reb_glVertexAttribDivisor(oaefp, 1); + reb_glVertexAttribDivisor(oomegaOmegaincp, 1); + } + + glBindVertexArray(0); + } + + { + // PLANE shader + const char* vertex_shader = +#ifdef __EMSCRIPTEN__ + "#version 300 es\n" +#else + "#version 330\n" +#endif + "in vec3 focus;\n" + "in vec3 aef;\n" + "in vec3 omegaOmegainc;\n" + "uniform int vertex_count;\n" + "uniform mat4 mvp;\n" + "out float fog;\n" + "const float M_PI = 3.14159265359;\n" + "void main() {\n" + " float a = aef.x;\n" + " float e = aef.y;\n" + " float lin = float(gl_VertexID/3)/float(vertex_count/3) + float(gl_VertexID%3)/float(vertex_count/3);\n" + " float f = 2.*M_PI*lin;\n" + " float theta_max = 0.0;\n" + " fog = 1.;\n" + " float r;\n" + " if (e>1.){\n" + " theta_max = acos(-1./e);\n" + " lin = 0.5/float(vertex_count/3+1) ;\n" + " f = 0.0001-theta_max+1.9998*lin*theta_max;\n" + " float rmax = -a*(1.-e*e)/(1. + e*cos(f));\n" + " if (gl_VertexID%3==0) { \n" + " r = rmax;\n" + " f = 0.0; \n" + " }else{\n" + " lin = float(gl_VertexID/3)/float(vertex_count/3+1) + float(gl_VertexID%3)/float(vertex_count/3+1) - 0.5/float(vertex_count/3+1) ;\n" + " f = 0.0001-theta_max+1.9998*lin*theta_max;\n" + " r = a*(1.-e*e)/(1. + e*cos(f));\n" + " }\n" + " fog = 1.-abs(r/rmax);\n" + " }else{ \n" + " if (gl_VertexID%3==0) { \n" + " r = 0.;\n" + " }else{\n" + " r = a*(1.-e*e)/(1. + e*cos(f));\n" + " }\n" + " }\n" + " float omega = omegaOmegainc.x;\n" + " float Omega = omegaOmegainc.y;\n" + " float inc = omegaOmegainc.z;\n" + " float cO = cos(Omega);\n" + " float sO = sin(Omega);\n" + " float co = cos(omega);\n" + " float so = sin(omega);\n" + " float cf = cos(f);\n" + " float sf = sin(f);\n" + " float ci = cos(inc);\n" + " float si = sin(inc);\n" + " vec3 pos = vec3(r*(cO*(co*cf-so*sf) - sO*(so*cf+co*sf)*ci),r*(sO*(co*cf-so*sf) + cO*(so*cf+co*sf)*ci),+ r*(so*cf+co*sf)*si);\n" + " gl_Position = mvp*(vec4(focus+pos, 1.0));\n" + " gl_Position.z = 0.;\n" // no clipping + "}\n"; + const char* fragment_shader = +#ifdef __EMSCRIPTEN__ + "#version 300 es\n" +#else + "#version 330\n" +#endif + "precision highp float;" + "out vec4 outcolor;\n" + "in float fog;\n" + "void main() {\n" + " outcolor = vec4(1.,1.,1.,fog*0.3);\n" + "}\n"; + + data->shader_plane.program = loadShader(vertex_shader, fragment_shader); + data->shader_plane.mvp_location = glGetUniformLocation(data->shader_plane.program, "mvp"); + data->shader_plane.vertex_count_location = glGetUniformLocation(data->shader_plane.program, "vertex_count"); + + // Orbit data + data->shader_plane.vertex_count = 3*200; // higher number = smoother orbits // must be multiple of 3 + + // Generate two orbit vao + glUseProgram(data->shader_plane.program); + GLuint ofocusp = glGetAttribLocation(data->shader_plane.program,"focus"); + GLuint oaefp = glGetAttribLocation(data->shader_plane.program,"aef"); + GLuint oomegaOmegaincp = glGetAttribLocation(data->shader_plane.program,"omegaOmegainc"); + + { // Current + glGenVertexArrays(1, &data->shader_plane.particle_vao_current); + glBindVertexArray(data->shader_plane.particle_vao_current); + glEnableVertexAttribArray(ofocusp); + glEnableVertexAttribArray(oaefp); + glEnableVertexAttribArray(oomegaOmegaincp); + + glBindBuffer(GL_ARRAY_BUFFER, data->orbit_buffer_current); + glVertexAttribPointer(ofocusp, 3, GL_FLOAT, GL_FALSE, sizeof(float)*9, NULL); + glVertexAttribPointer(oaefp, 3, GL_FLOAT, GL_FALSE, sizeof(float)*9, (void*)(sizeof(float)*3)); + glVertexAttribPointer(oomegaOmegaincp, 3, GL_FLOAT, GL_FALSE, sizeof(float)*9, (void*)(sizeof(float)*6)); + + reb_glVertexAttribDivisor(data->shader_plane.mvp_location, 0); + reb_glVertexAttribDivisor(ofocusp, 1); + reb_glVertexAttribDivisor(oaefp, 1); + reb_glVertexAttribDivisor(oomegaOmegaincp, 1); + } + + glBindVertexArray(0); + + } + + + // Main display loop +#ifdef __EMSCRIPTEN__ + // Will return + emscripten_request_animation_frame_loop(reb_render_frame_emscripten, r); +#else + glfwSwapInterval(1); + + while(!glfwWindowShouldClose(window) && r->status<0){ + double t0 = glfwGetTime(); + if (!data->s.pause){ + reb_render_frame(data); + } + if (data->take_one_screenshot){ + int cwidth, cheight; + glfwGetFramebufferSize(data->window, &cwidth, &cheight); + FILE *out = fopen("screenshot.tga", "w"); + char pixel_data[3*cwidth*cheight]; + short TGAhead[] = {0, 2, 0, 0, 0, 0, cwidth, cheight, 24}; + + glReadBuffer(GL_FRONT); + glReadPixels(0, 0, cwidth, cheight, GL_BGR, GL_UNSIGNED_BYTE, pixel_data); + fwrite(&TGAhead, sizeof(TGAhead), 1, out); + fwrite(pixel_data, 3*cwidth*cheight, 1, out); + fclose(out); + printf("\nScreenshot saved as 'screenshot.tga',\n"); + data->take_one_screenshot = 0; + } + while (glfwGetTime()-t0 < 1.0/120.) { // Maxframerate 120Hz + usleep(10); + glfwPollEvents(); + } + } + glfwDestroyWindow(window); + data->window = NULL; + // Destroy particle buffers + if (data->N_allocated){ + data->N_allocated = 0; + data->breadcrumb_N_allocated = 0; + free(data->particle_data); + free(data->orbit_data); + data->particle_data = NULL; + data->orbit_data = NULL; + } + glfwTerminate(); +#endif +} + +#endif // OPENGL + + diff --git a/rebound/source/src/display.h b/rebound/source/src/display.h new file mode 100644 index 0000000000000000000000000000000000000000..07d2083b9d269b8d4478caff933d46007989ca59 --- /dev/null +++ b/rebound/source/src/display.h @@ -0,0 +1,52 @@ +/** + * @file display.h + * @brief Realtime OpenGL visualization. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2016 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _DISPLAY_H +#define _DISPLAY_H + +#ifdef OPENGL +#ifdef __EMSCRIPTEN__ +#include +#define GL_GLEXT_PROTOTYPES +#define EGL_EGLEXT_PROTOTYPES +#include +#include +#else // __EMSCRIPTEN__ +#define GLFW_INCLUDE_NONE +#include "glad.h" +#endif // __EMSCRIPTEN__ +#include + +struct reb_simulation; + +void reb_display_init(struct reb_simulation* const r); + +void reb_display_init_data(struct reb_simulation* const r); + +#ifdef __EMSCRIPTEN__ +void reb_display_keyboard(GLFWwindow* window, int key, int scancode, int action, int mods); +#endif // __EMSCRIPTEN__ + +#endif // OPENGL +#endif diff --git a/rebound/source/src/fmemopen.c b/rebound/source/src/fmemopen.c new file mode 100644 index 0000000000000000000000000000000000000000..bf85ad91027aedea4f7ce582335bf8c1f4fc071e --- /dev/null +++ b/rebound/source/src/fmemopen.c @@ -0,0 +1,158 @@ +/** + * @file fmemopen.c + * @brief Implementation of fmemopen for old MacOSX and Windows. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2023 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + * Most of the code below is taken from glibc. + * See https://github.com/lattera/glibc/blob/master/libio/fmemopen.c + */ + +#include +#include +#include +#include +#include "fmemopen.h" + +#ifdef __MACH__ + +// This code here is a workaround for old MacOS versions which do +// not come with fmemopen. (Note that as a result of fmemopen +// missing, conda-forge builds fail). +// The following code has been slightly modified from +// https://raw.githubusercontent.com/Cibiv/PDA/master/fmemopen.c + +struct fmem { + size_t pos; + size_t size; + char *buffer; +}; + +static int readfn(void *handler, char *buf, int size) { + struct fmem *mem = handler; + size_t available = mem->size - mem->pos; + + if (size > available) { + size = (int)available; + } + memcpy(buf, mem->buffer + mem->pos, sizeof(char) * size); + mem->pos += size; + + return size; +} + +static int writefn(void *handler, const char *buf, int size) { + struct fmem *mem = handler; + size_t available = mem->size - mem->pos; + + if (size > available) { + size = (int)available; + } + memcpy(mem->buffer + mem->pos, buf, sizeof(char) * size); + mem->pos += size; + + return size; +} + +static fpos_t seekfn(void *handler, fpos_t offset, int whence) { + size_t pos; + struct fmem *mem = handler; + + switch (whence) { + case SEEK_SET: pos = offset; break; + case SEEK_CUR: pos = mem->pos + offset; break; + case SEEK_END: pos = mem->size + offset; break; + default: return -1; + } + + if (pos > mem->size) { + return -1; + } + + mem->pos = pos; + return (fpos_t)pos; +} + +static int closefn(void *handler) { + free(handler); + return 0; +} + +FILE *reb_fmemopen(void *buf, size_t size, const char *mode) { + // This data is released on fclose. + struct fmem* mem = (struct fmem *) malloc(sizeof(struct fmem)); + + // Zero-out the structure. + memset(mem, 0, sizeof(struct fmem)); + + mem->size = size; + mem->buffer = buf; + + // funopen's man page: https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man3/funopen.3.html + return funopen(mem, readfn, writefn, seekfn, closefn); +} + +#elif defined _WIN32 + +// Fmemopen does not exist on Windows. +// This workaround is using temporary files. +// This works but it is SLOW! + +#define WIN32_LEAN_AND_MEAN +#include +#include +#include +#include +// Source: https://github.com/Arryboom/fmemopen_windows +FILE *reb_fmemopen(void *buf, size_t len, const char *type) { + int fd; + FILE *fp; + char tp[MAX_PATH - 13]; + char fn[MAX_PATH + 1]; + int * pfd = &fd; + int retner = -1; + char tfname[] = "MemTF_"; + if (!GetTempPathA(sizeof(tp), tp)) + return NULL; + if (!GetTempFileNameA(tp, tfname, 0, fn)) + return NULL; + retner = _sopen_s(pfd, fn, _O_CREAT | _O_SHORT_LIVED | _O_TEMPORARY | _O_RDWR | _O_BINARY | _O_NOINHERIT, _SH_DENYRW, _S_IREAD | _S_IWRITE); + if (retner != 0) + return NULL; + if (fd == -1) + return NULL; + fp = _fdopen(fd, "wb+"); + if (!fp) { + _close(fd); + return NULL; + } + /*File descriptors passed into _fdopen are owned by the returned FILE * stream.If _fdopen is successful, do not call _close on the file descriptor.Calling fclose on the returned FILE * also closes the file descriptor.*/ + fwrite(buf, len, 1, fp); + rewind(fp); + return fp; +} + +#else +// Just an alias for everyone else +FILE *reb_fmemopen(void *buf, size_t len, const char *type){ + return fmemopen(buf, len, type); +} + +#endif diff --git a/rebound/source/src/fmemopen.h b/rebound/source/src/fmemopen.h new file mode 100644 index 0000000000000000000000000000000000000000..cf699234d9a4dcd754dc8f6e654b29fd3324d61a --- /dev/null +++ b/rebound/source/src/fmemopen.h @@ -0,0 +1,30 @@ +/** + * @file fmemopen.h + * @brief Tools for creating distributions. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2013 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef FMEMOPEN_H +#define FMEMOPEN_H + +FILE *reb_fmemopen( void *buf, size_t len, const char *type); // Used as a workaround for old MacOS and Windows. + +#endif // FMEMOPEN_H diff --git a/rebound/source/src/frequency_analysis.c b/rebound/source/src/frequency_analysis.c new file mode 100644 index 0000000000000000000000000000000000000000..d49ad988bc2a4dbe8a4c2bcc529f0319501f44bc --- /dev/null +++ b/rebound/source/src/frequency_analysis.c @@ -0,0 +1,631 @@ +/** + * @file freuquency_analysis.c + * @brief Functions to perform a frequency analysis of time series data. + * @author Hanno Rein + * @details This file implements the Modified Fourier Transform of Laskar (1988) + * and the Frequency Modified Fourier Transform of Sidlichovsky and + * Nesvorny (1996). See: + * https://ui.adsabs.harvard.edu/abs/1988A%26A...198..341L/abstract + * https://ui.adsabs.harvard.edu/abs/1990Icar...88..266L/abstract + * https://ui.adsabs.harvard.edu/abs/1996CeMDA..65..137S/abstract + * Given a quasi-periodic complex signal X + iY, the algorithm + * estimates the frequencies (f_j), amplitudes (A_j) and phases + * (psi_j) in its decomposition: + * X(t) + iY(t) = Sum_j=1^N [ A_j * exp i (f_j * t + psi_j) ] + * This code is based on David Nesvorny's code which can be found + * at https://www2.boulder.swri.edu/~davidn/fmft/fmft.html + * + * @section LICENSE + * Copyright (c) 2025 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + + +#define FMFT_TOL 1.0e-10 /* MFT NOMINAL PRECISION */ +#define FMFT_NEAR 0. /* MFT OVERLAP EXCLUSION PARAMETER */ +#define FMFT_MAX_REMOVE 64/* MFT MAXIMUM NUMBER OF FREQUENCY TO REMOVE FROM SIGNAL BEFORE GIVING UP */ + +#include "rebound.h" +#include +#include + +#define TWOPI (2.*M_PI) + +static void window(double *x, double *y, double *xdata, double *ydata, long ndata); +static void power(double *powsd, double *x, double *y, long ndata); +static void four1(double* data, unsigned long n); +static double bracket(double *powsd, long ndata); +static double golden(double centerf, double width, double *x, double *y, long ndata); +static void phifun(double *xphi, double *yphi, double freq, double* xdata, double* ydata, long n); +static double phisqr(double freq, double* xdata, double* ydata, long ndata); +static void amph(double *amp, double *phase, double freq, double* xdata, double* ydata, long ndata); +static void sort3(unsigned long n, double* ra, double* rb, double* rc, double* rd); + + +int reb_frequency_analysis(double *output, int nfreq, double minfreq, double maxfreq, enum REB_FREQUENCY_ANALYSIS_TYPE type, double *input, unsigned long ndata){ + // The output array needs to have space for 3*nfreq values. They are + // freq_0, amp_0, phase_0, freq_1, amp_1, phase_1, ... + // The input array needs to be ndata*2 long with values + // x(0), y(0), x(1), y(1), ... + // where x(t) and y(t) are the complext time series to be analyzed. + // The function returns 0 on success and returns a negative value for various errors. + + if (minfreq>=maxfreq){ + printf("Frequency analysis error: minfreq must be smaller than maxfreq.\n"); + return -1; + } + if (nfreq<=0){ + printf("Frequency analysis error: nfreq must be larger than 0.\n"); + return -2; + } + if ((ndata & (ndata - 1)) != 0){ + printf("Frequency analysis error: ndata must be power of 2.\n"); + return -3; + } + if (!input){ + printf("Frequency analysis error: input array is NULL.\n"); + return -4; + } + if (!output){ + printf("Frequency analysis error: pointer to output array is NULL.\n"); + return -5; + } + + + /* ALLOCATION OF VARIABLES */ + + double* xdata = malloc(sizeof(double)*ndata); + double* ydata = malloc(sizeof(double)*ndata); + double* x = malloc(sizeof(double)*ndata); + double* y = malloc(sizeof(double)*ndata); + double* powsd = malloc(sizeof(double)*ndata); + + double* freq = malloc(sizeof(double)*3*(type+1)*nfreq); + double* amp = malloc(sizeof(double)*3*(type+1)*nfreq); + double* phase = malloc(sizeof(double)*3*(type+1)*nfreq); + + double* f = malloc(sizeof(double)*nfreq); + double* A = malloc(sizeof(double)*nfreq); + double* psi = malloc(sizeof(double)*nfreq); + + + double* Q = malloc(sizeof(double)*nfreq*nfreq); + double* alpha = malloc(sizeof(double)*nfreq*nfreq); + double* B = malloc(sizeof(double)*nfreq); + + + /* 1 LOOP FOR MFT, 2 LOOPS FOR FMFT, 3 LOOPS FOR NON-LINEAR FMFT */ + + for(int l=0; l<=type; l++){ + if(l==0){ + /* SEPARATE REAL AND IMAGINERY PARTS */ + for(int j=0;j maxfreq) { + /* IF NO, SUBSTRACT IT FROM THE SIGNAL */ + f[0] = golden(centerf, TWOPI/ndata, x, y, ndata); + + amph(&A[0], &psi[0], f[0], x, y, ndata); + + for(int j=0;jFMFT_MAX_REMOVE){ + printf("Frequency analysis error: cannot find frequencies in range [minfreq, maxfreq].\n"); + return -6; + } + } + }else{ + centerf = freq[0]; + } + + /* DETERMINE THE FIRST FREQUENCY */ + f[0] = golden(centerf, TWOPI/ndata, x, y, ndata); + + /* COMPUTE AMPLITUDE AND PHASE */ + amph(&A[0], &psi[0], f[0], x, y, ndata); + + /* SUBSTRACT THE FIRST HARMONIC FROM THE SIGNAL */ + for(int j=0;j maxfreq || nearfreqflag == 1){ + /* IF NO, SUBSTRACT IT FROM THE SIGNAL */ + f[m] = golden(centerf, TWOPI/ndata, x, y, ndata); + + amph(&A[m], &psi[m], f[m], x, y, ndata); + + for(int j=0;jFMFT_MAX_REMOVE){ + printf("Frequency analysis error: cannot find frequencies in range [minfreq, maxfreq].\n"); + return -6; + } + } + + } else { + /* DETERMINE THE NEXT FREQUENCY */ + f[m] = golden(freq[m], TWOPI/ndata, x, y, ndata); + } + + /* COMPUTE ITS AMPLITUDE AND PHASE */ + amph(&A[m], &psi[m], f[m], x, y, ndata); + + + /* EQUATION (3) in Sidlichovsky and Nesvorny (1997) */ + Q[m*nfreq+m] = 1; + for(int j=0;j FMFT_TOL){ + double tmp = freq[0*nfreq+k] - freq[1*nfreq+k]; + output[0*nfreq+k] += tmp*tmp / fac; + }else{ + output[0*nfreq+k] += freq[0*nfreq+k] - freq[1*nfreq+k]; + } + output[1*nfreq+k] = amp[0*nfreq+k]; + if(fabs((fac = amp[1*nfreq+k] - amp[2*nfreq+k])/amp[1*nfreq+k]) > FMFT_TOL){ + double tmp = amp[0*nfreq+k] - amp[1*nfreq+k]; + output[1*nfreq+k] += tmp*tmp / fac; + }else{ + output[1*nfreq+k] += amp[0*nfreq+k] - amp[1*nfreq+k]; + } + output[2*nfreq+k] = phase[0*nfreq+k]; + if(fabs((fac = phase[1*nfreq+k] - phase[2*nfreq+k])/phase[1*nfreq+k]) > FMFT_TOL){ + double tmp = phase[0*nfreq+k] - phase[1*nfreq+k]; + output[2*nfreq+k] += tmp*tmp / fac; + }else{ + output[2*nfreq+k] += phase[0*nfreq+k] - phase[1*nfreq+k]; + } + } + break; + default: + printf("REB_FREQUENCY_ANALYSIS_TYPE not implemented.\n"); + } + for(int k=0;k= 2.0*M_PI) output[2*nfreq+k] -= TWOPI; + } + + // SORT THE FREQUENCIES IN DECREASING ORDER OF AMPLITUDE + sort3(nfreq, &(output[1*nfreq]), &(output[0*nfreq]), &(output[1*nfreq]), &(output[2*nfreq])); + + /* FREE THE ALLOCATED VARIABLES */ + free(xdata); + free(ydata); + free(x); + free(y); + free(powsd); + + free(freq); + free(amp); + free(phase); + + free(f); + free(A); + free(psi); + + free(Q); + free(alpha); + free(B); + return 0; +} + +static void window(double *x, double *y, double *xdata, double *ydata, long ndata) { + // Hanning window + for(int j=0;ji){ + double t = data[j]; + data[j] = data[i]; + data[i] = t; + t = data[j+1]; + data[j+1] = data[i+1]; + data[i+1] = t; + } + unsigned long m=n>>1; + while(m>=2 && j+1>m){ + j-=m; + m>>=1; + } + j+=m; + } + /* Danielson-Lanczos section */ + unsigned long mmax=2; + while(n>mmax){ /* outer ln nn loop */ + unsigned long istep=mmax<<1; + double theta=TWOPI/mmax; /* initialize */ + double wtemp=sin(0.5*theta); + double wpr=-2.0*wtemp*wtemp; + double wpi=sin(theta); + double wr=1.0; + double wi=0.0; + for(unsigned long m=0;m powsd[j-1] && powsd[j] > powsd[j+1] && powsd[j] > maxpow){ + maxj = j; + maxpow = powsd[j]; + } + } + + for(int j=ndata/2+1;j powsd[j-1] && powsd[j] > powsd[j+1] && powsd[j] > maxpow){ + maxj = j; + maxpow = powsd[j]; + } + } + + if(powsd[0] > powsd[1] && powsd[0] > powsd[ndata-1] && powsd[0] > maxpow){ + maxj = 0; + maxpow = powsd[0]; + } + + if(maxpow == 0) printf("DFT has no maximum ..."); + + if(maxj < ndata/2-1){ + return -TWOPI*maxj / ndata; + }else{ // maxj > ndata/2-1 + return -TWOPI*(maxj-ndata) / ndata; + } + /* negative signs and TWOPI compensate for the Numerical Recipes + definition of the DFT */ +} + + +static double golden(double bx, double width, double* xdata, double* ydata, long n){ + /* calculates the maximum of a function bracketed by ax, bx and cx */ + const double gold_r = 0.6180339887498948482; + const double gold_c = (1.0 - gold_r); + + double ax = bx-width; + double cx = bx+width; + double x0=ax; + double x3=cx; + + double x1,x2; + if(fabs(cx-bx) > fabs(bx-ax)){ + x1 = bx; + x2 = bx + gold_c*(cx-bx); + } else { + x2 = bx; + x1 = bx - gold_c*(bx-ax); + } + + double f1 = phisqr(x1, xdata, ydata, n); + double f2 = phisqr(x2, xdata, ydata, n); + + while(fabs(x3-x0) > FMFT_TOL*(fabs(x1)+fabs(x2))){ + if(f2 > f1){ + x0 = x1; + x1 = x2; + x2 = gold_r*x1+gold_c*x3; + f1 = f2; + f2 = phisqr(x2, xdata, ydata, n); + } else { + x3 = x2; + x2 = x1; + x1 = gold_r*x2+gold_c*x0; + f2 = f1; + f1 = phisqr(x1, xdata, ydata, n); + } + } + + if(f1>f2){ + return x1; + }else{ + return x2; + } +} + +static void amph(double *amp, double *phase, double freq, double* xdata, double* ydata, long ndata){ + /* CALCULATES THE AMPLITUDE AND PHASE */ + double xphi = 0; + double yphi = 0; + + phifun(&xphi, &yphi, freq, xdata, ydata, ndata); + + *amp = sqrt(xphi*xphi + yphi*yphi); + *phase = atan2(yphi, xphi); +} + +static double phisqr(double freq, double* xdata, double* ydata, long ndata){ + /* COMPUTES A SQUARE POWER OF THE FUNCTION PHI */ + double xphi = 0; + double yphi = 0; + + phifun(&xphi, &yphi, freq, xdata, ydata, ndata); + + return xphi*xphi + yphi*yphi; +} + +static void phifun(double *xphi, double *yphi, double freq, double* xdata, double* ydata, long n){ + /* COMPUTES THE FUNCTION PHI */ + double* xdata2 = malloc(sizeof(double)* n); + double* ydata2 = malloc(sizeof(double)* n); + + xdata2[0] = xdata[0] / 2; ydata2[0] = ydata[0] / 2; + xdata2[n-1] = xdata[n-1] / 2; ydata2[n-1] = ydata[n-1] / 2; + + for(int i=1;ia; + double ba = ((struct cmp2*)b)->a; + if (aa>ba) return 1; + if (aa + * + * @section LICENSE + * Copyright (c) 2026 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _FMFT_H +#define _FMFT_H +#endif // _FMFT_H diff --git a/rebound/source/src/glad.c b/rebound/source/src/glad.c new file mode 100644 index 0000000000000000000000000000000000000000..9d9125312546ad508fc7f7e79db099b23b01ae84 --- /dev/null +++ b/rebound/source/src/glad.c @@ -0,0 +1,1713 @@ +/* + + OpenGL loader generated by glad 0.1.12a0 on Tue Nov 29 20:33:23 2016. + + Language/Generator: C/C++ +Specification: gl +APIs: gl=3.3 +Profile: compatibility +Extensions: +GL_ARB_framebuffer_sRGB, +GL_ARB_multisample, +GL_EXT_framebuffer_sRGB +Loader: False +Local files: False +Omit khrplatform: False + +Commandline: +--profile="compatibility" --api="gl=3.3" --generator="c" --spec="gl" --no-loader --extensions="GL_ARB_framebuffer_sRGB,GL_ARB_multisample,GL_EXT_framebuffer_sRGB" +Online: +http://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&api=gl%3D3.3&extensions=GL_ARB_framebuffer_sRGB&extensions=GL_ARB_multisample&extensions=GL_EXT_framebuffer_sRGB + */ + +#ifdef OPENGL +#ifndef __EMSCRIPTEN__ +#include +#include +#include +#include "glad.h" + +struct gladGLversionStruct GLVersion; + +#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0) +#define _GLAD_IS_SOME_NEW_VERSION 1 +#endif + +static int max_loaded_major; +static int max_loaded_minor; + +static const char *exts = NULL; +static int num_exts_i = 0; +static const char **exts_i = NULL; + +static int get_exts(void) { +#ifdef _GLAD_IS_SOME_NEW_VERSION + if(max_loaded_major < 3) { +#endif + exts = (const char *)glGetString(GL_EXTENSIONS); +#ifdef _GLAD_IS_SOME_NEW_VERSION + } else { + int index; + + num_exts_i = 0; + glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i); + if (num_exts_i > 0) { + exts_i = (const char **)realloc((void *)exts_i, num_exts_i * sizeof *exts_i); + } + + if (exts_i == NULL) { + return 0; + } + + for(index = 0; index < num_exts_i; index++) { + exts_i[index] = (const char*)glGetStringi(GL_EXTENSIONS, index); + } + } +#endif + return 1; +} + +static void free_exts(void) { + if (exts_i != NULL) { + free((char **)exts_i); + exts_i = NULL; + } +} + +static int has_ext(const char *ext) { +#ifdef _GLAD_IS_SOME_NEW_VERSION + if(max_loaded_major < 3) { +#endif + const char *extensions; + const char *loc; + const char *terminator; + extensions = exts; + if(extensions == NULL || ext == NULL) { + return 0; + } + + while(1) { + loc = strstr(extensions, ext); + if(loc == NULL) { + return 0; + } + + terminator = loc + strlen(ext); + if((loc == extensions || *(loc - 1) == ' ') && + (*terminator == ' ' || *terminator == '\0')) { + return 1; + } + extensions = terminator; + } +#ifdef _GLAD_IS_SOME_NEW_VERSION + } else { + int index; + + for(index = 0; index < num_exts_i; index++) { + const char *e = exts_i[index]; + + if(strcmp(e, ext) == 0) { + return 1; + } + } + } +#endif + + return 0; +} +int GLAD_GL_VERSION_1_0; +int GLAD_GL_VERSION_1_1; +int GLAD_GL_VERSION_1_2; +int GLAD_GL_VERSION_1_3; +int GLAD_GL_VERSION_1_4; +int GLAD_GL_VERSION_1_5; +int GLAD_GL_VERSION_2_0; +int GLAD_GL_VERSION_2_1; +int GLAD_GL_VERSION_3_0; +int GLAD_GL_VERSION_3_1; +int GLAD_GL_VERSION_3_2; +int GLAD_GL_VERSION_3_3; +PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D; +PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui; +PFNGLWINDOWPOS2SPROC glad_glWindowPos2s; +PFNGLWINDOWPOS2IPROC glad_glWindowPos2i; +PFNGLWINDOWPOS2FPROC glad_glWindowPos2f; +PFNGLWINDOWPOS2DPROC glad_glWindowPos2d; +PFNGLVERTEX2FVPROC glad_glVertex2fv; +PFNGLINDEXIPROC glad_glIndexi; +PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer; +PFNGLRECTDVPROC glad_glRectdv; +PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D; +PFNGLEVALCOORD2DPROC glad_glEvalCoord2d; +PFNGLEVALCOORD2FPROC glad_glEvalCoord2f; +PFNGLINDEXDPROC glad_glIndexd; +PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv; +PFNGLINDEXFPROC glad_glIndexf; +PFNGLBINDSAMPLERPROC glad_glBindSampler; +PFNGLLINEWIDTHPROC glad_glLineWidth; +PFNGLCOLORP3UIVPROC glad_glColorP3uiv; +PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v; +PFNGLGETMAPFVPROC glad_glGetMapfv; +PFNGLINDEXSPROC glad_glIndexs; +PFNGLCOMPILESHADERPROC glad_glCompileShader; +PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying; +PFNGLWINDOWPOS2IVPROC glad_glWindowPos2iv; +PFNGLINDEXFVPROC glad_glIndexfv; +PFNGLFOGIVPROC glad_glFogiv; +PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate; +PFNGLRASTERPOS2FVPROC glad_glRasterPos2fv; +PFNGLLIGHTMODELIVPROC glad_glLightModeliv; +PFNGLCOLOR4UIPROC glad_glColor4ui; +PFNGLSECONDARYCOLOR3FVPROC glad_glSecondaryColor3fv; +PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui; +PFNGLFOGFVPROC glad_glFogfv; +PFNGLVERTEXP4UIPROC glad_glVertexP4ui; +PFNGLENABLEIPROC glad_glEnablei; +PFNGLVERTEX4IVPROC glad_glVertex4iv; +PFNGLEVALCOORD1FVPROC glad_glEvalCoord1fv; +PFNGLWINDOWPOS2SVPROC glad_glWindowPos2sv; +PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui; +PFNGLCREATESHADERPROC glad_glCreateShader; +PFNGLISBUFFERPROC glad_glIsBuffer; +PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv; +PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers; +PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D; +PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D; +PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f; +PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate; +PFNGLVERTEX4FVPROC glad_glVertex4fv; +PFNGLBINDTEXTUREPROC glad_glBindTexture; +PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s; +PFNGLTEXCOORD2FVPROC glad_glTexCoord2fv; +PFNGLSAMPLEMASKIPROC glad_glSampleMaski; +PFNGLVERTEXP2UIPROC glad_glVertexP2ui; +PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex; +PFNGLTEXCOORD4FVPROC glad_glTexCoord4fv; +PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv; +PFNGLPOINTSIZEPROC glad_glPointSize; +PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv; +PFNGLDELETEPROGRAMPROC glad_glDeleteProgram; +PFNGLCOLOR4BVPROC glad_glColor4bv; +PFNGLRASTERPOS2FPROC glad_glRasterPos2f; +PFNGLRASTERPOS2DPROC glad_glRasterPos2d; +PFNGLLOADIDENTITYPROC glad_glLoadIdentity; +PFNGLRASTERPOS2IPROC glad_glRasterPos2i; +PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage; +PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv; +PFNGLCOLOR3BPROC glad_glColor3b; +PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv; +PFNGLEDGEFLAGPROC glad_glEdgeFlag; +PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers; +PFNGLVERTEX3DPROC glad_glVertex3d; +PFNGLVERTEX3FPROC glad_glVertex3f; +PFNGLVERTEX3IPROC glad_glVertex3i; +PFNGLCOLOR3IPROC glad_glColor3i; +PFNGLUNIFORM3FPROC glad_glUniform3f; +PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv; +PFNGLCOLOR3SPROC glad_glColor3s; +PFNGLVERTEX3SPROC glad_glVertex3s; +PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui; +PFNGLCOLORMASKIPROC glad_glColorMaski; +PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi; +PFNGLTEXCOORD1IVPROC glad_glTexCoord1iv; +PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer; +PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui; +PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv; +PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex; +PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f; +PFNGLVERTEX2IVPROC glad_glVertex2iv; +PFNGLCOLOR3SVPROC glad_glColor3sv; +PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv; +PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv; +PFNGLNORMALPOINTERPROC glad_glNormalPointer; +PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv; +PFNGLVERTEX4SVPROC glad_glVertex4sv; +PFNGLPASSTHROUGHPROC glad_glPassThrough; +PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui; +PFNGLFOGIPROC glad_glFogi; +PFNGLBEGINPROC glad_glBegin; +PFNGLEVALCOORD2DVPROC glad_glEvalCoord2dv; +PFNGLCOLOR3UBVPROC glad_glColor3ubv; +PFNGLVERTEXPOINTERPROC glad_glVertexPointer; +PFNGLSECONDARYCOLOR3UIVPROC glad_glSecondaryColor3uiv; +PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers; +PFNGLDRAWARRAYSPROC glad_glDrawArrays; +PFNGLUNIFORM1UIPROC glad_glUniform1ui; +PFNGLMULTITEXCOORD1DPROC glad_glMultiTexCoord1d; +PFNGLMULTITEXCOORD1FPROC glad_glMultiTexCoord1f; +PFNGLLIGHTFVPROC glad_glLightfv; +PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui; +PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d; +PFNGLCLEARPROC glad_glClear; +PFNGLMULTITEXCOORD1IPROC glad_glMultiTexCoord1i; +PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName; +PFNGLMULTITEXCOORD1SPROC glad_glMultiTexCoord1s; +PFNGLISENABLEDPROC glad_glIsEnabled; +PFNGLSTENCILOPPROC glad_glStencilOp; +PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv; +PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D; +PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv; +PFNGLTRANSLATEFPROC glad_glTranslatef; +PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub; +PFNGLTRANSLATEDPROC glad_glTranslated; +PFNGLTEXCOORD3SVPROC glad_glTexCoord3sv; +PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation; +PFNGLTEXIMAGE1DPROC glad_glTexImage1D; +PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv; +PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv; +PFNGLSECONDARYCOLOR3BVPROC glad_glSecondaryColor3bv; +PFNGLGETMATERIALFVPROC glad_glGetMaterialfv; +PFNGLGETTEXIMAGEPROC glad_glGetTexImage; +PFNGLFOGCOORDFVPROC glad_glFogCoordfv; +PFNGLPIXELMAPUIVPROC glad_glPixelMapuiv; +PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog; +PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v; +PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers; +PFNGLINDEXSVPROC glad_glIndexsv; +PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders; +PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer; +PFNGLVERTEX3IVPROC glad_glVertex3iv; +PFNGLBITMAPPROC glad_glBitmap; +PFNGLMATERIALIPROC glad_glMateriali; +PFNGLISVERTEXARRAYPROC glad_glIsVertexArray; +PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray; +PFNGLGETQUERYIVPROC glad_glGetQueryiv; +PFNGLTEXCOORD4FPROC glad_glTexCoord4f; +PFNGLTEXCOORD4DPROC glad_glTexCoord4d; +PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv; +PFNGLTEXCOORD4IPROC glad_glTexCoord4i; +PFNGLMATERIALFPROC glad_glMaterialf; +PFNGLTEXCOORD4SPROC glad_glTexCoord4s; +PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices; +PFNGLISSHADERPROC glad_glIsShader; +PFNGLMULTITEXCOORD2SPROC glad_glMultiTexCoord2s; +PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv; +PFNGLVERTEX3DVPROC glad_glVertex3dv; +PFNGLGETINTEGER64VPROC glad_glGetInteger64v; +PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv; +PFNGLENABLEPROC glad_glEnable; +PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv; +PFNGLCOLOR4FVPROC glad_glColor4fv; +PFNGLTEXCOORD1FVPROC glad_glTexCoord1fv; +PFNGLTEXCOORD2SVPROC glad_glTexCoord2sv; +PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv; +PFNGLMULTITEXCOORD1DVPROC glad_glMultiTexCoord1dv; +PFNGLMULTITEXCOORD2IPROC glad_glMultiTexCoord2i; +PFNGLTEXCOORD3FVPROC glad_glTexCoord3fv; +PFNGLSECONDARYCOLOR3USVPROC glad_glSecondaryColor3usv; +PFNGLTEXGENFPROC glad_glTexGenf; +PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv; +PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui; +PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui; +PFNGLGETPOINTERVPROC glad_glGetPointerv; +PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset; +PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv; +PFNGLNORMAL3FVPROC glad_glNormal3fv; +PFNGLSECONDARYCOLOR3SPROC glad_glSecondaryColor3s; +PFNGLDEPTHRANGEPROC glad_glDepthRange; +PFNGLFRUSTUMPROC glad_glFrustum; +PFNGLMULTITEXCOORD4SVPROC glad_glMultiTexCoord4sv; +PFNGLDRAWBUFFERPROC glad_glDrawBuffer; +PFNGLPUSHMATRIXPROC glad_glPushMatrix; +PFNGLRASTERPOS3FVPROC glad_glRasterPos3fv; +PFNGLORTHOPROC glad_glOrtho; +PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced; +PFNGLWINDOWPOS3SVPROC glad_glWindowPos3sv; +PFNGLCLEARINDEXPROC glad_glClearIndex; +PFNGLMAP1DPROC glad_glMap1d; +PFNGLMAP1FPROC glad_glMap1f; +PFNGLFLUSHPROC glad_glFlush; +PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv; +PFNGLINDEXIVPROC glad_glIndexiv; +PFNGLRASTERPOS3SVPROC glad_glRasterPos3sv; +PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv; +PFNGLPIXELZOOMPROC glad_glPixelZoom; +PFNGLFENCESYNCPROC glad_glFenceSync; +PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays; +PFNGLCOLORP3UIPROC glad_glColorP3ui; +PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv; +PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender; +PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex; +PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv; +PFNGLLIGHTIPROC glad_glLighti; +PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv; +PFNGLLIGHTFPROC glad_glLightf; +PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation; +PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate; +PFNGLGENSAMPLERSPROC glad_glGenSamplers; +PFNGLCLAMPCOLORPROC glad_glClampColor; +PFNGLUNIFORM4IVPROC glad_glUniform4iv; +PFNGLCLEARSTENCILPROC glad_glClearStencil; +PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv; +PFNGLMULTITEXCOORD3FVPROC glad_glMultiTexCoord3fv; +PFNGLGETPIXELMAPUIVPROC glad_glGetPixelMapuiv; +PFNGLGENTEXTURESPROC glad_glGenTextures; +PFNGLTEXCOORD4IVPROC glad_glTexCoord4iv; +PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv; +PFNGLINDEXPOINTERPROC glad_glIndexPointer; +PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv; +PFNGLISSYNCPROC glad_glIsSync; +PFNGLVERTEX2FPROC glad_glVertex2f; +PFNGLVERTEX2DPROC glad_glVertex2d; +PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers; +PFNGLUNIFORM2IPROC glad_glUniform2i; +PFNGLMAPGRID2DPROC glad_glMapGrid2d; +PFNGLMAPGRID2FPROC glad_glMapGrid2f; +PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui; +PFNGLVERTEX2IPROC glad_glVertex2i; +PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer; +PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer; +PFNGLVERTEX2SPROC glad_glVertex2s; +PFNGLNORMAL3BVPROC glad_glNormal3bv; +PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv; +PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange; +PFNGLSECONDARYCOLOR3SVPROC glad_glSecondaryColor3sv; +PFNGLVERTEX3SVPROC glad_glVertex3sv; +PFNGLGENQUERIESPROC glad_glGenQueries; +PFNGLGETPIXELMAPFVPROC glad_glGetPixelMapfv; +PFNGLTEXENVFPROC glad_glTexEnvf; +PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui; +PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D; +PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v; +PFNGLFOGCOORDDPROC glad_glFogCoordd; +PFNGLFOGCOORDFPROC glad_glFogCoordf; +PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D; +PFNGLTEXENVIPROC glad_glTexEnvi; +PFNGLMULTITEXCOORD1IVPROC glad_glMultiTexCoord1iv; +PFNGLISENABLEDIPROC glad_glIsEnabledi; +PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui; +PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i; +PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed; +PFNGLMULTITEXCOORD2DVPROC glad_glMultiTexCoord2dv; +PFNGLUNIFORM2IVPROC glad_glUniform2iv; +PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv; +PFNGLUNIFORM4UIVPROC glad_glUniform4uiv; +PFNGLMATRIXMODEPROC glad_glMatrixMode; +PFNGLFEEDBACKBUFFERPROC glad_glFeedbackBuffer; +PFNGLGETMAPIVPROC glad_glGetMapiv; +PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D; +PFNGLGETSHADERIVPROC glad_glGetShaderiv; +PFNGLMULTITEXCOORD2DPROC glad_glMultiTexCoord2d; +PFNGLMULTITEXCOORD2FPROC glad_glMultiTexCoord2f; +PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation; +PFNGLPRIORITIZETEXTURESPROC glad_glPrioritizeTextures; +PFNGLCALLLISTPROC glad_glCallList; +PFNGLSECONDARYCOLOR3UBVPROC glad_glSecondaryColor3ubv; +PFNGLGETDOUBLEVPROC glad_glGetDoublev; +PFNGLMULTITEXCOORD3IVPROC glad_glMultiTexCoord3iv; +PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d; +PFNGLLIGHTMODELFPROC glad_glLightModelf; +PFNGLGETUNIFORMIVPROC glad_glGetUniformiv; +PFNGLVERTEX2SVPROC glad_glVertex2sv; +PFNGLLIGHTMODELIPROC glad_glLightModeli; +PFNGLWINDOWPOS3IVPROC glad_glWindowPos3iv; +PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv; +PFNGLUNIFORM3FVPROC glad_glUniform3fv; +PFNGLPIXELSTOREIPROC glad_glPixelStorei; +PFNGLCALLLISTSPROC glad_glCallLists; +PFNGLMAPBUFFERPROC glad_glMapBuffer; +PFNGLSECONDARYCOLOR3DPROC glad_glSecondaryColor3d; +PFNGLTEXCOORD3IPROC glad_glTexCoord3i; +PFNGLMULTITEXCOORD4FVPROC glad_glMultiTexCoord4fv; +PFNGLRASTERPOS3IPROC glad_glRasterPos3i; +PFNGLSECONDARYCOLOR3BPROC glad_glSecondaryColor3b; +PFNGLRASTERPOS3DPROC glad_glRasterPos3d; +PFNGLRASTERPOS3FPROC glad_glRasterPos3f; +PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D; +PFNGLTEXCOORD3FPROC glad_glTexCoord3f; +PFNGLDELETESYNCPROC glad_glDeleteSync; +PFNGLTEXCOORD3DPROC glad_glTexCoord3d; +PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample; +PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv; +PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements; +PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv; +PFNGLTEXCOORD3SPROC glad_glTexCoord3s; +PFNGLUNIFORM3IVPROC glad_glUniform3iv; +PFNGLRASTERPOS3SPROC glad_glRasterPos3s; +PFNGLPOLYGONMODEPROC glad_glPolygonMode; +PFNGLDRAWBUFFERSPROC glad_glDrawBuffers; +PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv; +PFNGLARETEXTURESRESIDENTPROC glad_glAreTexturesResident; +PFNGLISLISTPROC glad_glIsList; +PFNGLRASTERPOS2SVPROC glad_glRasterPos2sv; +PFNGLRASTERPOS4SVPROC glad_glRasterPos4sv; +PFNGLCOLOR4SPROC glad_glColor4s; +PFNGLUSEPROGRAMPROC glad_glUseProgram; +PFNGLLINESTIPPLEPROC glad_glLineStipple; +PFNGLMULTITEXCOORD1SVPROC glad_glMultiTexCoord1sv; +PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog; +PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv; +PFNGLMULTITEXCOORD2IVPROC glad_glMultiTexCoord2iv; +PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv; +PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray; +PFNGLCOLOR4BPROC glad_glColor4b; +PFNGLSECONDARYCOLOR3FPROC glad_glSecondaryColor3f; +PFNGLCOLOR4FPROC glad_glColor4f; +PFNGLCOLOR4DPROC glad_glColor4d; +PFNGLCOLOR4IPROC glad_glColor4i; +PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv; +PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex; +PFNGLRASTERPOS3IVPROC glad_glRasterPos3iv; +PFNGLVERTEX2DVPROC glad_glVertex2dv; +PFNGLTEXCOORD4SVPROC glad_glTexCoord4sv; +PFNGLUNIFORM2UIVPROC glad_glUniform2uiv; +PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D; +PFNGLFINISHPROC glad_glFinish; +PFNGLGETBOOLEANVPROC glad_glGetBooleanv; +PFNGLDELETESHADERPROC glad_glDeleteShader; +PFNGLDRAWELEMENTSPROC glad_glDrawElements; +PFNGLRASTERPOS2SPROC glad_glRasterPos2s; +PFNGLGETMAPDVPROC glad_glGetMapdv; +PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv; +PFNGLMATERIALFVPROC glad_glMaterialfv; +PFNGLVIEWPORTPROC glad_glViewport; +PFNGLUNIFORM1UIVPROC glad_glUniform1uiv; +PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings; +PFNGLINDEXDVPROC glad_glIndexdv; +PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D; +PFNGLTEXCOORD3IVPROC glad_glTexCoord3iv; +PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i; +PFNGLCLEARDEPTHPROC glad_glClearDepth; +PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv; +PFNGLTEXPARAMETERFPROC glad_glTexParameterf; +PFNGLTEXPARAMETERIPROC glad_glTexParameteri; +PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource; +PFNGLTEXBUFFERPROC glad_glTexBuffer; +PFNGLPOPNAMEPROC glad_glPopName; +PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram; +PFNGLPIXELSTOREFPROC glad_glPixelStoref; +PFNGLUNIFORM3UIVPROC glad_glUniform3uiv; +PFNGLRASTERPOS4FVPROC glad_glRasterPos4fv; +PFNGLEVALCOORD1DVPROC glad_glEvalCoord1dv; +PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv; +PFNGLRECTIPROC glad_glRecti; +PFNGLCOLOR4UBPROC glad_glColor4ub; +PFNGLMULTTRANSPOSEMATRIXFPROC glad_glMultTransposeMatrixf; +PFNGLRECTFPROC glad_glRectf; +PFNGLRECTDPROC glad_glRectd; +PFNGLNORMAL3SVPROC glad_glNormal3sv; +PFNGLNEWLISTPROC glad_glNewList; +PFNGLCOLOR4USPROC glad_glColor4us; +PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv; +PFNGLLINKPROGRAMPROC glad_glLinkProgram; +PFNGLHINTPROC glad_glHint; +PFNGLRECTSPROC glad_glRects; +PFNGLTEXCOORD2DVPROC glad_glTexCoord2dv; +PFNGLRASTERPOS4IVPROC glad_glRasterPos4iv; +PFNGLGETSTRINGPROC glad_glGetString; +PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv; +PFNGLEDGEFLAGVPROC glad_glEdgeFlagv; +PFNGLDETACHSHADERPROC glad_glDetachShader; +PFNGLSCALEFPROC glad_glScalef; +PFNGLENDQUERYPROC glad_glEndQuery; +PFNGLSCALEDPROC glad_glScaled; +PFNGLEDGEFLAGPOINTERPROC glad_glEdgeFlagPointer; +PFNGLCOPYPIXELSPROC glad_glCopyPixels; +PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui; +PFNGLPOPATTRIBPROC glad_glPopAttrib; +PFNGLDELETETEXTURESPROC glad_glDeleteTextures; +PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate; +PFNGLDELETEQUERIESPROC glad_glDeleteQueries; +PFNGLNORMALP3UIVPROC glad_glNormalP3uiv; +PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f; +PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d; +PFNGLINITNAMESPROC glad_glInitNames; +PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v; +PFNGLCOLOR3DVPROC glad_glColor3dv; +PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i; +PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv; +PFNGLWAITSYNCPROC glad_glWaitSync; +PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s; +PFNGLCOLORMATERIALPROC glad_glColorMaterial; +PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage; +PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri; +PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf; +PFNGLUNIFORM1FPROC glad_glUniform1f; +PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv; +PFNGLRENDERMODEPROC glad_glRenderMode; +PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage; +PFNGLWINDOWPOS2DVPROC glad_glWindowPos2dv; +PFNGLUNIFORM1IPROC glad_glUniform1i; +PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib; +PFNGLUNIFORM3IPROC glad_glUniform3i; +PFNGLPIXELTRANSFERIPROC glad_glPixelTransferi; +PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D; +PFNGLDISABLEPROC glad_glDisable; +PFNGLLOGICOPPROC glad_glLogicOp; +PFNGLEVALPOINT2PROC glad_glEvalPoint2; +PFNGLPIXELTRANSFERFPROC glad_glPixelTransferf; +PFNGLSECONDARYCOLOR3IPROC glad_glSecondaryColor3i; +PFNGLUNIFORM4UIPROC glad_glUniform4ui; +PFNGLCOLOR3FPROC glad_glColor3f; +PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer; +PFNGLGETTEXENVFVPROC glad_glGetTexEnvfv; +PFNGLRECTFVPROC glad_glRectfv; +PFNGLCULLFACEPROC glad_glCullFace; +PFNGLGETLIGHTFVPROC glad_glGetLightfv; +PFNGLCOLOR3DPROC glad_glColor3d; +PFNGLTEXGENDPROC glad_glTexGend; +PFNGLTEXGENIPROC glad_glTexGeni; +PFNGLMULTITEXCOORD3SPROC glad_glMultiTexCoord3s; +PFNGLGETSTRINGIPROC glad_glGetStringi; +PFNGLMULTITEXCOORD3IPROC glad_glMultiTexCoord3i; +PFNGLMULTITEXCOORD3FPROC glad_glMultiTexCoord3f; +PFNGLMULTITEXCOORD3DPROC glad_glMultiTexCoord3d; +PFNGLATTACHSHADERPROC glad_glAttachShader; +PFNGLFOGCOORDDVPROC glad_glFogCoorddv; +PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv; +PFNGLGETTEXGENFVPROC glad_glGetTexGenfv; +PFNGLQUERYCOUNTERPROC glad_glQueryCounter; +PFNGLFOGCOORDPOINTERPROC glad_glFogCoordPointer; +PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex; +PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D; +PFNGLTEXGENIVPROC glad_glTexGeniv; +PFNGLRASTERPOS2DVPROC glad_glRasterPos2dv; +PFNGLSECONDARYCOLOR3DVPROC glad_glSecondaryColor3dv; +PFNGLCLIENTACTIVETEXTUREPROC glad_glClientActiveTexture; +PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv; +PFNGLSECONDARYCOLOR3USPROC glad_glSecondaryColor3us; +PFNGLNORMALP3UIPROC glad_glNormalP3ui; +PFNGLTEXENVFVPROC glad_glTexEnvfv; +PFNGLREADBUFFERPROC glad_glReadBuffer; +PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv; +PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced; +PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap; +PFNGLWINDOWPOS3FVPROC glad_glWindowPos3fv; +PFNGLLIGHTMODELFVPROC glad_glLightModelfv; +PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv; +PFNGLDELETELISTSPROC glad_glDeleteLists; +PFNGLGETCLIPPLANEPROC glad_glGetClipPlane; +PFNGLVERTEX4DVPROC glad_glVertex4dv; +PFNGLTEXCOORD2DPROC glad_glTexCoord2d; +PFNGLPOPMATRIXPROC glad_glPopMatrix; +PFNGLTEXCOORD2FPROC glad_glTexCoord2f; +PFNGLCOLOR4IVPROC glad_glColor4iv; +PFNGLINDEXUBVPROC glad_glIndexubv; +PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer; +PFNGLTEXCOORD2IPROC glad_glTexCoord2i; +PFNGLRASTERPOS4DPROC glad_glRasterPos4d; +PFNGLRASTERPOS4FPROC glad_glRasterPos4f; +PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s; +PFNGLTEXCOORD2SPROC glad_glTexCoord2s; +PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer; +PFNGLVERTEX3FVPROC glad_glVertex3fv; +PFNGLTEXCOORD4DVPROC glad_glTexCoord4dv; +PFNGLMATERIALIVPROC glad_glMaterialiv; +PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv; +PFNGLISPROGRAMPROC glad_glIsProgram; +PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv; +PFNGLVERTEX4SPROC glad_glVertex4s; +PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv; +PFNGLNORMAL3DVPROC glad_glNormal3dv; +PFNGLUNIFORM4IPROC glad_glUniform4i; +PFNGLACTIVETEXTUREPROC glad_glActiveTexture; +PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray; +PFNGLROTATEDPROC glad_glRotated; +PFNGLROTATEFPROC glad_glRotatef; +PFNGLVERTEX4IPROC glad_glVertex4i; +PFNGLREADPIXELSPROC glad_glReadPixels; +PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv; +PFNGLLOADNAMEPROC glad_glLoadName; +PFNGLUNIFORM4FPROC glad_glUniform4f; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample; +PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays; +PFNGLSHADEMODELPROC glad_glShadeModel; +PFNGLMAPGRID1DPROC glad_glMapGrid1d; +PFNGLGETUNIFORMFVPROC glad_glGetUniformfv; +PFNGLMAPGRID1FPROC glad_glMapGrid1f; +PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv; +PFNGLDISABLECLIENTSTATEPROC glad_glDisableClientState; +PFNGLMULTITEXCOORD3SVPROC glad_glMultiTexCoord3sv; +PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex; +PFNGLSECONDARYCOLORPOINTERPROC glad_glSecondaryColorPointer; +PFNGLALPHAFUNCPROC glad_glAlphaFunc; +PFNGLUNIFORM1IVPROC glad_glUniform1iv; +PFNGLMULTITEXCOORD4IVPROC glad_glMultiTexCoord4iv; +PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv; +PFNGLSTENCILFUNCPROC glad_glStencilFunc; +PFNGLMULTITEXCOORD1FVPROC glad_glMultiTexCoord1fv; +PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding; +PFNGLCOLOR4UIVPROC glad_glColor4uiv; +PFNGLRECTIVPROC glad_glRectiv; +PFNGLCOLORP4UIPROC glad_glColorP4ui; +PFNGLRASTERPOS3DVPROC glad_glRasterPos3dv; +PFNGLEVALMESH2PROC glad_glEvalMesh2; +PFNGLEVALMESH1PROC glad_glEvalMesh1; +PFNGLTEXCOORDPOINTERPROC glad_glTexCoordPointer; +PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv; +PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv; +PFNGLEVALCOORD2FVPROC glad_glEvalCoord2fv; +PFNGLCOLOR4UBVPROC glad_glColor4ubv; +PFNGLLOADTRANSPOSEMATRIXDPROC glad_glLoadTransposeMatrixd; +PFNGLLOADTRANSPOSEMATRIXFPROC glad_glLoadTransposeMatrixf; +PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i; +PFNGLRASTERPOS2IVPROC glad_glRasterPos2iv; +PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData; +PFNGLTEXENVIVPROC glad_glTexEnviv; +PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate; +PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui; +PFNGLGENBUFFERSPROC glad_glGenBuffers; +PFNGLSELECTBUFFERPROC glad_glSelectBuffer; +PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv; +PFNGLPUSHATTRIBPROC glad_glPushAttrib; +PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer; +PFNGLBLENDFUNCPROC glad_glBlendFunc; +PFNGLCREATEPROGRAMPROC glad_glCreateProgram; +PFNGLTEXIMAGE3DPROC glad_glTexImage3D; +PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer; +PFNGLLIGHTIVPROC glad_glLightiv; +PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex; +PFNGLTEXGENFVPROC glad_glTexGenfv; +PFNGLENDPROC glad_glEnd; +PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers; +PFNGLSCISSORPROC glad_glScissor; +PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv; +PFNGLCLIPPLANEPROC glad_glClipPlane; +PFNGLPUSHNAMEPROC glad_glPushName; +PFNGLTEXGENDVPROC glad_glTexGendv; +PFNGLINDEXUBPROC glad_glIndexub; +PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv; +PFNGLSECONDARYCOLOR3IVPROC glad_glSecondaryColor3iv; +PFNGLRASTERPOS4IPROC glad_glRasterPos4i; +PFNGLMULTTRANSPOSEMATRIXDPROC glad_glMultTransposeMatrixd; +PFNGLCLEARCOLORPROC glad_glClearColor; +PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv; +PFNGLNORMAL3SPROC glad_glNormal3s; +PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv; +PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv; +PFNGLPOINTPARAMETERIPROC glad_glPointParameteri; +PFNGLCOLORP4UIVPROC glad_glColorP4uiv; +PFNGLBLENDCOLORPROC glad_glBlendColor; +PFNGLWINDOWPOS3DPROC glad_glWindowPos3d; +PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv; +PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv; +PFNGLUNIFORM3UIPROC glad_glUniform3ui; +PFNGLCOLOR4DVPROC glad_glColor4dv; +PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv; +PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv; +PFNGLUNIFORM2FVPROC glad_glUniform2fv; +PFNGLSECONDARYCOLOR3UBPROC glad_glSecondaryColor3ub; +PFNGLSECONDARYCOLOR3UIPROC glad_glSecondaryColor3ui; +PFNGLTEXCOORD3DVPROC glad_glTexCoord3dv; +PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv; +PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange; +PFNGLNORMAL3IVPROC glad_glNormal3iv; +PFNGLWINDOWPOS3SPROC glad_glWindowPos3s; +PFNGLPOINTPARAMETERFPROC glad_glPointParameterf; +PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv; +PFNGLWINDOWPOS3IPROC glad_glWindowPos3i; +PFNGLMULTITEXCOORD4SPROC glad_glMultiTexCoord4s; +PFNGLWINDOWPOS3FPROC glad_glWindowPos3f; +PFNGLCOLOR3USPROC glad_glColor3us; +PFNGLCOLOR3UIVPROC glad_glColor3uiv; +PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv; +PFNGLGETLIGHTIVPROC glad_glGetLightiv; +PFNGLDEPTHFUNCPROC glad_glDepthFunc; +PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D; +PFNGLLISTBASEPROC glad_glListBase; +PFNGLMULTITEXCOORD4FPROC glad_glMultiTexCoord4f; +PFNGLCOLOR3UBPROC glad_glColor3ub; +PFNGLMULTITEXCOORD4DPROC glad_glMultiTexCoord4d; +PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv; +PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv; +PFNGLCOLOR3UIPROC glad_glColor3ui; +PFNGLMULTITEXCOORD4IPROC glad_glMultiTexCoord4i; +PFNGLGETPOLYGONSTIPPLEPROC glad_glGetPolygonStipple; +PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync; +PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui; +PFNGLMULTITEXCOORD4DVPROC glad_glMultiTexCoord4dv; +PFNGLCOLORMASKPROC glad_glColorMask; +PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv; +PFNGLBLENDEQUATIONPROC glad_glBlendEquation; +PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation; +PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv; +PFNGLRASTERPOS4SPROC glad_glRasterPos4s; +PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback; +PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv; +PFNGLMULTITEXCOORD3DVPROC glad_glMultiTexCoord3dv; +PFNGLCOLOR4SVPROC glad_glColor4sv; +PFNGLPOPCLIENTATTRIBPROC glad_glPopClientAttrib; +PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback; +PFNGLFOGFPROC glad_glFogf; +PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv; +PFNGLISSAMPLERPROC glad_glIsSampler; +PFNGLVERTEXP3UIPROC glad_glVertexP3ui; +PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor; +PFNGLCOLOR3IVPROC glad_glColor3iv; +PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D; +PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D; +PFNGLTEXCOORD1IPROC glad_glTexCoord1i; +PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus; +PFNGLTEXCOORD1DPROC glad_glTexCoord1d; +PFNGLTEXCOORD1FPROC glad_glTexCoord1f; +PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender; +PFNGLENABLECLIENTSTATEPROC glad_glEnableClientState; +PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation; +PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv; +PFNGLMULTITEXCOORD2SVPROC glad_glMultiTexCoord2sv; +PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv; +PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements; +PFNGLTEXCOORD1SPROC glad_glTexCoord1s; +PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase; +PFNGLBUFFERSUBDATAPROC glad_glBufferSubData; +PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv; +PFNGLGENLISTSPROC glad_glGenLists; +PFNGLCOLOR3BVPROC glad_glColor3bv; +PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange; +PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture; +PFNGLGETTEXGENDVPROC glad_glGetTexGendv; +PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays; +PFNGLENDLISTPROC glad_glEndList; +PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv; +PFNGLUNIFORM2UIPROC glad_glUniform2ui; +PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv; +PFNGLCOLOR3USVPROC glad_glColor3usv; +PFNGLWINDOWPOS2FVPROC glad_glWindowPos2fv; +PFNGLDISABLEIPROC glad_glDisablei; +PFNGLINDEXMASKPROC glad_glIndexMask; +PFNGLPUSHCLIENTATTRIBPROC glad_glPushClientAttrib; +PFNGLSHADERSOURCEPROC glad_glShaderSource; +PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName; +PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv; +PFNGLCLEARACCUMPROC glad_glClearAccum; +PFNGLGETSYNCIVPROC glad_glGetSynciv; +PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv; +PFNGLUNIFORM2FPROC glad_glUniform2f; +PFNGLBEGINQUERYPROC glad_glBeginQuery; +PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex; +PFNGLBINDBUFFERPROC glad_glBindBuffer; +PFNGLMAP2DPROC glad_glMap2d; +PFNGLMAP2FPROC glad_glMap2f; +PFNGLVERTEX4DPROC glad_glVertex4d; +PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv; +PFNGLTEXCOORD1SVPROC glad_glTexCoord1sv; +PFNGLBUFFERDATAPROC glad_glBufferData; +PFNGLEVALPOINT1PROC glad_glEvalPoint1; +PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv; +PFNGLTEXCOORD1DVPROC glad_glTexCoord1dv; +PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui; +PFNGLGETERRORPROC glad_glGetError; +PFNGLGETTEXENVIVPROC glad_glGetTexEnviv; +PFNGLGETPROGRAMIVPROC glad_glGetProgramiv; +PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui; +PFNGLGETFLOATVPROC glad_glGetFloatv; +PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D; +PFNGLMULTITEXCOORD2FVPROC glad_glMultiTexCoord2fv; +PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv; +PFNGLEVALCOORD1DPROC glad_glEvalCoord1d; +PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv; +PFNGLEVALCOORD1FPROC glad_glEvalCoord1f; +PFNGLPIXELMAPFVPROC glad_glPixelMapfv; +PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv; +PFNGLGETPIXELMAPUSVPROC glad_glGetPixelMapusv; +PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv; +PFNGLGETINTEGERVPROC glad_glGetIntegerv; +PFNGLACCUMPROC glad_glAccum; +PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv; +PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv; +PFNGLRASTERPOS4DVPROC glad_glRasterPos4dv; +PFNGLTEXCOORD2IVPROC glad_glTexCoord2iv; +PFNGLISQUERYPROC glad_glIsQuery; +PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv; +PFNGLWINDOWPOS3DVPROC glad_glWindowPos3dv; +PFNGLTEXIMAGE2DPROC glad_glTexImage2D; +PFNGLSTENCILMASKPROC glad_glStencilMask; +PFNGLDRAWPIXELSPROC glad_glDrawPixels; +PFNGLMULTMATRIXDPROC glad_glMultMatrixd; +PFNGLMULTMATRIXFPROC glad_glMultMatrixf; +PFNGLISTEXTUREPROC glad_glIsTexture; +PFNGLGETMATERIALIVPROC glad_glGetMaterialiv; +PFNGLUNIFORM1FVPROC glad_glUniform1fv; +PFNGLLOADMATRIXFPROC glad_glLoadMatrixf; +PFNGLLOADMATRIXDPROC glad_glLoadMatrixd; +PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv; +PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv; +PFNGLVERTEX4FPROC glad_glVertex4f; +PFNGLRECTSVPROC glad_glRectsv; +PFNGLCOLOR4USVPROC glad_glColor4usv; +PFNGLPOLYGONSTIPPLEPROC glad_glPolygonStipple; +PFNGLINTERLEAVEDARRAYSPROC glad_glInterleavedArrays; +PFNGLNORMAL3IPROC glad_glNormal3i; +PFNGLNORMAL3FPROC glad_glNormal3f; +PFNGLNORMAL3DPROC glad_glNormal3d; +PFNGLNORMAL3BPROC glad_glNormal3b; +PFNGLPIXELMAPUSVPROC glad_glPixelMapusv; +PFNGLGETTEXGENIVPROC glad_glGetTexGeniv; +PFNGLARRAYELEMENTPROC glad_glArrayElement; +PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData; +PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv; +PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d; +PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f; +PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv; +PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v; +PFNGLDEPTHMASKPROC glad_glDepthMask; +PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s; +PFNGLCOLOR3FVPROC glad_glColor3fv; +PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample; +PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv; +PFNGLUNIFORM4FVPROC glad_glUniform4fv; +PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform; +PFNGLCOLORPOINTERPROC glad_glColorPointer; +PFNGLFRONTFACEPROC glad_glFrontFace; +PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v; +PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv; +int GLAD_GL_EXT_framebuffer_sRGB; +int GLAD_GL_ARB_framebuffer_sRGB; +int GLAD_GL_ARB_multisample; +PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB; +static void load_GL_VERSION_1_0(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_0) return; + glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace"); + glad_glFrontFace = (PFNGLFRONTFACEPROC)load("glFrontFace"); + glad_glHint = (PFNGLHINTPROC)load("glHint"); + glad_glLineWidth = (PFNGLLINEWIDTHPROC)load("glLineWidth"); + glad_glPointSize = (PFNGLPOINTSIZEPROC)load("glPointSize"); + glad_glPolygonMode = (PFNGLPOLYGONMODEPROC)load("glPolygonMode"); + glad_glScissor = (PFNGLSCISSORPROC)load("glScissor"); + glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load("glTexParameterf"); + glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load("glTexParameterfv"); + glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load("glTexParameteri"); + glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load("glTexParameteriv"); + glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC)load("glTexImage1D"); + glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load("glTexImage2D"); + glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC)load("glDrawBuffer"); + glad_glClear = (PFNGLCLEARPROC)load("glClear"); + glad_glClearColor = (PFNGLCLEARCOLORPROC)load("glClearColor"); + glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load("glClearStencil"); + glad_glClearDepth = (PFNGLCLEARDEPTHPROC)load("glClearDepth"); + glad_glStencilMask = (PFNGLSTENCILMASKPROC)load("glStencilMask"); + glad_glColorMask = (PFNGLCOLORMASKPROC)load("glColorMask"); + glad_glDepthMask = (PFNGLDEPTHMASKPROC)load("glDepthMask"); + glad_glDisable = (PFNGLDISABLEPROC)load("glDisable"); + glad_glEnable = (PFNGLENABLEPROC)load("glEnable"); + glad_glFinish = (PFNGLFINISHPROC)load("glFinish"); + glad_glFlush = (PFNGLFLUSHPROC)load("glFlush"); + glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load("glBlendFunc"); + glad_glLogicOp = (PFNGLLOGICOPPROC)load("glLogicOp"); + glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load("glStencilFunc"); + glad_glStencilOp = (PFNGLSTENCILOPPROC)load("glStencilOp"); + glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load("glDepthFunc"); + glad_glPixelStoref = (PFNGLPIXELSTOREFPROC)load("glPixelStoref"); + glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load("glPixelStorei"); + glad_glReadBuffer = (PFNGLREADBUFFERPROC)load("glReadBuffer"); + glad_glReadPixels = (PFNGLREADPIXELSPROC)load("glReadPixels"); + glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load("glGetBooleanv"); + glad_glGetDoublev = (PFNGLGETDOUBLEVPROC)load("glGetDoublev"); + glad_glGetError = (PFNGLGETERRORPROC)load("glGetError"); + glad_glGetFloatv = (PFNGLGETFLOATVPROC)load("glGetFloatv"); + glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load("glGetIntegerv"); + glad_glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); + glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC)load("glGetTexImage"); + glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load("glGetTexParameterfv"); + glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load("glGetTexParameteriv"); + glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)load("glGetTexLevelParameterfv"); + glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)load("glGetTexLevelParameteriv"); + glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled"); + glad_glDepthRange = (PFNGLDEPTHRANGEPROC)load("glDepthRange"); + glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport"); + glad_glNewList = (PFNGLNEWLISTPROC)load("glNewList"); + glad_glEndList = (PFNGLENDLISTPROC)load("glEndList"); + glad_glCallList = (PFNGLCALLLISTPROC)load("glCallList"); + glad_glCallLists = (PFNGLCALLLISTSPROC)load("glCallLists"); + glad_glDeleteLists = (PFNGLDELETELISTSPROC)load("glDeleteLists"); + glad_glGenLists = (PFNGLGENLISTSPROC)load("glGenLists"); + glad_glListBase = (PFNGLLISTBASEPROC)load("glListBase"); + glad_glBegin = (PFNGLBEGINPROC)load("glBegin"); + glad_glBitmap = (PFNGLBITMAPPROC)load("glBitmap"); + glad_glColor3b = (PFNGLCOLOR3BPROC)load("glColor3b"); + glad_glColor3bv = (PFNGLCOLOR3BVPROC)load("glColor3bv"); + glad_glColor3d = (PFNGLCOLOR3DPROC)load("glColor3d"); + glad_glColor3dv = (PFNGLCOLOR3DVPROC)load("glColor3dv"); + glad_glColor3f = (PFNGLCOLOR3FPROC)load("glColor3f"); + glad_glColor3fv = (PFNGLCOLOR3FVPROC)load("glColor3fv"); + glad_glColor3i = (PFNGLCOLOR3IPROC)load("glColor3i"); + glad_glColor3iv = (PFNGLCOLOR3IVPROC)load("glColor3iv"); + glad_glColor3s = (PFNGLCOLOR3SPROC)load("glColor3s"); + glad_glColor3sv = (PFNGLCOLOR3SVPROC)load("glColor3sv"); + glad_glColor3ub = (PFNGLCOLOR3UBPROC)load("glColor3ub"); + glad_glColor3ubv = (PFNGLCOLOR3UBVPROC)load("glColor3ubv"); + glad_glColor3ui = (PFNGLCOLOR3UIPROC)load("glColor3ui"); + glad_glColor3uiv = (PFNGLCOLOR3UIVPROC)load("glColor3uiv"); + glad_glColor3us = (PFNGLCOLOR3USPROC)load("glColor3us"); + glad_glColor3usv = (PFNGLCOLOR3USVPROC)load("glColor3usv"); + glad_glColor4b = (PFNGLCOLOR4BPROC)load("glColor4b"); + glad_glColor4bv = (PFNGLCOLOR4BVPROC)load("glColor4bv"); + glad_glColor4d = (PFNGLCOLOR4DPROC)load("glColor4d"); + glad_glColor4dv = (PFNGLCOLOR4DVPROC)load("glColor4dv"); + glad_glColor4f = (PFNGLCOLOR4FPROC)load("glColor4f"); + glad_glColor4fv = (PFNGLCOLOR4FVPROC)load("glColor4fv"); + glad_glColor4i = (PFNGLCOLOR4IPROC)load("glColor4i"); + glad_glColor4iv = (PFNGLCOLOR4IVPROC)load("glColor4iv"); + glad_glColor4s = (PFNGLCOLOR4SPROC)load("glColor4s"); + glad_glColor4sv = (PFNGLCOLOR4SVPROC)load("glColor4sv"); + glad_glColor4ub = (PFNGLCOLOR4UBPROC)load("glColor4ub"); + glad_glColor4ubv = (PFNGLCOLOR4UBVPROC)load("glColor4ubv"); + glad_glColor4ui = (PFNGLCOLOR4UIPROC)load("glColor4ui"); + glad_glColor4uiv = (PFNGLCOLOR4UIVPROC)load("glColor4uiv"); + glad_glColor4us = (PFNGLCOLOR4USPROC)load("glColor4us"); + glad_glColor4usv = (PFNGLCOLOR4USVPROC)load("glColor4usv"); + glad_glEdgeFlag = (PFNGLEDGEFLAGPROC)load("glEdgeFlag"); + glad_glEdgeFlagv = (PFNGLEDGEFLAGVPROC)load("glEdgeFlagv"); + glad_glEnd = (PFNGLENDPROC)load("glEnd"); + glad_glIndexd = (PFNGLINDEXDPROC)load("glIndexd"); + glad_glIndexdv = (PFNGLINDEXDVPROC)load("glIndexdv"); + glad_glIndexf = (PFNGLINDEXFPROC)load("glIndexf"); + glad_glIndexfv = (PFNGLINDEXFVPROC)load("glIndexfv"); + glad_glIndexi = (PFNGLINDEXIPROC)load("glIndexi"); + glad_glIndexiv = (PFNGLINDEXIVPROC)load("glIndexiv"); + glad_glIndexs = (PFNGLINDEXSPROC)load("glIndexs"); + glad_glIndexsv = (PFNGLINDEXSVPROC)load("glIndexsv"); + glad_glNormal3b = (PFNGLNORMAL3BPROC)load("glNormal3b"); + glad_glNormal3bv = (PFNGLNORMAL3BVPROC)load("glNormal3bv"); + glad_glNormal3d = (PFNGLNORMAL3DPROC)load("glNormal3d"); + glad_glNormal3dv = (PFNGLNORMAL3DVPROC)load("glNormal3dv"); + glad_glNormal3f = (PFNGLNORMAL3FPROC)load("glNormal3f"); + glad_glNormal3fv = (PFNGLNORMAL3FVPROC)load("glNormal3fv"); + glad_glNormal3i = (PFNGLNORMAL3IPROC)load("glNormal3i"); + glad_glNormal3iv = (PFNGLNORMAL3IVPROC)load("glNormal3iv"); + glad_glNormal3s = (PFNGLNORMAL3SPROC)load("glNormal3s"); + glad_glNormal3sv = (PFNGLNORMAL3SVPROC)load("glNormal3sv"); + glad_glRasterPos2d = (PFNGLRASTERPOS2DPROC)load("glRasterPos2d"); + glad_glRasterPos2dv = (PFNGLRASTERPOS2DVPROC)load("glRasterPos2dv"); + glad_glRasterPos2f = (PFNGLRASTERPOS2FPROC)load("glRasterPos2f"); + glad_glRasterPos2fv = (PFNGLRASTERPOS2FVPROC)load("glRasterPos2fv"); + glad_glRasterPos2i = (PFNGLRASTERPOS2IPROC)load("glRasterPos2i"); + glad_glRasterPos2iv = (PFNGLRASTERPOS2IVPROC)load("glRasterPos2iv"); + glad_glRasterPos2s = (PFNGLRASTERPOS2SPROC)load("glRasterPos2s"); + glad_glRasterPos2sv = (PFNGLRASTERPOS2SVPROC)load("glRasterPos2sv"); + glad_glRasterPos3d = (PFNGLRASTERPOS3DPROC)load("glRasterPos3d"); + glad_glRasterPos3dv = (PFNGLRASTERPOS3DVPROC)load("glRasterPos3dv"); + glad_glRasterPos3f = (PFNGLRASTERPOS3FPROC)load("glRasterPos3f"); + glad_glRasterPos3fv = (PFNGLRASTERPOS3FVPROC)load("glRasterPos3fv"); + glad_glRasterPos3i = (PFNGLRASTERPOS3IPROC)load("glRasterPos3i"); + glad_glRasterPos3iv = (PFNGLRASTERPOS3IVPROC)load("glRasterPos3iv"); + glad_glRasterPos3s = (PFNGLRASTERPOS3SPROC)load("glRasterPos3s"); + glad_glRasterPos3sv = (PFNGLRASTERPOS3SVPROC)load("glRasterPos3sv"); + glad_glRasterPos4d = (PFNGLRASTERPOS4DPROC)load("glRasterPos4d"); + glad_glRasterPos4dv = (PFNGLRASTERPOS4DVPROC)load("glRasterPos4dv"); + glad_glRasterPos4f = (PFNGLRASTERPOS4FPROC)load("glRasterPos4f"); + glad_glRasterPos4fv = (PFNGLRASTERPOS4FVPROC)load("glRasterPos4fv"); + glad_glRasterPos4i = (PFNGLRASTERPOS4IPROC)load("glRasterPos4i"); + glad_glRasterPos4iv = (PFNGLRASTERPOS4IVPROC)load("glRasterPos4iv"); + glad_glRasterPos4s = (PFNGLRASTERPOS4SPROC)load("glRasterPos4s"); + glad_glRasterPos4sv = (PFNGLRASTERPOS4SVPROC)load("glRasterPos4sv"); + glad_glRectd = (PFNGLRECTDPROC)load("glRectd"); + glad_glRectdv = (PFNGLRECTDVPROC)load("glRectdv"); + glad_glRectf = (PFNGLRECTFPROC)load("glRectf"); + glad_glRectfv = (PFNGLRECTFVPROC)load("glRectfv"); + glad_glRecti = (PFNGLRECTIPROC)load("glRecti"); + glad_glRectiv = (PFNGLRECTIVPROC)load("glRectiv"); + glad_glRects = (PFNGLRECTSPROC)load("glRects"); + glad_glRectsv = (PFNGLRECTSVPROC)load("glRectsv"); + glad_glTexCoord1d = (PFNGLTEXCOORD1DPROC)load("glTexCoord1d"); + glad_glTexCoord1dv = (PFNGLTEXCOORD1DVPROC)load("glTexCoord1dv"); + glad_glTexCoord1f = (PFNGLTEXCOORD1FPROC)load("glTexCoord1f"); + glad_glTexCoord1fv = (PFNGLTEXCOORD1FVPROC)load("glTexCoord1fv"); + glad_glTexCoord1i = (PFNGLTEXCOORD1IPROC)load("glTexCoord1i"); + glad_glTexCoord1iv = (PFNGLTEXCOORD1IVPROC)load("glTexCoord1iv"); + glad_glTexCoord1s = (PFNGLTEXCOORD1SPROC)load("glTexCoord1s"); + glad_glTexCoord1sv = (PFNGLTEXCOORD1SVPROC)load("glTexCoord1sv"); + glad_glTexCoord2d = (PFNGLTEXCOORD2DPROC)load("glTexCoord2d"); + glad_glTexCoord2dv = (PFNGLTEXCOORD2DVPROC)load("glTexCoord2dv"); + glad_glTexCoord2f = (PFNGLTEXCOORD2FPROC)load("glTexCoord2f"); + glad_glTexCoord2fv = (PFNGLTEXCOORD2FVPROC)load("glTexCoord2fv"); + glad_glTexCoord2i = (PFNGLTEXCOORD2IPROC)load("glTexCoord2i"); + glad_glTexCoord2iv = (PFNGLTEXCOORD2IVPROC)load("glTexCoord2iv"); + glad_glTexCoord2s = (PFNGLTEXCOORD2SPROC)load("glTexCoord2s"); + glad_glTexCoord2sv = (PFNGLTEXCOORD2SVPROC)load("glTexCoord2sv"); + glad_glTexCoord3d = (PFNGLTEXCOORD3DPROC)load("glTexCoord3d"); + glad_glTexCoord3dv = (PFNGLTEXCOORD3DVPROC)load("glTexCoord3dv"); + glad_glTexCoord3f = (PFNGLTEXCOORD3FPROC)load("glTexCoord3f"); + glad_glTexCoord3fv = (PFNGLTEXCOORD3FVPROC)load("glTexCoord3fv"); + glad_glTexCoord3i = (PFNGLTEXCOORD3IPROC)load("glTexCoord3i"); + glad_glTexCoord3iv = (PFNGLTEXCOORD3IVPROC)load("glTexCoord3iv"); + glad_glTexCoord3s = (PFNGLTEXCOORD3SPROC)load("glTexCoord3s"); + glad_glTexCoord3sv = (PFNGLTEXCOORD3SVPROC)load("glTexCoord3sv"); + glad_glTexCoord4d = (PFNGLTEXCOORD4DPROC)load("glTexCoord4d"); + glad_glTexCoord4dv = (PFNGLTEXCOORD4DVPROC)load("glTexCoord4dv"); + glad_glTexCoord4f = (PFNGLTEXCOORD4FPROC)load("glTexCoord4f"); + glad_glTexCoord4fv = (PFNGLTEXCOORD4FVPROC)load("glTexCoord4fv"); + glad_glTexCoord4i = (PFNGLTEXCOORD4IPROC)load("glTexCoord4i"); + glad_glTexCoord4iv = (PFNGLTEXCOORD4IVPROC)load("glTexCoord4iv"); + glad_glTexCoord4s = (PFNGLTEXCOORD4SPROC)load("glTexCoord4s"); + glad_glTexCoord4sv = (PFNGLTEXCOORD4SVPROC)load("glTexCoord4sv"); + glad_glVertex2d = (PFNGLVERTEX2DPROC)load("glVertex2d"); + glad_glVertex2dv = (PFNGLVERTEX2DVPROC)load("glVertex2dv"); + glad_glVertex2f = (PFNGLVERTEX2FPROC)load("glVertex2f"); + glad_glVertex2fv = (PFNGLVERTEX2FVPROC)load("glVertex2fv"); + glad_glVertex2i = (PFNGLVERTEX2IPROC)load("glVertex2i"); + glad_glVertex2iv = (PFNGLVERTEX2IVPROC)load("glVertex2iv"); + glad_glVertex2s = (PFNGLVERTEX2SPROC)load("glVertex2s"); + glad_glVertex2sv = (PFNGLVERTEX2SVPROC)load("glVertex2sv"); + glad_glVertex3d = (PFNGLVERTEX3DPROC)load("glVertex3d"); + glad_glVertex3dv = (PFNGLVERTEX3DVPROC)load("glVertex3dv"); + glad_glVertex3f = (PFNGLVERTEX3FPROC)load("glVertex3f"); + glad_glVertex3fv = (PFNGLVERTEX3FVPROC)load("glVertex3fv"); + glad_glVertex3i = (PFNGLVERTEX3IPROC)load("glVertex3i"); + glad_glVertex3iv = (PFNGLVERTEX3IVPROC)load("glVertex3iv"); + glad_glVertex3s = (PFNGLVERTEX3SPROC)load("glVertex3s"); + glad_glVertex3sv = (PFNGLVERTEX3SVPROC)load("glVertex3sv"); + glad_glVertex4d = (PFNGLVERTEX4DPROC)load("glVertex4d"); + glad_glVertex4dv = (PFNGLVERTEX4DVPROC)load("glVertex4dv"); + glad_glVertex4f = (PFNGLVERTEX4FPROC)load("glVertex4f"); + glad_glVertex4fv = (PFNGLVERTEX4FVPROC)load("glVertex4fv"); + glad_glVertex4i = (PFNGLVERTEX4IPROC)load("glVertex4i"); + glad_glVertex4iv = (PFNGLVERTEX4IVPROC)load("glVertex4iv"); + glad_glVertex4s = (PFNGLVERTEX4SPROC)load("glVertex4s"); + glad_glVertex4sv = (PFNGLVERTEX4SVPROC)load("glVertex4sv"); + glad_glClipPlane = (PFNGLCLIPPLANEPROC)load("glClipPlane"); + glad_glColorMaterial = (PFNGLCOLORMATERIALPROC)load("glColorMaterial"); + glad_glFogf = (PFNGLFOGFPROC)load("glFogf"); + glad_glFogfv = (PFNGLFOGFVPROC)load("glFogfv"); + glad_glFogi = (PFNGLFOGIPROC)load("glFogi"); + glad_glFogiv = (PFNGLFOGIVPROC)load("glFogiv"); + glad_glLightf = (PFNGLLIGHTFPROC)load("glLightf"); + glad_glLightfv = (PFNGLLIGHTFVPROC)load("glLightfv"); + glad_glLighti = (PFNGLLIGHTIPROC)load("glLighti"); + glad_glLightiv = (PFNGLLIGHTIVPROC)load("glLightiv"); + glad_glLightModelf = (PFNGLLIGHTMODELFPROC)load("glLightModelf"); + glad_glLightModelfv = (PFNGLLIGHTMODELFVPROC)load("glLightModelfv"); + glad_glLightModeli = (PFNGLLIGHTMODELIPROC)load("glLightModeli"); + glad_glLightModeliv = (PFNGLLIGHTMODELIVPROC)load("glLightModeliv"); + glad_glLineStipple = (PFNGLLINESTIPPLEPROC)load("glLineStipple"); + glad_glMaterialf = (PFNGLMATERIALFPROC)load("glMaterialf"); + glad_glMaterialfv = (PFNGLMATERIALFVPROC)load("glMaterialfv"); + glad_glMateriali = (PFNGLMATERIALIPROC)load("glMateriali"); + glad_glMaterialiv = (PFNGLMATERIALIVPROC)load("glMaterialiv"); + glad_glPolygonStipple = (PFNGLPOLYGONSTIPPLEPROC)load("glPolygonStipple"); + glad_glShadeModel = (PFNGLSHADEMODELPROC)load("glShadeModel"); + glad_glTexEnvf = (PFNGLTEXENVFPROC)load("glTexEnvf"); + glad_glTexEnvfv = (PFNGLTEXENVFVPROC)load("glTexEnvfv"); + glad_glTexEnvi = (PFNGLTEXENVIPROC)load("glTexEnvi"); + glad_glTexEnviv = (PFNGLTEXENVIVPROC)load("glTexEnviv"); + glad_glTexGend = (PFNGLTEXGENDPROC)load("glTexGend"); + glad_glTexGendv = (PFNGLTEXGENDVPROC)load("glTexGendv"); + glad_glTexGenf = (PFNGLTEXGENFPROC)load("glTexGenf"); + glad_glTexGenfv = (PFNGLTEXGENFVPROC)load("glTexGenfv"); + glad_glTexGeni = (PFNGLTEXGENIPROC)load("glTexGeni"); + glad_glTexGeniv = (PFNGLTEXGENIVPROC)load("glTexGeniv"); + glad_glFeedbackBuffer = (PFNGLFEEDBACKBUFFERPROC)load("glFeedbackBuffer"); + glad_glSelectBuffer = (PFNGLSELECTBUFFERPROC)load("glSelectBuffer"); + glad_glRenderMode = (PFNGLRENDERMODEPROC)load("glRenderMode"); + glad_glInitNames = (PFNGLINITNAMESPROC)load("glInitNames"); + glad_glLoadName = (PFNGLLOADNAMEPROC)load("glLoadName"); + glad_glPassThrough = (PFNGLPASSTHROUGHPROC)load("glPassThrough"); + glad_glPopName = (PFNGLPOPNAMEPROC)load("glPopName"); + glad_glPushName = (PFNGLPUSHNAMEPROC)load("glPushName"); + glad_glClearAccum = (PFNGLCLEARACCUMPROC)load("glClearAccum"); + glad_glClearIndex = (PFNGLCLEARINDEXPROC)load("glClearIndex"); + glad_glIndexMask = (PFNGLINDEXMASKPROC)load("glIndexMask"); + glad_glAccum = (PFNGLACCUMPROC)load("glAccum"); + glad_glPopAttrib = (PFNGLPOPATTRIBPROC)load("glPopAttrib"); + glad_glPushAttrib = (PFNGLPUSHATTRIBPROC)load("glPushAttrib"); + glad_glMap1d = (PFNGLMAP1DPROC)load("glMap1d"); + glad_glMap1f = (PFNGLMAP1FPROC)load("glMap1f"); + glad_glMap2d = (PFNGLMAP2DPROC)load("glMap2d"); + glad_glMap2f = (PFNGLMAP2FPROC)load("glMap2f"); + glad_glMapGrid1d = (PFNGLMAPGRID1DPROC)load("glMapGrid1d"); + glad_glMapGrid1f = (PFNGLMAPGRID1FPROC)load("glMapGrid1f"); + glad_glMapGrid2d = (PFNGLMAPGRID2DPROC)load("glMapGrid2d"); + glad_glMapGrid2f = (PFNGLMAPGRID2FPROC)load("glMapGrid2f"); + glad_glEvalCoord1d = (PFNGLEVALCOORD1DPROC)load("glEvalCoord1d"); + glad_glEvalCoord1dv = (PFNGLEVALCOORD1DVPROC)load("glEvalCoord1dv"); + glad_glEvalCoord1f = (PFNGLEVALCOORD1FPROC)load("glEvalCoord1f"); + glad_glEvalCoord1fv = (PFNGLEVALCOORD1FVPROC)load("glEvalCoord1fv"); + glad_glEvalCoord2d = (PFNGLEVALCOORD2DPROC)load("glEvalCoord2d"); + glad_glEvalCoord2dv = (PFNGLEVALCOORD2DVPROC)load("glEvalCoord2dv"); + glad_glEvalCoord2f = (PFNGLEVALCOORD2FPROC)load("glEvalCoord2f"); + glad_glEvalCoord2fv = (PFNGLEVALCOORD2FVPROC)load("glEvalCoord2fv"); + glad_glEvalMesh1 = (PFNGLEVALMESH1PROC)load("glEvalMesh1"); + glad_glEvalPoint1 = (PFNGLEVALPOINT1PROC)load("glEvalPoint1"); + glad_glEvalMesh2 = (PFNGLEVALMESH2PROC)load("glEvalMesh2"); + glad_glEvalPoint2 = (PFNGLEVALPOINT2PROC)load("glEvalPoint2"); + glad_glAlphaFunc = (PFNGLALPHAFUNCPROC)load("glAlphaFunc"); + glad_glPixelZoom = (PFNGLPIXELZOOMPROC)load("glPixelZoom"); + glad_glPixelTransferf = (PFNGLPIXELTRANSFERFPROC)load("glPixelTransferf"); + glad_glPixelTransferi = (PFNGLPIXELTRANSFERIPROC)load("glPixelTransferi"); + glad_glPixelMapfv = (PFNGLPIXELMAPFVPROC)load("glPixelMapfv"); + glad_glPixelMapuiv = (PFNGLPIXELMAPUIVPROC)load("glPixelMapuiv"); + glad_glPixelMapusv = (PFNGLPIXELMAPUSVPROC)load("glPixelMapusv"); + glad_glCopyPixels = (PFNGLCOPYPIXELSPROC)load("glCopyPixels"); + glad_glDrawPixels = (PFNGLDRAWPIXELSPROC)load("glDrawPixels"); + glad_glGetClipPlane = (PFNGLGETCLIPPLANEPROC)load("glGetClipPlane"); + glad_glGetLightfv = (PFNGLGETLIGHTFVPROC)load("glGetLightfv"); + glad_glGetLightiv = (PFNGLGETLIGHTIVPROC)load("glGetLightiv"); + glad_glGetMapdv = (PFNGLGETMAPDVPROC)load("glGetMapdv"); + glad_glGetMapfv = (PFNGLGETMAPFVPROC)load("glGetMapfv"); + glad_glGetMapiv = (PFNGLGETMAPIVPROC)load("glGetMapiv"); + glad_glGetMaterialfv = (PFNGLGETMATERIALFVPROC)load("glGetMaterialfv"); + glad_glGetMaterialiv = (PFNGLGETMATERIALIVPROC)load("glGetMaterialiv"); + glad_glGetPixelMapfv = (PFNGLGETPIXELMAPFVPROC)load("glGetPixelMapfv"); + glad_glGetPixelMapuiv = (PFNGLGETPIXELMAPUIVPROC)load("glGetPixelMapuiv"); + glad_glGetPixelMapusv = (PFNGLGETPIXELMAPUSVPROC)load("glGetPixelMapusv"); + glad_glGetPolygonStipple = (PFNGLGETPOLYGONSTIPPLEPROC)load("glGetPolygonStipple"); + glad_glGetTexEnvfv = (PFNGLGETTEXENVFVPROC)load("glGetTexEnvfv"); + glad_glGetTexEnviv = (PFNGLGETTEXENVIVPROC)load("glGetTexEnviv"); + glad_glGetTexGendv = (PFNGLGETTEXGENDVPROC)load("glGetTexGendv"); + glad_glGetTexGenfv = (PFNGLGETTEXGENFVPROC)load("glGetTexGenfv"); + glad_glGetTexGeniv = (PFNGLGETTEXGENIVPROC)load("glGetTexGeniv"); + glad_glIsList = (PFNGLISLISTPROC)load("glIsList"); + glad_glFrustum = (PFNGLFRUSTUMPROC)load("glFrustum"); + glad_glLoadIdentity = (PFNGLLOADIDENTITYPROC)load("glLoadIdentity"); + glad_glLoadMatrixf = (PFNGLLOADMATRIXFPROC)load("glLoadMatrixf"); + glad_glLoadMatrixd = (PFNGLLOADMATRIXDPROC)load("glLoadMatrixd"); + glad_glMatrixMode = (PFNGLMATRIXMODEPROC)load("glMatrixMode"); + glad_glMultMatrixf = (PFNGLMULTMATRIXFPROC)load("glMultMatrixf"); + glad_glMultMatrixd = (PFNGLMULTMATRIXDPROC)load("glMultMatrixd"); + glad_glOrtho = (PFNGLORTHOPROC)load("glOrtho"); + glad_glPopMatrix = (PFNGLPOPMATRIXPROC)load("glPopMatrix"); + glad_glPushMatrix = (PFNGLPUSHMATRIXPROC)load("glPushMatrix"); + glad_glRotated = (PFNGLROTATEDPROC)load("glRotated"); + glad_glRotatef = (PFNGLROTATEFPROC)load("glRotatef"); + glad_glScaled = (PFNGLSCALEDPROC)load("glScaled"); + glad_glScalef = (PFNGLSCALEFPROC)load("glScalef"); + glad_glTranslated = (PFNGLTRANSLATEDPROC)load("glTranslated"); + glad_glTranslatef = (PFNGLTRANSLATEFPROC)load("glTranslatef"); +} +static void load_GL_VERSION_1_1(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_1) return; + glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays"); + glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements"); + glad_glGetPointerv = (PFNGLGETPOINTERVPROC)load("glGetPointerv"); + glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset"); + glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC)load("glCopyTexImage1D"); + glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D"); + glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC)load("glCopyTexSubImage1D"); + glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load("glCopyTexSubImage2D"); + glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC)load("glTexSubImage1D"); + glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load("glTexSubImage2D"); + glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load("glBindTexture"); + glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures"); + glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures"); + glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture"); + glad_glArrayElement = (PFNGLARRAYELEMENTPROC)load("glArrayElement"); + glad_glColorPointer = (PFNGLCOLORPOINTERPROC)load("glColorPointer"); + glad_glDisableClientState = (PFNGLDISABLECLIENTSTATEPROC)load("glDisableClientState"); + glad_glEdgeFlagPointer = (PFNGLEDGEFLAGPOINTERPROC)load("glEdgeFlagPointer"); + glad_glEnableClientState = (PFNGLENABLECLIENTSTATEPROC)load("glEnableClientState"); + glad_glIndexPointer = (PFNGLINDEXPOINTERPROC)load("glIndexPointer"); + glad_glInterleavedArrays = (PFNGLINTERLEAVEDARRAYSPROC)load("glInterleavedArrays"); + glad_glNormalPointer = (PFNGLNORMALPOINTERPROC)load("glNormalPointer"); + glad_glTexCoordPointer = (PFNGLTEXCOORDPOINTERPROC)load("glTexCoordPointer"); + glad_glVertexPointer = (PFNGLVERTEXPOINTERPROC)load("glVertexPointer"); + glad_glAreTexturesResident = (PFNGLARETEXTURESRESIDENTPROC)load("glAreTexturesResident"); + glad_glPrioritizeTextures = (PFNGLPRIORITIZETEXTURESPROC)load("glPrioritizeTextures"); + glad_glIndexub = (PFNGLINDEXUBPROC)load("glIndexub"); + glad_glIndexubv = (PFNGLINDEXUBVPROC)load("glIndexubv"); + glad_glPopClientAttrib = (PFNGLPOPCLIENTATTRIBPROC)load("glPopClientAttrib"); + glad_glPushClientAttrib = (PFNGLPUSHCLIENTATTRIBPROC)load("glPushClientAttrib"); +} +static void load_GL_VERSION_1_2(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_2) return; + glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)load("glDrawRangeElements"); + glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC)load("glTexImage3D"); + glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)load("glTexSubImage3D"); + glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)load("glCopyTexSubImage3D"); +} +static void load_GL_VERSION_1_3(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_3) return; + glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load("glActiveTexture"); + glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load("glSampleCoverage"); + glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)load("glCompressedTexImage3D"); + glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load("glCompressedTexImage2D"); + glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC)load("glCompressedTexImage1D"); + glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)load("glCompressedTexSubImage3D"); + glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D"); + glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)load("glCompressedTexSubImage1D"); + glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)load("glGetCompressedTexImage"); + glad_glClientActiveTexture = (PFNGLCLIENTACTIVETEXTUREPROC)load("glClientActiveTexture"); + glad_glMultiTexCoord1d = (PFNGLMULTITEXCOORD1DPROC)load("glMultiTexCoord1d"); + glad_glMultiTexCoord1dv = (PFNGLMULTITEXCOORD1DVPROC)load("glMultiTexCoord1dv"); + glad_glMultiTexCoord1f = (PFNGLMULTITEXCOORD1FPROC)load("glMultiTexCoord1f"); + glad_glMultiTexCoord1fv = (PFNGLMULTITEXCOORD1FVPROC)load("glMultiTexCoord1fv"); + glad_glMultiTexCoord1i = (PFNGLMULTITEXCOORD1IPROC)load("glMultiTexCoord1i"); + glad_glMultiTexCoord1iv = (PFNGLMULTITEXCOORD1IVPROC)load("glMultiTexCoord1iv"); + glad_glMultiTexCoord1s = (PFNGLMULTITEXCOORD1SPROC)load("glMultiTexCoord1s"); + glad_glMultiTexCoord1sv = (PFNGLMULTITEXCOORD1SVPROC)load("glMultiTexCoord1sv"); + glad_glMultiTexCoord2d = (PFNGLMULTITEXCOORD2DPROC)load("glMultiTexCoord2d"); + glad_glMultiTexCoord2dv = (PFNGLMULTITEXCOORD2DVPROC)load("glMultiTexCoord2dv"); + glad_glMultiTexCoord2f = (PFNGLMULTITEXCOORD2FPROC)load("glMultiTexCoord2f"); + glad_glMultiTexCoord2fv = (PFNGLMULTITEXCOORD2FVPROC)load("glMultiTexCoord2fv"); + glad_glMultiTexCoord2i = (PFNGLMULTITEXCOORD2IPROC)load("glMultiTexCoord2i"); + glad_glMultiTexCoord2iv = (PFNGLMULTITEXCOORD2IVPROC)load("glMultiTexCoord2iv"); + glad_glMultiTexCoord2s = (PFNGLMULTITEXCOORD2SPROC)load("glMultiTexCoord2s"); + glad_glMultiTexCoord2sv = (PFNGLMULTITEXCOORD2SVPROC)load("glMultiTexCoord2sv"); + glad_glMultiTexCoord3d = (PFNGLMULTITEXCOORD3DPROC)load("glMultiTexCoord3d"); + glad_glMultiTexCoord3dv = (PFNGLMULTITEXCOORD3DVPROC)load("glMultiTexCoord3dv"); + glad_glMultiTexCoord3f = (PFNGLMULTITEXCOORD3FPROC)load("glMultiTexCoord3f"); + glad_glMultiTexCoord3fv = (PFNGLMULTITEXCOORD3FVPROC)load("glMultiTexCoord3fv"); + glad_glMultiTexCoord3i = (PFNGLMULTITEXCOORD3IPROC)load("glMultiTexCoord3i"); + glad_glMultiTexCoord3iv = (PFNGLMULTITEXCOORD3IVPROC)load("glMultiTexCoord3iv"); + glad_glMultiTexCoord3s = (PFNGLMULTITEXCOORD3SPROC)load("glMultiTexCoord3s"); + glad_glMultiTexCoord3sv = (PFNGLMULTITEXCOORD3SVPROC)load("glMultiTexCoord3sv"); + glad_glMultiTexCoord4d = (PFNGLMULTITEXCOORD4DPROC)load("glMultiTexCoord4d"); + glad_glMultiTexCoord4dv = (PFNGLMULTITEXCOORD4DVPROC)load("glMultiTexCoord4dv"); + glad_glMultiTexCoord4f = (PFNGLMULTITEXCOORD4FPROC)load("glMultiTexCoord4f"); + glad_glMultiTexCoord4fv = (PFNGLMULTITEXCOORD4FVPROC)load("glMultiTexCoord4fv"); + glad_glMultiTexCoord4i = (PFNGLMULTITEXCOORD4IPROC)load("glMultiTexCoord4i"); + glad_glMultiTexCoord4iv = (PFNGLMULTITEXCOORD4IVPROC)load("glMultiTexCoord4iv"); + glad_glMultiTexCoord4s = (PFNGLMULTITEXCOORD4SPROC)load("glMultiTexCoord4s"); + glad_glMultiTexCoord4sv = (PFNGLMULTITEXCOORD4SVPROC)load("glMultiTexCoord4sv"); + glad_glLoadTransposeMatrixf = (PFNGLLOADTRANSPOSEMATRIXFPROC)load("glLoadTransposeMatrixf"); + glad_glLoadTransposeMatrixd = (PFNGLLOADTRANSPOSEMATRIXDPROC)load("glLoadTransposeMatrixd"); + glad_glMultTransposeMatrixf = (PFNGLMULTTRANSPOSEMATRIXFPROC)load("glMultTransposeMatrixf"); + glad_glMultTransposeMatrixd = (PFNGLMULTTRANSPOSEMATRIXDPROC)load("glMultTransposeMatrixd"); +} +static void load_GL_VERSION_1_4(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_4) return; + glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)load("glBlendFuncSeparate"); + glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC)load("glMultiDrawArrays"); + glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC)load("glMultiDrawElements"); + glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC)load("glPointParameterf"); + glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)load("glPointParameterfv"); + glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC)load("glPointParameteri"); + glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)load("glPointParameteriv"); + glad_glFogCoordf = (PFNGLFOGCOORDFPROC)load("glFogCoordf"); + glad_glFogCoordfv = (PFNGLFOGCOORDFVPROC)load("glFogCoordfv"); + glad_glFogCoordd = (PFNGLFOGCOORDDPROC)load("glFogCoordd"); + glad_glFogCoorddv = (PFNGLFOGCOORDDVPROC)load("glFogCoorddv"); + glad_glFogCoordPointer = (PFNGLFOGCOORDPOINTERPROC)load("glFogCoordPointer"); + glad_glSecondaryColor3b = (PFNGLSECONDARYCOLOR3BPROC)load("glSecondaryColor3b"); + glad_glSecondaryColor3bv = (PFNGLSECONDARYCOLOR3BVPROC)load("glSecondaryColor3bv"); + glad_glSecondaryColor3d = (PFNGLSECONDARYCOLOR3DPROC)load("glSecondaryColor3d"); + glad_glSecondaryColor3dv = (PFNGLSECONDARYCOLOR3DVPROC)load("glSecondaryColor3dv"); + glad_glSecondaryColor3f = (PFNGLSECONDARYCOLOR3FPROC)load("glSecondaryColor3f"); + glad_glSecondaryColor3fv = (PFNGLSECONDARYCOLOR3FVPROC)load("glSecondaryColor3fv"); + glad_glSecondaryColor3i = (PFNGLSECONDARYCOLOR3IPROC)load("glSecondaryColor3i"); + glad_glSecondaryColor3iv = (PFNGLSECONDARYCOLOR3IVPROC)load("glSecondaryColor3iv"); + glad_glSecondaryColor3s = (PFNGLSECONDARYCOLOR3SPROC)load("glSecondaryColor3s"); + glad_glSecondaryColor3sv = (PFNGLSECONDARYCOLOR3SVPROC)load("glSecondaryColor3sv"); + glad_glSecondaryColor3ub = (PFNGLSECONDARYCOLOR3UBPROC)load("glSecondaryColor3ub"); + glad_glSecondaryColor3ubv = (PFNGLSECONDARYCOLOR3UBVPROC)load("glSecondaryColor3ubv"); + glad_glSecondaryColor3ui = (PFNGLSECONDARYCOLOR3UIPROC)load("glSecondaryColor3ui"); + glad_glSecondaryColor3uiv = (PFNGLSECONDARYCOLOR3UIVPROC)load("glSecondaryColor3uiv"); + glad_glSecondaryColor3us = (PFNGLSECONDARYCOLOR3USPROC)load("glSecondaryColor3us"); + glad_glSecondaryColor3usv = (PFNGLSECONDARYCOLOR3USVPROC)load("glSecondaryColor3usv"); + glad_glSecondaryColorPointer = (PFNGLSECONDARYCOLORPOINTERPROC)load("glSecondaryColorPointer"); + glad_glWindowPos2d = (PFNGLWINDOWPOS2DPROC)load("glWindowPos2d"); + glad_glWindowPos2dv = (PFNGLWINDOWPOS2DVPROC)load("glWindowPos2dv"); + glad_glWindowPos2f = (PFNGLWINDOWPOS2FPROC)load("glWindowPos2f"); + glad_glWindowPos2fv = (PFNGLWINDOWPOS2FVPROC)load("glWindowPos2fv"); + glad_glWindowPos2i = (PFNGLWINDOWPOS2IPROC)load("glWindowPos2i"); + glad_glWindowPos2iv = (PFNGLWINDOWPOS2IVPROC)load("glWindowPos2iv"); + glad_glWindowPos2s = (PFNGLWINDOWPOS2SPROC)load("glWindowPos2s"); + glad_glWindowPos2sv = (PFNGLWINDOWPOS2SVPROC)load("glWindowPos2sv"); + glad_glWindowPos3d = (PFNGLWINDOWPOS3DPROC)load("glWindowPos3d"); + glad_glWindowPos3dv = (PFNGLWINDOWPOS3DVPROC)load("glWindowPos3dv"); + glad_glWindowPos3f = (PFNGLWINDOWPOS3FPROC)load("glWindowPos3f"); + glad_glWindowPos3fv = (PFNGLWINDOWPOS3FVPROC)load("glWindowPos3fv"); + glad_glWindowPos3i = (PFNGLWINDOWPOS3IPROC)load("glWindowPos3i"); + glad_glWindowPos3iv = (PFNGLWINDOWPOS3IVPROC)load("glWindowPos3iv"); + glad_glWindowPos3s = (PFNGLWINDOWPOS3SPROC)load("glWindowPos3s"); + glad_glWindowPos3sv = (PFNGLWINDOWPOS3SVPROC)load("glWindowPos3sv"); + glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor"); + glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation"); +} +static void load_GL_VERSION_1_5(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_5) return; + glad_glGenQueries = (PFNGLGENQUERIESPROC)load("glGenQueries"); + glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC)load("glDeleteQueries"); + glad_glIsQuery = (PFNGLISQUERYPROC)load("glIsQuery"); + glad_glBeginQuery = (PFNGLBEGINQUERYPROC)load("glBeginQuery"); + glad_glEndQuery = (PFNGLENDQUERYPROC)load("glEndQuery"); + glad_glGetQueryiv = (PFNGLGETQUERYIVPROC)load("glGetQueryiv"); + glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC)load("glGetQueryObjectiv"); + glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)load("glGetQueryObjectuiv"); + glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load("glBindBuffer"); + glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load("glDeleteBuffers"); + glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load("glGenBuffers"); + glad_glIsBuffer = (PFNGLISBUFFERPROC)load("glIsBuffer"); + glad_glBufferData = (PFNGLBUFFERDATAPROC)load("glBufferData"); + glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load("glBufferSubData"); + glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)load("glGetBufferSubData"); + glad_glMapBuffer = (PFNGLMAPBUFFERPROC)load("glMapBuffer"); + glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)load("glUnmapBuffer"); + glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load("glGetBufferParameteriv"); + glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)load("glGetBufferPointerv"); +} +static void load_GL_VERSION_2_0(GLADloadproc load) { + if(!GLAD_GL_VERSION_2_0) return; + glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)load("glBlendEquationSeparate"); + glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)load("glDrawBuffers"); + glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)load("glStencilOpSeparate"); + glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)load("glStencilFuncSeparate"); + glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)load("glStencilMaskSeparate"); + glad_glAttachShader = (PFNGLATTACHSHADERPROC)load("glAttachShader"); + glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)load("glBindAttribLocation"); + glad_glCompileShader = (PFNGLCOMPILESHADERPROC)load("glCompileShader"); + glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC)load("glCreateProgram"); + glad_glCreateShader = (PFNGLCREATESHADERPROC)load("glCreateShader"); + glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC)load("glDeleteProgram"); + glad_glDeleteShader = (PFNGLDELETESHADERPROC)load("glDeleteShader"); + glad_glDetachShader = (PFNGLDETACHSHADERPROC)load("glDetachShader"); + glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)load("glDisableVertexAttribArray"); + glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)load("glEnableVertexAttribArray"); + glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)load("glGetActiveAttrib"); + glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)load("glGetActiveUniform"); + glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)load("glGetAttachedShaders"); + glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)load("glGetAttribLocation"); + glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC)load("glGetProgramiv"); + glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)load("glGetProgramInfoLog"); + glad_glGetShaderiv = (PFNGLGETSHADERIVPROC)load("glGetShaderiv"); + glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)load("glGetShaderInfoLog"); + glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)load("glGetShaderSource"); + glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)load("glGetUniformLocation"); + glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC)load("glGetUniformfv"); + glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC)load("glGetUniformiv"); + glad_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC)load("glGetVertexAttribdv"); + glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)load("glGetVertexAttribfv"); + glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)load("glGetVertexAttribiv"); + glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)load("glGetVertexAttribPointerv"); + glad_glIsProgram = (PFNGLISPROGRAMPROC)load("glIsProgram"); + glad_glIsShader = (PFNGLISSHADERPROC)load("glIsShader"); + glad_glLinkProgram = (PFNGLLINKPROGRAMPROC)load("glLinkProgram"); + glad_glShaderSource = (PFNGLSHADERSOURCEPROC)load("glShaderSource"); + glad_glUseProgram = (PFNGLUSEPROGRAMPROC)load("glUseProgram"); + glad_glUniform1f = (PFNGLUNIFORM1FPROC)load("glUniform1f"); + glad_glUniform2f = (PFNGLUNIFORM2FPROC)load("glUniform2f"); + glad_glUniform3f = (PFNGLUNIFORM3FPROC)load("glUniform3f"); + glad_glUniform4f = (PFNGLUNIFORM4FPROC)load("glUniform4f"); + glad_glUniform1i = (PFNGLUNIFORM1IPROC)load("glUniform1i"); + glad_glUniform2i = (PFNGLUNIFORM2IPROC)load("glUniform2i"); + glad_glUniform3i = (PFNGLUNIFORM3IPROC)load("glUniform3i"); + glad_glUniform4i = (PFNGLUNIFORM4IPROC)load("glUniform4i"); + glad_glUniform1fv = (PFNGLUNIFORM1FVPROC)load("glUniform1fv"); + glad_glUniform2fv = (PFNGLUNIFORM2FVPROC)load("glUniform2fv"); + glad_glUniform3fv = (PFNGLUNIFORM3FVPROC)load("glUniform3fv"); + glad_glUniform4fv = (PFNGLUNIFORM4FVPROC)load("glUniform4fv"); + glad_glUniform1iv = (PFNGLUNIFORM1IVPROC)load("glUniform1iv"); + glad_glUniform2iv = (PFNGLUNIFORM2IVPROC)load("glUniform2iv"); + glad_glUniform3iv = (PFNGLUNIFORM3IVPROC)load("glUniform3iv"); + glad_glUniform4iv = (PFNGLUNIFORM4IVPROC)load("glUniform4iv"); + glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)load("glUniformMatrix2fv"); + glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)load("glUniformMatrix3fv"); + glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)load("glUniformMatrix4fv"); + glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)load("glValidateProgram"); + glad_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC)load("glVertexAttrib1d"); + glad_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC)load("glVertexAttrib1dv"); + glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)load("glVertexAttrib1f"); + glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)load("glVertexAttrib1fv"); + glad_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC)load("glVertexAttrib1s"); + glad_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC)load("glVertexAttrib1sv"); + glad_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC)load("glVertexAttrib2d"); + glad_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC)load("glVertexAttrib2dv"); + glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)load("glVertexAttrib2f"); + glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)load("glVertexAttrib2fv"); + glad_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC)load("glVertexAttrib2s"); + glad_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC)load("glVertexAttrib2sv"); + glad_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC)load("glVertexAttrib3d"); + glad_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC)load("glVertexAttrib3dv"); + glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)load("glVertexAttrib3f"); + glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)load("glVertexAttrib3fv"); + glad_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC)load("glVertexAttrib3s"); + glad_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC)load("glVertexAttrib3sv"); + glad_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC)load("glVertexAttrib4Nbv"); + glad_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC)load("glVertexAttrib4Niv"); + glad_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC)load("glVertexAttrib4Nsv"); + glad_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC)load("glVertexAttrib4Nub"); + glad_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC)load("glVertexAttrib4Nubv"); + glad_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC)load("glVertexAttrib4Nuiv"); + glad_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC)load("glVertexAttrib4Nusv"); + glad_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC)load("glVertexAttrib4bv"); + glad_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC)load("glVertexAttrib4d"); + glad_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC)load("glVertexAttrib4dv"); + glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)load("glVertexAttrib4f"); + glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)load("glVertexAttrib4fv"); + glad_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC)load("glVertexAttrib4iv"); + glad_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC)load("glVertexAttrib4s"); + glad_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC)load("glVertexAttrib4sv"); + glad_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC)load("glVertexAttrib4ubv"); + glad_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)load("glVertexAttrib4uiv"); + glad_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)load("glVertexAttrib4usv"); + glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)load("glVertexAttribPointer"); +} +static void load_GL_VERSION_2_1(GLADloadproc load) { + if(!GLAD_GL_VERSION_2_1) return; + glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)load("glUniformMatrix2x3fv"); + glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)load("glUniformMatrix3x2fv"); + glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)load("glUniformMatrix2x4fv"); + glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)load("glUniformMatrix4x2fv"); + glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)load("glUniformMatrix3x4fv"); + glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)load("glUniformMatrix4x3fv"); +} +static void load_GL_VERSION_3_0(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_0) return; + glad_glColorMaski = (PFNGLCOLORMASKIPROC)load("glColorMaski"); + glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)load("glGetBooleani_v"); + glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); + glad_glEnablei = (PFNGLENABLEIPROC)load("glEnablei"); + glad_glDisablei = (PFNGLDISABLEIPROC)load("glDisablei"); + glad_glIsEnabledi = (PFNGLISENABLEDIPROC)load("glIsEnabledi"); + glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)load("glBeginTransformFeedback"); + glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)load("glEndTransformFeedback"); + glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); + glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); + glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)load("glTransformFeedbackVaryings"); + glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)load("glGetTransformFeedbackVarying"); + glad_glClampColor = (PFNGLCLAMPCOLORPROC)load("glClampColor"); + glad_glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)load("glBeginConditionalRender"); + glad_glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC)load("glEndConditionalRender"); + glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)load("glVertexAttribIPointer"); + glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)load("glGetVertexAttribIiv"); + glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)load("glGetVertexAttribIuiv"); + glad_glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC)load("glVertexAttribI1i"); + glad_glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC)load("glVertexAttribI2i"); + glad_glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC)load("glVertexAttribI3i"); + glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)load("glVertexAttribI4i"); + glad_glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC)load("glVertexAttribI1ui"); + glad_glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC)load("glVertexAttribI2ui"); + glad_glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC)load("glVertexAttribI3ui"); + glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)load("glVertexAttribI4ui"); + glad_glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC)load("glVertexAttribI1iv"); + glad_glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC)load("glVertexAttribI2iv"); + glad_glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC)load("glVertexAttribI3iv"); + glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)load("glVertexAttribI4iv"); + glad_glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC)load("glVertexAttribI1uiv"); + glad_glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC)load("glVertexAttribI2uiv"); + glad_glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC)load("glVertexAttribI3uiv"); + glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)load("glVertexAttribI4uiv"); + glad_glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC)load("glVertexAttribI4bv"); + glad_glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC)load("glVertexAttribI4sv"); + glad_glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC)load("glVertexAttribI4ubv"); + glad_glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC)load("glVertexAttribI4usv"); + glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)load("glGetUniformuiv"); + glad_glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)load("glBindFragDataLocation"); + glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)load("glGetFragDataLocation"); + glad_glUniform1ui = (PFNGLUNIFORM1UIPROC)load("glUniform1ui"); + glad_glUniform2ui = (PFNGLUNIFORM2UIPROC)load("glUniform2ui"); + glad_glUniform3ui = (PFNGLUNIFORM3UIPROC)load("glUniform3ui"); + glad_glUniform4ui = (PFNGLUNIFORM4UIPROC)load("glUniform4ui"); + glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)load("glUniform1uiv"); + glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)load("glUniform2uiv"); + glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)load("glUniform3uiv"); + glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)load("glUniform4uiv"); + glad_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC)load("glTexParameterIiv"); + glad_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC)load("glTexParameterIuiv"); + glad_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC)load("glGetTexParameterIiv"); + glad_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC)load("glGetTexParameterIuiv"); + glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)load("glClearBufferiv"); + glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)load("glClearBufferuiv"); + glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)load("glClearBufferfv"); + glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)load("glClearBufferfi"); + glad_glGetStringi = (PFNGLGETSTRINGIPROC)load("glGetStringi"); + glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer"); + glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer"); + glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers"); + glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers"); + glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage"); + glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv"); + glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer"); + glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer"); + glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers"); + glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers"); + glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus"); + glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)load("glFramebufferTexture1D"); + glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D"); + glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)load("glFramebufferTexture3D"); + glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer"); + glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv"); + glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap"); + glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer"); + glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample"); + glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer"); + glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load("glMapBufferRange"); + glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load("glFlushMappedBufferRange"); + glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray"); + glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays"); + glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays"); + glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray"); +} +static void load_GL_VERSION_3_1(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_1) return; + glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)load("glDrawArraysInstanced"); + glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)load("glDrawElementsInstanced"); + glad_glTexBuffer = (PFNGLTEXBUFFERPROC)load("glTexBuffer"); + glad_glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)load("glPrimitiveRestartIndex"); + glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load("glCopyBufferSubData"); + glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices"); + glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv"); + glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)load("glGetActiveUniformName"); + glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex"); + glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv"); + glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName"); + glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding"); + glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); + glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); + glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); +} +static void load_GL_VERSION_3_2(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_2) return; + glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)load("glDrawElementsBaseVertex"); + glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)load("glDrawRangeElementsBaseVertex"); + glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)load("glDrawElementsInstancedBaseVertex"); + glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)load("glMultiDrawElementsBaseVertex"); + glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)load("glProvokingVertex"); + glad_glFenceSync = (PFNGLFENCESYNCPROC)load("glFenceSync"); + glad_glIsSync = (PFNGLISSYNCPROC)load("glIsSync"); + glad_glDeleteSync = (PFNGLDELETESYNCPROC)load("glDeleteSync"); + glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load("glClientWaitSync"); + glad_glWaitSync = (PFNGLWAITSYNCPROC)load("glWaitSync"); + glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load("glGetInteger64v"); + glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load("glGetSynciv"); + glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)load("glGetInteger64i_v"); + glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)load("glGetBufferParameteri64v"); + glad_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)load("glFramebufferTexture"); + glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)load("glTexImage2DMultisample"); + glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)load("glTexImage3DMultisample"); + glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv"); + glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski"); +} +static void load_GL_VERSION_3_3(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_3) return; + glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)load("glBindFragDataLocationIndexed"); + glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)load("glGetFragDataIndex"); + glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load("glGenSamplers"); + glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load("glDeleteSamplers"); + glad_glIsSampler = (PFNGLISSAMPLERPROC)load("glIsSampler"); + glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load("glBindSampler"); + glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load("glSamplerParameteri"); + glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load("glSamplerParameteriv"); + glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load("glSamplerParameterf"); + glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load("glSamplerParameterfv"); + glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)load("glSamplerParameterIiv"); + glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)load("glSamplerParameterIuiv"); + glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load("glGetSamplerParameteriv"); + glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)load("glGetSamplerParameterIiv"); + glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load("glGetSamplerParameterfv"); + glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)load("glGetSamplerParameterIuiv"); + glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC)load("glQueryCounter"); + glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)load("glGetQueryObjecti64v"); + glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)load("glGetQueryObjectui64v"); + glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)load("glVertexAttribDivisor"); + glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)load("glVertexAttribP1ui"); + glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)load("glVertexAttribP1uiv"); + glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)load("glVertexAttribP2ui"); + glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)load("glVertexAttribP2uiv"); + glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)load("glVertexAttribP3ui"); + glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)load("glVertexAttribP3uiv"); + glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)load("glVertexAttribP4ui"); + glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)load("glVertexAttribP4uiv"); + glad_glVertexP2ui = (PFNGLVERTEXP2UIPROC)load("glVertexP2ui"); + glad_glVertexP2uiv = (PFNGLVERTEXP2UIVPROC)load("glVertexP2uiv"); + glad_glVertexP3ui = (PFNGLVERTEXP3UIPROC)load("glVertexP3ui"); + glad_glVertexP3uiv = (PFNGLVERTEXP3UIVPROC)load("glVertexP3uiv"); + glad_glVertexP4ui = (PFNGLVERTEXP4UIPROC)load("glVertexP4ui"); + glad_glVertexP4uiv = (PFNGLVERTEXP4UIVPROC)load("glVertexP4uiv"); + glad_glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC)load("glTexCoordP1ui"); + glad_glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC)load("glTexCoordP1uiv"); + glad_glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC)load("glTexCoordP2ui"); + glad_glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC)load("glTexCoordP2uiv"); + glad_glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC)load("glTexCoordP3ui"); + glad_glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC)load("glTexCoordP3uiv"); + glad_glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC)load("glTexCoordP4ui"); + glad_glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC)load("glTexCoordP4uiv"); + glad_glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC)load("glMultiTexCoordP1ui"); + glad_glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC)load("glMultiTexCoordP1uiv"); + glad_glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC)load("glMultiTexCoordP2ui"); + glad_glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC)load("glMultiTexCoordP2uiv"); + glad_glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC)load("glMultiTexCoordP3ui"); + glad_glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC)load("glMultiTexCoordP3uiv"); + glad_glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC)load("glMultiTexCoordP4ui"); + glad_glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC)load("glMultiTexCoordP4uiv"); + glad_glNormalP3ui = (PFNGLNORMALP3UIPROC)load("glNormalP3ui"); + glad_glNormalP3uiv = (PFNGLNORMALP3UIVPROC)load("glNormalP3uiv"); + glad_glColorP3ui = (PFNGLCOLORP3UIPROC)load("glColorP3ui"); + glad_glColorP3uiv = (PFNGLCOLORP3UIVPROC)load("glColorP3uiv"); + glad_glColorP4ui = (PFNGLCOLORP4UIPROC)load("glColorP4ui"); + glad_glColorP4uiv = (PFNGLCOLORP4UIVPROC)load("glColorP4uiv"); + glad_glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC)load("glSecondaryColorP3ui"); + glad_glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC)load("glSecondaryColorP3uiv"); +} +static void load_GL_ARB_multisample(GLADloadproc load) { + if(!GLAD_GL_ARB_multisample) return; + glad_glSampleCoverageARB = (PFNGLSAMPLECOVERAGEARBPROC)load("glSampleCoverageARB"); +} +static int find_extensionsGL(void) { + if (!get_exts()) return 0; + GLAD_GL_ARB_framebuffer_sRGB = has_ext("GL_ARB_framebuffer_sRGB"); + GLAD_GL_ARB_multisample = has_ext("GL_ARB_multisample"); + GLAD_GL_EXT_framebuffer_sRGB = has_ext("GL_EXT_framebuffer_sRGB"); + free_exts(); + return 1; +} + +static void find_coreGL(void) { + + /* Thank you @elmindreda + * https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176 + * https://github.com/glfw/glfw/blob/master/src/context.c#L36 + */ + int i, major, minor; + + const char* version; + const char* prefixes[] = { + "OpenGL ES-CM ", + "OpenGL ES-CL ", + "OpenGL ES ", + NULL + }; + + version = (const char*) glGetString(GL_VERSION); + if (!version) return; + + for (i = 0; prefixes[i]; i++) { + const size_t length = strlen(prefixes[i]); + if (strncmp(version, prefixes[i], length) == 0) { + version += length; + break; + } + } + + /* PR #18 */ +#ifdef _MSC_VER + sscanf_s(version, "%d.%d", &major, &minor); +#else + sscanf(version, "%d.%d", &major, &minor); +#endif + + GLVersion.major = major; GLVersion.minor = minor; + max_loaded_major = major; max_loaded_minor = minor; + GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1; + GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1; + GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1; + GLAD_GL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1; + GLAD_GL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1; + GLAD_GL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1; + GLAD_GL_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2; + GLAD_GL_VERSION_2_1 = (major == 2 && minor >= 1) || major > 2; + GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3; + GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3; + GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3; + GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3; + if (GLVersion.major > 3 || (GLVersion.major >= 3 && GLVersion.minor >= 3)) { + max_loaded_major = 3; + max_loaded_minor = 3; + } +} + +int gladLoadGLLoader(GLADloadproc load) { + GLVersion.major = 0; GLVersion.minor = 0; + glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); + if(glGetString == NULL) return 0; + if(glGetString(GL_VERSION) == NULL) return 0; + find_coreGL(); + load_GL_VERSION_1_0(load); + load_GL_VERSION_1_1(load); + load_GL_VERSION_1_2(load); + load_GL_VERSION_1_3(load); + load_GL_VERSION_1_4(load); + load_GL_VERSION_1_5(load); + load_GL_VERSION_2_0(load); + load_GL_VERSION_2_1(load); + load_GL_VERSION_3_0(load); + load_GL_VERSION_3_1(load); + load_GL_VERSION_3_2(load); + load_GL_VERSION_3_3(load); + + if (!find_extensionsGL()) return 0; + load_GL_ARB_multisample(load); + return GLVersion.major != 0 || GLVersion.minor != 0; +} + +#endif // __EMSCRIPTEN__ +#endif // OPENGL diff --git a/rebound/source/src/glad.h b/rebound/source/src/glad.h new file mode 100644 index 0000000000000000000000000000000000000000..313a194d2bb6d822ed0e7210ea93bbb4058f230b --- /dev/null +++ b/rebound/source/src/glad.h @@ -0,0 +1,3670 @@ +/* + + OpenGL loader generated by glad 0.1.12a0 on Tue Nov 29 20:33:23 2016. + + Language/Generator: C/C++ +Specification: gl +APIs: gl=3.3 +Profile: compatibility +Extensions: +GL_ARB_framebuffer_sRGB, +GL_ARB_multisample, +GL_EXT_framebuffer_sRGB +Loader: False +Local files: False +Omit khrplatform: False + +Commandline: +--profile="compatibility" --api="gl=3.3" --generator="c" --spec="gl" --no-loader --extensions="GL_ARB_framebuffer_sRGB,GL_ARB_multisample,GL_EXT_framebuffer_sRGB" +Online: +http://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&api=gl%3D3.3&extensions=GL_ARB_framebuffer_sRGB&extensions=GL_ARB_multisample&extensions=GL_EXT_framebuffer_sRGB + */ + + +#ifdef OPENGL +#ifndef __glad_h_ +#define __glad_h_ + +#ifdef __gl_h_ +#error OpenGL header already included, remove this include, glad already provides it +#endif +#define __gl_h_ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN 1 +#endif +#include +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + struct gladGLversionStruct { + int major; + int minor; + }; + + typedef void* (* GLADloadproc)(const char *name); + +#ifndef GLAPI +# if defined(GLAD_GLAPI_EXPORT) +# if defined(WIN32) || defined(__CYGWIN__) +# if defined(GLAD_GLAPI_EXPORT_BUILD) +# if defined(__GNUC__) +# define GLAPI __attribute__ ((dllexport)) extern +# else +# define GLAPI __declspec(dllexport) extern +# endif +# else +# if defined(__GNUC__) +# define GLAPI __attribute__ ((dllimport)) extern +# else +# define GLAPI __declspec(dllimport) extern +# endif +# endif +# elif defined(__GNUC__) && defined(GLAD_GLAPI_EXPORT_BUILD) +# define GLAPI __attribute__ ((visibility ("default"))) extern +# else +# define GLAPI extern +# endif +# else +# define GLAPI extern +# endif +#endif + + GLAPI struct gladGLversionStruct GLVersion; + GLAPI int gladLoadGLLoader(GLADloadproc); + +#include +#include "khrplatform.h" +#ifndef GLEXT_64_TYPES_DEFINED + /* This code block is duplicated in glxext.h, so must be protected */ +#define GLEXT_64_TYPES_DEFINED + /* Define int32_t, int64_t, and uint64_t types for UST/MSC */ + /* (as used in the GL_EXT_timer_query extension). */ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include +#elif defined(__sun__) || defined(__digital__) +#include +#if defined(__STDC__) +#if defined(__arch64__) || defined(_LP64) + typedef long int int64_t; + typedef unsigned long int uint64_t; +#else + typedef long long int int64_t; + typedef unsigned long long int uint64_t; +#endif /* __arch64__ */ +#endif /* __STDC__ */ +#elif defined( __VMS ) || defined(__sgi) +#include +#elif defined(__SCO__) || defined(__USLC__) +#include +#elif defined(__UNIXOS2__) || defined(__SOL64__) + typedef long int int32_t; + typedef long long int int64_t; + typedef unsigned long long int uint64_t; +#elif defined(_WIN32) && defined(__GNUC__) +#include +#elif defined(_WIN32) + typedef __int32 int32_t; + typedef __int64 int64_t; + typedef unsigned __int64 uint64_t; +#else + /* Fallback if nothing above works */ +#include +#endif +#endif + typedef unsigned int GLenum; + typedef unsigned char GLboolean; + typedef unsigned int GLbitfield; + typedef void GLvoid; + typedef signed char GLbyte; + typedef short GLshort; + typedef int GLint; + typedef int GLclampx; + typedef unsigned char GLubyte; + typedef unsigned short GLushort; + typedef unsigned int GLuint; + typedef int GLsizei; + typedef float GLfloat; + typedef float GLclampf; + typedef double GLdouble; + typedef double GLclampd; + typedef void *GLeglImageOES; + typedef char GLchar; + typedef char GLcharARB; +#ifdef __APPLE__ + typedef void *GLhandleARB; +#else + typedef unsigned int GLhandleARB; +#endif + typedef unsigned short GLhalfARB; + typedef unsigned short GLhalf; + typedef GLint GLfixed; + typedef ptrdiff_t GLintptr; + typedef ptrdiff_t GLsizeiptr; + typedef int64_t GLint64; + typedef uint64_t GLuint64; + typedef ptrdiff_t GLintptrARB; + typedef ptrdiff_t GLsizeiptrARB; + typedef int64_t GLint64EXT; + typedef uint64_t GLuint64EXT; + typedef struct __GLsync *GLsync; + struct _cl_context; + struct _cl_event; + typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); + typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); + typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); + typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); + typedef unsigned short GLhalfNV; + typedef GLintptr GLvdpauSurfaceNV; +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_FALSE 0 +#define GL_TRUE 1 +#define GL_POINTS 0x0000 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_STRIP 0x0003 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +#define GL_QUADS 0x0007 +#define GL_NEVER 0x0200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 +#define GL_ZERO 0 +#define GL_ONE 1 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 +#define GL_NONE 0 +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_NO_ERROR 0 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_OUT_OF_MEMORY 0x0505 +#define GL_CW 0x0900 +#define GL_CCW 0x0901 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_RANGE 0x0B12 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_RANGE 0x0B22 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_VIEWPORT 0x0BA2 +#define GL_DITHER 0x0BD0 +#define GL_BLEND_DST 0x0BE0 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND 0x0BE2 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_READ_BUFFER 0x0C02 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_DOUBLE 0x140A +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_CLEAR 0x1500 +#define GL_AND 0x1501 +#define GL_AND_REVERSE 0x1502 +#define GL_COPY 0x1503 +#define GL_AND_INVERTED 0x1504 +#define GL_NOOP 0x1505 +#define GL_XOR 0x1506 +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_EQUIV 0x1509 +#define GL_INVERT 0x150A +#define GL_OR_REVERSE 0x150B +#define GL_COPY_INVERTED 0x150C +#define GL_OR_INVERTED 0x150D +#define GL_NAND 0x150E +#define GL_SET 0x150F +#define GL_TEXTURE 0x1702 +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 +#define GL_STENCIL_INDEX 0x1901 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 +#define GL_NEAREST 0x2600 +#define GL_LINEAR 0x2601 +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +#define GL_REPEAT 0x2901 +#define GL_R3_G3_B2 0x2A10 +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB8 0x8051 +#define GL_RGB10 0x8052 +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGBA2 0x8055 +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGBA8 0x8058 +#define GL_RGB10_A2 0x8059 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#define GL_CURRENT_BIT 0x00000001 +#define GL_POINT_BIT 0x00000002 +#define GL_LINE_BIT 0x00000004 +#define GL_POLYGON_BIT 0x00000008 +#define GL_POLYGON_STIPPLE_BIT 0x00000010 +#define GL_PIXEL_MODE_BIT 0x00000020 +#define GL_LIGHTING_BIT 0x00000040 +#define GL_FOG_BIT 0x00000080 +#define GL_ACCUM_BUFFER_BIT 0x00000200 +#define GL_VIEWPORT_BIT 0x00000800 +#define GL_TRANSFORM_BIT 0x00001000 +#define GL_ENABLE_BIT 0x00002000 +#define GL_HINT_BIT 0x00008000 +#define GL_EVAL_BIT 0x00010000 +#define GL_LIST_BIT 0x00020000 +#define GL_TEXTURE_BIT 0x00040000 +#define GL_SCISSOR_BIT 0x00080000 +#define GL_ALL_ATTRIB_BITS 0xFFFFFFFF +#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 +#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 +#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF +#define GL_QUAD_STRIP 0x0008 +#define GL_POLYGON 0x0009 +#define GL_ACCUM 0x0100 +#define GL_LOAD 0x0101 +#define GL_RETURN 0x0102 +#define GL_MULT 0x0103 +#define GL_ADD 0x0104 +#define GL_AUX0 0x0409 +#define GL_AUX1 0x040A +#define GL_AUX2 0x040B +#define GL_AUX3 0x040C +#define GL_2D 0x0600 +#define GL_3D 0x0601 +#define GL_3D_COLOR 0x0602 +#define GL_3D_COLOR_TEXTURE 0x0603 +#define GL_4D_COLOR_TEXTURE 0x0604 +#define GL_PASS_THROUGH_TOKEN 0x0700 +#define GL_POINT_TOKEN 0x0701 +#define GL_LINE_TOKEN 0x0702 +#define GL_POLYGON_TOKEN 0x0703 +#define GL_BITMAP_TOKEN 0x0704 +#define GL_DRAW_PIXEL_TOKEN 0x0705 +#define GL_COPY_PIXEL_TOKEN 0x0706 +#define GL_LINE_RESET_TOKEN 0x0707 +#define GL_EXP 0x0800 +#define GL_EXP2 0x0801 +#define GL_COEFF 0x0A00 +#define GL_ORDER 0x0A01 +#define GL_DOMAIN 0x0A02 +#define GL_PIXEL_MAP_I_TO_I 0x0C70 +#define GL_PIXEL_MAP_S_TO_S 0x0C71 +#define GL_PIXEL_MAP_I_TO_R 0x0C72 +#define GL_PIXEL_MAP_I_TO_G 0x0C73 +#define GL_PIXEL_MAP_I_TO_B 0x0C74 +#define GL_PIXEL_MAP_I_TO_A 0x0C75 +#define GL_PIXEL_MAP_R_TO_R 0x0C76 +#define GL_PIXEL_MAP_G_TO_G 0x0C77 +#define GL_PIXEL_MAP_B_TO_B 0x0C78 +#define GL_PIXEL_MAP_A_TO_A 0x0C79 +#define GL_VERTEX_ARRAY_POINTER 0x808E +#define GL_NORMAL_ARRAY_POINTER 0x808F +#define GL_COLOR_ARRAY_POINTER 0x8090 +#define GL_INDEX_ARRAY_POINTER 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 +#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 +#define GL_SELECTION_BUFFER_POINTER 0x0DF3 +#define GL_CURRENT_COLOR 0x0B00 +#define GL_CURRENT_INDEX 0x0B01 +#define GL_CURRENT_NORMAL 0x0B02 +#define GL_CURRENT_TEXTURE_COORDS 0x0B03 +#define GL_CURRENT_RASTER_COLOR 0x0B04 +#define GL_CURRENT_RASTER_INDEX 0x0B05 +#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 +#define GL_CURRENT_RASTER_POSITION 0x0B07 +#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 +#define GL_CURRENT_RASTER_DISTANCE 0x0B09 +#define GL_POINT_SMOOTH 0x0B10 +#define GL_LINE_STIPPLE 0x0B24 +#define GL_LINE_STIPPLE_PATTERN 0x0B25 +#define GL_LINE_STIPPLE_REPEAT 0x0B26 +#define GL_LIST_MODE 0x0B30 +#define GL_MAX_LIST_NESTING 0x0B31 +#define GL_LIST_BASE 0x0B32 +#define GL_LIST_INDEX 0x0B33 +#define GL_POLYGON_STIPPLE 0x0B42 +#define GL_EDGE_FLAG 0x0B43 +#define GL_LIGHTING 0x0B50 +#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 +#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 +#define GL_LIGHT_MODEL_AMBIENT 0x0B53 +#define GL_SHADE_MODEL 0x0B54 +#define GL_COLOR_MATERIAL_FACE 0x0B55 +#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 +#define GL_COLOR_MATERIAL 0x0B57 +#define GL_FOG 0x0B60 +#define GL_FOG_INDEX 0x0B61 +#define GL_FOG_DENSITY 0x0B62 +#define GL_FOG_START 0x0B63 +#define GL_FOG_END 0x0B64 +#define GL_FOG_MODE 0x0B65 +#define GL_FOG_COLOR 0x0B66 +#define GL_ACCUM_CLEAR_VALUE 0x0B80 +#define GL_MATRIX_MODE 0x0BA0 +#define GL_NORMALIZE 0x0BA1 +#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 +#define GL_PROJECTION_STACK_DEPTH 0x0BA4 +#define GL_TEXTURE_STACK_DEPTH 0x0BA5 +#define GL_MODELVIEW_MATRIX 0x0BA6 +#define GL_PROJECTION_MATRIX 0x0BA7 +#define GL_TEXTURE_MATRIX 0x0BA8 +#define GL_ATTRIB_STACK_DEPTH 0x0BB0 +#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 +#define GL_ALPHA_TEST 0x0BC0 +#define GL_ALPHA_TEST_FUNC 0x0BC1 +#define GL_ALPHA_TEST_REF 0x0BC2 +#define GL_INDEX_LOGIC_OP 0x0BF1 +#define GL_LOGIC_OP 0x0BF1 +#define GL_AUX_BUFFERS 0x0C00 +#define GL_INDEX_CLEAR_VALUE 0x0C20 +#define GL_INDEX_WRITEMASK 0x0C21 +#define GL_INDEX_MODE 0x0C30 +#define GL_RGBA_MODE 0x0C31 +#define GL_RENDER_MODE 0x0C40 +#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 +#define GL_POINT_SMOOTH_HINT 0x0C51 +#define GL_FOG_HINT 0x0C54 +#define GL_TEXTURE_GEN_S 0x0C60 +#define GL_TEXTURE_GEN_T 0x0C61 +#define GL_TEXTURE_GEN_R 0x0C62 +#define GL_TEXTURE_GEN_Q 0x0C63 +#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 +#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 +#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 +#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 +#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 +#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 +#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 +#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 +#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 +#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 +#define GL_MAP_COLOR 0x0D10 +#define GL_MAP_STENCIL 0x0D11 +#define GL_INDEX_SHIFT 0x0D12 +#define GL_INDEX_OFFSET 0x0D13 +#define GL_RED_SCALE 0x0D14 +#define GL_RED_BIAS 0x0D15 +#define GL_ZOOM_X 0x0D16 +#define GL_ZOOM_Y 0x0D17 +#define GL_GREEN_SCALE 0x0D18 +#define GL_GREEN_BIAS 0x0D19 +#define GL_BLUE_SCALE 0x0D1A +#define GL_BLUE_BIAS 0x0D1B +#define GL_ALPHA_SCALE 0x0D1C +#define GL_ALPHA_BIAS 0x0D1D +#define GL_DEPTH_SCALE 0x0D1E +#define GL_DEPTH_BIAS 0x0D1F +#define GL_MAX_EVAL_ORDER 0x0D30 +#define GL_MAX_LIGHTS 0x0D31 +#define GL_MAX_CLIP_PLANES 0x0D32 +#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 +#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 +#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 +#define GL_MAX_NAME_STACK_DEPTH 0x0D37 +#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 +#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 +#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B +#define GL_INDEX_BITS 0x0D51 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_ALPHA_BITS 0x0D55 +#define GL_DEPTH_BITS 0x0D56 +#define GL_STENCIL_BITS 0x0D57 +#define GL_ACCUM_RED_BITS 0x0D58 +#define GL_ACCUM_GREEN_BITS 0x0D59 +#define GL_ACCUM_BLUE_BITS 0x0D5A +#define GL_ACCUM_ALPHA_BITS 0x0D5B +#define GL_NAME_STACK_DEPTH 0x0D70 +#define GL_AUTO_NORMAL 0x0D80 +#define GL_MAP1_COLOR_4 0x0D90 +#define GL_MAP1_INDEX 0x0D91 +#define GL_MAP1_NORMAL 0x0D92 +#define GL_MAP1_TEXTURE_COORD_1 0x0D93 +#define GL_MAP1_TEXTURE_COORD_2 0x0D94 +#define GL_MAP1_TEXTURE_COORD_3 0x0D95 +#define GL_MAP1_TEXTURE_COORD_4 0x0D96 +#define GL_MAP1_VERTEX_3 0x0D97 +#define GL_MAP1_VERTEX_4 0x0D98 +#define GL_MAP2_COLOR_4 0x0DB0 +#define GL_MAP2_INDEX 0x0DB1 +#define GL_MAP2_NORMAL 0x0DB2 +#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 +#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 +#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 +#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 +#define GL_MAP2_VERTEX_3 0x0DB7 +#define GL_MAP2_VERTEX_4 0x0DB8 +#define GL_MAP1_GRID_DOMAIN 0x0DD0 +#define GL_MAP1_GRID_SEGMENTS 0x0DD1 +#define GL_MAP2_GRID_DOMAIN 0x0DD2 +#define GL_MAP2_GRID_SEGMENTS 0x0DD3 +#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 +#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 +#define GL_SELECTION_BUFFER_SIZE 0x0DF4 +#define GL_VERTEX_ARRAY 0x8074 +#define GL_NORMAL_ARRAY 0x8075 +#define GL_COLOR_ARRAY 0x8076 +#define GL_INDEX_ARRAY 0x8077 +#define GL_TEXTURE_COORD_ARRAY 0x8078 +#define GL_EDGE_FLAG_ARRAY 0x8079 +#define GL_VERTEX_ARRAY_SIZE 0x807A +#define GL_VERTEX_ARRAY_TYPE 0x807B +#define GL_VERTEX_ARRAY_STRIDE 0x807C +#define GL_NORMAL_ARRAY_TYPE 0x807E +#define GL_NORMAL_ARRAY_STRIDE 0x807F +#define GL_COLOR_ARRAY_SIZE 0x8081 +#define GL_COLOR_ARRAY_TYPE 0x8082 +#define GL_COLOR_ARRAY_STRIDE 0x8083 +#define GL_INDEX_ARRAY_TYPE 0x8085 +#define GL_INDEX_ARRAY_STRIDE 0x8086 +#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A +#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C +#define GL_TEXTURE_COMPONENTS 0x1003 +#define GL_TEXTURE_BORDER 0x1005 +#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE 0x8061 +#define GL_TEXTURE_PRIORITY 0x8066 +#define GL_TEXTURE_RESIDENT 0x8067 +#define GL_AMBIENT 0x1200 +#define GL_DIFFUSE 0x1201 +#define GL_SPECULAR 0x1202 +#define GL_POSITION 0x1203 +#define GL_SPOT_DIRECTION 0x1204 +#define GL_SPOT_EXPONENT 0x1205 +#define GL_SPOT_CUTOFF 0x1206 +#define GL_CONSTANT_ATTENUATION 0x1207 +#define GL_LINEAR_ATTENUATION 0x1208 +#define GL_QUADRATIC_ATTENUATION 0x1209 +#define GL_COMPILE 0x1300 +#define GL_COMPILE_AND_EXECUTE 0x1301 +#define GL_2_BYTES 0x1407 +#define GL_3_BYTES 0x1408 +#define GL_4_BYTES 0x1409 +#define GL_EMISSION 0x1600 +#define GL_SHININESS 0x1601 +#define GL_AMBIENT_AND_DIFFUSE 0x1602 +#define GL_COLOR_INDEXES 0x1603 +#define GL_MODELVIEW 0x1700 +#define GL_PROJECTION 0x1701 +#define GL_COLOR_INDEX 0x1900 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +#define GL_BITMAP 0x1A00 +#define GL_RENDER 0x1C00 +#define GL_FEEDBACK 0x1C01 +#define GL_SELECT 0x1C02 +#define GL_FLAT 0x1D00 +#define GL_SMOOTH 0x1D01 +#define GL_S 0x2000 +#define GL_T 0x2001 +#define GL_R 0x2002 +#define GL_Q 0x2003 +#define GL_MODULATE 0x2100 +#define GL_DECAL 0x2101 +#define GL_TEXTURE_ENV_MODE 0x2200 +#define GL_TEXTURE_ENV_COLOR 0x2201 +#define GL_TEXTURE_ENV 0x2300 +#define GL_EYE_LINEAR 0x2400 +#define GL_OBJECT_LINEAR 0x2401 +#define GL_SPHERE_MAP 0x2402 +#define GL_TEXTURE_GEN_MODE 0x2500 +#define GL_OBJECT_PLANE 0x2501 +#define GL_EYE_PLANE 0x2502 +#define GL_CLAMP 0x2900 +#define GL_ALPHA4 0x803B +#define GL_ALPHA8 0x803C +#define GL_ALPHA12 0x803D +#define GL_ALPHA16 0x803E +#define GL_LUMINANCE4 0x803F +#define GL_LUMINANCE8 0x8040 +#define GL_LUMINANCE12 0x8041 +#define GL_LUMINANCE16 0x8042 +#define GL_LUMINANCE4_ALPHA4 0x8043 +#define GL_LUMINANCE6_ALPHA2 0x8044 +#define GL_LUMINANCE8_ALPHA8 0x8045 +#define GL_LUMINANCE12_ALPHA4 0x8046 +#define GL_LUMINANCE12_ALPHA12 0x8047 +#define GL_LUMINANCE16_ALPHA16 0x8048 +#define GL_INTENSITY 0x8049 +#define GL_INTENSITY4 0x804A +#define GL_INTENSITY8 0x804B +#define GL_INTENSITY12 0x804C +#define GL_INTENSITY16 0x804D +#define GL_V2F 0x2A20 +#define GL_V3F 0x2A21 +#define GL_C4UB_V2F 0x2A22 +#define GL_C4UB_V3F 0x2A23 +#define GL_C3F_V3F 0x2A24 +#define GL_N3F_V3F 0x2A25 +#define GL_C4F_N3F_V3F 0x2A26 +#define GL_T2F_V3F 0x2A27 +#define GL_T4F_V4F 0x2A28 +#define GL_T2F_C4UB_V3F 0x2A29 +#define GL_T2F_C3F_V3F 0x2A2A +#define GL_T2F_N3F_V3F 0x2A2B +#define GL_T2F_C4F_N3F_V3F 0x2A2C +#define GL_T4F_C4F_N3F_V4F 0x2A2D +#define GL_CLIP_PLANE0 0x3000 +#define GL_CLIP_PLANE1 0x3001 +#define GL_CLIP_PLANE2 0x3002 +#define GL_CLIP_PLANE3 0x3003 +#define GL_CLIP_PLANE4 0x3004 +#define GL_CLIP_PLANE5 0x3005 +#define GL_LIGHT0 0x4000 +#define GL_LIGHT1 0x4001 +#define GL_LIGHT2 0x4002 +#define GL_LIGHT3 0x4003 +#define GL_LIGHT4 0x4004 +#define GL_LIGHT5 0x4005 +#define GL_LIGHT6 0x4006 +#define GL_LIGHT7 0x4007 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_TEXTURE_BINDING_3D 0x806A +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#define GL_RESCALE_NORMAL 0x803A +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_CLAMP_TO_BORDER 0x812D +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 +#define GL_MULTISAMPLE_BIT 0x20000000 +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_SUBTRACT 0x84E7 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_MIRRORED_REPEAT 0x8370 +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_LOD_BIAS 0x8501 +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#define GL_POINT_SIZE_MIN 0x8126 +#define GL_POINT_SIZE_MAX 0x8127 +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 +#define GL_GENERATE_MIPMAP 0x8191 +#define GL_GENERATE_MIPMAP_HINT 0x8192 +#define GL_FOG_COORDINATE_SOURCE 0x8450 +#define GL_FOG_COORDINATE 0x8451 +#define GL_FRAGMENT_DEPTH 0x8452 +#define GL_CURRENT_FOG_COORDINATE 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 +#define GL_FOG_COORDINATE_ARRAY 0x8457 +#define GL_COLOR_SUM 0x8458 +#define GL_CURRENT_SECONDARY_COLOR 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D +#define GL_SECONDARY_COLOR_ARRAY 0x845E +#define GL_TEXTURE_FILTER_CONTROL 0x8500 +#define GL_DEPTH_TEXTURE_MODE 0x884B +#define GL_COMPARE_R_TO_TEXTURE 0x884E +#define GL_FUNC_ADD 0x8006 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_CURRENT_QUERY 0x8865 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_READ_ONLY 0x88B8 +#define GL_WRITE_ONLY 0x88B9 +#define GL_READ_WRITE 0x88BA +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_COPY 0x88E2 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_COPY 0x88E6 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_SAMPLES_PASSED 0x8914 +#define GL_SRC1_ALPHA 0x8589 +#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E +#define GL_FOG_COORD_SRC 0x8450 +#define GL_FOG_COORD 0x8451 +#define GL_CURRENT_FOG_COORD 0x8453 +#define GL_FOG_COORD_ARRAY_TYPE 0x8454 +#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORD_ARRAY_POINTER 0x8456 +#define GL_FOG_COORD_ARRAY 0x8457 +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D +#define GL_SRC0_RGB 0x8580 +#define GL_SRC1_RGB 0x8581 +#define GL_SRC2_RGB 0x8582 +#define GL_SRC0_ALPHA 0x8588 +#define GL_SRC2_ALPHA 0x858A +#define GL_BLEND_EQUATION_RGB 0x8009 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_BLEND_EQUATION_ALPHA 0x883D +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_SHADER_TYPE 0x8B4F +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 +#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 +#define GL_POINT_SPRITE 0x8861 +#define GL_COORD_REPLACE 0x8862 +#define GL_MAX_TEXTURE_COORDS 0x8871 +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB_ALPHA 0x8C42 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F +#define GL_SLUMINANCE_ALPHA 0x8C44 +#define GL_SLUMINANCE8_ALPHA8 0x8C45 +#define GL_SLUMINANCE 0x8C46 +#define GL_SLUMINANCE8 0x8C47 +#define GL_COMPRESSED_SLUMINANCE 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B +#define GL_COMPARE_REF_TO_TEXTURE 0x884E +#define GL_CLIP_DISTANCE0 0x3000 +#define GL_CLIP_DISTANCE1 0x3001 +#define GL_CLIP_DISTANCE2 0x3002 +#define GL_CLIP_DISTANCE3 0x3003 +#define GL_CLIP_DISTANCE4 0x3004 +#define GL_CLIP_DISTANCE5 0x3005 +#define GL_CLIP_DISTANCE6 0x3006 +#define GL_CLIP_DISTANCE7 0x3007 +#define GL_MAX_CLIP_DISTANCES 0x0D32 +#define GL_MAJOR_VERSION 0x821B +#define GL_MINOR_VERSION 0x821C +#define GL_NUM_EXTENSIONS 0x821D +#define GL_CONTEXT_FLAGS 0x821E +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001 +#define GL_RGBA32F 0x8814 +#define GL_RGB32F 0x8815 +#define GL_RGBA16F 0x881A +#define GL_RGB16F 0x881B +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD +#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF +#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_FIXED_ONLY 0x891D +#define GL_MAX_VARYING_COMPONENTS 0x8B4B +#define GL_TEXTURE_1D_ARRAY 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D +#define GL_R11F_G11F_B10F 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B +#define GL_RGB9_E5 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E +#define GL_TEXTURE_SHARED_SIZE 0x8C3F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 +#define GL_PRIMITIVES_GENERATED 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 +#define GL_RASTERIZER_DISCARD 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B +#define GL_INTERLEAVED_ATTRIBS 0x8C8C +#define GL_SEPARATE_ATTRIBS 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F +#define GL_RGBA32UI 0x8D70 +#define GL_RGB32UI 0x8D71 +#define GL_RGBA16UI 0x8D76 +#define GL_RGB16UI 0x8D77 +#define GL_RGBA8UI 0x8D7C +#define GL_RGB8UI 0x8D7D +#define GL_RGBA32I 0x8D82 +#define GL_RGB32I 0x8D83 +#define GL_RGBA16I 0x8D88 +#define GL_RGB16I 0x8D89 +#define GL_RGBA8I 0x8D8E +#define GL_RGB8I 0x8D8F +#define GL_RED_INTEGER 0x8D94 +#define GL_GREEN_INTEGER 0x8D95 +#define GL_BLUE_INTEGER 0x8D96 +#define GL_RGB_INTEGER 0x8D98 +#define GL_RGBA_INTEGER 0x8D99 +#define GL_BGR_INTEGER 0x8D9A +#define GL_BGRA_INTEGER 0x8D9B +#define GL_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_2D_ARRAY 0x8DC1 +#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 +#define GL_UNSIGNED_INT_VEC2 0x8DC6 +#define GL_UNSIGNED_INT_VEC3 0x8DC7 +#define GL_UNSIGNED_INT_VEC4 0x8DC8 +#define GL_INT_SAMPLER_1D 0x8DC9 +#define GL_INT_SAMPLER_2D 0x8DCA +#define GL_INT_SAMPLER_3D 0x8DCB +#define GL_INT_SAMPLER_CUBE 0x8DCC +#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF +#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 +#define GL_QUERY_WAIT 0x8E13 +#define GL_QUERY_NO_WAIT 0x8E14 +#define GL_QUERY_BY_REGION_WAIT 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 +#define GL_BUFFER_ACCESS_FLAGS 0x911F +#define GL_BUFFER_MAP_LENGTH 0x9120 +#define GL_BUFFER_MAP_OFFSET 0x9121 +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_COLOR_ATTACHMENT16 0x8CF0 +#define GL_COLOR_ATTACHMENT17 0x8CF1 +#define GL_COLOR_ATTACHMENT18 0x8CF2 +#define GL_COLOR_ATTACHMENT19 0x8CF3 +#define GL_COLOR_ATTACHMENT20 0x8CF4 +#define GL_COLOR_ATTACHMENT21 0x8CF5 +#define GL_COLOR_ATTACHMENT22 0x8CF6 +#define GL_COLOR_ATTACHMENT23 0x8CF7 +#define GL_COLOR_ATTACHMENT24 0x8CF8 +#define GL_COLOR_ATTACHMENT25 0x8CF9 +#define GL_COLOR_ATTACHMENT26 0x8CFA +#define GL_COLOR_ATTACHMENT27 0x8CFB +#define GL_COLOR_ATTACHMENT28 0x8CFC +#define GL_COLOR_ATTACHMENT29 0x8CFD +#define GL_COLOR_ATTACHMENT30 0x8CFE +#define GL_COLOR_ATTACHMENT31 0x8CFF +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_MAX_SAMPLES 0x8D57 +#define GL_INDEX 0x8222 +#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 +#define GL_FRAMEBUFFER_SRGB 0x8DB9 +#define GL_HALF_FLOAT 0x140B +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE +#define GL_RG 0x8227 +#define GL_RG_INTEGER 0x8228 +#define GL_R8 0x8229 +#define GL_R16 0x822A +#define GL_RG8 0x822B +#define GL_RG16 0x822C +#define GL_R16F 0x822D +#define GL_R32F 0x822E +#define GL_RG16F 0x822F +#define GL_RG32F 0x8230 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C +#define GL_VERTEX_ARRAY_BINDING 0x85B5 +#define GL_CLAMP_VERTEX_COLOR 0x891A +#define GL_CLAMP_FRAGMENT_COLOR 0x891B +#define GL_ALPHA_INTEGER 0x8D97 +#define GL_SAMPLER_2D_RECT 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 +#define GL_SAMPLER_BUFFER 0x8DC2 +#define GL_INT_SAMPLER_2D_RECT 0x8DCD +#define GL_INT_SAMPLER_BUFFER 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 +#define GL_TEXTURE_BUFFER 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D +#define GL_TEXTURE_RECTANGLE 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_R16_SNORM 0x8F98 +#define GL_RG16_SNORM 0x8F99 +#define GL_RGB16_SNORM 0x8F9A +#define GL_RGBA16_SNORM 0x8F9B +#define GL_SIGNED_NORMALIZED 0x8F9C +#define GL_PRIMITIVE_RESTART 0x8F9D +#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E +#define GL_COPY_READ_BUFFER 0x8F36 +#define GL_COPY_WRITE_BUFFER 0x8F37 +#define GL_UNIFORM_BUFFER 0x8A11 +#define GL_UNIFORM_BUFFER_BINDING 0x8A28 +#define GL_UNIFORM_BUFFER_START 0x8A29 +#define GL_UNIFORM_BUFFER_SIZE 0x8A2A +#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C +#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D +#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E +#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F +#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 +#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 +#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 +#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 +#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 +#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 +#define GL_UNIFORM_TYPE 0x8A37 +#define GL_UNIFORM_SIZE 0x8A38 +#define GL_UNIFORM_NAME_LENGTH 0x8A39 +#define GL_UNIFORM_BLOCK_INDEX 0x8A3A +#define GL_UNIFORM_OFFSET 0x8A3B +#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C +#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D +#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E +#define GL_UNIFORM_BLOCK_BINDING 0x8A3F +#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 +#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 +#define GL_INVALID_INDEX 0xFFFFFFFF +#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 +#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define GL_LINES_ADJACENCY 0x000A +#define GL_LINE_STRIP_ADJACENCY 0x000B +#define GL_TRIANGLES_ADJACENCY 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D +#define GL_PROGRAM_POINT_SIZE 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 +#define GL_GEOMETRY_SHADER 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT 0x8916 +#define GL_GEOMETRY_INPUT_TYPE 0x8917 +#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 +#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 +#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 +#define GL_CONTEXT_PROFILE_MASK 0x9126 +#define GL_DEPTH_CLAMP 0x864F +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F +#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 +#define GL_OBJECT_TYPE 0x9112 +#define GL_SYNC_CONDITION 0x9113 +#define GL_SYNC_STATUS 0x9114 +#define GL_SYNC_FLAGS 0x9115 +#define GL_SYNC_FENCE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GL_UNSIGNALED 0x9118 +#define GL_SIGNALED 0x9119 +#define GL_ALREADY_SIGNALED 0x911A +#define GL_TIMEOUT_EXPIRED 0x911B +#define GL_CONDITION_SATISFIED 0x911C +#define GL_WAIT_FAILED 0x911D +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#define GL_SAMPLE_POSITION 0x8E50 +#define GL_SAMPLE_MASK 0x8E51 +#define GL_SAMPLE_MASK_VALUE 0x8E52 +#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 +#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 +#define GL_TEXTURE_SAMPLES 0x9106 +#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 +#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 +#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D +#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E +#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F +#define GL_MAX_INTEGER_SAMPLES 0x9110 +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE +#define GL_SRC1_COLOR 0x88F9 +#define GL_ONE_MINUS_SRC1_COLOR 0x88FA +#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB +#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC +#define GL_ANY_SAMPLES_PASSED 0x8C2F +#define GL_SAMPLER_BINDING 0x8919 +#define GL_RGB10_A2UI 0x906F +#define GL_TEXTURE_SWIZZLE_R 0x8E42 +#define GL_TEXTURE_SWIZZLE_G 0x8E43 +#define GL_TEXTURE_SWIZZLE_B 0x8E44 +#define GL_TEXTURE_SWIZZLE_A 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 +#define GL_TIME_ELAPSED 0x88BF +#define GL_TIMESTAMP 0x8E28 +#define GL_INT_2_10_10_10_REV 0x8D9F +#ifndef GL_VERSION_1_0 +#define GL_VERSION_1_0 1 + GLAPI int GLAD_GL_VERSION_1_0; + typedef void (APIENTRYP PFNGLCULLFACEPROC)(GLenum mode); + GLAPI PFNGLCULLFACEPROC glad_glCullFace; +#define glCullFace glad_glCullFace + typedef void (APIENTRYP PFNGLFRONTFACEPROC)(GLenum mode); + GLAPI PFNGLFRONTFACEPROC glad_glFrontFace; +#define glFrontFace glad_glFrontFace + typedef void (APIENTRYP PFNGLHINTPROC)(GLenum target, GLenum mode); + GLAPI PFNGLHINTPROC glad_glHint; +#define glHint glad_glHint + typedef void (APIENTRYP PFNGLLINEWIDTHPROC)(GLfloat width); + GLAPI PFNGLLINEWIDTHPROC glad_glLineWidth; +#define glLineWidth glad_glLineWidth + typedef void (APIENTRYP PFNGLPOINTSIZEPROC)(GLfloat size); + GLAPI PFNGLPOINTSIZEPROC glad_glPointSize; +#define glPointSize glad_glPointSize + typedef void (APIENTRYP PFNGLPOLYGONMODEPROC)(GLenum face, GLenum mode); + GLAPI PFNGLPOLYGONMODEPROC glad_glPolygonMode; +#define glPolygonMode glad_glPolygonMode + typedef void (APIENTRYP PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height); + GLAPI PFNGLSCISSORPROC glad_glScissor; +#define glScissor glad_glScissor + typedef void (APIENTRYP PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param); + GLAPI PFNGLTEXPARAMETERFPROC glad_glTexParameterf; +#define glTexParameterf glad_glTexParameterf + typedef void (APIENTRYP PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat *params); + GLAPI PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv; +#define glTexParameterfv glad_glTexParameterfv + typedef void (APIENTRYP PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param); + GLAPI PFNGLTEXPARAMETERIPROC glad_glTexParameteri; +#define glTexParameteri glad_glTexParameteri + typedef void (APIENTRYP PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint *params); + GLAPI PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv; +#define glTexParameteriv glad_glTexParameteriv + typedef void (APIENTRYP PFNGLTEXIMAGE1DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); + GLAPI PFNGLTEXIMAGE1DPROC glad_glTexImage1D; +#define glTexImage1D glad_glTexImage1D + typedef void (APIENTRYP PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); + GLAPI PFNGLTEXIMAGE2DPROC glad_glTexImage2D; +#define glTexImage2D glad_glTexImage2D + typedef void (APIENTRYP PFNGLDRAWBUFFERPROC)(GLenum buf); + GLAPI PFNGLDRAWBUFFERPROC glad_glDrawBuffer; +#define glDrawBuffer glad_glDrawBuffer + typedef void (APIENTRYP PFNGLCLEARPROC)(GLbitfield mask); + GLAPI PFNGLCLEARPROC glad_glClear; +#define glClear glad_glClear + typedef void (APIENTRYP PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); + GLAPI PFNGLCLEARCOLORPROC glad_glClearColor; +#define glClearColor glad_glClearColor + typedef void (APIENTRYP PFNGLCLEARSTENCILPROC)(GLint s); + GLAPI PFNGLCLEARSTENCILPROC glad_glClearStencil; +#define glClearStencil glad_glClearStencil + typedef void (APIENTRYP PFNGLCLEARDEPTHPROC)(GLdouble depth); + GLAPI PFNGLCLEARDEPTHPROC glad_glClearDepth; +#define glClearDepth glad_glClearDepth + typedef void (APIENTRYP PFNGLSTENCILMASKPROC)(GLuint mask); + GLAPI PFNGLSTENCILMASKPROC glad_glStencilMask; +#define glStencilMask glad_glStencilMask + typedef void (APIENTRYP PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); + GLAPI PFNGLCOLORMASKPROC glad_glColorMask; +#define glColorMask glad_glColorMask + typedef void (APIENTRYP PFNGLDEPTHMASKPROC)(GLboolean flag); + GLAPI PFNGLDEPTHMASKPROC glad_glDepthMask; +#define glDepthMask glad_glDepthMask + typedef void (APIENTRYP PFNGLDISABLEPROC)(GLenum cap); + GLAPI PFNGLDISABLEPROC glad_glDisable; +#define glDisable glad_glDisable + typedef void (APIENTRYP PFNGLENABLEPROC)(GLenum cap); + GLAPI PFNGLENABLEPROC glad_glEnable; +#define glEnable glad_glEnable + typedef void (APIENTRYP PFNGLFINISHPROC)(); + GLAPI PFNGLFINISHPROC glad_glFinish; +#define glFinish glad_glFinish + typedef void (APIENTRYP PFNGLFLUSHPROC)(); + GLAPI PFNGLFLUSHPROC glad_glFlush; +#define glFlush glad_glFlush + typedef void (APIENTRYP PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor); + GLAPI PFNGLBLENDFUNCPROC glad_glBlendFunc; +#define glBlendFunc glad_glBlendFunc + typedef void (APIENTRYP PFNGLLOGICOPPROC)(GLenum opcode); + GLAPI PFNGLLOGICOPPROC glad_glLogicOp; +#define glLogicOp glad_glLogicOp + typedef void (APIENTRYP PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask); + GLAPI PFNGLSTENCILFUNCPROC glad_glStencilFunc; +#define glStencilFunc glad_glStencilFunc + typedef void (APIENTRYP PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass); + GLAPI PFNGLSTENCILOPPROC glad_glStencilOp; +#define glStencilOp glad_glStencilOp + typedef void (APIENTRYP PFNGLDEPTHFUNCPROC)(GLenum func); + GLAPI PFNGLDEPTHFUNCPROC glad_glDepthFunc; +#define glDepthFunc glad_glDepthFunc + typedef void (APIENTRYP PFNGLPIXELSTOREFPROC)(GLenum pname, GLfloat param); + GLAPI PFNGLPIXELSTOREFPROC glad_glPixelStoref; +#define glPixelStoref glad_glPixelStoref + typedef void (APIENTRYP PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param); + GLAPI PFNGLPIXELSTOREIPROC glad_glPixelStorei; +#define glPixelStorei glad_glPixelStorei + typedef void (APIENTRYP PFNGLREADBUFFERPROC)(GLenum src); + GLAPI PFNGLREADBUFFERPROC glad_glReadBuffer; +#define glReadBuffer glad_glReadBuffer + typedef void (APIENTRYP PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); + GLAPI PFNGLREADPIXELSPROC glad_glReadPixels; +#define glReadPixels glad_glReadPixels + typedef void (APIENTRYP PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean *data); + GLAPI PFNGLGETBOOLEANVPROC glad_glGetBooleanv; +#define glGetBooleanv glad_glGetBooleanv + typedef void (APIENTRYP PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble *data); + GLAPI PFNGLGETDOUBLEVPROC glad_glGetDoublev; +#define glGetDoublev glad_glGetDoublev + typedef GLenum (APIENTRYP PFNGLGETERRORPROC)(); + GLAPI PFNGLGETERRORPROC glad_glGetError; +#define glGetError glad_glGetError + typedef void (APIENTRYP PFNGLGETFLOATVPROC)(GLenum pname, GLfloat *data); + GLAPI PFNGLGETFLOATVPROC glad_glGetFloatv; +#define glGetFloatv glad_glGetFloatv + typedef void (APIENTRYP PFNGLGETINTEGERVPROC)(GLenum pname, GLint *data); + GLAPI PFNGLGETINTEGERVPROC glad_glGetIntegerv; +#define glGetIntegerv glad_glGetIntegerv + typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGPROC)(GLenum name); + GLAPI PFNGLGETSTRINGPROC glad_glGetString; +#define glGetString glad_glGetString + typedef void (APIENTRYP PFNGLGETTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, void *pixels); + GLAPI PFNGLGETTEXIMAGEPROC glad_glGetTexImage; +#define glGetTexImage glad_glGetTexImage + typedef void (APIENTRYP PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat *params); + GLAPI PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv; +#define glGetTexParameterfv glad_glGetTexParameterfv + typedef void (APIENTRYP PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); + GLAPI PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv; +#define glGetTexParameteriv glad_glGetTexParameteriv + typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC)(GLenum target, GLint level, GLenum pname, GLfloat *params); + GLAPI PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv; +#define glGetTexLevelParameterfv glad_glGetTexLevelParameterfv + typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC)(GLenum target, GLint level, GLenum pname, GLint *params); + GLAPI PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv; +#define glGetTexLevelParameteriv glad_glGetTexLevelParameteriv + typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC)(GLenum cap); + GLAPI PFNGLISENABLEDPROC glad_glIsEnabled; +#define glIsEnabled glad_glIsEnabled + typedef void (APIENTRYP PFNGLDEPTHRANGEPROC)(GLdouble near, GLdouble far); + GLAPI PFNGLDEPTHRANGEPROC glad_glDepthRange; +#define glDepthRange glad_glDepthRange + typedef void (APIENTRYP PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height); + GLAPI PFNGLVIEWPORTPROC glad_glViewport; +#define glViewport glad_glViewport + typedef void (APIENTRYP PFNGLNEWLISTPROC)(GLuint list, GLenum mode); + GLAPI PFNGLNEWLISTPROC glad_glNewList; +#define glNewList glad_glNewList + typedef void (APIENTRYP PFNGLENDLISTPROC)(); + GLAPI PFNGLENDLISTPROC glad_glEndList; +#define glEndList glad_glEndList + typedef void (APIENTRYP PFNGLCALLLISTPROC)(GLuint list); + GLAPI PFNGLCALLLISTPROC glad_glCallList; +#define glCallList glad_glCallList + typedef void (APIENTRYP PFNGLCALLLISTSPROC)(GLsizei n, GLenum type, const void *lists); + GLAPI PFNGLCALLLISTSPROC glad_glCallLists; +#define glCallLists glad_glCallLists + typedef void (APIENTRYP PFNGLDELETELISTSPROC)(GLuint list, GLsizei range); + GLAPI PFNGLDELETELISTSPROC glad_glDeleteLists; +#define glDeleteLists glad_glDeleteLists + typedef GLuint (APIENTRYP PFNGLGENLISTSPROC)(GLsizei range); + GLAPI PFNGLGENLISTSPROC glad_glGenLists; +#define glGenLists glad_glGenLists + typedef void (APIENTRYP PFNGLLISTBASEPROC)(GLuint base); + GLAPI PFNGLLISTBASEPROC glad_glListBase; +#define glListBase glad_glListBase + typedef void (APIENTRYP PFNGLBEGINPROC)(GLenum mode); + GLAPI PFNGLBEGINPROC glad_glBegin; +#define glBegin glad_glBegin + typedef void (APIENTRYP PFNGLBITMAPPROC)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); + GLAPI PFNGLBITMAPPROC glad_glBitmap; +#define glBitmap glad_glBitmap + typedef void (APIENTRYP PFNGLCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue); + GLAPI PFNGLCOLOR3BPROC glad_glColor3b; +#define glColor3b glad_glColor3b + typedef void (APIENTRYP PFNGLCOLOR3BVPROC)(const GLbyte *v); + GLAPI PFNGLCOLOR3BVPROC glad_glColor3bv; +#define glColor3bv glad_glColor3bv + typedef void (APIENTRYP PFNGLCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue); + GLAPI PFNGLCOLOR3DPROC glad_glColor3d; +#define glColor3d glad_glColor3d + typedef void (APIENTRYP PFNGLCOLOR3DVPROC)(const GLdouble *v); + GLAPI PFNGLCOLOR3DVPROC glad_glColor3dv; +#define glColor3dv glad_glColor3dv + typedef void (APIENTRYP PFNGLCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue); + GLAPI PFNGLCOLOR3FPROC glad_glColor3f; +#define glColor3f glad_glColor3f + typedef void (APIENTRYP PFNGLCOLOR3FVPROC)(const GLfloat *v); + GLAPI PFNGLCOLOR3FVPROC glad_glColor3fv; +#define glColor3fv glad_glColor3fv + typedef void (APIENTRYP PFNGLCOLOR3IPROC)(GLint red, GLint green, GLint blue); + GLAPI PFNGLCOLOR3IPROC glad_glColor3i; +#define glColor3i glad_glColor3i + typedef void (APIENTRYP PFNGLCOLOR3IVPROC)(const GLint *v); + GLAPI PFNGLCOLOR3IVPROC glad_glColor3iv; +#define glColor3iv glad_glColor3iv + typedef void (APIENTRYP PFNGLCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue); + GLAPI PFNGLCOLOR3SPROC glad_glColor3s; +#define glColor3s glad_glColor3s + typedef void (APIENTRYP PFNGLCOLOR3SVPROC)(const GLshort *v); + GLAPI PFNGLCOLOR3SVPROC glad_glColor3sv; +#define glColor3sv glad_glColor3sv + typedef void (APIENTRYP PFNGLCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue); + GLAPI PFNGLCOLOR3UBPROC glad_glColor3ub; +#define glColor3ub glad_glColor3ub + typedef void (APIENTRYP PFNGLCOLOR3UBVPROC)(const GLubyte *v); + GLAPI PFNGLCOLOR3UBVPROC glad_glColor3ubv; +#define glColor3ubv glad_glColor3ubv + typedef void (APIENTRYP PFNGLCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue); + GLAPI PFNGLCOLOR3UIPROC glad_glColor3ui; +#define glColor3ui glad_glColor3ui + typedef void (APIENTRYP PFNGLCOLOR3UIVPROC)(const GLuint *v); + GLAPI PFNGLCOLOR3UIVPROC glad_glColor3uiv; +#define glColor3uiv glad_glColor3uiv + typedef void (APIENTRYP PFNGLCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue); + GLAPI PFNGLCOLOR3USPROC glad_glColor3us; +#define glColor3us glad_glColor3us + typedef void (APIENTRYP PFNGLCOLOR3USVPROC)(const GLushort *v); + GLAPI PFNGLCOLOR3USVPROC glad_glColor3usv; +#define glColor3usv glad_glColor3usv + typedef void (APIENTRYP PFNGLCOLOR4BPROC)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); + GLAPI PFNGLCOLOR4BPROC glad_glColor4b; +#define glColor4b glad_glColor4b + typedef void (APIENTRYP PFNGLCOLOR4BVPROC)(const GLbyte *v); + GLAPI PFNGLCOLOR4BVPROC glad_glColor4bv; +#define glColor4bv glad_glColor4bv + typedef void (APIENTRYP PFNGLCOLOR4DPROC)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); + GLAPI PFNGLCOLOR4DPROC glad_glColor4d; +#define glColor4d glad_glColor4d + typedef void (APIENTRYP PFNGLCOLOR4DVPROC)(const GLdouble *v); + GLAPI PFNGLCOLOR4DVPROC glad_glColor4dv; +#define glColor4dv glad_glColor4dv + typedef void (APIENTRYP PFNGLCOLOR4FPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); + GLAPI PFNGLCOLOR4FPROC glad_glColor4f; +#define glColor4f glad_glColor4f + typedef void (APIENTRYP PFNGLCOLOR4FVPROC)(const GLfloat *v); + GLAPI PFNGLCOLOR4FVPROC glad_glColor4fv; +#define glColor4fv glad_glColor4fv + typedef void (APIENTRYP PFNGLCOLOR4IPROC)(GLint red, GLint green, GLint blue, GLint alpha); + GLAPI PFNGLCOLOR4IPROC glad_glColor4i; +#define glColor4i glad_glColor4i + typedef void (APIENTRYP PFNGLCOLOR4IVPROC)(const GLint *v); + GLAPI PFNGLCOLOR4IVPROC glad_glColor4iv; +#define glColor4iv glad_glColor4iv + typedef void (APIENTRYP PFNGLCOLOR4SPROC)(GLshort red, GLshort green, GLshort blue, GLshort alpha); + GLAPI PFNGLCOLOR4SPROC glad_glColor4s; +#define glColor4s glad_glColor4s + typedef void (APIENTRYP PFNGLCOLOR4SVPROC)(const GLshort *v); + GLAPI PFNGLCOLOR4SVPROC glad_glColor4sv; +#define glColor4sv glad_glColor4sv + typedef void (APIENTRYP PFNGLCOLOR4UBPROC)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); + GLAPI PFNGLCOLOR4UBPROC glad_glColor4ub; +#define glColor4ub glad_glColor4ub + typedef void (APIENTRYP PFNGLCOLOR4UBVPROC)(const GLubyte *v); + GLAPI PFNGLCOLOR4UBVPROC glad_glColor4ubv; +#define glColor4ubv glad_glColor4ubv + typedef void (APIENTRYP PFNGLCOLOR4UIPROC)(GLuint red, GLuint green, GLuint blue, GLuint alpha); + GLAPI PFNGLCOLOR4UIPROC glad_glColor4ui; +#define glColor4ui glad_glColor4ui + typedef void (APIENTRYP PFNGLCOLOR4UIVPROC)(const GLuint *v); + GLAPI PFNGLCOLOR4UIVPROC glad_glColor4uiv; +#define glColor4uiv glad_glColor4uiv + typedef void (APIENTRYP PFNGLCOLOR4USPROC)(GLushort red, GLushort green, GLushort blue, GLushort alpha); + GLAPI PFNGLCOLOR4USPROC glad_glColor4us; +#define glColor4us glad_glColor4us + typedef void (APIENTRYP PFNGLCOLOR4USVPROC)(const GLushort *v); + GLAPI PFNGLCOLOR4USVPROC glad_glColor4usv; +#define glColor4usv glad_glColor4usv + typedef void (APIENTRYP PFNGLEDGEFLAGPROC)(GLboolean flag); + GLAPI PFNGLEDGEFLAGPROC glad_glEdgeFlag; +#define glEdgeFlag glad_glEdgeFlag + typedef void (APIENTRYP PFNGLEDGEFLAGVPROC)(const GLboolean *flag); + GLAPI PFNGLEDGEFLAGVPROC glad_glEdgeFlagv; +#define glEdgeFlagv glad_glEdgeFlagv + typedef void (APIENTRYP PFNGLENDPROC)(); + GLAPI PFNGLENDPROC glad_glEnd; +#define glEnd glad_glEnd + typedef void (APIENTRYP PFNGLINDEXDPROC)(GLdouble c); + GLAPI PFNGLINDEXDPROC glad_glIndexd; +#define glIndexd glad_glIndexd + typedef void (APIENTRYP PFNGLINDEXDVPROC)(const GLdouble *c); + GLAPI PFNGLINDEXDVPROC glad_glIndexdv; +#define glIndexdv glad_glIndexdv + typedef void (APIENTRYP PFNGLINDEXFPROC)(GLfloat c); + GLAPI PFNGLINDEXFPROC glad_glIndexf; +#define glIndexf glad_glIndexf + typedef void (APIENTRYP PFNGLINDEXFVPROC)(const GLfloat *c); + GLAPI PFNGLINDEXFVPROC glad_glIndexfv; +#define glIndexfv glad_glIndexfv + typedef void (APIENTRYP PFNGLINDEXIPROC)(GLint c); + GLAPI PFNGLINDEXIPROC glad_glIndexi; +#define glIndexi glad_glIndexi + typedef void (APIENTRYP PFNGLINDEXIVPROC)(const GLint *c); + GLAPI PFNGLINDEXIVPROC glad_glIndexiv; +#define glIndexiv glad_glIndexiv + typedef void (APIENTRYP PFNGLINDEXSPROC)(GLshort c); + GLAPI PFNGLINDEXSPROC glad_glIndexs; +#define glIndexs glad_glIndexs + typedef void (APIENTRYP PFNGLINDEXSVPROC)(const GLshort *c); + GLAPI PFNGLINDEXSVPROC glad_glIndexsv; +#define glIndexsv glad_glIndexsv + typedef void (APIENTRYP PFNGLNORMAL3BPROC)(GLbyte nx, GLbyte ny, GLbyte nz); + GLAPI PFNGLNORMAL3BPROC glad_glNormal3b; +#define glNormal3b glad_glNormal3b + typedef void (APIENTRYP PFNGLNORMAL3BVPROC)(const GLbyte *v); + GLAPI PFNGLNORMAL3BVPROC glad_glNormal3bv; +#define glNormal3bv glad_glNormal3bv + typedef void (APIENTRYP PFNGLNORMAL3DPROC)(GLdouble nx, GLdouble ny, GLdouble nz); + GLAPI PFNGLNORMAL3DPROC glad_glNormal3d; +#define glNormal3d glad_glNormal3d + typedef void (APIENTRYP PFNGLNORMAL3DVPROC)(const GLdouble *v); + GLAPI PFNGLNORMAL3DVPROC glad_glNormal3dv; +#define glNormal3dv glad_glNormal3dv + typedef void (APIENTRYP PFNGLNORMAL3FPROC)(GLfloat nx, GLfloat ny, GLfloat nz); + GLAPI PFNGLNORMAL3FPROC glad_glNormal3f; +#define glNormal3f glad_glNormal3f + typedef void (APIENTRYP PFNGLNORMAL3FVPROC)(const GLfloat *v); + GLAPI PFNGLNORMAL3FVPROC glad_glNormal3fv; +#define glNormal3fv glad_glNormal3fv + typedef void (APIENTRYP PFNGLNORMAL3IPROC)(GLint nx, GLint ny, GLint nz); + GLAPI PFNGLNORMAL3IPROC glad_glNormal3i; +#define glNormal3i glad_glNormal3i + typedef void (APIENTRYP PFNGLNORMAL3IVPROC)(const GLint *v); + GLAPI PFNGLNORMAL3IVPROC glad_glNormal3iv; +#define glNormal3iv glad_glNormal3iv + typedef void (APIENTRYP PFNGLNORMAL3SPROC)(GLshort nx, GLshort ny, GLshort nz); + GLAPI PFNGLNORMAL3SPROC glad_glNormal3s; +#define glNormal3s glad_glNormal3s + typedef void (APIENTRYP PFNGLNORMAL3SVPROC)(const GLshort *v); + GLAPI PFNGLNORMAL3SVPROC glad_glNormal3sv; +#define glNormal3sv glad_glNormal3sv + typedef void (APIENTRYP PFNGLRASTERPOS2DPROC)(GLdouble x, GLdouble y); + GLAPI PFNGLRASTERPOS2DPROC glad_glRasterPos2d; +#define glRasterPos2d glad_glRasterPos2d + typedef void (APIENTRYP PFNGLRASTERPOS2DVPROC)(const GLdouble *v); + GLAPI PFNGLRASTERPOS2DVPROC glad_glRasterPos2dv; +#define glRasterPos2dv glad_glRasterPos2dv + typedef void (APIENTRYP PFNGLRASTERPOS2FPROC)(GLfloat x, GLfloat y); + GLAPI PFNGLRASTERPOS2FPROC glad_glRasterPos2f; +#define glRasterPos2f glad_glRasterPos2f + typedef void (APIENTRYP PFNGLRASTERPOS2FVPROC)(const GLfloat *v); + GLAPI PFNGLRASTERPOS2FVPROC glad_glRasterPos2fv; +#define glRasterPos2fv glad_glRasterPos2fv + typedef void (APIENTRYP PFNGLRASTERPOS2IPROC)(GLint x, GLint y); + GLAPI PFNGLRASTERPOS2IPROC glad_glRasterPos2i; +#define glRasterPos2i glad_glRasterPos2i + typedef void (APIENTRYP PFNGLRASTERPOS2IVPROC)(const GLint *v); + GLAPI PFNGLRASTERPOS2IVPROC glad_glRasterPos2iv; +#define glRasterPos2iv glad_glRasterPos2iv + typedef void (APIENTRYP PFNGLRASTERPOS2SPROC)(GLshort x, GLshort y); + GLAPI PFNGLRASTERPOS2SPROC glad_glRasterPos2s; +#define glRasterPos2s glad_glRasterPos2s + typedef void (APIENTRYP PFNGLRASTERPOS2SVPROC)(const GLshort *v); + GLAPI PFNGLRASTERPOS2SVPROC glad_glRasterPos2sv; +#define glRasterPos2sv glad_glRasterPos2sv + typedef void (APIENTRYP PFNGLRASTERPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z); + GLAPI PFNGLRASTERPOS3DPROC glad_glRasterPos3d; +#define glRasterPos3d glad_glRasterPos3d + typedef void (APIENTRYP PFNGLRASTERPOS3DVPROC)(const GLdouble *v); + GLAPI PFNGLRASTERPOS3DVPROC glad_glRasterPos3dv; +#define glRasterPos3dv glad_glRasterPos3dv + typedef void (APIENTRYP PFNGLRASTERPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z); + GLAPI PFNGLRASTERPOS3FPROC glad_glRasterPos3f; +#define glRasterPos3f glad_glRasterPos3f + typedef void (APIENTRYP PFNGLRASTERPOS3FVPROC)(const GLfloat *v); + GLAPI PFNGLRASTERPOS3FVPROC glad_glRasterPos3fv; +#define glRasterPos3fv glad_glRasterPos3fv + typedef void (APIENTRYP PFNGLRASTERPOS3IPROC)(GLint x, GLint y, GLint z); + GLAPI PFNGLRASTERPOS3IPROC glad_glRasterPos3i; +#define glRasterPos3i glad_glRasterPos3i + typedef void (APIENTRYP PFNGLRASTERPOS3IVPROC)(const GLint *v); + GLAPI PFNGLRASTERPOS3IVPROC glad_glRasterPos3iv; +#define glRasterPos3iv glad_glRasterPos3iv + typedef void (APIENTRYP PFNGLRASTERPOS3SPROC)(GLshort x, GLshort y, GLshort z); + GLAPI PFNGLRASTERPOS3SPROC glad_glRasterPos3s; +#define glRasterPos3s glad_glRasterPos3s + typedef void (APIENTRYP PFNGLRASTERPOS3SVPROC)(const GLshort *v); + GLAPI PFNGLRASTERPOS3SVPROC glad_glRasterPos3sv; +#define glRasterPos3sv glad_glRasterPos3sv + typedef void (APIENTRYP PFNGLRASTERPOS4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); + GLAPI PFNGLRASTERPOS4DPROC glad_glRasterPos4d; +#define glRasterPos4d glad_glRasterPos4d + typedef void (APIENTRYP PFNGLRASTERPOS4DVPROC)(const GLdouble *v); + GLAPI PFNGLRASTERPOS4DVPROC glad_glRasterPos4dv; +#define glRasterPos4dv glad_glRasterPos4dv + typedef void (APIENTRYP PFNGLRASTERPOS4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); + GLAPI PFNGLRASTERPOS4FPROC glad_glRasterPos4f; +#define glRasterPos4f glad_glRasterPos4f + typedef void (APIENTRYP PFNGLRASTERPOS4FVPROC)(const GLfloat *v); + GLAPI PFNGLRASTERPOS4FVPROC glad_glRasterPos4fv; +#define glRasterPos4fv glad_glRasterPos4fv + typedef void (APIENTRYP PFNGLRASTERPOS4IPROC)(GLint x, GLint y, GLint z, GLint w); + GLAPI PFNGLRASTERPOS4IPROC glad_glRasterPos4i; +#define glRasterPos4i glad_glRasterPos4i + typedef void (APIENTRYP PFNGLRASTERPOS4IVPROC)(const GLint *v); + GLAPI PFNGLRASTERPOS4IVPROC glad_glRasterPos4iv; +#define glRasterPos4iv glad_glRasterPos4iv + typedef void (APIENTRYP PFNGLRASTERPOS4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w); + GLAPI PFNGLRASTERPOS4SPROC glad_glRasterPos4s; +#define glRasterPos4s glad_glRasterPos4s + typedef void (APIENTRYP PFNGLRASTERPOS4SVPROC)(const GLshort *v); + GLAPI PFNGLRASTERPOS4SVPROC glad_glRasterPos4sv; +#define glRasterPos4sv glad_glRasterPos4sv + typedef void (APIENTRYP PFNGLRECTDPROC)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); + GLAPI PFNGLRECTDPROC glad_glRectd; +#define glRectd glad_glRectd + typedef void (APIENTRYP PFNGLRECTDVPROC)(const GLdouble *v1, const GLdouble *v2); + GLAPI PFNGLRECTDVPROC glad_glRectdv; +#define glRectdv glad_glRectdv + typedef void (APIENTRYP PFNGLRECTFPROC)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); + GLAPI PFNGLRECTFPROC glad_glRectf; +#define glRectf glad_glRectf + typedef void (APIENTRYP PFNGLRECTFVPROC)(const GLfloat *v1, const GLfloat *v2); + GLAPI PFNGLRECTFVPROC glad_glRectfv; +#define glRectfv glad_glRectfv + typedef void (APIENTRYP PFNGLRECTIPROC)(GLint x1, GLint y1, GLint x2, GLint y2); + GLAPI PFNGLRECTIPROC glad_glRecti; +#define glRecti glad_glRecti + typedef void (APIENTRYP PFNGLRECTIVPROC)(const GLint *v1, const GLint *v2); + GLAPI PFNGLRECTIVPROC glad_glRectiv; +#define glRectiv glad_glRectiv + typedef void (APIENTRYP PFNGLRECTSPROC)(GLshort x1, GLshort y1, GLshort x2, GLshort y2); + GLAPI PFNGLRECTSPROC glad_glRects; +#define glRects glad_glRects + typedef void (APIENTRYP PFNGLRECTSVPROC)(const GLshort *v1, const GLshort *v2); + GLAPI PFNGLRECTSVPROC glad_glRectsv; +#define glRectsv glad_glRectsv + typedef void (APIENTRYP PFNGLTEXCOORD1DPROC)(GLdouble s); + GLAPI PFNGLTEXCOORD1DPROC glad_glTexCoord1d; +#define glTexCoord1d glad_glTexCoord1d + typedef void (APIENTRYP PFNGLTEXCOORD1DVPROC)(const GLdouble *v); + GLAPI PFNGLTEXCOORD1DVPROC glad_glTexCoord1dv; +#define glTexCoord1dv glad_glTexCoord1dv + typedef void (APIENTRYP PFNGLTEXCOORD1FPROC)(GLfloat s); + GLAPI PFNGLTEXCOORD1FPROC glad_glTexCoord1f; +#define glTexCoord1f glad_glTexCoord1f + typedef void (APIENTRYP PFNGLTEXCOORD1FVPROC)(const GLfloat *v); + GLAPI PFNGLTEXCOORD1FVPROC glad_glTexCoord1fv; +#define glTexCoord1fv glad_glTexCoord1fv + typedef void (APIENTRYP PFNGLTEXCOORD1IPROC)(GLint s); + GLAPI PFNGLTEXCOORD1IPROC glad_glTexCoord1i; +#define glTexCoord1i glad_glTexCoord1i + typedef void (APIENTRYP PFNGLTEXCOORD1IVPROC)(const GLint *v); + GLAPI PFNGLTEXCOORD1IVPROC glad_glTexCoord1iv; +#define glTexCoord1iv glad_glTexCoord1iv + typedef void (APIENTRYP PFNGLTEXCOORD1SPROC)(GLshort s); + GLAPI PFNGLTEXCOORD1SPROC glad_glTexCoord1s; +#define glTexCoord1s glad_glTexCoord1s + typedef void (APIENTRYP PFNGLTEXCOORD1SVPROC)(const GLshort *v); + GLAPI PFNGLTEXCOORD1SVPROC glad_glTexCoord1sv; +#define glTexCoord1sv glad_glTexCoord1sv + typedef void (APIENTRYP PFNGLTEXCOORD2DPROC)(GLdouble s, GLdouble t); + GLAPI PFNGLTEXCOORD2DPROC glad_glTexCoord2d; +#define glTexCoord2d glad_glTexCoord2d + typedef void (APIENTRYP PFNGLTEXCOORD2DVPROC)(const GLdouble *v); + GLAPI PFNGLTEXCOORD2DVPROC glad_glTexCoord2dv; +#define glTexCoord2dv glad_glTexCoord2dv + typedef void (APIENTRYP PFNGLTEXCOORD2FPROC)(GLfloat s, GLfloat t); + GLAPI PFNGLTEXCOORD2FPROC glad_glTexCoord2f; +#define glTexCoord2f glad_glTexCoord2f + typedef void (APIENTRYP PFNGLTEXCOORD2FVPROC)(const GLfloat *v); + GLAPI PFNGLTEXCOORD2FVPROC glad_glTexCoord2fv; +#define glTexCoord2fv glad_glTexCoord2fv + typedef void (APIENTRYP PFNGLTEXCOORD2IPROC)(GLint s, GLint t); + GLAPI PFNGLTEXCOORD2IPROC glad_glTexCoord2i; +#define glTexCoord2i glad_glTexCoord2i + typedef void (APIENTRYP PFNGLTEXCOORD2IVPROC)(const GLint *v); + GLAPI PFNGLTEXCOORD2IVPROC glad_glTexCoord2iv; +#define glTexCoord2iv glad_glTexCoord2iv + typedef void (APIENTRYP PFNGLTEXCOORD2SPROC)(GLshort s, GLshort t); + GLAPI PFNGLTEXCOORD2SPROC glad_glTexCoord2s; +#define glTexCoord2s glad_glTexCoord2s + typedef void (APIENTRYP PFNGLTEXCOORD2SVPROC)(const GLshort *v); + GLAPI PFNGLTEXCOORD2SVPROC glad_glTexCoord2sv; +#define glTexCoord2sv glad_glTexCoord2sv + typedef void (APIENTRYP PFNGLTEXCOORD3DPROC)(GLdouble s, GLdouble t, GLdouble r); + GLAPI PFNGLTEXCOORD3DPROC glad_glTexCoord3d; +#define glTexCoord3d glad_glTexCoord3d + typedef void (APIENTRYP PFNGLTEXCOORD3DVPROC)(const GLdouble *v); + GLAPI PFNGLTEXCOORD3DVPROC glad_glTexCoord3dv; +#define glTexCoord3dv glad_glTexCoord3dv + typedef void (APIENTRYP PFNGLTEXCOORD3FPROC)(GLfloat s, GLfloat t, GLfloat r); + GLAPI PFNGLTEXCOORD3FPROC glad_glTexCoord3f; +#define glTexCoord3f glad_glTexCoord3f + typedef void (APIENTRYP PFNGLTEXCOORD3FVPROC)(const GLfloat *v); + GLAPI PFNGLTEXCOORD3FVPROC glad_glTexCoord3fv; +#define glTexCoord3fv glad_glTexCoord3fv + typedef void (APIENTRYP PFNGLTEXCOORD3IPROC)(GLint s, GLint t, GLint r); + GLAPI PFNGLTEXCOORD3IPROC glad_glTexCoord3i; +#define glTexCoord3i glad_glTexCoord3i + typedef void (APIENTRYP PFNGLTEXCOORD3IVPROC)(const GLint *v); + GLAPI PFNGLTEXCOORD3IVPROC glad_glTexCoord3iv; +#define glTexCoord3iv glad_glTexCoord3iv + typedef void (APIENTRYP PFNGLTEXCOORD3SPROC)(GLshort s, GLshort t, GLshort r); + GLAPI PFNGLTEXCOORD3SPROC glad_glTexCoord3s; +#define glTexCoord3s glad_glTexCoord3s + typedef void (APIENTRYP PFNGLTEXCOORD3SVPROC)(const GLshort *v); + GLAPI PFNGLTEXCOORD3SVPROC glad_glTexCoord3sv; +#define glTexCoord3sv glad_glTexCoord3sv + typedef void (APIENTRYP PFNGLTEXCOORD4DPROC)(GLdouble s, GLdouble t, GLdouble r, GLdouble q); + GLAPI PFNGLTEXCOORD4DPROC glad_glTexCoord4d; +#define glTexCoord4d glad_glTexCoord4d + typedef void (APIENTRYP PFNGLTEXCOORD4DVPROC)(const GLdouble *v); + GLAPI PFNGLTEXCOORD4DVPROC glad_glTexCoord4dv; +#define glTexCoord4dv glad_glTexCoord4dv + typedef void (APIENTRYP PFNGLTEXCOORD4FPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat q); + GLAPI PFNGLTEXCOORD4FPROC glad_glTexCoord4f; +#define glTexCoord4f glad_glTexCoord4f + typedef void (APIENTRYP PFNGLTEXCOORD4FVPROC)(const GLfloat *v); + GLAPI PFNGLTEXCOORD4FVPROC glad_glTexCoord4fv; +#define glTexCoord4fv glad_glTexCoord4fv + typedef void (APIENTRYP PFNGLTEXCOORD4IPROC)(GLint s, GLint t, GLint r, GLint q); + GLAPI PFNGLTEXCOORD4IPROC glad_glTexCoord4i; +#define glTexCoord4i glad_glTexCoord4i + typedef void (APIENTRYP PFNGLTEXCOORD4IVPROC)(const GLint *v); + GLAPI PFNGLTEXCOORD4IVPROC glad_glTexCoord4iv; +#define glTexCoord4iv glad_glTexCoord4iv + typedef void (APIENTRYP PFNGLTEXCOORD4SPROC)(GLshort s, GLshort t, GLshort r, GLshort q); + GLAPI PFNGLTEXCOORD4SPROC glad_glTexCoord4s; +#define glTexCoord4s glad_glTexCoord4s + typedef void (APIENTRYP PFNGLTEXCOORD4SVPROC)(const GLshort *v); + GLAPI PFNGLTEXCOORD4SVPROC glad_glTexCoord4sv; +#define glTexCoord4sv glad_glTexCoord4sv + typedef void (APIENTRYP PFNGLVERTEX2DPROC)(GLdouble x, GLdouble y); + GLAPI PFNGLVERTEX2DPROC glad_glVertex2d; +#define glVertex2d glad_glVertex2d + typedef void (APIENTRYP PFNGLVERTEX2DVPROC)(const GLdouble *v); + GLAPI PFNGLVERTEX2DVPROC glad_glVertex2dv; +#define glVertex2dv glad_glVertex2dv + typedef void (APIENTRYP PFNGLVERTEX2FPROC)(GLfloat x, GLfloat y); + GLAPI PFNGLVERTEX2FPROC glad_glVertex2f; +#define glVertex2f glad_glVertex2f + typedef void (APIENTRYP PFNGLVERTEX2FVPROC)(const GLfloat *v); + GLAPI PFNGLVERTEX2FVPROC glad_glVertex2fv; +#define glVertex2fv glad_glVertex2fv + typedef void (APIENTRYP PFNGLVERTEX2IPROC)(GLint x, GLint y); + GLAPI PFNGLVERTEX2IPROC glad_glVertex2i; +#define glVertex2i glad_glVertex2i + typedef void (APIENTRYP PFNGLVERTEX2IVPROC)(const GLint *v); + GLAPI PFNGLVERTEX2IVPROC glad_glVertex2iv; +#define glVertex2iv glad_glVertex2iv + typedef void (APIENTRYP PFNGLVERTEX2SPROC)(GLshort x, GLshort y); + GLAPI PFNGLVERTEX2SPROC glad_glVertex2s; +#define glVertex2s glad_glVertex2s + typedef void (APIENTRYP PFNGLVERTEX2SVPROC)(const GLshort *v); + GLAPI PFNGLVERTEX2SVPROC glad_glVertex2sv; +#define glVertex2sv glad_glVertex2sv + typedef void (APIENTRYP PFNGLVERTEX3DPROC)(GLdouble x, GLdouble y, GLdouble z); + GLAPI PFNGLVERTEX3DPROC glad_glVertex3d; +#define glVertex3d glad_glVertex3d + typedef void (APIENTRYP PFNGLVERTEX3DVPROC)(const GLdouble *v); + GLAPI PFNGLVERTEX3DVPROC glad_glVertex3dv; +#define glVertex3dv glad_glVertex3dv + typedef void (APIENTRYP PFNGLVERTEX3FPROC)(GLfloat x, GLfloat y, GLfloat z); + GLAPI PFNGLVERTEX3FPROC glad_glVertex3f; +#define glVertex3f glad_glVertex3f + typedef void (APIENTRYP PFNGLVERTEX3FVPROC)(const GLfloat *v); + GLAPI PFNGLVERTEX3FVPROC glad_glVertex3fv; +#define glVertex3fv glad_glVertex3fv + typedef void (APIENTRYP PFNGLVERTEX3IPROC)(GLint x, GLint y, GLint z); + GLAPI PFNGLVERTEX3IPROC glad_glVertex3i; +#define glVertex3i glad_glVertex3i + typedef void (APIENTRYP PFNGLVERTEX3IVPROC)(const GLint *v); + GLAPI PFNGLVERTEX3IVPROC glad_glVertex3iv; +#define glVertex3iv glad_glVertex3iv + typedef void (APIENTRYP PFNGLVERTEX3SPROC)(GLshort x, GLshort y, GLshort z); + GLAPI PFNGLVERTEX3SPROC glad_glVertex3s; +#define glVertex3s glad_glVertex3s + typedef void (APIENTRYP PFNGLVERTEX3SVPROC)(const GLshort *v); + GLAPI PFNGLVERTEX3SVPROC glad_glVertex3sv; +#define glVertex3sv glad_glVertex3sv + typedef void (APIENTRYP PFNGLVERTEX4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); + GLAPI PFNGLVERTEX4DPROC glad_glVertex4d; +#define glVertex4d glad_glVertex4d + typedef void (APIENTRYP PFNGLVERTEX4DVPROC)(const GLdouble *v); + GLAPI PFNGLVERTEX4DVPROC glad_glVertex4dv; +#define glVertex4dv glad_glVertex4dv + typedef void (APIENTRYP PFNGLVERTEX4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); + GLAPI PFNGLVERTEX4FPROC glad_glVertex4f; +#define glVertex4f glad_glVertex4f + typedef void (APIENTRYP PFNGLVERTEX4FVPROC)(const GLfloat *v); + GLAPI PFNGLVERTEX4FVPROC glad_glVertex4fv; +#define glVertex4fv glad_glVertex4fv + typedef void (APIENTRYP PFNGLVERTEX4IPROC)(GLint x, GLint y, GLint z, GLint w); + GLAPI PFNGLVERTEX4IPROC glad_glVertex4i; +#define glVertex4i glad_glVertex4i + typedef void (APIENTRYP PFNGLVERTEX4IVPROC)(const GLint *v); + GLAPI PFNGLVERTEX4IVPROC glad_glVertex4iv; +#define glVertex4iv glad_glVertex4iv + typedef void (APIENTRYP PFNGLVERTEX4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w); + GLAPI PFNGLVERTEX4SPROC glad_glVertex4s; +#define glVertex4s glad_glVertex4s + typedef void (APIENTRYP PFNGLVERTEX4SVPROC)(const GLshort *v); + GLAPI PFNGLVERTEX4SVPROC glad_glVertex4sv; +#define glVertex4sv glad_glVertex4sv + typedef void (APIENTRYP PFNGLCLIPPLANEPROC)(GLenum plane, const GLdouble *equation); + GLAPI PFNGLCLIPPLANEPROC glad_glClipPlane; +#define glClipPlane glad_glClipPlane + typedef void (APIENTRYP PFNGLCOLORMATERIALPROC)(GLenum face, GLenum mode); + GLAPI PFNGLCOLORMATERIALPROC glad_glColorMaterial; +#define glColorMaterial glad_glColorMaterial + typedef void (APIENTRYP PFNGLFOGFPROC)(GLenum pname, GLfloat param); + GLAPI PFNGLFOGFPROC glad_glFogf; +#define glFogf glad_glFogf + typedef void (APIENTRYP PFNGLFOGFVPROC)(GLenum pname, const GLfloat *params); + GLAPI PFNGLFOGFVPROC glad_glFogfv; +#define glFogfv glad_glFogfv + typedef void (APIENTRYP PFNGLFOGIPROC)(GLenum pname, GLint param); + GLAPI PFNGLFOGIPROC glad_glFogi; +#define glFogi glad_glFogi + typedef void (APIENTRYP PFNGLFOGIVPROC)(GLenum pname, const GLint *params); + GLAPI PFNGLFOGIVPROC glad_glFogiv; +#define glFogiv glad_glFogiv + typedef void (APIENTRYP PFNGLLIGHTFPROC)(GLenum light, GLenum pname, GLfloat param); + GLAPI PFNGLLIGHTFPROC glad_glLightf; +#define glLightf glad_glLightf + typedef void (APIENTRYP PFNGLLIGHTFVPROC)(GLenum light, GLenum pname, const GLfloat *params); + GLAPI PFNGLLIGHTFVPROC glad_glLightfv; +#define glLightfv glad_glLightfv + typedef void (APIENTRYP PFNGLLIGHTIPROC)(GLenum light, GLenum pname, GLint param); + GLAPI PFNGLLIGHTIPROC glad_glLighti; +#define glLighti glad_glLighti + typedef void (APIENTRYP PFNGLLIGHTIVPROC)(GLenum light, GLenum pname, const GLint *params); + GLAPI PFNGLLIGHTIVPROC glad_glLightiv; +#define glLightiv glad_glLightiv + typedef void (APIENTRYP PFNGLLIGHTMODELFPROC)(GLenum pname, GLfloat param); + GLAPI PFNGLLIGHTMODELFPROC glad_glLightModelf; +#define glLightModelf glad_glLightModelf + typedef void (APIENTRYP PFNGLLIGHTMODELFVPROC)(GLenum pname, const GLfloat *params); + GLAPI PFNGLLIGHTMODELFVPROC glad_glLightModelfv; +#define glLightModelfv glad_glLightModelfv + typedef void (APIENTRYP PFNGLLIGHTMODELIPROC)(GLenum pname, GLint param); + GLAPI PFNGLLIGHTMODELIPROC glad_glLightModeli; +#define glLightModeli glad_glLightModeli + typedef void (APIENTRYP PFNGLLIGHTMODELIVPROC)(GLenum pname, const GLint *params); + GLAPI PFNGLLIGHTMODELIVPROC glad_glLightModeliv; +#define glLightModeliv glad_glLightModeliv + typedef void (APIENTRYP PFNGLLINESTIPPLEPROC)(GLint factor, GLushort pattern); + GLAPI PFNGLLINESTIPPLEPROC glad_glLineStipple; +#define glLineStipple glad_glLineStipple + typedef void (APIENTRYP PFNGLMATERIALFPROC)(GLenum face, GLenum pname, GLfloat param); + GLAPI PFNGLMATERIALFPROC glad_glMaterialf; +#define glMaterialf glad_glMaterialf + typedef void (APIENTRYP PFNGLMATERIALFVPROC)(GLenum face, GLenum pname, const GLfloat *params); + GLAPI PFNGLMATERIALFVPROC glad_glMaterialfv; +#define glMaterialfv glad_glMaterialfv + typedef void (APIENTRYP PFNGLMATERIALIPROC)(GLenum face, GLenum pname, GLint param); + GLAPI PFNGLMATERIALIPROC glad_glMateriali; +#define glMateriali glad_glMateriali + typedef void (APIENTRYP PFNGLMATERIALIVPROC)(GLenum face, GLenum pname, const GLint *params); + GLAPI PFNGLMATERIALIVPROC glad_glMaterialiv; +#define glMaterialiv glad_glMaterialiv + typedef void (APIENTRYP PFNGLPOLYGONSTIPPLEPROC)(const GLubyte *mask); + GLAPI PFNGLPOLYGONSTIPPLEPROC glad_glPolygonStipple; +#define glPolygonStipple glad_glPolygonStipple + typedef void (APIENTRYP PFNGLSHADEMODELPROC)(GLenum mode); + GLAPI PFNGLSHADEMODELPROC glad_glShadeModel; +#define glShadeModel glad_glShadeModel + typedef void (APIENTRYP PFNGLTEXENVFPROC)(GLenum target, GLenum pname, GLfloat param); + GLAPI PFNGLTEXENVFPROC glad_glTexEnvf; +#define glTexEnvf glad_glTexEnvf + typedef void (APIENTRYP PFNGLTEXENVFVPROC)(GLenum target, GLenum pname, const GLfloat *params); + GLAPI PFNGLTEXENVFVPROC glad_glTexEnvfv; +#define glTexEnvfv glad_glTexEnvfv + typedef void (APIENTRYP PFNGLTEXENVIPROC)(GLenum target, GLenum pname, GLint param); + GLAPI PFNGLTEXENVIPROC glad_glTexEnvi; +#define glTexEnvi glad_glTexEnvi + typedef void (APIENTRYP PFNGLTEXENVIVPROC)(GLenum target, GLenum pname, const GLint *params); + GLAPI PFNGLTEXENVIVPROC glad_glTexEnviv; +#define glTexEnviv glad_glTexEnviv + typedef void (APIENTRYP PFNGLTEXGENDPROC)(GLenum coord, GLenum pname, GLdouble param); + GLAPI PFNGLTEXGENDPROC glad_glTexGend; +#define glTexGend glad_glTexGend + typedef void (APIENTRYP PFNGLTEXGENDVPROC)(GLenum coord, GLenum pname, const GLdouble *params); + GLAPI PFNGLTEXGENDVPROC glad_glTexGendv; +#define glTexGendv glad_glTexGendv + typedef void (APIENTRYP PFNGLTEXGENFPROC)(GLenum coord, GLenum pname, GLfloat param); + GLAPI PFNGLTEXGENFPROC glad_glTexGenf; +#define glTexGenf glad_glTexGenf + typedef void (APIENTRYP PFNGLTEXGENFVPROC)(GLenum coord, GLenum pname, const GLfloat *params); + GLAPI PFNGLTEXGENFVPROC glad_glTexGenfv; +#define glTexGenfv glad_glTexGenfv + typedef void (APIENTRYP PFNGLTEXGENIPROC)(GLenum coord, GLenum pname, GLint param); + GLAPI PFNGLTEXGENIPROC glad_glTexGeni; +#define glTexGeni glad_glTexGeni + typedef void (APIENTRYP PFNGLTEXGENIVPROC)(GLenum coord, GLenum pname, const GLint *params); + GLAPI PFNGLTEXGENIVPROC glad_glTexGeniv; +#define glTexGeniv glad_glTexGeniv + typedef void (APIENTRYP PFNGLFEEDBACKBUFFERPROC)(GLsizei size, GLenum type, GLfloat *buffer); + GLAPI PFNGLFEEDBACKBUFFERPROC glad_glFeedbackBuffer; +#define glFeedbackBuffer glad_glFeedbackBuffer + typedef void (APIENTRYP PFNGLSELECTBUFFERPROC)(GLsizei size, GLuint *buffer); + GLAPI PFNGLSELECTBUFFERPROC glad_glSelectBuffer; +#define glSelectBuffer glad_glSelectBuffer + typedef GLint (APIENTRYP PFNGLRENDERMODEPROC)(GLenum mode); + GLAPI PFNGLRENDERMODEPROC glad_glRenderMode; +#define glRenderMode glad_glRenderMode + typedef void (APIENTRYP PFNGLINITNAMESPROC)(); + GLAPI PFNGLINITNAMESPROC glad_glInitNames; +#define glInitNames glad_glInitNames + typedef void (APIENTRYP PFNGLLOADNAMEPROC)(GLuint name); + GLAPI PFNGLLOADNAMEPROC glad_glLoadName; +#define glLoadName glad_glLoadName + typedef void (APIENTRYP PFNGLPASSTHROUGHPROC)(GLfloat token); + GLAPI PFNGLPASSTHROUGHPROC glad_glPassThrough; +#define glPassThrough glad_glPassThrough + typedef void (APIENTRYP PFNGLPOPNAMEPROC)(); + GLAPI PFNGLPOPNAMEPROC glad_glPopName; +#define glPopName glad_glPopName + typedef void (APIENTRYP PFNGLPUSHNAMEPROC)(GLuint name); + GLAPI PFNGLPUSHNAMEPROC glad_glPushName; +#define glPushName glad_glPushName + typedef void (APIENTRYP PFNGLCLEARACCUMPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); + GLAPI PFNGLCLEARACCUMPROC glad_glClearAccum; +#define glClearAccum glad_glClearAccum + typedef void (APIENTRYP PFNGLCLEARINDEXPROC)(GLfloat c); + GLAPI PFNGLCLEARINDEXPROC glad_glClearIndex; +#define glClearIndex glad_glClearIndex + typedef void (APIENTRYP PFNGLINDEXMASKPROC)(GLuint mask); + GLAPI PFNGLINDEXMASKPROC glad_glIndexMask; +#define glIndexMask glad_glIndexMask + typedef void (APIENTRYP PFNGLACCUMPROC)(GLenum op, GLfloat value); + GLAPI PFNGLACCUMPROC glad_glAccum; +#define glAccum glad_glAccum + typedef void (APIENTRYP PFNGLPOPATTRIBPROC)(); + GLAPI PFNGLPOPATTRIBPROC glad_glPopAttrib; +#define glPopAttrib glad_glPopAttrib + typedef void (APIENTRYP PFNGLPUSHATTRIBPROC)(GLbitfield mask); + GLAPI PFNGLPUSHATTRIBPROC glad_glPushAttrib; +#define glPushAttrib glad_glPushAttrib + typedef void (APIENTRYP PFNGLMAP1DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); + GLAPI PFNGLMAP1DPROC glad_glMap1d; +#define glMap1d glad_glMap1d + typedef void (APIENTRYP PFNGLMAP1FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); + GLAPI PFNGLMAP1FPROC glad_glMap1f; +#define glMap1f glad_glMap1f + typedef void (APIENTRYP PFNGLMAP2DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); + GLAPI PFNGLMAP2DPROC glad_glMap2d; +#define glMap2d glad_glMap2d + typedef void (APIENTRYP PFNGLMAP2FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); + GLAPI PFNGLMAP2FPROC glad_glMap2f; +#define glMap2f glad_glMap2f + typedef void (APIENTRYP PFNGLMAPGRID1DPROC)(GLint un, GLdouble u1, GLdouble u2); + GLAPI PFNGLMAPGRID1DPROC glad_glMapGrid1d; +#define glMapGrid1d glad_glMapGrid1d + typedef void (APIENTRYP PFNGLMAPGRID1FPROC)(GLint un, GLfloat u1, GLfloat u2); + GLAPI PFNGLMAPGRID1FPROC glad_glMapGrid1f; +#define glMapGrid1f glad_glMapGrid1f + typedef void (APIENTRYP PFNGLMAPGRID2DPROC)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); + GLAPI PFNGLMAPGRID2DPROC glad_glMapGrid2d; +#define glMapGrid2d glad_glMapGrid2d + typedef void (APIENTRYP PFNGLMAPGRID2FPROC)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); + GLAPI PFNGLMAPGRID2FPROC glad_glMapGrid2f; +#define glMapGrid2f glad_glMapGrid2f + typedef void (APIENTRYP PFNGLEVALCOORD1DPROC)(GLdouble u); + GLAPI PFNGLEVALCOORD1DPROC glad_glEvalCoord1d; +#define glEvalCoord1d glad_glEvalCoord1d + typedef void (APIENTRYP PFNGLEVALCOORD1DVPROC)(const GLdouble *u); + GLAPI PFNGLEVALCOORD1DVPROC glad_glEvalCoord1dv; +#define glEvalCoord1dv glad_glEvalCoord1dv + typedef void (APIENTRYP PFNGLEVALCOORD1FPROC)(GLfloat u); + GLAPI PFNGLEVALCOORD1FPROC glad_glEvalCoord1f; +#define glEvalCoord1f glad_glEvalCoord1f + typedef void (APIENTRYP PFNGLEVALCOORD1FVPROC)(const GLfloat *u); + GLAPI PFNGLEVALCOORD1FVPROC glad_glEvalCoord1fv; +#define glEvalCoord1fv glad_glEvalCoord1fv + typedef void (APIENTRYP PFNGLEVALCOORD2DPROC)(GLdouble u, GLdouble v); + GLAPI PFNGLEVALCOORD2DPROC glad_glEvalCoord2d; +#define glEvalCoord2d glad_glEvalCoord2d + typedef void (APIENTRYP PFNGLEVALCOORD2DVPROC)(const GLdouble *u); + GLAPI PFNGLEVALCOORD2DVPROC glad_glEvalCoord2dv; +#define glEvalCoord2dv glad_glEvalCoord2dv + typedef void (APIENTRYP PFNGLEVALCOORD2FPROC)(GLfloat u, GLfloat v); + GLAPI PFNGLEVALCOORD2FPROC glad_glEvalCoord2f; +#define glEvalCoord2f glad_glEvalCoord2f + typedef void (APIENTRYP PFNGLEVALCOORD2FVPROC)(const GLfloat *u); + GLAPI PFNGLEVALCOORD2FVPROC glad_glEvalCoord2fv; +#define glEvalCoord2fv glad_glEvalCoord2fv + typedef void (APIENTRYP PFNGLEVALMESH1PROC)(GLenum mode, GLint i1, GLint i2); + GLAPI PFNGLEVALMESH1PROC glad_glEvalMesh1; +#define glEvalMesh1 glad_glEvalMesh1 + typedef void (APIENTRYP PFNGLEVALPOINT1PROC)(GLint i); + GLAPI PFNGLEVALPOINT1PROC glad_glEvalPoint1; +#define glEvalPoint1 glad_glEvalPoint1 + typedef void (APIENTRYP PFNGLEVALMESH2PROC)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); + GLAPI PFNGLEVALMESH2PROC glad_glEvalMesh2; +#define glEvalMesh2 glad_glEvalMesh2 + typedef void (APIENTRYP PFNGLEVALPOINT2PROC)(GLint i, GLint j); + GLAPI PFNGLEVALPOINT2PROC glad_glEvalPoint2; +#define glEvalPoint2 glad_glEvalPoint2 + typedef void (APIENTRYP PFNGLALPHAFUNCPROC)(GLenum func, GLfloat ref); + GLAPI PFNGLALPHAFUNCPROC glad_glAlphaFunc; +#define glAlphaFunc glad_glAlphaFunc + typedef void (APIENTRYP PFNGLPIXELZOOMPROC)(GLfloat xfactor, GLfloat yfactor); + GLAPI PFNGLPIXELZOOMPROC glad_glPixelZoom; +#define glPixelZoom glad_glPixelZoom + typedef void (APIENTRYP PFNGLPIXELTRANSFERFPROC)(GLenum pname, GLfloat param); + GLAPI PFNGLPIXELTRANSFERFPROC glad_glPixelTransferf; +#define glPixelTransferf glad_glPixelTransferf + typedef void (APIENTRYP PFNGLPIXELTRANSFERIPROC)(GLenum pname, GLint param); + GLAPI PFNGLPIXELTRANSFERIPROC glad_glPixelTransferi; +#define glPixelTransferi glad_glPixelTransferi + typedef void (APIENTRYP PFNGLPIXELMAPFVPROC)(GLenum map, GLsizei mapsize, const GLfloat *values); + GLAPI PFNGLPIXELMAPFVPROC glad_glPixelMapfv; +#define glPixelMapfv glad_glPixelMapfv + typedef void (APIENTRYP PFNGLPIXELMAPUIVPROC)(GLenum map, GLsizei mapsize, const GLuint *values); + GLAPI PFNGLPIXELMAPUIVPROC glad_glPixelMapuiv; +#define glPixelMapuiv glad_glPixelMapuiv + typedef void (APIENTRYP PFNGLPIXELMAPUSVPROC)(GLenum map, GLsizei mapsize, const GLushort *values); + GLAPI PFNGLPIXELMAPUSVPROC glad_glPixelMapusv; +#define glPixelMapusv glad_glPixelMapusv + typedef void (APIENTRYP PFNGLCOPYPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); + GLAPI PFNGLCOPYPIXELSPROC glad_glCopyPixels; +#define glCopyPixels glad_glCopyPixels + typedef void (APIENTRYP PFNGLDRAWPIXELSPROC)(GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); + GLAPI PFNGLDRAWPIXELSPROC glad_glDrawPixels; +#define glDrawPixels glad_glDrawPixels + typedef void (APIENTRYP PFNGLGETCLIPPLANEPROC)(GLenum plane, GLdouble *equation); + GLAPI PFNGLGETCLIPPLANEPROC glad_glGetClipPlane; +#define glGetClipPlane glad_glGetClipPlane + typedef void (APIENTRYP PFNGLGETLIGHTFVPROC)(GLenum light, GLenum pname, GLfloat *params); + GLAPI PFNGLGETLIGHTFVPROC glad_glGetLightfv; +#define glGetLightfv glad_glGetLightfv + typedef void (APIENTRYP PFNGLGETLIGHTIVPROC)(GLenum light, GLenum pname, GLint *params); + GLAPI PFNGLGETLIGHTIVPROC glad_glGetLightiv; +#define glGetLightiv glad_glGetLightiv + typedef void (APIENTRYP PFNGLGETMAPDVPROC)(GLenum target, GLenum query, GLdouble *v); + GLAPI PFNGLGETMAPDVPROC glad_glGetMapdv; +#define glGetMapdv glad_glGetMapdv + typedef void (APIENTRYP PFNGLGETMAPFVPROC)(GLenum target, GLenum query, GLfloat *v); + GLAPI PFNGLGETMAPFVPROC glad_glGetMapfv; +#define glGetMapfv glad_glGetMapfv + typedef void (APIENTRYP PFNGLGETMAPIVPROC)(GLenum target, GLenum query, GLint *v); + GLAPI PFNGLGETMAPIVPROC glad_glGetMapiv; +#define glGetMapiv glad_glGetMapiv + typedef void (APIENTRYP PFNGLGETMATERIALFVPROC)(GLenum face, GLenum pname, GLfloat *params); + GLAPI PFNGLGETMATERIALFVPROC glad_glGetMaterialfv; +#define glGetMaterialfv glad_glGetMaterialfv + typedef void (APIENTRYP PFNGLGETMATERIALIVPROC)(GLenum face, GLenum pname, GLint *params); + GLAPI PFNGLGETMATERIALIVPROC glad_glGetMaterialiv; +#define glGetMaterialiv glad_glGetMaterialiv + typedef void (APIENTRYP PFNGLGETPIXELMAPFVPROC)(GLenum map, GLfloat *values); + GLAPI PFNGLGETPIXELMAPFVPROC glad_glGetPixelMapfv; +#define glGetPixelMapfv glad_glGetPixelMapfv + typedef void (APIENTRYP PFNGLGETPIXELMAPUIVPROC)(GLenum map, GLuint *values); + GLAPI PFNGLGETPIXELMAPUIVPROC glad_glGetPixelMapuiv; +#define glGetPixelMapuiv glad_glGetPixelMapuiv + typedef void (APIENTRYP PFNGLGETPIXELMAPUSVPROC)(GLenum map, GLushort *values); + GLAPI PFNGLGETPIXELMAPUSVPROC glad_glGetPixelMapusv; +#define glGetPixelMapusv glad_glGetPixelMapusv + typedef void (APIENTRYP PFNGLGETPOLYGONSTIPPLEPROC)(GLubyte *mask); + GLAPI PFNGLGETPOLYGONSTIPPLEPROC glad_glGetPolygonStipple; +#define glGetPolygonStipple glad_glGetPolygonStipple + typedef void (APIENTRYP PFNGLGETTEXENVFVPROC)(GLenum target, GLenum pname, GLfloat *params); + GLAPI PFNGLGETTEXENVFVPROC glad_glGetTexEnvfv; +#define glGetTexEnvfv glad_glGetTexEnvfv + typedef void (APIENTRYP PFNGLGETTEXENVIVPROC)(GLenum target, GLenum pname, GLint *params); + GLAPI PFNGLGETTEXENVIVPROC glad_glGetTexEnviv; +#define glGetTexEnviv glad_glGetTexEnviv + typedef void (APIENTRYP PFNGLGETTEXGENDVPROC)(GLenum coord, GLenum pname, GLdouble *params); + GLAPI PFNGLGETTEXGENDVPROC glad_glGetTexGendv; +#define glGetTexGendv glad_glGetTexGendv + typedef void (APIENTRYP PFNGLGETTEXGENFVPROC)(GLenum coord, GLenum pname, GLfloat *params); + GLAPI PFNGLGETTEXGENFVPROC glad_glGetTexGenfv; +#define glGetTexGenfv glad_glGetTexGenfv + typedef void (APIENTRYP PFNGLGETTEXGENIVPROC)(GLenum coord, GLenum pname, GLint *params); + GLAPI PFNGLGETTEXGENIVPROC glad_glGetTexGeniv; +#define glGetTexGeniv glad_glGetTexGeniv + typedef GLboolean (APIENTRYP PFNGLISLISTPROC)(GLuint list); + GLAPI PFNGLISLISTPROC glad_glIsList; +#define glIsList glad_glIsList + typedef void (APIENTRYP PFNGLFRUSTUMPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); + GLAPI PFNGLFRUSTUMPROC glad_glFrustum; +#define glFrustum glad_glFrustum + typedef void (APIENTRYP PFNGLLOADIDENTITYPROC)(); + GLAPI PFNGLLOADIDENTITYPROC glad_glLoadIdentity; +#define glLoadIdentity glad_glLoadIdentity + typedef void (APIENTRYP PFNGLLOADMATRIXFPROC)(const GLfloat *m); + GLAPI PFNGLLOADMATRIXFPROC glad_glLoadMatrixf; +#define glLoadMatrixf glad_glLoadMatrixf + typedef void (APIENTRYP PFNGLLOADMATRIXDPROC)(const GLdouble *m); + GLAPI PFNGLLOADMATRIXDPROC glad_glLoadMatrixd; +#define glLoadMatrixd glad_glLoadMatrixd + typedef void (APIENTRYP PFNGLMATRIXMODEPROC)(GLenum mode); + GLAPI PFNGLMATRIXMODEPROC glad_glMatrixMode; +#define glMatrixMode glad_glMatrixMode + typedef void (APIENTRYP PFNGLMULTMATRIXFPROC)(const GLfloat *m); + GLAPI PFNGLMULTMATRIXFPROC glad_glMultMatrixf; +#define glMultMatrixf glad_glMultMatrixf + typedef void (APIENTRYP PFNGLMULTMATRIXDPROC)(const GLdouble *m); + GLAPI PFNGLMULTMATRIXDPROC glad_glMultMatrixd; +#define glMultMatrixd glad_glMultMatrixd + typedef void (APIENTRYP PFNGLORTHOPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); + GLAPI PFNGLORTHOPROC glad_glOrtho; +#define glOrtho glad_glOrtho + typedef void (APIENTRYP PFNGLPOPMATRIXPROC)(); + GLAPI PFNGLPOPMATRIXPROC glad_glPopMatrix; +#define glPopMatrix glad_glPopMatrix + typedef void (APIENTRYP PFNGLPUSHMATRIXPROC)(); + GLAPI PFNGLPUSHMATRIXPROC glad_glPushMatrix; +#define glPushMatrix glad_glPushMatrix + typedef void (APIENTRYP PFNGLROTATEDPROC)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z); + GLAPI PFNGLROTATEDPROC glad_glRotated; +#define glRotated glad_glRotated + typedef void (APIENTRYP PFNGLROTATEFPROC)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); + GLAPI PFNGLROTATEFPROC glad_glRotatef; +#define glRotatef glad_glRotatef + typedef void (APIENTRYP PFNGLSCALEDPROC)(GLdouble x, GLdouble y, GLdouble z); + GLAPI PFNGLSCALEDPROC glad_glScaled; +#define glScaled glad_glScaled + typedef void (APIENTRYP PFNGLSCALEFPROC)(GLfloat x, GLfloat y, GLfloat z); + GLAPI PFNGLSCALEFPROC glad_glScalef; +#define glScalef glad_glScalef + typedef void (APIENTRYP PFNGLTRANSLATEDPROC)(GLdouble x, GLdouble y, GLdouble z); + GLAPI PFNGLTRANSLATEDPROC glad_glTranslated; +#define glTranslated glad_glTranslated + typedef void (APIENTRYP PFNGLTRANSLATEFPROC)(GLfloat x, GLfloat y, GLfloat z); + GLAPI PFNGLTRANSLATEFPROC glad_glTranslatef; +#define glTranslatef glad_glTranslatef +#endif +#ifndef GL_VERSION_1_1 +#define GL_VERSION_1_1 1 + GLAPI int GLAD_GL_VERSION_1_1; + typedef void (APIENTRYP PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count); + GLAPI PFNGLDRAWARRAYSPROC glad_glDrawArrays; +#define glDrawArrays glad_glDrawArrays + typedef void (APIENTRYP PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices); + GLAPI PFNGLDRAWELEMENTSPROC glad_glDrawElements; +#define glDrawElements glad_glDrawElements + typedef void (APIENTRYP PFNGLGETPOINTERVPROC)(GLenum pname, void **params); + GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv; +#define glGetPointerv glad_glGetPointerv + typedef void (APIENTRYP PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units); + GLAPI PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset; +#define glPolygonOffset glad_glPolygonOffset + typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); + GLAPI PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D; +#define glCopyTexImage1D glad_glCopyTexImage1D + typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); + GLAPI PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D; +#define glCopyTexImage2D glad_glCopyTexImage2D + typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); + GLAPI PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D; +#define glCopyTexSubImage1D glad_glCopyTexSubImage1D + typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); + GLAPI PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D; +#define glCopyTexSubImage2D glad_glCopyTexSubImage2D + typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); + GLAPI PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D; +#define glTexSubImage1D glad_glTexSubImage1D + typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); + GLAPI PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D; +#define glTexSubImage2D glad_glTexSubImage2D + typedef void (APIENTRYP PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture); + GLAPI PFNGLBINDTEXTUREPROC glad_glBindTexture; +#define glBindTexture glad_glBindTexture + typedef void (APIENTRYP PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint *textures); + GLAPI PFNGLDELETETEXTURESPROC glad_glDeleteTextures; +#define glDeleteTextures glad_glDeleteTextures + typedef void (APIENTRYP PFNGLGENTEXTURESPROC)(GLsizei n, GLuint *textures); + GLAPI PFNGLGENTEXTURESPROC glad_glGenTextures; +#define glGenTextures glad_glGenTextures + typedef GLboolean (APIENTRYP PFNGLISTEXTUREPROC)(GLuint texture); + GLAPI PFNGLISTEXTUREPROC glad_glIsTexture; +#define glIsTexture glad_glIsTexture + typedef void (APIENTRYP PFNGLARRAYELEMENTPROC)(GLint i); + GLAPI PFNGLARRAYELEMENTPROC glad_glArrayElement; +#define glArrayElement glad_glArrayElement + typedef void (APIENTRYP PFNGLCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); + GLAPI PFNGLCOLORPOINTERPROC glad_glColorPointer; +#define glColorPointer glad_glColorPointer + typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEPROC)(GLenum array); + GLAPI PFNGLDISABLECLIENTSTATEPROC glad_glDisableClientState; +#define glDisableClientState glad_glDisableClientState + typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERPROC)(GLsizei stride, const void *pointer); + GLAPI PFNGLEDGEFLAGPOINTERPROC glad_glEdgeFlagPointer; +#define glEdgeFlagPointer glad_glEdgeFlagPointer + typedef void (APIENTRYP PFNGLENABLECLIENTSTATEPROC)(GLenum array); + GLAPI PFNGLENABLECLIENTSTATEPROC glad_glEnableClientState; +#define glEnableClientState glad_glEnableClientState + typedef void (APIENTRYP PFNGLINDEXPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer); + GLAPI PFNGLINDEXPOINTERPROC glad_glIndexPointer; +#define glIndexPointer glad_glIndexPointer + typedef void (APIENTRYP PFNGLINTERLEAVEDARRAYSPROC)(GLenum format, GLsizei stride, const void *pointer); + GLAPI PFNGLINTERLEAVEDARRAYSPROC glad_glInterleavedArrays; +#define glInterleavedArrays glad_glInterleavedArrays + typedef void (APIENTRYP PFNGLNORMALPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer); + GLAPI PFNGLNORMALPOINTERPROC glad_glNormalPointer; +#define glNormalPointer glad_glNormalPointer + typedef void (APIENTRYP PFNGLTEXCOORDPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); + GLAPI PFNGLTEXCOORDPOINTERPROC glad_glTexCoordPointer; +#define glTexCoordPointer glad_glTexCoordPointer + typedef void (APIENTRYP PFNGLVERTEXPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); + GLAPI PFNGLVERTEXPOINTERPROC glad_glVertexPointer; +#define glVertexPointer glad_glVertexPointer + typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTPROC)(GLsizei n, const GLuint *textures, GLboolean *residences); + GLAPI PFNGLARETEXTURESRESIDENTPROC glad_glAreTexturesResident; +#define glAreTexturesResident glad_glAreTexturesResident + typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESPROC)(GLsizei n, const GLuint *textures, const GLfloat *priorities); + GLAPI PFNGLPRIORITIZETEXTURESPROC glad_glPrioritizeTextures; +#define glPrioritizeTextures glad_glPrioritizeTextures + typedef void (APIENTRYP PFNGLINDEXUBPROC)(GLubyte c); + GLAPI PFNGLINDEXUBPROC glad_glIndexub; +#define glIndexub glad_glIndexub + typedef void (APIENTRYP PFNGLINDEXUBVPROC)(const GLubyte *c); + GLAPI PFNGLINDEXUBVPROC glad_glIndexubv; +#define glIndexubv glad_glIndexubv + typedef void (APIENTRYP PFNGLPOPCLIENTATTRIBPROC)(); + GLAPI PFNGLPOPCLIENTATTRIBPROC glad_glPopClientAttrib; +#define glPopClientAttrib glad_glPopClientAttrib + typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBPROC)(GLbitfield mask); + GLAPI PFNGLPUSHCLIENTATTRIBPROC glad_glPushClientAttrib; +#define glPushClientAttrib glad_glPushClientAttrib +#endif +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 + GLAPI int GLAD_GL_VERSION_1_2; + typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); + GLAPI PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements; +#define glDrawRangeElements glad_glDrawRangeElements + typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); + GLAPI PFNGLTEXIMAGE3DPROC glad_glTexImage3D; +#define glTexImage3D glad_glTexImage3D + typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); + GLAPI PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D; +#define glTexSubImage3D glad_glTexSubImage3D + typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); + GLAPI PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D; +#define glCopyTexSubImage3D glad_glCopyTexSubImage3D +#endif +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 + GLAPI int GLAD_GL_VERSION_1_3; + typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC)(GLenum texture); + GLAPI PFNGLACTIVETEXTUREPROC glad_glActiveTexture; +#define glActiveTexture glad_glActiveTexture + typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert); + GLAPI PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage; +#define glSampleCoverage glad_glSampleCoverage + typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); + GLAPI PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D; +#define glCompressedTexImage3D glad_glCompressedTexImage3D + typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); + GLAPI PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D; +#define glCompressedTexImage2D glad_glCompressedTexImage2D + typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); + GLAPI PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D; +#define glCompressedTexImage1D glad_glCompressedTexImage1D + typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); + GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D; +#define glCompressedTexSubImage3D glad_glCompressedTexSubImage3D + typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); + GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D; +#define glCompressedTexSubImage2D glad_glCompressedTexSubImage2D + typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); + GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D; +#define glCompressedTexSubImage1D glad_glCompressedTexSubImage1D + typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void *img); + GLAPI PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage; +#define glGetCompressedTexImage glad_glGetCompressedTexImage + typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC)(GLenum texture); + GLAPI PFNGLCLIENTACTIVETEXTUREPROC glad_glClientActiveTexture; +#define glClientActiveTexture glad_glClientActiveTexture + typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC)(GLenum target, GLdouble s); + GLAPI PFNGLMULTITEXCOORD1DPROC glad_glMultiTexCoord1d; +#define glMultiTexCoord1d glad_glMultiTexCoord1d + typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC)(GLenum target, const GLdouble *v); + GLAPI PFNGLMULTITEXCOORD1DVPROC glad_glMultiTexCoord1dv; +#define glMultiTexCoord1dv glad_glMultiTexCoord1dv + typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC)(GLenum target, GLfloat s); + GLAPI PFNGLMULTITEXCOORD1FPROC glad_glMultiTexCoord1f; +#define glMultiTexCoord1f glad_glMultiTexCoord1f + typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC)(GLenum target, const GLfloat *v); + GLAPI PFNGLMULTITEXCOORD1FVPROC glad_glMultiTexCoord1fv; +#define glMultiTexCoord1fv glad_glMultiTexCoord1fv + typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC)(GLenum target, GLint s); + GLAPI PFNGLMULTITEXCOORD1IPROC glad_glMultiTexCoord1i; +#define glMultiTexCoord1i glad_glMultiTexCoord1i + typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC)(GLenum target, const GLint *v); + GLAPI PFNGLMULTITEXCOORD1IVPROC glad_glMultiTexCoord1iv; +#define glMultiTexCoord1iv glad_glMultiTexCoord1iv + typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC)(GLenum target, GLshort s); + GLAPI PFNGLMULTITEXCOORD1SPROC glad_glMultiTexCoord1s; +#define glMultiTexCoord1s glad_glMultiTexCoord1s + typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC)(GLenum target, const GLshort *v); + GLAPI PFNGLMULTITEXCOORD1SVPROC glad_glMultiTexCoord1sv; +#define glMultiTexCoord1sv glad_glMultiTexCoord1sv + typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC)(GLenum target, GLdouble s, GLdouble t); + GLAPI PFNGLMULTITEXCOORD2DPROC glad_glMultiTexCoord2d; +#define glMultiTexCoord2d glad_glMultiTexCoord2d + typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC)(GLenum target, const GLdouble *v); + GLAPI PFNGLMULTITEXCOORD2DVPROC glad_glMultiTexCoord2dv; +#define glMultiTexCoord2dv glad_glMultiTexCoord2dv + typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC)(GLenum target, GLfloat s, GLfloat t); + GLAPI PFNGLMULTITEXCOORD2FPROC glad_glMultiTexCoord2f; +#define glMultiTexCoord2f glad_glMultiTexCoord2f + typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC)(GLenum target, const GLfloat *v); + GLAPI PFNGLMULTITEXCOORD2FVPROC glad_glMultiTexCoord2fv; +#define glMultiTexCoord2fv glad_glMultiTexCoord2fv + typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC)(GLenum target, GLint s, GLint t); + GLAPI PFNGLMULTITEXCOORD2IPROC glad_glMultiTexCoord2i; +#define glMultiTexCoord2i glad_glMultiTexCoord2i + typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC)(GLenum target, const GLint *v); + GLAPI PFNGLMULTITEXCOORD2IVPROC glad_glMultiTexCoord2iv; +#define glMultiTexCoord2iv glad_glMultiTexCoord2iv + typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC)(GLenum target, GLshort s, GLshort t); + GLAPI PFNGLMULTITEXCOORD2SPROC glad_glMultiTexCoord2s; +#define glMultiTexCoord2s glad_glMultiTexCoord2s + typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC)(GLenum target, const GLshort *v); + GLAPI PFNGLMULTITEXCOORD2SVPROC glad_glMultiTexCoord2sv; +#define glMultiTexCoord2sv glad_glMultiTexCoord2sv + typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r); + GLAPI PFNGLMULTITEXCOORD3DPROC glad_glMultiTexCoord3d; +#define glMultiTexCoord3d glad_glMultiTexCoord3d + typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC)(GLenum target, const GLdouble *v); + GLAPI PFNGLMULTITEXCOORD3DVPROC glad_glMultiTexCoord3dv; +#define glMultiTexCoord3dv glad_glMultiTexCoord3dv + typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r); + GLAPI PFNGLMULTITEXCOORD3FPROC glad_glMultiTexCoord3f; +#define glMultiTexCoord3f glad_glMultiTexCoord3f + typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC)(GLenum target, const GLfloat *v); + GLAPI PFNGLMULTITEXCOORD3FVPROC glad_glMultiTexCoord3fv; +#define glMultiTexCoord3fv glad_glMultiTexCoord3fv + typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC)(GLenum target, GLint s, GLint t, GLint r); + GLAPI PFNGLMULTITEXCOORD3IPROC glad_glMultiTexCoord3i; +#define glMultiTexCoord3i glad_glMultiTexCoord3i + typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC)(GLenum target, const GLint *v); + GLAPI PFNGLMULTITEXCOORD3IVPROC glad_glMultiTexCoord3iv; +#define glMultiTexCoord3iv glad_glMultiTexCoord3iv + typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC)(GLenum target, GLshort s, GLshort t, GLshort r); + GLAPI PFNGLMULTITEXCOORD3SPROC glad_glMultiTexCoord3s; +#define glMultiTexCoord3s glad_glMultiTexCoord3s + typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC)(GLenum target, const GLshort *v); + GLAPI PFNGLMULTITEXCOORD3SVPROC glad_glMultiTexCoord3sv; +#define glMultiTexCoord3sv glad_glMultiTexCoord3sv + typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); + GLAPI PFNGLMULTITEXCOORD4DPROC glad_glMultiTexCoord4d; +#define glMultiTexCoord4d glad_glMultiTexCoord4d + typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC)(GLenum target, const GLdouble *v); + GLAPI PFNGLMULTITEXCOORD4DVPROC glad_glMultiTexCoord4dv; +#define glMultiTexCoord4dv glad_glMultiTexCoord4dv + typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); + GLAPI PFNGLMULTITEXCOORD4FPROC glad_glMultiTexCoord4f; +#define glMultiTexCoord4f glad_glMultiTexCoord4f + typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC)(GLenum target, const GLfloat *v); + GLAPI PFNGLMULTITEXCOORD4FVPROC glad_glMultiTexCoord4fv; +#define glMultiTexCoord4fv glad_glMultiTexCoord4fv + typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q); + GLAPI PFNGLMULTITEXCOORD4IPROC glad_glMultiTexCoord4i; +#define glMultiTexCoord4i glad_glMultiTexCoord4i + typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC)(GLenum target, const GLint *v); + GLAPI PFNGLMULTITEXCOORD4IVPROC glad_glMultiTexCoord4iv; +#define glMultiTexCoord4iv glad_glMultiTexCoord4iv + typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); + GLAPI PFNGLMULTITEXCOORD4SPROC glad_glMultiTexCoord4s; +#define glMultiTexCoord4s glad_glMultiTexCoord4s + typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC)(GLenum target, const GLshort *v); + GLAPI PFNGLMULTITEXCOORD4SVPROC glad_glMultiTexCoord4sv; +#define glMultiTexCoord4sv glad_glMultiTexCoord4sv + typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC)(const GLfloat *m); + GLAPI PFNGLLOADTRANSPOSEMATRIXFPROC glad_glLoadTransposeMatrixf; +#define glLoadTransposeMatrixf glad_glLoadTransposeMatrixf + typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC)(const GLdouble *m); + GLAPI PFNGLLOADTRANSPOSEMATRIXDPROC glad_glLoadTransposeMatrixd; +#define glLoadTransposeMatrixd glad_glLoadTransposeMatrixd + typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC)(const GLfloat *m); + GLAPI PFNGLMULTTRANSPOSEMATRIXFPROC glad_glMultTransposeMatrixf; +#define glMultTransposeMatrixf glad_glMultTransposeMatrixf + typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC)(const GLdouble *m); + GLAPI PFNGLMULTTRANSPOSEMATRIXDPROC glad_glMultTransposeMatrixd; +#define glMultTransposeMatrixd glad_glMultTransposeMatrixd +#endif +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 + GLAPI int GLAD_GL_VERSION_1_4; + typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); + GLAPI PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate; +#define glBlendFuncSeparate glad_glBlendFuncSeparate + typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC)(GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); + GLAPI PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays; +#define glMultiDrawArrays glad_glMultiDrawArrays + typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount); + GLAPI PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements; +#define glMultiDrawElements glad_glMultiDrawElements + typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param); + GLAPI PFNGLPOINTPARAMETERFPROC glad_glPointParameterf; +#define glPointParameterf glad_glPointParameterf + typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat *params); + GLAPI PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv; +#define glPointParameterfv glad_glPointParameterfv + typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param); + GLAPI PFNGLPOINTPARAMETERIPROC glad_glPointParameteri; +#define glPointParameteri glad_glPointParameteri + typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint *params); + GLAPI PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv; +#define glPointParameteriv glad_glPointParameteriv + typedef void (APIENTRYP PFNGLFOGCOORDFPROC)(GLfloat coord); + GLAPI PFNGLFOGCOORDFPROC glad_glFogCoordf; +#define glFogCoordf glad_glFogCoordf + typedef void (APIENTRYP PFNGLFOGCOORDFVPROC)(const GLfloat *coord); + GLAPI PFNGLFOGCOORDFVPROC glad_glFogCoordfv; +#define glFogCoordfv glad_glFogCoordfv + typedef void (APIENTRYP PFNGLFOGCOORDDPROC)(GLdouble coord); + GLAPI PFNGLFOGCOORDDPROC glad_glFogCoordd; +#define glFogCoordd glad_glFogCoordd + typedef void (APIENTRYP PFNGLFOGCOORDDVPROC)(const GLdouble *coord); + GLAPI PFNGLFOGCOORDDVPROC glad_glFogCoorddv; +#define glFogCoorddv glad_glFogCoorddv + typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer); + GLAPI PFNGLFOGCOORDPOINTERPROC glad_glFogCoordPointer; +#define glFogCoordPointer glad_glFogCoordPointer + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue); + GLAPI PFNGLSECONDARYCOLOR3BPROC glad_glSecondaryColor3b; +#define glSecondaryColor3b glad_glSecondaryColor3b + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC)(const GLbyte *v); + GLAPI PFNGLSECONDARYCOLOR3BVPROC glad_glSecondaryColor3bv; +#define glSecondaryColor3bv glad_glSecondaryColor3bv + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue); + GLAPI PFNGLSECONDARYCOLOR3DPROC glad_glSecondaryColor3d; +#define glSecondaryColor3d glad_glSecondaryColor3d + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC)(const GLdouble *v); + GLAPI PFNGLSECONDARYCOLOR3DVPROC glad_glSecondaryColor3dv; +#define glSecondaryColor3dv glad_glSecondaryColor3dv + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue); + GLAPI PFNGLSECONDARYCOLOR3FPROC glad_glSecondaryColor3f; +#define glSecondaryColor3f glad_glSecondaryColor3f + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC)(const GLfloat *v); + GLAPI PFNGLSECONDARYCOLOR3FVPROC glad_glSecondaryColor3fv; +#define glSecondaryColor3fv glad_glSecondaryColor3fv + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC)(GLint red, GLint green, GLint blue); + GLAPI PFNGLSECONDARYCOLOR3IPROC glad_glSecondaryColor3i; +#define glSecondaryColor3i glad_glSecondaryColor3i + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC)(const GLint *v); + GLAPI PFNGLSECONDARYCOLOR3IVPROC glad_glSecondaryColor3iv; +#define glSecondaryColor3iv glad_glSecondaryColor3iv + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue); + GLAPI PFNGLSECONDARYCOLOR3SPROC glad_glSecondaryColor3s; +#define glSecondaryColor3s glad_glSecondaryColor3s + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC)(const GLshort *v); + GLAPI PFNGLSECONDARYCOLOR3SVPROC glad_glSecondaryColor3sv; +#define glSecondaryColor3sv glad_glSecondaryColor3sv + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue); + GLAPI PFNGLSECONDARYCOLOR3UBPROC glad_glSecondaryColor3ub; +#define glSecondaryColor3ub glad_glSecondaryColor3ub + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC)(const GLubyte *v); + GLAPI PFNGLSECONDARYCOLOR3UBVPROC glad_glSecondaryColor3ubv; +#define glSecondaryColor3ubv glad_glSecondaryColor3ubv + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue); + GLAPI PFNGLSECONDARYCOLOR3UIPROC glad_glSecondaryColor3ui; +#define glSecondaryColor3ui glad_glSecondaryColor3ui + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC)(const GLuint *v); + GLAPI PFNGLSECONDARYCOLOR3UIVPROC glad_glSecondaryColor3uiv; +#define glSecondaryColor3uiv glad_glSecondaryColor3uiv + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue); + GLAPI PFNGLSECONDARYCOLOR3USPROC glad_glSecondaryColor3us; +#define glSecondaryColor3us glad_glSecondaryColor3us + typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC)(const GLushort *v); + GLAPI PFNGLSECONDARYCOLOR3USVPROC glad_glSecondaryColor3usv; +#define glSecondaryColor3usv glad_glSecondaryColor3usv + typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); + GLAPI PFNGLSECONDARYCOLORPOINTERPROC glad_glSecondaryColorPointer; +#define glSecondaryColorPointer glad_glSecondaryColorPointer + typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC)(GLdouble x, GLdouble y); + GLAPI PFNGLWINDOWPOS2DPROC glad_glWindowPos2d; +#define glWindowPos2d glad_glWindowPos2d + typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC)(const GLdouble *v); + GLAPI PFNGLWINDOWPOS2DVPROC glad_glWindowPos2dv; +#define glWindowPos2dv glad_glWindowPos2dv + typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC)(GLfloat x, GLfloat y); + GLAPI PFNGLWINDOWPOS2FPROC glad_glWindowPos2f; +#define glWindowPos2f glad_glWindowPos2f + typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC)(const GLfloat *v); + GLAPI PFNGLWINDOWPOS2FVPROC glad_glWindowPos2fv; +#define glWindowPos2fv glad_glWindowPos2fv + typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC)(GLint x, GLint y); + GLAPI PFNGLWINDOWPOS2IPROC glad_glWindowPos2i; +#define glWindowPos2i glad_glWindowPos2i + typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC)(const GLint *v); + GLAPI PFNGLWINDOWPOS2IVPROC glad_glWindowPos2iv; +#define glWindowPos2iv glad_glWindowPos2iv + typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC)(GLshort x, GLshort y); + GLAPI PFNGLWINDOWPOS2SPROC glad_glWindowPos2s; +#define glWindowPos2s glad_glWindowPos2s + typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC)(const GLshort *v); + GLAPI PFNGLWINDOWPOS2SVPROC glad_glWindowPos2sv; +#define glWindowPos2sv glad_glWindowPos2sv + typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z); + GLAPI PFNGLWINDOWPOS3DPROC glad_glWindowPos3d; +#define glWindowPos3d glad_glWindowPos3d + typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC)(const GLdouble *v); + GLAPI PFNGLWINDOWPOS3DVPROC glad_glWindowPos3dv; +#define glWindowPos3dv glad_glWindowPos3dv + typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z); + GLAPI PFNGLWINDOWPOS3FPROC glad_glWindowPos3f; +#define glWindowPos3f glad_glWindowPos3f + typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC)(const GLfloat *v); + GLAPI PFNGLWINDOWPOS3FVPROC glad_glWindowPos3fv; +#define glWindowPos3fv glad_glWindowPos3fv + typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC)(GLint x, GLint y, GLint z); + GLAPI PFNGLWINDOWPOS3IPROC glad_glWindowPos3i; +#define glWindowPos3i glad_glWindowPos3i + typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC)(const GLint *v); + GLAPI PFNGLWINDOWPOS3IVPROC glad_glWindowPos3iv; +#define glWindowPos3iv glad_glWindowPos3iv + typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC)(GLshort x, GLshort y, GLshort z); + GLAPI PFNGLWINDOWPOS3SPROC glad_glWindowPos3s; +#define glWindowPos3s glad_glWindowPos3s + typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC)(const GLshort *v); + GLAPI PFNGLWINDOWPOS3SVPROC glad_glWindowPos3sv; +#define glWindowPos3sv glad_glWindowPos3sv + typedef void (APIENTRYP PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); + GLAPI PFNGLBLENDCOLORPROC glad_glBlendColor; +#define glBlendColor glad_glBlendColor + typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC)(GLenum mode); + GLAPI PFNGLBLENDEQUATIONPROC glad_glBlendEquation; +#define glBlendEquation glad_glBlendEquation +#endif +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 + GLAPI int GLAD_GL_VERSION_1_5; + typedef void (APIENTRYP PFNGLGENQUERIESPROC)(GLsizei n, GLuint *ids); + GLAPI PFNGLGENQUERIESPROC glad_glGenQueries; +#define glGenQueries glad_glGenQueries + typedef void (APIENTRYP PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint *ids); + GLAPI PFNGLDELETEQUERIESPROC glad_glDeleteQueries; +#define glDeleteQueries glad_glDeleteQueries + typedef GLboolean (APIENTRYP PFNGLISQUERYPROC)(GLuint id); + GLAPI PFNGLISQUERYPROC glad_glIsQuery; +#define glIsQuery glad_glIsQuery + typedef void (APIENTRYP PFNGLBEGINQUERYPROC)(GLenum target, GLuint id); + GLAPI PFNGLBEGINQUERYPROC glad_glBeginQuery; +#define glBeginQuery glad_glBeginQuery + typedef void (APIENTRYP PFNGLENDQUERYPROC)(GLenum target); + GLAPI PFNGLENDQUERYPROC glad_glEndQuery; +#define glEndQuery glad_glEndQuery + typedef void (APIENTRYP PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint *params); + GLAPI PFNGLGETQUERYIVPROC glad_glGetQueryiv; +#define glGetQueryiv glad_glGetQueryiv + typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint *params); + GLAPI PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv; +#define glGetQueryObjectiv glad_glGetQueryObjectiv + typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint *params); + GLAPI PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv; +#define glGetQueryObjectuiv glad_glGetQueryObjectuiv + typedef void (APIENTRYP PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer); + GLAPI PFNGLBINDBUFFERPROC glad_glBindBuffer; +#define glBindBuffer glad_glBindBuffer + typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint *buffers); + GLAPI PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers; +#define glDeleteBuffers glad_glDeleteBuffers + typedef void (APIENTRYP PFNGLGENBUFFERSPROC)(GLsizei n, GLuint *buffers); + GLAPI PFNGLGENBUFFERSPROC glad_glGenBuffers; +#define glGenBuffers glad_glGenBuffers + typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC)(GLuint buffer); + GLAPI PFNGLISBUFFERPROC glad_glIsBuffer; +#define glIsBuffer glad_glIsBuffer + typedef void (APIENTRYP PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void *data, GLenum usage); + GLAPI PFNGLBUFFERDATAPROC glad_glBufferData; +#define glBufferData glad_glBufferData + typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const void *data); + GLAPI PFNGLBUFFERSUBDATAPROC glad_glBufferSubData; +#define glBufferSubData glad_glBufferSubData + typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, void *data); + GLAPI PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData; +#define glGetBufferSubData glad_glGetBufferSubData + typedef void * (APIENTRYP PFNGLMAPBUFFERPROC)(GLenum target, GLenum access); + GLAPI PFNGLMAPBUFFERPROC glad_glMapBuffer; +#define glMapBuffer glad_glMapBuffer + typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC)(GLenum target); + GLAPI PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer; +#define glUnmapBuffer glad_glUnmapBuffer + typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); + GLAPI PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv; +#define glGetBufferParameteriv glad_glGetBufferParameteriv + typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, void **params); + GLAPI PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv; +#define glGetBufferPointerv glad_glGetBufferPointerv +#endif +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 + GLAPI int GLAD_GL_VERSION_2_0; + typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha); + GLAPI PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate; +#define glBlendEquationSeparate glad_glBlendEquationSeparate + typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum *bufs); + GLAPI PFNGLDRAWBUFFERSPROC glad_glDrawBuffers; +#define glDrawBuffers glad_glDrawBuffers + typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); + GLAPI PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate; +#define glStencilOpSeparate glad_glStencilOpSeparate + typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask); + GLAPI PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate; +#define glStencilFuncSeparate glad_glStencilFuncSeparate + typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask); + GLAPI PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate; +#define glStencilMaskSeparate glad_glStencilMaskSeparate + typedef void (APIENTRYP PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader); + GLAPI PFNGLATTACHSHADERPROC glad_glAttachShader; +#define glAttachShader glad_glAttachShader + typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar *name); + GLAPI PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation; +#define glBindAttribLocation glad_glBindAttribLocation + typedef void (APIENTRYP PFNGLCOMPILESHADERPROC)(GLuint shader); + GLAPI PFNGLCOMPILESHADERPROC glad_glCompileShader; +#define glCompileShader glad_glCompileShader + typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC)(); + GLAPI PFNGLCREATEPROGRAMPROC glad_glCreateProgram; +#define glCreateProgram glad_glCreateProgram + typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC)(GLenum type); + GLAPI PFNGLCREATESHADERPROC glad_glCreateShader; +#define glCreateShader glad_glCreateShader + typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC)(GLuint program); + GLAPI PFNGLDELETEPROGRAMPROC glad_glDeleteProgram; +#define glDeleteProgram glad_glDeleteProgram + typedef void (APIENTRYP PFNGLDELETESHADERPROC)(GLuint shader); + GLAPI PFNGLDELETESHADERPROC glad_glDeleteShader; +#define glDeleteShader glad_glDeleteShader + typedef void (APIENTRYP PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader); + GLAPI PFNGLDETACHSHADERPROC glad_glDetachShader; +#define glDetachShader glad_glDetachShader + typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index); + GLAPI PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray; +#define glDisableVertexAttribArray glad_glDisableVertexAttribArray + typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index); + GLAPI PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray; +#define glEnableVertexAttribArray glad_glEnableVertexAttribArray + typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); + GLAPI PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib; +#define glGetActiveAttrib glad_glGetActiveAttrib + typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); + GLAPI PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform; +#define glGetActiveUniform glad_glGetActiveUniform + typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); + GLAPI PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders; +#define glGetAttachedShaders glad_glGetAttachedShaders + typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar *name); + GLAPI PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation; +#define glGetAttribLocation glad_glGetAttribLocation + typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint *params); + GLAPI PFNGLGETPROGRAMIVPROC glad_glGetProgramiv; +#define glGetProgramiv glad_glGetProgramiv + typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); + GLAPI PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog; +#define glGetProgramInfoLog glad_glGetProgramInfoLog + typedef void (APIENTRYP PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint *params); + GLAPI PFNGLGETSHADERIVPROC glad_glGetShaderiv; +#define glGetShaderiv glad_glGetShaderiv + typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); + GLAPI PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog; +#define glGetShaderInfoLog glad_glGetShaderInfoLog + typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); + GLAPI PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource; +#define glGetShaderSource glad_glGetShaderSource + typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar *name); + GLAPI PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation; +#define glGetUniformLocation glad_glGetUniformLocation + typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat *params); + GLAPI PFNGLGETUNIFORMFVPROC glad_glGetUniformfv; +#define glGetUniformfv glad_glGetUniformfv + typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint *params); + GLAPI PFNGLGETUNIFORMIVPROC glad_glGetUniformiv; +#define glGetUniformiv glad_glGetUniformiv + typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble *params); + GLAPI PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv; +#define glGetVertexAttribdv glad_glGetVertexAttribdv + typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat *params); + GLAPI PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv; +#define glGetVertexAttribfv glad_glGetVertexAttribfv + typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint *params); + GLAPI PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv; +#define glGetVertexAttribiv glad_glGetVertexAttribiv + typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, void **pointer); + GLAPI PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv; +#define glGetVertexAttribPointerv glad_glGetVertexAttribPointerv + typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC)(GLuint program); + GLAPI PFNGLISPROGRAMPROC glad_glIsProgram; +#define glIsProgram glad_glIsProgram + typedef GLboolean (APIENTRYP PFNGLISSHADERPROC)(GLuint shader); + GLAPI PFNGLISSHADERPROC glad_glIsShader; +#define glIsShader glad_glIsShader + typedef void (APIENTRYP PFNGLLINKPROGRAMPROC)(GLuint program); + GLAPI PFNGLLINKPROGRAMPROC glad_glLinkProgram; +#define glLinkProgram glad_glLinkProgram + typedef void (APIENTRYP PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); + GLAPI PFNGLSHADERSOURCEPROC glad_glShaderSource; +#define glShaderSource glad_glShaderSource + typedef void (APIENTRYP PFNGLUSEPROGRAMPROC)(GLuint program); + GLAPI PFNGLUSEPROGRAMPROC glad_glUseProgram; +#define glUseProgram glad_glUseProgram + typedef void (APIENTRYP PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0); + GLAPI PFNGLUNIFORM1FPROC glad_glUniform1f; +#define glUniform1f glad_glUniform1f + typedef void (APIENTRYP PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1); + GLAPI PFNGLUNIFORM2FPROC glad_glUniform2f; +#define glUniform2f glad_glUniform2f + typedef void (APIENTRYP PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); + GLAPI PFNGLUNIFORM3FPROC glad_glUniform3f; +#define glUniform3f glad_glUniform3f + typedef void (APIENTRYP PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); + GLAPI PFNGLUNIFORM4FPROC glad_glUniform4f; +#define glUniform4f glad_glUniform4f + typedef void (APIENTRYP PFNGLUNIFORM1IPROC)(GLint location, GLint v0); + GLAPI PFNGLUNIFORM1IPROC glad_glUniform1i; +#define glUniform1i glad_glUniform1i + typedef void (APIENTRYP PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1); + GLAPI PFNGLUNIFORM2IPROC glad_glUniform2i; +#define glUniform2i glad_glUniform2i + typedef void (APIENTRYP PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2); + GLAPI PFNGLUNIFORM3IPROC glad_glUniform3i; +#define glUniform3i glad_glUniform3i + typedef void (APIENTRYP PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); + GLAPI PFNGLUNIFORM4IPROC glad_glUniform4i; +#define glUniform4i glad_glUniform4i + typedef void (APIENTRYP PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat *value); + GLAPI PFNGLUNIFORM1FVPROC glad_glUniform1fv; +#define glUniform1fv glad_glUniform1fv + typedef void (APIENTRYP PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat *value); + GLAPI PFNGLUNIFORM2FVPROC glad_glUniform2fv; +#define glUniform2fv glad_glUniform2fv + typedef void (APIENTRYP PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat *value); + GLAPI PFNGLUNIFORM3FVPROC glad_glUniform3fv; +#define glUniform3fv glad_glUniform3fv + typedef void (APIENTRYP PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat *value); + GLAPI PFNGLUNIFORM4FVPROC glad_glUniform4fv; +#define glUniform4fv glad_glUniform4fv + typedef void (APIENTRYP PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint *value); + GLAPI PFNGLUNIFORM1IVPROC glad_glUniform1iv; +#define glUniform1iv glad_glUniform1iv + typedef void (APIENTRYP PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint *value); + GLAPI PFNGLUNIFORM2IVPROC glad_glUniform2iv; +#define glUniform2iv glad_glUniform2iv + typedef void (APIENTRYP PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint *value); + GLAPI PFNGLUNIFORM3IVPROC glad_glUniform3iv; +#define glUniform3iv glad_glUniform3iv + typedef void (APIENTRYP PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint *value); + GLAPI PFNGLUNIFORM4IVPROC glad_glUniform4iv; +#define glUniform4iv glad_glUniform4iv + typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + GLAPI PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv; +#define glUniformMatrix2fv glad_glUniformMatrix2fv + typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + GLAPI PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv; +#define glUniformMatrix3fv glad_glUniformMatrix3fv + typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + GLAPI PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv; +#define glUniformMatrix4fv glad_glUniformMatrix4fv + typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC)(GLuint program); + GLAPI PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram; +#define glValidateProgram glad_glValidateProgram + typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x); + GLAPI PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d; +#define glVertexAttrib1d glad_glVertexAttrib1d + typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble *v); + GLAPI PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv; +#define glVertexAttrib1dv glad_glVertexAttrib1dv + typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x); + GLAPI PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f; +#define glVertexAttrib1f glad_glVertexAttrib1f + typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat *v); + GLAPI PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv; +#define glVertexAttrib1fv glad_glVertexAttrib1fv + typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x); + GLAPI PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s; +#define glVertexAttrib1s glad_glVertexAttrib1s + typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort *v); + GLAPI PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv; +#define glVertexAttrib1sv glad_glVertexAttrib1sv + typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y); + GLAPI PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d; +#define glVertexAttrib2d glad_glVertexAttrib2d + typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble *v); + GLAPI PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv; +#define glVertexAttrib2dv glad_glVertexAttrib2dv + typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y); + GLAPI PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f; +#define glVertexAttrib2f glad_glVertexAttrib2f + typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat *v); + GLAPI PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv; +#define glVertexAttrib2fv glad_glVertexAttrib2fv + typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y); + GLAPI PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s; +#define glVertexAttrib2s glad_glVertexAttrib2s + typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort *v); + GLAPI PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv; +#define glVertexAttrib2sv glad_glVertexAttrib2sv + typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); + GLAPI PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d; +#define glVertexAttrib3d glad_glVertexAttrib3d + typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble *v); + GLAPI PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv; +#define glVertexAttrib3dv glad_glVertexAttrib3dv + typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); + GLAPI PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f; +#define glVertexAttrib3f glad_glVertexAttrib3f + typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat *v); + GLAPI PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv; +#define glVertexAttrib3fv glad_glVertexAttrib3fv + typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z); + GLAPI PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s; +#define glVertexAttrib3s glad_glVertexAttrib3s + typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort *v); + GLAPI PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv; +#define glVertexAttrib3sv glad_glVertexAttrib3sv + typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte *v); + GLAPI PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv; +#define glVertexAttrib4Nbv glad_glVertexAttrib4Nbv + typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint *v); + GLAPI PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv; +#define glVertexAttrib4Niv glad_glVertexAttrib4Niv + typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort *v); + GLAPI PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv; +#define glVertexAttrib4Nsv glad_glVertexAttrib4Nsv + typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); + GLAPI PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub; +#define glVertexAttrib4Nub glad_glVertexAttrib4Nub + typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte *v); + GLAPI PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv; +#define glVertexAttrib4Nubv glad_glVertexAttrib4Nubv + typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint *v); + GLAPI PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv; +#define glVertexAttrib4Nuiv glad_glVertexAttrib4Nuiv + typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort *v); + GLAPI PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv; +#define glVertexAttrib4Nusv glad_glVertexAttrib4Nusv + typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte *v); + GLAPI PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv; +#define glVertexAttrib4bv glad_glVertexAttrib4bv + typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + GLAPI PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d; +#define glVertexAttrib4d glad_glVertexAttrib4d + typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble *v); + GLAPI PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv; +#define glVertexAttrib4dv glad_glVertexAttrib4dv + typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + GLAPI PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f; +#define glVertexAttrib4f glad_glVertexAttrib4f + typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat *v); + GLAPI PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv; +#define glVertexAttrib4fv glad_glVertexAttrib4fv + typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint *v); + GLAPI PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv; +#define glVertexAttrib4iv glad_glVertexAttrib4iv + typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); + GLAPI PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s; +#define glVertexAttrib4s glad_glVertexAttrib4s + typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort *v); + GLAPI PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv; +#define glVertexAttrib4sv glad_glVertexAttrib4sv + typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte *v); + GLAPI PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv; +#define glVertexAttrib4ubv glad_glVertexAttrib4ubv + typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint *v); + GLAPI PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv; +#define glVertexAttrib4uiv glad_glVertexAttrib4uiv + typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort *v); + GLAPI PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv; +#define glVertexAttrib4usv glad_glVertexAttrib4usv + typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); + GLAPI PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer; +#define glVertexAttribPointer glad_glVertexAttribPointer +#endif +#ifndef GL_VERSION_2_1 +#define GL_VERSION_2_1 1 + GLAPI int GLAD_GL_VERSION_2_1; + typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + GLAPI PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv; +#define glUniformMatrix2x3fv glad_glUniformMatrix2x3fv + typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + GLAPI PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv; +#define glUniformMatrix3x2fv glad_glUniformMatrix3x2fv + typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + GLAPI PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv; +#define glUniformMatrix2x4fv glad_glUniformMatrix2x4fv + typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + GLAPI PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv; +#define glUniformMatrix4x2fv glad_glUniformMatrix4x2fv + typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + GLAPI PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv; +#define glUniformMatrix3x4fv glad_glUniformMatrix3x4fv + typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + GLAPI PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv; +#define glUniformMatrix4x3fv glad_glUniformMatrix4x3fv +#endif +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 + GLAPI int GLAD_GL_VERSION_3_0; + typedef void (APIENTRYP PFNGLCOLORMASKIPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); + GLAPI PFNGLCOLORMASKIPROC glad_glColorMaski; +#define glColorMaski glad_glColorMaski + typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC)(GLenum target, GLuint index, GLboolean *data); + GLAPI PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v; +#define glGetBooleani_v glad_glGetBooleani_v + typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint *data); + GLAPI PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v; +#define glGetIntegeri_v glad_glGetIntegeri_v + typedef void (APIENTRYP PFNGLENABLEIPROC)(GLenum target, GLuint index); + GLAPI PFNGLENABLEIPROC glad_glEnablei; +#define glEnablei glad_glEnablei + typedef void (APIENTRYP PFNGLDISABLEIPROC)(GLenum target, GLuint index); + GLAPI PFNGLDISABLEIPROC glad_glDisablei; +#define glDisablei glad_glDisablei + typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC)(GLenum target, GLuint index); + GLAPI PFNGLISENABLEDIPROC glad_glIsEnabledi; +#define glIsEnabledi glad_glIsEnabledi + typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode); + GLAPI PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback; +#define glBeginTransformFeedback glad_glBeginTransformFeedback + typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC)(); + GLAPI PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback; +#define glEndTransformFeedback glad_glEndTransformFeedback + typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); + GLAPI PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange; +#define glBindBufferRange glad_glBindBufferRange + typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer); + GLAPI PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase; +#define glBindBufferBase glad_glBindBufferBase + typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); + GLAPI PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings; +#define glTransformFeedbackVaryings glad_glTransformFeedbackVaryings + typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); + GLAPI PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying; +#define glGetTransformFeedbackVarying glad_glGetTransformFeedbackVarying + typedef void (APIENTRYP PFNGLCLAMPCOLORPROC)(GLenum target, GLenum clamp); + GLAPI PFNGLCLAMPCOLORPROC glad_glClampColor; +#define glClampColor glad_glClampColor + typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode); + GLAPI PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender; +#define glBeginConditionalRender glad_glBeginConditionalRender + typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC)(); + GLAPI PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender; +#define glEndConditionalRender glad_glEndConditionalRender + typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); + GLAPI PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer; +#define glVertexAttribIPointer glad_glVertexAttribIPointer + typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC)(GLuint index, GLenum pname, GLint *params); + GLAPI PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv; +#define glGetVertexAttribIiv glad_glGetVertexAttribIiv + typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint index, GLenum pname, GLuint *params); + GLAPI PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv; +#define glGetVertexAttribIuiv glad_glGetVertexAttribIuiv + typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC)(GLuint index, GLint x); + GLAPI PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i; +#define glVertexAttribI1i glad_glVertexAttribI1i + typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC)(GLuint index, GLint x, GLint y); + GLAPI PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i; +#define glVertexAttribI2i glad_glVertexAttribI2i + typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC)(GLuint index, GLint x, GLint y, GLint z); + GLAPI PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i; +#define glVertexAttribI3i glad_glVertexAttribI3i + typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w); + GLAPI PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i; +#define glVertexAttribI4i glad_glVertexAttribI4i + typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC)(GLuint index, GLuint x); + GLAPI PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui; +#define glVertexAttribI1ui glad_glVertexAttribI1ui + typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC)(GLuint index, GLuint x, GLuint y); + GLAPI PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui; +#define glVertexAttribI2ui glad_glVertexAttribI2ui + typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z); + GLAPI PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui; +#define glVertexAttribI3ui glad_glVertexAttribI3ui + typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); + GLAPI PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui; +#define glVertexAttribI4ui glad_glVertexAttribI4ui + typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC)(GLuint index, const GLint *v); + GLAPI PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv; +#define glVertexAttribI1iv glad_glVertexAttribI1iv + typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC)(GLuint index, const GLint *v); + GLAPI PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv; +#define glVertexAttribI2iv glad_glVertexAttribI2iv + typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC)(GLuint index, const GLint *v); + GLAPI PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv; +#define glVertexAttribI3iv glad_glVertexAttribI3iv + typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC)(GLuint index, const GLint *v); + GLAPI PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv; +#define glVertexAttribI4iv glad_glVertexAttribI4iv + typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC)(GLuint index, const GLuint *v); + GLAPI PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv; +#define glVertexAttribI1uiv glad_glVertexAttribI1uiv + typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC)(GLuint index, const GLuint *v); + GLAPI PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv; +#define glVertexAttribI2uiv glad_glVertexAttribI2uiv + typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC)(GLuint index, const GLuint *v); + GLAPI PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv; +#define glVertexAttribI3uiv glad_glVertexAttribI3uiv + typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC)(GLuint index, const GLuint *v); + GLAPI PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv; +#define glVertexAttribI4uiv glad_glVertexAttribI4uiv + typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC)(GLuint index, const GLbyte *v); + GLAPI PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv; +#define glVertexAttribI4bv glad_glVertexAttribI4bv + typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC)(GLuint index, const GLshort *v); + GLAPI PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv; +#define glVertexAttribI4sv glad_glVertexAttribI4sv + typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC)(GLuint index, const GLubyte *v); + GLAPI PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv; +#define glVertexAttribI4ubv glad_glVertexAttribI4ubv + typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC)(GLuint index, const GLushort *v); + GLAPI PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv; +#define glVertexAttribI4usv glad_glVertexAttribI4usv + typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC)(GLuint program, GLint location, GLuint *params); + GLAPI PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv; +#define glGetUniformuiv glad_glGetUniformuiv + typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC)(GLuint program, GLuint color, const GLchar *name); + GLAPI PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation; +#define glBindFragDataLocation glad_glBindFragDataLocation + typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC)(GLuint program, const GLchar *name); + GLAPI PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation; +#define glGetFragDataLocation glad_glGetFragDataLocation + typedef void (APIENTRYP PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0); + GLAPI PFNGLUNIFORM1UIPROC glad_glUniform1ui; +#define glUniform1ui glad_glUniform1ui + typedef void (APIENTRYP PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1); + GLAPI PFNGLUNIFORM2UIPROC glad_glUniform2ui; +#define glUniform2ui glad_glUniform2ui + typedef void (APIENTRYP PFNGLUNIFORM3UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2); + GLAPI PFNGLUNIFORM3UIPROC glad_glUniform3ui; +#define glUniform3ui glad_glUniform3ui + typedef void (APIENTRYP PFNGLUNIFORM4UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); + GLAPI PFNGLUNIFORM4UIPROC glad_glUniform4ui; +#define glUniform4ui glad_glUniform4ui + typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC)(GLint location, GLsizei count, const GLuint *value); + GLAPI PFNGLUNIFORM1UIVPROC glad_glUniform1uiv; +#define glUniform1uiv glad_glUniform1uiv + typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC)(GLint location, GLsizei count, const GLuint *value); + GLAPI PFNGLUNIFORM2UIVPROC glad_glUniform2uiv; +#define glUniform2uiv glad_glUniform2uiv + typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC)(GLint location, GLsizei count, const GLuint *value); + GLAPI PFNGLUNIFORM3UIVPROC glad_glUniform3uiv; +#define glUniform3uiv glad_glUniform3uiv + typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC)(GLint location, GLsizei count, const GLuint *value); + GLAPI PFNGLUNIFORM4UIVPROC glad_glUniform4uiv; +#define glUniform4uiv glad_glUniform4uiv + typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, const GLint *params); + GLAPI PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv; +#define glTexParameterIiv glad_glTexParameterIiv + typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, const GLuint *params); + GLAPI PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv; +#define glTexParameterIuiv glad_glTexParameterIuiv + typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, GLint *params); + GLAPI PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv; +#define glGetTexParameterIiv glad_glGetTexParameterIiv + typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, GLuint *params); + GLAPI PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv; +#define glGetTexParameterIuiv glad_glGetTexParameterIuiv + typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC)(GLenum buffer, GLint drawbuffer, const GLint *value); + GLAPI PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv; +#define glClearBufferiv glad_glClearBufferiv + typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC)(GLenum buffer, GLint drawbuffer, const GLuint *value); + GLAPI PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv; +#define glClearBufferuiv glad_glClearBufferuiv + typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC)(GLenum buffer, GLint drawbuffer, const GLfloat *value); + GLAPI PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv; +#define glClearBufferfv glad_glClearBufferfv + typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); + GLAPI PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi; +#define glClearBufferfi glad_glClearBufferfi + typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC)(GLenum name, GLuint index); + GLAPI PFNGLGETSTRINGIPROC glad_glGetStringi; +#define glGetStringi glad_glGetStringi + typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer); + GLAPI PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer; +#define glIsRenderbuffer glad_glIsRenderbuffer + typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer); + GLAPI PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer; +#define glBindRenderbuffer glad_glBindRenderbuffer + typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint *renderbuffers); + GLAPI PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers; +#define glDeleteRenderbuffers glad_glDeleteRenderbuffers + typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers); + GLAPI PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers; +#define glGenRenderbuffers glad_glGenRenderbuffers + typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); + GLAPI PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage; +#define glRenderbufferStorage glad_glRenderbufferStorage + typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); + GLAPI PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv; +#define glGetRenderbufferParameteriv glad_glGetRenderbufferParameteriv + typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer); + GLAPI PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer; +#define glIsFramebuffer glad_glIsFramebuffer + typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer); + GLAPI PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer; +#define glBindFramebuffer glad_glBindFramebuffer + typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint *framebuffers); + GLAPI PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers; +#define glDeleteFramebuffers glad_glDeleteFramebuffers + typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers); + GLAPI PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers; +#define glGenFramebuffers glad_glGenFramebuffers + typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target); + GLAPI PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus; +#define glCheckFramebufferStatus glad_glCheckFramebufferStatus + typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); + GLAPI PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D; +#define glFramebufferTexture1D glad_glFramebufferTexture1D + typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); + GLAPI PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D; +#define glFramebufferTexture2D glad_glFramebufferTexture2D + typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); + GLAPI PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D; +#define glFramebufferTexture3D glad_glFramebufferTexture3D + typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); + GLAPI PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer; +#define glFramebufferRenderbuffer glad_glFramebufferRenderbuffer + typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint *params); + GLAPI PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv; +#define glGetFramebufferAttachmentParameteriv glad_glGetFramebufferAttachmentParameteriv + typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC)(GLenum target); + GLAPI PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap; +#define glGenerateMipmap glad_glGenerateMipmap + typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); + GLAPI PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer; +#define glBlitFramebuffer glad_glBlitFramebuffer + typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + GLAPI PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample; +#define glRenderbufferStorageMultisample glad_glRenderbufferStorageMultisample + typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); + GLAPI PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer; +#define glFramebufferTextureLayer glad_glFramebufferTextureLayer + typedef void * (APIENTRYP PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); + GLAPI PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange; +#define glMapBufferRange glad_glMapBufferRange + typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length); + GLAPI PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange; +#define glFlushMappedBufferRange glad_glFlushMappedBufferRange + typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC)(GLuint array); + GLAPI PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray; +#define glBindVertexArray glad_glBindVertexArray + typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint *arrays); + GLAPI PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays; +#define glDeleteVertexArrays glad_glDeleteVertexArrays + typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays); + GLAPI PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays; +#define glGenVertexArrays glad_glGenVertexArrays + typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC)(GLuint array); + GLAPI PFNGLISVERTEXARRAYPROC glad_glIsVertexArray; +#define glIsVertexArray glad_glIsVertexArray +#endif +#ifndef GL_VERSION_3_1 +#define GL_VERSION_3_1 1 + GLAPI int GLAD_GL_VERSION_3_1; + typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount); + GLAPI PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced; +#define glDrawArraysInstanced glad_glDrawArraysInstanced + typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); + GLAPI PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced; +#define glDrawElementsInstanced glad_glDrawElementsInstanced + typedef void (APIENTRYP PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer); + GLAPI PFNGLTEXBUFFERPROC glad_glTexBuffer; +#define glTexBuffer glad_glTexBuffer + typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index); + GLAPI PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex; +#define glPrimitiveRestartIndex glad_glPrimitiveRestartIndex + typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); + GLAPI PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData; +#define glCopyBufferSubData glad_glCopyBufferSubData + typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); + GLAPI PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices; +#define glGetUniformIndices glad_glGetUniformIndices + typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); + GLAPI PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv; +#define glGetActiveUniformsiv glad_glGetActiveUniformsiv + typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); + GLAPI PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName; +#define glGetActiveUniformName glad_glGetActiveUniformName + typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program, const GLchar *uniformBlockName); + GLAPI PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex; +#define glGetUniformBlockIndex glad_glGetUniformBlockIndex + typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); + GLAPI PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv; +#define glGetActiveUniformBlockiv glad_glGetActiveUniformBlockiv + typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); + GLAPI PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName; +#define glGetActiveUniformBlockName glad_glGetActiveUniformBlockName + typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); + GLAPI PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding; +#define glUniformBlockBinding glad_glUniformBlockBinding +#endif +#ifndef GL_VERSION_3_2 +#define GL_VERSION_3_2 1 + GLAPI int GLAD_GL_VERSION_3_2; + typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); + GLAPI PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex; +#define glDrawElementsBaseVertex glad_glDrawElementsBaseVertex + typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); + GLAPI PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex; +#define glDrawRangeElementsBaseVertex glad_glDrawRangeElementsBaseVertex + typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); + GLAPI PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex; +#define glDrawElementsInstancedBaseVertex glad_glDrawElementsInstancedBaseVertex + typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); + GLAPI PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex; +#define glMultiDrawElementsBaseVertex glad_glMultiDrawElementsBaseVertex + typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC)(GLenum mode); + GLAPI PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex; +#define glProvokingVertex glad_glProvokingVertex + typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags); + GLAPI PFNGLFENCESYNCPROC glad_glFenceSync; +#define glFenceSync glad_glFenceSync + typedef GLboolean (APIENTRYP PFNGLISSYNCPROC)(GLsync sync); + GLAPI PFNGLISSYNCPROC glad_glIsSync; +#define glIsSync glad_glIsSync + typedef void (APIENTRYP PFNGLDELETESYNCPROC)(GLsync sync); + GLAPI PFNGLDELETESYNCPROC glad_glDeleteSync; +#define glDeleteSync glad_glDeleteSync + typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); + GLAPI PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync; +#define glClientWaitSync glad_glClientWaitSync + typedef void (APIENTRYP PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); + GLAPI PFNGLWAITSYNCPROC glad_glWaitSync; +#define glWaitSync glad_glWaitSync + typedef void (APIENTRYP PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 *data); + GLAPI PFNGLGETINTEGER64VPROC glad_glGetInteger64v; +#define glGetInteger64v glad_glGetInteger64v + typedef void (APIENTRYP PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); + GLAPI PFNGLGETSYNCIVPROC glad_glGetSynciv; +#define glGetSynciv glad_glGetSynciv + typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 *data); + GLAPI PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v; +#define glGetInteger64i_v glad_glGetInteger64i_v + typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum target, GLenum pname, GLint64 *params); + GLAPI PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v; +#define glGetBufferParameteri64v glad_glGetBufferParameteri64v + typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level); + GLAPI PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture; +#define glFramebufferTexture glad_glFramebufferTexture + typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); + GLAPI PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample; +#define glTexImage2DMultisample glad_glTexImage2DMultisample + typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); + GLAPI PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample; +#define glTexImage3DMultisample glad_glTexImage3DMultisample + typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat *val); + GLAPI PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv; +#define glGetMultisamplefv glad_glGetMultisamplefv + typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC)(GLuint maskNumber, GLbitfield mask); + GLAPI PFNGLSAMPLEMASKIPROC glad_glSampleMaski; +#define glSampleMaski glad_glSampleMaski +#endif +#ifndef GL_VERSION_3_3 +#define GL_VERSION_3_3 1 + GLAPI int GLAD_GL_VERSION_3_3; + typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); + GLAPI PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed; +#define glBindFragDataLocationIndexed glad_glBindFragDataLocationIndexed + typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC)(GLuint program, const GLchar *name); + GLAPI PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex; +#define glGetFragDataIndex glad_glGetFragDataIndex + typedef void (APIENTRYP PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint *samplers); + GLAPI PFNGLGENSAMPLERSPROC glad_glGenSamplers; +#define glGenSamplers glad_glGenSamplers + typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC)(GLsizei count, const GLuint *samplers); + GLAPI PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers; +#define glDeleteSamplers glad_glDeleteSamplers + typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC)(GLuint sampler); + GLAPI PFNGLISSAMPLERPROC glad_glIsSampler; +#define glIsSampler glad_glIsSampler + typedef void (APIENTRYP PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler); + GLAPI PFNGLBINDSAMPLERPROC glad_glBindSampler; +#define glBindSampler glad_glBindSampler + typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param); + GLAPI PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri; +#define glSamplerParameteri glad_glSamplerParameteri + typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, const GLint *param); + GLAPI PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv; +#define glSamplerParameteriv glad_glSamplerParameteriv + typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param); + GLAPI PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf; +#define glSamplerParameterf glad_glSamplerParameterf + typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, const GLfloat *param); + GLAPI PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv; +#define glSamplerParameterfv glad_glSamplerParameterfv + typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, const GLint *param); + GLAPI PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv; +#define glSamplerParameterIiv glad_glSamplerParameterIiv + typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, const GLuint *param); + GLAPI PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv; +#define glSamplerParameterIuiv glad_glSamplerParameterIuiv + typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, GLint *params); + GLAPI PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv; +#define glGetSamplerParameteriv glad_glGetSamplerParameteriv + typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, GLint *params); + GLAPI PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv; +#define glGetSamplerParameterIiv glad_glGetSamplerParameterIiv + typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, GLfloat *params); + GLAPI PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv; +#define glGetSamplerParameterfv glad_glGetSamplerParameterfv + typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, GLuint *params); + GLAPI PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv; +#define glGetSamplerParameterIuiv glad_glGetSamplerParameterIuiv + typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target); + GLAPI PFNGLQUERYCOUNTERPROC glad_glQueryCounter; +#define glQueryCounter glad_glQueryCounter + typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64 *params); + GLAPI PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v; +#define glGetQueryObjecti64v glad_glGetQueryObjecti64v + typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64 *params); + GLAPI PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v; +#define glGetQueryObjectui64v glad_glGetQueryObjectui64v + typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor); + GLAPI PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor; +#define glVertexAttribDivisor glad_glVertexAttribDivisor + typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); + GLAPI PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui; +#define glVertexAttribP1ui glad_glVertexAttribP1ui + typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + GLAPI PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv; +#define glVertexAttribP1uiv glad_glVertexAttribP1uiv + typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); + GLAPI PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui; +#define glVertexAttribP2ui glad_glVertexAttribP2ui + typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + GLAPI PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv; +#define glVertexAttribP2uiv glad_glVertexAttribP2uiv + typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); + GLAPI PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui; +#define glVertexAttribP3ui glad_glVertexAttribP3ui + typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + GLAPI PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv; +#define glVertexAttribP3uiv glad_glVertexAttribP3uiv + typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); + GLAPI PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui; +#define glVertexAttribP4ui glad_glVertexAttribP4ui + typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + GLAPI PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv; +#define glVertexAttribP4uiv glad_glVertexAttribP4uiv + typedef void (APIENTRYP PFNGLVERTEXP2UIPROC)(GLenum type, GLuint value); + GLAPI PFNGLVERTEXP2UIPROC glad_glVertexP2ui; +#define glVertexP2ui glad_glVertexP2ui + typedef void (APIENTRYP PFNGLVERTEXP2UIVPROC)(GLenum type, const GLuint *value); + GLAPI PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv; +#define glVertexP2uiv glad_glVertexP2uiv + typedef void (APIENTRYP PFNGLVERTEXP3UIPROC)(GLenum type, GLuint value); + GLAPI PFNGLVERTEXP3UIPROC glad_glVertexP3ui; +#define glVertexP3ui glad_glVertexP3ui + typedef void (APIENTRYP PFNGLVERTEXP3UIVPROC)(GLenum type, const GLuint *value); + GLAPI PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv; +#define glVertexP3uiv glad_glVertexP3uiv + typedef void (APIENTRYP PFNGLVERTEXP4UIPROC)(GLenum type, GLuint value); + GLAPI PFNGLVERTEXP4UIPROC glad_glVertexP4ui; +#define glVertexP4ui glad_glVertexP4ui + typedef void (APIENTRYP PFNGLVERTEXP4UIVPROC)(GLenum type, const GLuint *value); + GLAPI PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv; +#define glVertexP4uiv glad_glVertexP4uiv + typedef void (APIENTRYP PFNGLTEXCOORDP1UIPROC)(GLenum type, GLuint coords); + GLAPI PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui; +#define glTexCoordP1ui glad_glTexCoordP1ui + typedef void (APIENTRYP PFNGLTEXCOORDP1UIVPROC)(GLenum type, const GLuint *coords); + GLAPI PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv; +#define glTexCoordP1uiv glad_glTexCoordP1uiv + typedef void (APIENTRYP PFNGLTEXCOORDP2UIPROC)(GLenum type, GLuint coords); + GLAPI PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui; +#define glTexCoordP2ui glad_glTexCoordP2ui + typedef void (APIENTRYP PFNGLTEXCOORDP2UIVPROC)(GLenum type, const GLuint *coords); + GLAPI PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv; +#define glTexCoordP2uiv glad_glTexCoordP2uiv + typedef void (APIENTRYP PFNGLTEXCOORDP3UIPROC)(GLenum type, GLuint coords); + GLAPI PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui; +#define glTexCoordP3ui glad_glTexCoordP3ui + typedef void (APIENTRYP PFNGLTEXCOORDP3UIVPROC)(GLenum type, const GLuint *coords); + GLAPI PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv; +#define glTexCoordP3uiv glad_glTexCoordP3uiv + typedef void (APIENTRYP PFNGLTEXCOORDP4UIPROC)(GLenum type, GLuint coords); + GLAPI PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui; +#define glTexCoordP4ui glad_glTexCoordP4ui + typedef void (APIENTRYP PFNGLTEXCOORDP4UIVPROC)(GLenum type, const GLuint *coords); + GLAPI PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv; +#define glTexCoordP4uiv glad_glTexCoordP4uiv + typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIPROC)(GLenum texture, GLenum type, GLuint coords); + GLAPI PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui; +#define glMultiTexCoordP1ui glad_glMultiTexCoordP1ui + typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); + GLAPI PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv; +#define glMultiTexCoordP1uiv glad_glMultiTexCoordP1uiv + typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIPROC)(GLenum texture, GLenum type, GLuint coords); + GLAPI PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui; +#define glMultiTexCoordP2ui glad_glMultiTexCoordP2ui + typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); + GLAPI PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv; +#define glMultiTexCoordP2uiv glad_glMultiTexCoordP2uiv + typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIPROC)(GLenum texture, GLenum type, GLuint coords); + GLAPI PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui; +#define glMultiTexCoordP3ui glad_glMultiTexCoordP3ui + typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); + GLAPI PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv; +#define glMultiTexCoordP3uiv glad_glMultiTexCoordP3uiv + typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIPROC)(GLenum texture, GLenum type, GLuint coords); + GLAPI PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui; +#define glMultiTexCoordP4ui glad_glMultiTexCoordP4ui + typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); + GLAPI PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv; +#define glMultiTexCoordP4uiv glad_glMultiTexCoordP4uiv + typedef void (APIENTRYP PFNGLNORMALP3UIPROC)(GLenum type, GLuint coords); + GLAPI PFNGLNORMALP3UIPROC glad_glNormalP3ui; +#define glNormalP3ui glad_glNormalP3ui + typedef void (APIENTRYP PFNGLNORMALP3UIVPROC)(GLenum type, const GLuint *coords); + GLAPI PFNGLNORMALP3UIVPROC glad_glNormalP3uiv; +#define glNormalP3uiv glad_glNormalP3uiv + typedef void (APIENTRYP PFNGLCOLORP3UIPROC)(GLenum type, GLuint color); + GLAPI PFNGLCOLORP3UIPROC glad_glColorP3ui; +#define glColorP3ui glad_glColorP3ui + typedef void (APIENTRYP PFNGLCOLORP3UIVPROC)(GLenum type, const GLuint *color); + GLAPI PFNGLCOLORP3UIVPROC glad_glColorP3uiv; +#define glColorP3uiv glad_glColorP3uiv + typedef void (APIENTRYP PFNGLCOLORP4UIPROC)(GLenum type, GLuint color); + GLAPI PFNGLCOLORP4UIPROC glad_glColorP4ui; +#define glColorP4ui glad_glColorP4ui + typedef void (APIENTRYP PFNGLCOLORP4UIVPROC)(GLenum type, const GLuint *color); + GLAPI PFNGLCOLORP4UIVPROC glad_glColorP4uiv; +#define glColorP4uiv glad_glColorP4uiv + typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIPROC)(GLenum type, GLuint color); + GLAPI PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui; +#define glSecondaryColorP3ui glad_glSecondaryColorP3ui + typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC)(GLenum type, const GLuint *color); + GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv; +#define glSecondaryColorP3uiv glad_glSecondaryColorP3uiv +#endif +#define GL_MULTISAMPLE_ARB 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F +#define GL_SAMPLE_COVERAGE_ARB 0x80A0 +#define GL_SAMPLE_BUFFERS_ARB 0x80A8 +#define GL_SAMPLES_ARB 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB +#define GL_MULTISAMPLE_BIT_ARB 0x20000000 +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA +#ifndef GL_ARB_framebuffer_sRGB +#define GL_ARB_framebuffer_sRGB 1 + GLAPI int GLAD_GL_ARB_framebuffer_sRGB; +#endif +#ifndef GL_ARB_multisample +#define GL_ARB_multisample 1 + GLAPI int GLAD_GL_ARB_multisample; + typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC)(GLfloat value, GLboolean invert); + GLAPI PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB; +#define glSampleCoverageARB glad_glSampleCoverageARB +#endif +#ifndef GL_EXT_framebuffer_sRGB +#define GL_EXT_framebuffer_sRGB 1 + GLAPI int GLAD_GL_EXT_framebuffer_sRGB; +#endif + +#ifdef __cplusplus +} +#endif + +#endif +#endif // OPENGL diff --git a/rebound/source/src/gravity.c b/rebound/source/src/gravity.c new file mode 100644 index 0000000000000000000000000000000000000000..c7ecb17cb491846511db3301a8139912b877771b --- /dev/null +++ b/rebound/source/src/gravity.c @@ -0,0 +1,1486 @@ +/** + * @file gravity.c + * @brief Direct gravity calculation, O(N^2). + * @author Hanno Rein + * + * @details This is the crudest implementation of an N-body code + * which sums up every pair of particles. It is only useful very small + * particle numbers (N<~100) as it scales as O(N^2). Note that the MPI + * implementation is not well tested and only works for very specific + * problems. This should be resolved in the future. + * + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include "particle.h" +#include "rebound.h" +#include "tree.h" +#include "boundary.h" +#include "integrator_mercurius.h" +#include "integrator_trace.h" +#define MAX(a, b) ((a) > (b) ? (a) : (b)) ///< Returns the maximum of a and b + +#ifdef MPI +#include "communication_mpi.h" +#endif + +/** + * @brief The function loops over all trees to call calculate_forces_for_particle_from_cell() tree to calculate forces for each particle. + * @param r REBOUND simulation to consider + * @param pt Index of the particle the force is calculated for. + * @param gb Ghostbox plus position of the particle (precalculated). + */ +static void reb_calculate_acceleration_for_particle(const struct reb_simulation* const r, const int pt, const struct reb_vec6d gb); + + +/** + * Main Gravity Routine + */ +void reb_calculate_acceleration(struct reb_simulation* r){ + if (r->integrator != REB_INTEGRATOR_MERCURIUS && r->gravity == REB_GRAVITY_MERCURIUS){ + reb_simulation_warning(r,"You are using the Mercurius gravity routine with a non-Mercurius integrator. This will probably lead to unexpected behaviour. REBOUND is now setting the gravity routine back to rEB_GRAVITY_BASIC. To avoid this warning message, consider manually setting the gravity routine after changing integrators."); + r->gravity = REB_GRAVITY_BASIC; + + } + struct reb_particle* const particles = r->particles; + const int N = r->N; + const int N_active = r->N_active; + const double G = r->G; + const double softening2 = r->softening*r->softening; + const unsigned int _gravity_ignore_terms = r->gravity_ignore_terms; + const int _N_real = N - r->N_var; + const int _N_active = ((N_active==-1)?_N_real:N_active); + const int _testparticle_type = r->testparticle_type; + switch (r->gravity){ + case REB_GRAVITY_NONE: // Do nothing. + for (int j=0; jintegrator != REB_INTEGRATOR_WHFAST && r->integrator != REB_INTEGRATOR_SABA ){ + reb_simulation_warning(r, "An integrator other than WHFast/SABA is being used with REB_GRAVITY_JACOBI. This is probably not correct. Use another gravity routine such as REB_GRAVITY_BASIC."); + } + double Rjx = 0.; + double Rjy = 0.; + double Rjz = 0.; + double Mj = 0.; + for (int j=0; j1){ + //////////////// + // Jacobi Term + // Note: ignoring j==1 term here and below as they cancel + const double Qjx = particles[j].x - Rjx/Mj; + const double Qjy = particles[j].y - Rjy/Mj; + const double Qjz = particles[j].z - Rjz/Mj; + const double dr = sqrt(Qjx*Qjx + Qjy*Qjy + Qjz*Qjz); + double dQjdri = Mj; + if (iN_ghost_x; + const int N_ghost_y = r->N_ghost_y; + const int N_ghost_z = r->N_ghost_z; +#ifndef OPENMP // OPENMP off + const int starti = (_gravity_ignore_terms==0)?1:2; + const int startj = (_gravity_ignore_terms==2)?1:0; +#endif // OPENMP +#pragma omp parallel for + for (int i=0; i 1) return; + for (int j=startj; j 1) return; + for (int j=startj; j<_N_active; j++){ + const double dx = (gb.x+particles[i].x) - particles[j].x; + const double dy = (gb.y+particles[i].y) - particles[j].y; + const double dz = (gb.z+particles[i].z) - particles[j].z; + const double _r = sqrt(dx*dx + dy*dy + dz*dz + softening2); + const double prefact = G/(_r*_r*_r); + const double prefactj = -prefact*particles[j].m; + + particles[i].ax += prefactj*dx; + particles[i].ay += prefactj*dy; + particles[i].az += prefactj*dz; + if (_testparticle_type){ + const double prefacti = prefact*particles[i].m; + particles[j].ax += prefacti*dx; + particles[j].ay += prefacti*dy; + particles[j].az += prefacti*dz; + } + } + } +#else // OPENMP on + if (_testparticle_type){ +#pragma omp parallel for + for (int i=0; i<_N_active; i++){ + for (int j=_N_active; j<_N_real; j++){ + if (_gravity_ignore_terms==1 && ((j==1 && i==0) )) continue; + if (_gravity_ignore_terms==2 && ((j==0 || i==0) )) continue; + const double dx = (gb.x+particles[i].x) - particles[j].x; + const double dy = (gb.y+particles[i].y) - particles[j].y; + const double dz = (gb.z+particles[i].z) - particles[j].z; + const double _r = sqrt(dx*dx + dy*dy + dz*dz + softening2); + const double prefact = -G/(_r*_r*_r)*particles[j].m; + + particles[i].ax += prefact*dx; + particles[i].ay += prefact*dy; + particles[i].az += prefact*dz; + } + } + } +#endif // OPENMP + } + } + } + } + break; + case REB_GRAVITY_COMPENSATED: + { + if (r->N_allocated_gravity_csgravity_cs = realloc(r->gravity_cs,N*sizeof(struct reb_vec3d)); + r->N_allocated_gravity_cs = N; + } + struct reb_vec3d* restrict const cs = r->gravity_cs; +#pragma omp parallel for schedule(guided) + for (int i=0; i<_N_real; i++){ + particles[i].ax = 0.; + particles[i].ay = 0.; + particles[i].az = 0.; + cs[i].x = 0.; + cs[i].y = 0.; + cs[i].z = 0.; + } + // Summing over all massive particle pairs +#ifdef OPENMP +#pragma omp parallel for schedule(guided) + for (int i=0; i<_N_active; i++){ + for (int j=0; j<_N_active; j++){ + if (_gravity_ignore_terms==1 && ((j==1 && i==0) || (i==1 && j==0))) continue; + if (_gravity_ignore_terms==2 && ((j==0 || i==0))) continue; + if (i==j) continue; + const double dx = particles[i].x - particles[j].x; + const double dy = particles[i].y - particles[j].y; + const double dz = particles[i].z - particles[j].z; + const double r2 = dx*dx + dy*dy + dz*dz + softening2; + const double r = sqrt(r2); + const double prefact = G/(r2*r); + const double prefactj = -prefact*particles[j].m; + + { + double ix = prefactj*dx; + double yx = ix - cs[i].x; + double tx = particles[i].ax + yx; + cs[i].x = (tx - particles[i].ax) - yx; + particles[i].ax = tx; + + double iy = prefactj*dy; + double yy = iy- cs[i].y; + double ty = particles[i].ay + yy; + cs[i].y = (ty - particles[i].ay) - yy; + particles[i].ay = ty; + + double iz = prefactj*dz; + double yz = iz - cs[i].z; + double tz = particles[i].az + yz; + cs[i].z = (tz - particles[i].az) - yz; + particles[i].az = tz; + } + } + } + + // Testparticles +#pragma omp parallel for schedule(guided) + for (int i=_N_active; i<_N_real; i++){ + for (int j=0; j<_N_active; j++){ + if (_gravity_ignore_terms==1 && ((j==1 && i==0) || (i==1 && j==0))) continue; + if (_gravity_ignore_terms==2 && ((j==0 || i==0))) continue; + const double dx = particles[i].x - particles[j].x; + const double dy = particles[i].y - particles[j].y; + const double dz = particles[i].z - particles[j].z; + const double r2 = dx*dx + dy*dy + dz*dz + softening2; + const double r = sqrt(r2); + const double prefact = G/(r2*r); + const double prefactj = -prefact*particles[j].m; + + { + double ix = prefactj*dx; + double yx = ix - cs[i].x; + double tx = particles[i].ax + yx; + cs[i].x = (tx - particles[i].ax) - yx; + particles[i].ax = tx; + + double iy = prefactj*dy; + double yy = iy- cs[i].y; + double ty = particles[i].ay + yy; + cs[i].y = (ty - particles[i].ay) - yy; + particles[i].ay = ty; + + double iz = prefactj*dz; + double yz = iz - cs[i].z; + double tz = particles[i].az + yz; + cs[i].z = (tz - particles[i].az) - yz; + particles[i].az = tz; + } + } + } + if (_testparticle_type){ +#pragma omp parallel for schedule(guided) + for (int j=0; j<_N_active; j++){ + for (int i=_N_active; i<_N_real; i++){ + if (_gravity_ignore_terms==1 && ((j==1 && i==0) || (i==1 && j==0))) continue; + if (_gravity_ignore_terms==2 && ((j==0 || i==0))) continue; + const double dx = particles[i].x - particles[j].x; + const double dy = particles[i].y - particles[j].y; + const double dz = particles[i].z - particles[j].z; + const double r2 = dx*dx + dy*dy + dz*dz + softening2; + const double r = sqrt(r2); + const double prefact = G/(r2*r); + const double prefacti = prefact*particles[i].m; + { + double ix = prefacti*dx; + double yx = ix - cs[j].x; + double tx = particles[j].ax + yx; + cs[j].x = (tx - particles[j].ax) - yx; + particles[j].ax = tx; + + double iy = prefacti*dy; + double yy = iy - cs[j].y; + double ty = particles[j].ay + yy; + cs[j].y = (ty - particles[j].ay) - yy; + particles[j].ay = ty; + + double iz = prefacti*dz; + double yz = iz - cs[j].z; + double tz = particles[j].az + yz; + cs[j].z = (tz - particles[j].az) - yz; + particles[j].az = tz; + } + } + } + } +#else // OPENMP + for (int i=0; i<_N_active; i++){ + if (reb_sigint > 1) return; + for (int j=i+1; j<_N_active; j++){ + if (_gravity_ignore_terms==1 && ((j==1 && i==0) || (i==1 && j==0))) continue; + if (_gravity_ignore_terms==2 && ((j==0 || i==0))) continue; + const double dx = particles[i].x - particles[j].x; + const double dy = particles[i].y - particles[j].y; + const double dz = particles[i].z - particles[j].z; + const double r2 = dx*dx + dy*dy + dz*dz + softening2; + const double r = sqrt(r2); + const double prefact = G/(r2*r); + const double prefacti = prefact*particles[i].m; + const double prefactj = -prefact*particles[j].m; + + { + double ix = prefactj*dx; + double yx = ix - cs[i].x; + double tx = particles[i].ax + yx; + cs[i].x = (tx - particles[i].ax) - yx; + particles[i].ax = tx; + + double iy = prefactj*dy; + double yy = iy- cs[i].y; + double ty = particles[i].ay + yy; + cs[i].y = (ty - particles[i].ay) - yy; + particles[i].ay = ty; + + double iz = prefactj*dz; + double yz = iz - cs[i].z; + double tz = particles[i].az + yz; + cs[i].z = (tz - particles[i].az) - yz; + particles[i].az = tz; + } + + { + double ix = prefacti*dx; + double yx = ix - cs[j].x; + double tx = particles[j].ax + yx; + cs[j].x = (tx - particles[j].ax) - yx; + particles[j].ax = tx; + + double iy = prefacti*dy; + double yy = iy - cs[j].y; + double ty = particles[j].ay + yy; + cs[j].y = (ty - particles[j].ay) - yy; + particles[j].ay = ty; + + double iz = prefacti*dz; + double yz = iz - cs[j].z; + double tz = particles[j].az + yz; + cs[j].z = (tz - particles[j].az) - yz; + particles[j].az = tz; + } + } + } + + // Testparticles + for (int i=_N_active; i<_N_real; i++){ + if (reb_sigint > 1) return; + for (int j=0; j<_N_active; j++){ + if (_gravity_ignore_terms==1 && ((j==1 && i==0) || (i==1 && j==0))) continue; + if (_gravity_ignore_terms==2 && ((j==0 || i==0))) continue; + const double dx = particles[i].x - particles[j].x; + const double dy = particles[i].y - particles[j].y; + const double dz = particles[i].z - particles[j].z; + const double r2 = dx*dx + dy*dy + dz*dz + softening2; + const double r = sqrt(r2); + const double prefact = G/(r2*r); + const double prefactj = -prefact*particles[j].m; + + { + double ix = prefactj*dx; + double yx = ix - cs[i].x; + double tx = particles[i].ax + yx; + cs[i].x = (tx - particles[i].ax) - yx; + particles[i].ax = tx; + + double iy = prefactj*dy; + double yy = iy- cs[i].y; + double ty = particles[i].ay + yy; + cs[i].y = (ty - particles[i].ay) - yy; + particles[i].ay = ty; + + double iz = prefactj*dz; + double yz = iz - cs[i].z; + double tz = particles[i].az + yz; + cs[i].z = (tz - particles[i].az) - yz; + particles[i].az = tz; + } + if (_testparticle_type){ + const double prefacti = prefact*particles[i].m; + { + double ix = prefacti*dx; + double yx = ix - cs[j].x; + double tx = particles[j].ax + yx; + cs[j].x = (tx - particles[j].ax) - yx; + particles[j].ax = tx; + + double iy = prefacti*dy; + double yy = iy - cs[j].y; + double ty = particles[j].ay + yy; + cs[j].y = (ty - particles[j].ay) - yy; + particles[j].ay = ty; + + double iz = prefacti*dz; + double yz = iz - cs[j].z; + double tz = particles[j].az + yz; + cs[j].z = (tz - particles[j].az) - yz; + particles[j].az = tz; + } + } + } + } +#endif // OPENMP + } + break; + case REB_GRAVITY_TREE: + { +#pragma omp parallel for schedule(guided) + for (int i=0; iN_ghost_x; gbx<=r->N_ghost_x; gbx++){ + for (int gby=-r->N_ghost_y; gby<=r->N_ghost_y; gby++){ + for (int gbz=-r->N_ghost_z; gbz<=r->N_ghost_z; gbz++){ + // Summing over all particle pairs +#pragma omp parallel for schedule(guided) + for (int i=0; i 1) return; +#endif // OPENMP + struct reb_vec6d gb = reb_boundary_get_ghostbox(r, gbx,gby,gbz); + // Precalculated shifted position + gb.x += particles[i].x; + gb.y += particles[i].y; + gb.z += particles[i].z; + reb_calculate_acceleration_for_particle(r, i, gb); + } + } + } + } + } + break; + case REB_GRAVITY_MERCURIUS: + { + double (*_L) (const struct reb_simulation* const r, double d, double dcrit) = r->ri_mercurius.L; + switch (r->ri_mercurius.mode){ + case 0: // WHFAST part + { + const double* const dcrit = r->ri_mercurius.dcrit; +#ifndef OPENMP + for (int i=0; i<_N_real; i++){ + particles[i].ax = 0; + particles[i].ay = 0; + particles[i].az = 0; + } + for (int i=2; i<_N_active; i++){ + if (reb_sigint > 1) return; + for (int j=1; j 1) return; + for (int j=1; j<_N_active; j++){ + const double dx = particles[i].x - particles[j].x; + const double dy = particles[i].y - particles[j].y; + const double dz = particles[i].z - particles[j].z; + const double _r = sqrt(dx*dx + dy*dy + dz*dz + softening2); + const double dcritmax = MAX(dcrit[i],dcrit[j]); + const double L = _L(r,_r,dcritmax); + const double prefact = G*L/(_r*_r*_r); + const double prefactj = -prefact*particles[j].m; + particles[i].ax += prefactj*dx; + particles[i].ay += prefactj*dy; + particles[i].az += prefactj*dz; + if (_testparticle_type){ + const double prefacti = prefact*particles[i].m; + particles[j].ax += prefacti*dx; + particles[j].ay += prefacti*dy; + particles[j].az += prefacti*dz; + } + } + } +#else // OPENMP + particles[0].ax = 0; + particles[0].ay = 0; + particles[0].az = 0; +#pragma omp parallel for schedule(guided) + for (int i=1; i<_N_real; i++){ + particles[i].ax = 0; + particles[i].ay = 0; + particles[i].az = 0; + for (int j=1; j<_N_active; j++){ + if (i==j) continue; + const double dx = particles[i].x - particles[j].x; + const double dy = particles[i].y - particles[j].y; + const double dz = particles[i].z - particles[j].z; + const double _r = sqrt(dx*dx + dy*dy + dz*dz + softening2); + const double dcritmax = MAX(dcrit[i],dcrit[j]); + const double L = _L(r,_r,dcritmax); + const double prefact = -G*particles[j].m*L/(_r*_r*_r); + particles[i].ax += prefact*dx; + particles[i].ay += prefact*dy; + particles[i].az += prefact*dz; + } + } + if (_testparticle_type){ + for (int i=1; i<_N_active; i++){ + for (int j=_N_active; j<_N_real; j++){ + const double dx = particles[i].x - particles[j].x; + const double dy = particles[i].y - particles[j].y; + const double dz = particles[i].z - particles[j].z; + const double _r = sqrt(dx*dx + dy*dy + dz*dz + softening2); + const double dcritmax = MAX(dcrit[i],dcrit[j]); + const double L = _L(r,_r,dcritmax); + const double prefact = -G*particles[j].m*L/(_r*_r*_r); + particles[i].ax += prefact*dx; + particles[i].ay += prefact*dy; + particles[i].az += prefact*dz; + } + } + } +#endif // OPENMP + } + break; + case 1: // IAS15 part + { + const double m0 = r->particles[0].m; + const double* const dcrit = r->ri_mercurius.dcrit; + const int encounter_N = r->ri_mercurius.encounter_N; + const int encounter_N_active = r->ri_mercurius.encounter_N_active; + int* map = r->ri_mercurius.encounter_map; +#ifndef OPENMP + particles[0].ax = 0; // map[0] is always 0 + particles[0].ay = 0; + particles[0].az = 0; + // Acceleration due to star + for (int i=1; iri_trace.mode){ + case REB_TRACE_MODE_INTERACTION: // Interaction step + { +#ifndef OPENMP + for (int i=0; i<_N_real; i++){ + particles[i].ax = 0; + particles[i].ay = 0; + particles[i].az = 0; + } + for (int i=2; i<_N_active; i++){ + if (reb_sigint > 1) return; + for (int j=1; jri_trace.current_Ks[j*N+i]) continue; + const double dx = particles[i].x - particles[j].x; + const double dy = particles[i].y - particles[j].y; + const double dz = particles[i].z - particles[j].z; + const double _r = sqrt(dx*dx + dy*dy + dz*dz + softening2); + const double prefact = G / (_r*_r*_r); + const double prefactj = -prefact*particles[j].m; + const double prefacti = prefact*particles[i].m; + particles[i].ax += prefactj*dx; + particles[i].ay += prefactj*dy; + particles[i].az += prefactj*dz; + particles[j].ax += prefacti*dx; + particles[j].ay += prefacti*dy; + particles[j].az += prefacti*dz; + } + } + const int startitestp = MAX(_N_active,2); + for (int i=startitestp; i<_N_real; i++){ + if (reb_sigint > 1) return; + for (int j=1; j<_N_active; j++){ + if (r->ri_trace.current_Ks[j*N+i]) continue; + const double dx = particles[i].x - particles[j].x; + const double dy = particles[i].y - particles[j].y; + const double dz = particles[i].z - particles[j].z; + const double _r = sqrt(dx*dx + dy*dy + dz*dz + softening2); + const double prefact = G / (_r*_r*_r); + const double prefactj = -prefact*particles[j].m; + particles[i].ax += prefactj*dx; + particles[i].ay += prefactj*dy; + particles[i].az += prefactj*dz; + if (_testparticle_type){ + const double prefacti = prefact*particles[i].m; + particles[j].ax += prefacti*dx; + particles[j].ay += prefacti*dy; + particles[j].az += prefacti*dz; + } + } + } + +#else // OPENMP + particles[0].ax = 0; + particles[0].ay = 0; + particles[0].az = 0; +#pragma omp parallel for schedule(guided) + for (int i=1; i<_N_real; i++){ + particles[i].ax = 0; + particles[i].ay = 0; + particles[i].az = 0; + for (int j=1; j<_N_active; j++){ + if (i==j) continue; + if (r->ri_trace.current_Ks[j*N+i]) continue; + const double dx = particles[i].x - particles[j].x; + const double dy = particles[i].y - particles[j].y; + const double dz = particles[i].z - particles[j].z; + const double _r = sqrt(dx*dx + dy*dy + dz*dz + softening2); + const double prefact = -G*particles[j].m/(_r*_r*_r); + particles[i].ax += prefact*dx; + particles[i].ay += prefact*dy; + particles[i].az += prefact*dz; + } + } + if (_testparticle_type){ + for (int i=1; i<_N_active; i++){ + for (int j=_N_active; j<_N_real; j++){ + if (r->ri_trace.current_Ks[j*N+i]) continue; + const double dx = particles[i].x - particles[j].x; + const double dy = particles[i].y - particles[j].y; + const double dz = particles[i].z - particles[j].z; + const double _r = sqrt(dx*dx + dy*dy + dz*dz + softening2); + const double prefact = -G*particles[j].m/(_r*_r*_r); + particles[i].ax += prefact*dx; + particles[i].ay += prefact*dy; + particles[i].az += prefact*dz; + } + } + } +#endif // OPENMP + } + break; + case REB_TRACE_MODE_KEPLER: // BS part + // Kepler Step + { + const double m0 = r->particles[0].m; + const int encounter_N = r->ri_trace.encounter_N; + const int encounter_N_active = r->ri_trace.encounter_N_active; + int* map = r->ri_trace.encounter_map; +#ifndef OPENMP + particles[0].ax = 0; // map[0] is always 0 + particles[0].ay = 0; + particles[0].az = 0; + + // Acceleration due to star + for (int i=1; i 2){ // if two or less, no active-active planets + for (int i=2; iri_trace.current_Ks[mj*N+mi]) continue; + const double dx = particles[mi].x - particles[mj].x; + const double dy = particles[mi].y - particles[mj].y; + const double dz = particles[mi].z - particles[mj].z; + const double _r = sqrt(dx*dx + dy*dy + dz*dz + softening2); + double prefact = G/(_r*_r*_r); + double prefactj = -prefact*particles[mj].m; + double prefacti = prefact*particles[mi].m; + + particles[mi].ax += prefactj*dx; + particles[mi].ay += prefactj*dy; + particles[mi].az += prefactj*dz; + particles[mj].ax += prefacti*dx; + particles[mj].ay += prefacti*dy; + particles[mj].az += prefacti*dz; + } + } + } + + // Interactions between active-testparticle + const int startitestp = MAX(encounter_N_active,2); + for (int i=startitestp; iri_trace.current_Ks[mj*N+mi]) continue; + const double dx = particles[mi].x - particles[mj].x; + const double dy = particles[mi].y - particles[mj].y; + const double dz = particles[mi].z - particles[mj].z; + const double _r = sqrt(dx*dx + dy*dy + dz*dz + softening2); + double prefact = G/(_r*_r*_r); + double prefactj = -prefact*particles[mj].m; + particles[mi].ax += prefactj*dx; + particles[mi].ay += prefactj*dy; + particles[mi].az += prefactj*dz; + + if (_testparticle_type){ + double prefacti = prefact*particles[mi].m; + particles[mj].ax += prefacti*dx; + particles[mj].ay += prefacti*dy; + particles[mj].az += prefacti*dz; + } + } + } +#else // OPENMP + particles[0].ax = 0; // map[0] is always 0 + particles[0].ay = 0; + particles[0].az = 0; + // We're in a heliocentric coordinate system. + // The star feels no acceleration +#pragma omp parallel for schedule(guided) + for (int i=1; iri_trace.current_Ks[mj*N+mi]) continue; + const double dx = x - particles[mj].x; + const double dy = y - particles[mj].y; + const double dz = z - particles[mj].z; + const double _r = sqrt(dx*dx + dy*dy + dz*dz + softening2); + double prefact = -G*particles[mj].m/(_r*_r*_r); + particles[mi].ax += prefact*dx; + particles[mi].ay += prefact*dy; + particles[mi].az += prefact*dz; + } + } + if (_testparticle_type){ +#pragma omp parallel for schedule(guided) + for (int i=1; iri_trace.current_Ks[mj*N+mi]) continue; + const double dx = x - particles[mj].x; + const double dy = y - particles[mj].y; + const double dz = z - particles[mj].z; + const double _r = sqrt(dx*dx + dy*dy + dz*dz + softening2); + double prefact = -G*particles[mj].m/(_r*_r*_r); + particles[mi].ax += prefact*dx; + particles[mi].ay += prefact*dy; + particles[mi].az += prefact*dz; + } + } + } +#endif // OPENMP + } + break; + case REB_TRACE_MODE_NONE: // In-between steps. Do not calculate anything. + break; + default: + reb_simulation_error(r, "TRACE mode not supported in gravity.c"); + break; + } + break; + default: + reb_exit("Gravity calculation not yet implemented."); + } + +} + +void reb_calculate_acceleration_var(struct reb_simulation* r){ + struct reb_particle* const particles = r->particles; + const double G = r->G; + const unsigned int _gravity_ignore_terms = r->gravity_ignore_terms; + const int _testparticle_type = r->testparticle_type; + const int N = r->N; + const int _N_real = N - r->N_var; + const int _N_active = ((r->N_active==-1)?_N_real:r->N_active); + const int starti = (r->gravity_ignore_terms==0)?1:2; + const int startj = (r->gravity_ignore_terms==2)?1:0; + switch (r->gravity){ + case REB_GRAVITY_NONE: // Do nothing. + break; + case REB_GRAVITY_COMPENSATED: + { + struct reb_vec3d* restrict const cs = r->gravity_cs; +#pragma omp parallel for schedule(guided) + for (int i=_N_real; iN_var_config;v++){ + struct reb_variational_configuration const vc = r->var_config[v]; + if (vc.order==1){ + ////////////////// + /// 1st order /// + ////////////////// + struct reb_particle* const particles_var1 = particles + vc.index; + if (vc.testparticle<0){ + for (int i=0; i<_N_real; i++){ + particles_var1[i].ax = 0.; + particles_var1[i].ay = 0.; + particles_var1[i].az = 0.; + } + for (int i=starti; i<_N_active; i++){ + for (int j=startj; jparticles; + const int N = r->N; + const int N_active = r->N_active; + const double G = r->G; + const int _N_real = N - r->N_var; + const int _N_active = ((N_active==-1)?_N_real:N_active); + const int _testparticle_type = r->testparticle_type; + const int starti = (r->gravity_ignore_terms==0)?1:2; + const int startj = (r->gravity_ignore_terms==2)?1:0; + switch (r->gravity){ + case REB_GRAVITY_NONE: // Do nothing. + break; + case REB_GRAVITY_BASIC: + // All interactions between active particles +#pragma omp parallel for + for (int i=starti; i<_N_active; i++){ +#ifndef OPENMP + if (reb_sigint > 1) return; +#endif // OPENMP + for (int j=startj; j 1) return; +#endif // OPENMP + for (int j=startj; jN_root;i++){ + struct reb_treecell* node = r->tree_root[i]; + if (node!=NULL){ + reb_calculate_acceleration_for_particle_from_cell(r, pt, node, gb); + } + } +} + +static void reb_calculate_acceleration_for_particle_from_cell(const struct reb_simulation* r, const int pt, const struct reb_treecell *node, const struct reb_vec6d gb) { + const double G = r->G; + const double softening2 = r->softening*r->softening; + struct reb_particle* const particles = r->particles; + const double dx = gb.x - node->mx; + const double dy = gb.y - node->my; + const double dz = gb.z - node->mz; + const double r2 = dx*dx + dy*dy + dz*dz; + if ( node->pt < 0 ) { // Not a leaf + if ( node->w*node->w > r->opening_angle2*r2 ){ + for (int o=0; o<8; o++) { + if (node->oct[o] != NULL) { + reb_calculate_acceleration_for_particle_from_cell(r, pt, node->oct[o], gb); + } + } + } else { + double _r = sqrt(r2 + softening2); + double prefact = -G/(_r*_r*_r)*node->m; +#ifdef QUADRUPOLE + double qprefact = G/(_r*_r*_r*_r*_r); + particles[pt].ax += qprefact*(dx*node->mxx + dy*node->mxy + dz*node->mxz); + particles[pt].ay += qprefact*(dx*node->mxy + dy*node->myy + dz*node->myz); + particles[pt].az += qprefact*(dx*node->mxz + dy*node->myz + dz*node->mzz); + double mrr = dx*dx*node->mxx + dy*dy*node->myy + dz*dz*node->mzz + + 2.*dx*dy*node->mxy + 2.*dx*dz*node->mxz + 2.*dy*dz*node->myz; + qprefact *= -5.0/(2.0*_r*_r)*mrr; + particles[pt].ax += (qprefact + prefact) * dx; + particles[pt].ay += (qprefact + prefact) * dy; + particles[pt].az += (qprefact + prefact) * dz; +#else + particles[pt].ax += prefact*dx; + particles[pt].ay += prefact*dy; + particles[pt].az += prefact*dz; +#endif + } + } else { // It's a leaf node + if (node->remote == 0 && node->pt == pt) return; + double _r = sqrt(r2 + softening2); + double prefact = -G/(_r*_r*_r)*node->m; + particles[pt].ax += prefact*dx; + particles[pt].ay += prefact*dy; + particles[pt].az += prefact*dz; + } +} + diff --git a/rebound/source/src/gravity.h b/rebound/source/src/gravity.h new file mode 100644 index 0000000000000000000000000000000000000000..d59b9ed0175ed27fc8bfa12bb14b6f1f14447ce8 --- /dev/null +++ b/rebound/source/src/gravity.h @@ -0,0 +1,47 @@ +/** + * @file gravity.h + * @brief Calculate gravitational forces. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _GRAVITY_H +#define _GRAVITY_H +struct reb_simulation; + +/** + * The function loops over all ghostboxs and calls calculate_forces_for_particle() to sum up the forces on each particle. + * Calculate all the gravitational acceleration for all particles. + * Different methods implement this function in a different way. + */ +void reb_calculate_acceleration(struct reb_simulation* r); + +/** + * The function calculates the acceleration for the variational equations. + */ +void reb_calculate_acceleration_var(struct reb_simulation* r); + + +/** + * The function calculates the jerk (derivative of the acceleration) and applies it to the particles' velocity. + */ +void reb_calculate_and_apply_jerk(struct reb_simulation* r, const double v); + +#endif diff --git a/rebound/source/src/input.c b/rebound/source/src/input.c new file mode 100644 index 0000000000000000000000000000000000000000..ec5d74a29baed53199a14bbe13dab2b422b5f299 --- /dev/null +++ b/rebound/source/src/input.c @@ -0,0 +1,302 @@ +/** + * @file input.c + * @brief Parse command line options and read retart files. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#include "particle.h" +#include "rebound.h" +#include "collision.h" +#include "input.h" +#include "tree.h" +#include "simulationarchive.h" + +#ifdef MPI +#include "communication_mpi.h" +#endif + +// Macro to read a single field from a binary file. +#define CASE(typename, value) case REB_BINARY_FIELD_TYPE_##typename: \ +{\ + fread(value, field.size,1,inf);\ + goto next_field;\ +}\ +break; + +#define CASE_CONTROL_VARS(typename, valueref) case REB_BINARY_FIELD_TYPE_##typename: \ +{\ + fread(&valueref->size, sizeof(uint32_t),1,inf);\ + fread(valueref->p0, valueref->size,1,inf);\ + fread(valueref->p1, valueref->size,1,inf);\ + fread(valueref->p2, valueref->size,1,inf);\ + fread(valueref->p3, valueref->size,1,inf);\ + fread(valueref->p4, valueref->size,1,inf);\ + fread(valueref->p5, valueref->size,1,inf);\ + fread(valueref->p6, valueref->size,1,inf);\ + goto next_field;\ +}\ +break; + + +void reb_input_fields(struct reb_simulation* r, FILE* inf, enum reb_simulation_binary_error_codes* warnings){ + struct reb_binary_field field; + // A few fields need special treatment. Find their descriptors first. + struct reb_binary_field_descriptor fd_header = reb_binary_field_descriptor_for_name("header"); + struct reb_binary_field_descriptor fd_end = reb_binary_field_descriptor_for_name("end"); + struct reb_binary_field_descriptor fd_functionpointers = reb_binary_field_descriptor_for_name("functionpointers"); + +next_field: + // Loop over all fields + while(1){ + + int numread = (int)fread(&field,sizeof(struct reb_binary_field),1,inf); + if (numread<1){ + goto finish_fields; // End of file + } + if (field.type==fd_end.type){ + goto finish_fields; // End of snapshot + } + int i=0; + + // Loop over field descriptor list. Simple datatypes and pointers will be read in this loop. + while (reb_binary_field_descriptor_list[i].dtype!=REB_FIELD_END){ + struct reb_binary_field_descriptor fd = reb_binary_field_descriptor_list[i]; + if (fd.type==field.type){ + // Read simple data types + if (fd.dtype == REB_DOUBLE || fd.dtype == REB_INT || fd.dtype == REB_UINT + || fd.dtype == REB_UINT32 || fd.dtype == REB_INT64 + || fd.dtype == REB_UINT64 || fd.dtype == REB_PARTICLE + || fd.dtype == REB_PARTICLE4 || fd.dtype == REB_VEC3D ){ + char* pointer = (char*)r + reb_binary_field_descriptor_list[i].offset; + fread(pointer, field.size, 1, inf); + goto next_field; + } + // Read a pointer data type. + // 1) reallocate memory + // 2) read data into memory + // 3) set N_allocated variable + if (fd.dtype == REB_POINTER || fd.dtype == REB_POINTER_ALIGNED){ + if (field.size % reb_binary_field_descriptor_list[i].element_size){ + reb_simulation_warning(r, "Inconsistent size encountered in binary field."); + } + char* pointer = (char*)r + reb_binary_field_descriptor_list[i].offset; + if (fd.dtype == REB_POINTER_ALIGNED){ + if (*(char**)pointer) free(*(char**)pointer); +#if defined(_WIN32) || !defined(AVX512) + // WHFast512 not supported on Windows! + *(char**)pointer = malloc(sizeof(struct reb_particle_avx512)); +#else + *(char**)pointer = aligned_alloc(64,sizeof(struct reb_particle_avx512)); +#endif // _WIN32 + }else{ // normal malloc + *(char**)pointer = realloc(*(char**)pointer, field.size); + } + fread(*(char**)pointer, field.size,1,inf); + + unsigned int* pointer_N = (unsigned int*)((char*)r + reb_binary_field_descriptor_list[i].offset_N); + *pointer_N = (unsigned int)field.size/reb_binary_field_descriptor_list[i].element_size; + + goto next_field; + } + if (fd.dtype == REB_POINTER_FIXED_SIZE){ + if (field.size != reb_binary_field_descriptor_list[i].element_size){ + reb_simulation_warning(r, "Inconsistent size encountered in binary field (fixed pointer size)."); + } + char* pointer = (char*)r + reb_binary_field_descriptor_list[i].offset; + *(char**)pointer = realloc(*(char**)pointer, field.size); + fread(*(char**)pointer, field.size,1,inf); + + goto next_field; + } + // Special datatype for ias15. Similar to REB_POINTER. + if (fd.dtype == REB_DP7){ + if (field.size % reb_binary_field_descriptor_list[i].element_size){ + reb_simulation_warning(r, "Inconsistent size encountered in binary field."); + } + char* pointer = (char*)r + reb_binary_field_descriptor_list[i].offset; + struct reb_dp7* dp7 = (struct reb_dp7*)pointer; + + dp7->p0 = realloc(dp7->p0,field.size/7); + dp7->p1 = realloc(dp7->p1,field.size/7); + dp7->p2 = realloc(dp7->p2,field.size/7); + dp7->p3 = realloc(dp7->p3,field.size/7); + dp7->p4 = realloc(dp7->p4,field.size/7); + dp7->p5 = realloc(dp7->p5,field.size/7); + dp7->p6 = realloc(dp7->p6,field.size/7); + fread(dp7->p0, field.size/7, 1, inf); + fread(dp7->p1, field.size/7, 1, inf); + fread(dp7->p2, field.size/7, 1, inf); + fread(dp7->p3, field.size/7, 1, inf); + fread(dp7->p4, field.size/7, 1, inf); + fread(dp7->p5, field.size/7, 1, inf); + fread(dp7->p6, field.size/7, 1, inf); + + unsigned int* pointer_N = (unsigned int*)((char*)r + reb_binary_field_descriptor_list[i].offset_N); + *pointer_N = (unsigned int)field.size/reb_binary_field_descriptor_list[i].element_size; + + goto next_field; + } + // If we're here then it was not a simple or pointer datatype. + // Can skip the iteration trough the descriptor list. + break; + } + i++; + } + + // Fields with types that require special handling + if (field.type == fd_functionpointers.type){ + // Warning for when function pointers were used. + // No effect on simulation. + int fpwarn; + fread(&fpwarn, field.size,1,inf); + if (fpwarn && warnings){ + *warnings |= REB_SIMULATION_BINARY_WARNING_POINTERS; + } + goto next_field; + } + if (field.type == fd_header.type){ + // Check header. + int64_t objects = 0; + const size_t bufsize = 64 - sizeof(struct reb_binary_field); + char readbuf[64], curvbuf[64]; + const char* header = "REBOUND Binary File. Version: "; + sprintf(curvbuf,"%s%s",header+sizeof(struct reb_binary_field), reb_version_str); + + objects += fread(readbuf,sizeof(char),bufsize,inf); + if (objects < 1){ + *warnings |= REB_SIMULATION_BINARY_WARNING_CORRUPTFILE; + }else{ + // Note: following compares version, but ignores githash. + if(strncmp(readbuf,curvbuf,bufsize)!=0){ + *warnings |= REB_SIMULATION_BINARY_WARNING_VERSION; + } + } + goto next_field; + } + + // We should never get here. If so, it's an unknown field type. + *warnings |= REB_SIMULATION_BINARY_WARNING_FIELD_UNKOWN; + int err = fseek(inf, field.size, SEEK_CUR); + if (err){ + // Even worse, can't seek to end of field. + *warnings |= REB_SIMULATION_BINARY_WARNING_CORRUPTFILE; + } + } + +finish_fields: + // Some final initialization + for (unsigned int l=0;lN_var_config;l++){ + r->var_config[l].sim = r; + } + r->N_allocated = r->N; // This used to be different. Now only saving N. + for (unsigned int l=0;lN_allocated;l++){ + r->particles[l].c = NULL; + r->particles[l].ap = NULL; + r->particles[l].sim = r; + } + reb_tree_delete(r); + if (r->gravity==REB_GRAVITY_TREE || r->collision==REB_COLLISION_TREE || r->collision==REB_COLLISION_LINETREE){ + for (unsigned int l=0;lN_allocated;l++){ + reb_tree_add_particle_to_tree(r, l); + } + } + // Commented out on Nov 26 2024. Not sure why this was added. Might be for an older SA version. + // if (r->ri_ias15.at){ + // // Assume that all arrays were saved whenever ri_ias15.at was saved. + // // Only 3*N entries got saved. + // r->ri_ias15.N_allocated = 3*r->N; + // } + r->ri_whfast512.recalculate_constants = 1; +} + +struct reb_simulation* reb_input_process_warnings(struct reb_simulation* r, enum reb_simulation_binary_error_codes warnings){ + if (warnings & REB_SIMULATION_BINARY_ERROR_NOFILE){ + reb_simulation_error(r,"Cannot read binary file. Check filename and file contents."); + if (r) free(r); + return NULL; + } + if (warnings & REB_SIMULATION_BINARY_WARNING_VERSION){ + reb_simulation_warning(r,"Binary file was saved with a different version of REBOUND. Binary format might have changed."); + } + if (warnings & REB_SIMULATION_BINARY_WARNING_POINTERS){ + reb_simulation_warning(r,"You have to reset function pointers after creating a reb_simulation struct with a binary file."); + } + if (warnings & REB_SIMULATION_BINARY_WARNING_PARTICLES){ + reb_simulation_warning(r,"Binary file might be corrupted. Number of particles found does not match expected number."); + } + if (warnings & REB_SIMULATION_BINARY_ERROR_FILENOTOPEN){ + reb_simulation_error(r,"Error while reading binary file (file was not open)."); + if (r) free(r); + return NULL; + } + if (warnings & REB_SIMULATION_BINARY_ERROR_OUTOFRANGE){ + reb_simulation_error(r,"Index out of range."); + if (r) free(r); + return NULL; + } + if (warnings & REB_SIMULATION_BINARY_ERROR_SEEK){ + reb_simulation_error(r,"Error while trying to seek file."); + if (r) free(r); + return NULL; + } + if (warnings & REB_SIMULATION_BINARY_WARNING_FIELD_UNKOWN){ + reb_simulation_warning(r,"Unknown field found in binary file."); + } + if (warnings & REB_SIMULATION_BINARY_ERROR_NOFILE){ + reb_simulation_error(r,"Cannot read binary file. Check filename and file contents."); + if (r) free(r); + return NULL; + } + if (warnings & REB_SIMULATION_BINARY_ERROR_OLD){ + reb_simulation_error(r,"Reading old Simulationarchives (version < 2) is no longer supported. If you need to read such an archive, use a REBOUND version <= 3.26.3"); + if (r) free(r); + return NULL; + } + if (warnings & REB_SIMULATION_BINARY_WARNING_CORRUPTFILE){ + reb_simulation_warning(r,"The binary file seems to be corrupted. An attempt has been made to read the uncorrupted parts of it."); + } + return r; +} + +struct reb_simulation* reb_simulation_create_from_file(char* filename, int64_t snapshot){ + enum reb_simulation_binary_error_codes warnings = REB_SIMULATION_BINARY_WARNING_NONE; + struct reb_simulation* r = reb_simulation_create(); + + struct reb_simulationarchive* sa = malloc(sizeof(struct reb_simulationarchive)); + reb_simulationarchive_create_from_file_with_messages(sa, filename, NULL, &warnings); + if (warnings & REB_SIMULATION_BINARY_ERROR_NOFILE){ + // Don't output an error if file does not exist, just return NULL. + free(sa); + return NULL; + }else{ + reb_input_process_warnings(NULL, warnings); + } + reb_simulation_create_from_simulationarchive_with_messages(r, sa, snapshot, &warnings); + if (sa){ + reb_simulationarchive_free(sa); + } + r = reb_input_process_warnings(r, warnings); + return r; +} + diff --git a/rebound/source/src/input.h b/rebound/source/src/input.h new file mode 100644 index 0000000000000000000000000000000000000000..1ad813ecbd898e0e0cb588d655cb2b1b3ccc9cc2 --- /dev/null +++ b/rebound/source/src/input.h @@ -0,0 +1,33 @@ +/** + * @file input.h + * @brief Parse command line options and read retart files. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _INPUT_H + +void reb_input_fields(struct reb_simulation* r, FILE* inf, enum reb_simulation_binary_error_codes* warnings); ///< Read all fields from inf stream into r. + +struct reb_simulation* reb_input_process_warnings(struct reb_simulation* r, enum reb_simulation_binary_error_codes warnings); ///< Process warning messages and print them on screen. + +#define _INPUT_H + +#endif diff --git a/rebound/source/src/integrator.c b/rebound/source/src/integrator.c new file mode 100644 index 0000000000000000000000000000000000000000..555bd48aa397f114990ef5300d9b21e4a2b50ed3 --- /dev/null +++ b/rebound/source/src/integrator.c @@ -0,0 +1,291 @@ +/** + * @file integrator.c + * @brief Integration schemes. + * @author Hanno Rein + * @details This file manages the different integration scheme. + * + * @section LICENSE + * Copyright (c) 2015 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#include +#include +#include +#include "rebound.h" +#include "gravity.h" +#include "output.h" +#include "integrator.h" +#include "integrator_whfast.h" +#include "integrator_whfast512.h" +#include "integrator_saba.h" +#include "integrator_ias15.h" +#include "integrator_mercurius.h" +#include "integrator_trace.h" +#include "integrator_leapfrog.h" +#include "integrator_sei.h" +#include "integrator_janus.h" +#include "integrator_eos.h" +#include "integrator_bs.h" +#define MAX(a, b) ((a) > (b) ? (a) : (b)) +#define MIN(a, b) ((a) > (b) ? (b) : (a)) ///< Returns the minimum of a and b + +void reb_integrator_part1(struct reb_simulation* r){ + switch(r->integrator){ + case REB_INTEGRATOR_IAS15: + reb_integrator_ias15_part1(r); + break; + case REB_INTEGRATOR_LEAPFROG: + reb_integrator_leapfrog_part1(r); + break; + case REB_INTEGRATOR_SEI: + reb_integrator_sei_part1(r); + break; + case REB_INTEGRATOR_WHFAST: + reb_integrator_whfast_part1(r); + break; + case REB_INTEGRATOR_WHFAST512: + reb_integrator_whfast512_part1(r); + break; + case REB_INTEGRATOR_SABA: + reb_integrator_saba_part1(r); + break; + case REB_INTEGRATOR_MERCURIUS: + reb_integrator_mercurius_part1(r); + break; + case REB_INTEGRATOR_JANUS: + reb_integrator_janus_part1(r); + break; + case REB_INTEGRATOR_EOS: + reb_integrator_eos_part1(r); + break; + case REB_INTEGRATOR_BS: + reb_integrator_bs_part1(r); + break; + case REB_INTEGRATOR_TRACE: + reb_integrator_trace_part1(r); + break; + default: + break; + } +} + +void reb_integrator_part2(struct reb_simulation* r){ + switch(r->integrator){ + case REB_INTEGRATOR_IAS15: + reb_integrator_ias15_part2(r); + break; + case REB_INTEGRATOR_LEAPFROG: + reb_integrator_leapfrog_part2(r); + break; + case REB_INTEGRATOR_SEI: + reb_integrator_sei_part2(r); + break; + case REB_INTEGRATOR_WHFAST: + reb_integrator_whfast_part2(r); + break; + case REB_INTEGRATOR_WHFAST512: + reb_integrator_whfast512_part2(r); + break; + case REB_INTEGRATOR_SABA: + reb_integrator_saba_part2(r); + break; + case REB_INTEGRATOR_MERCURIUS: + reb_integrator_mercurius_part2(r); + break; + case REB_INTEGRATOR_JANUS: + reb_integrator_janus_part2(r); + break; + case REB_INTEGRATOR_EOS: + reb_integrator_eos_part2(r); + break; + case REB_INTEGRATOR_BS: + reb_integrator_bs_part2(r); + break; + case REB_INTEGRATOR_TRACE: + reb_integrator_trace_part2(r); + break; + case REB_INTEGRATOR_NONE: + r->t += r->dt; + r->dt_last_done = r->dt; + break; + default: + break; + } + + // Integrate other ODEs + if (r->integrator != REB_INTEGRATOR_BS && r->N_odes){ + if (r->ode_warnings==0 && (!r->ri_whfast.safe_mode || !r->ri_saba.safe_mode || !r->ri_eos.safe_mode || !r->ri_mercurius.safe_mode)){ + reb_simulation_warning(r, "Safe mode should be enabled when custom ODEs are being used."); + r->ode_warnings = 1; + } + + double dt = r->dt_last_done; + double t = r->t - r->dt_last_done; // Note: floating point inaccuracy + double forward = (dt>0.) ? 1. : -1.; + r->ri_bs.first_or_last_step = 1; + while(t*forward < r->t*forward && fabs((r->t - t)/(fabs(r->t)+1e-16))>1e-15){ + if (reb_sigint > 1){ + r->status = REB_STATUS_SIGINT; + return; + } + if (r->ri_bs.dt_proposed !=0.){ + double max_dt = fabs(r->t - t); + dt = fabs(r->ri_bs.dt_proposed); + if (dt > max_dt){ // Don't overshoot N-body timestep + dt = max_dt; + r->ri_bs.first_or_last_step = 1; + } + dt *= forward; + } + int success = reb_integrator_bs_step(r, dt); + if (success){ + t += dt; + } + } + } +} + +void reb_simulation_synchronize(struct reb_simulation* r){ + switch(r->integrator){ + case REB_INTEGRATOR_IAS15: + reb_integrator_ias15_synchronize(r); + break; + case REB_INTEGRATOR_LEAPFROG: + reb_integrator_leapfrog_synchronize(r); + break; + case REB_INTEGRATOR_SEI: + reb_integrator_sei_synchronize(r); + break; + case REB_INTEGRATOR_WHFAST: + reb_integrator_whfast_synchronize(r); + break; + case REB_INTEGRATOR_WHFAST512: + reb_integrator_whfast512_synchronize(r); + break; + case REB_INTEGRATOR_SABA: + reb_integrator_saba_synchronize(r); + break; + case REB_INTEGRATOR_MERCURIUS: + reb_integrator_mercurius_synchronize(r); + break; + case REB_INTEGRATOR_JANUS: + reb_integrator_janus_synchronize(r); + break; + case REB_INTEGRATOR_EOS: + reb_integrator_eos_synchronize(r); + break; + case REB_INTEGRATOR_BS: + reb_integrator_bs_synchronize(r); + break; + case REB_INTEGRATOR_TRACE: + reb_integrator_trace_synchronize(r); + break; + default: + break; + } +} + +void reb_integrator_init(struct reb_simulation* r){ + switch(r->integrator){ + case REB_INTEGRATOR_SEI: + reb_integrator_sei_init(r); + break; + default: + break; + } +} + +void reb_simulation_reset_integrator(struct reb_simulation* r){ + r->integrator = REB_INTEGRATOR_IAS15; + r->gravity = REB_GRAVITY_BASIC; // Some integrators set their own gravity routine. Resetting. + r->gravity_ignore_terms = 0; + reb_integrator_ias15_reset(r); + reb_integrator_mercurius_reset(r); + reb_integrator_sei_reset(r); + reb_integrator_whfast_reset(r); + reb_integrator_whfast512_reset(r); + reb_integrator_saba_reset(r); + reb_integrator_janus_reset(r); + reb_integrator_eos_reset(r); + reb_integrator_bs_reset(r); + reb_integrator_trace_reset(r); + reb_integrator_leapfrog_reset(r); +} + +void reb_simulation_update_acceleration(struct reb_simulation* r){ + // This should probably go elsewhere + PROFILING_STOP(PROFILING_CAT_INTEGRATOR); + PROFILING_START(); + reb_calculate_acceleration(r); + if (r->N_var){ + reb_calculate_acceleration_var(r); + } + if (r->additional_forces && (r->integrator != REB_INTEGRATOR_MERCURIUS || r->ri_mercurius.mode==0) && (r->integrator != REB_INTEGRATOR_TRACE || r->ri_trace.mode==REB_TRACE_MODE_INTERACTION || r->ri_trace.mode==REB_TRACE_MODE_FULL)){ + // For Mercurius: + // Additional forces are only calculated in the kick step, not during close encounter + if (r->integrator==REB_INTEGRATOR_MERCURIUS){ + // shift pos and velocity so that external forces are calculated in inertial frame + // Note: Copying avoids degrading floating point performance + if(r->N>r->ri_mercurius.N_allocated_additional_forces){ + r->ri_mercurius.particles_backup_additional_forces = realloc(r->ri_mercurius.particles_backup_additional_forces, r->N*sizeof(struct reb_particle)); + r->ri_mercurius.N_allocated_additional_forces = r->N; + } + memcpy(r->ri_mercurius.particles_backup_additional_forces,r->particles,r->N*sizeof(struct reb_particle)); + reb_integrator_mercurius_dh_to_inertial(r); + } + if (r->integrator==REB_INTEGRATOR_TRACE){ + // shift pos and velocity so that external forces are calculated in inertial frame + // Note: Copying avoids degrading floating point performance + if(r->N>r->ri_trace.N_allocated_additional_forces){ + r->ri_trace.particles_backup_additional_forces = realloc(r->ri_trace.particles_backup_additional_forces, r->N*sizeof(struct reb_particle)); + r->ri_trace.N_allocated_additional_forces = r->N; + } + memcpy(r->ri_trace.particles_backup_additional_forces,r->particles,r->N*sizeof(struct reb_particle)); + reb_integrator_trace_dh_to_inertial(r); + } + r->additional_forces(r); + if (r->integrator==REB_INTEGRATOR_MERCURIUS){ + struct reb_particle* restrict const particles = r->particles; + struct reb_particle* restrict const backup = r->ri_mercurius.particles_backup_additional_forces; + for (unsigned int i=0;iN;i++){ + particles[i].x = backup[i].x; + particles[i].y = backup[i].y; + particles[i].z = backup[i].z; + particles[i].vx = backup[i].vx; + particles[i].vy = backup[i].vy; + particles[i].vz = backup[i].vz; + } + } + if (r->integrator==REB_INTEGRATOR_TRACE){ + struct reb_particle* restrict const particles = r->particles; + struct reb_particle* restrict const backup = r->ri_trace.particles_backup_additional_forces; + for (unsigned int i=0;iN;i++){ + particles[i].x = backup[i].x; + particles[i].y = backup[i].y; + particles[i].z = backup[i].z; + particles[i].vx = backup[i].vx; + particles[i].vy = backup[i].vy; + particles[i].vz = backup[i].vz; + } + } + } + PROFILING_STOP(PROFILING_CAT_GRAVITY); + PROFILING_START(); +} + diff --git a/rebound/source/src/integrator.h b/rebound/source/src/integrator.h new file mode 100644 index 0000000000000000000000000000000000000000..3882eb55decb5b865854b73e8edfc6dd5783128b --- /dev/null +++ b/rebound/source/src/integrator.h @@ -0,0 +1,55 @@ +/** + * @file integrator.h + * @brief Interface for numerical particle integrators + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _INTEGRATOR_H +#define _INTEGRATOR_H +struct reb_simulation; + +/** + * @brief The first half of the integrator step. + * @details This function is called at the beginning of the timestep. It + * advances the positions by 1/2 timestep. + */ +void reb_integrator_part1(struct reb_simulation* r); + +/** + * @brief The second half of the integrator step. + * @details This function is called after gravitational (and non-gravitational) + * forces for each particle have been calculated. It advances the + * velocity by 1 timestep and the positions by 1/2 timestep. + * At the end of this function, the positions and velocities are in + * sync which is needed for collision detection. + */ +void reb_integrator_part2(struct reb_simulation* r); + +/** + * @brief This function is used to initialize constants in some integrators. + * @details The function doesn't need to be called. Integrators will call it + * from within the normal reb_integrator_part1() function. It is sometimes + * called before an integration step is performed to ensure variables are + * set before a binary file is outputted. + */ +void reb_integrator_init(struct reb_simulation* r); + +#endif diff --git a/rebound/source/src/integrator_bs.c b/rebound/source/src/integrator_bs.c new file mode 100644 index 0000000000000000000000000000000000000000..39d82c45b0eb243cf98a77639ebc6d04df730fc1 --- /dev/null +++ b/rebound/source/src/integrator_bs.c @@ -0,0 +1,885 @@ +/** + * @file integrator.c + * @brief BS integration scheme. + * @author Hanno Rein + * @details This file implements the Gragg-Bulirsch-Stoer integration scheme. + * It is a reimplementation of the fortran code by E. Hairer and G. Wanner. + * The starting point was the JAVA implementation in hipparchus: + * https://github.com/Hipparchus-Math/hipparchus/blob/master/hipparchus-ode/src/main/java/org/hipparchus/ode/nonstiff/GraggBulirschStoerIntegrator.java + * + * @section LICENSE + * Copyright (c) 2021 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + * Copyright (c) 2004, Ernst Hairer + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +#include +#include // memset +#include // for DBL_MAX +#include "rebound.h" +#include "gravity.h" +#include "integrator.h" +#include "integrator_bs.h" +#include "integrator_trace.h" +#define MAX(a, b) ((a) > (b) ? (a) : (b)) +#define MIN(a, b) ((a) < (b) ? (a) : (b)) + +//#define DEBUG 0 // set to 1 to print out debug information (reason for step rejection) + +// Default configuration parameter. +// They are hard coded here because it +// is unlikely that these need to be changed by the user. +// static const int maxOrder = 18;// was 18 +static const int sequence_length = 9; // = maxOrder / 2; +static const double stepControl1 = 0.65; +static const double stepControl2 = 0.94; +static const double stepControl3 = 0.02; +static const double stepControl4 = 4.0; +static const double orderControl1 = 0.8; +static const double orderControl2 = 0.9; +static const double stabilityReduction = 0.5; +static const int maxIter = 2; // maximal number of iterations for which checks are performed +static const int maxChecks = 1; // maximal number of checks for each iteration + +void reb_integrator_bs_update_particles(struct reb_simulation* r, const double* y){ + if (r==NULL){ + reb_simulation_error(r, "Update particles called without valid simulation pointer."); + return; + } + if (y==NULL){ + reb_simulation_error(r, "Update particles called without valid y pointer."); + return; + } + for (unsigned int i=0; iN; i++){ + struct reb_particle* const p = &(r->particles[i]); + p->x = y[i*6+0]; + p->y = y[i*6+1]; + p->z = y[i*6+2]; + p->vx = y[i*6+3]; + p->vy = y[i*6+4]; + p->vz = y[i*6+5]; + } +} + + +static int tryStep(struct reb_simulation* r, const int Ns, const int k, const int n, const double t0, const double step) { + struct reb_integrator_bs* ri_bs = &r->ri_bs; + struct reb_ode** odes = r->odes; + const double subStep = step / n; + double t = t0; + int needs_nbody = ri_bs->user_ode_needs_nbody; + if (r->integrator == REB_INTEGRATOR_TRACE){ + needs_nbody = 0; // TRACE does not allow for coupling of N-body and other ODEs + } + + // LeapFrog Method did not seem to be of any advantage + // switch (method) { + // case 0: // LeapFrog + // { + // // first substep + // for (int s=0; s < Ns; s++){ + // double* y0 = odes[s].y; + // double* y1 = odes[s].y1; + // const int length = odes[s].length; + // for (int i = 0; i < length; ++i) { + // if (i%6<3){ // Drift + // y1[i] = y0[i] + 0.5*subStep * y0[i+3]; + // } + // } + // } + // t += 0.5*subStep; + // for (int s=0; s < Ns; s++){ + // odes[s].derivatives(&odes[s], odes[s].yDot, odes[s].y1, t); + // } + // for (int s=0; s < Ns; s++){ + // double* y0 = odes[s].y; + // double* y1 = odes[s].y1; + // double* yDot = odes[s].yDot; + // const int length = odes[s].length; + // for (int i = 0; i < length; ++i) { + // if (i%6>2){ // Kick + // y1[i] = y0[i] + subStep * yDot[i]; + // } + // } + // } + // + // + // // other substeps + // for (int j = 1; j < n; ++j) { + // t += subStep; + // for (int s=0; s < Ns; s++){ + // double* y1 = odes[s].y1; + // const int length = odes[s].length; + // for (int i = 0; i < length; ++i) { + // if (i%6<3){ // Drift + // y1[i] = y1[i] + subStep * y1[i+3]; + // } + // } + // } + // for (int s=0; s < Ns; s++){ + // odes[s].derivatives(&odes[s], odes[s].yDot, odes[s].y1, t); + // } + // for (int s=0; s < Ns; s++){ + // double* y1 = odes[s].y1; + // double* yDot = odes[s].yDot; + // const int length = odes[s].length; + // for (int i = 0; i < length; ++i) { + // if (i%6>2){ // Kick + // y1[i] = y1[i] + subStep * yDot[i]; + // } + // } + // } + // + // // stability check + // //if (performStabilityCheck && (j <= maxChecks) && (k < maxIter)) { + // // double initialNorm = 0.0; + // // for (int l = 0; l < length; ++l) { + // // const double ratio = y0Dot[l] / scale[l]; + // // initialNorm += ratio * ratio; + // // } + // // double deltaNorm = 0.0; + // // for (int l = 0; l < length; ++l) { + // // const double ratio = (yDot[l] - y0Dot[l]) / scale[l]; + // // deltaNorm += ratio * ratio; + // // } + // // //printf("iii %e %e\n",initialNorm, deltaNorm); + // // if (deltaNorm > 4 * MAX(1.0e-15, initialNorm)) { + // // return 0; + // // } + // //} + // } + // + // // correction of the last substep (at t0 + step) + // for (int s=0; s < Ns; s++){ + // double* y1 = odes[s].y1; + // const int length = odes[s].length; + // for (int i = 0; i < length; ++i) { + // if (i%6<3){ // Drift + // y1[i] = y1[i] + 0.5 * subStep * y1[i+3]; + // } + // } + // } + // + // return 1; + // } + + + // Modified Midpoint method + // first substep + t += subStep; + for (int s=0; s < Ns; s++){ + double* y0 = odes[s]->y; + double* y1 = odes[s]->y1; + double* y0Dot = odes[s]->y0Dot; + const int length = odes[s]->length; + for (int i = 0; i < length; ++i) { + y1[i] = y0[i] + subStep * y0Dot[i]; + } + } + + // other substeps + if (needs_nbody){ + reb_integrator_bs_update_particles(r, r->ri_bs.nbody_ode->y1); + } + for (int s=0; s < Ns; s++){ + odes[s]->derivatives(odes[s], odes[s]->yDot, odes[s]->y1, t); + } + for (int s=0; s < Ns; s++){ + double* y0 = odes[s]->y; + double* yTmp = odes[s]->yTmp; + const int length = odes[s]->length; + for (int i = 0; i < length; ++i) { + yTmp[i] = y0[i]; + } + } + + for (int j = 1; j < n; ++j) { // Note: iterating n substeps, not 2n substeps as in Eq. (9.13) + t += subStep; + for (int s=0; s < Ns; s++){ + double* y1 = odes[s]->y1; + double* yDot = odes[s]->yDot; + double* yTmp = odes[s]->yTmp; + const int length = odes[s]->length; + for (int i = 0; i < length; ++i) { + const double middle = y1[i]; + y1[i] = yTmp[i] + 2.* subStep * yDot[i]; + yTmp[i] = middle; + } + } + + if (needs_nbody){ + reb_integrator_bs_update_particles(r, r->ri_bs.nbody_ode->y1); + } + for (int s=0; s < Ns; s++){ + odes[s]->derivatives(odes[s], odes[s]->yDot, odes[s]->y1, t); + } + + // stability check + if (j <= maxChecks && k < maxIter) { + double initialNorm = 0.0; + double deltaNorm = 0.0; + for (int s=0; s < Ns; s++){ + double* yDot = odes[s]->yDot; + double* y0Dot = odes[s]->y0Dot; + double* scale = odes[s]->scale; + const int length = odes[s]->length; + for (int l = 0; l < length; ++l) { + const double ratio1 = y0Dot[l] / scale[l]; + initialNorm += ratio1 * ratio1; + const double ratio2 = (yDot[l] - y0Dot[l]) / scale[l]; + deltaNorm += ratio2 * ratio2; + } + } + if (deltaNorm > 4 * MAX(1.0e-15, initialNorm)) { + return 0; + } + } + + } + + // correction of the last substep (at t0 + step) + for (int s=0; s < Ns; s++){ + double* y1 = odes[s]->y1; + double* yTmp = odes[s]->yTmp; + double* yDot = odes[s]->yDot; + const int length = odes[s]->length; + for (int i = 0; i < length; ++i) { + y1[i] = 0.5 * (yTmp[i] + y1[i] + subStep * yDot[i]); + } + } + + return 1; +} + +static void extrapolate(const struct reb_ode* ode, double * const coeff, const int k) { + double* const y1 = ode->y1; + double* const C = ode->C; + double** const D = ode->D; + double const length = ode->length; + for (int j = 0; j < k; ++j) { + double xi = coeff[k-j-1]; + double xim1 = coeff[k]; + double facC = xi/(xi-xim1); + double facD = xim1/(xi-xim1); + for (int i = 0; i < length; ++i) { + double CD = C[i] - D[k - j -1][i]; + C[i] = facC * CD; + D[k - j - 1][i] = facD * CD; + } + } + for (int i = 0; i < length; ++i) { + y1[i] = D[0][i]; + } + for (int j = 1; j <= k; ++j) { + for (int i = 0; i < length; ++i) { + y1[i] += D[j][i]; + } + } +} + + +static void nbody_derivatives(struct reb_ode* ode, double* const yDot, const double* const y, double const t){ + struct reb_simulation* const r = ode->r; + if (r->t != t) { + // Not needed for first step. Accelerations already calculated. Just need to copy them + reb_integrator_bs_update_particles(r, y); + reb_simulation_update_acceleration(r); + } + + for (unsigned int i=0; iN; i++){ + const struct reb_particle p = r->particles[i]; + yDot[i*6+0] = p.vx; + yDot[i*6+1] = p.vy; + yDot[i*6+2] = p.vz; + yDot[i*6+3] = p.ax; + yDot[i*6+4] = p.ay; + yDot[i*6+5] = p.az; + } +} + + +void reb_integrator_bs_part1(struct reb_simulation* r){ + if (r->calculate_megno){ + reb_simulation_error(r, "The BS integrator does currently not support MEGNO."); + } + + struct reb_ode** odes = r->odes; + int Ns = r->N_odes; + for (int s=0; s < Ns; s++){ + const int length = odes[s]->length; + double* y0 = odes[s]->y; + double* y1 = odes[s]->y1; + for (int i = 0; i < length; ++i) { + y1[i] = y0[i]; + } + } +} + +static void allocate_sequence_arrays(struct reb_integrator_bs* ri_bs){ + ri_bs->sequence = malloc(sizeof(int)*sequence_length); + ri_bs->cost_per_step = malloc(sizeof(int)*sequence_length); + ri_bs->coeff = malloc(sizeof(double)*sequence_length); + ri_bs->cost_per_time_unit = malloc(sizeof(double)*sequence_length); + ri_bs->optimal_step = malloc(sizeof(double)*sequence_length); + + // step size sequence: 2, 6, 10, 14, ... // only needed for dense output + for (int k = 0; k < sequence_length; ++k) { + ri_bs->sequence[k] = 4 * k + 2; + } + + // step size sequence: 1,2,3,4,5 ... + //for (int k = 0; k < sequence_length; ++k) { + // ri_bs->sequence[k] = 2*( k+1); + //} + + // initialize the order selection cost array + // (number of function calls for each column of the extrapolation table) + ri_bs->cost_per_step[0] = ri_bs->sequence[0] + 1; + for (int k = 1; k < sequence_length; ++k) { + ri_bs->cost_per_step[k] = ri_bs->cost_per_step[k - 1] + ri_bs->sequence[k]; + } + ri_bs->cost_per_time_unit[0] = 0; + + // initialize the extrapolation tables + for (int j = 0; j < sequence_length; ++j) { + double r = 1./((double) ri_bs->sequence[j]); + ri_bs->coeff[j] = r*r; + } +} + +static void reb_integrator_bs_default_scale(struct reb_ode* ode, double* y1, double* y2, double relTol, double absTol){ + double* scale = ode->scale; + int length = ode->length; + for (int i = 0; i < length; i++) { + scale[i] = absTol + relTol * MAX(fabs(y1[i]), fabs(y2[i])); + } +} + + +int reb_integrator_bs_step(struct reb_simulation* r, double dt){ + // return 1 if step was successful + // 0 if rejected + // + struct reb_integrator_bs* ri_bs = &r->ri_bs; + + if (ri_bs->sequence==NULL){ + allocate_sequence_arrays(ri_bs); + } + + double t = r->t; + ri_bs->dt_proposed = dt; // In case of early fail + + // initial order selection + if (ri_bs->target_iter == 0){ + const double tol = ri_bs->eps_rel; + const double log10R = log10(MAX(1.0e-10, tol)); + ri_bs->target_iter = MAX(1, MIN(sequence_length - 2, (int) floor(0.5 - 0.6 * log10R))); + } + + // maxError not used at the moment. + // double maxError = DBL_MAX; + + int Ns = r->N_odes; // Number of ode sets + struct reb_ode** odes = r->odes; + double error; + int reject = 0; + + // Check if ODEs have been set up correctly + for (int s=0; s < Ns; s++){ + if (!odes[s]->derivatives){ + reb_simulation_error(r,"A user-specified set of ODEs has not been provided with a derivatives function."); + r->status = REB_STATUS_GENERIC_ERROR; + return 0; + } + } + + for (int s=0; s < Ns; s++){ + // Check if ODEs need pre timestep setup + if (odes[s]->pre_timestep){ + odes[s]->pre_timestep(odes[s], odes[s]->y); + } + // Scaling + if (odes[s]->getscale){ + odes[s]->getscale(odes[s], odes[s]->y, odes[s]->y); // initial scaling + }else{ + reb_integrator_bs_default_scale(odes[s], odes[s]->y, odes[s]->y, ri_bs->eps_rel, ri_bs->eps_abs); + } + } + + // first evaluation, at the beginning of the step + for (int s=0; s < Ns; s++){ + odes[s]->derivatives(odes[s], odes[s]->y0Dot, odes[s]->y, t); + } + + const int forward = (dt >= 0.); + + // iterate over several substep sizes + int k = -1; + for (int loop = 1; loop; ) { + + ++k; + + // modified midpoint integration with the current substep + if ( ! tryStep(r, Ns, k, ri_bs->sequence[k], t, dt)) { + + // the stability check failed, we reduce the global step +#if DEBUG + printf("S"); +#endif + dt = fabs(dt * stabilityReduction); + reject = 1; + loop = 0; + + } else { + for (int s=0; s < Ns; s++){ + const int length = odes[s]->length; + for (int i = 0; i < length; ++i) { + double CD = odes[s]->y1[i]; + odes[s]->C[i] = CD; + odes[s]->D[k][i] = CD; + } + } + + // the substep was computed successfully + if (k > 0) { + + // extrapolate the state at the end of the step + // using last iteration data + for (int s=0; s < Ns; s++){ + extrapolate(odes[s], ri_bs->coeff, k); + if (odes[s]->getscale){ + odes[s]->getscale(odes[s], odes[s]->y, odes[s]->y1); + }else{ + reb_integrator_bs_default_scale(odes[s], odes[s]->y, odes[s]->y, ri_bs->eps_rel, ri_bs->eps_abs); + } + } + + // estimate the error at the end of the step. + error = 0; + //long int combined_length = 0; + for (int s=0; s < Ns; s++){ + const int length = odes[s]->length; + //combined_length += length; + double * C = odes[s]->C; + double * scale = odes[s]->scale; + for (int j = 0; j < length; ++j) { + const double e = C[j] / scale[j]; + error = MAX(error, e * e); + } + } + // Note: Used to be: error = sqrt(error / combined_length). But for N-body applications it might be more consistent to use: + error = sqrt(error); + if (isnan(error)) { + reb_simulation_error(r, "NaN appearing during ODE integration."); + r->status = REB_STATUS_GENERIC_ERROR; + return 0; + } + + if ((error > 1.0e25)){ // TODO: Think about what to do when error increases: || ((k > 1) && (error > maxError))) + // error is too big, we reduce the global step +#if DEBUG + printf("R (error= %.5e)",error); +#endif + dt = fabs(dt * stabilityReduction); + reject = 1; + loop = 0; + } else { + + // Not used at the moment + // maxError = MAX(4 * error, 1.0); + + // compute optimal stepsize for this order + const double exp = 1.0 / (2 * k + 1); + double fac = stepControl2 / pow(error / stepControl1, exp); + const double power = pow(stepControl3, exp); + fac = MAX(power / stepControl4, MIN(1. / power, fac)); + ri_bs->optimal_step[k] = fabs(dt * fac); + ri_bs->cost_per_time_unit[k] = ri_bs->cost_per_step[k] / ri_bs->optimal_step[k]; + + // check convergence + switch (k - ri_bs->target_iter) { + + case -1 : // one before target + if ((ri_bs->target_iter > 1) && ! ri_bs->previous_rejected) { + + // check if we can stop iterations now + if (error <= 1.0) { + // convergence have been reached just before target_iter + loop = 0; + } else { + // estimate if there is a chance convergence will + // be reached on next iteration, using the + // asymptotic evolution of error + const double ratio = ((double) ri_bs->sequence[ri_bs->target_iter] * ri_bs->sequence[ri_bs->target_iter + 1]) / (ri_bs->sequence[0] * ri_bs->sequence[0]); + if (error > ratio * ratio) { + // we don't expect to converge on next iteration + // we reject the step immediately and reduce order + reject = 1; + loop = 0; + ri_bs->target_iter = k; + if ((ri_bs->target_iter > 1) && + (ri_bs->cost_per_time_unit[ri_bs->target_iter - 1] < + orderControl1 * ri_bs->cost_per_time_unit[ri_bs->target_iter])) { + ri_bs->target_iter -= 1; + } + dt = ri_bs->optimal_step[ri_bs->target_iter]; +#if DEBUG + printf("O"); +#endif + } + } + } + break; + + case 0: // exactly on target + if (error <= 1.0) { + // convergence has been reached exactly at target_iter + loop = 0; + } else { + // estimate if there is a chance convergence will + // be reached on next iteration, using the + // asymptotic evolution of error + const double ratio = ((double) ri_bs->sequence[k + 1]) / ri_bs->sequence[0]; + if (error > ratio * ratio) { + // we don't expect to converge on next iteration + // we reject the step immediately +#if DEBUG + printf("o"); +#endif + reject = 1; + loop = 0; + if ((ri_bs->target_iter > 1) && + (ri_bs->cost_per_time_unit[ri_bs->target_iter - 1] < + orderControl1 * ri_bs->cost_per_time_unit[ri_bs->target_iter])) { + --ri_bs->target_iter; + } + dt = ri_bs->optimal_step[ri_bs->target_iter]; + } + } + break; + + case 1 : // one past target + if (error > 1.0) { +#if DEBUG + printf("e"); +#endif + reject = 1; + if ((ri_bs->target_iter > 1) && + (ri_bs->cost_per_time_unit[ri_bs->target_iter - 1] < + orderControl1 * ri_bs->cost_per_time_unit[ri_bs->target_iter])) { + --ri_bs->target_iter; + } + dt = ri_bs->optimal_step[ri_bs->target_iter]; + } + loop = 0; + break; + + default : + if (ri_bs->first_or_last_step && (error <= 1.0)) { + loop = 0; + } + break; + + } + } + } + } + } + + + if (! reject) { +#if DEBUG + printf("."); +#endif + // Swap arrays + for (int s=0; s < Ns; s++){ + double* y_tmp = odes[s]->y; + odes[s]->y = odes[s]->y1; + odes[s]->y1 = y_tmp; + // Check if ODEs need post timestep call + if (odes[s]->post_timestep){ + odes[s]->post_timestep(odes[s], odes[s]->y); + } + } + + int optimalIter; + if (k == 1) { + optimalIter = 2; + if (ri_bs->previous_rejected) { + optimalIter = 1; + } + } else if (k <= ri_bs->target_iter) { // Converged before or on target + optimalIter = k; + if (ri_bs->cost_per_time_unit[k - 1] < orderControl1 * ri_bs->cost_per_time_unit[k]) { + optimalIter = k - 1; + } else if (ri_bs->cost_per_time_unit[k] < orderControl2 * ri_bs->cost_per_time_unit[k - 1]) { + optimalIter = MIN(k + 1, sequence_length - 2); + } + } else { // converged after target + optimalIter = k - 1; + if ((k > 2) && (ri_bs->cost_per_time_unit[k - 2] < orderControl1 * ri_bs->cost_per_time_unit[k - 1])) { + optimalIter = k - 2; + } + if (ri_bs->cost_per_time_unit[k] < orderControl2 * ri_bs->cost_per_time_unit[optimalIter]) { + optimalIter = MIN(k, sequence_length - 2); + } + } + + if (ri_bs->previous_rejected) { + // after a rejected step neither order nor stepsize + // should increase + ri_bs->target_iter = MIN(optimalIter, k); + dt = MIN(fabs(dt), ri_bs->optimal_step[ri_bs->target_iter]); + } else { + // stepsize control + if (optimalIter <= k) { + dt = ri_bs->optimal_step[optimalIter]; + } else { + if ((k < ri_bs->target_iter) && + (ri_bs->cost_per_time_unit[k] < orderControl2 * ri_bs->cost_per_time_unit[k - 1])) { + dt = ri_bs->optimal_step[k] * ri_bs->cost_per_step[optimalIter + 1] / ri_bs->cost_per_step[k]; + } else { + dt = ri_bs->optimal_step[k] * ri_bs->cost_per_step[optimalIter] / ri_bs->cost_per_step[k]; + } + } + + ri_bs->target_iter = optimalIter; + + } + } + + dt = fabs(dt); + + if (ri_bs->min_dt !=0.0 && dt < ri_bs->min_dt) { + dt = ri_bs->min_dt; + reb_simulation_warning(r,"Minimal stepsize reached during ODE integration."); + } + + if (ri_bs->max_dt !=0.0 && dt > ri_bs->max_dt) { + dt = ri_bs->max_dt; + reb_simulation_warning(r,"Maximum stepsize reached during ODE integration."); + } + + if (! forward) { + dt = -dt; + } + ri_bs->dt_proposed = dt; + + if (reject) { + ri_bs->previous_rejected = 1; + } else { + ri_bs->previous_rejected = 0; + ri_bs->first_or_last_step = 0; + } + return !reject; +} + +struct reb_ode* reb_ode_create(struct reb_simulation* r, unsigned int length){ + struct reb_ode* ode = malloc(sizeof(struct reb_ode)); + + memset(ode, 0, sizeof(struct reb_ode)); // not really necessaery + + if (r->N_allocated_odes <= r->N_odes){ + r->N_allocated_odes += 32; + r->odes = realloc(r->odes,sizeof(struct reb_ode*)*r->N_allocated_odes); + } + + r->odes[r->N_odes] = ode; + r->N_odes += 1; + + + ode->r = r; // weak reference + ode->length = length; + ode->needs_nbody = 1; + ode->N_allocated = length; + ode->getscale = NULL; + ode->derivatives = NULL; + ode->pre_timestep = NULL; + ode->post_timestep = NULL; + ode->D = malloc(sizeof(double*)*(sequence_length)); + for (int k = 0; k < sequence_length; ++k) { + ode->D[k] = malloc(sizeof(double)*length); + } + + ode->C = malloc(sizeof(double)*length); + ode->y = malloc(sizeof(double)*length); + ode->y1 = malloc(sizeof(double)*length); + ode->y0Dot = malloc(sizeof(double)*length); + ode->yTmp = malloc(sizeof(double)*length); + ode->yDot = malloc(sizeof(double)*length); + + ode->scale = malloc(sizeof(double)*length); + + r->ri_bs.first_or_last_step = 1; + + return ode; +} + +void reb_integrator_bs_part2(struct reb_simulation* r){ + struct reb_integrator_bs* ri_bs = &(r->ri_bs); + + unsigned int nbody_length = r->N*3*2; + // Check if particle numbers changed, if so delete and recreate ode. + if (ri_bs->nbody_ode != NULL){ + if (ri_bs->nbody_ode->length != nbody_length){ + reb_ode_free(ri_bs->nbody_ode); + ri_bs->nbody_ode = NULL; + } + } + if (ri_bs->nbody_ode == NULL){ + ri_bs->nbody_ode = reb_ode_create(r, nbody_length); + ri_bs->nbody_ode->derivatives = nbody_derivatives; + ri_bs->nbody_ode->needs_nbody = 0; // No need to update unless there's another ode + ri_bs->first_or_last_step = 1; + } + + for (int s=0; s < r->N_odes; s++){ + if (r->odes[s]->needs_nbody){ + ri_bs->user_ode_needs_nbody = 1; + } + } + + double* const y = ri_bs->nbody_ode->y; + for (unsigned int i=0; iN; i++){ + const struct reb_particle p = r->particles[i]; + y[i*6+0] = p.x; + y[i*6+1] = p.y; + y[i*6+2] = p.z; + y[i*6+3] = p.vx; + y[i*6+4] = p.vy; + y[i*6+5] = p.vz; + } + + int success = reb_integrator_bs_step(r, r->dt); + if (success){ + r->t += r->dt; + r->dt_last_done = r->dt; + } + r->dt = ri_bs->dt_proposed; + + reb_integrator_bs_update_particles(r, ri_bs->nbody_ode->y); +} + +void reb_integrator_bs_synchronize(struct reb_simulation* r){ + // Do nothing. +} + +void reb_ode_free(struct reb_ode* ode){ + // Free data array + free(ode->y); + ode->y = NULL; + free(ode->y1); + ode->y1 = NULL; + free(ode->C); + ode->C = NULL; + free(ode->scale); + ode->scale = NULL; + + if (ode->D){ + for (int k=0; k < sequence_length; k++) { + free(ode->D[k]); + } + free(ode->D); + ode->D = NULL; + } + free(ode->y0Dot); + ode->y0Dot = NULL; + free(ode->yTmp); + ode->yTmp = NULL; + free(ode->yDot); + ode->yDot = NULL; + + struct reb_simulation* r = ode->r; + if (r){ // only do this is ode is in a simulation + struct reb_integrator_bs* ri_bs = &r->ri_bs; + int shift = 0; + for (int s=0; s < r->N_odes; s++){ + if (r->odes[s] == ode){ + r->N_odes--; + shift = 1; + } + if (shift && s <= r->N_odes ){ + r->odes[s] = r->odes[s+1]; + } + } + if (ri_bs->nbody_ode == ode){ + ri_bs->nbody_ode = NULL; + } + } + free(ode); +} + + + +void reb_integrator_bs_reset(struct reb_simulation* r){ + struct reb_integrator_bs* ri_bs = &(r->ri_bs); + + // Delete nbody ode but not others + if (ri_bs->nbody_ode){ + reb_ode_free(ri_bs->nbody_ode); + ri_bs->nbody_ode = NULL; + } + + // Free sequence arrays + free(ri_bs->sequence); + ri_bs->sequence = NULL; + + free(ri_bs->coeff); + ri_bs->coeff = NULL; + free(ri_bs->cost_per_step); + ri_bs->cost_per_step = NULL; + free(ri_bs->cost_per_time_unit); + ri_bs->cost_per_time_unit = NULL; + free(ri_bs->optimal_step); + ri_bs->optimal_step = NULL; + + + // Default settings + ri_bs->eps_abs = 1e-8; + ri_bs->eps_rel = 1e-8; + ri_bs->max_dt = 0; + ri_bs->min_dt = 0; + ri_bs->first_or_last_step = 1; + ri_bs->previous_rejected = 0; + ri_bs->target_iter = 0; + +} diff --git a/rebound/source/src/integrator_bs.h b/rebound/source/src/integrator_bs.h new file mode 100644 index 0000000000000000000000000000000000000000..f3d9bb73ebef5ad6c7a6a5c6ce376941cd72f9af --- /dev/null +++ b/rebound/source/src/integrator_bs.h @@ -0,0 +1,34 @@ +/** + * @file integrator_bs.h + * @brief Interface for numerical particle integrator + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2021 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _INTEGRATOR_BS_H +#define _INTEGRATOR_BS_H +void reb_integrator_bs_part1(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_bs_part2(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_bs_synchronize(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_bs_reset(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_bs_reset_struct(struct reb_integrator_bs* ri_bs); +int reb_integrator_bs_step(struct reb_simulation* r, double dt); +void reb_integrator_bs_update_particles(struct reb_simulation* r, const double* y); +#endif diff --git a/rebound/source/src/integrator_eos.c b/rebound/source/src/integrator_eos.c new file mode 100644 index 0000000000000000000000000000000000000000..22bfa5c71662cdadb3c31e3d7aaeb2524186cd4d --- /dev/null +++ b/rebound/source/src/integrator_eos.c @@ -0,0 +1,726 @@ +/** + * @file integrator_eos.c + * @brief Embedded Operator Splitting (EOS) method + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2019 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#include +#include +#include +#include "rebound.h" +#include "integrator.h" +#include "gravity.h" +#include "integrator_eos.h" +#include "integrator_leapfrog.h" +#include "tools.h" +#define MIN(a, b) ((a) > (b) ? (b) : (a)) ///< Returns the minimum of a and b +#define MAX(a, b) ((a) > (b) ? (a) : (b)) ///< Returns the maximum of a and b + + +static const double lf4_2_a = 0.211324865405187117745425609749; + +static const double lf8_6_4_a[4] = {0.0711334264982231177779387300061549964174, 0.241153427956640098736487795326289649618, 0.521411761772814789212136078067994229991, -0.333698616227678005726562603400438876027}; +static const double lf8_6_4_b[4] = {0.183083687472197221961703757166430291072, 0.310782859898574869507522291054262796375, -0.0265646185119588006972121379164987592663, 0.0653961422823734184559721793911134363710}; + +static const double pmlf6_a[2] = {-0.0682610383918630,0.568261038391863038121699}; +static const double pmlf6_b[2] = {0.2621129352517028, 0.475774129496594366806050}; +static const double pmlf6_c[2] = {0., 0.0164011128160783}; +static const double pmlf6_z[6] = { 0.07943288242455420, 0.02974829169467665, -0.7057074964815896, 0.3190423451260838, -0.2869147334299646, 0.564398710666239478150885}; +static const double pmlf6_y[6] = {1.3599424487455264, -0.6505973747535132, -0.033542814598338416, -0.040129915275115030, 0.044579729809902803, -0.680252073928462652752103}; +static const double pmlf6_v[6] = {-0.034841228074994859, 0.031675672097525204, -0.005661054677711889, 0.004262222269023640, 0.005, -0.005}; + +static const double pmlf4_y[3] = {0.1859353996846055, 0.0731969797858114, -0.1576624269298081}; +static const double pmlf4_z[3] = {0.8749306155955435, -0.237106680151022, -0.5363539829039128}; + +static const double plf7_6_4_a[2] = {0.5600879810924619,-0.060087981092461900000}; +static const double plf7_6_4_b[2] = {1.5171479707207228, -2.0342959414414456000}; +static const double plf7_6_4_z[6] = {-0.3346222298730800, 1.0975679907321640, -1.0380887460967830, 0.6234776317921379, -1.1027532063031910, -0.0141183222088869}; +static const double plf7_6_4_y[6] = {-1.6218101180868010, 0.0061709468110142, 0.8348493592472594, -0.0511253369989315, 0.5633782670698199, -0.5}; + +static inline void reb_integrator_eos_interaction_shell0(struct reb_simulation* r, double y, double v){ + // Calculate gravity using standard gravity routine + r->gravity_ignore_terms = 2; + r->gravity = REB_GRAVITY_BASIC; + reb_simulation_update_acceleration(r); + if (v!=0.){ + reb_calculate_and_apply_jerk(r,v); + } + // Apply acceleration (jerk already applied) + struct reb_particle* restrict const particles = r->particles; + const int N = r->N; + for (int i=0;iN; + const int N_real = N - r->N_var; + const int N_active = r->N_active==-1?N_real:r->N_active; + const int testparticle_type = r->testparticle_type; + struct reb_particle* restrict const particles = r->particles; + + const double G = r->G; + + if (v!=0.){ // is jerk even used? + // Normal force calculation + particles[0].ax = 0; + particles[0].ay = 0; + particles[0].az = 0; + // Interactions between central object and all other active particles + for (int j=1; jN_var_config;v++){ + struct reb_variational_configuration const vc = r->var_config[v]; + if (vc.order==1){ + ////////////////// + /// 1st order /// + ////////////////// + struct reb_particle* const particles_var1 = particles + vc.index; + if (vc.testparticle<0){ + for (int j=1; j=0;i--){ + interaction_step(r, -dt*pmlf6_y[i], -dt*dt*dt*pmlf6_v[i]); + drift_step(r, -dt*pmlf6_z[i]); + } + break; + case REB_EOS_PMLF4: + for (int i=2;i>=0;i--){ + drift_step(r, -dt*pmlf4_z[i]); + interaction_step(r, -dt*pmlf4_y[i], 0.); + } + break; + case REB_EOS_PLF7_6_4: + for (int i=5;i>=0;i--){ + interaction_step(r, -dt*plf7_6_4_y[i], 0.); + drift_step(r, -dt*plf7_6_4_z[i]); + } + break; + default: + break; + } +} +static void reb_integrator_eos_drift_shell1(struct reb_simulation* const r, double dt){ + struct reb_particle* restrict const particles = r->particles; + unsigned int N = r->N; + for (unsigned int i=0;iri_eos); + const int n = reos->n; + const double dt = _dt/n; + reb_integrator_eos_preprocessor(r, dt, reos->phi1, reb_integrator_eos_drift_shell1, reb_integrator_eos_interaction_shell1); + switch(reos->phi1){ + case REB_EOS_LF: + reb_integrator_eos_drift_shell1(r, dt*0.5); + for (int i=0;iphi1, reb_integrator_eos_drift_shell1, reb_integrator_eos_interaction_shell1); +} + +void reb_integrator_eos_part1(struct reb_simulation* r){ + if (r->gravity != REB_GRAVITY_BASIC){ + reb_simulation_warning(r,"EOS only supports the BASIC gravity routine."); + } + // No force calculation needed between part1 and part2 of the integrator. + // eos_interaction() routine will set r->gravity to BASIC later. + r->gravity = REB_GRAVITY_NONE; + +} + +void reb_integrator_eos_part2(struct reb_simulation* const r){ + struct reb_integrator_eos* const reos = &(r->ri_eos); + const double dt = r->dt; + + double dtfac = 1.; + if (reos->is_synchronized){ + reb_integrator_eos_preprocessor(r, r->dt, reos->phi0, reb_integrator_eos_drift_shell0, reb_integrator_eos_interaction_shell0); + }else{ + dtfac = 2.; + } + switch(reos->phi0){ + case REB_EOS_LF: + reb_integrator_eos_drift_shell0(r, dt*0.5*dtfac); + reb_integrator_eos_interaction_shell0(r, dt, 0.); + break; + case REB_EOS_LF4: + reb_integrator_eos_drift_shell0(r, dt*reb_integrator_leapfrog_lf4_a*dtfac); + reb_integrator_eos_interaction_shell0(r, dt*2.*reb_integrator_leapfrog_lf4_a, 0.); + reb_integrator_eos_drift_shell0(r, dt*(0.5-reb_integrator_leapfrog_lf4_a)); + reb_integrator_eos_interaction_shell0(r, dt*(1.-4.*reb_integrator_leapfrog_lf4_a), 0.); + reb_integrator_eos_drift_shell0(r, dt*(0.5-reb_integrator_leapfrog_lf4_a)); + reb_integrator_eos_interaction_shell0(r, dt*2.*reb_integrator_leapfrog_lf4_a, 0.); + break; + case REB_EOS_LF6: + reb_integrator_eos_drift_shell0(r, dt*reb_integrator_leapfrog_lf6_a[0]*0.5*dtfac); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf6_a[0], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf6_a[0]+reb_integrator_leapfrog_lf6_a[1])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf6_a[1], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf6_a[1]+reb_integrator_leapfrog_lf6_a[2])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf6_a[2], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf6_a[2]+reb_integrator_leapfrog_lf6_a[3])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf6_a[3], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf6_a[3]+reb_integrator_leapfrog_lf6_a[4])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf6_a[4], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf6_a[3]+reb_integrator_leapfrog_lf6_a[4])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf6_a[3], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf6_a[2]+reb_integrator_leapfrog_lf6_a[3])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf6_a[2], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf6_a[1]+reb_integrator_leapfrog_lf6_a[2])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf6_a[1], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf6_a[0]+reb_integrator_leapfrog_lf6_a[1])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf6_a[0], 0.); + break; + case REB_EOS_LF8: + reb_integrator_eos_drift_shell0(r, dt*reb_integrator_leapfrog_lf8_a[0]*0.5*dtfac); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[0], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[0]+reb_integrator_leapfrog_lf8_a[1])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[1], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[1]+reb_integrator_leapfrog_lf8_a[2])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[2], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[2]+reb_integrator_leapfrog_lf8_a[3])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[3], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[3]+reb_integrator_leapfrog_lf8_a[4])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[4], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[4]+reb_integrator_leapfrog_lf8_a[5])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[5], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[5]+reb_integrator_leapfrog_lf8_a[6])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[6], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[6]+reb_integrator_leapfrog_lf8_a[7])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[7], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[7]+reb_integrator_leapfrog_lf8_a[8])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[8], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[7]+reb_integrator_leapfrog_lf8_a[8])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[7], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[6]+reb_integrator_leapfrog_lf8_a[7])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[6], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[5]+reb_integrator_leapfrog_lf8_a[6])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[5], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[4]+reb_integrator_leapfrog_lf8_a[5])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[4], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[3]+reb_integrator_leapfrog_lf8_a[4])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[3], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[2]+reb_integrator_leapfrog_lf8_a[3])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[2], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[1]+reb_integrator_leapfrog_lf8_a[2])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[1], 0.); + reb_integrator_eos_drift_shell0(r, dt*(reb_integrator_leapfrog_lf8_a[0]+reb_integrator_leapfrog_lf8_a[1])*0.5); + reb_integrator_eos_interaction_shell0(r, dt*reb_integrator_leapfrog_lf8_a[0], 0.); + break; + case REB_EOS_LF4_2: + reb_integrator_eos_drift_shell0(r, dt*lf4_2_a*dtfac); + reb_integrator_eos_interaction_shell0(r, dt*0.5, 0.); + reb_integrator_eos_drift_shell0(r, dt*(1.-2.*lf4_2_a)); + reb_integrator_eos_interaction_shell0(r, dt*0.5, 0.); + break; + case REB_EOS_LF8_6_4: + reb_integrator_eos_drift_shell0(r, dt*lf8_6_4_a[0]*dtfac); + reb_integrator_eos_interaction_shell0(r, lf8_6_4_b[0]*dt,0); + reb_integrator_eos_drift_shell0(r, lf8_6_4_a[1]*dt); + reb_integrator_eos_interaction_shell0(r, lf8_6_4_b[1]*dt,0); + reb_integrator_eos_drift_shell0(r, lf8_6_4_a[2]*dt); + reb_integrator_eos_interaction_shell0(r, lf8_6_4_b[2]*dt,0); + reb_integrator_eos_drift_shell0(r, lf8_6_4_a[3]*dt); + reb_integrator_eos_interaction_shell0(r, lf8_6_4_b[3]*dt,0); + reb_integrator_eos_drift_shell0(r, lf8_6_4_a[3]*dt); + reb_integrator_eos_interaction_shell0(r, lf8_6_4_b[2]*dt,0); + reb_integrator_eos_drift_shell0(r, lf8_6_4_a[2]*dt); + reb_integrator_eos_interaction_shell0(r, lf8_6_4_b[1]*dt,0); + reb_integrator_eos_drift_shell0(r, lf8_6_4_a[1]*dt); + reb_integrator_eos_interaction_shell0(r, lf8_6_4_b[0]*dt,0); + break; + case REB_EOS_PMLF4: + reb_integrator_eos_drift_shell0(r, dt*0.5*dtfac); + reb_integrator_eos_interaction_shell0(r, dt, dt*dt*dt/24.); + break; + case REB_EOS_PMLF6: + reb_integrator_eos_drift_shell0(r, dt*pmlf6_a[0]*dtfac); + reb_integrator_eos_interaction_shell0(r, dt*pmlf6_b[0], dt*dt*dt*pmlf6_c[0]); + reb_integrator_eos_drift_shell0(r, dt*pmlf6_a[1]); + reb_integrator_eos_interaction_shell0(r, dt*pmlf6_b[1], dt*dt*dt*pmlf6_c[1]); + reb_integrator_eos_drift_shell0(r, dt*pmlf6_a[1]); + reb_integrator_eos_interaction_shell0(r, dt*pmlf6_b[0], dt*dt*dt*pmlf6_c[0]); + break; + case REB_EOS_PLF7_6_4: + reb_integrator_eos_drift_shell0(r, dt*plf7_6_4_a[0]*dtfac); + reb_integrator_eos_interaction_shell0(r, plf7_6_4_b[0]*dt,0); + reb_integrator_eos_drift_shell0(r, plf7_6_4_a[1]*dt); + reb_integrator_eos_interaction_shell0(r, plf7_6_4_b[1]*dt,0); + reb_integrator_eos_drift_shell0(r, plf7_6_4_a[1]*dt); + reb_integrator_eos_interaction_shell0(r, plf7_6_4_b[0]*dt,0); + break; + } + + reos->is_synchronized = 0; + if (reos->safe_mode){ + reb_integrator_eos_synchronize(r); + } + + r->t+=r->dt; + r->dt_last_done = r->dt; + + if (r->calculate_megno){ + r->gravity_ignore_terms = 0; + reb_calculate_acceleration_var(r); + double dY = r->dt * 2. * (r->t-r->megno_initial_t) * reb_tools_megno_deltad_delta(r); + reb_tools_megno_update(r, dY, r->dt); + } + +} + +void reb_integrator_eos_synchronize(struct reb_simulation* r){ + struct reb_integrator_eos* const reos = &(r->ri_eos); + const double dt = r->dt; + if (reos->is_synchronized == 0){ + switch(reos->phi0){ + case REB_EOS_PMLF4: + case REB_EOS_LF: + reb_integrator_eos_drift_shell0(r, dt*0.5); + break; + case REB_EOS_PMLF6: + reb_integrator_eos_drift_shell0(r, dt*pmlf6_a[0]); + break; + case REB_EOS_LF4: + reb_integrator_eos_drift_shell0(r, dt*reb_integrator_leapfrog_lf4_a); + break; + case REB_EOS_LF4_2: + reb_integrator_eos_drift_shell0(r, dt*lf4_2_a); + break; + case REB_EOS_PLF7_6_4: + reb_integrator_eos_drift_shell0(r, dt*plf7_6_4_a[0]); + break; + case REB_EOS_LF8_6_4: + reb_integrator_eos_drift_shell0(r, dt*lf8_6_4_a[0]); + break; + case REB_EOS_LF6: + reb_integrator_eos_drift_shell0(r, dt*reb_integrator_leapfrog_lf6_a[0]*0.5); + break; + case REB_EOS_LF8: + reb_integrator_eos_drift_shell0(r, dt*reb_integrator_leapfrog_lf8_a[0]*0.5); + break; + } + reb_integrator_eos_postprocessor(r, r->dt, reos->phi0, reb_integrator_eos_drift_shell0, reb_integrator_eos_interaction_shell0); + reos->is_synchronized = 1; + } +} + +void reb_integrator_eos_reset(struct reb_simulation* r){ + r->ri_eos.n = 2; + r->ri_eos.phi0 = REB_EOS_LF; + r->ri_eos.phi1 = REB_EOS_LF; + r->ri_eos.safe_mode = 1; + r->ri_eos.is_synchronized = 1; +} + diff --git a/rebound/source/src/integrator_eos.h b/rebound/source/src/integrator_eos.h new file mode 100644 index 0000000000000000000000000000000000000000..845faeb477456ec356ffa186ed61439474d2647e --- /dev/null +++ b/rebound/source/src/integrator_eos.h @@ -0,0 +1,31 @@ +/** + * @file integrator_eos.h + * @brief Interface for numerical particle integrator + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2019 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _INTEGRATOR_EOS_H +#define _INTEGRATOR_EOS_H +void reb_integrator_eos_part1(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_eos_part2(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_eos_synchronize(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_eos_reset(struct reb_simulation* r); ///< Internal function used to call a specific integrator +#endif diff --git a/rebound/source/src/integrator_ias15.c b/rebound/source/src/integrator_ias15.c new file mode 100644 index 0000000000000000000000000000000000000000..9d76998072e5539d2a0abe6c902686c281cfcd8c --- /dev/null +++ b/rebound/source/src/integrator_ias15.c @@ -0,0 +1,1008 @@ +/** + * @file integrator_ias15.c + * @brief IAS15 integrator. + * @author Hanno Rein + * @details This file implements the IAS15 integration scheme. + * IAS stands for Integrator with Adaptive Step-size control, 15th + * order. This scheme is a fifteenth order integrator well suited for + * high accuracy orbit integration with non-conservative forces. + * For more details see Rein & Spiegel 2014. Also see Everhart, 1985, + * ASSL Vol. 115, IAU Colloq. 83, Dynamics of Comets, Their Origin + * and Evolution, 185 for the original implementation by Everhart. + * Part of this code is based a function from the ORSE package. + * See orsa.sourceforge.net for more details on their implementation. + * + * + * @section LICENSE + * Copyright (c) 2011-2012 Hanno Rein, Dave Spiegel. + * Copyright (c) 2002-2004 Pasquale Tricarico. + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#include +#include +#include +// Uncomment the following line to generate numerical constants with extended precision. +//#define GENERATE_CONSTANTS +#ifdef GENERATE_CONSTANTS +#include +void integrator_generate_constants(void); +#endif // GENERATE_CONSTANTS +#include "rebound.h" +#include "particle.h" +#include "gravity.h" +#include "tools.h" +#include "integrator.h" +#include "integrator_ias15.h" + +/** + * @brief Struct containing pointers to intermediate values + */ +struct reb_dpconst7 { + double* const restrict p0; ///< Temporary values at intermediate step 0 + double* const restrict p1; ///< Temporary values at intermediate step 1 + double* const restrict p2; ///< Temporary values at intermediate step 2 + double* const restrict p3; ///< Temporary values at intermediate step 3 + double* const restrict p4; ///< Temporary values at intermediate step 4 + double* const restrict p5; ///< Temporary values at intermediate step 5 + double* const restrict p6; ///< Temporary values at intermediate step 6 +}; + +// Helper functions for resetting the b and e coefficients +static void copybuffers(const struct reb_dpconst7 _a, const struct reb_dpconst7 _b, int N3); +static void predict_next_step(double ratio, int N3, const struct reb_dpconst7 _e, const struct reb_dpconst7 _b, const struct reb_dpconst7 e, const struct reb_dpconst7 b); + + +///////////////////////// +// Constants + +static const double safety_factor = 0.25; /**< Maximum increase/deacrease of consecutve timesteps. */ + +// Gauss Radau spacings +static const double h[8] = { 0.0, 0.0562625605369221464656521910318, 0.180240691736892364987579942780, 0.352624717113169637373907769648, 0.547153626330555383001448554766, 0.734210177215410531523210605558, 0.885320946839095768090359771030, 0.977520613561287501891174488626}; +// Other constants +static const double rr[28] = {0.0562625605369221464656522, 0.1802406917368923649875799, 0.1239781311999702185219278, 0.3526247171131696373739078, 0.2963621565762474909082556, 0.1723840253762772723863278, 0.5471536263305553830014486, 0.4908910657936332365357964, 0.3669129345936630180138686, 0.1945289092173857456275408, 0.7342101772154105315232106, 0.6779476166784883850575584, 0.5539694854785181665356307, 0.3815854601022408941493028, 0.1870565508848551485217621, 0.8853209468390957680903598, 0.8290583863021736216247076, 0.7050802551022034031027798, 0.5326962297259261307164520, 0.3381673205085403850889112, 0.1511107696236852365671492, 0.9775206135612875018911745, 0.9212580530243653554255223, 0.7972799218243951369035945, 0.6248958964481178645172667, 0.4303669872307321188897259, 0.2433104363458769703679639, 0.0921996667221917338008147}; +static const double c[21] = {-0.0562625605369221464656522, 0.0101408028300636299864818, -0.2365032522738145114532321, -0.0035758977292516175949345, 0.0935376952594620658957485, -0.5891279693869841488271399, 0.0019565654099472210769006, -0.0547553868890686864408084, 0.4158812000823068616886219, -1.1362815957175395318285885, -0.0014365302363708915424460, 0.0421585277212687077072973, -0.3600995965020568122897665, 1.2501507118406910258505441, -1.8704917729329500633517991, 0.0012717903090268677492943, -0.0387603579159067703699046, 0.3609622434528459832253398, -1.4668842084004269643701553, 2.9061362593084293014237913, -2.7558127197720458314421588}; +static const double d[21] = {0.0562625605369221464656522, 0.0031654757181708292499905, 0.2365032522738145114532321, 0.0001780977692217433881125, 0.0457929855060279188954539, 0.5891279693869841488271399, 0.0000100202365223291272096, 0.0084318571535257015445000, 0.2535340690545692665214616, 1.1362815957175395318285885, 0.0000005637641639318207610, 0.0015297840025004658189490, 0.0978342365324440053653648, 0.8752546646840910912297246, 1.8704917729329500633517991, 0.0000000317188154017613665, 0.0002762930909826476593130, 0.0360285539837364596003871, 0.5767330002770787313544596, 2.2485887607691597933926895, 2.7558127197720458314421588}; + + +// Weights for integration of a first order differential equation (Note: interval length = 2) +static const double w[8] = {0.03125, 0.185358154802979278540728972807180754479812609, 0.304130620646785128975743291458180383736715043, 0.376517545389118556572129261157225608762708603, 0.391572167452493593082499533303669362149363727, 0.347014795634501068709955597003528601733139176, 0.249647901329864963257869294715235590174262844, 0.114508814744257199342353731044292225247093225}; + +// Machine independent implementation of pow(*,1./7.) +static double sqrt7(double a){ + // Without scaling, this is only accurate for arguments in [1e-7, 1e2] + // With scaling: [1e-14, 1e8] + double scale = 1; + while(a<1e-7 && isnormal(a)){ + scale *= 0.1; + a *= 1e7; + } + while(a>1e2 && isnormal(a)){ + scale *= 10; + a *= 1e-7; + } + double x = 1.; + for (int k=0; k<20;k++){ // A smaller number should be ok too. + double x6 = x*x*x*x*x*x; + x += (a/x6-x)/7.; + } + return x*scale; +} + +static void free_dp7(struct reb_dp7* dp7){ + free(dp7->p0); + free(dp7->p1); + free(dp7->p2); + free(dp7->p3); + free(dp7->p4); + free(dp7->p5); + free(dp7->p6); + dp7->p0 = NULL; + dp7->p1 = NULL; + dp7->p2 = NULL; + dp7->p3 = NULL; + dp7->p4 = NULL; + dp7->p5 = NULL; + dp7->p6 = NULL; +} +static void clear_dp7(struct reb_dp7* const dp7, const int N3){ + for (int k=0;kp0[k] = 0.; + dp7->p1[k] = 0.; + dp7->p2[k] = 0.; + dp7->p3[k] = 0.; + dp7->p4[k] = 0.; + dp7->p5[k] = 0.; + dp7->p6[k] = 0.; + } +} +static void realloc_dp7(struct reb_dp7* const dp7, const int N3){ + dp7->p0 = realloc(dp7->p0,sizeof(double)*N3); + dp7->p1 = realloc(dp7->p1,sizeof(double)*N3); + dp7->p2 = realloc(dp7->p2,sizeof(double)*N3); + dp7->p3 = realloc(dp7->p3,sizeof(double)*N3); + dp7->p4 = realloc(dp7->p4,sizeof(double)*N3); + dp7->p5 = realloc(dp7->p5,sizeof(double)*N3); + dp7->p6 = realloc(dp7->p6,sizeof(double)*N3); + clear_dp7(dp7,N3); +} + +static struct reb_dpconst7 dpcast(struct reb_dp7 dp){ + struct reb_dpconst7 dpc = { + .p0 = dp.p0, + .p1 = dp.p1, + .p2 = dp.p2, + .p3 = dp.p3, + .p4 = dp.p4, + .p5 = dp.p5, + .p6 = dp.p6, + }; + return dpc; +} + +static inline void add_cs(double* p, double* csp, double inp){ + const double y = inp - *csp; + const double t = *p + y; + *csp = (t - *p) - y; + *p = t; +} + +void reb_integrator_ias15_alloc(struct reb_simulation* r){ + unsigned int N3; + if (r->integrator==REB_INTEGRATOR_MERCURIUS){ + N3 = 3*r->ri_mercurius.encounter_N;// mercurius close encounter + }else if (r->integrator==REB_INTEGRATOR_TRACE && r->ri_trace.mode == REB_TRACE_MODE_KEPLER){ + N3 = 3*r->ri_trace.encounter_N;// trace close encounter + }else{ + N3 = 3*r->N; + } + if (N3 > r->ri_ias15.N_allocated) { + realloc_dp7(&(r->ri_ias15.g),N3); + realloc_dp7(&(r->ri_ias15.b),N3); + realloc_dp7(&(r->ri_ias15.csb),N3); + realloc_dp7(&(r->ri_ias15.e),N3); + realloc_dp7(&(r->ri_ias15.br),N3); + realloc_dp7(&(r->ri_ias15.er),N3); + r->ri_ias15.at = realloc(r->ri_ias15.at,sizeof(double)*N3); + r->ri_ias15.x0 = realloc(r->ri_ias15.x0,sizeof(double)*N3); + r->ri_ias15.v0 = realloc(r->ri_ias15.v0,sizeof(double)*N3); + r->ri_ias15.a0 = realloc(r->ri_ias15.a0,sizeof(double)*N3); + r->ri_ias15.csx= realloc(r->ri_ias15.csx,sizeof(double)*N3); + r->ri_ias15.csv= realloc(r->ri_ias15.csv,sizeof(double)*N3); + r->ri_ias15.csa0 = realloc(r->ri_ias15.csa0,sizeof(double)*N3); + double* restrict const csx = r->ri_ias15.csx; + double* restrict const csv = r->ri_ias15.csv; + for (unsigned int i=0;iri_ias15.N_allocated = N3; + } + if (N3/3 > r->ri_ias15.N_allocated_map){ + r->ri_ias15.map = realloc(r->ri_ias15.map,sizeof(int)*(N3/3)); + for (unsigned int i=0;iri_ias15.map[i] = i; + } + r->ri_ias15.N_allocated_map = N3/3; + } + +} + +// Does the actual timestep. +static int reb_integrator_ias15_step(struct reb_simulation* r) { + reb_integrator_ias15_alloc(r); + + struct reb_particle* const particles = r->particles; + int N; + int* map; // this map allow for integrating only a selection of particles + if (r->integrator==REB_INTEGRATOR_MERCURIUS){// mercurius close encounter + N = r->ri_mercurius.encounter_N; + map = r->ri_mercurius.encounter_map; + if (map==NULL){ + reb_simulation_error(r, "Cannot access MERCURIUS map from IAS15."); + return 0; + } + }else if (r->integrator==REB_INTEGRATOR_TRACE && r->ri_trace.mode == REB_TRACE_MODE_KEPLER){// trace close encounter + N = r->ri_trace.encounter_N; + map = r->ri_trace.encounter_map; + if (map==NULL){ + reb_simulation_error(r, "Cannot access TRACE map from IAS15."); + return 0; + } + }else{ + N = r->N; + map = r->ri_ias15.map; // identity map + } + const int N3 = 3*N; + + // reb_simulation_update_acceleration(); // Not needed. Forces are already calculated in main routine. + + double* restrict const csx = r->ri_ias15.csx; + double* restrict const csv = r->ri_ias15.csv; + double* restrict const csa0 = r->ri_ias15.csa0; + double* restrict const at = r->ri_ias15.at; + double* restrict const x0 = r->ri_ias15.x0; + double* restrict const v0 = r->ri_ias15.v0; + double* restrict const a0 = r->ri_ias15.a0; + struct reb_vec3d* gravity_cs = r->gravity_cs; + const struct reb_dpconst7 g = dpcast(r->ri_ias15.g); + const struct reb_dpconst7 e = dpcast(r->ri_ias15.e); + const struct reb_dpconst7 b = dpcast(r->ri_ias15.b); + const struct reb_dpconst7 csb= dpcast(r->ri_ias15.csb); + const struct reb_dpconst7 er = dpcast(r->ri_ias15.er); + const struct reb_dpconst7 br = dpcast(r->ri_ias15.br); + for(int k=0;kgravity==REB_GRAVITY_COMPENSATED){ + for(int k=0;kcalculate_megno){ + integrator_megno_thisdt_init = w[0]* (r->t-r->megno_initial_t) * reb_tools_megno_deltad_delta(r); + } + + double t_beginning = r->t; + double predictor_corrector_error = 1e300; + double predictor_corrector_error_last = 2; + int iterations = 0; + // Predictor corrector loop + // Stops if one of the following conditions is satisfied: + // 1) predictor_corrector_error better than 1e-16 + // 2) predictor_corrector_error starts to oscillate + // 3) more than 12 iterations + while(1){ + if(predictor_corrector_error<1e-16){ + break; + } + if(iterations > 2 && predictor_corrector_error_last <= predictor_corrector_error){ + break; + } + if (iterations>=12){ + r->ri_ias15.iterations_max_exceeded++; + const int integrator_iterations_warning = 10; + if (r->ri_ias15.iterations_max_exceeded==integrator_iterations_warning ){ + reb_simulation_warning(r, "At least 10 predictor corrector loops in IAS15 did not converge. This is typically an indication of the timestep being too large."); + } + break; // Quit predictor corrector loop + } + predictor_corrector_error_last = predictor_corrector_error; + predictor_corrector_error = 0; + iterations++; + + integrator_megno_thisdt = integrator_megno_thisdt_init; + + for(int n=1;n<8;n++) { // Loop over interval using Gauss-Radau spacings + r->t = t_beginning + r->dt * h[n]; + + // Prepare particles arrays for force calculation + for(int i=0;idt*h[n]/2. + v0[k0])*r->dt*h[n]; + xk1 = -csx[k1] + ((((((((b.p6[k1]*7.*h[n]/9. + b.p5[k1])*3.*h[n]/4. + b.p4[k1])*5.*h[n]/7. + b.p3[k1])*2.*h[n]/3. + b.p2[k1])*3.*h[n]/5. + b.p1[k1])*h[n]/2. + b.p0[k1])*h[n]/3. + a0[k1])*r->dt*h[n]/2. + v0[k1])*r->dt*h[n]; + xk2 = -csx[k2] + ((((((((b.p6[k2]*7.*h[n]/9. + b.p5[k2])*3.*h[n]/4. + b.p4[k2])*5.*h[n]/7. + b.p3[k2])*2.*h[n]/3. + b.p2[k2])*3.*h[n]/5. + b.p1[k2])*h[n]/2. + b.p0[k2])*h[n]/3. + a0[k2])*r->dt*h[n]/2. + v0[k2])*r->dt*h[n]; + particles[mi].x = xk0 + x0[k0]; + particles[mi].y = xk1 + x0[k1]; + particles[mi].z = xk2 + x0[k2]; + } + if (r->calculate_megno || (r->additional_forces && r->force_is_velocity_dependent)){ + for(int i=0;idt*h[n]; + vk1 = -csv[k1] + (((((((b.p6[k1]*7.*h[n]/8. + b.p5[k1])*6.*h[n]/7. + b.p4[k1])*5.*h[n]/6. + b.p3[k1])*4.*h[n]/5. + b.p2[k1])*3.*h[n]/4. + b.p1[k1])*2.*h[n]/3. + b.p0[k1])*h[n]/2. + a0[k1])*r->dt*h[n]; + vk2 = -csv[k2] + (((((((b.p6[k2]*7.*h[n]/8. + b.p5[k2])*6.*h[n]/7. + b.p4[k2])*5.*h[n]/6. + b.p3[k2])*4.*h[n]/5. + b.p2[k2])*3.*h[n]/4. + b.p1[k2])*2.*h[n]/3. + b.p0[k2])*h[n]/2. + a0[k2])*r->dt*h[n]; + particles[mi].vx = vk0 + v0[k0]; + particles[mi].vy = vk1 + v0[k1]; + particles[mi].vz = vk2 + v0[k2]; + } + } + + + reb_simulation_update_acceleration(r); // Calculate forces at interval n + if (r->calculate_megno){ + integrator_megno_thisdt += w[n] * (r->t-r->megno_initial_t) * reb_tools_megno_deltad_delta(r); + } + + for(int k=0;kri_ias15.adaptive_mode!=REB_IAS15_INDIVIDUAL){ + const double ak = fabs(at[k]); + if (isnormal(ak) && ak>maxak){ + maxak = ak; + } + const double b6ktmp = fabs(tmp); // change of b6ktmp coefficient + if (isnormal(b6ktmp) && b6ktmp>maxb6ktmp){ + maxb6ktmp = b6ktmp; + } + }else{ + const double ak = at[k]; + const double b6ktmp = tmp; + const double errork = fabs(b6ktmp/ak); + if (isnormal(errork) && errork>predictor_corrector_error){ + predictor_corrector_error = errork; + } + } + } + if (r->ri_ias15.adaptive_mode!=REB_IAS15_INDIVIDUAL){ + predictor_corrector_error = maxb6ktmp/maxak; + } + + break; + } + } + } + } + // Set time back to initial value (will be updated below) + r->t = t_beginning; + // Find new timestep + const double dt_done = r->dt; + + double dt_new; + if (r->ri_ias15.epsilon>0){ + // Estimate error (given by last term in series expansion) + // There are two options: + // r->ri_ias15.adaptive_mode==REB_IAS15_GLOBAL (used to be default until January 2024) + // First, we determine the maximum acceleration and the maximum of the last term in the series. + // Then, the two are divided. + // r->ri_ias15.adaptive_mode==REB_IAS15_INDIVIDUAL + // Here, the fractional error is calculated for each particle individually and we use the maximum of the fractional error. + // This might fail in cases where a particle does not experience any (physical) acceleration besides roundoff errors. + // r->ri_ias15.adaptive_mode==REB_IAS15_PRS23 + // Here, the acceleration, jerk and snap are used to estimate the new timestep. + // The method is described in detail in Pham, Rein, Spiegel 2023 + unsigned int Nreal = N - r->N_var; + if (r->ri_ias15.adaptive_mode==REB_IAS15_INDIVIDUAL || r->ri_ias15.adaptive_mode==REB_IAS15_GLOBAL){ // Old adaptive timestepping methods + double integrator_error = 0.0; // Try to estimate integrator error based on last polynomial + if (r->ri_ias15.adaptive_mode==REB_IAS15_GLOBAL){ + double maxa = 0.0; + double maxj = 0.0; + for(unsigned int i=0;idt*r->dt/x2) < 1e-16) continue; + for(unsigned int k=3*i;k<3*(i+1);k++) { + const double ak = fabs(at[k]); + if (isnormal(ak) && ak>maxa){ + maxa = ak; + } + const double b6k = fabs(b.p6[k]); + if (isnormal(b6k) && b6k>maxj){ + maxj = b6k; + } + } + integrator_error = maxj/maxa; + } + }else{ // adaptive_mode == REB_IAS15_INDIVIDUAL + for(unsigned int k=0;kintegrator_error){ + integrator_error = errork; + } + } + } + // Use error estimate to predict new timestep + if (isnormal(integrator_error)){ + dt_new = sqrt7(r->ri_ias15.epsilon/integrator_error)*dt_done; + }else{ // In the rare case that the error estimate doesn't give a finite number (e.g. when all forces accidentally cancel up to machine precission). + dt_new = dt_done/safety_factor; // by default, increase timestep a little + }; + }else{ // adaptive_mode >= 2 (New adaptive timestepping method, default since January 2024) + double min_timescale2 = INFINITY; // note factor of dt_done**2 not included + for(unsigned int i=0;iri_ias15.adaptive_mode == REB_IAS15_PRS23){ + timescale2 = 2.*y2/(y3+sqrt(y4*y2)); // PRS23 + }else if (r->ri_ias15.adaptive_mode == REB_IAS15_AARSETH85){ + timescale2 = (sqrt(y2*y4)+y3) / (sqrt(y3*y5)+y4); // A85 + } + + if (isnormal(timescale2) && timescale2ri_ias15.epsilon*5040.0); + }else{ + dt_new = dt_done/safety_factor; // by default, increase timestep a little + } + } + + if (fabs(dt_new)ri_ias15.min_dt) dt_new = copysign(r->ri_ias15.min_dt,dt_new); + + if (fabs(dt_new/dt_done) < safety_factor) { // New timestep is significantly smaller. + // Reset particles + for(int k=0;kdt = dt_new; + if (r->dt_last_done!=0.){ // Do not predict next e/b values if this is the first time step. + double ratio = r->dt/r->dt_last_done; + predict_next_step(ratio, N3, er, br, e, b); + } + + return 0; // Step rejected. Do again. + } + if (fabs(dt_new/dt_done) > 1.0) { // New timestep is larger. + if (dt_new/dt_done > 1./safety_factor){ + dt_new = dt_done /safety_factor; // Don't increase the timestep by too much compared to the last one. + } + } + r->dt = dt_new; + } + + // Find new position and velocity values at end of the sequence + for(int k=0;kt += dt_done; + r->dt_last_done = dt_done; + + if (r->calculate_megno){ + double dY = dt_done*integrator_megno_thisdt; + reb_tools_megno_update(r, dY, dt_done); + } + + // Swap particle buffers + for(int k=0;kdt/dt_done; + predict_next_step(ratio, N3, e, b, e, b); + return 1; // Success. +} + +static void predict_next_step(double ratio, int N3, const struct reb_dpconst7 _e, const struct reb_dpconst7 _b, const struct reb_dpconst7 e, const struct reb_dpconst7 b){ + if (ratio>20.){ + // Do not predict if stepsize increase is very large. + for(int k=0;kgravity_ignore_terms = 0; +} + +void reb_integrator_ias15_part2(struct reb_simulation* r){ +#ifdef GENERATE_CONSTANTS + integrator_generate_constants(); +#endif // GENERATE_CONSTANTS + // Try until a step was successful. + while(!reb_integrator_ias15_step(r)); +} + +void reb_integrator_ias15_synchronize(struct reb_simulation* r){ +} + +void reb_integrator_ias15_reset(struct reb_simulation* r){ + r->ri_ias15.N_allocated = 0; + r->ri_ias15.N_allocated_map = 0; + free_dp7(&(r->ri_ias15.g)); + free_dp7(&(r->ri_ias15.e)); + free_dp7(&(r->ri_ias15.b)); + free_dp7(&(r->ri_ias15.csb)); + free_dp7(&(r->ri_ias15.er)); + free_dp7(&(r->ri_ias15.br)); + free(r->ri_ias15.at); + r->ri_ias15.at = NULL; + free(r->ri_ias15.x0); + r->ri_ias15.x0 = NULL; + free(r->ri_ias15.v0); + r->ri_ias15.v0 = NULL; + free(r->ri_ias15.a0); + r->ri_ias15.a0 = NULL; + free(r->ri_ias15.csx); + r->ri_ias15.csx= NULL; + free(r->ri_ias15.csv); + r->ri_ias15.csv= NULL; + free(r->ri_ias15.csa0); + r->ri_ias15.csa0 = NULL; + free(r->ri_ias15.map); + r->ri_ias15.map = NULL; +} + + +double reb_integrator_ias15_timescale(struct reb_simulation* r){ + // Returns a timescale according to Pham, Rein, Spiegel 2023 (PRS23) + reb_simulation_update_acceleration(r); + int N; + int* map; // this map allow for integrating only a selection of particles + if (r->integrator==REB_INTEGRATOR_MERCURIUS){// mercurius close encounter + N = r->ri_mercurius.encounter_N; + map = r->ri_mercurius.encounter_map; + if (map==NULL){ + reb_simulation_error(r, "Cannot access MERCURIUS map from IAS15."); + return 0; + } + }else if (r->integrator==REB_INTEGRATOR_TRACE && r->ri_trace.mode == REB_TRACE_MODE_KEPLER){// trace close encounter + N = r->ri_trace.encounter_N; + map = r->ri_trace.encounter_map; + if (map==NULL){ + reb_simulation_error(r, "Cannot access TRACE map from IAS15."); + return 0; + } + }else{ + N = r->N; + if (N > r->ri_ias15.N_allocated_map){ + r->ri_ias15.map = realloc(r->ri_ias15.map,sizeof(int)*N); + for (unsigned int i=0;iri_ias15.map[i] = i; + } + r->ri_ias15.N_allocated_map = N; + } + map = r->ri_ias15.map; // identity map + } + + double min_timescale2 = INFINITY; + + for (int i=0; iparticles[mi]); + double y2 = p_i->ax*p_i->ax + p_i->ay*p_i->ay + p_i->az*p_i->az; + struct reb_vec3d vec_y3 = {0}; + struct reb_vec3d vec_y4 = {0}; + + if (!isnormal(y2)){ + // Skipp particles which do not experience any acceleration or + // have acceleration which is inf or Nan. + continue; + } + for (int j=0; jparticles[mj]); + + double rij_x = p_j->x - p_i->x; + double rij_y = p_j->y - p_i->y; + double rij_z = p_j->z - p_i->z; + double vij_x = p_j->vx - p_i->vx; + double vij_y = p_j->vy - p_i->vy; + double vij_z = p_j->vz - p_i->vz; + double aij_x = p_j->ax - p_i->ax; + double aij_y = p_j->ay - p_i->ay; + double aij_z = p_j->az - p_i->az; + + double r_sq = rij_x * rij_x + rij_y * rij_y + rij_z * rij_z; + + double r_mag = sqrt(r_sq); // |r_ij| + double r_cubed = r_sq * r_mag; // |r_ij|^3 + double r_fifth = r_cubed * r_sq; // |r_ij|^5 + double r_seventh = r_fifth * r_sq;// |r_ij|^7 + + // Dot products + double r_dot_v = rij_x * vij_x + rij_y * vij_y + rij_z * vij_z; // (r_ij . v_ij) + double r_dot_a = rij_x * aij_x + rij_y * aij_y + rij_z * aij_z; // (r_ij . a_ij) + double v_sq = vij_x * vij_x + vij_y * vij_y + vij_z * vij_z; // v_ij^2 + + // --- Jerk Calculation for particle i due to particle j --- + // Term 1: v_ij / |r_ij|^3 + // Term 2: -3 * r_ij * (r_ij . v_ij) / |r_ij|^5 + double jerk_factor1 = p_j->m / r_cubed; + double jerk_factor2 = -3.0 * p_j->m * r_dot_v / r_fifth; + + vec_y3.x += jerk_factor1 * vij_x + jerk_factor2 * rij_x; + vec_y3.y += jerk_factor1 * vij_y + jerk_factor2 * rij_y; + vec_y3.z += jerk_factor1 * vij_z + jerk_factor2 * rij_z; + + // --- Snap Calculation for particle i due to particle j --- + // Term 1: a_ij / |r_ij|^3 + // Term 2: -6 * v_ij * (r_ij . v_ij) / |r_ij|^5 + // Term 3: -3 * r_ij * v_ij^2 / |r_ij|^5 + // Term 4: -3 * r_ij * (r_ij . a_ij) / |r_ij|^5 + // Term 5: +15 * r_ij * (r_ij . v_ij)^2 / |r_ij|^7 + + double snap_c1 = p_j->m / r_cubed; // for a_ij term + double snap_c2 = -6.0 * p_j->m * r_dot_v / r_fifth; // for v_ij term + double snap_c3_rij = -3.0 * p_j->m * v_sq / r_fifth; // for r_ij term (from v_ij^2) + double snap_c4_rij = -3.0 * p_j->m * r_dot_a / r_fifth; // for r_ij term (from r_ij . a_ij) + double snap_c5_rij = 15.0 * p_j->m * r_dot_v * r_dot_v / r_seventh; // for r_ij term (from (r_ij . v_ij)^2) + + vec_y4.x += snap_c1 * aij_x + snap_c2 * vij_x + (snap_c3_rij + snap_c4_rij + snap_c5_rij) * rij_x; + vec_y4.y += snap_c1 * aij_y + snap_c2 * vij_y + (snap_c3_rij + snap_c4_rij + snap_c5_rij) * rij_y; + vec_y4.z += snap_c1 * aij_z + snap_c2 * vij_z + (snap_c3_rij + snap_c4_rij + snap_c5_rij) * rij_z; + } + vec_y3.x *= r->G; + vec_y3.y *= r->G; + vec_y3.z *= r->G; + vec_y4.x *= r->G; + vec_y4.y *= r->G; + vec_y4.z *= r->G; + double y3 = vec_y3.x*vec_y3.x + vec_y3.y*vec_y3.y + vec_y3.z*vec_y3.z; + double y4 = vec_y4.x*vec_y4.x + vec_y4.y*vec_y4.y + vec_y4.z*vec_y4.z; + double timescale2 = 2.*y2/(y3+sqrt(y4*y2)); // PRS23 + if (isnormal(timescale2) && timescale2ri_ias15.epsilon*5040.0) to get IAS default timestep. +} + +#ifdef GENERATE_CONSTANTS +void integrator_generate_constants(void){ + printf("Generaring constants.\n\n"); + mpf_set_default_prec(512); + mpf_t* _h = malloc(sizeof(mpf_t)*8); + for (int i=0;i<8;i++){ + mpf_init(_h[i]); + } + mpf_t* _r = malloc(sizeof(mpf_t)*28); + for (int i=0;i<28;i++){ + mpf_init(_r[i]); + } + mpf_t* _c = malloc(sizeof(mpf_t)*21); + mpf_t* _d = malloc(sizeof(mpf_t)*21); + for (int i=0;i<21;i++){ + mpf_init(_c[i]); + mpf_init(_d[i]); + } + mpf_set_str(_h[0],"0.0",10); + mpf_set_str(_h[1],"0.0562625605369221464656521910318",10); + mpf_set_str(_h[2],"0.180240691736892364987579942780",10); + mpf_set_str(_h[3],"0.352624717113169637373907769648",10); + mpf_set_str(_h[4],"0.547153626330555383001448554766",10); + mpf_set_str(_h[5],"0.734210177215410531523210605558", 10); + mpf_set_str(_h[6],"0.885320946839095768090359771030",10); + mpf_set_str(_h[7],"0.977520613561287501891174488626",10); + + int l=0; + for (int j=1;j<8;++j) { + for(int k=0;k + * + * @section LICENSE + * Copyright (c) 2015 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _INTEGRATOR_IAS15_H +#define _INTEGRATOR_IAS15_H +void reb_integrator_ias15_part1(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_ias15_synchronize(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_ias15_alloc(struct reb_simulation* r); ///< Internal function, alloctes memory for IAS15 +#endif diff --git a/rebound/source/src/integrator_janus.c b/rebound/source/src/integrator_janus.c new file mode 100644 index 0000000000000000000000000000000000000000..c9da51c892b8e9039c5ee5005613d5300012ac99 --- /dev/null +++ b/rebound/source/src/integrator_janus.c @@ -0,0 +1,271 @@ +/** + * @file integrator_janus.c + * @brief Janus integration scheme. + * @author Hanno Rein + * @details This file implements the Janus integration scheme. + * Described in Rein & Tamayo 2017. + * + * @section LICENSE + * Copyright (c) 2017 Hanno Rein, Daniel Tamayo + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#include +#include +#include +#include "rebound.h" +#include "particle.h" +#include "tools.h" +#include "gravity.h" +#include "boundary.h" +#include "integrator.h" +#include "integrator_janus.h" + +/** + * Stucture derscribing one specific JANUS scheme + **/ +struct reb_janus_scheme { + unsigned int order; ///< Order of the scheme + unsigned int stages; ///< Number of stages + double gamma[17]; ///< Coefficients (padded with 0 if not used) +}; + +static struct reb_janus_scheme s1odr2 = { + .order = 2, + .stages = 1, + .gamma = { 1., + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} +}; + +static struct reb_janus_scheme s5odr4 = { + .order = 4, + .stages = 5, + .gamma= { 0.41449077179437573714, + 0.41449077179437573714, + -0.65796308717750294857, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0 + } +}; + +static struct reb_janus_scheme s9odr6a = { + .order = 6, + .stages = 9, + .gamma= { 0.39216144400731413928, + 0.33259913678935943860, + -0.70624617255763935981, + 0.082213596293550800230, + 0.79854399093482996340, + 0,0,0,0,0,0,0,0,0,0,0,0 + } +}; + +static struct reb_janus_scheme s15odr8 = { + .order = 8, + .stages = 15, + .gamma= { .74167036435061295345, + -.40910082580003159400, + .19075471029623837995, + -.57386247111608226666, + .29906418130365592384, + .33462491824529818378, + .31529309239676659663, + -.79688793935291635402, + 0,0,0,0,0,0,0,0,0 + } +}; + +static struct reb_janus_scheme s33odr10c = { + .order = 10, + .stages = 33, + .gamma= { 0.12313526870982994083, + 0.77644981696937310520, + 0.14905490079567045613, + -0.17250761219393744420, + -0.54871240818800177942, + 0.14289765421841842100, + -0.31419193263986861997, + 0.12670943739561041022, + 0.17444734584181312998, + 0.44318544665428572929, + -0.81948900568299084419, + 0.13382545738489583020, + 0.64509023524410605020, + -0.71936337169922060719, + 0.20951381813463649682, + -0.26828113140636051966, + 0.83647216092348048955 + } +}; + +static double gg(struct reb_janus_scheme s, unsigned int stage){ + if (stage<(s.stages+1)/2){ + return s.gamma[stage]; + }else{ + return s.gamma[ (s.stages-1-stage)%17 ]; // modulo only needed to avoid compiler warning + } +} + + +static void to_int(struct reb_particle_int* psi, struct reb_particle* ps, unsigned int N, double scale_pos, double scale_vel){ + for(unsigned int i=0; iri_janus); + const unsigned int N = r->N; + for(unsigned int i=0; ip_int[i].x += (REB_PARTICLE_INT_TYPE)(dt*(double)ri_janus->p_int[i].vx*scale_vel/scale_pos) ; + ri_janus->p_int[i].y += (REB_PARTICLE_INT_TYPE)(dt*(double)ri_janus->p_int[i].vy*scale_vel/scale_pos) ; + ri_janus->p_int[i].z += (REB_PARTICLE_INT_TYPE)(dt*(double)ri_janus->p_int[i].vz*scale_vel/scale_pos) ; + } +} + +static void kick(struct reb_simulation* r, double dt, double scale_vel){ + struct reb_integrator_janus* ri_janus = &(r->ri_janus); + const unsigned int N = r->N; + for(unsigned int i=0; ip_int[i].vx += (REB_PARTICLE_INT_TYPE)(dt*r->particles[i].ax/scale_vel) ; + ri_janus->p_int[i].vy += (REB_PARTICLE_INT_TYPE)(dt*r->particles[i].ay/scale_vel) ; + ri_janus->p_int[i].vz += (REB_PARTICLE_INT_TYPE)(dt*r->particles[i].az/scale_vel) ; + } +} + +void reb_integrator_janus_part1(struct reb_simulation* r){ + r->gravity_ignore_terms = 0; + struct reb_integrator_janus* ri_janus = &(r->ri_janus); + const unsigned int N = r->N; + const double dt = r->dt; + const double scale_vel = ri_janus->scale_vel; + const double scale_pos = ri_janus->scale_pos; + if (ri_janus->N_allocated != N){ + ri_janus->N_allocated = N; + ri_janus->p_int = realloc(ri_janus->p_int, sizeof(struct reb_particle_int)*N); + ri_janus->recalculate_integer_coordinates_this_timestep = 1; + } + + if (ri_janus->recalculate_integer_coordinates_this_timestep==1){ + to_int(ri_janus->p_int, r->particles, N, scale_pos, scale_vel); + ri_janus->recalculate_integer_coordinates_this_timestep = 0; + } + + struct reb_janus_scheme s; + switch (ri_janus->order){ + case 2: + s = s1odr2; + break; + case 4: + s = s5odr4; + break; + case 6: + s = s9odr6a; + break; + case 8: + s = s15odr8; + break; + case 10: + s = s33odr10c; + break; + default: + s = s1odr2; + reb_simulation_error(r,"Order not supported in JANUS."); + } + + drift(r,gg(s,0)*dt/2.,scale_pos,scale_vel); + to_double(r->particles, r->ri_janus.p_int, r->N, scale_pos, scale_vel); +} + +void reb_integrator_janus_part2(struct reb_simulation* r){ + struct reb_integrator_janus* ri_janus = &(r->ri_janus); + const unsigned int N = r->N; + const double scale_vel = ri_janus->scale_vel; + const double scale_pos = ri_janus->scale_pos; + const double dt = r->dt; + + struct reb_janus_scheme s; + switch (ri_janus->order){ + case 2: + s = s1odr2; + break; + case 4: + s = s5odr4; + break; + case 6: + s = s9odr6a; + break; + case 8: + s = s15odr8; + break; + case 10: + s = s33odr10c; + break; + default: + s = s1odr2; + reb_simulation_error(r,"Order not supported in JANUS."); + } + + kick(r,gg(s,0)*dt, scale_vel); + for (unsigned int i=1; iparticles, r->ri_janus.p_int, N, scale_pos, scale_vel); + reb_simulation_update_acceleration(r); + kick(r,gg(s,i)*dt, scale_vel); + } + drift(r,gg(s,s.stages-1)*dt/2.,scale_pos,scale_vel); + + // Small overhead here: Always get positions and velocities in floating point at + // the end of the timestep. + reb_integrator_janus_synchronize(r); + + r->t += r->dt; +} + +void reb_integrator_janus_synchronize(struct reb_simulation* r){ + if (r->ri_janus.N_allocated==r->N){ + to_double(r->particles, r->ri_janus.p_int, r->N, r->ri_janus.scale_pos, r->ri_janus.scale_vel); + } +} + +void reb_integrator_janus_reset(struct reb_simulation* r){ + struct reb_integrator_janus* const ri_janus = &(r->ri_janus); + ri_janus->N_allocated = 0; + ri_janus->recalculate_integer_coordinates_this_timestep = 0; + ri_janus->order = 2; + ri_janus->scale_pos = 1e-16; + ri_janus->scale_vel = 1e-16; + if (ri_janus->p_int){ + free(ri_janus->p_int); + ri_janus->p_int = NULL; + } +} diff --git a/rebound/source/src/integrator_janus.h b/rebound/source/src/integrator_janus.h new file mode 100644 index 0000000000000000000000000000000000000000..08f59d9f2f2deec364b4bee9defc2d5f0e6ce3a5 --- /dev/null +++ b/rebound/source/src/integrator_janus.h @@ -0,0 +1,32 @@ +/** + * @file integrator_janus.h + * @brief Interface for numerical particle integrator + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2017 Hanno Rein, Daniel Tamayo + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _INTEGRATOR_JANUS_H +#define _INTEGRATOR_JANUS_H +void reb_integrator_janus_part1(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_janus_part2(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_janus_synchronize(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_janus_reset(struct reb_simulation* r); ///< Internal function used to call a specific integrator + +#endif diff --git a/rebound/source/src/integrator_leapfrog.c b/rebound/source/src/integrator_leapfrog.c new file mode 100644 index 0000000000000000000000000000000000000000..907c6a502332c9e81bef50e98bd1a44271e8e978 --- /dev/null +++ b/rebound/source/src/integrator_leapfrog.c @@ -0,0 +1,197 @@ +/** + * @file integrator.c + * @brief Leap-frog integration scheme. + * @author Hanno Rein + * @details This file implements the leap-frog integration scheme. + * This scheme is second order accurate, symplectic and well suited for + * non-rotating coordinate systems. Note that the scheme is formally only + * first order accurate when velocity dependent forces are present. + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#include +#include +#include "rebound.h" +#include "integrator_leapfrog.h" + +const double reb_integrator_leapfrog_lf4_a = 0.675603595979828817023843904485; +const double reb_integrator_leapfrog_lf6_a[5] = {0.1867, 0.5554970237124784, 0.1294669489134754, -0.843265623387734, 0.9432033015235604}; +const double reb_integrator_leapfrog_lf8_a[9] = {0.128865979381443, 0.581514087105251, -0.410175371469850, 0.1851469357165877, -0.4095523434208514, 0.1444059410800120, 0.2783355003936797, 0.3149566839162949, -0.6269948254051343979}; + +static void drift(struct reb_simulation* r, double dt){ + const unsigned int N = r->N; + struct reb_particle* restrict const particles = r->particles; +#pragma omp parallel for schedule(guided) + for (unsigned int i=0;it += dt; // kick step advanced time so that force evaluations are correct. +} + +static void kick(struct reb_simulation* r, double dt){ + const unsigned int N = r->N; + struct reb_particle* restrict const particles = r->particles; +#pragma omp parallel for schedule(guided) + for (unsigned int i=0;igravity_ignore_terms = 0; + const double dt = r->dt; + switch (r->ri_leapfrog.order){ + case 2: + drift(r, dt*0.5); + break; + case 4: + drift(r, dt*reb_integrator_leapfrog_lf4_a); + break; + case 6: + drift(r, dt*reb_integrator_leapfrog_lf6_a[0]*0.5); + break; + case 8: + drift(r, dt*reb_integrator_leapfrog_lf8_a[0]*0.5); + break; + default: + reb_simulation_error(r, "Leapfrog order not supported."); + return; + } +} + +void reb_integrator_leapfrog_part2(struct reb_simulation* r){ + const double dt = r->dt; + switch (r->ri_leapfrog.order){ + case 2: + kick(r, dt); + drift(r, dt*0.5); + break; + case 4: + kick(r, dt*2.*reb_integrator_leapfrog_lf4_a); + drift(r, dt*(0.5-reb_integrator_leapfrog_lf4_a)); + reb_simulation_update_acceleration(r); + kick(r, dt*(1.-4.*reb_integrator_leapfrog_lf4_a)); + drift(r, dt*(0.5-reb_integrator_leapfrog_lf4_a)); + reb_simulation_update_acceleration(r); + kick(r, dt*2.*reb_integrator_leapfrog_lf4_a); + drift(r, dt*reb_integrator_leapfrog_lf4_a); + break; + case 6: + kick(r, dt*reb_integrator_leapfrog_lf6_a[0]); + drift(r, dt*(reb_integrator_leapfrog_lf6_a[0]+reb_integrator_leapfrog_lf6_a[1])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf6_a[1]); + drift(r, dt*(reb_integrator_leapfrog_lf6_a[1]+reb_integrator_leapfrog_lf6_a[2])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf6_a[2]); + drift(r, dt*(reb_integrator_leapfrog_lf6_a[2]+reb_integrator_leapfrog_lf6_a[3])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf6_a[3]); + drift(r, dt*(reb_integrator_leapfrog_lf6_a[3]+reb_integrator_leapfrog_lf6_a[4])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf6_a[4]); + drift(r, dt*(reb_integrator_leapfrog_lf6_a[3]+reb_integrator_leapfrog_lf6_a[4])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf6_a[3]); + drift(r, dt*(reb_integrator_leapfrog_lf6_a[2]+reb_integrator_leapfrog_lf6_a[3])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf6_a[2]); + drift(r, dt*(reb_integrator_leapfrog_lf6_a[1]+reb_integrator_leapfrog_lf6_a[2])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf6_a[1]); + drift(r, dt*(reb_integrator_leapfrog_lf6_a[0]+reb_integrator_leapfrog_lf6_a[1])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf6_a[0]); + drift(r, dt*reb_integrator_leapfrog_lf6_a[0]*0.5); + break; + case 8: + kick(r, dt*reb_integrator_leapfrog_lf8_a[0]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[0]+reb_integrator_leapfrog_lf8_a[1])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[1]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[1]+reb_integrator_leapfrog_lf8_a[2])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[2]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[2]+reb_integrator_leapfrog_lf8_a[3])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[3]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[3]+reb_integrator_leapfrog_lf8_a[4])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[4]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[4]+reb_integrator_leapfrog_lf8_a[5])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[5]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[5]+reb_integrator_leapfrog_lf8_a[6])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[6]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[6]+reb_integrator_leapfrog_lf8_a[7])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[7]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[7]+reb_integrator_leapfrog_lf8_a[8])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[8]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[7]+reb_integrator_leapfrog_lf8_a[8])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[7]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[6]+reb_integrator_leapfrog_lf8_a[7])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[6]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[5]+reb_integrator_leapfrog_lf8_a[6])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[5]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[4]+reb_integrator_leapfrog_lf8_a[5])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[4]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[3]+reb_integrator_leapfrog_lf8_a[4])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[3]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[2]+reb_integrator_leapfrog_lf8_a[3])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[2]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[1]+reb_integrator_leapfrog_lf8_a[2])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[1]); + drift(r, dt*(reb_integrator_leapfrog_lf8_a[0]+reb_integrator_leapfrog_lf8_a[1])*0.5); + reb_simulation_update_acceleration(r); + kick(r, dt*reb_integrator_leapfrog_lf8_a[0]); + drift(r, dt*reb_integrator_leapfrog_lf8_a[0]*0.5); + break; + default: + reb_simulation_error(r, "Leapfrog order not supported."); + return; + } + r->dt_last_done = dt; +} + +void reb_integrator_leapfrog_synchronize(struct reb_simulation* r){ + // Do nothing. +} + +void reb_integrator_leapfrog_reset(struct reb_simulation* r){ + r->ri_leapfrog.order = 2; +} + diff --git a/rebound/source/src/integrator_leapfrog.h b/rebound/source/src/integrator_leapfrog.h new file mode 100644 index 0000000000000000000000000000000000000000..9ab048f6be54b9248fc7c3e076c462009a3fa081 --- /dev/null +++ b/rebound/source/src/integrator_leapfrog.h @@ -0,0 +1,35 @@ +/** + * @file integrator_leapfrog.h + * @brief Interface for numerical particle integrator + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2015 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _INTEGRATOR_LEAPFROG_H +#define _INTEGRATOR_LEAPFROG_H +void reb_integrator_leapfrog_part1(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_leapfrog_part2(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_leapfrog_synchronize(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_leapfrog_reset(struct reb_simulation* r); +// Constants also used by EOS. +extern const double reb_integrator_leapfrog_lf4_a; +extern const double reb_integrator_leapfrog_lf6_a[5]; +extern const double reb_integrator_leapfrog_lf8_a[9]; +#endif diff --git a/rebound/source/src/integrator_mercurius.c b/rebound/source/src/integrator_mercurius.c new file mode 100644 index 0000000000000000000000000000000000000000..324495873a58cdbf5f280e5ddd8b98b45eac242e --- /dev/null +++ b/rebound/source/src/integrator_mercurius.c @@ -0,0 +1,570 @@ +/** + * @file integrator_mercurius.c + * @brief MERCURIUS, a modified version of John Chambers' MERCURY algorithm + * using the IAS15 integrator and WHFast. It works with planet-planry + * collisions, test particles, and additional forces. + * @author Hanno Rein, Dan Tamayo + * + * @section LICENSE + * Copyright (c) 2019 Hanno Rein, Dan Tamayo + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#include +#include +#include +#include "rebound.h" +#include "integrator.h" +#include "gravity.h" +#include "integrator_mercurius.h" +#include "integrator_ias15.h" +#include "integrator_whfast.h" +#include "collision.h" +#define MIN(a, b) ((a) > (b) ? (b) : (a)) ///< Returns the minimum of a and b +#define MAX(a, b) ((a) > (b) ? (a) : (b)) ///< Returns the maximum of a and b + +double reb_integrator_mercurius_L_mercury(const struct reb_simulation* const r, double d, double dcrit){ + // This is the changeover function used by the Mercury integrator. + double y = (d-0.1*dcrit)/(0.9*dcrit); + if (y<0.){ + return 0.; + }else if (y>1.){ + return 1.; + }else{ + return 10.*(y*y*y) - 15.*(y*y*y*y) + 6.*(y*y*y*y*y); + } +} + +double reb_integrator_mercurius_L_C4(const struct reb_simulation* const r, double d, double dcrit){ + // This is the changeover function C4 proposed by Hernandez (2019) + double y = (d-0.1*dcrit)/(0.9*dcrit); + if (y<0.){ + return 0.; + }else if (y>1.){ + return 1.; + }else{ + return (70.*y*y*y*y -315.*y*y*y +540.*y*y -420.*y +126.)*y*y*y*y*y; + } +} + +double reb_integrator_mercurius_L_C5(const struct reb_simulation* const r, double d, double dcrit){ + // This is the changeover function C5 proposed by Hernandez (2019) + double y = (d-0.1*dcrit)/(0.9*dcrit); + if (y<0.){ + return 0.; + }else if (y>1.){ + return 1.; + }else{ + return (-252.*y*y*y*y*y +1386.*y*y*y*y -3080.*y*y*y +3465.*y*y -1980.*y +462.)*y*y*y*y*y*y; + } +} + +static double f(double x){ + if (x<0) return 0; + return exp(-1./x); +} + +double reb_integrator_mercurius_L_infinity(const struct reb_simulation* const r, double d, double dcrit){ + // Infinitely differentiable function. + double y = (d-0.1*dcrit)/(0.9*dcrit); + if (y<0.){ + return 0.; + }else if (y>1.){ + return 1.; + }else{ + return f(y) /(f(y) + f(1.-y)); + } +} + + +void reb_integrator_mercurius_inertial_to_dh(struct reb_simulation* r){ + struct reb_particle* restrict const particles = r->particles; + struct reb_vec3d com_pos = {0}; + struct reb_vec3d com_vel = {0}; + double mtot = 0.; + const int N_active = (r->N_active==-1 || r->testparticle_type==1)?(int)r->N:r->N_active; + const int N = r->N; + for (int i=0;i=0;i--){ + particles[i].x -= particles[0].x; + particles[i].y -= particles[0].y; + particles[i].z -= particles[0].z; + particles[i].vx -= com_vel.x; + particles[i].vy -= com_vel.y; + particles[i].vz -= com_vel.z; + } + r->ri_mercurius.com_pos = com_pos; + r->ri_mercurius.com_vel = com_vel; +} + +void reb_integrator_mercurius_dh_to_inertial(struct reb_simulation* r){ + struct reb_particle* restrict const particles = r->particles; + struct reb_particle temp = {0}; + const int N = r->N; + const int N_active = (r->N_active==-1 || r->testparticle_type==1)?(int)r->N:r->N_active; + for (int i=1;iparticles[0].m; + temp.x /= temp.m; + temp.y /= temp.m; + temp.z /= temp.m; + temp.vx /= particles[0].m; + temp.vy /= particles[0].m; + temp.vz /= particles[0].m; + // Use com to calculate central object's position. + // This ignores previous values stored in particles[0]. + // Should not matter unless collisions occured. + particles[0].x = r->ri_mercurius.com_pos.x - temp.x; + particles[0].y = r->ri_mercurius.com_pos.y - temp.y; + particles[0].z = r->ri_mercurius.com_pos.z - temp.z; + + for (int i=1;iri_mercurius.com_vel.x; + particles[i].vy += r->ri_mercurius.com_vel.y; + particles[i].vz += r->ri_mercurius.com_vel.z; + } + particles[0].vx = r->ri_mercurius.com_vel.x - temp.vx; + particles[0].vy = r->ri_mercurius.com_vel.y - temp.vy; + particles[0].vz = r->ri_mercurius.com_vel.z - temp.vz; +} + + +static void reb_mercurius_encounter_predict(struct reb_simulation* const r){ + // This function predicts close encounters during the timestep + // It makes use of the old and new position and velocities obtained + // after the Kepler step. + struct reb_integrator_mercurius* rim = &(r->ri_mercurius); + struct reb_particle* const particles = r->particles; + struct reb_particle* const particles_backup = rim->particles_backup; + const double* const dcrit = rim->dcrit; + const unsigned int N = r->N; + const unsigned int N_active = r->N_active==-1?r->N:(unsigned int)r->N_active; + const double dt = r->dt; + rim->encounter_N = 1; + rim->encounter_map[0] = 1; + if (r->testparticle_type==1){ + rim->tponly_encounter = 0; // testparticles affect massive particles + }else{ + rim->tponly_encounter = 1; + } + for (unsigned int i=1; iencounter_map[i] = 0; + } + for (unsigned int i=0; i0. && tmin1<1.){ + const double rmin1 = (1.-tmin1)*(1.-tmin1)*(1.+2.*tmin1)*ro + + tmin1*tmin1*(3.-2.*tmin1)*rn + + tmin1*(1.-tmin1)*(1.-tmin1)*dt*drodt + - tmin1*tmin1*(1.-tmin1)*dt*drndt; + rmin = MIN(MAX(rmin1,0.),rmin); + } + if (tmin2>0. && tmin2<1.){ + const double rmin2 = (1.-tmin2)*(1.-tmin2)*(1.+2.*tmin2)*ro + + tmin2*tmin2*(3.-2.*tmin2)*rn + + tmin2*(1.-tmin2)*(1.-tmin2)*dt*drodt + - tmin2*tmin2*(1.-tmin2)*dt*drndt; + rmin = MIN(MAX(rmin2,0.),rmin); + } + + double dcritmax2 = MAX(dcrit[i],dcrit[j]); + dcritmax2 *= 1.21*dcritmax2; + if (rmin < dcritmax2){ + if (rim->encounter_map[i]==0){ + rim->encounter_map[i] = i; + rim->encounter_N++; + } + if (rim->encounter_map[j]==0){ + rim->encounter_map[j] = j; + rim->encounter_N++; + } + if (jtponly_encounter = 0; + } + } + } + } +} + +void reb_integrator_mercurius_interaction_step(struct reb_simulation* const r, double dt){ + struct reb_particle* restrict const particles = r->particles; + const int N = r->N; + for (int i=1;iparticles; + const unsigned int N_active = r->N_active==-1?r->N: (unsigned int)r->N_active; + const int N = r->testparticle_type==0 ? N_active: r->N; + double px=0., py=0., pz=0.; + for (int i=1;iparticles[i].vx*r->particles[i].m; // in dh + py += r->particles[i].vy*r->particles[i].m; + pz += r->particles[i].vz*r->particles[i].m; + } + px /= r->particles[0].m; + py /= r->particles[0].m; + pz /= r->particles[0].m; + const int N_all = r->N; + for (int i=1;iri_mercurius.com_pos.x += dt*r->ri_mercurius.com_vel.x; + r->ri_mercurius.com_pos.y += dt*r->ri_mercurius.com_vel.y; + r->ri_mercurius.com_pos.z += dt*r->ri_mercurius.com_vel.z; +} + +void reb_integrator_mercurius_kepler_step(struct reb_simulation* const r, double dt){ + struct reb_particle* restrict const particles = r->particles; + const int N = r->N; + for (int i=1;iG*particles[0].m,i,dt); // in dh + } +} + +static void reb_mercurius_encounter_step(struct reb_simulation* const r, const double _dt){ + // Only particles having a close encounter are integrated by IAS15. + struct reb_integrator_mercurius* rim = &(r->ri_mercurius); + if (rim->encounter_N<2){ + return; // If there are no particles (other than the star) having a close encounter, then there is nothing to do. + } + + int i_enc = 0; + rim->encounter_N_active = 0; + for (unsigned int i=0; iN; i++){ + if(rim->encounter_map[i]){ + struct reb_particle tmp = r->particles[i]; // Copy for potential use for tponly_encounter + r->particles[i] = rim->particles_backup[i]; // Use coordinates before whfast step + rim->encounter_map[i_enc] = i; + i_enc++; + if (r->N_active==-1 || (int)iN_active){ + rim->encounter_N_active++; + if (rim->tponly_encounter){ + rim->particles_backup[i] = tmp; // Make copy of particles after the kepler step. + // used to restore the massive objects' states in the case + // of only massless test-particle encounters + } + } + } + } + + rim->mode = 1; + + // run + const double old_dt = r->dt; + const double dtsign = old_dt>=0.?1.:-1.; + const double old_t = r->t; + double t_needed = r->t + _dt; + + reb_integrator_ias15_reset(r); + + r->dt = 0.0001*_dt; // start with a small timestep. + + while(dtsign*r->t < dtsign*t_needed && fabs(r->dt/old_dt)>1e-14 && r->status<=0){ + struct reb_particle star = r->particles[0]; // backup velocity + r->particles[0].vx = 0; // star does not move in dh + r->particles[0].vy = 0; + r->particles[0].vz = 0; + reb_simulation_update_acceleration(r); + reb_integrator_ias15_part2(r); + r->particles[0].vx = star.vx; // restore every timestep for collisions + r->particles[0].vy = star.vy; + r->particles[0].vz = star.vz; + + if (dtsign*(r->t+r->dt) > dtsign*t_needed){ + r->dt = t_needed-r->t; + } + + // Search and resolve collisions + reb_collision_search(r); + + // Do any additional post_timestep_modifications. + // Note: post_timestep_modifications is called here but also + // at the end of the full timestep. The function thus needs + // to be implemented with care as not to do the same + // modification multiple times. To do that, check the value of + // r->ri_mercurius.mode + if (r->post_timestep_modifications){ + r->post_timestep_modifications(r); + } + + star.vx = r->particles[0].vx; // keep track of changed star velocity for later collisions + star.vy = r->particles[0].vy; + star.vz = r->particles[0].vz; + if (r->particles[0].x !=0 || r->particles[0].y !=0 || r->particles[0].z !=0){ + // Collision with star occured + // Shift all particles back to heliocentric coordinates + // Ignore stars velocity: + // - will not be used after this + // - com velocity is unchained. this velocity will be used + // to reconstruct star's velocity later. + for (int i=r->N-1; i>=0; i--){ + r->particles[i].x -= r->particles[0].x; + r->particles[i].y -= r->particles[0].y; + r->particles[i].z -= r->particles[0].z; + } + } + } + + // if only test particles encountered massive bodies, reset the + // massive body coordinates to their post Kepler step state + if(rim->tponly_encounter){ + for (unsigned int i=1;iencounter_N_active;i++){ + unsigned int mi = rim->encounter_map[i]; + r->particles[mi] = rim->particles_backup[mi]; + } + } + + // Reset constant for global particles + r->t = old_t; + r->dt = old_dt; + rim->mode = 0; + +} + +double reb_integrator_mercurius_calculate_dcrit_for_particle(struct reb_simulation* r, unsigned int i){ + struct reb_integrator_mercurius* const rim = &(r->ri_mercurius); + const double m0 = r->particles[0].m; + const double dx = r->particles[i].x; // in dh + const double dy = r->particles[i].y; + const double dz = r->particles[i].z; + const double dvx = r->particles[i].vx - r->particles[0].vx; + const double dvy = r->particles[i].vy - r->particles[0].vy; + const double dvz = r->particles[i].vz - r->particles[0].vz; + const double _r = sqrt(dx*dx + dy*dy + dz*dz); + const double v2 = dvx*dvx + dvy*dvy + dvz*dvz; + + const double GM = r->G*(m0+r->particles[i].m); + const double a = GM*_r / (2.*GM - _r*v2); + const double vc = sqrt(GM/fabs(a)); + double dcrit = 0; + // Criteria 1: average velocity + dcrit = MAX(dcrit, vc*0.4*r->dt); + // Criteria 2: current velocity + dcrit = MAX(dcrit, sqrt(v2)*0.4*r->dt); + // Criteria 3: Hill radius + dcrit = MAX(dcrit, rim->r_crit_hill*a*cbrt(r->particles[i].m/(3.*r->particles[0].m))); + // Criteria 4: physical radius + dcrit = MAX(dcrit, 2.*r->particles[i].r); + return dcrit; +} + + +void reb_integrator_mercurius_part1(struct reb_simulation* r){ + if (r->N_var_config){ + reb_simulation_warning(r,"Mercurius does not work with variational equations."); + } + + struct reb_integrator_mercurius* const rim = &(r->ri_mercurius); + const unsigned int N = r->N; + + if (rim->N_allocated_dcritdcrit = realloc(rim->dcrit, sizeof(double)*N); + rim->N_allocated_dcrit = N; + // If particle number increased (or this is the first step), need to calculate critical radii + rim->recalculate_r_crit_this_timestep = 1; + // Heliocentric coordinates were never calculated. + // This will get triggered on first step only (not when loaded from archive) + rim->recalculate_coordinates_this_timestep = 1; + } + if (rim->N_allocatedparticles_backup = realloc(rim->particles_backup,sizeof(struct reb_particle)*N); + rim->encounter_map = realloc(rim->encounter_map,sizeof(int)*N); + rim->N_allocated = N; + } + if (rim->safe_mode || rim->recalculate_coordinates_this_timestep){ + if (rim->is_synchronized==0){ + reb_integrator_mercurius_synchronize(r); + reb_simulation_warning(r,"MERCURIUS: Recalculating heliocentric coordinates but coordinates were not synchronized before."); + } + reb_integrator_mercurius_inertial_to_dh(r); + rim->recalculate_coordinates_this_timestep = 0; + } + + if (rim->recalculate_r_crit_this_timestep){ + rim->recalculate_r_crit_this_timestep = 0; + if (rim->is_synchronized==0){ + reb_integrator_mercurius_synchronize(r); + reb_integrator_mercurius_inertial_to_dh(r); + rim->recalculate_coordinates_this_timestep = 0; + reb_simulation_warning(r,"MERCURIUS: Recalculating dcrit but pos/vel were not synchronized before."); + } + rim->dcrit[0] = 2.*r->particles[0].r; // central object only uses physical radius + for (unsigned int i=1;idcrit[i] = reb_integrator_mercurius_calculate_dcrit_for_particle(r, i); + } + } + + // Calculate collisions only with DIRECT method + if (r->collision != REB_COLLISION_NONE && r->collision != REB_COLLISION_DIRECT){ + reb_simulation_warning(r,"Mercurius only works with a direct collision search."); + } + + // Calculate gravity with special function + if (r->gravity != REB_GRAVITY_BASIC && r->gravity != REB_GRAVITY_MERCURIUS){ + reb_simulation_warning(r,"Mercurius has it's own gravity routine. Gravity routine set by the user will be ignored."); + } + r->gravity = REB_GRAVITY_MERCURIUS; + rim->mode = 0; + + if (rim->L == NULL){ + // Setting default switching function + rim->L = reb_integrator_mercurius_L_mercury; + } +} + +void reb_integrator_mercurius_part2(struct reb_simulation* const r){ + struct reb_integrator_mercurius* const rim = &(r->ri_mercurius); + const int N = r->N; + + if (rim->is_synchronized){ + reb_integrator_mercurius_interaction_step(r,r->dt/2.); + }else{ + reb_integrator_mercurius_interaction_step(r,r->dt); + } + reb_integrator_mercurius_jump_step(r,r->dt/2.); + reb_integrator_mercurius_com_step(r,r->dt); + + // Make copy of particles before the kepler step. + // Then evolve all particles in kepler step. + // Result will be used in encounter prediction. + // Particles having a close encounter will be overwritten + // later by encounter step. + memcpy(rim->particles_backup,r->particles,N*sizeof(struct reb_particle)); + reb_integrator_mercurius_kepler_step(r,r->dt); + + reb_mercurius_encounter_predict(r); + + reb_mercurius_encounter_step(r,r->dt); + + reb_integrator_mercurius_jump_step(r,r->dt/2.); + + rim->is_synchronized = 0; + if (rim->safe_mode){ + reb_integrator_mercurius_synchronize(r); + } + + r->t+=r->dt; + r->dt_last_done = r->dt; +} + +void reb_integrator_mercurius_synchronize(struct reb_simulation* r){ + struct reb_integrator_mercurius* const rim = &(r->ri_mercurius); + if (rim->is_synchronized == 0){ + r->gravity = REB_GRAVITY_MERCURIUS; // needed here again for Simulationarchive + rim->mode = 0; + if (rim->L == NULL){ + // Setting default switching function + rim->L = reb_integrator_mercurius_L_mercury; + } + reb_simulation_update_acceleration(r); + reb_integrator_mercurius_interaction_step(r,r->dt/2.); + + reb_integrator_mercurius_dh_to_inertial(r); + + rim->recalculate_coordinates_this_timestep = 1; + rim->is_synchronized = 1; + } +} + +void reb_integrator_mercurius_reset(struct reb_simulation* r){ + r->ri_mercurius.L = NULL; + r->ri_mercurius.mode = 0; + r->ri_mercurius.encounter_N = 0; + r->ri_mercurius.encounter_N_active = 0; + r->ri_mercurius.r_crit_hill = 3; + r->ri_mercurius.tponly_encounter = 0; + r->ri_mercurius.recalculate_coordinates_this_timestep = 0; + // Internal arrays (only used within one timestep) + free(r->ri_mercurius.particles_backup); + r->ri_mercurius.particles_backup = NULL; + free(r->ri_mercurius.particles_backup_additional_forces); + r->ri_mercurius.particles_backup_additional_forces = NULL; + free(r->ri_mercurius.encounter_map); + r->ri_mercurius.encounter_map = NULL; + r->ri_mercurius.N_allocated = 0; + r->ri_mercurius.N_allocated_additional_forces = 0; + // dcrit array + free(r->ri_mercurius.dcrit); + r->ri_mercurius.dcrit = NULL; + r->ri_mercurius.N_allocated_dcrit = 0; +} + diff --git a/rebound/source/src/integrator_mercurius.h b/rebound/source/src/integrator_mercurius.h new file mode 100644 index 0000000000000000000000000000000000000000..8bc905df97405f7f7d8501ddf34a7ea8e4f64816 --- /dev/null +++ b/rebound/source/src/integrator_mercurius.h @@ -0,0 +1,34 @@ +/** + * @file integrator_mercurius.h + * @brief Interface for numerical particle integrator + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2017 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _INTEGRATOR_MERCURIUS_H +#define _INTEGRATOR_MERCURIUS_H +void reb_integrator_mercurius_part1(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_mercurius_part2(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_mercurius_synchronize(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_mercurius_reset(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_mercurius_inertial_to_dh(struct reb_simulation* r); ///< Internal in-place coordinate transformation +void reb_integrator_mercurius_dh_to_inertial(struct reb_simulation* r); ///< Internal in-place coordinate transformation +double reb_integrator_mercurius_calculate_dcrit_for_particle(struct reb_simulation* r, unsigned int i); ///< Internal function for calculating dcrit in reb_simulation_add_local +#endif diff --git a/rebound/source/src/integrator_saba.c b/rebound/source/src/integrator_saba.c new file mode 100644 index 0000000000000000000000000000000000000000..6f572bbfd8b1f13f207ab0baff5d2d1d45b7e535 --- /dev/null +++ b/rebound/source/src/integrator_saba.c @@ -0,0 +1,345 @@ +/** + * @file integrator_saba.c + * @brief SABA integrator family (Laskar and Robutel 2001, Blanes et al 2013). + * @author Hanno Rein + * @details This file implements the family of symplectic integrators + * of Laskar and Robutel (2001), Blanes et al (2013), Farres et al (2013). + * + * @section LICENSE + * Copyright (c) 2019 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#include +#include +#include +#include "rebound.h" +#include "particle.h" +#include "tools.h" +#include "gravity.h" +#include "integrator.h" +#include "integrator_whfast.h" +#include "integrator_saba.h" + +#define MAX(a, b) ((a) < (b) ? (b) : (a)) ///< Returns the maximum of a and b +#define MIN(a, b) ((a) > (b) ? (b) : (a)) ///< Returns the minimum of a and b + +// Returns the number of stages for a given type of integrator (not including corrector) +static int reb_saba_stages(const int type){ + switch(type){ + case REB_SABA_1: + case REB_SABA_CM_1: + case REB_SABA_CL_1: + return 1; + case REB_SABA_2: + case REB_SABA_CM_2: + case REB_SABA_CL_2: + return 2; + case REB_SABA_3: + case REB_SABA_CM_3: + case REB_SABA_CL_3: + return 3; + case REB_SABA_4: + case REB_SABA_CM_4: + case REB_SABA_CL_4: + return 4; + case REB_SABA_H_8_4_4: + return 6; + case REB_SABA_10_4: + case REB_SABA_8_6_4: + return 7; + case REB_SABA_10_6_4: + case REB_SABA_H_8_6_4: + return 8; + case REB_SABA_H_10_6_4: + return 9; + default: + return 0; + } +} + + +// Some coefficients appear multiple times to simplify the loop structures. +static const double reb_saba_c[10][5] = { + {0.5, }, // SABA1 + {0.2113248654051871177454256097490212721762, 0.5773502691896257645091487805019574556476, }, // SABA2 + {0.1127016653792583114820734600217600389167, 0.3872983346207416885179265399782399610833, }, // SABA3 + {0.06943184420297371238802675555359524745214, 0.2605776340045981552106403648947824089476, + 0.3399810435848562648026657591032446872006, }, // SABA4 + {0.04706710064597250612947887637243678556564, 0.1847569354170881069247376193702560968574, + 0.2827060056798362053243616565541452479160, -0.01453004174289681837857815229683813033908, }, // ABA(10,4) + {0.0711334264982231177779387300061549964174, 0.241153427956640098736487795326289649618, + 0.521411761772814789212136078067994229991, -0.333698616227678005726562603400438876027, }, // ABA(8,6,4) + {0.03809449742241219545697532230863756534060, 0.1452987161169137492940200726606637497442, + 0.2076276957255412507162056113249882065158, 0.4359097036515261592231548624010651844006, + -0.6538612258327867093807117373907094120024, }, // ABA(10,6,4) + {0.2741402689434018761640565440378637101205, -0.1075684384401642306251105297063236526845, + -0.0480185025906016926911954171508475065370, 0.7628933441747280943044988056386148982021}, // ABAH(8,4,4) + {0.06810235651658372084723976682061164571212, 0.2511360387221033233072829580455350680082, + -0.07507264957216562516006821767601620052338, -0.009544719701745007811488218957217113269121, + 0.5307579480704471776340674235341732001443}, // ABAH(8,6,4) + {0.04731908697653382270404371796320813250988, 0.2651105235748785159539480036185693201078, + -0.009976522883811240843267468164812380613143, -0.05992919973494155126395247987729676004016, + 0.2574761120673404534492282264603316880356}, // ABAH(10,6,4) +}; +static const double reb_saba_d[10][5] = { + {1., }, + {0.5,}, + {0.2777777777777777777777777777777777777778, 0.4444444444444444444444444444444444444444,}, + {0.1739274225687269286865319746109997036177, 0.3260725774312730713134680253890002963823}, + { 0.1188819173681970199453503950853885936957, 0.2410504605515015657441667865901651105675, + -0.2732866667053238060543113981664559460630, 0.8267085775712504407295884329818044835997, }, // ABA(10,4) + { 0.183083687472197221961703757166430291072, 0.310782859898574869507522291054262796375, + -0.0265646185119588006972121379164987592663, 0.0653961422823734184559721793911134363710, }, // ABA(8,6,4) + { 0.09585888083707521061077150377145884776921, 0.2044461531429987806805077839164344779763, + 0.2170703479789911017143385924306336714532, -0.01737538195906509300561788011852699719871, }, // ABA(10,6,4) + {0.6408857951625127177322491164716010349386, -0.8585754489567828565881283246356000103664, + 0.7176896537942701388558792081639989754277}, // ABAH(8,4,4) + {0.1684432593618954534310382697756917558148, 0.4243177173742677224300351657407231801453, + -0.5858109694681756812309015355404036521923, 0.4930499927320125053698281000239887162321}, // ABAH(8,6,4) + {0.1196884624585322035312864297489892143852, 0.3752955855379374250420128537687503199451, + -0.4684593418325993783650820409805381740605, 0.3351397342755897010393098942949569049275, + 0.2766711191210800975049457263356834696055}, // ABAH(10,6,4) +}; +static const double reb_saba_cc[4] = { + 0.08333333333333333333333333333333333333333, // SABAC1 + 0.01116454968463011276968973577058865137738, // SABAC2 + 0.005634593363122809402267823769797538671562, // SABAC3 + 0.003396775048208601331532157783492144, // SABAC4 +}; + + +static void reb_saba_corrector_step(struct reb_simulation* r, double cc){ + struct reb_integrator_whfast* const ri_whfast = &(r->ri_whfast); + struct reb_particle* const p_j = ri_whfast->p_jh; + struct reb_particle* const particles = r->particles; + const unsigned int N = r->N; + switch (r->ri_saba.type/0x100){ + case 1: // modified kick + // Calculate normal kick + reb_particles_transform_jacobi_to_inertial_pos(particles, p_j, particles, N, N); + reb_simulation_update_acceleration(r); + // Calculate jerk + reb_whfast_calculate_jerk(r); + + for (unsigned int i=0; idt*r->dt; + particles[i].ax = prefact*p_j[i].ax; + particles[i].ay = prefact*p_j[i].ay; + particles[i].az = prefact*p_j[i].az; + } + reb_whfast_interaction_step(r,cc*r->dt); + break; + case 2: // lazy corrector + { + // Need temporary array to store old positions + if (ri_whfast->N_allocated_tmp != N){ + ri_whfast->N_allocated_tmp = N; + ri_whfast->p_temp = realloc(ri_whfast->p_temp,sizeof(struct reb_particle)*N); + } + struct reb_particle* p_temp = ri_whfast->p_temp; + + // Calculate normal kick + reb_particles_transform_jacobi_to_inertial_pos(particles, p_j, particles, N, N); + reb_simulation_update_acceleration(r); + reb_particles_transform_inertial_to_jacobi_acc(particles, p_j, particles, N, N); + + // make copy of original positions and accelerations + memcpy(p_temp,p_j,r->N*sizeof(struct reb_particle)); + + // WHT96 Eq 10.6 + const double prefac1 = r->dt*r->dt/12.; + for (unsigned int i=1;idt*12.; + for (unsigned int i=1;iri_whfast); + struct reb_integrator_saba* const ri_saba = &(r->ri_saba); + const int type = ri_saba->type; + if (r->N_var_config>0){ + reb_simulation_error(r, "Variational particles are not supported in the SABA integrator."); + return; + } + if (ri_whfast->coordinates!=REB_WHFAST_COORDINATES_JACOBI){ + reb_simulation_error(r, "SABA integrator requires ri_whfast.coordinates to be set to Jacobi coordinates."); + return; + } + if (ri_saba->keep_unsynchronized==1 && ri_saba->safe_mode==1){ + reb_simulation_error(r, "ri_saba->keep_unsynchronized == 1 is not compatible with safe_mode. Must set ri_saba->safe_mode = 0."); + } + if (type!=0x0 && type!=0x1 && type!=0x2 && type!=0x3 && + type!=0x100 && type!=0x101 && type!=0x102 && type!=0x103 && + type!=0x200 && type!=0x201 && type!=0x202 && type!=0x203 && + type!=0x4 && type!=0x5 && type!=0x6 && + type!=0x7 && type!=0x8 && type!=0x9 ){ + reb_simulation_error(r, "Invalid SABA integrator type used."); + return; + } + if (type>=0x100){ + // Force Jacobi terms to be calculated in reb_simulation_update_acceleration if corrector is used + r->gravity = REB_GRAVITY_JACOBI; + }else{ + // Otherwise can do either way + r->gravity_ignore_terms = 1; + } + if (reb_integrator_whfast_init(r)){ + // Non recoverable error occured. + return; + } + + // Only recalculate Jacobi coordinates if needed + if (ri_saba->safe_mode || ri_whfast->recalculate_coordinates_this_timestep){ + reb_integrator_whfast_from_inertial(r); + ri_whfast->recalculate_coordinates_this_timestep = 0; + } + if (type>=0x100){ // Correctors on + if (ri_saba->is_synchronized){ + reb_saba_corrector_step(r, reb_saba_cc[type%0x100]); + }else{ + reb_saba_corrector_step(r, 2.*reb_saba_cc[type%0x100]); + } + // First half DRIFT step + reb_whfast_kepler_step(r, reb_saba_c[type%0x100][0]*r->dt); + reb_whfast_com_step(r, reb_saba_c[type%0x100][0]*r->dt); + }else{ // Correctors off + if (ri_saba->is_synchronized){ + // First half DRIFT step + reb_whfast_kepler_step(r, reb_saba_c[type%0x100][0]*r->dt); + reb_whfast_com_step(r, reb_saba_c[type%0x100][0]*r->dt); + }else{ + // Combined DRIFT step + reb_whfast_kepler_step(r, 2.*reb_saba_c[type%0x100][0]*r->dt); + reb_whfast_com_step(r, 2.*reb_saba_c[type%0x100][0]*r->dt); + } + } + + reb_integrator_whfast_to_inertial(r); +} + +void reb_integrator_saba_synchronize(struct reb_simulation* const r){ + struct reb_integrator_whfast* const ri_whfast = &(r->ri_whfast); + struct reb_integrator_saba* const ri_saba = &(r->ri_saba); + int type = ri_saba->type; + struct reb_particle* sync_pj = NULL; + if (ri_saba->keep_unsynchronized){ + sync_pj = malloc(sizeof(struct reb_particle)*r->N); + memcpy(sync_pj,r->ri_whfast.p_jh,r->N*sizeof(struct reb_particle)); + } + if (ri_saba->is_synchronized == 0){ + const int N = r->N; + if (type>=0x100){ // correctors on + // Drift already done, just need corrector + reb_saba_corrector_step(r, reb_saba_cc[type%0x100]); + }else{ + reb_whfast_kepler_step(r, reb_saba_c[type%0x100][0]*r->dt); + reb_whfast_com_step(r, reb_saba_c[type%0x100][0]*r->dt); + } + reb_particles_transform_jacobi_to_inertial_posvel(r->particles, ri_whfast->p_jh, r->particles, N, N); + if (ri_saba->keep_unsynchronized){ + memcpy(r->ri_whfast.p_jh,sync_pj,r->N*sizeof(struct reb_particle)); + free(sync_pj); + }else{ + ri_saba->is_synchronized = 1; + } + } +} + +void reb_integrator_saba_part2(struct reb_simulation* const r){ + struct reb_integrator_whfast* const ri_whfast = &(r->ri_whfast); + struct reb_integrator_saba* const ri_saba = &(r->ri_saba); + struct reb_particle* restrict const particles = r->particles; + const int type = ri_saba->type; + const int stages = reb_saba_stages(type); + const unsigned int N = r->N; + if (ri_whfast->p_jh==NULL){ + // Non recoverable error occured earlier. + // Skipping rest of integration to avoid segmentation fault. + return; + } + + reb_whfast_interaction_step(r, reb_saba_d[type%0x100][0]*r->dt); + + for(int j=1;jstages/2){ + i = stages-j; + } + reb_whfast_kepler_step(r, reb_saba_c[type%0x100][i]*r->dt); + reb_whfast_com_step(r, reb_saba_c[type%0x100][i]*r->dt); + } + { + int i = j; + if (j>(stages-1)/2){ + i = stages-j-1; + } + reb_particles_transform_jacobi_to_inertial_pos(particles, ri_whfast->p_jh, particles, N, N); + reb_simulation_update_acceleration(r); + reb_whfast_interaction_step(r, reb_saba_d[type%0x100][i]*r->dt); + } + } + + if (ri_saba->type>=0x100){ // correctors on + // Always need to do drift step if correctors are turned on + reb_whfast_kepler_step(r, reb_saba_c[type%0x100][0]*r->dt); + reb_whfast_com_step(r, reb_saba_c[type%0x100][0]*r->dt); + } + + ri_saba->is_synchronized = 0; + if (ri_saba->safe_mode){ + reb_integrator_saba_synchronize(r); + } + + r->t+=r->dt; + r->dt_last_done = r->dt; +} + +void reb_integrator_saba_reset(struct reb_simulation* const r){ + struct reb_integrator_saba* const ri_saba = &(r->ri_saba); + ri_saba->type = REB_SABA_10_6_4; + ri_saba->safe_mode = 1; + ri_saba->is_synchronized = 1; + ri_saba->keep_unsynchronized = 0; + reb_integrator_whfast_reset(r); +} diff --git a/rebound/source/src/integrator_saba.h b/rebound/source/src/integrator_saba.h new file mode 100644 index 0000000000000000000000000000000000000000..2877f377e2d62aff410caaae61b3ecc1155f985f --- /dev/null +++ b/rebound/source/src/integrator_saba.h @@ -0,0 +1,36 @@ +/** + * @file integrator_saba.h + * @brief SABA integrator family (Laskar and Robutel 2001). + * @author Hanno Rein + * @details This file implements the family of symplectic integrators + * of Laskar and Robutel (2001). + * + * @section LICENSE + * Copyright (c) 2019 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _INTEGRATOR_SABA_H +#define _INTEGRATOR_SABA_H + +#include "rebound.h" + +void reb_integrator_saba_part1(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_saba_part2(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_saba_synchronize(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_saba_reset(struct reb_simulation* r); ///< Internal function used to call a specific integrator +#endif diff --git a/rebound/source/src/integrator_sei.c b/rebound/source/src/integrator_sei.c new file mode 100644 index 0000000000000000000000000000000000000000..28ca900be3b0702097081fdf0be964a693acadc5 --- /dev/null +++ b/rebound/source/src/integrator_sei.c @@ -0,0 +1,152 @@ +/** + * @file integrator_sei.c + * @brief Symplectic Epicycle Integrator (SEI). + * @author Hanno Rein + * @details This file implements the Symplectic Epicycle Integrator + * (SEI). The integrator is described in detail in Rein & Tremaine 2011. + * It solves epicyclic motion exactly and is therefore exact up to machine + * precision in the limit of no perturbing forces. When perturbing-forces + * are of order eps, then the error of the scheme is O(eps dt^3). It also + * makes use of two shear operators instead of a rotation to minimize + * systematic numerical round-off errors. + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include "rebound.h" +#include "particle.h" +#include "gravity.h" +#include "boundary.h" +#include "integrator.h" +#include "integrator_sei.h" + + +static void operator_H012(double dt, const struct reb_integrator_sei ri_sei, struct reb_particle* p); +static void operator_phi1(double dt, struct reb_particle* p); + + +void reb_integrator_sei_init(struct reb_simulation* const r){ + /** + * Pre-calculates sin() and tan() needed for SEI. + */ + if (r->ri_sei.OMEGAZ==-1){ + r->ri_sei.OMEGAZ=r->ri_sei.OMEGA; + } + r->ri_sei.sindt = sin(r->ri_sei.OMEGA*(-r->dt/2.)); + r->ri_sei.tandt = tan(r->ri_sei.OMEGA*(-r->dt/4.)); + r->ri_sei.sindtz = sin(r->ri_sei.OMEGAZ*(-r->dt/2.)); + r->ri_sei.tandtz = tan(r->ri_sei.OMEGAZ*(-r->dt/4.)); + r->ri_sei.lastdt = r->dt; +} + +void reb_integrator_sei_part1(struct reb_simulation* const r){ + r->gravity_ignore_terms = 0; + const int N = r->N; + struct reb_particle* const particles = r->particles; + if (r->ri_sei.lastdt!=r->dt){ + reb_integrator_sei_init(r); + } + const struct reb_integrator_sei ri_sei = r->ri_sei; +#pragma omp parallel for schedule(guided) + for (int i=0;idt, ri_sei, &(particles[i])); + } + r->t+=r->dt/2.; +} + +void reb_integrator_sei_part2(struct reb_simulation* r){ + const int N = r->N; + struct reb_particle* const particles = r->particles; + const struct reb_integrator_sei ri_sei = r->ri_sei; +#pragma omp parallel for schedule(guided) + for (int i=0;idt, &(particles[i])); + operator_H012(r->dt, ri_sei, &(particles[i])); + } + r->t+=r->dt/2.; + r->dt_last_done = r->dt; +} + +void reb_integrator_sei_synchronize(struct reb_simulation* r){ + // Do nothing. +} + +void reb_integrator_sei_reset(struct reb_simulation* r){ + r->ri_sei.lastdt = 0; +} + +/** + * @brief This function evolves a particle under the unperturbed + * Hamiltonian H0 exactly up to machine precission. + * @param p reb_particle to evolve. + * @param dt Timestep + * @param ri_sei Integrator struct + */ +static void operator_H012(double dt, const struct reb_integrator_sei ri_sei, struct reb_particle* p){ + + // Integrate vertical motion + const double zx = p->z * ri_sei.OMEGAZ; + const double zy = p->vz; + + // Rotation implemeted as 3 shear operators + // to avoid round-off errors + const double zt1 = zx - ri_sei.tandtz*zy; + const double zyt = ri_sei.sindtz*zt1 + zy; + const double zxt = zt1 - ri_sei.tandtz*zyt; + p->z = zxt/ri_sei.OMEGAZ; + p->vz = zyt; + + // Integrate motion in xy directions + const double aO = 2.*p->vy + 4.*p->x*ri_sei.OMEGA; // Center of epicyclic motion + const double bO = p->y*ri_sei.OMEGA - 2.*p->vx; + + const double ys = (p->y*ri_sei.OMEGA-bO)/2.; // Epicycle vector + const double xs = (p->x*ri_sei.OMEGA-aO); + + // Rotation implemeted as 3 shear operators + // to avoid round-off errors + const double xst1 = xs - ri_sei.tandt*ys; + const double yst = ri_sei.sindt*xst1 + ys; + const double xst = xst1 - ri_sei.tandt*yst; + + p->x = (xst+aO) /ri_sei.OMEGA; + p->y = (yst*2.+bO) /ri_sei.OMEGA - 3./4.*aO*dt; + p->vx = yst; + p->vy = -xst*2. -3./2.*aO; +} + +/** + * @brief This function applies the acceleration due to the PHI1 term. + * @details It is only exact if the forces are velocity independet (i.e. gravity). + * If the forces are velocity dependent, it breaks the symmetry of the scheme, + * making it firsr-order and non-symplectic. As long as these forces are small, + * this should not be visible. However, it is worth keeping in mind. + * @param p reb_particle to evolve. + * @param dt Timestep + */ +static void operator_phi1(double dt, struct reb_particle* p){ + // The force used here is for test cases 2 and 3 + // in Rein & Tremaine 2011. + p->vx += p->ax * dt; + p->vy += p->ay * dt; + p->vz += p->az * dt; +} + diff --git a/rebound/source/src/integrator_sei.h b/rebound/source/src/integrator_sei.h new file mode 100644 index 0000000000000000000000000000000000000000..805a4d37623de5fb46280b4839664d47b56c3777 --- /dev/null +++ b/rebound/source/src/integrator_sei.h @@ -0,0 +1,32 @@ +/** + * @file integrator_sei.h + * @brief Interface for numerical particle integrator + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2015 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _INTEGRATOR_SEI_H +#define _INTEGRATOR_SEI_H +void reb_integrator_sei_part1(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_sei_part2(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_sei_synchronize(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_sei_reset(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_sei_init(struct reb_simulation* const r); ///< Used to initialize constants. +#endif diff --git a/rebound/source/src/integrator_trace.c b/rebound/source/src/integrator_trace.c new file mode 100644 index 0000000000000000000000000000000000000000..1563e5ab1e726d92919997a74f990f15d6250f44 --- /dev/null +++ b/rebound/source/src/integrator_trace.c @@ -0,0 +1,879 @@ +/** + * @file integrator_trace.c + * @brief TRACE + * @author Tiger Lu, Hanno Rein + * + * @section LICENSE + * Copyright (c) 2023 Tiger Lu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#include +#include +#include +#include +#include +#include +#include "rebound.h" +#include "integrator.h" +#include "gravity.h" +#include "integrator_trace.h" +#include "integrator_whfast.h" +#include "integrator_bs.h" +#include "collision.h" +#define MIN(a, b) ((a) > (b) ? (b) : (a)) ///< Returns the minimum of a and b +#define MAX(a, b) ((a) > (b) ? (a) : (b)) ///< Returns the maximum of a and b + +int reb_integrator_trace_switch_default(struct reb_simulation* const r, const unsigned int i, const unsigned int j){ + // Returns 1 for close encounter between i and j, 0 otherwise + struct reb_integrator_trace* const ri_trace = &(r->ri_trace); + const double h2 = r->dt/2.; + + const double dxi = r->particles[i].x; + const double dyi = r->particles[i].y; + const double dzi = r->particles[i].z; + + const double dxj = r->particles[j].x; + const double dyj = r->particles[j].y; + const double dzj = r->particles[j].z; + + const double dx = dxi - dxj; + const double dy = dyi - dyj; + const double dz = dzi - dzj; + const double rp = dx*dx + dy*dy + dz*dz; + + double dcriti6 = 0.0; + double dcritj6 = 0.0; + + const double m0 = r->particles[0].m; + + // Check central body for physical radius ONLY + if (i == 0 && r->particles[i].r != 0){ + const double rs = r->particles[0].r; + dcriti6 = rs*rs*rs*rs*rs*rs; + } + + else if (r->particles[i].m != 0){ + const double di2 = dxi*dxi + dyi*dyi + dzi*dzi; + const double mr = r->particles[i].m/(3.*m0); + dcriti6 = di2*di2*di2*mr*mr; + } + + if (r->particles[j].m != 0){ + const double dj2 = dxj*dxj + dyj*dyj + dzj*dzj; + const double mr = r->particles[j].m/(3.*m0); + dcritj6 = dj2*dj2*dj2*mr*mr; + } + + double r_crit_hill2 = ri_trace->r_crit_hill*ri_trace->r_crit_hill; + double dcritmax6 = r_crit_hill2 * r_crit_hill2 * r_crit_hill2 * MAX(dcriti6,dcritj6); + + if (rp*rp*rp < dcritmax6) return 1; + + const double dvx = r->particles[i].vx - r->particles[j].vx; + const double dvy = r->particles[i].vy - r->particles[j].vy; + const double dvz = r->particles[i].vz - r->particles[j].vz; + const double v2 = dvx*dvx + dvy*dvy + dvz*dvz; + + const double qv = dx*dvx + dy*dvy + dz*dvz; + int d; + + if (qv == 0.0){ // Small + // minimum is at present, which is already checked for + return 0; + } + else if (qv < 0){ + d = 1; + } + else{ + d = -1; + } + + double dmin2; + double tmin = -d*qv/v2; + if (tmin < h2){ + // minimum is in the window + dmin2 = rp - qv*qv/v2; + } + else{ + dmin2 = rp + 2*d*qv*h2 + v2*h2*h2; + } + + return dmin2*dmin2*dmin2 < dcritmax6; +} + +int reb_integrator_trace_switch_peri_default(struct reb_simulation* const r, const unsigned int j){ + // Following Pham et al (2024) + const struct reb_integrator_trace* const ri_trace = &(r->ri_trace); + double GM = r->G*r->particles[0].m; // Not sure if this is the right mass to use. + + double x = r->particles[j].x; + double y = r->particles[j].y; + double z = r->particles[j].z; + double d2 = x*x + y*y + z*z; + double d = sqrt(d2); + + // first derivative + double dx = r->particles[j].vx; + double dy = r->particles[j].vy; + double dz = r->particles[j].vz; + + // second derivative + double prefact2 = -GM/(d2*d); + double ddx = prefact2*x; + double ddy = prefact2*y; + double ddz = prefact2*z; + // need sqrt for this one... + double dd = sqrt(ddx*ddx + ddy*ddy + ddz*ddz); + + // third derivative + double prefact3 = GM/(d2*d2*d); + double dddx = prefact3*(-dx*(y*y+z*z) + 2.*x*x*dx+3.*x*(y*dy+z*dz)); + double dddy = prefact3*(-dy*(x*x+z*z) + 2.*y*y*dy+3.*y*(x*dx+z*dz)); + double dddz = prefact3*(-dz*(x*x+y*y) + 2.*z*z*dz+3.*z*(x*dx+y*dy)); + + double ddd2 = dddx*dddx + dddy*dddy + dddz*dddz; + + // fourth derivative + double prefact4 = GM/(d2*d2*d2*d); + double ddddx = prefact4* (d2 * (-ddx*(y*y+z*z) + 2.*x*x*ddx + dx*(y*dy + z*dz) + x*(4.*dx*dx + 3.*(y*ddy + dy*dy + z*ddz + dz*dz ))) - 5.*(x*dx+y*dy+z*dz)*(-dx*(y*y+z*z)+2.*x*x*dx + 3.*x*(y*dy+z*dz))); + double ddddy = prefact4* (d2 * (-ddy*(x*x+z*z) + 2.*y*y*ddy + dy*(x*dx + z*dz) + y*(4.*dy*dy + 3.*(x*ddx + dx*dx + z*ddz + dz*dz ))) - 5.*(y*dy+x*dx+z*dz)*(-dy*(x*x+z*z)+2.*y*y*dy + 3.*y*(x*dx+z*dz))); + double ddddz = prefact4* (d2 * (-ddz*(y*y+x*x) + 2.*z*z*ddz + dz*(y*dy + x*dx) + z*(4.*dz*dz + 3.*(y*ddy + dy*dy + x*ddx + dx*dx ))) - 5.*(z*dz+y*dy+x*dx)*(-dz*(y*y+x*x)+2.*z*z*dz + 3.*z*(y*dy+x*dx))); + double dddd = sqrt(ddddx*ddddx + ddddy*ddddy + ddddz*ddddz); + + double tau_prs2 = 2.*dd*dd/(ddd2+dd*dddd); // Eq 16 + double dt_prs2 = ri_trace->peri_crit_eta * ri_trace->peri_crit_eta * tau_prs2; + + if (r->dt * r->dt > dt_prs2){ + return 1; + }else{ + return 0; + } +} + +int reb_integrator_trace_switch_peri_none(struct reb_simulation* const r, const unsigned int j){ + // No pericenter flags + return 0; +} + +void reb_integrator_trace_inertial_to_dh(struct reb_simulation* r){ + struct reb_particle* restrict const particles = r->particles; + struct reb_vec3d com_pos = {0}; + struct reb_vec3d com_vel = {0}; + double mtot = 0.; + const int N_active = (r->N_active==-1 || r->testparticle_type==1)?r->N:r->N_active; + const int N = r->N; + for (int i=0;i=0;i--){ + particles[i].x -= particles[0].x; + particles[i].y -= particles[0].y; + particles[i].z -= particles[0].z; + particles[i].vx -= com_vel.x; + particles[i].vy -= com_vel.y; + particles[i].vz -= com_vel.z; + } + r->ri_trace.com_pos = com_pos; + r->ri_trace.com_vel = com_vel; +} + +void reb_integrator_trace_dh_to_inertial(struct reb_simulation* r){ + struct reb_particle* restrict const particles = r->particles; + struct reb_particle temp = {0}; + const int N = r->N; + const int N_active = (r->N_active==-1 || r->testparticle_type==1)?r->N:r->N_active; + for (int i=1;iparticles[0].m; + temp.x /= temp.m; + temp.y /= temp.m; + temp.z /= temp.m; + temp.vx /= particles[0].m; + temp.vy /= particles[0].m; + temp.vz /= particles[0].m; + // Use com to calculate central object's position. + // This ignores previous values stored in particles[0]. + // Should not matter unless collisions occured. + particles[0].x = r->ri_trace.com_pos.x - temp.x; + particles[0].y = r->ri_trace.com_pos.y - temp.y; + particles[0].z = r->ri_trace.com_pos.z - temp.z; + + for (int i=1;iri_trace.com_vel.x; + particles[i].vy += r->ri_trace.com_vel.y; + particles[i].vz += r->ri_trace.com_vel.z; + } + particles[0].vx = r->ri_trace.com_vel.x - temp.vx; + particles[0].vy = r->ri_trace.com_vel.y - temp.vy; + particles[0].vz = r->ri_trace.com_vel.z - temp.vz; +} + +void reb_integrator_trace_interaction_step(struct reb_simulation* const r, double dt){ + struct reb_particle* restrict const particles = r->particles; + const int N = r->N; + r->ri_trace.mode = REB_TRACE_MODE_INTERACTION; + reb_simulation_update_acceleration(r); + for (int i=1;iparticles; + + struct reb_integrator_trace* ri_trace = &(r->ri_trace); + const int current_C = ri_trace->current_C; + if (current_C) return; // No jump step for pericenter approaches + + const int N_active = r->N_active==-1?r->N:r->N_active; + + // If TP type 1, use r->N. Else, use N_active. + const int N = r->testparticle_type==0 ? N_active: r->N; + + double px=0., py=0., pz=0.; + for (int i=1;iparticles[i].vx*r->particles[i].m; // in dh + py += r->particles[i].vy*r->particles[i].m; + pz += r->particles[i].vz*r->particles[i].m; + } + px *= dt/r->particles[0].m; + py *= dt/r->particles[0].m; + pz *= dt/r->particles[0].m; + + const int N_all = r->N; + for (int i=1;iri_trace.com_pos.x += dt*r->ri_trace.com_vel.x; + r->ri_trace.com_pos.y += dt*r->ri_trace.com_vel.y; + r->ri_trace.com_pos.z += dt*r->ri_trace.com_vel.z; +} + +void reb_integrator_trace_whfast_step(struct reb_simulation* const r, double dt){ + //struct reb_particle* restrict const particles = r->particles; + const int N = r->N; + for (int i=1;iparticles,r->G*r->particles[0].m,i,dt); + } +} + +void reb_integrator_trace_update_particles(struct reb_simulation* r, const double* y){ + int N = r->ri_trace.encounter_N; + int* map = r->ri_trace.encounter_map; + + for (int i=0; iparticles[mi]); + p->x = y[i*6+0]; + p->y = y[i*6+1]; + p->z = y[i*6+2]; + p->vx = y[i*6+3]; + p->vy = y[i*6+4]; + p->vz = y[i*6+5]; + } +} + +void reb_integrator_trace_nbody_derivatives(struct reb_ode* ode, double* const yDot, const double* const y, double const t){ + struct reb_simulation* const r = ode->r; + // TRACE always needs this to ensure the right Hamiltonian is evolved + reb_integrator_trace_update_particles(r, y); + reb_simulation_update_acceleration(r); + + double px=0., py=0., pz=0.; + int* map = r->ri_trace.encounter_map; + int N = r->ri_trace.encounter_N; + + if (map==NULL){ + reb_simulation_error(r, "Cannot access TRACE map from BS."); + return; + } + + // Kepler Step + // This is only for pericenter approach + if (r->ri_trace.current_C){ + for (int i=1;iN;i++){ // all particles + px += r->particles[i].vx*r->particles[i].m; // in dh + py += r->particles[i].vy*r->particles[i].m; + pz += r->particles[i].vz*r->particles[i].m; + } + px /= r->particles[0].m; + py /= r->particles[0].m; + pz /= r->particles[0].m; + + } + yDot[0*6+0] = 0.0; + yDot[0*6+1] = 0.0; + yDot[0*6+2] = 0.0; + yDot[0*6+3] = 0.0; + yDot[0*6+4] = 0.0; + yDot[0*6+5] = 0.0; + + for (int i=1; iparticles[mi]; + yDot[i*6+0] = p.vx + px; // Already checked for current_L + yDot[i*6+1] = p.vy + py; + yDot[i*6+2] = p.vz + pz; + yDot[i*6+3] = p.ax; + yDot[i*6+4] = p.ay; + yDot[i*6+5] = p.az; + } +} + +void reb_integrator_trace_bs_step(struct reb_simulation* const r, double dt){ + struct reb_integrator_trace* const ri_trace = &(r->ri_trace); + + if (ri_trace->encounter_N < 2){ + // No close encounters, skip + return; + } + + int i_enc = 0; + ri_trace->encounter_N_active = 0; + for (unsigned int i=0; iN; i++){ + if(ri_trace->encounter_map[i]){ + struct reb_particle tmp = r->particles[i]; // Copy for potential use for tponly_encounter + r->particles[i] = ri_trace->particles_backup_kepler[i]; // Coordinates before WHFast step, overwrite particles with close encounters + ri_trace->encounter_map[i_enc] = i; + i_enc++; + if (r->N_active==-1 || iN_active){ + ri_trace->encounter_N_active++; + if (ri_trace->tponly_encounter){ + ri_trace->particles_backup_kepler[i] = tmp; // Make copy of particles after the kepler step. + // used to restore the massive objects' states in the case + // of only massless test-particle encounters + } + } + } + } + + ri_trace->mode = REB_TRACE_MODE_KEPLER; + + // Only Partial BS uses this step + if (ri_trace->peri_mode == REB_TRACE_PERI_PARTIAL_BS || !ri_trace->current_C){ + // run + const double old_dt = r->dt; + const double old_t = r->t; + const double t_needed = r->t + dt; + reb_integrator_bs_reset(r); + + // Temporarily remove all odes for BS step + struct reb_ode** odes_backup = r->odes; + int N_allocated_odes_backup = r->N_allocated_odes; + int N_odes_backup = r->N_odes; + r->odes = NULL; + r->N_allocated_odes = 0; + r->N_odes = 0; + + // Temporarily add new nbody ode for BS step + struct reb_ode* nbody_ode = reb_ode_create(r, ri_trace->encounter_N*3*2); + nbody_ode->derivatives = reb_integrator_trace_nbody_derivatives; + nbody_ode->needs_nbody = 0; + + // TODO: Support backwards integrations + while(r->t < t_needed && fabs(dt/old_dt)>1e-14 && r->status<=0){ + double* y = nbody_ode->y; + + // In case of overshoot + if (r->t + dt > t_needed){ + dt = t_needed - r->t; + } + + struct reb_particle star = r->particles[0]; // backup velocity + r->particles[0].vx = 0; // star does not move in dh + r->particles[0].vy = 0; + r->particles[0].vz = 0; + + for (unsigned int i=0; iencounter_N; i++){ + const int mi = ri_trace->encounter_map[i]; + const struct reb_particle p = r->particles[mi]; + y[i*6+0] = p.x; + y[i*6+1] = p.y; + y[i*6+2] = p.z; + y[i*6+3] = p.vx; + y[i*6+4] = p.vy; + y[i*6+5] = p.vz; + } + + int success = reb_integrator_bs_step(r, dt); + if (success){ + r->t += dt; + } + dt = r->ri_bs.dt_proposed; + reb_integrator_trace_update_particles(r, nbody_ode->y); + + r->particles[0].vx = star.vx; // restore every timestep for collisions + r->particles[0].vy = star.vy; + r->particles[0].vz = star.vz; + + if (success){ + // Only do a collision search for accepted steps. + reb_collision_search(r); + if (r->collisions_N) r->ri_trace.force_accept = 1; + } + + if (nbody_ode->length != ri_trace->encounter_N*3*2){ + // Just re-create the ODE + reb_ode_free(nbody_ode); + nbody_ode = reb_ode_create(r, ri_trace->encounter_N*3*2); + nbody_ode->derivatives = reb_integrator_trace_nbody_derivatives; + nbody_ode->needs_nbody = 0; + r->ri_bs.first_or_last_step = 1; + } + + star.vx = r->particles[0].vx; // keep track of changed star velocity for later collisions + star.vy = r->particles[0].vy; + star.vz = r->particles[0].vz; + + if (r->particles[0].x !=0 || r->particles[0].y !=0 || r->particles[0].z !=0){ + // Collision with star occured + // Shift all particles back to heliocentric coordinates + // Ignore stars velocity: + // - will not be used after this + // - com velocity is unchained. this velocity will be used + // to reconstruct star's velocity later. + for (int i=r->N-1; i>=0; i--){ + r->particles[i].x -= r->particles[0].x; + r->particles[i].y -= r->particles[0].y; + r->particles[i].z -= r->particles[0].z; + } + } + } + + // if only test particles encountered massive bodies, reset the + // massive body coordinates to their post Kepler step state + if(ri_trace->tponly_encounter){ + for (unsigned int i=1; i < ri_trace->encounter_N_active; i++){ + unsigned int mi = ri_trace->encounter_map[i]; + r->particles[mi] = ri_trace->particles_backup_kepler[mi]; + } + } + + // Restore odes + reb_ode_free(nbody_ode); + free(r->odes); + r->odes = odes_backup; + r->N_allocated_odes = N_allocated_odes_backup; + r->N_odes = N_odes_backup; + + r->t = old_t; + + // Resetting BS here reduces binary file size. + reb_integrator_bs_reset(r); + } +} + +void reb_integrator_trace_kepler_step(struct reb_simulation* const r, const double _dt){ + struct reb_integrator_trace* const ri_trace = &(r->ri_trace); + memcpy(ri_trace->particles_backup_kepler,r->particles,r->N*sizeof(struct reb_particle)); + reb_integrator_trace_whfast_step(r, _dt); + reb_integrator_trace_bs_step(r, _dt); +} + + +void reb_integrator_trace_part1(struct reb_simulation* r){ + // Do memory management and consistency checks in part1. + // Actual integration is happening in part2. + struct reb_integrator_trace* const ri_trace = &(r->ri_trace); + const int N = r->N; + + if (r->N_var_config){ + reb_simulation_warning(r,"TRACE does not work with variational equations."); + } + + if (ri_trace->N_allocatedparticles_backup = realloc(ri_trace->particles_backup,sizeof(struct reb_particle)*N); + ri_trace->particles_backup_kepler = realloc(ri_trace->particles_backup_kepler,sizeof(struct reb_particle)*N); + ri_trace->current_Ks = realloc(ri_trace->current_Ks,sizeof(int)*N*N); + ri_trace->encounter_map = realloc(ri_trace->encounter_map,sizeof(int)*N); + ri_trace->N_allocated = N; + } + + // Calculate collisions only with DIRECT or LINE method + if (r->collision != REB_COLLISION_NONE && (r->collision != REB_COLLISION_DIRECT && r->collision != REB_COLLISION_LINE)){ + reb_simulation_warning(r,"TRACE only works with a direct or line collision search."); + } + + // Calculate gravity with special function + if (r->gravity != REB_GRAVITY_BASIC && r->gravity != REB_GRAVITY_TRACE){ + reb_simulation_warning(r,"TRACE has it's own gravity routine. Gravity routine set by the user will be ignored."); + } + r->gravity = REB_GRAVITY_TRACE; + ri_trace->mode = REB_TRACE_MODE_NONE; // Do not calculate gravity in-between timesteps. TRACE will call reb_update_acceleration itself. + +} + +void reb_integrator_trace_pre_ts_check(struct reb_simulation* const r){ + struct reb_integrator_trace* const ri_trace = &(r->ri_trace); + const int N = r->N; + const int Nactive = r->N_active==-1?r->N:r->N_active; + int (*_switch) (struct reb_simulation* const r, const unsigned int i, const unsigned int j) = ri_trace->S ? ri_trace->S : reb_integrator_trace_switch_default; + int (*_switch_peri) (struct reb_simulation* const r, const unsigned int j) = ri_trace->S_peri ? ri_trace->S_peri : reb_integrator_trace_switch_peri_default; + + // Clear encounter map + for (unsigned int i=1; iN; i++){ + ri_trace->encounter_map[i] = 0; + } + ri_trace->encounter_map[0] = 1; + ri_trace->encounter_N = 1; + + // Reset encounter triggers. + ri_trace->current_C = 0; + + for (int i = 0; i < N; i++){ + for (unsigned int j = i + 1; j < N; j++){ + ri_trace->current_Ks[i*N+j] = 0; + } + } + + if (r->testparticle_type == 1){ + ri_trace->tponly_encounter = 0; // testparticles affect massive particles + }else{ + ri_trace->tponly_encounter = 1; + } + + // Check for pericenter CE + for (int j = 1; j < Nactive; j++){ + if (_switch_peri(r, j)){ + ri_trace->current_C = 1; + if (ri_trace->peri_mode == REB_TRACE_PERI_FULL_BS || ri_trace->peri_mode == REB_TRACE_PERI_FULL_IAS15){ + // Everything will be integrated with BS/IAS15. No need to check any further. + return; + } + if (j < Nactive){ // Two massive particles have a close encounter + ri_trace->tponly_encounter = 0; + break; // No need to check other particles + } + } + } + + if (ri_trace->current_C){ + // Pericenter close encounter detected. We integrate the entire simulation with BS + ri_trace->encounter_N = N; + for (int i = 1; i < N; i++){ + ri_trace->encounter_map[i] = 1; // trigger encounter + } + + } + + // Body-body + // there cannot be TP-TP CEs + for (int i = 0; i < Nactive; i++){ // Check central body, for collisions + for (int j = i + 1; j < N; j++){ + if (_switch(r, i, j)){ + ri_trace->current_Ks[i*N+j] = 1; + if (ri_trace->encounter_map[i] == 0){ + ri_trace->encounter_map[i] = 1; // trigger encounter + ri_trace->encounter_N++; + } + if (ri_trace->encounter_map[j] == 0){ + ri_trace->encounter_map[j] = 1; // trigger encounter + ri_trace->encounter_N++; + } + + if (j < Nactive){ // Two massive particles have a close encounter + ri_trace->tponly_encounter = 0; + } + } + } + } +} + +double reb_integrator_trace_post_ts_check(struct reb_simulation* const r){ + // This function returns 1 if any new encounters occured. + struct reb_integrator_trace* const ri_trace = &(r->ri_trace); + const int N = r->N; + const int Nactive = r->N_active==-1?r->N:r->N_active; + int (*_switch) (struct reb_simulation* const r, const unsigned int i, const unsigned int j) = ri_trace->S ? ri_trace->S : reb_integrator_trace_switch_default; + int (*_switch_peri) (struct reb_simulation* const r, const unsigned int j) = ri_trace->S_peri ? ri_trace->S_peri : reb_integrator_trace_switch_peri_default; + int new_close_encounter = 0; // New CEs + + // Clear encounter maps + for (unsigned int i=1; iN; i++){ + ri_trace->encounter_map[i] = 0; + } + ri_trace->encounter_map[0] = 1; + ri_trace->encounter_N = 1; + + if (!ri_trace->current_C){ + // Check for pericenter CE if not already triggered from pre-timstep. + for (int j = 1; j < Nactive; j++){ + if (_switch_peri(r, j)){ + ri_trace->current_C = 1; + new_close_encounter = 1; + if (ri_trace->peri_mode == REB_TRACE_PERI_FULL_BS || ri_trace->peri_mode == REB_TRACE_PERI_FULL_IAS15){ + // Everything will be integrated with BS/IAS15. No need to check any further. + return new_close_encounter; + } + + if (j < Nactive){ // Two massive particles have a close encounter + ri_trace->tponly_encounter = 0; + break; // No need to check other particles + } + } + } + } + if (ri_trace->current_C){ + // Pericenter close encounter detected. We integrate the entire simulation with BS + ri_trace->encounter_N = N; + for (int i = 0; i < N; i++){ + ri_trace->encounter_map[i] = 1; // trigger encounter + } + } + + + // Body-body + // there cannot be TP-TP CEs + for (int i = 0; i < Nactive; i++){ // Do not check for central body anymore + for (int j = i + 1; j < N; j++){ + if (_switch(r, i, j)){ + if (ri_trace->current_Ks[i*N+j] == 0){ + new_close_encounter = 1; + } + ri_trace->current_Ks[i*N+j] = 1; + if (ri_trace->encounter_map[i] == 0){ + ri_trace->encounter_map[i] = 1; // trigger encounter + ri_trace->encounter_N++; + } + if (ri_trace->encounter_map[j] == 0){ + ri_trace->encounter_map[j] = 1; // trigger encounter + ri_trace->encounter_N++; + } + + if (j < Nactive){ // Two massive particles have a close encounter + ri_trace->tponly_encounter = 0; + } + } + } + } + + return new_close_encounter; +} + +// TODO: Should be reused from BS +static void nbody_derivatives(struct reb_ode* ode, double* const yDot, const double* const y, double const t){ + struct reb_simulation* const r = ode->r; + reb_integrator_bs_update_particles(r, y); + reb_simulation_update_acceleration(r); + + for (unsigned int i=0; iN; i++){ + const struct reb_particle p = r->particles[i]; + yDot[i*6+0] = p.vx; + yDot[i*6+1] = p.vy; + yDot[i*6+2] = p.vz; + yDot[i*6+3] = p.ax; + yDot[i*6+4] = p.ay; + yDot[i*6+5] = p.az; + } +} + +static void reb_integrator_trace_step(struct reb_simulation* const r){ + if (r->ri_trace.current_C == 0 || r->ri_trace.peri_mode == REB_TRACE_PERI_PARTIAL_BS){ + reb_integrator_trace_interaction_step(r, r->dt/2.); + reb_integrator_trace_jump_step(r, r->dt/2.); + reb_integrator_trace_kepler_step(r, r->dt); + reb_integrator_trace_com_step(r,r->dt); + reb_integrator_trace_jump_step(r, r->dt/2.); + reb_integrator_trace_interaction_step(r, r->dt/2.); + }else{ + // Pericenter approach with one of the FULL prescriptions + double t_needed = r->t + r->dt; + const double old_dt = r->dt; + const double old_t = r->t; + r->gravity = REB_GRAVITY_BASIC; + r->ri_trace.mode = REB_TRACE_MODE_FULL; // for collision search + reb_integrator_trace_dh_to_inertial(r); + switch (r->ri_trace.peri_mode){ + case REB_TRACE_PERI_FULL_IAS15: + // Run default IAS15 integration + reb_integrator_ias15_reset(r); + while(r->t < t_needed && fabs(r->dt/old_dt)>1e-14 && r->status<=0){ + reb_simulation_update_acceleration(r); + reb_integrator_ias15_part2(r); + if (r->t+r->dt > t_needed){ + r->dt = t_needed-r->t; + } + reb_collision_search(r); + if (r->collisions_N) r->ri_trace.force_accept = 1; + } + // Resetting IAS15 here reduces binary file size. + reb_integrator_ias15_reset(r); + break; + case REB_TRACE_PERI_FULL_BS: + { + // Run default BS integration + // TODO: Syntax should be similar to IAS + struct reb_ode* nbody_ode = NULL; + + double* y; + while(r->t < t_needed && fabs(r->dt/old_dt)>1e-14 && r->status<=0){ + if (!nbody_ode || nbody_ode->length != 6*r->N){ + if (nbody_ode){ + reb_ode_free(nbody_ode); + } + nbody_ode = reb_ode_create(r, 6*r->N); + nbody_ode->derivatives = nbody_derivatives; + nbody_ode->needs_nbody = 0; + y = nbody_ode->y; + reb_integrator_bs_reset(r); + } + + for (unsigned int i=0; iN; i++){ + const struct reb_particle p = r->particles[i]; + y[i*6+0] = p.x; + y[i*6+1] = p.y; + y[i*6+2] = p.z; + y[i*6+3] = p.vx; + y[i*6+4] = p.vy; + y[i*6+5] = p.vz; + } + + int success = reb_integrator_bs_step(r, r->dt); + if (success){ + r->t += r->dt; + } + r->dt = r->ri_bs.dt_proposed; + if (r->t+r->dt > t_needed){ + r->dt = t_needed-r->t; + } + + reb_integrator_bs_update_particles(r, nbody_ode->y); + + if (success){ + // Only do a collision search for accepted steps. + reb_collision_search(r); + if (r->collisions_N) r->ri_trace.force_accept = 1; + } + } + reb_ode_free(nbody_ode); + // Resetting BS here reduces binary file size + reb_integrator_bs_reset(r); + } + break; + default: + reb_simulation_error(r,"Unsupport peri_mode encountered\n"); + break; + } + r->gravity = REB_GRAVITY_TRACE; + r->t = old_t; // final time will be set later + r->dt = old_dt; + reb_integrator_trace_inertial_to_dh(r); + } +} + +void reb_integrator_trace_part2(struct reb_simulation* const r){ + struct reb_integrator_trace* const ri_trace = &(r->ri_trace); + const int N = r->N; + + reb_integrator_trace_inertial_to_dh(r); + + // Create copy of all particle to allow for the step to be rejected. + memcpy(ri_trace->particles_backup, r->particles, N*sizeof(struct reb_particle)); + + // This will be set to 1 if a collision occured. + ri_trace->force_accept = 0; + + // Check if there are any close encounters + reb_integrator_trace_pre_ts_check(r); + + // Attempt one step. + reb_integrator_trace_step(r); + + // We alaways accept the step if a collision occured as it is impossible to undo the collision. + if (!ri_trace->force_accept){ + // We check again for close encounters to ensure time reversibility. + if (reb_integrator_trace_post_ts_check(r)){ + // New encounters were found. Will reject the step. + // Revert particles to the beginning of the step. + memcpy(r->particles, ri_trace->particles_backup, N*sizeof(struct reb_particle)); + + // Do step again + reb_integrator_trace_step(r); + } + } + reb_integrator_trace_dh_to_inertial(r); + + r->t+=r->dt; + r->dt_last_done = r->dt; +} + +void reb_integrator_trace_synchronize(struct reb_simulation* r){ +} + +void reb_integrator_trace_reset(struct reb_simulation* r){ + r->ri_trace.mode = REB_TRACE_MODE_NONE; + r->ri_trace.encounter_N = 0; + r->ri_trace.encounter_N_active = 0; + r->ri_trace.r_crit_hill = 3; + r->ri_trace.peri_crit_eta = 1.0; + r->ri_trace.force_accept = 0; + + // Internal arrays (only used within one timestep) + free(r->ri_trace.particles_backup); + r->ri_trace.particles_backup = NULL; + free(r->ri_trace.particles_backup_kepler); + r->ri_trace.particles_backup_kepler = NULL; + free(r->ri_trace.particles_backup_additional_forces); + r->ri_trace.particles_backup_additional_forces = NULL; + + free(r->ri_trace.encounter_map); + r->ri_trace.encounter_map = NULL; + + r->ri_trace.current_C = 0; + free(r->ri_trace.current_Ks); + r->ri_trace.current_Ks = NULL; + + r->ri_trace.S = NULL; + r->ri_trace.S_peri = NULL; + + r->ri_trace.peri_mode = REB_TRACE_PERI_FULL_BS; + + r->ri_trace.N_allocated = 0; + r->ri_trace.N_allocated_additional_forces = 0; +} diff --git a/rebound/source/src/integrator_trace.h b/rebound/source/src/integrator_trace.h new file mode 100644 index 0000000000000000000000000000000000000000..51cba09be681367e9c46fe6a03eb98ea503f04e6 --- /dev/null +++ b/rebound/source/src/integrator_trace.h @@ -0,0 +1,33 @@ +/** + * @file integrator_trace.h + * @brief Interface for numerical particle integrator + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2023 Tiger Lu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _INTEGRATOR_TRACE_H +#define _INTEGRATOR_TRACE_H +void reb_integrator_trace_part1(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_trace_part2(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_trace_synchronize(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_trace_reset(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_trace_dh_to_inertial(struct reb_simulation* r); ///< Ionternal in-place coordinate transformation +void reb_integrator_trace_inertial_to_dh(struct reb_simulation* r); ///< Internal in-place coordinate transformation +#endif diff --git a/rebound/source/src/integrator_whfast.c b/rebound/source/src/integrator_whfast.c new file mode 100644 index 0000000000000000000000000000000000000000..672ff1a6900fc25e3cd88cb1f59f3e433695812c --- /dev/null +++ b/rebound/source/src/integrator_whfast.c @@ -0,0 +1,1276 @@ +/** + * @file integrator_whfast.c + * @brief WHFAST integration scheme. + * @author Hanno Rein + * @details This file implements the WHFast integration scheme. + * Described in Rein & Tamayo 2015, Rein et al. 2019. + * See also Wisdom et al. 1996. + * + * @section LICENSE + * Copyright (c) 2015 Hanno Rein, Daniel Tamayo + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#include +#include +#include +#include "rebound.h" +#include "particle.h" +#include "tools.h" +#include "gravity.h" +#include "boundary.h" +#include "integrator.h" +#include "integrator_whfast.h" + +#define MAX(a, b) ((a) < (b) ? (b) : (a)) ///< Returns the maximum of a and b +#define MIN(a, b) ((a) > (b) ? (b) : (a)) ///< Returns the minimum of a and b + +// Corrector coefficients +static const double reb_whfast_corrector_a_1 = 0.41833001326703777398908601289259374469640768464934; +static const double reb_whfast_corrector_a_2 = 0.83666002653407554797817202578518748939281536929867; +static const double reb_whfast_corrector_a_3 = 1.2549900398011133219672580386777812340892230539480; +static const double reb_whfast_corrector_a_4 = 1.6733200530681510959563440515703749787856307385973; +static const double reb_whfast_corrector_a_5 = 2.0916500663351888699454300644629687234820384232467; +static const double reb_whfast_corrector_a_6 = 2.5099800796022266439345160773555624681784461078960; +static const double reb_whfast_corrector_a_7 = 2.9283100928692644179236020902481562128748537925454; +static const double reb_whfast_corrector_a_8 = 3.3466401061363021919126881031407499575712614771947; +static const double reb_whfast_corrector_b_31 = -0.024900596027799867499350357910273437184309981229127; +static const double reb_whfast_corrector_b_51 = -0.0083001986759332891664501193034244790614366604097090; +static const double reb_whfast_corrector_b_52 = 0.041500993379666445832250596517122395307183302048545; +static const double reb_whfast_corrector_b_71 = 0.0024926811426922105779030593952776964450539008582219; +static const double reb_whfast_corrector_b_72 = -0.018270923246702131478062356884535264841652263842597; +static const double reb_whfast_corrector_b_73 = 0.053964399093127498721765893493510877532452806339655; +static const double reb_whfast_corrector_b_111 = 0.00020361579647854651301632818774633716473696537436847; +static const double reb_whfast_corrector_b_112 = -0.0023487215292295354188307328851055489876255097419754; +static const double reb_whfast_corrector_b_113 = 0.012309078592019946317544564763237909911330686448336; +static const double reb_whfast_corrector_b_114 = -0.038121613681288650508647613260247372125243616270670; +static const double reb_whfast_corrector_b_115 = 0.072593394748842738674253180742744961827622366521517; +static const double reb_whfast_corrector_b_178 = 0.093056103771425958591541059067553547100903397724386; +static const double reb_whfast_corrector_b_177 = -0.065192863576377893658290760803725762027864651086787; +static const double reb_whfast_corrector_b_176 = 0.032422198864713580293681523029577130832258806467604; +static const double reb_whfast_corrector_b_175 = -0.012071760822342291062449751726959664253913904872527; +static const double reb_whfast_corrector_b_174 = 0.0033132577069380655655490196833451994080066801611459; +static const double reb_whfast_corrector_b_173 = -0.00063599983075817658983166881625078545864140848560259; +static const double reb_whfast_corrector_b_172 = 0.000076436355227935738363241846979413475106795392377415; +static const double reb_whfast_corrector_b_171 = -0.0000043347415473373580190650223498124944896789841432241; +static const double reb_whfast_corrector2_b = 0.03486083443891981449909050107438281205803; + +// Fast inverse factorial lookup table +static const double invfactorial[35] = {1., 1., 1./2., 1./6., 1./24., 1./120., 1./720., 1./5040., 1./40320., 1./362880., 1./3628800., 1./39916800., 1./479001600., 1./6227020800., 1./87178291200., 1./1307674368000., 1./20922789888000., 1./355687428096000., 1./6402373705728000., 1./121645100408832000., 1./2432902008176640000., 1./51090942171709440000., 1./1124000727777607680000., 1./25852016738884976640000., 1./620448401733239439360000., 1./15511210043330985984000000., 1./403291461126605635584000000., 1./10888869450418352160768000000., 1./304888344611713860501504000000., 1./8841761993739701954543616000000., 1./265252859812191058636308480000000., 1./8222838654177922817725562880000000., 1./263130836933693530167218012160000000., 1./8683317618811886495518194401280000000., 1./295232799039604140847618609643520000000.}; + +static inline double fastabs(double x){ + return (x > 0.) ? x : -x; +} + +static void stumpff_cs(double *restrict cs, double z) { + unsigned int n = 0; + while(fastabs(z)>0.1){ + z = z/4.; + n++; + } + const int nmax = 15; + double c_odd = invfactorial[nmax]; + double c_even = invfactorial[nmax-1]; + for(int np=nmax-2;np>=5;np-=2){ + c_odd = invfactorial[np] - z *c_odd; + c_even = invfactorial[np-1] - z *c_even; + } + cs[5] = c_odd; + cs[4] = c_even; + cs[3] = invfactorial[3] - z *cs[5]; + cs[2] = invfactorial[2] - z *cs[4]; + cs[1] = invfactorial[1] - z *cs[3]; + for (;n>0;n--){ + z = z*4.; + cs[5] = (cs[5]+cs[4]+cs[3]*cs[2])*0.0625; + cs[4] = (1.+cs[1])*cs[3]*0.125; + cs[3] = 1./6.-z*cs[5]; + cs[2] = 0.5-z*cs[4]; + cs[1] = 1.-z*cs[3]; + } + cs[0] = invfactorial[0] - z *cs[2]; +} +static void stumpff_cs3(double *restrict cs, double z) { + unsigned int n = 0; + while(fabs(z)>0.1){ + z = z/4.; + n++; + } + const int nmax = 13; + double c_odd = invfactorial[nmax]; + double c_even = invfactorial[nmax-1]; + for(int np=nmax-2;np>=3;np-=2){ + c_odd = invfactorial[np] - z *c_odd; + c_even = invfactorial[np-1] - z *c_even; + } + cs[3] = c_odd; + cs[2] = c_even; + cs[1] = invfactorial[1] - z *c_odd; + cs[0] = invfactorial[0] - z *c_even; + for (;n>0;n--){ + cs[3] = (cs[2]+cs[0]*cs[3])*0.25; + cs[2] = cs[1]*cs[1]*0.5; + cs[1] = cs[0]*cs[1]; + cs[0] = 2.*cs[0]*cs[0]-1.; + } +} + +static void stiefel_Gs(double *restrict Gs, double beta, double X) { + double X2 = X*X; + stumpff_cs(Gs, beta*X2); + Gs[1] *= X; + Gs[2] *= X2; + double _pow = X2*X; + Gs[3] *= _pow; + _pow *= X; + Gs[4] *= _pow; + _pow *= X; + Gs[5] *= _pow; + return; +} + +static void stiefel_Gs3(double *restrict Gs, double beta, double X) { + double X2 = X*X; + stumpff_cs3(Gs, beta*X2); + Gs[1] *= X; + Gs[2] *= X2; + Gs[3] *= X2*X; + return; +} + +#define WHFAST_NMAX_QUART 64 ///< Maximum number of iterations for quartic solver +#define WHFAST_NMAX_NEWT 32 ///< Maximum number of iterations for Newton's method +/************************************ + * Keplerian motion for one planet */ +void reb_whfast_kepler_solver(const struct reb_simulation* const r, struct reb_particle* const restrict p_j, const double M, unsigned int i, double _dt){ + const struct reb_particle p1 = p_j[i]; + + const double r0 = sqrt(p1.x*p1.x + p1.y*p1.y + p1.z*p1.z); + const double r0i = 1./r0; + const double v2 = p1.vx*p1.vx + p1.vy*p1.vy + p1.vz*p1.vz; + const double beta = 2.*M*r0i - v2; + const double eta0 = p1.x*p1.vx + p1.y*p1.vy + p1.z*p1.vz; + const double zeta0 = M - beta*r0; + double X; + double Gs[6]; + double invperiod=0; // only used for beta>0. Set to 0 only to suppress compiler warnings. + double X_per_period = nan(""); // only used for beta>0. nan triggers Newton's method for beta<0. + + if (beta>0.){ + // Elliptic orbit + const double sqrt_beta = sqrt(beta); + invperiod = sqrt_beta*beta/(2.*M_PI*M); + X_per_period = 2.*M_PI/sqrt_beta; + if (fabs(_dt)*invperiod>1. && r && r->ri_whfast.timestep_warning == 0){ + // Ignoring const qualifiers. This warning should not have any effect on + // other parts of the code, nor is it vital to show it. + ((struct reb_simulation* const)r)->ri_whfast.timestep_warning++; + reb_simulation_warning((struct reb_simulation* const)r,"WHFast convergence issue. Timestep is larger than at least one orbital period."); + } + //X = _dt*invperiod*X_per_period; // first order guess + const double dtr0i = _dt*r0i; + //X = dtr0i; // first order guess + X = dtr0i * (1. - dtr0i*eta0*0.5*r0i); // second order guess + //X = dtr0i *(1.- 0.5*dtr0i*r0i*(eta0-dtr0i*(eta0*eta0*r0i-1./3.*zeta0))); // third order guess + //X = _dt*beta/M + eta0/M*(0.85*sqrt(1.+zeta0*zeta0/beta/eta0/eta0) - 1.); // Dan's version + }else{ + // Hyperbolic orbit + X = 0.; // Initial guess + } + + unsigned int converged = 0; + double oldX = X; + + // Do one Newton step + stiefel_Gs3(Gs, beta, X); + const double eta0Gs1zeta0Gs2 = eta0*Gs[1] + zeta0*Gs[2]; + double ri = 1./(r0 + eta0Gs1zeta0Gs2); + X = ri*(X*eta0Gs1zeta0Gs2-eta0*Gs[2]-zeta0*Gs[3]+_dt); + + // Choose solver depending on estimated step size + // Note, for hyperbolic orbits this uses Newton's method. + if(fastabs(X-oldX) > 0.01*X_per_period){ + // Quartic solver + // Linear initial guess + X = beta*_dt/M; + double prevX[WHFAST_NMAX_QUART+1]; + for(int n_lag=1; n_lag < WHFAST_NMAX_QUART; n_lag++){ + stiefel_Gs3(Gs, beta, X); + const double f = r0*X + eta0*Gs[2] + zeta0*Gs[3] - _dt; + const double fp = r0 + eta0*Gs[1] + zeta0*Gs[2]; + const double fpp = eta0*Gs[0] + zeta0*Gs[1]; + const double denom = fp + sqrt(fabs(16.*fp*fp - 20.*f*fpp)); + X = (X*denom - 5.*f)/denom; + for(int i=1;i0.){ + //Elliptic + X_min = X_per_period * floor(_dt*invperiod); + X_max = X_min + X_per_period; + }else{ + //Hyperbolic + double h2 = r0*r0*v2-eta0*eta0; + double q = h2/M/(1.+sqrt(1.-h2*beta/(M*M))); + double vq = copysign( sqrt(h2)/q, _dt); + // X_max and X_min correspond to dt/r_min and dt/r_max + // which are reachable in this timestep + // r_max = vq*_dt+r0 + // r_min = pericenter + X_min = _dt/(fastabs(vq*_dt)+r0); + X_max = _dt/q; + if (_dt<0.){ + double temp = X_min; + X_min = X_max; + X_max = temp; + } + } + X = (X_max + X_min)/2.; + do{ + stiefel_Gs3(Gs, beta, X); + double s = r0*X + eta0*Gs[2] + zeta0*Gs[3]-_dt; + if (s>=0.){ + X_max = X; + }else{ + X_min = X; + } + X = (X_max + X_min)/2.; + }while (fastabs((X_max-X_min))>fastabs((X_max+X_min)*1e-15)); + const double eta0Gs1zeta0Gs2 = eta0*Gs[1] + zeta0*Gs[2]; + ri = 1./(r0 + eta0Gs1zeta0Gs2); + } + if (isnan(ri)){ + // Exception for (almost) straight line motion in hyperbolic case + ri = 0.; + Gs[1] = 0.; + Gs[2] = 0.; + Gs[3] = 0.; + } + + // Note: These are not the traditional f and g functions. + double f = -M*Gs[2]*r0i; + double g = _dt - M*Gs[3]; + double fd = -M*Gs[1]*r0i*ri; + double gd = -M*Gs[2]*ri; + + p_j[i].x += f*p1.x + g*p1.vx; + p_j[i].y += f*p1.y + g*p1.vy; + p_j[i].z += f*p1.z + g*p1.vz; + + p_j[i].vx += fd*p1.x + gd*p1.vx; + p_j[i].vy += fd*p1.y + gd*p1.vy; + p_j[i].vz += fd*p1.z + gd*p1.vz; + + //Variations + for (int v=0;r && vN_var_config;v++){ + struct reb_variational_configuration const vc = r->var_config[v]; + const int index = vc.index; + stiefel_Gs(Gs, beta, X); // Recalculate (to get Gs[4] and Gs[5]) + struct reb_particle dp1 = p_j[i+index]; + double dr0 = (dp1.x*p1.x + dp1.y*p1.y + dp1.z*p1.z)*r0i; + double dbeta = -2.*M*dr0*r0i*r0i - 2.* (dp1.vx*p1.vx + dp1.vy*p1.vy + dp1.vz*p1.vz); + double deta0 = dp1.x*p1.vx + dp1.y*p1.vy + dp1.z*p1.vz + + p1.x*dp1.vx + p1.y*dp1.vy + p1.z*dp1.vz; + double dzeta0 = -beta*dr0 - r0*dbeta; + double G3beta = 0.5*(3.*Gs[5]-X*Gs[4]); + double G2beta = 0.5*(2.*Gs[4]-X*Gs[3]); + double G1beta = 0.5*(Gs[3]-X*Gs[2]); + double tbeta = eta0*G2beta + zeta0*G3beta; + double dX = -1.*ri*(X*dr0 + Gs[2]*deta0+Gs[3]*dzeta0+tbeta*dbeta); + double dG1 = Gs[0]*dX + G1beta*dbeta; + double dG2 = Gs[1]*dX + G2beta*dbeta; + double dG3 = Gs[2]*dX + G3beta*dbeta; + double dr = dr0 + Gs[1]*deta0 + Gs[2]*dzeta0 + eta0*dG1 + zeta0*dG2; + double df = M*Gs[2]*dr0*r0i*r0i - M*dG2*r0i; + double dg = -M*dG3; + double dfd = -M*dG1*r0i*ri + M*Gs[1]*(dr0*r0i+dr*ri)*r0i*ri; + double dgd = -M*dG2*ri + M*Gs[2]*dr*ri*ri; + + p_j[i+index].x += f*dp1.x + g*dp1.vx + df*p1.x + dg*p1.vx; + p_j[i+index].y += f*dp1.y + g*dp1.vy + df*p1.y + dg*p1.vy; + p_j[i+index].z += f*dp1.z + g*dp1.vz + df*p1.z + dg*p1.vz; + + p_j[i+index].vx += fd*dp1.x + gd*dp1.vx + dfd*p1.x + dgd*p1.vx; + p_j[i+index].vy += fd*dp1.y + gd*dp1.vy + dfd*p1.y + dgd*p1.vy; + p_j[i+index].vz += fd*dp1.z + gd*dp1.vz + dfd*p1.z + dgd*p1.vz; + } + +} + +/***************************** + * Interaction Hamiltonian */ +void reb_whfast_interaction_step(struct reb_simulation* const r, const double _dt){ + const unsigned int N_real = r->N-r->N_var; + const int N_active = (r->N_active==-1 || r->testparticle_type ==1)?(int)N_real:r->N_active; + const double G = r->G; + struct reb_particle* particles = r->particles; + const double m0 = particles[0].m; + struct reb_integrator_whfast* const ri_whfast = &(r->ri_whfast); + struct reb_particle* const p_j = ri_whfast->p_jh; + switch (ri_whfast->coordinates){ + case REB_WHFAST_COORDINATES_JACOBI: + { + const double softening = r->softening; + for (int v=0;vN_var_config;v++){ + struct reb_variational_configuration const vc = r->var_config[v]; + reb_particles_transform_inertial_to_jacobi_acc(particles+vc.index, p_j+vc.index, particles, N_real, N_active); + } + reb_particles_transform_inertial_to_jacobi_acc(particles, p_j, particles, N_real, N_active); + double eta = m0; + for (int i=1;i<(int)N_real;i++){ + // Eq 132 + const struct reb_particle pji = p_j[i]; + if (igravity != REB_GRAVITY_JACOBI){ + // If Jacobi terms have not been added in update_acceleration, then add them here: + if (i>1){ + const double rj2i = 1./(pji.x*pji.x + pji.y*pji.y + pji.z*pji.z + softening*softening); + const double rji = sqrt(rj2i); + const double rj3iM = rji*rj2i*G*eta; + const double prefac1 = _dt*rj3iM; + p_j[i].vx += prefac1*pji.x; + p_j[i].vy += prefac1*pji.y; + p_j[i].vz += prefac1*pji.z; + for(int v=0;vN_var_config;v++){ + struct reb_variational_configuration const vc = r->var_config[v]; + const int index = vc.index; + double rj5M = rj3iM*rj2i; + double rdr = p_j[i+index].x*pji.x + p_j[i+index].y*pji.y + p_j[i+index].z*pji.z; + double prefac2 = -_dt*3.*rdr*rj5M; + p_j[i+index].vx += prefac1*p_j[i+index].x + prefac2*pji.x; + p_j[i+index].vy += prefac1*p_j[i+index].y + prefac2*pji.y; + p_j[i+index].vz += prefac1*p_j[i+index].z + prefac2*pji.z; + } + } + for(int v=0;vN_var_config;v++){ + struct reb_variational_configuration const vc = r->var_config[v]; + const int index = vc.index; + p_j[i+index].vx += _dt * p_j[i+index].ax; + p_j[i+index].vy += _dt * p_j[i+index].ay; + p_j[i+index].vz += _dt * p_j[i+index].az; + } + } + } + } + break; + case REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC: +#pragma omp parallel for + for (unsigned int i=1;iri_whfast); + struct reb_particle* const p_h = r->ri_whfast.p_jh; + const int N_real = r->N - r->N_var; + const int N_active = (r->N_active==-1 || r->testparticle_type ==1)?N_real:r->N_active; + const double m0 = r->particles[0].m; + switch (ri_whfast->coordinates){ + case REB_WHFAST_COORDINATES_JACOBI: + // Nothing to be done. + break; + case REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC: + { + double px=0, py=0, pz=0; +#pragma omp parallel for reduction (+:px), reduction (+:py), reduction (+:pz) + for(int i=1;iparticles[i].m; + px += m * p_h[i].vx; + py += m * p_h[i].vy; + pz += m * p_h[i].vz; + } +#pragma omp parallel for + for(int i=1;iparticles[i].m; + px += m * p_h[i].vx / (m0+m); + py += m * p_h[i].vy / (m0+m); + pz += m * p_h[i].vz / (m0+m); + } +#pragma omp parallel for + for(int i=1;iparticles[i].m; + p_h[i].x += _dt * (px - (m * p_h[i].vx / (m0+m)) ); + p_h[i].y += _dt * (py - (m * p_h[i].vy / (m0+m)) ); + p_h[i].z += _dt * (pz - (m * p_h[i].vz / (m0+m)) ); + } +#pragma omp parallel for + for(int i=N_active;iparticles[0].m; + const double G = r->G; + const unsigned int N_real = r->N-r->N_var; + const int N_active = (r->N_active==-1 || r->testparticle_type ==1)?(int)N_real:r->N_active; + const int coordinates = r->ri_whfast.coordinates; + struct reb_particle* const p_j = r->ri_whfast.p_jh; + double eta = m0; + switch (coordinates){ + case REB_WHFAST_COORDINATES_JACOBI: +#pragma omp parallel for private(eta) + for (int i=1;i<(int)N_real;i++){ +#ifdef OPENMP + eta = m0; + for (int j=1;jri_whfast.p_jh; + p_j[0].x += _dt*p_j[0].vx; + p_j[0].y += _dt*p_j[0].vy; + p_j[0].z += _dt*p_j[0].vz; +} + +static void reb_whfast_corrector_Z(struct reb_simulation* r, const double a, const double b){ + struct reb_integrator_whfast* const ri_whfast = &(r->ri_whfast); + struct reb_particle* restrict const particles = r->particles; + const int N_real = r->N-r->N_var; + const int N_active = (r->N_active==-1 || r->testparticle_type==1)?N_real:r->N_active; + switch (ri_whfast->coordinates){ + case REB_WHFAST_COORDINATES_JACOBI: + reb_whfast_kepler_step(r, a); + reb_particles_transform_jacobi_to_inertial_pos(particles, ri_whfast->p_jh, particles, N_real, N_active); + for (int v=0;vN_var_config;v++){ + struct reb_variational_configuration const vc = r->var_config[v]; + reb_particles_transform_jacobi_to_inertial_pos(particles+vc.index, ri_whfast->p_jh+vc.index, particles, N_real, N_active); + } + reb_simulation_update_acceleration(r); + reb_whfast_interaction_step(r, -b); + reb_whfast_kepler_step(r, -2.*a); + reb_particles_transform_jacobi_to_inertial_pos(particles, ri_whfast->p_jh, particles, N_real, N_active); + for (int v=0;vN_var_config;v++){ + struct reb_variational_configuration const vc = r->var_config[v]; + reb_particles_transform_jacobi_to_inertial_pos(particles+vc.index, ri_whfast->p_jh+vc.index, particles, N_real, N_active); + } + reb_simulation_update_acceleration(r); + reb_whfast_interaction_step(r, b); + reb_whfast_kepler_step(r, a); + break; + case REB_WHFAST_COORDINATES_BARYCENTRIC: + reb_whfast_kepler_step(r, a); + reb_particles_transform_barycentric_to_inertial_pos(particles, ri_whfast->p_jh, N_real, N_active); + reb_simulation_update_acceleration(r); + reb_whfast_interaction_step(r, -b); + reb_whfast_kepler_step(r, -2.*a); + reb_particles_transform_barycentric_to_inertial_pos(particles, ri_whfast->p_jh, N_real, N_active); + reb_simulation_update_acceleration(r); + reb_whfast_interaction_step(r, b); + reb_whfast_kepler_step(r, a); + break; + case REB_WHFAST_COORDINATES_WHDS: + case REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC: + reb_simulation_error(r, "Coordinate system not supported."); + break; + } +} + +void reb_whfast_apply_corrector(struct reb_simulation* r, double inv, int order){ + const double dt = r->dt; + if (order==3){ + // Third order corrector + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_1*dt,-inv*reb_whfast_corrector_b_31*dt); + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_1*dt,inv*reb_whfast_corrector_b_31*dt); + } + if (order==5){ + // Fifth order corrector + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_2*dt,-inv*reb_whfast_corrector_b_51*dt); + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_1*dt,-inv*reb_whfast_corrector_b_52*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_1*dt,inv*reb_whfast_corrector_b_52*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_2*dt,inv*reb_whfast_corrector_b_51*dt); + } + if (order==7){ + // Seventh order corrector + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_3*dt,-inv*reb_whfast_corrector_b_71*dt); + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_2*dt,-inv*reb_whfast_corrector_b_72*dt); + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_1*dt,-inv*reb_whfast_corrector_b_73*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_1*dt,inv*reb_whfast_corrector_b_73*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_2*dt,inv*reb_whfast_corrector_b_72*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_3*dt,inv*reb_whfast_corrector_b_71*dt); + } + if (order==11){ + // Eleventh order corrector + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_5*dt,-inv*reb_whfast_corrector_b_111*dt); + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_4*dt,-inv*reb_whfast_corrector_b_112*dt); + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_3*dt,-inv*reb_whfast_corrector_b_113*dt); + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_2*dt,-inv*reb_whfast_corrector_b_114*dt); + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_1*dt,-inv*reb_whfast_corrector_b_115*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_1*dt,inv*reb_whfast_corrector_b_115*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_2*dt,inv*reb_whfast_corrector_b_114*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_3*dt,inv*reb_whfast_corrector_b_113*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_4*dt,inv*reb_whfast_corrector_b_112*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_5*dt,inv*reb_whfast_corrector_b_111*dt); + } + if (order==17){ + // Seventeenth order corrector + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_8*dt,-inv*reb_whfast_corrector_b_171*dt); + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_7*dt,-inv*reb_whfast_corrector_b_172*dt); + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_6*dt,-inv*reb_whfast_corrector_b_173*dt); + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_5*dt,-inv*reb_whfast_corrector_b_174*dt); + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_4*dt,-inv*reb_whfast_corrector_b_175*dt); + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_3*dt,-inv*reb_whfast_corrector_b_176*dt); + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_2*dt,-inv*reb_whfast_corrector_b_177*dt); + reb_whfast_corrector_Z(r, -reb_whfast_corrector_a_1*dt,-inv*reb_whfast_corrector_b_178*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_1*dt,inv*reb_whfast_corrector_b_178*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_2*dt,inv*reb_whfast_corrector_b_177*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_3*dt,inv*reb_whfast_corrector_b_176*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_4*dt,inv*reb_whfast_corrector_b_175*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_5*dt,inv*reb_whfast_corrector_b_174*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_6*dt,inv*reb_whfast_corrector_b_173*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_7*dt,inv*reb_whfast_corrector_b_172*dt); + reb_whfast_corrector_Z(r, reb_whfast_corrector_a_8*dt,inv*reb_whfast_corrector_b_171*dt); + } +} + +static void reb_whfast_operator_C(struct reb_simulation* const r, double a, double b){ + reb_whfast_kepler_step(r, a); + + struct reb_integrator_whfast* const ri_whfast = &(r->ri_whfast); + struct reb_particle* restrict const particles = r->particles; + const int N = r->N; + const int N_real = r->N-r->N_var; + const int N_active = (r->N_active==-1 || r->testparticle_type==1)?N_real:r->N_active; + reb_particles_transform_jacobi_to_inertial_pos(particles, ri_whfast->p_jh, particles, N, N_active); + reb_simulation_update_acceleration(r); + reb_whfast_interaction_step(r, b); + + reb_whfast_kepler_step(r, -a); +} + +static void reb_whfast_operator_Y(struct reb_simulation* const r, double a, double b){ + reb_whfast_operator_C(r, a, b); + reb_whfast_operator_C(r, -a, -b); +} +static void reb_whfast_operator_U(struct reb_simulation* const r, double a, double b){ + reb_whfast_kepler_step(r, a); + reb_whfast_operator_Y(r, a, b); + reb_whfast_operator_Y(r, a, -b); + reb_whfast_kepler_step(r, -a); +} +static void reb_whfast_apply_corrector2(struct reb_simulation* r, double inv){ + double a = 0.5 * inv * r->dt; + double b = reb_whfast_corrector2_b * inv * r->dt; + reb_whfast_operator_U(r, a, b); + reb_whfast_operator_U(r, -a, b); +} + +void reb_whfast_calculate_jerk(struct reb_simulation* r){ + // Assume particles.a calculated. + struct reb_particle* const particles = r->particles; + const int N = r->N; + struct reb_particle* jerk = r->ri_whfast.p_jh; // Used as a temporary buffer for accelerations + const double G = r->G; + double Rjx = 0.; // com + double Rjy = 0.; + double Rjz = 0.; + double Mj = 0.; + double Ajx = 0.; // sort of Jacobi acceleration + double Ajy = 0.; + double Ajz = 0.; + for (int j=0; j1){ + double dQkrj = Mj; + if (iN_var_config;v++){ + struct reb_variational_configuration const vc = r->var_config[v]; + if (vc.order!=1){ + reb_simulation_error(r, "WHFast/MEGNO only supports first order variational equations."); + return 1; // Error + } + if (vc.testparticle>=0){ + reb_simulation_error(r, "Test particle variations not supported with WHFast. Use IAS15."); + return 1; // Error + } + } + struct reb_integrator_whfast* const ri_whfast = &(r->ri_whfast); + if (r->N_var_config>0 && ri_whfast->coordinates!=REB_WHFAST_COORDINATES_JACOBI){ + reb_simulation_error(r, "Variational particles are only compatible with Jacobi coordinates."); + return 1; // Error + } + if (ri_whfast->kernel!= REB_WHFAST_KERNEL_DEFAULT && ri_whfast->coordinates!=REB_WHFAST_COORDINATES_JACOBI){ + reb_simulation_error(r, "Non-standard kernel requires Jacobi coordinates."); + return 1; // Error + } + if (r->N_var_config>0 && ri_whfast->kernel != REB_WHFAST_KERNEL_DEFAULT){ + reb_simulation_error(r, "Variational particles are only compatible with the standard kernel."); + return 1; // Error + } + if (ri_whfast->kernel>3){ + reb_simulation_error(r, "Kernel method must be 0 (default), 1 (exact modified kick), 2 (composition kernel), or 3 (lazy implementer's modified kick). "); + return 1; // Error + } + if (ri_whfast->corrector!=0 && (ri_whfast->coordinates!=REB_WHFAST_COORDINATES_JACOBI && ri_whfast->coordinates!=REB_WHFAST_COORDINATES_BARYCENTRIC) ){ + reb_simulation_error(r, "Symplectic correctors are only compatible with Jacobi and Barycentric coordinates."); + return 1; // Error + } + if (ri_whfast->corrector!=0 && ri_whfast->corrector!=3 && ri_whfast->corrector!=5 && ri_whfast->corrector!=7 && ri_whfast->corrector!=11 && ri_whfast->corrector!=17 ){ + reb_simulation_error(r, "First symplectic correctors are only available in the following orders: 0, 3, 5, 7, 11, 17."); + return 1; // Error + } + if (ri_whfast->keep_unsynchronized==1 && ri_whfast->safe_mode==1){ + reb_simulation_error(r, "ri_whfast->keep_unsynchronized == 1 is not compatible with safe_mode. Must set ri_whfast->safe_mode = 0."); + } + if (ri_whfast->kernel == REB_WHFAST_KERNEL_MODIFIEDKICK || ri_whfast->kernel == REB_WHFAST_KERNEL_LAZY){ + r->gravity = REB_GRAVITY_JACOBI; + }else{ + if (ri_whfast->coordinates==REB_WHFAST_COORDINATES_JACOBI){ + r->gravity_ignore_terms = 1; + }else if (ri_whfast->coordinates==REB_WHFAST_COORDINATES_BARYCENTRIC){ + r->gravity_ignore_terms = 0; + }else{ + r->gravity_ignore_terms = 2; + } + } + const unsigned int N = r->N; + if (ri_whfast->N_allocated != N){ + ri_whfast->N_allocated = N; + ri_whfast->p_jh = realloc(ri_whfast->p_jh,sizeof(struct reb_particle)*N); + ri_whfast->recalculate_coordinates_this_timestep = 1; + } + return 0; +} + +void reb_integrator_whfast_from_inertial(struct reb_simulation* const r){ + struct reb_integrator_whfast* const ri_whfast = &(r->ri_whfast); + struct reb_particle* restrict const particles = r->particles; + const int N = r->N; + const int N_real = N-r->N_var; + const unsigned int N_active = (r->N_active==-1 || r->testparticle_type==1)?N_real:r->N_active; + + switch (ri_whfast->coordinates){ + case REB_WHFAST_COORDINATES_JACOBI: + reb_particles_transform_inertial_to_jacobi_posvel(particles, ri_whfast->p_jh, particles, N_real, N_active); + for (int v=0;vN_var_config;v++){ + struct reb_variational_configuration const vc = r->var_config[v]; + reb_particles_transform_inertial_to_jacobi_posvel(particles+vc.index, ri_whfast->p_jh+vc.index, particles, N_real, N_active); + } + break; + case REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC: + reb_particles_transform_inertial_to_democraticheliocentric_posvel(particles, ri_whfast->p_jh, N_real, N_active); + break; + case REB_WHFAST_COORDINATES_WHDS: + reb_particles_transform_inertial_to_whds_posvel(particles, ri_whfast->p_jh, N_real, N_active); + break; + case REB_WHFAST_COORDINATES_BARYCENTRIC: + reb_particles_transform_inertial_to_barycentric_posvel(particles, ri_whfast->p_jh, N_real, N_active); + break; + }; +} + +void reb_integrator_whfast_to_inertial(struct reb_simulation* const r){ + struct reb_integrator_whfast* const ri_whfast = &(r->ri_whfast); + struct reb_particle* restrict const particles = r->particles; + const int N = r->N; + const int N_real = N-r->N_var; + const int N_active = (r->N_active==-1 || r->testparticle_type==1)?N_real:r->N_active; + + // Prepare coordinates for KICK step + if (r->force_is_velocity_dependent){ + switch (ri_whfast->coordinates){ + case REB_WHFAST_COORDINATES_JACOBI: + reb_particles_transform_jacobi_to_inertial_posvel(particles, ri_whfast->p_jh, particles, N_real, N_active); + break; + case REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC: + reb_particles_transform_democraticheliocentric_to_inertial_posvel(particles, ri_whfast->p_jh, N_real, N_active); + break; + case REB_WHFAST_COORDINATES_WHDS: + reb_particles_transform_whds_to_inertial_posvel(particles, ri_whfast->p_jh, N_real, N_active); + break; + case REB_WHFAST_COORDINATES_BARYCENTRIC: + reb_particles_transform_barycentric_to_inertial_posvel(particles, ri_whfast->p_jh, N_real, N_active); + break; + }; + }else{ + switch (ri_whfast->coordinates){ + case REB_WHFAST_COORDINATES_JACOBI: + reb_particles_transform_jacobi_to_inertial_posvel(particles, ri_whfast->p_jh, particles, N_real, N_active); + break; + case REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC: + reb_particles_transform_democraticheliocentric_to_inertial_posvel(particles, ri_whfast->p_jh, N_real, N_active); + break; + case REB_WHFAST_COORDINATES_WHDS: + reb_particles_transform_whds_to_inertial_posvel(particles, ri_whfast->p_jh, N_real, N_active); + break; + case REB_WHFAST_COORDINATES_BARYCENTRIC: + reb_particles_transform_barycentric_to_inertial_posvel(particles, ri_whfast->p_jh, N_real, N_active); + break; + }; + } +} + +void reb_integrator_whfast_debug_operator_kepler(struct reb_simulation* const r,double dt){ + if (reb_integrator_whfast_init(r)){ + // Non recoverable error occured. + return; + } + reb_integrator_whfast_from_inertial(r); + reb_whfast_kepler_step(r, dt); // half timestep + reb_whfast_com_step(r, dt); + reb_integrator_whfast_to_inertial(r); +} + +void reb_integrator_whfast_debug_operator_interaction(struct reb_simulation* const r,double dt){ + if (reb_integrator_whfast_init(r)){ + // Non recoverable error occured. + return; + } + reb_integrator_whfast_from_inertial(r); + r->gravity_ignore_terms = 1; + reb_simulation_update_acceleration(r); + reb_whfast_interaction_step(r, dt); + reb_integrator_whfast_to_inertial(r); +} + +void reb_integrator_whfast_part1(struct reb_simulation* const r){ + struct reb_integrator_whfast* const ri_whfast = &(r->ri_whfast); + struct reb_particle* restrict const particles = r->particles; + const int N = r->N; + const int N_real = N-r->N_var; + const int N_active = (r->N_active==-1 || r->testparticle_type==1)?N_real:r->N_active; + if (reb_integrator_whfast_init(r)){ + // Non recoverable error occured. + return; + } + + // Only recalculate Jacobi coordinates if needed + if (ri_whfast->safe_mode || ri_whfast->recalculate_coordinates_this_timestep){ + if (ri_whfast->is_synchronized==0){ + reb_integrator_whfast_synchronize(r); + if (ri_whfast->recalculate_coordinates_but_not_synchronized_warning==0){ + reb_simulation_warning(r,"Recalculating coordinates but pos/vel were not synchronized before."); + ri_whfast->recalculate_coordinates_but_not_synchronized_warning++; + } + } + reb_integrator_whfast_from_inertial(r); + ri_whfast->recalculate_coordinates_this_timestep = 0; + } + if (ri_whfast->is_synchronized){ + // First half DRIFT step + if (ri_whfast->corrector){ + reb_whfast_apply_corrector(r, 1., ri_whfast->corrector); + } + if (ri_whfast->corrector2){ + reb_whfast_apply_corrector2(r, 1.); + } + switch (ri_whfast->kernel){ + case REB_WHFAST_KERNEL_DEFAULT: + case REB_WHFAST_KERNEL_MODIFIEDKICK: + case REB_WHFAST_KERNEL_LAZY: + reb_whfast_kepler_step(r, r->dt/2.); + reb_whfast_com_step(r, r->dt/2.); + break; + case REB_WHFAST_KERNEL_COMPOSITION: + reb_whfast_kepler_step(r, 5.*r->dt/8.); + reb_whfast_com_step(r, 5.*r->dt/8.); + break; + default: + reb_simulation_error(r, "WHFast kernel not implemented."); + return; + }; + }else{ + // Combined DRIFT step + reb_whfast_kepler_step(r, r->dt); // full timestep + reb_whfast_com_step(r, r->dt); + } + reb_whfast_jump_step(r,r->dt/2.); + + reb_integrator_whfast_to_inertial(r); + // Variational equations only available for jacobi coordinates. + // If other coordinates are used, the code will raise an exception in part1 of the integrator. + for (int v=0;vN_var_config;v++){ + struct reb_variational_configuration const vc = r->var_config[v]; + ri_whfast->p_jh[vc.index].x += r->dt/2.*ri_whfast->p_jh[vc.index].vx; + ri_whfast->p_jh[vc.index].y += r->dt/2.*ri_whfast->p_jh[vc.index].vy; + ri_whfast->p_jh[vc.index].z += r->dt/2.*ri_whfast->p_jh[vc.index].vz; + if (r->force_is_velocity_dependent){ + reb_particles_transform_jacobi_to_inertial_posvel(particles+vc.index, ri_whfast->p_jh+vc.index, particles, N_real, N_active); + }else{ + reb_particles_transform_jacobi_to_inertial_pos(particles+vc.index, ri_whfast->p_jh+vc.index, particles, N_real, N_active); + } + } + + r->t+=r->dt/2.; +} + +void reb_integrator_whfast_synchronize(struct reb_simulation* const r){ + struct reb_integrator_whfast* const ri_whfast = &(r->ri_whfast); + if (reb_integrator_whfast_init(r)){ + // Non recoverable error occured. + return; + } + if (ri_whfast->is_synchronized == 0){ + const int N_real = r->N-r->N_var; + const int N_active = (r->N_active==-1 || r->testparticle_type==1)?N_real:r->N_active; + struct reb_particle* sync_pj = NULL; + if (ri_whfast->keep_unsynchronized){ + sync_pj = malloc(sizeof(struct reb_particle)*r->N); + memcpy(sync_pj,r->ri_whfast.p_jh,r->N*sizeof(struct reb_particle)); + } + switch (ri_whfast->kernel){ + case REB_WHFAST_KERNEL_DEFAULT: + case REB_WHFAST_KERNEL_MODIFIEDKICK: + case REB_WHFAST_KERNEL_LAZY: + reb_whfast_kepler_step(r, r->dt/2.); + reb_whfast_com_step(r, r->dt/2.); + break; + case REB_WHFAST_KERNEL_COMPOSITION: + reb_whfast_kepler_step(r, 3.*r->dt/8.); + reb_whfast_com_step(r, 3.*r->dt/8.); + break; + default: + reb_simulation_error(r, "WHFast kernel not implemented."); + return; + }; + if (ri_whfast->corrector2){ + reb_whfast_apply_corrector2(r, -1.); + } + if (ri_whfast->corrector){ + reb_whfast_apply_corrector(r, -1., ri_whfast->corrector); + } + switch (ri_whfast->coordinates){ + case REB_WHFAST_COORDINATES_JACOBI: + reb_particles_transform_jacobi_to_inertial_posvel(r->particles, ri_whfast->p_jh, r->particles, N_real, N_active); + break; + case REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC: + reb_particles_transform_democraticheliocentric_to_inertial_posvel(r->particles, ri_whfast->p_jh, N_real, N_active); + break; + case REB_WHFAST_COORDINATES_WHDS: + reb_particles_transform_whds_to_inertial_posvel(r->particles, ri_whfast->p_jh, N_real, N_active); + break; + case REB_WHFAST_COORDINATES_BARYCENTRIC: + reb_particles_transform_barycentric_to_inertial_posvel(r->particles, ri_whfast->p_jh, N_real, N_active); + break; + }; + for (int v=0;vN_var_config;v++){ + struct reb_variational_configuration const vc = r->var_config[v]; + reb_particles_transform_jacobi_to_inertial_posvel(r->particles+vc.index, ri_whfast->p_jh+vc.index, r-> particles, N_real, N_active); + } + if (ri_whfast->keep_unsynchronized){ + memcpy(r->ri_whfast.p_jh,sync_pj,r->N*sizeof(struct reb_particle)); + free(sync_pj); + }else{ + ri_whfast->is_synchronized = 1; + } + } +} + +void reb_integrator_whfast_part2(struct reb_simulation* const r){ + struct reb_integrator_whfast* const ri_whfast = &(r->ri_whfast); + struct reb_particle* restrict const particles = r->particles; + struct reb_particle* const p_j = ri_whfast->p_jh; + const double dt = r->dt; + const unsigned int N = r->N; + const int N_real = r->N-r->N_var; + const int unsigned N_active = (r->N_active==-1 || r->testparticle_type==1)?N_real:r->N_active; + if (p_j==NULL){ + // Non recoverable error occured earlier. + // Skipping rest of integration to avoid segmentation fault. + return; + } + + switch (ri_whfast->kernel){ + case REB_WHFAST_KERNEL_DEFAULT: + reb_whfast_interaction_step(r, dt); + + reb_whfast_jump_step(r,dt/2.); + break; + case REB_WHFAST_KERNEL_MODIFIEDKICK: + // p_jh used as a temporary buffer for "jerk" + reb_whfast_calculate_jerk(r); + for (unsigned int i=0; iN_allocated_tmp != N){ + ri_whfast->N_allocated_tmp = N; + ri_whfast->p_temp = realloc(ri_whfast->p_temp,sizeof(struct reb_particle)*N); + } + struct reb_particle* p_temp = ri_whfast->p_temp; + + // Calculate normal kick + // Accelertions were already calculated before part2 gets called + reb_particles_transform_inertial_to_jacobi_acc(r->particles, p_j, r->particles, N, N_active); + + // make copy of original positions + memcpy(p_temp,p_j,r->N*sizeof(struct reb_particle)); + + // WHT Eq 10.6 + for (unsigned int i=1;iis_synchronized = 0; + if (ri_whfast->safe_mode){ + reb_integrator_whfast_synchronize(r); + } + + r->t+=r->dt/2.; + r->dt_last_done = r->dt; + + + if (r->N_var_config){ + // Need to have x,v,a synchronized to calculate ddot/d for MEGNO. + const int N_real = r->N-r->N_var; + struct reb_particle* sync_pj = NULL; + if (ri_whfast->keep_unsynchronized){ // cache the p_j and set back at the end + sync_pj = malloc(sizeof(struct reb_particle)*r->N); + memcpy(sync_pj,p_j,r->N*sizeof(struct reb_particle)); + ri_whfast->keep_unsynchronized=0; // synchronize will revert the p_j to midstep if keep_unsync=0. + reb_integrator_whfast_synchronize(r); + ri_whfast->keep_unsynchronized=1; // Manually avoid synchronize reverting the p_j and do it ourselves when we're done + } + else{ + reb_integrator_whfast_synchronize(r); + } + // Add additional acceleration term for MEGNO calculation + struct reb_particle* restrict const particles = r->particles; + for (int v=0;vN_var_config;v++){ + struct reb_variational_configuration const vc = r->var_config[v]; + struct reb_particle* const particles_var1 = particles + vc.index; + const int index = vc.index; + // Center of mass + p_j[index].x += r->dt/2.*p_j[index].vx; + p_j[index].y += r->dt/2.*p_j[index].vy; + p_j[index].z += r->dt/2.*p_j[index].vz; + reb_particles_transform_jacobi_to_inertial_posvel(particles_var1, p_j+index, particles, N_real, N_active); + if (r->calculate_megno){ + reb_calculate_acceleration_var(r); + const double dx = particles[0].x - particles[1].x; + const double dy = particles[0].y - particles[1].y; + const double dz = particles[0].z - particles[1].z; + const double r2 = dx*dx + dy*dy + dz*dz + r->softening*r->softening; + const double _r = sqrt(r2); + const double r3inv = 1./(r2*_r); + const double r5inv = 3.*r3inv/r2; + const double ddx = particles_var1[0].x - particles_var1[1].x; + const double ddy = particles_var1[0].y - particles_var1[1].y; + const double ddz = particles_var1[0].z - particles_var1[1].z; + const double Gmi = r->G * particles[0].m; + const double Gmj = r->G * particles[1].m; + const double dax = ddx * ( dx*dx*r5inv - r3inv ) + + ddy * ( dx*dy*r5inv ) + + ddz * ( dx*dz*r5inv ); + const double day = ddx * ( dy*dx*r5inv ) + + ddy * ( dy*dy*r5inv - r3inv ) + + ddz * ( dy*dz*r5inv ); + const double daz = ddx * ( dz*dx*r5inv ) + + ddy * ( dz*dy*r5inv ) + + ddz * ( dz*dz*r5inv - r3inv ); + + particles_var1[0].ax += Gmj * dax; + particles_var1[0].ay += Gmj * day; + particles_var1[0].az += Gmj * daz; + + particles_var1[1].ax -= Gmi * dax; + particles_var1[1].ay -= Gmi * day; + particles_var1[1].az -= Gmi * daz; + + // TODO Need to add mass terms. Also need to add them to tangent map above. + } + } + + // Update MEGNO in middle of timestep as we need synchonized x/v/a. + if (r->calculate_megno){ + double dY = r->dt * 2. * (r->t-r->megno_initial_t) * reb_tools_megno_deltad_delta(r); + reb_tools_megno_update(r, dY, dt); + } + if (ri_whfast->keep_unsynchronized){ + memcpy(p_j,sync_pj,r->N*sizeof(struct reb_particle)); + free(sync_pj); + ri_whfast->is_synchronized=0; + } + } +} + +void reb_integrator_whfast_reset(struct reb_simulation* const r){ + struct reb_integrator_whfast* const ri_whfast = &(r->ri_whfast); + ri_whfast->corrector = 0; + ri_whfast->corrector2 = 0; + ri_whfast->kernel = 0; + ri_whfast->coordinates = REB_WHFAST_COORDINATES_JACOBI; + ri_whfast->is_synchronized = 1; + ri_whfast->keep_unsynchronized = 0; + ri_whfast->safe_mode = 1; + ri_whfast->recalculate_coordinates_this_timestep = 0; + ri_whfast->N_allocated = 0; + ri_whfast->N_allocated_tmp = 0; + ri_whfast->timestep_warning = 0; + ri_whfast->recalculate_coordinates_but_not_synchronized_warning = 0; + if (ri_whfast->p_jh){ + free(ri_whfast->p_jh); + ri_whfast->p_jh = NULL; + } + if (ri_whfast->p_temp){ + free(ri_whfast->p_temp); + ri_whfast->p_temp = NULL; + } +} diff --git a/rebound/source/src/integrator_whfast.h b/rebound/source/src/integrator_whfast.h new file mode 100644 index 0000000000000000000000000000000000000000..8d03ca0e73d8554ab30bff93cfcb3b7680dcfdac --- /dev/null +++ b/rebound/source/src/integrator_whfast.h @@ -0,0 +1,36 @@ +/** + * @file integrator_whfast.h + * @brief Interface for numerical particle integrator + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2015 Hanno Rein, Daniel Tamayo + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _INTEGRATOR_WHFAST_H +#define _INTEGRATOR_WHFAST_H + +#include "rebound.h" + +void reb_integrator_whfast_part1(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_whfast_part2(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_whfast_synchronize(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_whfast_calculate_jerk(struct reb_simulation* r); ///< Calculates "jerk" term +int reb_integrator_whfast_init(struct reb_simulation* r); ///< Init routine (also used by WHFast512) + +#endif diff --git a/rebound/source/src/integrator_whfast512.c b/rebound/source/src/integrator_whfast512.c new file mode 100644 index 0000000000000000000000000000000000000000..1554f94002874ac42728b42701a5c5c386a613c6 --- /dev/null +++ b/rebound/source/src/integrator_whfast512.c @@ -0,0 +1,1131 @@ +/** + * @file integrator_whfast.c + * @brief WHFAST512 integration scheme. + * @author Hanno Rein + * Pejvak Javaheri + * @details This file implements the WHFast512 integration scheme with + * optimizations for AVX512. + * + * @section LICENSE + * Copyright (c) 2023 Hanno Rein, Pejvak Javaheri + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#include +#include +#include +#include "rebound.h" +#include "particle.h" +#include "tools.h" +#include "gravity.h" +#include "boundary.h" +#include "integrator.h" +#include "integrator_whfast.h" +#include "integrator_whfast512.h" + +#ifdef PROF +// Profiling counters +double walltime_interaction=0;; +double walltime_kepler=0; +double walltime_jump=0; +double walltime_com=0; +#endif + +// Performs one full center of mass step (H_0) +static void reb_whfast512_com_step(struct reb_simulation* r, const double _dt){ +#ifdef PROF + struct reb_timeval time_beginning; + gettimeofday(&time_beginning,NULL); +#endif + const unsigned int N_systems = r->ri_whfast512.N_systems; + for (int s=0; sri_whfast512.p_jh0[s].x += _dt*r->ri_whfast512.p_jh0[s].vx; + r->ri_whfast512.p_jh0[s].y += _dt*r->ri_whfast512.p_jh0[s].vy; + r->ri_whfast512.p_jh0[s].z += _dt*r->ri_whfast512.p_jh0[s].vz; + } +#ifdef PROF + struct reb_timeval time_end; + gettimeofday(&time_end,NULL); + walltime_com += time_end.tv_sec-time_beginning.tv_sec+(time_end.tv_usec-time_beginning.tv_usec)/1e6; +#endif +} + +// Convert democratic heliocentric coordinates to inertial coordinates +// Note: this is only called at the end. Speed is not a concern. +static void democraticheliocentric_to_inertial_posvel(struct reb_simulation* r){ + struct reb_integrator_whfast512* const ri_whfast512 = &(r->ri_whfast512); + struct reb_particle* particles = r->particles; + struct reb_particle_avx512* p_jh = ri_whfast512->p_jh; + const unsigned int N_systems = ri_whfast512->N_systems; + const unsigned int p_per_system = 8/N_systems; + const unsigned int N_per_system = r->N/N_systems; + + +#ifdef AVX512 + double m[8]; + double x[8]; + double y[8]; + double z[8]; + double vx[8]; + double vy[8]; + double vz[8]; + _mm512_storeu_pd(&m, p_jh->m); + _mm512_storeu_pd(&x, p_jh->x); + _mm512_storeu_pd(&y, p_jh->y); + _mm512_storeu_pd(&z, p_jh->z); + _mm512_storeu_pd(&vx, p_jh->vx); + _mm512_storeu_pd(&vy, p_jh->vy); + _mm512_storeu_pd(&vz, p_jh->vz); +#else // AVX512 + // Fallback for synchronization for when AVX512 is not available + double* m = (double*)p_jh->m; + double* x = (double*)p_jh->x; + double* y = (double*)p_jh->y; + double* z = (double*)p_jh->z; + double* vx = p_jh->vx; + double* vy = p_jh->vy; + double* vz = p_jh->vz; +#endif // AVX512 + + for (unsigned s=0;sp_jh0[s].vx; + particles[s*N_per_system+i].vy = vy[s*p_per_system+(i-1)] + ri_whfast512->p_jh0[s].vy; + particles[s*N_per_system+i].vz = vz[s*p_per_system+(i-1)] + ri_whfast512->p_jh0[s].vz; + } + x0s /= ri_whfast512->p_jh0[s].m; + y0s /= ri_whfast512->p_jh0[s].m; + z0s /= ri_whfast512->p_jh0[s].m; + particles[s*N_per_system].x = ri_whfast512->p_jh0[s].x - x0s; + particles[s*N_per_system].y = ri_whfast512->p_jh0[s].y - y0s; + particles[s*N_per_system].z = ri_whfast512->p_jh0[s].z - z0s; + particles[s*N_per_system].vx = ri_whfast512->p_jh0[s].vx - vx0s; + particles[s*N_per_system].vy = ri_whfast512->p_jh0[s].vy - vy0s; + particles[s*N_per_system].vz = ri_whfast512->p_jh0[s].vz - vz0s; + for (unsigned int i=1; i=3;np-=2){ + *Gs3 = _mm512_fnmadd_pd(z, *Gs3, invfactorial512[np]); + *Gs2 = _mm512_fnmadd_pd(z, *Gs2, invfactorial512[np-1]); + } + *Gs3 = _mm512_mul_pd(*Gs3,X); + *Gs1 = _mm512_fnmadd_pd(z, *Gs3, X); + *Gs3 = _mm512_mul_pd(*Gs3,X2); + *Gs2 = _mm512_mul_pd(*Gs2,X2); +}; + +// Stiefel function for Halley's method, returning Gs0, Gs1, Gs2, and Gs3 +static void inline mm_stiefel_Gs03_avx512(__m512d * Gs0, __m512d * Gs1, __m512d * Gs2, __m512d * Gs3, __m512d beta, __m512d X){ + __m512d X2 = _mm512_mul_pd(X,X); + __m512d z = _mm512_mul_pd(X2,beta); + + // stumpff_cs. Note: assuming n = 0 + const int nmax = 11; // Note: reduced! needs to be improved with mm_stiefel_Gs13_avx512 on last step(s) + *Gs3 = invfactorial512[nmax]; + *Gs2 = invfactorial512[nmax-1]; + + for(int np=nmax-2;np>=3;np-=2){ + *Gs3 = _mm512_fnmadd_pd(z, *Gs3, invfactorial512[np]); + *Gs2 = _mm512_fnmadd_pd(z, *Gs2, invfactorial512[np-1]); + } + *Gs0 = _mm512_fnmadd_pd(z, *Gs2, one); + *Gs3 = _mm512_mul_pd(*Gs3,X); + *Gs1 = _mm512_fnmadd_pd(z, *Gs3, X); + *Gs3 = _mm512_mul_pd(*Gs3,X2); + *Gs2 = _mm512_mul_pd(*Gs2,X2); +}; + +// Performs one full Kepler step +static void inline reb_whfast512_kepler_step(const struct reb_simulation* const r, const double dt){ +#ifdef PROF + struct reb_timeval time_beginning; + gettimeofday(&time_beginning,NULL); +#endif + struct reb_particle_avx512 * restrict p512 = r->ri_whfast512.p_jh; + __m512d _dt = _mm512_set1_pd(dt); + + __m512d r2 = _mm512_mul_pd(p512->x, p512->x); + r2 = _mm512_fmadd_pd(p512->y, p512->y, r2); + r2 = _mm512_fmadd_pd(p512->z, p512->z, r2); + __m512d r0 = _mm512_sqrt_pd(r2); + __m512d r0i = _mm512_div_pd(one,r0); + + __m512d v2 = _mm512_mul_pd(p512->vx, p512->vx); + v2 = _mm512_fmadd_pd(p512->vy, p512->vy, v2); + v2 = _mm512_fmadd_pd(p512->vz, p512->vz, v2); + + __m512d beta = _mm512_mul_pd(two, _M); + beta = _mm512_fmsub_pd(beta, r0i, v2); + + __m512d eta0 = _mm512_mul_pd(p512->x, p512->vx); + eta0 = _mm512_fmadd_pd(p512->y, p512->vy, eta0); + eta0 = _mm512_fmadd_pd(p512->z, p512->vz, eta0); + + __m512d zeta0 = _mm512_fnmadd_pd(beta, r0, _M); + + __m512d Gs1; + __m512d Gs2; + __m512d Gs3; + __m512d eta0Gs1zeta0Gs2; + __m512d ri; + +#define NEWTON_STEP() \ + mm_stiefel_Gs13_avx512(&Gs1, &Gs2, &Gs3, beta, X);\ + eta0Gs1zeta0Gs2 = _mm512_mul_pd(eta0, Gs1); \ + eta0Gs1zeta0Gs2 = _mm512_fmadd_pd(zeta0,Gs2, eta0Gs1zeta0Gs2); \ + ri = _mm512_add_pd(r0, eta0Gs1zeta0Gs2); \ + ri = _mm512_div_pd(one, ri); \ + \ + X = _mm512_mul_pd(X, eta0Gs1zeta0Gs2);\ + X = _mm512_fnmadd_pd(eta0, Gs2, X);\ + X = _mm512_fnmadd_pd(zeta0, Gs3, X);\ + X = _mm512_add_pd(_dt, X);\ + X = _mm512_mul_pd(ri, X); + + +#define HALLEY_STEP() \ + mm_stiefel_Gs03_avx512(&Gs0, &Gs1, &Gs2, &Gs3, beta, X);\ + f = _mm512_fmsub_pd(r0,X,_dt);\ + f = _mm512_fmadd_pd(eta0, Gs2, f);\ + f = _mm512_fmadd_pd(zeta0, Gs3, f);\ + \ + fp = _mm512_fmadd_pd(eta0, Gs1, r0);\ + fp = _mm512_fmadd_pd(zeta0, Gs2, fp);\ + \ + fpp = _mm512_mul_pd(eta0, Gs0);\ + fpp = _mm512_fmadd_pd(zeta0, Gs1, fpp);\ + \ + denom = _mm512_mul_pd(fp,fp);\ + denom = _mm512_mul_pd(denom,sixteen);\ + \ + denom = _mm512_fnmadd_pd(_mm512_mul_pd(f,fpp),twenty, denom);\ + /* not included: _mm512_abs_pd(denom) */;\ + denom = _mm512_sqrt_pd(denom);\ + denom = _mm512_add_pd(fp, denom);\ + \ + X = _mm512_fmsub_pd(X, denom, _mm512_mul_pd(f, five));\ + X = _mm512_div_pd(X, denom); + + // Initial guess + __m512d dtr0i = _mm512_mul_pd(_dt,r0i); + __m512d X = _mm512_mul_pd(dtr0i,eta0); + X = _mm512_mul_pd(X,half); + X = _mm512_fnmadd_pd(X,r0i,one); + X = _mm512_mul_pd(dtr0i,X); + + // Iterations + __m512d f, fp, fpp, denom, Gs0; + HALLEY_STEP(); + HALLEY_STEP(); + NEWTON_STEP(); + // +1 below + + // Final Newton step (note: X not needed after this) + mm_stiefel_Gs13_avx512(&Gs1, &Gs2, &Gs3, beta, X); + eta0Gs1zeta0Gs2 = _mm512_mul_pd(eta0, Gs1); + eta0Gs1zeta0Gs2 = _mm512_fmadd_pd(zeta0,Gs2, eta0Gs1zeta0Gs2); + ri = _mm512_add_pd(r0, eta0Gs1zeta0Gs2); + ri = _mm512_div_pd(one, ri); + + // f and g function + + __m512d nf = _mm512_mul_pd(_M,Gs2); //negative f + nf = _mm512_mul_pd(nf,r0i); + + __m512d g = _mm512_fnmadd_pd(_M, Gs3, _dt); + + __m512d nfd = _mm512_mul_pd(_M, Gs1); // negative fd + nfd = _mm512_mul_pd(nfd, r0i); + nfd = _mm512_mul_pd(nfd, ri); + + __m512d ngd = _mm512_mul_pd(_M, Gs2); // negative gd + ngd = _mm512_mul_pd(ngd, ri); + + __m512d nx = _mm512_fnmadd_pd(nf, p512->x, p512->x); + nx = _mm512_fmadd_pd(g, p512->vx, nx); + __m512d ny = _mm512_fnmadd_pd(nf, p512->y, p512->y); + ny = _mm512_fmadd_pd(g, p512->vy, ny); + __m512d nz = _mm512_fnmadd_pd(nf, p512->z, p512->z); + nz = _mm512_fmadd_pd(g, p512->vz, nz); + + p512->vx = _mm512_fnmadd_pd(ngd, p512->vx, p512->vx); + p512->vx = _mm512_fnmadd_pd(nfd, p512->x, p512->vx); + p512->vy = _mm512_fnmadd_pd(ngd, p512->vy, p512->vy); + p512->vy = _mm512_fnmadd_pd(nfd, p512->y, p512->vy); + p512->vz = _mm512_fnmadd_pd(ngd, p512->vz, p512->vz); + p512->vz = _mm512_fnmadd_pd(nfd, p512->z, p512->vz); + + p512->x = nx; + p512->y = ny; + p512->z = nz; +#ifdef PROF + struct reb_timeval time_end; + gettimeofday(&time_end,NULL); + walltime_kepler += time_end.tv_sec-time_beginning.tv_sec+(time_end.tv_usec-time_beginning.tv_usec)/1e6; +#endif +} + +// Helper functions for the interaction step +static __m512d inline gravity_prefactor_avx512_one( __m512d dx, __m512d dy, __m512d dz) { + __m512d r2 = _mm512_mul_pd(dx, dx); + r2 = _mm512_fmadd_pd(dy,dy, r2); + r2 = _mm512_fmadd_pd(dz,dz, r2); + const __m512d r = _mm512_sqrt_pd(r2); + const __m512d r3 = _mm512_mul_pd(r, r2); + return _mm512_div_pd(one,r3); +} + +static __m512d inline gravity_prefactor_avx512( __m512d m, __m512d dx, __m512d dy, __m512d dz) { + __m512d r2 = _mm512_mul_pd(dx, dx); + r2 = _mm512_fmadd_pd(dy,dy, r2); + r2 = _mm512_fmadd_pd(dz,dz, r2); + const __m512d r = _mm512_sqrt_pd(r2); + const __m512d r3 = _mm512_mul_pd(r, r2); + return _mm512_div_pd(m,r3); +} + +// Performs one full interaction step +static void reb_whfast512_interaction_step_8planets(struct reb_simulation * r, double dt){ +#ifdef PROF + struct reb_timeval time_beginning; + gettimeofday(&time_beginning,NULL); +#endif + struct reb_integrator_whfast512* const ri_whfast512 = &(r->ri_whfast512); + struct reb_particle_avx512* restrict p_jh = ri_whfast512->p_jh; + + __m512d x_j = p_jh->x; + __m512d y_j = p_jh->y; + __m512d z_j = p_jh->z; + __m512d dt512 = _mm512_set1_pd(dt); + + // General relativistic corrections + if (ri_whfast512->gr_potential){ + __m512d r2 = _mm512_mul_pd(x_j, x_j); + r2 = _mm512_fmadd_pd(y_j, y_j, r2); + r2 = _mm512_fmadd_pd(z_j, z_j, r2); + const __m512d r4 = _mm512_mul_pd(r2, r2); + __m512d prefac = _mm512_div_pd(gr_prefac,r4); + prefac = _mm512_mul_pd(prefac, dt512); + __m512d dvx = _mm512_mul_pd(prefac, x_j); + __m512d dvy = _mm512_mul_pd(prefac, y_j); + __m512d dvz = _mm512_mul_pd(prefac, z_j); + p_jh->vx = _mm512_sub_pd(p_jh->vx, dvx); + p_jh->vy = _mm512_sub_pd(p_jh->vy, dvy); + p_jh->vz = _mm512_sub_pd(p_jh->vz, dvz); + + // Calculate back reaction onto star and apply them to planets (heliocentric) + dvx = _mm512_mul_pd(gr_prefac2, dvx); + dvy = _mm512_mul_pd(gr_prefac2, dvy); + dvz = _mm512_mul_pd(gr_prefac2, dvz); + + dvx = _mm512_add_pd(_mm512_shuffle_pd(dvx, dvx, 0x55), dvx); // Swapping neighbouring elements + dvx = _mm512_add_pd(_mm512_permutex_pd(dvx, _MM_PERM_ABCD), dvx); + dvx = _mm512_add_pd(_mm512_shuffle_f64x2(dvx,dvx, 78), dvx); + dvy = _mm512_add_pd(_mm512_shuffle_pd(dvy, dvy, 0x55), dvy); + dvy = _mm512_add_pd(_mm512_permutex_pd(dvy, _MM_PERM_ABCD), dvy); + dvy = _mm512_add_pd(_mm512_shuffle_f64x2(dvy,dvy, 78), dvy); + dvz = _mm512_add_pd(_mm512_shuffle_pd(dvz, dvz, 0x55), dvz); + dvz = _mm512_add_pd(_mm512_permutex_pd(dvz, _MM_PERM_ABCD), dvz); + dvz = _mm512_add_pd(_mm512_shuffle_f64x2(dvz,dvz, 78), dvz); + + p_jh->vx = _mm512_sub_pd(p_jh->vx, dvx); + p_jh->vy = _mm512_sub_pd(p_jh->vy, dvy); + p_jh->vz = _mm512_sub_pd(p_jh->vz, dvz); + } + + + + __m512d m_j = _mm512_mul_pd(p_jh->m, dt512); + __m512d m_j_01234567 = m_j; + + { + x_j = _mm512_permutex_pd(x_j, _MM_PERM_BACD); // within 256 + y_j = _mm512_permutex_pd(y_j, _MM_PERM_BACD); + z_j = _mm512_permutex_pd(z_j, _MM_PERM_BACD); + m_j = _mm512_permutex_pd(m_j, _MM_PERM_BACD); + __m512d dx_j = _mm512_sub_pd(p_jh->x, x_j); + __m512d dy_j = _mm512_sub_pd(p_jh->y, y_j); + __m512d dz_j = _mm512_sub_pd(p_jh->z, z_j); + __m512d prefact = gravity_prefactor_avx512_one(dx_j, dy_j, dz_j); + + // 0123 4567 + // 3201 7645 + __m512d prefact1 = _mm512_mul_pd(prefact, m_j); + p_jh->vx = _mm512_fnmadd_pd(prefact1, dx_j, p_jh->vx); + p_jh->vy = _mm512_fnmadd_pd(prefact1, dy_j, p_jh->vy); + p_jh->vz = _mm512_fnmadd_pd(prefact1, dz_j, p_jh->vz); + + + dx_j = _mm512_permutex_pd(dx_j, _MM_PERM_ABDC); // within 256 + dy_j = _mm512_permutex_pd(dy_j, _MM_PERM_ABDC); + dz_j = _mm512_permutex_pd(dz_j, _MM_PERM_ABDC); + prefact = _mm512_permutex_pd(prefact, _MM_PERM_ABDC); + m_j = _mm512_permute_pd(m_j, 0x55); // within 128 + + // 0123 4567 + // 2310 6754 + __m512d prefact2 = _mm512_mul_pd(prefact, m_j); + p_jh->vx = _mm512_fmadd_pd(prefact2, dx_j, p_jh->vx); + p_jh->vy = _mm512_fmadd_pd(prefact2, dy_j, p_jh->vy); + p_jh->vz = _mm512_fmadd_pd(prefact2, dz_j, p_jh->vz); + } + { + x_j = _mm512_permutex_pd(x_j, _MM_PERM_BACD); // within 256 + y_j = _mm512_permutex_pd(y_j, _MM_PERM_BACD); + z_j = _mm512_permutex_pd(z_j, _MM_PERM_BACD); + m_j = _mm512_permutex_pd(m_j, _MM_PERM_ABDC); + + const __m512d dx_j = _mm512_sub_pd(p_jh->x, x_j); + const __m512d dy_j = _mm512_sub_pd(p_jh->y, y_j); + const __m512d dz_j = _mm512_sub_pd(p_jh->z, z_j); + + // 0123 4567 + // 1032 5476 + const __m512d prefact = gravity_prefactor_avx512(m_j, dx_j, dy_j, dz_j); + p_jh->vx = _mm512_fnmadd_pd(prefact, dx_j, p_jh->vx); + p_jh->vy = _mm512_fnmadd_pd(prefact, dy_j, p_jh->vy); + p_jh->vz = _mm512_fnmadd_pd(prefact, dz_j, p_jh->vz); + } + + // ////////////////////////////////////// + // 256 bit lane crossing + // ////////////////////////////////////// + + __m512d dvx; // delta vx for 4567 1230 + __m512d dvy; + __m512d dvz; + + { + x_j = _mm512_permutexvar_pd(so1, x_j); // accros 512 + y_j = _mm512_permutexvar_pd(so1, y_j); + z_j = _mm512_permutexvar_pd(so1, z_j); + m_j = _mm512_permutexvar_pd(so1, m_j); + + __m512d dx_j = _mm512_sub_pd(p_jh->x, x_j); + __m512d dy_j = _mm512_sub_pd(p_jh->y, y_j); + __m512d dz_j = _mm512_sub_pd(p_jh->z, z_j); + __m512d prefact = gravity_prefactor_avx512_one(dx_j, dy_j, dz_j); + + // 0123 4567 + // 4567 1230 + __m512d prefact1 = _mm512_mul_pd(prefact, m_j); + p_jh->vx = _mm512_fnmadd_pd(prefact1, dx_j, p_jh->vx); + p_jh->vy = _mm512_fnmadd_pd(prefact1, dy_j, p_jh->vy); + p_jh->vz = _mm512_fnmadd_pd(prefact1, dz_j, p_jh->vz); + + + // 4567 1230 + // 0123 4567 + prefact = _mm512_mul_pd(prefact, m_j_01234567); + dvx = _mm512_mul_pd(prefact, dx_j); + dvy = _mm512_mul_pd(prefact, dy_j); + dvz = _mm512_mul_pd(prefact, dz_j); + + } + + { + x_j = _mm512_permutex_pd(x_j, _MM_PERM_ADCB); // within 256 + y_j = _mm512_permutex_pd(y_j, _MM_PERM_ADCB); + z_j = _mm512_permutex_pd(z_j, _MM_PERM_ADCB); + m_j = _mm512_permutex_pd(m_j, _MM_PERM_ADCB); + + __m512d dx_j = _mm512_sub_pd(p_jh->x, x_j); + __m512d dy_j = _mm512_sub_pd(p_jh->y, y_j); + __m512d dz_j = _mm512_sub_pd(p_jh->z, z_j); + __m512d prefact = gravity_prefactor_avx512_one(dx_j, dy_j, dz_j); + + // 0123 4567 + // 5674 2301 + __m512d prefact1 = _mm512_mul_pd(prefact, m_j); + p_jh->vx = _mm512_fnmadd_pd(prefact1, dx_j, p_jh->vx); + p_jh->vy = _mm512_fnmadd_pd(prefact1, dy_j, p_jh->vy); + p_jh->vz = _mm512_fnmadd_pd(prefact1, dz_j, p_jh->vz); + + + + dx_j = _mm512_permutex_pd(dx_j, _MM_PERM_CBAD); // within 256 + dy_j = _mm512_permutex_pd(dy_j, _MM_PERM_CBAD); + dz_j = _mm512_permutex_pd(dz_j, _MM_PERM_CBAD); + prefact = _mm512_permutex_pd(prefact, _MM_PERM_CBAD); + m_j_01234567 = _mm512_permutex_pd(m_j_01234567, _MM_PERM_CBAD); + + // 4567 1230 + // 3012 7456 + prefact = _mm512_mul_pd(prefact, m_j_01234567); + dvx = _mm512_fmadd_pd(prefact, dx_j, dvx); + dvy = _mm512_fmadd_pd(prefact, dy_j, dvy); + dvz = _mm512_fmadd_pd(prefact, dz_j, dvz); + + } + + // ////////////////////////////////////// + // 256 bit lane crossing for final add + // ////////////////////////////////////// + + { + dvx = _mm512_permutexvar_pd(so2, dvx); //across 512 + dvy = _mm512_permutexvar_pd(so2, dvy); + dvz = _mm512_permutexvar_pd(so2, dvz); + + p_jh->vx = _mm512_add_pd(dvx, p_jh->vx); + p_jh->vy = _mm512_add_pd(dvy, p_jh->vy); + p_jh->vz = _mm512_add_pd(dvz, p_jh->vz); + } + +#ifdef PROF + struct reb_timeval time_end; + gettimeofday(&time_end,NULL); + walltime_interaction += time_end.tv_sec-time_beginning.tv_sec+(time_end.tv_usec-time_beginning.tv_usec)/1e6; +#endif +} + +// Performs one full interaction step +static void reb_whfast512_interaction_step_4planets(struct reb_simulation * r, double dt){ +#ifdef PROF + struct reb_timeval time_beginning; + gettimeofday(&time_beginning,NULL); +#endif + struct reb_integrator_whfast512* const ri_whfast512 = &(r->ri_whfast512); + struct reb_particle_avx512* restrict p_jh = ri_whfast512->p_jh; + + __m512d x_j = p_jh->x; + __m512d y_j = p_jh->y; + __m512d z_j = p_jh->z; + __m512d dt512 = _mm512_set1_pd(dt); + + // General relativistic corrections + if (ri_whfast512->gr_potential){ + __m512d r2 = _mm512_mul_pd(x_j, x_j); + r2 = _mm512_fmadd_pd(y_j, y_j, r2); + r2 = _mm512_fmadd_pd(z_j, z_j, r2); + const __m512d r4 = _mm512_mul_pd(r2, r2); + __m512d prefac = _mm512_div_pd(gr_prefac,r4); + prefac = _mm512_mul_pd(prefac, dt512); + __m512d dvx = _mm512_mul_pd(prefac, x_j); + __m512d dvy = _mm512_mul_pd(prefac, y_j); + __m512d dvz = _mm512_mul_pd(prefac, z_j); + p_jh->vx = _mm512_sub_pd(p_jh->vx, dvx); + p_jh->vy = _mm512_sub_pd(p_jh->vy, dvy); + p_jh->vz = _mm512_sub_pd(p_jh->vz, dvz); + + // Calculate back reaction onto star and apply them to planets (heliocentric) + dvx = _mm512_mul_pd(gr_prefac2, dvx); + dvy = _mm512_mul_pd(gr_prefac2, dvy); + dvz = _mm512_mul_pd(gr_prefac2, dvz); + + dvx = _mm512_add_pd(_mm512_shuffle_pd(dvx, dvx, 0x55), dvx); // Swapping neighbouring elements + dvx = _mm512_add_pd(_mm512_permutex_pd(dvx, _MM_PERM_ABCD), dvx); + dvy = _mm512_add_pd(_mm512_shuffle_pd(dvy, dvy, 0x55), dvy); + dvy = _mm512_add_pd(_mm512_permutex_pd(dvy, _MM_PERM_ABCD), dvy); + dvz = _mm512_add_pd(_mm512_shuffle_pd(dvz, dvz, 0x55), dvz); + dvz = _mm512_add_pd(_mm512_permutex_pd(dvz, _MM_PERM_ABCD), dvz); + + p_jh->vx = _mm512_sub_pd(p_jh->vx, dvx); + p_jh->vy = _mm512_sub_pd(p_jh->vy, dvy); + p_jh->vz = _mm512_sub_pd(p_jh->vz, dvz); + } + + + + __m512d m_j = _mm512_mul_pd(p_jh->m, dt512); + + { + x_j = _mm512_permutex_pd(x_j, _MM_PERM_BACD); // within 256 + y_j = _mm512_permutex_pd(y_j, _MM_PERM_BACD); + z_j = _mm512_permutex_pd(z_j, _MM_PERM_BACD); + m_j = _mm512_permutex_pd(m_j, _MM_PERM_BACD); + __m512d dx_j = _mm512_sub_pd(p_jh->x, x_j); + __m512d dy_j = _mm512_sub_pd(p_jh->y, y_j); + __m512d dz_j = _mm512_sub_pd(p_jh->z, z_j); + __m512d prefact = gravity_prefactor_avx512_one(dx_j, dy_j, dz_j); + + // 0123 4567 + // 3201 7645 + __m512d prefact1 = _mm512_mul_pd(prefact, m_j); + p_jh->vx = _mm512_fnmadd_pd(prefact1, dx_j, p_jh->vx); + p_jh->vy = _mm512_fnmadd_pd(prefact1, dy_j, p_jh->vy); + p_jh->vz = _mm512_fnmadd_pd(prefact1, dz_j, p_jh->vz); + + + dx_j = _mm512_permutex_pd(dx_j, _MM_PERM_ABDC); // within 256 + dy_j = _mm512_permutex_pd(dy_j, _MM_PERM_ABDC); + dz_j = _mm512_permutex_pd(dz_j, _MM_PERM_ABDC); + prefact = _mm512_permutex_pd(prefact, _MM_PERM_ABDC); + m_j = _mm512_permute_pd(m_j, 0x55); // within 128 + + // 0123 4567 + // 2310 6754 + __m512d prefact2 = _mm512_mul_pd(prefact, m_j); + p_jh->vx = _mm512_fmadd_pd(prefact2, dx_j, p_jh->vx); + p_jh->vy = _mm512_fmadd_pd(prefact2, dy_j, p_jh->vy); + p_jh->vz = _mm512_fmadd_pd(prefact2, dz_j, p_jh->vz); + } + { + x_j = _mm512_permutex_pd(x_j, _MM_PERM_BACD); // within 256 + y_j = _mm512_permutex_pd(y_j, _MM_PERM_BACD); + z_j = _mm512_permutex_pd(z_j, _MM_PERM_BACD); + m_j = _mm512_permutex_pd(m_j, _MM_PERM_ABDC); + + const __m512d dx_j = _mm512_sub_pd(p_jh->x, x_j); + const __m512d dy_j = _mm512_sub_pd(p_jh->y, y_j); + const __m512d dz_j = _mm512_sub_pd(p_jh->z, z_j); + + // 0123 4567 + // 1032 5476 + const __m512d prefact = gravity_prefactor_avx512(m_j, dx_j, dy_j, dz_j); + p_jh->vx = _mm512_fnmadd_pd(prefact, dx_j, p_jh->vx); + p_jh->vy = _mm512_fnmadd_pd(prefact, dy_j, p_jh->vy); + p_jh->vz = _mm512_fnmadd_pd(prefact, dz_j, p_jh->vz); + } + + +#ifdef PROF + struct reb_timeval time_end; + gettimeofday(&time_end,NULL); + walltime_interaction += time_end.tv_sec-time_beginning.tv_sec+(time_end.tv_usec-time_beginning.tv_usec)/1e6; +#endif +} + +static void reb_whfast512_interaction_step_2planets(struct reb_simulation * r, double dt){ +#ifdef PROF + struct reb_timeval time_beginning; + gettimeofday(&time_beginning,NULL); +#endif + struct reb_integrator_whfast512* const ri_whfast512 = &(r->ri_whfast512); + struct reb_particle_avx512* restrict p_jh = ri_whfast512->p_jh; + + __m512d x_j = p_jh->x; + __m512d y_j = p_jh->y; + __m512d z_j = p_jh->z; + __m512d dt512 = _mm512_set1_pd(dt); + + // General relativistic corrections + if (ri_whfast512->gr_potential){ + __m512d r2 = _mm512_mul_pd(x_j, x_j); + r2 = _mm512_fmadd_pd(y_j, y_j, r2); + r2 = _mm512_fmadd_pd(z_j, z_j, r2); + const __m512d r4 = _mm512_mul_pd(r2, r2); + __m512d prefac = _mm512_div_pd(gr_prefac,r4); + prefac = _mm512_mul_pd(prefac, dt512); + __m512d dvx = _mm512_mul_pd(prefac, x_j); + __m512d dvy = _mm512_mul_pd(prefac, y_j); + __m512d dvz = _mm512_mul_pd(prefac, z_j); + p_jh->vx = _mm512_sub_pd(p_jh->vx, dvx); + p_jh->vy = _mm512_sub_pd(p_jh->vy, dvy); + p_jh->vz = _mm512_sub_pd(p_jh->vz, dvz); + + // Calculate back reaction onto star and apply them to planets (heliocentric) + dvx = _mm512_mul_pd(gr_prefac2, dvx); + dvy = _mm512_mul_pd(gr_prefac2, dvy); + dvz = _mm512_mul_pd(gr_prefac2, dvz); + + dvx = _mm512_add_pd(_mm512_shuffle_pd(dvx, dvx, 0x55), dvx); // Swapping neighbouring elements + dvy = _mm512_add_pd(_mm512_shuffle_pd(dvy, dvy, 0x55), dvy); + dvz = _mm512_add_pd(_mm512_shuffle_pd(dvz, dvz, 0x55), dvz); + + p_jh->vx = _mm512_sub_pd(p_jh->vx, dvx); + p_jh->vy = _mm512_sub_pd(p_jh->vy, dvy); + p_jh->vz = _mm512_sub_pd(p_jh->vz, dvz); + } + + + + __m512d m_j = _mm512_mul_pd(p_jh->m, dt512); + + { + __m512d dx_j = _mm512_sub_pd(p_jh->x, _mm512_shuffle_pd(x_j, x_j, 0x55)); + __m512d dy_j = _mm512_sub_pd(p_jh->y, _mm512_shuffle_pd(y_j, y_j, 0x55)); + __m512d dz_j = _mm512_sub_pd(p_jh->z, _mm512_shuffle_pd(z_j, z_j, 0x55)); + m_j = _mm512_shuffle_pd(m_j, m_j, 0x55); + + __m512d prefact = gravity_prefactor_avx512_one(dx_j, dy_j, dz_j); + + __m512d prefact1 = _mm512_mul_pd(prefact, m_j); + p_jh->vx = _mm512_fnmadd_pd(prefact1, dx_j, p_jh->vx); + p_jh->vy = _mm512_fnmadd_pd(prefact1, dy_j, p_jh->vy); + p_jh->vz = _mm512_fnmadd_pd(prefact1, dz_j, p_jh->vz); + } + + +#ifdef PROF + struct reb_timeval time_end; + gettimeofday(&time_end,NULL); + walltime_interaction += time_end.tv_sec-time_beginning.tv_sec+(time_end.tv_usec-time_beginning.tv_usec)/1e6; +#endif +} + + + +// Convert inertial coordinates to democratic heliocentric coordinates +// Note: this is only called at the beginning. Speed is not a concern. +static void inertial_to_democraticheliocentric_posvel(struct reb_simulation* r){ + struct reb_integrator_whfast512* const ri_whfast512 = &(r->ri_whfast512); + struct reb_particle* particles = r->particles; + const unsigned int N_systems = ri_whfast512->N_systems; + const unsigned int p_per_system = 8/N_systems; + const unsigned int N_per_system = r->N/N_systems; + + // Layout (2x 3 planet systems) + // 0 1 2 3 4 5 6 7 + // particles array star p0 p1 p2 star p0 p1 p2 + // avx512 register p0 p1 p2 NA p0 p1 p2 NA + + // Layout (4x 2 planet systems) + // 0 1 2 3 4 5 6 7 8 9 10 11 + // particles array star p0 p1 star p0 p1 star p0 p1 star p0 p1 + // avx512 register p0 p1 p0 p1 p0 p1 p0 p1 + + double m[8]; + double x[8]; + double y[8]; + double z[8]; + double vx[8]; + double vy[8]; + double vz[8]; + for (unsigned s=0;sG*mtot/100.); // aproximate circular velocity to keep particles away from origin. + vx[s*p_per_system+i] = 0.0; + vy[s*p_per_system+i] = vcirc; + vz[s*p_per_system+i] = 0.0; + } + ri_whfast512->p_jh0[s].m = mtot; + ri_whfast512->p_jh0[s].x = x0/mtot; + ri_whfast512->p_jh0[s].y = y0/mtot; + ri_whfast512->p_jh0[s].z = z0/mtot; + ri_whfast512->p_jh0[s].vx = vx0/mtot; + ri_whfast512->p_jh0[s].vy = vy0/mtot; + ri_whfast512->p_jh0[s].vz = vz0/mtot; + for (unsigned int i=1; ip_jh0[s].vx; // relative to com + vy[s*p_per_system+(i-1)] = particles[s*N_per_system+i].vy - ri_whfast512->p_jh0[s].vy; + vz[s*p_per_system+(i-1)] = particles[s*N_per_system+i].vz - ri_whfast512->p_jh0[s].vz; + } + } + + struct reb_particle_avx512* p_jh = ri_whfast512->p_jh; + p_jh->m = _mm512_loadu_pd(m); + p_jh->x = _mm512_loadu_pd(x); + p_jh->y = _mm512_loadu_pd(y); + p_jh->z = _mm512_loadu_pd(z); + p_jh->vx = _mm512_loadu_pd(vx); + p_jh->vy = _mm512_loadu_pd(vy); + p_jh->vz = _mm512_loadu_pd(vz); + +} + + +// Performs one complete jump step +static void reb_whfast512_jump_step(struct reb_simulation* r, const double _dt){ +#ifdef PROF + struct reb_timeval time_beginning; + gettimeofday(&time_beginning,NULL); +#endif + struct reb_integrator_whfast512* ri_whfast512 = &(r->ri_whfast512); + struct reb_particle_avx512* p_jh = ri_whfast512->p_jh; + double m0 = r->particles[0].m; + + __m512d pf512 = _mm512_set1_pd(_dt/m0); + + __m512d sumx = _mm512_mul_pd(p_jh->m, p_jh->vx); + __m512d sumy = _mm512_mul_pd(p_jh->m, p_jh->vy); + __m512d sumz = _mm512_mul_pd(p_jh->m, p_jh->vz); + + if (ri_whfast512->N_systems == 1){ + sumx = _mm512_add_pd(_mm512_shuffle_pd(sumx, sumx, 0x55), sumx); // Swapping neighbouring elements + sumx = _mm512_add_pd(_mm512_permutex_pd(sumx, _MM_PERM_ABCD), sumx); + sumx = _mm512_add_pd(_mm512_shuffle_f64x2(sumx,sumx, 78), sumx); // 78 is _MM_SHUFFLE(1,0,3,2), changed for icx + + sumy = _mm512_add_pd(_mm512_shuffle_pd(sumy, sumy, 0x55), sumy); + sumy = _mm512_add_pd(_mm512_permutex_pd(sumy, _MM_PERM_ABCD), sumy); + sumy = _mm512_add_pd(_mm512_shuffle_f64x2(sumy,sumy, 78), sumy); + + sumz = _mm512_add_pd(_mm512_shuffle_pd(sumz, sumz, 0x55), sumz); + sumz = _mm512_add_pd(_mm512_permutex_pd(sumz, _MM_PERM_ABCD), sumz); + sumz = _mm512_add_pd(_mm512_shuffle_f64x2(sumz,sumz, 78), sumz); + }else if (ri_whfast512->N_systems == 2){ + sumx = _mm512_add_pd(_mm512_shuffle_pd(sumx, sumx, 0x55), sumx); // Swapping neighbouring elements + sumx = _mm512_add_pd(_mm512_permutex_pd(sumx, _MM_PERM_ABCD), sumx); + + sumy = _mm512_add_pd(_mm512_shuffle_pd(sumy, sumy, 0x55), sumy); + sumy = _mm512_add_pd(_mm512_permutex_pd(sumy, _MM_PERM_ABCD), sumy); + + sumz = _mm512_add_pd(_mm512_shuffle_pd(sumz, sumz, 0x55), sumz); + sumz = _mm512_add_pd(_mm512_permutex_pd(sumz, _MM_PERM_ABCD), sumz); + }else if (ri_whfast512->N_systems == 4){ + sumx = _mm512_add_pd(_mm512_shuffle_pd(sumx, sumx, 0x55), sumx); // Swapping neighbouring elements + sumy = _mm512_add_pd(_mm512_shuffle_pd(sumy, sumy, 0x55), sumy); + sumz = _mm512_add_pd(_mm512_shuffle_pd(sumz, sumz, 0x55), sumz); + } + + p_jh->x = _mm512_fmadd_pd(sumx, pf512, p_jh->x); + p_jh->y = _mm512_fmadd_pd(sumy, pf512, p_jh->y); + p_jh->z = _mm512_fmadd_pd(sumz, pf512, p_jh->z); + +#ifdef PROF + struct reb_timeval time_end; + gettimeofday(&time_end,NULL); + walltime_jump += time_end.tv_sec-time_beginning.tv_sec+(time_end.tv_usec-time_beginning.tv_usec)/1e6; +#endif +} + +// Precalculate various constants and put them in 512 bit vectors. +void static recalculate_constants(struct reb_simulation* r){ + struct reb_integrator_whfast512* const ri_whfast512 = &(r->ri_whfast512); + const unsigned int N_systems = ri_whfast512->N_systems; + const unsigned int p_per_system = 8/N_systems; + const unsigned int N_per_system = r->N/N_systems; + half = _mm512_set1_pd(0.5); + one = _mm512_add_pd(half, half); + two = _mm512_add_pd(one, one); + five = _mm512_set1_pd(5.); + sixteen = _mm512_set1_pd(16.); + twenty = _mm512_set1_pd(20.); + double M[8]; + for (int i=0;i<8;i++){ + M[i] = r->particles[0].m; // for when N<8 + } + for (int s=0; sparticles[s*N_per_system].m; + } + } + + _M = _mm512_loadu_pd(&M); + so1 = _mm512_set_epi64(1,2,3,0,6,7,4,5); + so2 = _mm512_set_epi64(3,2,1,0,6,5,4,7); + for(unsigned int i=0;i<35;i++){ + invfactorial512[i] = _mm512_set1_pd(invfactorial[i]); + } + + // GR prefactors. Note: assumes units of AU, year/2pi. + double c = 10065.32; + double _gr_prefac[8]; + double _gr_prefac2[8]; + for(unsigned int i=0;i<8;i++){ + _gr_prefac[i] = 0; // for when N<8 + _gr_prefac2[i] = 0; + } + for (int s=0; sparticles[s*N_per_system].m; + for (int p=1; pparticles[s*N_per_system+p].m/m0; + } + } + gr_prefac = _mm512_loadu_pd(&_gr_prefac); + gr_prefac2 = _mm512_loadu_pd(&_gr_prefac2); + ri_whfast512->recalculate_constants = 0; + +} + +// Main integration routine +void reb_integrator_whfast512_part1(struct reb_simulation* const r){ + struct reb_integrator_whfast512* const ri_whfast512 = &(r->ri_whfast512); + const double dt = r->dt; + + if (ri_whfast512->N_allocated==0){ + // Check if all assumptions are satisfied. + // Note: These are not checked every timestep. + // So it is possible for the user to screw things up. + if (r->dt<=0.0){ + reb_simulation_error(r, "WHFast512 does not support negative timesteps. To integrate backwards, flip the sign of the velocities."); + r->status = REB_STATUS_GENERIC_ERROR; + return; + } + if (r->N_var!=0){ + reb_simulation_error(r, "WHFast512 does not support variational particles."); + r->status = REB_STATUS_GENERIC_ERROR; + return; + } + if (r->exact_finish_time!=0){ + reb_simulation_error(r, "WHFast512 requires exact_finish_time=0."); + r->status = REB_STATUS_GENERIC_ERROR; + return; + } + if (r->N>9 && ri_whfast512->N_systems == 1) { + reb_simulation_error(r, "WHFast512 supports a maximum of 9 particles when N_systems is set to 1."); + r->status = REB_STATUS_GENERIC_ERROR; + return; + } + if (r->N>10 && ri_whfast512->N_systems == 2) { + reb_simulation_error(r, "WHFast512 supports a maximum of 10 particles when N_systems is set to 2."); + r->status = REB_STATUS_GENERIC_ERROR; + return; + } + if (r->N>12 && ri_whfast512->N_systems == 4) { + reb_simulation_error(r, "WHFast512 supports a maximum of 12 particles when N_systems is set to 4."); + r->status = REB_STATUS_GENERIC_ERROR; + return; + } + if (ri_whfast512->N_systems != 1 && ri_whfast512->N_systems !=2 && ri_whfast512->N_systems != 4){ + reb_simulation_error(r, "WHFast512 supports 1, 2, or 4 systems only."); + r->status = REB_STATUS_GENERIC_ERROR; + return; + } + if (r->N % ri_whfast512->N_systems != 0){ + reb_simulation_error(r, "Number of particles must be a multiple of ri_whfast512.N_systems."); + r->status = REB_STATUS_GENERIC_ERROR; + return; + } + if (r->G!=1.0){ + reb_simulation_error(r, "WHFast512 requires units in which G=1. Please rescale your system."); + r->status = REB_STATUS_GENERIC_ERROR; + return; + } + if (r->N_active!=-1 && r->N_active!=r->N){ + reb_simulation_error(r, "WHFast512 does not support test particles."); + r->status = REB_STATUS_GENERIC_ERROR; + return; + } + ri_whfast512->p_jh = aligned_alloc(64,sizeof(struct reb_particle_avx512)); + if (!ri_whfast512->p_jh){ + reb_simulation_error(r, "WHFast512 was not able to allocate memory."); + r->status = REB_STATUS_GENERIC_ERROR; + return; + } + if (r->exit_min_distance || r->exit_max_distance){ + reb_simulation_warning(r, "You are using WHFast512 together with the flags exit_min_distance and/or exit_max_distance. With the current implementation, these flags will only check the last synchronized positions. In addition they might slow down WHFast512 significantly. If you need to use these flags, please open an issue on GitHub for further advice."); + } + ri_whfast512->N_allocated=1; + ri_whfast512->recalculate_constants = 1; + r->gravity = REB_GRAVITY_NONE; // WHFast512 uses its own gravity routine. + } + + if (ri_whfast512->recalculate_constants){ + recalculate_constants(r); + } + + if (ri_whfast512->is_synchronized){ + inertial_to_democraticheliocentric_posvel(r); + } + + if (ri_whfast512->is_synchronized){ + // First half DRIFT step + reb_whfast512_kepler_step(r, dt/2.); + reb_whfast512_com_step(r, dt/2.); + }else{ + // Combined DRIFT step + reb_whfast512_kepler_step(r, dt); // full timestep + reb_whfast512_com_step(r, dt); + } + + if (ri_whfast512->gr_potential){ + reb_whfast512_jump_step(r, dt/2.); + }else{ + reb_whfast512_jump_step(r, dt); + } + + if (ri_whfast512->N_systems==1){ + reb_whfast512_interaction_step_8planets(r, dt); + }else if (ri_whfast512->N_systems==2){ + reb_whfast512_interaction_step_4planets(r, dt); + }else if (ri_whfast512->N_systems==4){ + reb_whfast512_interaction_step_2planets(r, dt); + } + + + if (ri_whfast512->gr_potential){ + reb_whfast512_jump_step(r, dt/2.); + } + + ri_whfast512->is_synchronized = 0; + + r->t += dt; + r->dt_last_done = dt; +} + +#else // AVX512 + // Dummy function when AVX512 is not available +void reb_integrator_whfast512_part1(struct reb_simulation* const r){ + reb_simulation_error(r, "WHFast512 is not available. Please make sure your CPU supports AVX512 instructions, then recompile REBOUND with the AVX512 option turned on in the Makefile or set the AVX512 environment variable to 1 before running pip install."); + r->status = REB_STATUS_GENERIC_ERROR; +} +#endif // AVX512 + +// Synchronization routine. Called every time an output is needed. +void reb_integrator_whfast512_synchronize(struct reb_simulation* const r){ +#ifdef AVX512 + struct reb_integrator_whfast512* const ri_whfast512 = &(r->ri_whfast512); + if (ri_whfast512->is_synchronized == 0){ + const unsigned int N_systems = ri_whfast512->N_systems; + struct reb_particle_avx512* sync_pj = NULL; + struct reb_particle sync_pj0[4]; + if (ri_whfast512->recalculate_constants){ + // Needed if no step has ever been done before (like SA) + recalculate_constants(r); + } + if (ri_whfast512->keep_unsynchronized){ + sync_pj = aligned_alloc(64,sizeof(struct reb_particle_avx512)); + memcpy(sync_pj,ri_whfast512->p_jh, sizeof(struct reb_particle_avx512)); + for (int s=0; sp_jh0[s]; + } + } + reb_whfast512_kepler_step(r, r->dt/2.); + reb_whfast512_com_step(r, r->dt/2.); + democraticheliocentric_to_inertial_posvel(r); + if (ri_whfast512->keep_unsynchronized){ + memcpy(ri_whfast512->p_jh, sync_pj, sizeof(struct reb_particle_avx512)); + for (int s=0; sp_jh0[s] = sync_pj0[s]; + } + free(sync_pj); + }else{ + ri_whfast512->is_synchronized = 1; + } + } +#else + reb_integrator_whfast512_synchronize_fallback(r); +#endif // AVX512 +} + +void reb_integrator_whfast512_synchronize_fallback(struct reb_simulation* const r){ + // No AVX512 available + // Using WHFast as a workaround. + // Not bit-wise reproducible. + struct reb_integrator_whfast512* const ri_whfast512 = &(r->ri_whfast512); + if (ri_whfast512->is_synchronized == 0){ + reb_simulation_warning(r, "WHFast512 is not available. Synchronization is provided using WHFast and is not bit-compatible to WHFast512."); + const unsigned int N_systems = ri_whfast512->N_systems; + const unsigned int p_per_system = 8/N_systems; + const unsigned int N_per_system = r->N/N_systems; + double dt = r->dt; + for (int s=0; sparticles[s*N_per_system].m; + // 1/2 Kepler + for (unsigned int i=1;ip_jh->m[s*p_per_system+i-1]; + p.x = ri_whfast512->p_jh->x[s*p_per_system+i-1]; + p.y = ri_whfast512->p_jh->y[s*p_per_system+i-1]; + p.z = ri_whfast512->p_jh->z[s*p_per_system+i-1]; + p.vx = ri_whfast512->p_jh->vx[s*p_per_system+i-1]; + p.vy = ri_whfast512->p_jh->vy[s*p_per_system+i-1]; + p.vz = ri_whfast512->p_jh->vz[s*p_per_system+i-1]; + reb_whfast_kepler_solver(r, &p, m0, 0, dt/2.0); + ri_whfast512->p_jh->x[s*p_per_system+i-1] = p.x; + ri_whfast512->p_jh->y[s*p_per_system+i-1] = p.y; + ri_whfast512->p_jh->z[s*p_per_system+i-1] = p.z; + ri_whfast512->p_jh->vx[s*p_per_system+i-1] = p.vx; + ri_whfast512->p_jh->vy[s*p_per_system+i-1] = p.vy; + ri_whfast512->p_jh->vz[s*p_per_system+i-1] = p.vz; + } + } + reb_whfast512_com_step(r, dt/2.0); // does not use AVX512 + democraticheliocentric_to_inertial_posvel(r); + ri_whfast512->is_synchronized = 1; + } +} + +// Free memory and reset all constants. +// This needs to be called when the timestep, the number of particles, masses, etc are changed, +void reb_integrator_whfast512_reset(struct reb_simulation* const r){ + struct reb_integrator_whfast512* const ri_whfast512 = &(r->ri_whfast512); + if (ri_whfast512->N_allocated){ + free(ri_whfast512->p_jh); + } + ri_whfast512->p_jh = NULL; + ri_whfast512->N_allocated = 0; + ri_whfast512->gr_potential = 0; + ri_whfast512->is_synchronized = 1; + ri_whfast512->keep_unsynchronized = 0; + ri_whfast512->recalculate_constants = 1; +} + +// Everything is in part 1 for this integrator +void reb_integrator_whfast512_part2(struct reb_simulation* const r){ +} diff --git a/rebound/source/src/integrator_whfast512.h b/rebound/source/src/integrator_whfast512.h new file mode 100644 index 0000000000000000000000000000000000000000..17a47e910f1d951a0b871462140f91424d13b6dc --- /dev/null +++ b/rebound/source/src/integrator_whfast512.h @@ -0,0 +1,39 @@ +/** + * @file integrator_whfast612.h + * @brief Interface for numerical particle integrator + * @author Hanno Rein + * Pejvak Javaheri + * + * @section LICENSE + * Copyright (c) 2023 Hanno Rein, Pejvak Javaheri + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _INTEGRATOR_WHFAST512_H +#define _INTEGRATOR_WHFAST512_H + +#include "rebound.h" + +void reb_integrator_whfast512_reset(struct reb_simulation* r); +void reb_integrator_whfast512_part1(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_whfast512_part2(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_whfast512_synchronize(struct reb_simulation* r); ///< Internal function used to call a specific integrator +void reb_integrator_whfast512_synchronize_fallback(struct reb_simulation* const r); // Internal function. +void reb_whfast512_kepler_solver(const struct reb_simulation* const r, struct reb_particle* const restrict p_j, const double M, unsigned int i, double _dt); ///< Internal function (Main WHFast Kepler Solver) +void reb_whfast512_calculate_jerk(struct reb_simulation* r); ///< Calculates "jerk" term + +#endif diff --git a/rebound/source/src/khrplatform.h b/rebound/source/src/khrplatform.h new file mode 100644 index 0000000000000000000000000000000000000000..95021e46e41e175a26468547901dea44f4ada100 --- /dev/null +++ b/rebound/source/src/khrplatform.h @@ -0,0 +1,288 @@ +#ifndef __khrplatform_h_ +#define __khrplatform_h_ + +#ifdef OPENGL + +/* + ** Copyright (c) 2008-2009 The Khronos Group Inc. + ** + ** Permission is hereby granted, free of charge, to any person obtaining a + ** copy of this software and/or associated documentation files (the + ** "Materials"), to deal in the Materials without restriction, including + ** without limitation the rights to use, copy, modify, merge, publish, + ** distribute, sublicense, and/or sell copies of the Materials, and to + ** permit persons to whom the Materials are furnished to do so, subject to + ** the following conditions: + ** + ** The above copyright notice and this permission notice shall be included + ** in all copies or substantial portions of the Materials. + ** + ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + */ + +/* Khronos platform-specific types and definitions. + * + * $Revision: 32517 $ on $Date: 2016-03-11 02:41:19 -0800 (Fri, 11 Mar 2016) $ + * + * Adopters may modify this file to suit their platform. Adopters are + * encouraged to submit platform specific modifications to the Khronos + * group so that they can be included in future versions of this file. + * Please submit changes by sending them to the public Khronos Bugzilla + * (http://khronos.org/bugzilla) by filing a bug against product + * "Khronos (general)" component "Registry". + * + * A predefined template which fills in some of the bug fields can be + * reached using http://tinyurl.com/khrplatform-h-bugreport, but you + * must create a Bugzilla login first. + * + * + * See the Implementer's Guidelines for information about where this file + * should be located on your system and for more details of its use: + * http://www.khronos.org/registry/implementers_guide.pdf + * + * This file should be included as + * #include + * by Khronos client API header files that use its types and defines. + * + * The types in khrplatform.h should only be used to define API-specific types. + * + * Types defined in khrplatform.h: + * khronos_int8_t signed 8 bit + * khronos_uint8_t unsigned 8 bit + * khronos_int16_t signed 16 bit + * khronos_uint16_t unsigned 16 bit + * khronos_int32_t signed 32 bit + * khronos_uint32_t unsigned 32 bit + * khronos_int64_t signed 64 bit + * khronos_uint64_t unsigned 64 bit + * khronos_intptr_t signed same number of bits as a pointer + * khronos_uintptr_t unsigned same number of bits as a pointer + * khronos_ssize_t signed size + * khronos_usize_t unsigned size + * khronos_float_t signed 32 bit floating point + * khronos_time_ns_t unsigned 64 bit time in nanoseconds + * khronos_utime_nanoseconds_t unsigned time interval or absolute time in + * nanoseconds + * khronos_stime_nanoseconds_t signed time interval in nanoseconds + * khronos_boolean_enum_t enumerated boolean type. This should + * only be used as a base type when a client API's boolean type is + * an enum. Client APIs which use an integer or other type for + * booleans cannot use this as the base type for their boolean. + * + * Tokens defined in khrplatform.h: + * + * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. + * + * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. + * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. + * + * Calling convention macros defined in this file: + * KHRONOS_APICALL + * KHRONOS_APIENTRY + * KHRONOS_APIATTRIBUTES + * + * These may be used in function prototypes as: + * + * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( + * int arg1, + * int arg2) KHRONOS_APIATTRIBUTES; + */ + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APICALL + *------------------------------------------------------------------------- + * This precedes the return type of the function in the function prototype. + */ +#if defined(_WIN32) && !defined(__SCITECH_SNAP__) +# define KHRONOS_APICALL __declspec(dllimport) +#elif defined (__SYMBIAN32__) +# define KHRONOS_APICALL IMPORT_C +#elif defined(__ANDROID__) +# include +# define KHRONOS_APICALL __attribute__((visibility("default"))) __NDK_FPABI__ +#else +# define KHRONOS_APICALL +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIENTRY + *------------------------------------------------------------------------- + * This follows the return type of the function and precedes the function + * name in the function prototype. + */ +#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) +/* Win32 but not WinCE */ +# define KHRONOS_APIENTRY __stdcall +#else +# define KHRONOS_APIENTRY +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIATTRIBUTES + *------------------------------------------------------------------------- + * This follows the closing parenthesis of the function prototype arguments. + */ +#if defined (__ARMCC_2__) +#define KHRONOS_APIATTRIBUTES __softfp +#else +#define KHRONOS_APIATTRIBUTES +#endif + +/*------------------------------------------------------------------------- + * basic type definitions + *-----------------------------------------------------------------------*/ +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) + + +/* + * Using + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__VMS ) || defined(__sgi) + +/* + * Using + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) + +/* + * Win32 + */ +typedef __int32 khronos_int32_t; +typedef unsigned __int32 khronos_uint32_t; +typedef __int64 khronos_int64_t; +typedef unsigned __int64 khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__sun__) || defined(__digital__) + +/* + * Sun or Digital + */ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#if defined(__arch64__) || defined(_LP64) +typedef long int khronos_int64_t; +typedef unsigned long int khronos_uint64_t; +#else +typedef long long int khronos_int64_t; +typedef unsigned long long int khronos_uint64_t; +#endif /* __arch64__ */ +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif 0 + +/* + * Hypothetical platform with no float or int64 support + */ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#define KHRONOS_SUPPORT_INT64 0 +#define KHRONOS_SUPPORT_FLOAT 0 + +#else + +/* + * Generic fallback + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#endif + + +/* + * Types that are (so far) the same on all platforms + */ +typedef signed char khronos_int8_t; +typedef unsigned char khronos_uint8_t; +typedef signed short int khronos_int16_t; +typedef unsigned short int khronos_uint16_t; + +/* + * Types that differ between LLP64 and LP64 architectures - in LLP64, + * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears + * to be the only LLP64 architecture in current use. + */ +#ifdef _WIN64 +typedef signed long long int khronos_intptr_t; +typedef unsigned long long int khronos_uintptr_t; +typedef signed long long int khronos_ssize_t; +typedef unsigned long long int khronos_usize_t; +#else +typedef signed long int khronos_intptr_t; +typedef unsigned long int khronos_uintptr_t; +typedef signed long int khronos_ssize_t; +typedef unsigned long int khronos_usize_t; +#endif + +#if KHRONOS_SUPPORT_FLOAT +/* + * Float type + */ +typedef float khronos_float_t; +#endif + +#if KHRONOS_SUPPORT_INT64 +/* Time types + * + * These types can be used to represent a time interval in nanoseconds or + * an absolute Unadjusted System Time. Unadjusted System Time is the number + * of nanoseconds since some arbitrary system event (e.g. since the last + * time the system booted). The Unadjusted System Time is an unsigned + * 64 bit value that wraps back to 0 every 584 years. Time intervals + * may be either signed or unsigned. + */ +typedef khronos_uint64_t khronos_utime_nanoseconds_t; +typedef khronos_int64_t khronos_stime_nanoseconds_t; +#endif + +/* + * Dummy value used to pad enum types to 32 bits. + */ +#ifndef KHRONOS_MAX_ENUM +#define KHRONOS_MAX_ENUM 0x7FFFFFFF +#endif + +/* + * Enumerated boolean type + * + * Values other than zero should be considered to be true. Therefore + * comparisons should not be made against KHRONOS_TRUE. + */ +typedef enum { + KHRONOS_FALSE = 0, + KHRONOS_TRUE = 1, + KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM +} khronos_boolean_enum_t; + +#endif /* __khrplatform_h_ */ +#endif // OPENGL diff --git a/rebound/source/src/output.c b/rebound/source/src/output.c new file mode 100644 index 0000000000000000000000000000000000000000..216aded31c4f74f15f27dbbcbe7db78f4f64c2c7 --- /dev/null +++ b/rebound/source/src/output.c @@ -0,0 +1,670 @@ +/** + * @file output.c + * @brief Output routines. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#include +#include "particle.h" +#include "rebound.h" +#include "tools.h" +#include "output.h" +#include "integrator.h" +#include "integrator_sei.h" + +#include "input.h" +#ifdef MPI +#include "communication_mpi.h" +#include "mpi.h" +#endif // MPI + + +// List of REBOUND parameters to be written to a file. +// Modify this list if you wish to input/output additional fields in the reb_simulation structure. +const struct reb_binary_field_descriptor reb_binary_field_descriptor_list[]= { + { 0, REB_DOUBLE, "t", offsetof(struct reb_simulation, t), 0, 0}, + { 1, REB_DOUBLE, "G", offsetof(struct reb_simulation, G), 0, 0}, + { 2, REB_DOUBLE, "softening", offsetof(struct reb_simulation, softening), 0, 0}, + { 3, REB_DOUBLE, "dt", offsetof(struct reb_simulation, dt), 0, 0}, + { 4, REB_UINT, "N", offsetof(struct reb_simulation, N), 0, 0}, + { 5, REB_INT, "N_var", offsetof(struct reb_simulation, N_var), 0, 0}, + // 6 Used to be varconfig + { 7, REB_INT, "N_active", offsetof(struct reb_simulation, N_active), 0, 0}, + { 8, REB_INT, "testparticle_type", offsetof(struct reb_simulation, testparticle_type), 0, 0}, + { 9, REB_INT, "hash_ctr", offsetof(struct reb_simulation, hash_ctr), 0, 0}, + { 10, REB_DOUBLE, "opening_angle2", offsetof(struct reb_simulation, opening_angle2), 0, 0}, + { 11, REB_INT, "status", offsetof(struct reb_simulation, status), 0, 0}, + { 12, REB_INT, "exact_finish_time", offsetof(struct reb_simulation, exact_finish_time), 0, 0}, + { 13, REB_UINT, "force_is_velocity_dependent", offsetof(struct reb_simulation, force_is_velocity_dependent), 0, 0}, + { 14, REB_UINT, "gravity_ignore_terms", offsetof(struct reb_simulation, gravity_ignore_terms), 0, 0}, + { 15, REB_DOUBLE, "output_timing_last", offsetof(struct reb_simulation, output_timing_last), 0, 0}, + { 16, REB_INT, "save_messages", offsetof(struct reb_simulation, save_messages), 0, 0}, + { 17, REB_DOUBLE, "exit_max_distance", offsetof(struct reb_simulation, exit_max_distance), 0, 0}, + { 18, REB_DOUBLE, "exit_min_distance", offsetof(struct reb_simulation, exit_min_distance), 0, 0}, + { 19, REB_DOUBLE, "usleep", offsetof(struct reb_simulation, usleep), 0, 0}, + { 20, REB_INT, "track_energy_offset", offsetof(struct reb_simulation, track_energy_offset), 0, 0}, + { 21, REB_DOUBLE, "energy_offset", offsetof(struct reb_simulation, energy_offset), 0, 0}, + { 22, REB_VEC3D, "boxsize", offsetof(struct reb_simulation, boxsize), 0, 0}, + { 23, REB_DOUBLE, "boxsize_max", offsetof(struct reb_simulation, boxsize_max), 0, 0}, + { 24, REB_DOUBLE, "root_size", offsetof(struct reb_simulation, root_size), 0, 0}, + { 25, REB_INT, "N_root", offsetof(struct reb_simulation, N_root), 0, 0}, + { 26, REB_INT, "N_root_x", offsetof(struct reb_simulation, N_root_x), 0, 0}, + { 27, REB_INT, "N_root_y", offsetof(struct reb_simulation, N_root_y), 0, 0}, + { 28, REB_INT, "N_root_z", offsetof(struct reb_simulation, N_root_z), 0, 0}, + { 29, REB_INT, "N_ghost_x", offsetof(struct reb_simulation, N_ghost_x), 0, 0}, + { 30, REB_INT, "N_ghost_y", offsetof(struct reb_simulation, N_ghost_y), 0, 0}, + { 31, REB_INT, "N_ghost_z", offsetof(struct reb_simulation, N_ghost_z), 0, 0}, + { 32, REB_INT, "collision_resolve_keep_sorted",offsetof(struct reb_simulation, collision_resolve_keep_sorted), 0, 0}, + { 33, REB_DOUBLE, "minimum_collision_velocity", offsetof(struct reb_simulation, minimum_collision_velocity), 0, 0}, + { 34, REB_DOUBLE, "collisions_plog", offsetof(struct reb_simulation, collisions_plog), 0, 0}, + { 36, REB_INT64, "collisions_log_n", offsetof(struct reb_simulation, collisions_log_n), 0, 0}, + { 37, REB_INT, "calculate_megno", offsetof(struct reb_simulation, calculate_megno), 0, 0}, + { 38, REB_DOUBLE, "megno_Ys", offsetof(struct reb_simulation, megno_Ys), 0, 0}, + { 39, REB_DOUBLE, "megno_Yss", offsetof(struct reb_simulation, megno_Yss), 0, 0}, + { 40, REB_DOUBLE, "megno_cov_Yt", offsetof(struct reb_simulation, megno_cov_Yt), 0, 0}, + { 41, REB_DOUBLE, "megno_var_t", offsetof(struct reb_simulation, megno_var_t), 0, 0}, + { 42, REB_DOUBLE, "megno_mean_t", offsetof(struct reb_simulation, megno_mean_t), 0, 0}, + { 43, REB_DOUBLE, "megno_mean_Y", offsetof(struct reb_simulation, megno_mean_Y), 0, 0}, + { 49, REB_DOUBLE, "megno_initial_t", offsetof(struct reb_simulation, megno_initial_t), 0, 0}, + { 44, REB_INT64, "megno_n", offsetof(struct reb_simulation, megno_n), 0, 0}, + { 47, REB_DOUBLE, "simulationarchive_auto_interval", offsetof(struct reb_simulation, simulationarchive_auto_interval), 0, 0}, + { 102, REB_DOUBLE, "simulationarchive_auto_walltime", offsetof(struct reb_simulation, simulationarchive_auto_walltime), 0, 0}, + { 48, REB_DOUBLE, "simulationarchive_next", offsetof(struct reb_simulation, simulationarchive_next), 0, 0}, + { 50, REB_INT, "collision", offsetof(struct reb_simulation, collision), 0, 0}, + { 51, REB_INT, "integrator", offsetof(struct reb_simulation, integrator), 0, 0}, + { 52, REB_INT, "boundary", offsetof(struct reb_simulation, boundary), 0, 0}, + { 53, REB_INT, "gravity", offsetof(struct reb_simulation, gravity), 0, 0}, + { 54, REB_DOUBLE, "ri_sei.OMEGA", offsetof(struct reb_simulation, ri_sei.OMEGA), 0, 0}, + { 55, REB_DOUBLE, "ri_sei.OMEGAZ", offsetof(struct reb_simulation, ri_sei.OMEGAZ), 0, 0}, + { 56, REB_DOUBLE, "ri_sei.lastdt", offsetof(struct reb_simulation, ri_sei.lastdt), 0, 0}, + { 57, REB_DOUBLE, "ri_sei.sindt", offsetof(struct reb_simulation, ri_sei.sindt), 0, 0}, + { 58, REB_DOUBLE, "ri_sei.tandt", offsetof(struct reb_simulation, ri_sei.tandt), 0, 0}, + { 59, REB_DOUBLE, "ri_sei.sindtz", offsetof(struct reb_simulation, ri_sei.sindtz), 0, 0}, + { 60, REB_DOUBLE, "ri_sei.tandtz", offsetof(struct reb_simulation, ri_sei.tandtz), 0, 0}, + { 61, REB_UINT, "ri_whfast.corrector", offsetof(struct reb_simulation, ri_whfast.corrector), 0, 0}, + { 62, REB_UINT, "ri_whfast.recalculate_coordinates_this_timestep", offsetof(struct reb_simulation, ri_whfast.recalculate_coordinates_this_timestep), 0, 0}, + { 63, REB_UINT, "ri_whfast.safe_mode", offsetof(struct reb_simulation, ri_whfast.safe_mode), 0, 0}, + { 64, REB_UINT, "ri_whfast.keep_unsynchronized",offsetof(struct reb_simulation, ri_whfast.keep_unsynchronized), 0, 0}, + { 65, REB_UINT, "ri_whfast.is_synchronized", offsetof(struct reb_simulation, ri_whfast.is_synchronized), 0, 0}, + { 66, REB_UINT, "ri_whfast.timestep_warnning", offsetof(struct reb_simulation, ri_whfast.timestep_warning), 0, 0}, + { 69, REB_DOUBLE, "ri_ias15.epsilon", offsetof(struct reb_simulation, ri_ias15.epsilon), 0, 0}, + { 70, REB_DOUBLE, "ri_ias15.min_dt", offsetof(struct reb_simulation, ri_ias15.min_dt), 0, 0}, + { 71, REB_UINT, "ri_ias15.adaptive_mode", offsetof(struct reb_simulation, ri_ias15.adaptive_mode), 0, 0}, + { 72, REB_UINT64, "ri_ias15.iterations_max_exceeded", offsetof(struct reb_simulation, ri_ias15.iterations_max_exceeded), 0, 0}, + { 85, REB_POINTER, "particles", offsetof(struct reb_simulation, particles), offsetof(struct reb_simulation, N), sizeof(struct reb_particle)}, + { 86, REB_POINTER, "var_config", offsetof(struct reb_simulation, var_config), offsetof(struct reb_simulation, N_var_config), sizeof(struct reb_variational_configuration)}, + { 87, REB_OTHER, "functionpointers", 0, 0, 0}, + { 89, REB_POINTER, "ri_ias15.at", offsetof(struct reb_simulation, ri_ias15.at), offsetof(struct reb_simulation, ri_ias15.N_allocated), sizeof(double)}, + { 90, REB_POINTER, "ri_ias15.x0", offsetof(struct reb_simulation, ri_ias15.x0), offsetof(struct reb_simulation, ri_ias15.N_allocated), sizeof(double)}, + { 91, REB_POINTER, "ri_ias15.v0", offsetof(struct reb_simulation, ri_ias15.v0), offsetof(struct reb_simulation, ri_ias15.N_allocated), sizeof(double)}, + { 92, REB_POINTER, "ri_ias15.a0", offsetof(struct reb_simulation, ri_ias15.a0), offsetof(struct reb_simulation, ri_ias15.N_allocated), sizeof(double)}, + { 93, REB_POINTER, "ri_ias15.csx", offsetof(struct reb_simulation, ri_ias15.csx), offsetof(struct reb_simulation, ri_ias15.N_allocated), sizeof(double)}, + { 94, REB_POINTER, "ri_ias15.csv", offsetof(struct reb_simulation, ri_ias15.csv), offsetof(struct reb_simulation, ri_ias15.N_allocated), sizeof(double)}, + { 95, REB_POINTER, "ri_ias15.csa0", offsetof(struct reb_simulation, ri_ias15.csa0), offsetof(struct reb_simulation, ri_ias15.N_allocated), sizeof(double)}, + { 96, REB_DP7, "ri_ias15.g", offsetof(struct reb_simulation, ri_ias15.g), offsetof(struct reb_simulation, ri_ias15.N_allocated), 7*sizeof(double)}, + { 97, REB_DP7, "ri_ias15.b", offsetof(struct reb_simulation, ri_ias15.b), offsetof(struct reb_simulation, ri_ias15.N_allocated), 7*sizeof(double)}, + { 98, REB_DP7, "ri_ias15.csb", offsetof(struct reb_simulation, ri_ias15.csb), offsetof(struct reb_simulation, ri_ias15.N_allocated), 7*sizeof(double)}, + { 99, REB_DP7, "ri_ias15.e", offsetof(struct reb_simulation, ri_ias15.e), offsetof(struct reb_simulation, ri_ias15.N_allocated), 7*sizeof(double)}, + { 100, REB_DP7, "ri_ias15.br", offsetof(struct reb_simulation, ri_ias15.br), offsetof(struct reb_simulation, ri_ias15.N_allocated), 7*sizeof(double)}, + { 101, REB_DP7, "ri_ias15.er", offsetof(struct reb_simulation, ri_ias15.er), offsetof(struct reb_simulation, ri_ias15.N_allocated), 7*sizeof(double)}, + { 104, REB_POINTER, "ri_whfast.p_jh", offsetof(struct reb_simulation, ri_whfast.p_jh), offsetof(struct reb_simulation, ri_whfast.N_allocated), sizeof(struct reb_particle)}, + //{ 107, REB_INT, "visualization", offsetof(struct reb_simulation, visualization), 0, 0}, + { 112, REB_POINTER, "ri_janus.p_int", offsetof(struct reb_simulation, ri_janus.p_int), offsetof(struct reb_simulation, ri_janus.N_allocated), sizeof(struct reb_particle_int)}, + { 113, REB_DOUBLE, "ri_janus.scale_pos", offsetof(struct reb_simulation, ri_janus.scale_pos), 0, 0}, + { 114, REB_DOUBLE, "ri_janus.scale_vel", offsetof(struct reb_simulation, ri_janus.scale_vel), 0, 0}, + { 115, REB_UINT, "ri_janus.order", offsetof(struct reb_simulation, ri_janus.order), 0, 0}, + { 116, REB_UINT, "ri_janus.recalculate_integer_coordinates_this_timestep", offsetof(struct reb_simulation, ri_janus.recalculate_integer_coordinates_this_timestep), 0, 0}, + { 117, REB_INT, "ri_whfast.coordinates", offsetof(struct reb_simulation, ri_whfast.coordinates), 0, 0}, + { 118, REB_DOUBLE, "ri_mercurius.r_crit_hill", offsetof(struct reb_simulation, ri_mercurius.r_crit_hill), 0, 0}, + { 119, REB_UINT, "ri_mercurius.safe_mode", offsetof(struct reb_simulation, ri_mercurius.safe_mode), 0, 0}, + { 120, REB_UINT, "ri_mercurius.is_synchronized", offsetof(struct reb_simulation, ri_mercurius.is_synchronized), 0, 0}, + { 122, REB_POINTER, "ri_mercurius.dcrit", offsetof(struct reb_simulation, ri_mercurius.dcrit), offsetof(struct reb_simulation, ri_mercurius.N_allocated_dcrit), sizeof(double)}, + { 123, REB_UINT, "ri_mercurius.recalculate_coordinates_this_timestep", offsetof(struct reb_simulation, ri_mercurius.recalculate_coordinates_this_timestep), 0, 0}, + { 125, REB_INT, "simulationarchive_version", offsetof(struct reb_simulation, simulationarchive_version), 0, 0}, + { 126, REB_DOUBLE, "walltime", offsetof(struct reb_simulation, walltime), 0, 0}, + { 127, REB_DOUBLE, "walltime_last_steps", offsetof(struct reb_simulation, walltime_last_steps), 0, 0}, + { 130, REB_UINT32, "python_unit_l", offsetof(struct reb_simulation, python_unit_l), 0, 0}, + { 131, REB_UINT32, "python_unit_m", offsetof(struct reb_simulation, python_unit_m), 0, 0}, + { 132, REB_UINT32, "python_unit_t", offsetof(struct reb_simulation, python_unit_t), 0, 0}, + { 133, REB_VEC3D, "ri_mercurius.com_pos", offsetof(struct reb_simulation, ri_mercurius.com_pos), 0, 0}, + { 134, REB_VEC3D, "ri_mercurius.com_vel", offsetof(struct reb_simulation, ri_mercurius.com_vel), 0, 0}, + { 135, REB_UINT64, "simulationarchive_auto_step", offsetof(struct reb_simulation, simulationarchive_auto_step), 0, 0}, + { 136, REB_UINT64, "simulationarchive_next_step", offsetof(struct reb_simulation, simulationarchive_next_step), 0, 0}, + { 137, REB_UINT64, "steps_done", offsetof(struct reb_simulation, steps_done), 0, 0}, + { 140, REB_UINT, "ri_saba.safe_mode", offsetof(struct reb_simulation, ri_saba.safe_mode), 0, 0}, + { 141, REB_UINT, "ri_saba.is_synchronized", offsetof(struct reb_simulation, ri_saba.is_synchronized), 0, 0}, + { 143, REB_UINT, "ri_whfast.corrector2", offsetof(struct reb_simulation, ri_whfast.corrector2), 0, 0}, + { 144, REB_INT, "ri_whfast.kernel", offsetof(struct reb_simulation, ri_whfast.kernel), 0, 0}, + { 145, REB_DOUBLE, "dt_last_done", offsetof(struct reb_simulation, dt_last_done), 0, 0}, + { 146, REB_INT, "ri_saba.type", offsetof(struct reb_simulation, ri_saba.type), 0, 0}, + { 147, REB_UINT, "ri_saba.keep_unsynchronized", offsetof(struct reb_simulation, ri_saba.keep_unsynchronized), 0, 0}, + { 148, REB_INT, "ri_eos.phi0", offsetof(struct reb_simulation, ri_eos.phi0), 0, 0}, + { 149, REB_INT, "ri_eos.phi1", offsetof(struct reb_simulation, ri_eos.phi1), 0, 0}, + { 150, REB_UINT, "ri_eos.n", offsetof(struct reb_simulation, ri_eos.n), 0, 0}, + { 151, REB_UINT, "ri_eos.safe_mode", offsetof(struct reb_simulation, ri_eos.safe_mode), 0, 0}, + { 152, REB_UINT, "ri_eos.is_synchronized", offsetof(struct reb_simulation, ri_eos.is_synchronized), 0, 0}, + { 154, REB_UINT, "rand_seed", offsetof(struct reb_simulation, rand_seed), 0, 0}, + { 155, REB_INT, "testparticle_hidewarnings", offsetof(struct reb_simulation, testparticle_hidewarnings), 0, 0}, + { 156, REB_DOUBLE, "ri_bs.eps_abs", offsetof(struct reb_simulation, ri_bs.eps_abs), 0, 0}, + { 157, REB_DOUBLE, "ri_bs.eps_rel", offsetof(struct reb_simulation, ri_bs.eps_rel), 0, 0}, + { 158, REB_DOUBLE, "ri_bs.min_dt", offsetof(struct reb_simulation, ri_bs.min_dt), 0, 0}, + { 159, REB_DOUBLE, "ri_bs.max_dt", offsetof(struct reb_simulation, ri_bs.max_dt), 0, 0}, + { 160, REB_INT, "ri_bs.first_or_last_step", offsetof(struct reb_simulation, ri_bs.first_or_last_step), 0, 0}, + { 161, REB_INT, "ri_bs.previous_rejected", offsetof(struct reb_simulation, ri_bs.previous_rejected), 0, 0}, + { 162, REB_INT, "ri_bs.target_iter", offsetof(struct reb_simulation, ri_bs.target_iter), 0, 0}, + { 164, REB_POINTER_FIXED_SIZE, "display_settings", offsetof(struct reb_simulation, display_settings), 0, sizeof(struct reb_display_settings)}, + { 165, REB_DOUBLE, "ri_trace.r_crit_hill", offsetof(struct reb_simulation, ri_trace.r_crit_hill), 0, 0}, + // TRACE Pericenter conditions used to have ids 166 - 168. Do not reuse. + { 169, REB_DOUBLE, "ri_trace.peri_crit_eta", offsetof(struct reb_simulation, ri_trace.peri_crit_eta), 0, 0}, + { 170, REB_INT, "ri_trace.peri_mode", offsetof(struct reb_simulation, ri_trace.peri_mode), 0, 0}, + // { 163, REB_INT, "var_rescale_warning", offsetof(struct reb_simulation, var_rescale_warning), 0, 0}, + // TES Variables used to have ids 300 - 388. Do not reuse. + { 390, REB_UINT, "ri_whfast512.keep_unsynchronized", offsetof(struct reb_simulation, ri_whfast512.keep_unsynchronized), 0, 0}, + { 391, REB_UINT, "ri_whfast512.is_synchronized", offsetof(struct reb_simulation, ri_whfast512.is_synchronized), 0, 0}, + { 392, REB_UINT, "ri_whfast512.gr_potential", offsetof(struct reb_simulation, ri_whfast512.gr_potential), 0, 0}, + { 394, REB_POINTER_ALIGNED, "ri_whfast512.pjh", offsetof(struct reb_simulation, ri_whfast512.p_jh), offsetof(struct reb_simulation, ri_whfast512.N_allocated), sizeof(struct reb_particle_avx512)}, + // 396, 397 used to be max_radius0 and max_radius1 + { 398, REB_UINT, "ri_whfast512.N_systems", offsetof(struct reb_simulation, ri_whfast512.N_systems), 0, 0}, + { 399, REB_PARTICLE4, "ri_whfast512.pjh0", offsetof(struct reb_simulation, ri_whfast512.p_jh0), 0, 0}, + { 400, REB_UINT, "ri_leapfrog.order", offsetof(struct reb_simulation, ri_leapfrog.order), 0, 0}, + { 1329743186, REB_OTHER,"header", 0, 0, 0}, + { 9998, REB_OTHER, "sablob", 0, 0, 0}, + { 9999, REB_FIELD_END, "end", 0, 0, 0} +}; + +// required for python pickling +void reb_simulation_output_free_stream(char* buf){ + free(buf); +} + +/** + * @brief Replacement for open_memstream + */ +void reb_output_stream_write(char** bufp, size_t* allocatedsize, size_t* sizep, void* restrict data, size_t size){ + // Increase size + int increased = 0; + while (*allocatedsize==0 || (*sizep)+size>(*allocatedsize)){ + increased = 1; + *allocatedsize = (*allocatedsize) ? (*allocatedsize) * 2 : 32; + } + if (increased){ + *bufp = realloc(*bufp,*allocatedsize); + } + // Copy data to buffer + memcpy((*bufp)+(*sizep),data,size); + *sizep += size; +} + +/** + * @brief Same as reb_simulation_output_check but with a phase argument + */ +int reb_simulation_output_check_phase(struct reb_simulation* r, double interval,double phase){ + double shift = r->t+interval*phase; + if (floor(shift/interval)!=floor((shift-r->dt)/interval)){ + return 1; + } + // Output at beginning + if (r->t==0){ + return 1; + } + return 0; +} + +int reb_simulation_output_check(struct reb_simulation* r, double interval){ + return reb_simulation_output_check_phase(r, interval,0); +} + + +#ifdef PROFILING +#warning PROFILING enabled. Rebound is NOT thread-safe. +double profiling_time_sum[PROFILING_CAT_NUM]; +double profiling_time_initial = 0; +double profiling_timing_initial = 0; +double profiling_time_final = 0; +void profiling_start(void){ + struct reb_timeval tim; + gettimeofday(&tim, NULL); + profiling_time_initial = tim.tv_sec+(tim.tv_usec/1000000.0); +} +void profiling_stop(int cat){ + struct reb_timeval tim; + gettimeofday(&tim, NULL); + profiling_time_final = tim.tv_sec+(tim.tv_usec/1000000.0); + profiling_time_sum[cat] += profiling_time_final - profiling_time_initial; +} +#endif // PROFILING + +#ifdef __EMSCRIPTEN__ +// fflush does not work in emscripten. Workaround. +EM_JS(void, reb_remove_last_line, (), { + var output = document.getElementById("output"); + if (output){ + const lastIndex1 = output.value.lastIndexOf("\n"); + const lastIndex2 = output.value.lastIndexOf("\n",lastIndex1-1); + const lastIndexNtot = output.value.lastIndexOf("N_tot="); + if(lastIndex1>0 && lastIndex2server_data){ + reb_simulation_error(r, "To take a screenshot, call reb_simulation_start_server() and connect a web browser."); + return 0; + } + + r->server_data->status_before_screenshot = r->status; + // Tell client to take screenshot + r->status = REB_STATUS_SCREENSHOT; + + // Release mutex so client can pull simulation + if (r->server_data->mutex_locked_by_integrate){ +#ifdef _WIN32 + ReleaseMutex(r->server_data->mutex); +#else // _WIN32 + pthread_mutex_unlock(&(r->server_data->mutex)); +#endif // _WIN32 + } + + // Wait until screenshot arrives + while (!r->server_data->screenshot && r->status <0){ + usleep(100); + if (reb_sigint > 1){ + r->status = REB_STATUS_SIGINT; + } + } + + // Lock mutex again before continuing + if (r->server_data->mutex_locked_by_integrate){ +#ifdef _WIN32 + WaitForSingleObject(r->server_data->mutex, INFINITE); +#else // _WIN32 + pthread_mutex_lock(&(r->server_data->mutex)); +#endif // _WIN32 + } + + r->status = r->server_data->status_before_screenshot; + + if (r->server_data->screenshot){ + FILE* f = fopen(filename,"wb"); + if (!f){ + reb_simulation_error(r, "Error opening output file for screenshot."); + free(r->server_data->screenshot); + r->server_data->screenshot = 0; + r->server_data->N_screenshot = 0; + return 0; + }else{ + fwrite(r->server_data->screenshot, r->server_data->N_screenshot, 1, f); + fclose(f); + free(r->server_data->screenshot); + r->server_data->screenshot = 0; + r->server_data->N_screenshot = 0; + return 1; + } + } +#else //SERVER + reb_simulation_error(r, "To take a screenshot compile with SERVER=1, call reb_simulation_start_server(), and connect with a web browser."); +#endif //SERVER + return 0; +} + + +void reb_simulation_output_timing(struct reb_simulation* r, const double tmax){ + const int N = r->N; +#ifdef MPI + int N_tot = 0; + MPI_Reduce(&N, &N_tot, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); + if (r->mpi_id!=0) return; +#else + int N_tot = N; +#endif + struct reb_timeval tim; + gettimeofday(&tim, NULL); + double temp = tim.tv_sec+(tim.tv_usec/1000000.0); + if (r->output_timing_last==-1){ + r->output_timing_last = temp; + }else{ +#ifdef __EMSCRIPTEN__ + reb_remove_last_line(); +#else + printf("\r"); +#endif +#ifdef PROFILING + fputs("\033[A\033[2K",stdout); + for (int i=0;i<=PROFILING_CAT_NUM;i++){ + fputs("\033[A\033[2K",stdout); + } +#endif // PROFILING + } + printf("N_tot= %- 9d ",N_tot); + if (r->integrator==REB_INTEGRATOR_SEI){ + printf("t= %- 9f [orb] ",r->t*r->ri_sei.OMEGA/2./M_PI); + }else{ + printf("t= %- 9f ",r->t); + } + printf("dt= %- 9f ",r->dt); + printf("cpu= %- 9f [s] ",temp-r->output_timing_last); + if (tmax>0){ + printf("t/tmax= %5.2f%%",r->t/tmax*100.0); + } +#ifdef PROFILING + if (profiling_timing_initial==0){ + struct reb_timeval tim; + gettimeofday(&tim, NULL); + profiling_timing_initial = tim.tv_sec+(tim.tv_usec/1000000.0); + } + printf("\nCATEGORY TIME \n"); + double _sum = 0; + for (int i=0;i<=PROFILING_CAT_NUM;i++){ + switch (i){ + case PROFILING_CAT_INTEGRATOR: + printf("Integrator "); + break; + case PROFILING_CAT_BOUNDARY: + printf("Boundary check "); + break; + case PROFILING_CAT_GRAVITY: + printf("Gravity/Forces "); + break; + case PROFILING_CAT_COLLISION: + printf("Collisions "); + break; +#ifdef OPENGL + case PROFILING_CAT_VISUALIZATION: + printf("Visualization "); + break; +#endif // OPENGL + case PROFILING_CAT_NUM: + printf("Other "); + break; + } + if (i==PROFILING_CAT_NUM){ + printf("%5.2f%%",(1.-_sum/(profiling_time_final - profiling_timing_initial))*100.); + }else{ + printf("%5.2f%%\n",profiling_time_sum[i]/(profiling_time_final - profiling_timing_initial)*100.); + _sum += profiling_time_sum[i]; + } + } +#endif // PROFILING +#ifdef __EMSCRIPTEN__ + printf("\n"); +#else + fflush(stdout); +#endif + r->output_timing_last = temp; +} + + +void reb_simulation_output_ascii(struct reb_simulation* r, char* filename){ + const int N = r->N; +#ifdef MPI + char filename_mpi[1024]; + sprintf(filename_mpi,"%s_%d",filename,r->mpi_id); + FILE* of = fopen(filename_mpi,"ab"); +#else // MPI + FILE* of = fopen(filename,"ab"); +#endif // MPI + if (of==NULL){ + reb_simulation_error(r, "Can not open file."); + return; + } + for (int i=0;iparticles[i]; + fprintf(of,"%e\t%e\t%e\t%e\t%e\t%e\n",p.x,p.y,p.z,p.vx,p.vy,p.vz); + } + fclose(of); +} + +void reb_simulation_output_orbits(struct reb_simulation* r, char* filename){ + const int N = r->N; +#ifdef MPI + char filename_mpi[1024]; + sprintf(filename_mpi,"%s_%d",filename,r->mpi_id); + FILE* of = fopen(filename_mpi,"ab"); +#else // MPI + FILE* of = fopen(filename,"ab"); +#endif // MPI + if (of==NULL){ + reb_simulation_error(r, "Can not open file."); + return; + } + struct reb_particle com = r->particles[0]; + for (int i=1;iG, r->particles[i],com); + fprintf(of,"%e\t%e\t%e\t%e\t%e\t%e\t%e\t%e\t%e\n",r->t,o.a,o.e,o.inc,o.Omega,o.omega,o.l,o.P,o.f); + com = reb_particle_com_of_pair(com,r->particles[i]); + } + fclose(of); +} + +// Macro to write a single field to a binary file. +// Memset forces padding to be set to 0 (not necessary but +// helps when comparing binary files) +#define WRITE_FIELD_TYPE(typen, value, length) {\ + struct reb_binary_field field;\ + memset(&field,0,sizeof(struct reb_binary_field));\ + field.type = typen;\ + field.size = (length);\ + reb_output_stream_write(bufp, &allocatedsize, sizep, &field,sizeof(struct reb_binary_field));\ + reb_output_stream_write(bufp, &allocatedsize, sizep, value,field.size);\ +} + + +void reb_simulation_save_to_stream(struct reb_simulation* r, char** bufp, size_t* sizep){ + if (r->simulationarchive_version<3){ + reb_simulation_error(r, "Simulationarchives with version < 3 are no longer supported.\n"); + } + size_t allocatedsize = 0; + *bufp = NULL; + *sizep = 0; + // Init integrators. This helps with bit-by-bit reproducibility. + reb_integrator_init(r); + + // Output header. + char header[64] = "\0"; + int cwritten = sprintf(header,"REBOUND Binary File. Version: %s",reb_version_str); + snprintf(header+cwritten+1,64-cwritten-1,"%s",reb_githash_str); + reb_output_stream_write(bufp, &allocatedsize, sizep, header,sizeof(char)*64); + + // Compress data if possible + // This does not affect future calculation, but might trigger a realloc. + if (r->ri_ias15.N_allocated > 3*r->N){ + r->ri_ias15.N_allocated = 3*r->N; + } + /// Output all fields + int i=0; + while (reb_binary_field_descriptor_list[i].dtype!=REB_FIELD_END){ + int dtype = reb_binary_field_descriptor_list[i].dtype; + // Simple data types: + if (dtype == REB_DOUBLE || dtype == REB_INT || dtype == REB_UINT || dtype == REB_UINT32 + || dtype == REB_INT64 || dtype == REB_UINT64 || dtype == REB_PARTICLE + || dtype == REB_PARTICLE4 || dtype == REB_VEC3D ){ + struct reb_binary_field field; + memset(&field,0,sizeof(struct reb_binary_field)); + field.type = reb_binary_field_descriptor_list[i].type; + switch (dtype){ + case REB_DOUBLE: + field.size = sizeof(double); + break; + case REB_INT: + field.size = sizeof(int); + break; + case REB_UINT: + field.size = sizeof(unsigned int); + break; + case REB_UINT32: + field.size = sizeof(uint32_t); + break; + case REB_INT64: + field.size = sizeof(int64_t); + break; + case REB_UINT64: + field.size = sizeof(uint64_t); + break; + case REB_VEC3D: + field.size = sizeof(struct reb_vec3d); + break; + case REB_PARTICLE: + field.size = sizeof(struct reb_particle); + break; + case REB_PARTICLE4: + field.size = 4*sizeof(struct reb_particle); + break; + } + reb_output_stream_write(bufp, &allocatedsize, sizep, &field, sizeof(struct reb_binary_field)); + char* pointer = (char*)r + reb_binary_field_descriptor_list[i].offset; + reb_output_stream_write(bufp, &allocatedsize, sizep, pointer, field.size); + } + // Pointer data types + if (dtype == REB_POINTER || dtype == REB_POINTER_ALIGNED ){ + struct reb_binary_field field; + memset(&field,0,sizeof(struct reb_binary_field)); + field.type = reb_binary_field_descriptor_list[i].type; + unsigned int* pointer_N = (unsigned int*)((char*)r + reb_binary_field_descriptor_list[i].offset_N); + field.size = (*pointer_N) * reb_binary_field_descriptor_list[i].element_size; + + if (field.size){ + reb_output_stream_write(bufp, &allocatedsize, sizep, &field, sizeof(struct reb_binary_field)); + char* pointer = (char*)r + reb_binary_field_descriptor_list[i].offset; + pointer = *(char**)pointer; + reb_output_stream_write(bufp, &allocatedsize, sizep, pointer, field.size); + } + } + // Pointer with a fixed size + if (dtype == REB_POINTER_FIXED_SIZE ){ + struct reb_binary_field field; + memset(&field,0,sizeof(struct reb_binary_field)); + field.type = reb_binary_field_descriptor_list[i].type; + field.size = reb_binary_field_descriptor_list[i].element_size; + + char* pointer = (char*)r + reb_binary_field_descriptor_list[i].offset; + pointer = *(char**)pointer; + if (pointer){ + reb_output_stream_write(bufp, &allocatedsize, sizep, &field, sizeof(struct reb_binary_field)); + reb_output_stream_write(bufp, &allocatedsize, sizep, pointer, field.size); + } + } + // Special datatype for IAS15. Similar to POINTER + if (dtype == REB_DP7 ){ + struct reb_binary_field field; + memset(&field,0,sizeof(struct reb_binary_field)); + field.type = reb_binary_field_descriptor_list[i].type; + unsigned int* pointer_N = (unsigned int*)((char*)r + reb_binary_field_descriptor_list[i].offset_N); + field.size = (*pointer_N) * reb_binary_field_descriptor_list[i].element_size; + + if (field.size){ + reb_output_stream_write(bufp, &allocatedsize, sizep, &field, sizeof(struct reb_binary_field)); + char* pointer = (char*)r + reb_binary_field_descriptor_list[i].offset; + struct reb_dp7* dp7 = (struct reb_dp7*)pointer; + reb_output_stream_write(bufp, &allocatedsize, sizep, dp7->p0,field.size/7); + reb_output_stream_write(bufp, &allocatedsize, sizep, dp7->p1,field.size/7); + reb_output_stream_write(bufp, &allocatedsize, sizep, dp7->p2,field.size/7); + reb_output_stream_write(bufp, &allocatedsize, sizep, dp7->p3,field.size/7); + reb_output_stream_write(bufp, &allocatedsize, sizep, dp7->p4,field.size/7); + reb_output_stream_write(bufp, &allocatedsize, sizep, dp7->p5,field.size/7); + reb_output_stream_write(bufp, &allocatedsize, sizep, dp7->p6,field.size/7); + } + } + i++; + } + + // Write function pointer warning flag + int functionpointersused = 0; + if (r->coefficient_of_restitution || + r->collision_resolve || + r->additional_forces || + r->heartbeat || + r->ri_trace.S || + r->ri_trace.S_peri || + r->post_timestep_modifications || + r->free_particle_ap){ + functionpointersused = 1; + } + + struct reb_binary_field field_functionp; + memset(&field_functionp,0,sizeof(struct reb_binary_field)); + field_functionp.type = 87; // TODO do not hardcode. + field_functionp.size = sizeof(int); + reb_output_stream_write(bufp, &allocatedsize, sizep, &field_functionp, sizeof(struct reb_binary_field)); + reb_output_stream_write(bufp, &allocatedsize, sizep, &functionpointersused, field_functionp.size); + + int end_null = 0; + + struct reb_binary_field_descriptor fd_end = reb_binary_field_descriptor_for_name("end"); + WRITE_FIELD_TYPE(fd_end.type, &end_null, 0); + struct reb_simulationarchive_blob blob = {0}; + reb_output_stream_write(bufp, &allocatedsize, sizep, &blob, sizeof(struct reb_simulationarchive_blob)); +} + +void reb_simulation_output_velocity_dispersion(struct reb_simulation* r, char* filename){ + const int N = r->N; + // Algorithm with reduced roundoff errors (see wikipedia) + struct reb_vec3d A = {.x=0, .y=0, .z=0}; + struct reb_vec3d Q = {.x=0, .y=0, .z=0}; + for (int i=0;iparticles[i]; + A.x = A.x + (p.vx-A.x)/(double)(i+1); + if (r->integrator==REB_INTEGRATOR_SEI){ + A.y = A.y + (p.vy+1.5*r->ri_sei.OMEGA*p.x-A.y)/(double)(i+1); + }else{ + A.y = A.y + (p.vy-A.y)/(double)(i+1); + } + A.z = A.z + (p.vz-A.z)/(double)(i+1); + Q.x = Q.x + (p.vx-Aim1.x)*(p.vx-A.x); + if (r->integrator==REB_INTEGRATOR_SEI){ + Q.y = Q.y + (p.vy+1.5*r->ri_sei.OMEGA*p.x-Aim1.y)*(p.vy+1.5*r->ri_sei.OMEGA*p.x-A.y); + }else{ + Q.y = Q.y + (p.vy-Aim1.y)*(p.vy-A.y); + } + Q.z = Q.z + (p.vz-Aim1.z)*(p.vz-A.z); + } +#ifdef MPI + int N_tot = 0; + struct reb_vec3d A_tot = {.x=0, .y=0, .z=0}; + struct reb_vec3d Q_tot = {.x=0, .y=0, .z=0}; + MPI_Reduce(&N, &N_tot, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); + MPI_Reduce(&A, &A_tot, 3, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); + MPI_Reduce(&Q, &Q_tot, 3, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); + if (r->mpi_id!=0) return; +#else + int N_tot = N; + struct reb_vec3d A_tot = A; + struct reb_vec3d Q_tot = Q; +#endif + Q_tot.x = sqrt(Q_tot.x/(double)N_tot); + Q_tot.y = sqrt(Q_tot.y/(double)N_tot); + Q_tot.z = sqrt(Q_tot.z/(double)N_tot); + FILE* of = fopen(filename,"ab"); + if (of==NULL){ + reb_simulation_error(r, "Can not open file."); + return; + } + fprintf(of,"%e\t%e\t%e\t%e\t%e\t%e\t%e\n",r->t,A_tot.x,A_tot.y,A_tot.z,Q_tot.x,Q_tot.y,Q_tot.z); + fclose(of); +} + diff --git a/rebound/source/src/output.h b/rebound/source/src/output.h new file mode 100644 index 0000000000000000000000000000000000000000..6c31ca86adb891d0dd89788c1b5aa400d3a97cc2 --- /dev/null +++ b/rebound/source/src/output.h @@ -0,0 +1,55 @@ +/** + * @file output.h + * @brief Output routines. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _OUTPUT_H +#define _OUTPUT_H +struct reb_simulation; + +#include +void reb_output_stream_write(char** bufp, size_t* allocatedsize, size_t* sizep, void* restrict data, size_t size); ///< Replacement for memstream + +#ifdef PROFILING +/** + * Profiling categories + */ +enum profiling_categories { + PROFILING_CAT_INTEGRATOR, + PROFILING_CAT_BOUNDARY, + PROFILING_CAT_GRAVITY, + PROFILING_CAT_COLLISION, +#ifdef OPENGL + PROFILING_CAT_VISUALIZATION, +#endif // OPENGL + PROFILING_CAT_NUM, +}; +void profiling_start(void); +void profiling_stop(int cat); +#define PROFILING_START() profiling_start() ///< Start profiling block +#define PROFILING_STOP(C) profiling_stop(C) ///< Stop profiling block +#else // PROFILING +#define PROFILING_START() ///< Start profiling block (dummy, does nothing) +#define PROFILING_STOP(C) ///< Stop profiling block (dummy, does nothing) +#endif // PROFILING + +#endif diff --git a/rebound/source/src/particle.c b/rebound/source/src/particle.c new file mode 100644 index 0000000000000000000000000000000000000000..4782890cf52b26df8161bd78b7eabb28934f5ab7 --- /dev/null +++ b/rebound/source/src/particle.c @@ -0,0 +1,607 @@ +/** + * @file particle.c + * @brief reb_particle structure and main particle routines. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#include +#include "rebound.h" +#include "tree.h" +#include "boundary.h" +#include "particle.h" +#include "integrator_ias15.h" +#include "integrator_bs.h" +#include "integrator_mercurius.h" +#include "integrator_trace.h" +#include "collision.h" +#ifdef OPENMP +#include +#endif +#ifdef MPI +#include "communication_mpi.h" +#endif // MPI + +#ifdef GRAVITY_GRAPE +#warning Fix this. +extern double gravity_minimum_mass; +#endif // GRAVITY_GRAPE + +static void reb_simulation_add_local(struct reb_simulation* const r, struct reb_particle pt){ + if (reb_boundary_particle_is_in_box(r, pt)==0){ + if (r->boxsize.x==0 && r->boxsize.y==0 && r->boxsize.z==0){ + reb_simulation_error(r,"Cannot add particle because simulation box not initialized. Call reb_simulation_configure_box() before adding particles."); + }else{ + // reb_particle has left the box. Do not add. + reb_simulation_error(r,"Particle outside of box boundaries. Did not add particle."); + } + return; + } + while (r->N_allocated<=r->N){ + unsigned int old_N_allocated = r->N_allocated; + r->N_allocated = r->N_allocated ? r->N_allocated * 2 : 128; + r->particles = realloc(r->particles,sizeof(struct reb_particle)*r->N_allocated); + memset(r->particles + old_N_allocated, 0, (r->N_allocated - old_N_allocated) * sizeof(struct reb_particle)); + } + + r->particles[r->N] = pt; + r->particles[r->N].sim = r; + if (r->gravity==REB_GRAVITY_TREE || r->collision==REB_COLLISION_TREE || r->collision==REB_COLLISION_LINETREE){ + if (r->root_size==-1){ + reb_simulation_error(r,"root_size is -1. Make sure you call reb_simulation_configure_box() before using a tree based gravity or collision solver."); + return; + } + if(fabs(pt.x)>r->boxsize.x/2. || fabs(pt.y)>r->boxsize.y/2. || fabs(pt.z)>r->boxsize.z/2.){ + reb_simulation_error(r,"Cannot add particle outside of simulation box."); + return; + } + reb_tree_add_particle_to_tree(r, r->N); + } + (r->N)++; + if (r->integrator == REB_INTEGRATOR_MERCURIUS){ + struct reb_integrator_mercurius* rim = &(r->ri_mercurius); + if (r->ri_mercurius.mode==0){ //WHFast part + rim->recalculate_r_crit_this_timestep = 1; + rim->recalculate_coordinates_this_timestep = 1; + }else{ // IAS15 part + reb_integrator_ias15_reset(r); + if (rim->N_allocated_dcritN){ + rim->dcrit = realloc(rim->dcrit, sizeof(double)*r->N); + rim->N_allocated_dcrit = r->N; + } + rim->dcrit[r->N-1] = reb_integrator_mercurius_calculate_dcrit_for_particle(r,r->N-1); + if (rim->N_allocatedN){ + rim->particles_backup = realloc(rim->particles_backup,sizeof(struct reb_particle)*r->N); + rim->encounter_map = realloc(rim->encounter_map,sizeof(int)*r->N); + rim->N_allocated = r->N; + } + rim->encounter_map[rim->encounter_N] = r->N-1; + rim->encounter_N++; + if (r->N_active==-1){ + // If global N_active is not set, then all particles are active, so the new one as well. + // Otherwise, assume we're adding non active particle. + rim->encounter_N_active++; + } + } + } + + // TRACE can add particles mid-timestep now + if (r->integrator == REB_INTEGRATOR_TRACE){ + struct reb_integrator_trace* ri_trace = &(r->ri_trace); + if (r->ri_trace.mode==1 || r->ri_trace.mode==3){ // BS part + const int old_N = r->N-1; + if (ri_trace->N_allocated < r->N){ + ri_trace->current_Ks = realloc(ri_trace->current_Ks, sizeof(int)*r->N*r->N); + ri_trace->particles_backup = realloc(ri_trace->particles_backup, sizeof(struct reb_particle)*r->N); + ri_trace->particles_backup_kepler = realloc(ri_trace->particles_backup_kepler, sizeof(struct reb_particle)*r->N); + ri_trace->current_Ks = realloc(ri_trace->current_Ks, sizeof(int)*r->N*r->N); + ri_trace->encounter_map = realloc(ri_trace->encounter_map, sizeof(int)*r->N); + ri_trace->N_allocated = r->N; + } + + // First reshuffle existing Ks + for (int i = old_N-1; i >= 0; i--){ + for (int j = old_N-1; j >= 0; j--){ + ri_trace->current_Ks[i*old_N+j+i] = ri_trace->current_Ks[i*old_N+j]; + } + } + + // add in new particle, we want it to interact with all currently interacting particles + // exclude star + for (int i = 1; i < ri_trace->encounter_N; i++){ + ri_trace->current_Ks[ri_trace->encounter_map[i]*r->N+old_N] = 1; + } + + ri_trace->encounter_map[ri_trace->encounter_N] = old_N; + ri_trace->encounter_N++; + + if (r->N_active==-1){ + // If global N_active is not set, then all particles are active, so the new one as well. + // Otherwise, assume we're adding non active particle. + ri_trace->encounter_N_active++; + } + + } + } +} + +void reb_simulation_add(struct reb_simulation* const r, struct reb_particle pt){ +#ifdef GRAVITY_GRAPE + if (pt.mN_root/r->mpi_num; + int proc_id = rootbox/N_root_per_node; + const unsigned int N_active = (r->N_active==-1)?r->N: (unsigned int)r->N_active; + if (proc_id != r->mpi_id && r->N >= N_active){ + // Add particle to array and send them to proc_id later. + reb_communication_mpi_add_particle_to_send_queue(r,pt,proc_id); + return; + } +#endif // MPI + // Add particle to local partical array. + reb_simulation_add_local(r, pt); +} + +int reb_particle_check_testparticles(struct reb_simulation* const r){ + if (r->N_active == (int)r->N || r->N_active == -1){ + return 0; + } + // Check if testparticle of type 0 has mass!=0 + if (r->testparticle_type == 0){ + int found_issue = 0; + const int N_real = r->N - r->N_var; +#pragma omp parallel for + for (int i=r->N_active; iparticles[i].m!=0.){ + found_issue = 1; + } + } + if (found_issue){ + return 1; + } + } + return 0; +} + +// Finds the two largest particles in the simulation. *p1 and *p2 will be set to the indicies of the particles. +void reb_simulation_two_largest_particles(struct reb_simulation* r, int* p1, int* p2) { + struct reb_particle* particles = r->particles; + *p1 = -1; + *p2 = -1; + double largest1 = -1.0; + double largest2 = -1.0; +#ifdef OPENMP + int num_threads; + // A struct to hold the two largest values found by each thread + struct two_max { + double largest1; + double largest2; + int p1; + int p2; + }; + + // Array to store the two largest values from each thread + struct two_max *thread_max; +#pragma omp parallel + { + num_threads = omp_get_num_threads(); +#pragma omp master + { + thread_max = (struct two_max *)malloc(num_threads * sizeof(struct two_max)); + } + +#pragma omp barrier + int thread_id = omp_get_thread_num(); + thread_max[thread_id].largest1 = -1.0; + thread_max[thread_id].largest2 = -1.0; + thread_max[thread_id].p1 = -1; + thread_max[thread_id].p2 = -1; + +#pragma omp for + for (int i=0; iN; i++) { + if (particles[i].r > thread_max[thread_id].largest1) { + thread_max[thread_id].largest2 = thread_max[thread_id].largest1; + thread_max[thread_id].p2 = thread_max[thread_id].p1; + thread_max[thread_id].largest1 = particles[i].r; + thread_max[thread_id].p1 = i; + } else if (particles[i].r > thread_max[thread_id].largest2) { + thread_max[thread_id].largest2 = particles[i].r; + thread_max[thread_id].p2 = i; + } + } + } + + // Reduce the results from all threads + for (int i=0; i largest1) { + largest2 = largest1; + *p2 = *p1; + largest1 = thread_max[i].largest1; + *p1 = thread_max[i].p1; + } else if (thread_max[i].largest1 > largest2) { + largest2 = thread_max[i].largest1; + *p2 = thread_max[i].p1; + } + + if (thread_max[i].largest2 > largest2) { + largest2 = thread_max[i].largest2; + *p2 = thread_max[i].p2; + } + } + + free(thread_max); +#else // OPENMP + for (int i=0; iN; i++) { + if (particles[i].r > largest1) { + largest2 = largest1; + *p2 = *p1; + largest1 = particles[i].r; + *p1 = i; + }else{ + if (particles[i].r > largest2) { + largest2 = particles[i].r; + *p2 = i; + } + } + } +#endif // OPENMP +} + + +int reb_get_rootbox_for_particle(const struct reb_simulation* const r, struct reb_particle pt){ + if (r->root_size==-1) return 0; + int i = ((int)floor((pt.x + r->boxsize.x/2.)/r->root_size)+r->N_root_x)%r->N_root_x; + int j = ((int)floor((pt.y + r->boxsize.y/2.)/r->root_size)+r->N_root_y)%r->N_root_y; + int k = ((int)floor((pt.z + r->boxsize.z/2.)/r->root_size)+r->N_root_z)%r->N_root_z; + int index = (k*r->N_root_y+j)*r->N_root_x+i; + return index; +} + +int reb_simulation_particle_index(struct reb_particle* p){ + struct reb_simulation* r = p->sim; + int i = 0; + const int N = r->N; + while(&r->particles[i] != p){ + i++; + if(i>=N){ + return -1; // p not in simulation. Shouldn't happen unless you mess with p.sim after creating the particle + } + } + return i; +} + +static struct reb_particle* reb_search_lookup_table(struct reb_simulation* const r, uint32_t hash){ + const struct reb_hash_pointer_pair* const lookup = r->particle_lookup_table; + if (lookup == NULL){ + return NULL; + } + + int left = 0; + int right = r->N_lookup-1; + int middle; + while(left <= right){ + middle = (left + right)/2; + uint32_t lookuphash = lookup[middle].hash; + if(lookuphash < hash){ + left = middle+1; + } + else if(lookuphash > hash){ + right = middle-1; + } + else if(lookuphash == hash){ + if(lookup[middle].index < (int)r->N){ + return &r->particles[lookup[middle].index]; + } + else{ // found lookup table entry pointing beyond r->N in particles array. Needs update + return NULL; + } + } + } + return NULL; +} + +static int compare_hash(const void* a, const void* b){ + struct reb_hash_pointer_pair* ia = (struct reb_hash_pointer_pair*)a; + struct reb_hash_pointer_pair* ib = (struct reb_hash_pointer_pair*)b; + return (ia->hash > ib->hash) - (ia->hash < ib->hash); // to avoid overflow possibilities +} + +static void reb_update_particle_lookup_table(struct reb_simulation* const r){ + const struct reb_particle* const particles = r->particles; + int N_hash = 0; + int zerohash = -1; + for(unsigned int i=0; iN; i++){ + if(N_hash >= r->N_allocated_lookup){ + r->N_allocated_lookup = r->N_allocated_lookup ? r->N_allocated_lookup * 2 : 128; + r->particle_lookup_table = realloc(r->particle_lookup_table, sizeof(struct reb_hash_pointer_pair)*r->N_allocated_lookup); + } + if(particles[i].hash == 0){ // default hash (0) special case + if (zerohash == -1){ // first zero hash + zerohash = i; + r->particle_lookup_table[zerohash].hash = particles[i].hash; + r->particle_lookup_table[zerohash].index = i; + N_hash++; + } + else{ // update zero hash entry in lookup without incrementing N_hash + r->particle_lookup_table[zerohash].index = i; + } + } + else{ + r->particle_lookup_table[N_hash].hash = particles[i].hash; + r->particle_lookup_table[N_hash].index = i; + N_hash++; + } + } + r->N_lookup = N_hash; + qsort(r->particle_lookup_table, r->N_lookup, sizeof(*r->particle_lookup_table), compare_hash); // only sort the first N_lookup entries that are initialized. +} + +struct reb_particle* reb_simulation_particle_by_hash(struct reb_simulation* const r, uint32_t hash){ + struct reb_particle* p; + p = reb_search_lookup_table(r, hash); + if (p == NULL){ + reb_update_particle_lookup_table(r); + p = reb_search_lookup_table(r, hash); + } + else{ + if (p->hash != hash){ + reb_update_particle_lookup_table(r); + p = reb_search_lookup_table(r, hash); + } + } + return p; +} + +struct reb_particle reb_simulation_particle_by_hash_mpi(struct reb_simulation* const r, uint32_t hash){ +#ifdef MPI + struct reb_particle* p = reb_simulation_particle_by_hash(r, hash); + int found = (p==NULL)?0:1; + MPI_Allreduce(MPI_IN_PLACE, &found, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if (found == 0){ + return reb_particle_nan(); + } + if (found > 1){ + reb_simulation_error(r, "Multiple particles with same hash found."); + return reb_particle_nan(); + } + struct reb_particle ph = {0}; + if (p!=NULL){ + ph = *p; + ph.sim = NULL; + } + int root = (p==NULL) ? 0 : r->mpi_id; + MPI_Allreduce(MPI_IN_PLACE, &root, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + MPI_Bcast(&ph, sizeof(struct reb_particle), MPI_CHAR, root, MPI_COMM_WORLD); + return ph; +#else // MPI + struct reb_particle* p = reb_simulation_particle_by_hash(r, hash); + if (p==0){ + return reb_particle_nan(); + }else{ + return *p; + } +#endif // MPI +} + +void reb_simulation_remove_all_particles(struct reb_simulation* const r){ + r->N = 0; + r->N_allocated = 0; + r->N_active = -1; + r->N_var = 0; + free(r->particles); + r->particles = NULL; +} + +int reb_simulation_remove_particle(struct reb_simulation* const r, int index, int keep_sorted){ + if (r->integrator == REB_INTEGRATOR_MERCURIUS){ + keep_sorted = 1; // Force keep_sorted for hybrid integrator + struct reb_integrator_mercurius* rim = &(r->ri_mercurius); + if (rim->N_allocated_dcrit>0 && index<(int)rim->N_allocated_dcrit){ + for (unsigned int i=0;iN-1;i++){ + if ((int)i>=index){ + rim->dcrit[i] = rim->dcrit[i+1]; + } + } + } + reb_integrator_ias15_reset(r); + if (r->ri_mercurius.mode==1){ + struct reb_integrator_mercurius* rim = &(r->ri_mercurius); + int after_to_be_removed_particle = 0; + int encounter_index = -1; + for (unsigned int i=0;iencounter_N;i++){ + if (after_to_be_removed_particle == 1){ + rim->encounter_map[i-1] = rim->encounter_map[i] - 1; + } + if (rim->encounter_map[i]==index){ + encounter_index = i; + after_to_be_removed_particle = 1; + } + } + if (encounter_index<(int)rim->encounter_N_active){ + rim->encounter_N_active--; + } + rim->encounter_N--; + } + } + + if (r->integrator == REB_INTEGRATOR_TRACE){ + keep_sorted = 1; // Force keepSorted for hybrid integrator + struct reb_integrator_trace* ri_trace = &(r->ri_trace); + reb_integrator_bs_reset(r); + if (r->ri_trace.mode==1 || r->ri_trace.mode==3){ + // Only removed mid-timestep if collision - BS Step! + int after_to_be_removed_particle = 0; + int encounter_index = -1; + for (int i=0;iencounter_N;i++){ + if (after_to_be_removed_particle == 1){ + ri_trace->encounter_map[i-1] = ri_trace->encounter_map[i] - 1; + } + if (ri_trace->encounter_map[i]==index){ + encounter_index = i; + after_to_be_removed_particle = 1; + } + } + + // reshuffle current_Ks + unsigned int counter = 0; + const int new_N = r->N-1; + for (unsigned int i = 0; i < new_N; i++){ + if (i == index) counter += r->N; + for (unsigned int j = 0; j < new_N; j++){ + if (j == index) counter++; + ri_trace->current_Ks[i*new_N+j] = ri_trace->current_Ks[i*new_N+j+counter]; + } + } + if (encounter_indexencounter_N_active){ + ri_trace->encounter_N_active--; + } + ri_trace->encounter_N--; + } + } + + if (r->N==1){ + r->N = 0; + if(r->free_particle_ap){ + r->free_particle_ap(&r->particles[index]); + } + reb_simulation_warning(r, "Last particle removed."); + return 1; + } + if (index >= (int)r->N || index < 0){ + char warning[1024]; + sprintf(warning, "Index %d passed to particles_remove was out of range (N=%d). Did not remove particle.", index, r->N); + reb_simulation_error(r, warning); + return 0; + } + if (r->N_var){ + reb_simulation_error(r, "Removing particles not supported when calculating MEGNO. Did not remove particle."); + return 0; + } + if(keep_sorted){ + r->N--; + if(r->free_particle_ap){ + r->free_particle_ap(&r->particles[index]); + } + if(indexN_active){ + r->N_active--; + } + for(unsigned int j=index; jN; j++){ + r->particles[j] = r->particles[j+1]; + } + if (r->tree_root){ + reb_simulation_error(r, "REBOUND cannot remove a particle a tree and keep the particles sorted. Did not remove particle."); + return 0; + } + }else{ + if (r->tree_root){ + // Just flag particle, will be removed in update_tree. + r->particles[index].y = nan(""); + if(r->free_particle_ap){ + r->free_particle_ap(&r->particles[index]); + } + }else{ + r->N--; + if(r->free_particle_ap){ + r->free_particle_ap(&r->particles[index]); + } + r->particles[index] = r->particles[r->N]; + } + } + + return 1; +} + +int reb_simulation_remove_particle_by_hash(struct reb_simulation* const r, uint32_t hash, int keep_sorted){ + struct reb_particle* p = reb_simulation_particle_by_hash(r, hash); + if(p == NULL){ + reb_simulation_error(r,"Particle to be removed not found in simulation. Did not remove particle."); + return 0; + } + else{ + int index = reb_simulation_particle_index(p); + return reb_simulation_remove_particle(r, index, keep_sorted); + } +} + +void reb_particle_isub(struct reb_particle* p1, struct reb_particle* p2){ + p1->x -= p2->x; + p1->y -= p2->y; + p1->z -= p2->z; + p1->vx -= p2->vx; + p1->vy -= p2->vy; + p1->vz -= p2->vz; + p1->m -= p2->m; +} + +void reb_particle_iadd(struct reb_particle* p1, struct reb_particle* p2){ + p1->x += p2->x; + p1->y += p2->y; + p1->z += p2->z; + p1->vx += p2->vx; + p1->vy += p2->vy; + p1->vz += p2->vz; + p1->m += p2->m; +} + +void reb_particle_imul(struct reb_particle* p1, double value){ + p1->x *= value; + p1->y *= value; + p1->z *= value; + p1->vx *= value; + p1->vy *= value; + p1->vz *= value; + p1->m *= value; +} + +double reb_particle_distance(struct reb_particle* p1, struct reb_particle* p2){ + double dx = p1->x - p2->x; + double dy = p1->y - p2->y; + double dz = p1->z - p2->z; + return sqrt(dx*dx + dy*dy + dz*dz); +} + +struct reb_particle reb_particle_nan(void){ + struct reb_particle p; + p.x = nan(""); + p.y = nan(""); + p.z = nan(""); + p.vx = nan(""); + p.vy = nan(""); + p.vz = nan(""); + p.ax = nan(""); + p.ay = nan(""); + p.az = nan(""); + p.m = nan(""); + p.r = nan(""); + p.last_collision = nan(""); + p.c = NULL; + p.hash = 0; + p.ap = NULL; + p.sim = NULL; + + return p; +} diff --git a/rebound/source/src/particle.h b/rebound/source/src/particle.h new file mode 100644 index 0000000000000000000000000000000000000000..f5755b5ebc61c6102ed8d07c5fc8935de76a5b17 --- /dev/null +++ b/rebound/source/src/particle.h @@ -0,0 +1,43 @@ +/** + * @file particle.h + * @brief reb_particle structure and main particle routines. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _PARTICLE_H +#define _PARTICLE_H +struct reb_simulation; +struct reb_particle; +struct reb_treecell; + +/** + * @brief Returns the index of the rootbox for the current particles based on its position. + * @param r REBOUND simulation to be considered. + * @param pt reb_particle to be checked. + * @return Index of the rootbox. + */ +int reb_get_rootbox_for_particle(const struct reb_simulation* const r, struct reb_particle pt); + +/** + * @brief Returns 1 if a testparticle of type 0 has a finite mass. + */ +int reb_particle_check_testparticles(struct reb_simulation* const r); +#endif // _PARTICLE_H diff --git a/rebound/source/src/rebound.c b/rebound/source/src/rebound.c new file mode 100644 index 0000000000000000000000000000000000000000..ce604c8df2edcbe4ab9f35593024b725aac9b3dc --- /dev/null +++ b/rebound/source/src/rebound.c @@ -0,0 +1,1144 @@ +/** + * @file rebound.c + * @brief Main REBOUND control structures and routine, iteration loop. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#define _NO_CRT_STDIO_INLINE // WIN32 to use _vsprintf_s +#if defined(_WIN32) && defined(_MSC_VER) +#pragma comment(lib, "legacy_stdio_definitions.lib") +#endif +#include +#include +#include // for offsetof() +#include +#include +#include +#include +#include "rebound.h" +#include "fmemopen.h" // own implementation of fmemopen +#include "integrator.h" +#include "integrator_saba.h" +#include "integrator_whfast.h" +#include "integrator_ias15.h" +#include "integrator_mercurius.h" +#include "integrator_trace.h" +#include "integrator_bs.h" +#include "boundary.h" +#include "gravity.h" +#include "collision.h" +#include "tree.h" +#include "output.h" +#include "tools.h" +#include "particle.h" +#include "input.h" +#include "binarydiff.h" +#include "simulationarchive.h" +#include "server.h" +#ifdef MPI +#include "communication_mpi.h" +#endif +#include "display.h" +#ifdef OPENMP +#include +#endif +#define MAX(a, b) ((a) < (b) ? (b) : (a)) ///< Returns the maximum of a and b +#define STRINGIFY(s) str(s) +#define str(s) #s +#ifdef _WIN32 +void usleep(__int64 usec); +#endif // _WIN32 +const int reb_max_messages_length = 1024; // needs to be constant expression for array size +const int reb_N_max_messages = 10; +const char* reb_build_str = __DATE__ " " __TIME__; // Date and time build string. +const char* reb_version_str = "4.5.1"; // **VERSIONLINE** This line gets updated automatically. Do not edit manually. +const char* reb_githash_str = STRINGIFY(GITHASH); // This line gets updated automatically. Do not edit manually. + +static int reb_simulation_error_message_waiting(struct reb_simulation* const r); +static void reb_run_heartbeat(struct reb_simulation* const r); + +void reb_simulation_steps(struct reb_simulation* const r, unsigned int N_steps){ + reb_run_heartbeat(r); + for (unsigned int i=0;ipre_timestep_modifications){ + reb_simulation_synchronize(r); + r->pre_timestep_modifications(r); + r->ri_whfast.recalculate_coordinates_this_timestep = 1; + r->ri_mercurius.recalculate_coordinates_this_timestep = 1; + } + reb_integrator_part1(r); + PROFILING_STOP(PROFILING_CAT_INTEGRATOR); + + // Update and simplify tree. + // Prepare particles for distribution to other nodes. + // This function also creates the tree if called for the first time. + if (r->tree_needs_update || r->gravity==REB_GRAVITY_TREE || r->collision==REB_COLLISION_TREE || r->collision==REB_COLLISION_LINETREE){ + // Check for root crossings. + PROFILING_START(); + reb_boundary_check(r); + PROFILING_STOP(PROFILING_CAT_BOUNDARY); + + // Update tree (this will remove particles which left the box) + PROFILING_START(); + reb_simulation_update_tree(r); + PROFILING_STOP(PROFILING_CAT_GRAVITY); + } + + PROFILING_START(); +#ifdef MPI + // Distribute particles and add newly received particles to tree. + reb_communication_mpi_distribute_particles(r); +#endif // MPI + + if (r->tree_root!=NULL && r->gravity==REB_GRAVITY_TREE){ + // Update center of mass and quadrupole moments in tree in preparation of force calculation. + reb_simulation_update_tree_gravity_data(r); +#ifdef MPI + // Prepare essential tree (and particles close to the boundary needed for collisions) for distribution to other nodes. + reb_tree_prepare_essential_tree_for_gravity(r); + + // Transfer essential tree and particles needed for collisions. + reb_communication_mpi_distribute_essential_tree_for_gravity(r); +#endif // MPI + } + + // Calculate accelerations. + reb_calculate_acceleration(r); + if (r->N_var){ + reb_calculate_acceleration_var(r); + } + // Calculate non-gravity accelerations. + if (r->additional_forces) r->additional_forces(r); + PROFILING_STOP(PROFILING_CAT_GRAVITY); + + // A 'DKD'-like integrator will do the 'KD' part. + PROFILING_START(); + reb_integrator_part2(r); + + if (r->post_timestep_modifications){ + reb_simulation_synchronize(r); + r->post_timestep_modifications(r); + r->ri_whfast.recalculate_coordinates_this_timestep = 1; + r->ri_mercurius.recalculate_coordinates_this_timestep = 1; + } + + if (r->N_var){ + reb_simulation_rescale_var(r); + } + PROFILING_STOP(PROFILING_CAT_INTEGRATOR); + + // Do collisions here. We need both the positions and velocities at the same time. + // Check for root crossings. + PROFILING_START(); + reb_boundary_check(r); + if (r->tree_needs_update){ + // Update tree (this will remove particles which left the box) + reb_simulation_update_tree(r); + } + PROFILING_STOP(PROFILING_CAT_BOUNDARY); + + // Search for collisions using local and essential tree. + PROFILING_START(); + reb_collision_search(r); + PROFILING_STOP(PROFILING_CAT_COLLISION); + + // Update walltime + struct reb_timeval time_end; + gettimeofday(&time_end,NULL); + r->walltime_last_step = time_end.tv_sec-time_beginning.tv_sec+(time_end.tv_usec-time_beginning.tv_usec)/1e6; + r->walltime_last_steps_sum += r->walltime_last_step; + r->walltime_last_steps_N +=1; + if (r->walltime_last_steps_sum > 0.1){ + r->walltime_last_steps = r->walltime_last_steps_sum/r->walltime_last_steps_N; + r->walltime_last_steps_sum =0; + r->walltime_last_steps_N = 0; + } + r->walltime += r->walltime_last_step; + // Update step counter + r->steps_done++; // This also counts failed IAS15 steps +} + +void reb_exit(const char* const msg){ + // This function should also kill all children. + // Not implemented as pid is not easy to get to. + // kill(pid, SIGKILL); + fprintf(stderr,"\n\033[1mFatal error! Exiting now.\033[0m %s\n",msg); + exit(EXIT_FAILURE); +} + +void reb_message(struct reb_simulation* const r, char type, const char* const msg){ + int save_messages = 0; + if (r != NULL){ + save_messages = r->save_messages; + } + if (!save_messages || strlen(msg)>=reb_max_messages_length){ + if (type=='w'){ + fprintf(stderr,"\n\033[1mWarning!\033[0m %s\n",msg); + }else if (type=='e'){ + fprintf(stderr,"\n\033[1mError!\033[0m %s\n",msg); + } + }else{ + // TODO: Should be protected by MUTEX + if (r->messages==NULL){ + r->messages = calloc(reb_N_max_messages,sizeof(char*)); + } + int n = 0; + for (;nmessages[n]==NULL){ + break; + } + } + if (n==reb_N_max_messages){ + free(r->messages[0]); + for (int i=0;imessages[i] = r->messages[i+1]; + } + r->messages[reb_N_max_messages-1] = NULL; + n= reb_N_max_messages-1; + } + r->messages[n] = malloc(sizeof(char*)*reb_max_messages_length); + r->messages[n][0] = type; + strcpy(r->messages[n]+1, msg); + } +} + +void reb_simulation_warning(struct reb_simulation* const r, const char* const msg){ + reb_message(r, 'w', msg); +} + +void reb_simulation_error(struct reb_simulation* const r, const char* const msg){ + reb_message(r, 'e', msg); +} + +void reb_simulation_stop(struct reb_simulation* const r){ + r->status = REB_STATUS_USER; +} + +int reb_simulation_get_next_message(struct reb_simulation* const r, char* const buf){ + if (r->messages){ + char* w0 = r->messages[0]; + if (w0){ + for(int i=0;imessages[i] = r->messages[i+1]; + } + r->messages[reb_N_max_messages-1] = NULL; + strcpy(buf,w0); + free(w0); + return 1; + } + } + return 0; +} + +static int reb_simulation_error_message_waiting(struct reb_simulation* const r){ + if (r->messages){ + for (int i=0;imessages[i]!=NULL){ + if (r->messages[i][0]=='e'){ + return 1; + } + } + } + } + return 0; +} + + +void reb_simulation_configure_box(struct reb_simulation* const r, const double root_size, const int N_root_x, const int N_root_y, const int N_root_z){ + r->root_size = root_size; + r->N_root_x = N_root_x; + r->N_root_y = N_root_y; + r->N_root_z = N_root_z; + // Setup box sizes + r->boxsize.x = r->root_size *(double)r->N_root_x; + r->boxsize.y = r->root_size *(double)r->N_root_y; + r->boxsize.z = r->root_size *(double)r->N_root_z; + r->N_root = r->N_root_x*r->N_root_y*r->N_root_z; + r->boxsize_max = MAX(r->boxsize.x, MAX(r->boxsize.y, r->boxsize.z)); + if (r->N_root_x <=0 || r->N_root_y <=0 || r->N_root_z <= 0){ + reb_exit("Number of root boxes must be greater or equal to 1 in each direction."); + } +} +#ifdef MPI +void reb_mpi_init(struct reb_simulation* const r){ + reb_communication_mpi_init(r,0,NULL); + // Make sure domain can be decomposed into equal number of root boxes per node. + if ((r->N_root/r->mpi_num)*r->mpi_num != r->N_root){ + if (r->mpi_id==0) fprintf(stderr,"ERROR: Number of root boxes (%d) not a multiple of mpi nodes (%d).\n",r->N_root,r->mpi_num); + exit(-1); + } + printf("MPI-node: %d. Process id: %d.\n",r->mpi_id, getpid()); +} + +void reb_mpi_finalize(struct reb_simulation* const r){ + r->mpi_id = 0; + r->mpi_num = 0; + MPI_Finalize(); +} +#endif // MPI + +void reb_simulation_free(struct reb_simulation* const r){ + reb_simulation_free_pointers(r); + free(r); +} + +void reb_simulation_free_pointers(struct reb_simulation* const r){ + if (r->simulationarchive_filename){ + free(r->simulationarchive_filename); + } + if(r->display_settings){ + free(r->display_settings); + } +#ifdef OPENGL + if(r->display_data){ + // Waiting for visualization to shut down. + if (r->display_data->window){ // Not needed under normal circumstances + usleep(100); + } + if (r->display_data->window){ // still running? + printf("Waiting for OpenGL visualization to shut down...\n"); + while(r->display_data->window){ + usleep(100); + } + } + pthread_mutex_destroy(&(r->display_data->mutex)); + if (r->display_data->r_copy){ + reb_simulation_free(r->display_data->r_copy); + r->display_data->r_copy = NULL; + } + if (r->display_data->particle_data){ + free(r->display_data->particle_data); + r->display_data->particle_data = NULL; + } + if (r->display_data->orbit_data){ + free(r->display_data->orbit_data); + r->display_data->orbit_data = NULL; + } + free(r->display_data); + r->display_data = NULL; + } +#endif //OPENGL +#ifdef SERVER + reb_simulation_stop_server(r); +#endif // SERVER + reb_tree_delete(r); + if (r->gravity_cs){ + free(r->gravity_cs ); + } + if (r->collisions){ + free(r->collisions ); + } + reb_integrator_whfast_reset(r); + reb_integrator_ias15_reset(r); + reb_integrator_mercurius_reset(r); + reb_integrator_trace_reset(r); + reb_integrator_bs_reset(r); + if(r->free_particle_ap){ + for(unsigned int i=0; iN; i++){ + r->free_particle_ap(&r->particles[i]); + } + } + if (r->particles){ + free(r->particles ); + } + if (r->particle_lookup_table){ + free(r->particle_lookup_table); + } + if (r->messages){ + for (int i=0;imessages[i]); + } + } + if (r->messages){ + free(r->messages); + } + if (r->extras_cleanup){ + r->extras_cleanup(r); + } + if (r->var_config){ + free(r->var_config); + } + for (int s=0; sN_odes; s++){ + r->odes[s]->r = NULL; + } + free(r->odes); +} + +int reb_simulation_reset_function_pointers(struct reb_simulation* const r){ + int wasnotnull = 0; + if (r->coefficient_of_restitution || + r->collision_resolve || + r->additional_forces || + r->heartbeat || + r->pre_timestep_modifications || + r->post_timestep_modifications || + r->free_particle_ap || + r->extras_cleanup){ + wasnotnull = 1; + } + r->coefficient_of_restitution = NULL; + r->collision_resolve = NULL; + r->additional_forces = NULL; + r->heartbeat = NULL; + r->pre_timestep_modifications = NULL; + r->post_timestep_modifications = NULL; + r->free_particle_ap = NULL; + r->extras_cleanup = NULL; + return wasnotnull; +} + +struct reb_simulation* reb_simulation_create(){ + struct reb_simulation* r = calloc(1,sizeof(struct reb_simulation)); + reb_simulation_init(r); + return r; +} + + +void reb_simulation_copy_with_messages(struct reb_simulation* r_copy, struct reb_simulation* r, enum reb_simulation_binary_error_codes* warnings){ + char* bufp; + size_t sizep; + reb_simulation_save_to_stream(r, &bufp,&sizep); + + reb_simulation_free_pointers(r_copy); + memset(r_copy, 0, sizeof(struct reb_simulation)); + reb_simulation_init(r_copy); + + FILE* fin = reb_fmemopen(bufp, sizep, "r"); + reb_input_fields(r_copy, fin, warnings); + fclose(fin); + + free(bufp); +} + +char* reb_simulation_diff_char(struct reb_simulation* r1, struct reb_simulation* r2){ + char* bufp1; + char* bufp2; + char* bufp; + size_t sizep1, sizep2, size; + reb_simulation_save_to_stream(r1, &bufp1,&sizep1); + reb_simulation_save_to_stream(r2, &bufp2,&sizep2); + + reb_binary_diff(bufp1, sizep1, bufp2, sizep2, &bufp, &size, 3); + + free(bufp1); + free(bufp2); + return bufp; +} + +int reb_simulation_diff(struct reb_simulation* r1, struct reb_simulation* r2, int output_option){ + if (output_option!=1 && output_option!=2){ + // Not implemented + return -1; + } + char* bufp1; + char* bufp2; + size_t sizep1, sizep2; + reb_simulation_save_to_stream(r1, &bufp1,&sizep1); + reb_simulation_save_to_stream(r2, &bufp2,&sizep2); + + int ret = reb_binary_diff(bufp1, sizep1, bufp2, sizep2, NULL, NULL, output_option); + + free(bufp1); + free(bufp2); + return ret; +} + +struct reb_simulation* reb_simulation_copy(struct reb_simulation* r){ + struct reb_simulation* r_copy = reb_simulation_create(); + enum reb_simulation_binary_error_codes warnings = REB_SIMULATION_BINARY_WARNING_NONE; + reb_simulation_copy_with_messages(r_copy,r,&warnings); + r = reb_input_process_warnings(r, warnings); + return r_copy; +} + +void reb_clear_pre_post_pointers(struct reb_simulation* const r){ + // Temporary fix for REBOUNDx. + r->pre_timestep_modifications = NULL; + r->post_timestep_modifications = NULL; +} + +void reb_simulation_init(struct reb_simulation* r){ + memset(r, 0, sizeof(struct reb_simulation)); + r->rand_seed = reb_tools_get_rand_seed(); + reb_simulation_reset_function_pointers(r); + r->t = 0; + r->G = 1; + r->softening = 0; + r->dt = 0.001; + r->dt_last_done = 0.; + r->steps_done = 0; + r->root_size = -1; + r->N_root_x = 1; + r->N_root_y = 1; + r->N_root_z = 1; + r->N_root = 1; + r->N_ghost_x = 0; + r->N_ghost_y = 0; + r->N_ghost_z = 0; + r->N = 0; + r->N_allocated = 0; + r->N_active = -1; + r->var_rescale_warning = 0; + r->particle_lookup_table = NULL; + r->hash_ctr = 0; + r->N_lookup = 0; + r->N_allocated_lookup = 0; + r->testparticle_type = 0; + r->testparticle_hidewarnings = 0; + r->N_var = 0; + r->N_var_config = 0; + r->var_config = NULL; + r->exit_min_distance = 0; + r->exit_max_distance = 0; + r->status = REB_STATUS_SUCCESS; + r->exact_finish_time = 1; + r->force_is_velocity_dependent = 0; + r->gravity_ignore_terms = 0; + r->calculate_megno = 0; + r->output_timing_last = -1; + r->save_messages = 0; + r->track_energy_offset = 0; + r->server_data = NULL; + r->display_data = NULL; + r->display_settings = NULL; + r->walltime = 0; + + r->minimum_collision_velocity = 0; + r->collisions_plog = 0; + r->collisions_log_n = 0; + r->collisions_N = 0; + r->collision_resolve_keep_sorted = 0; + + r->simulationarchive_version = 3; + r->simulationarchive_auto_interval = 0.; + r->simulationarchive_auto_walltime = 0.; + r->simulationarchive_auto_step = 0; + r->simulationarchive_next = 0.; + r->simulationarchive_next_step = 0; + r->simulationarchive_filename = NULL; + + // Default modules + r->integrator = REB_INTEGRATOR_IAS15; + r->boundary = REB_BOUNDARY_NONE; + r->gravity = REB_GRAVITY_BASIC; + r->collision = REB_COLLISION_NONE; + + + // Integrators + // ********** WHFAST + // the defaults below are chosen to safeguard the user against spurious results, but + // will be slower and less accurate + r->ri_whfast.corrector = 0; + r->ri_whfast.corrector2 = 0; + r->ri_whfast.kernel = 0; + r->ri_whfast.coordinates = REB_WHFAST_COORDINATES_JACOBI; + r->ri_whfast.safe_mode = 1; + r->ri_whfast.recalculate_coordinates_this_timestep = 0; + r->ri_whfast.is_synchronized = 1; + r->ri_whfast.timestep_warning = 0; + r->ri_whfast.recalculate_coordinates_but_not_synchronized_warning = 0; + + // ********** WHFAST512 + r->ri_whfast512.is_synchronized = 1; + r->ri_whfast512.gr_potential = 0; + r->ri_whfast512.keep_unsynchronized = 0; + r->ri_whfast512.recalculate_constants = 1; + r->ri_whfast512.N_systems = 1; + + // ********** SABA + r->ri_saba.type = REB_SABA_10_6_4; + r->ri_saba.safe_mode = 1; + r->ri_saba.is_synchronized = 1; + + // ********** IAS15 + r->ri_ias15.epsilon = 1e-9; + r->ri_ias15.min_dt = 0; + r->ri_ias15.adaptive_mode = REB_IAS15_PRS23; // new default since January 2024 + r->ri_ias15.iterations_max_exceeded = 0; + + // ********** SEI + r->ri_sei.OMEGA = 1; + r->ri_sei.OMEGAZ = -1; + r->ri_sei.lastdt = 0; + + // ********** LEAPFROG + r->ri_leapfrog.order = 2; + + // ********** MERCURIUS + r->ri_mercurius.mode = 0; + r->ri_mercurius.safe_mode = 1; + r->ri_mercurius.recalculate_coordinates_this_timestep = 0; + r->ri_mercurius.recalculate_r_crit_this_timestep = 0; + r->ri_mercurius.is_synchronized = 1; + r->ri_mercurius.encounter_N = 0; + r->ri_mercurius.r_crit_hill = 3; + + // ********** JANUS + r->ri_janus.recalculate_integer_coordinates_this_timestep = 0; + r->ri_janus.order = 6; + r->ri_janus.scale_pos = 1e-16; + r->ri_janus.scale_vel = 1e-16; + + // ********** TRACE + r->ri_trace.mode = REB_TRACE_MODE_NONE; + r->ri_trace.peri_mode = REB_TRACE_PERI_FULL_BS; + r->ri_trace.encounter_N = 0; + r->ri_trace.r_crit_hill = 3.; + r->ri_trace.peri_crit_eta = 1.0; + r->ri_trace.force_accept = 0; + + // ********** EOS + r->ri_eos.n = 2; + r->ri_eos.phi0 = REB_EOS_LF; + r->ri_eos.phi1 = REB_EOS_LF; + r->ri_eos.safe_mode = 1; + r->ri_eos.is_synchronized = 1; + + + // ********** BS + reb_integrator_bs_reset(r); + + // Tree parameters. Will not be used unless gravity or collision search makes use of tree. + r->tree_needs_update= 0; + r->tree_root = NULL; + r->opening_angle2 = 0.25; + +#ifdef MPI + r->mpi_id = 0; + r->mpi_num = 0; + r->particles_send = NULL; + r->N_particles_send = 0; + r->N_particles_send_max = 0; + r->particles_recv = NULL; + r->N_particles_recv = 0; + r->N_particles_recv_max = 0; + + r->tree_essential_send = NULL; + r->N_tree_essential_send = 0; + r->N_tree_essential_send_max = 0; + r->tree_essential_recv = NULL; + r->N_tree_essential_recv = 0; + r->N_tree_essential_recv_max = 0; +#endif // MPI +#ifdef OPENMP + printf("Using OpenMP with %d threads per node.\n",omp_get_max_threads()); +#endif // OPENMP +} + + +int reb_check_exit(struct reb_simulation* const r, const double tmax, double* last_full_dt){ + if(r->status <= REB_STATUS_SINGLE_STEP){ + if(r->status == REB_STATUS_SINGLE_STEP){ + r->status = REB_STATUS_PAUSED; + }else{ + // This allows an arbitrary number of steps before the simulation is paused + r->status++; + } + } + while(r->status == REB_STATUS_PAUSED || r->status == REB_STATUS_SCREENSHOT){ + // Wait for user to disable paused simulation +#ifdef __EMSCRIPTEN__ + emscripten_sleep(100); +#else + usleep(1000); +#endif + if (reb_sigint){ // cancel while paused + r->status = REB_STATUS_SIGINT; + } + } + const double dtsign = copysign(1.,r->dt); // Used to determine integration direction + if (reb_simulation_error_message_waiting(r)){ + r->status = REB_STATUS_GENERIC_ERROR; + } + if (r->status>=0){ + // Exit now. + }else if(tmax!=INFINITY){ + if(r->exact_finish_time==1){ + if ((r->t+r->dt)*dtsign>=tmax*dtsign){ // Next step would overshoot + if (r->t==tmax){ + r->status = REB_STATUS_SUCCESS; + }else if(r->status == REB_STATUS_LAST_STEP){ + double tscale = 1e-12*fabs(tmax); // Find order of magnitude for time + if (tscale<1e-200){ // Failsafe if tmax==0. + tscale = 1e-12; + } + if (fabs(r->t-tmax)status = REB_STATUS_SUCCESS; + }else{ + // not there yet, do another step. + reb_simulation_synchronize(r); + r->dt = tmax-r->t; + } + }else{ + r->status = REB_STATUS_LAST_STEP; // Do one small step, then exit. + reb_simulation_synchronize(r); + if (r->dt_last_done!=0.){ // If first timestep is also last, do not use dt_last_done (which would be 0.) + *last_full_dt = r->dt_last_done; // store last full dt before decreasing the timestep to match finish time + } + r->dt = tmax-r->t; + } + }else{ + if (r->status == REB_STATUS_LAST_STEP){ + // This will get executed if an adaptive integrator reduces + // the timestep in what was supposed to be the last timestep. + r->status = REB_STATUS_RUNNING; + } + } + }else{ + if (r->t*dtsign>=tmax*dtsign){ // Past the integration time + r->status = REB_STATUS_SUCCESS; // Exit now. + } + } + } +#ifndef MPI + if (!r->N){ + if (!r->N_odes){ + reb_simulation_warning(r,"No particles found. Will exit."); + r->status = REB_STATUS_NO_PARTICLES; // Exit now. + }else{ + if (r->integrator != REB_INTEGRATOR_BS){ + reb_simulation_warning(r,"No particles found. Will exit. Use BS integrator to integrate user-defined ODEs without any particles present."); + r->status = REB_STATUS_NO_PARTICLES; // Exit now. + } + } + } +#else + int status_max = 0; + MPI_Allreduce(&(r->status), &status_max, 1, MPI_INT, MPI_MAX, MPI_COMM_WORLD); + if (status_max>=0){ + r->status = status_max; + } + +#endif // MPI + return r->status; +} + + +static void reb_run_heartbeat(struct reb_simulation* const r){ + if (r->heartbeat){ r->heartbeat(r); } // Heartbeat + if (r->exit_max_distance){ + // Check for escaping particles + const double max2 = r->exit_max_distance * r->exit_max_distance; + const struct reb_particle* const particles = r->particles; + const int N = r->N - r->N_var; + for (int i=0;imax2){ + r->status = REB_STATUS_ESCAPE; + } + } + } + if (r->exit_min_distance){ + // Check for close encounters + const double min2 = r->exit_min_distance * r->exit_min_distance; + const struct reb_particle* const particles = r->particles; + const int N = r->N - r->N_var; + for (int i=0;istatus = REB_STATUS_ENCOUNTER; + } + } + } + } +} + +//////////////////////////////////////////////////// +/// Integrate functions and visualization stuff + +volatile sig_atomic_t reb_sigint; + +void reb_sigint_handler(int signum) { + // Handles graceful shutdown for interrupts + if (signum == SIGINT){ + reb_sigint += 1; + } +} + +struct reb_thread_info { + struct reb_simulation* r; + double tmax; +}; + +static void* reb_simulation_integrate_raw(void* args){ + reb_sigint = 0; + signal(SIGINT, reb_sigint_handler); + struct reb_thread_info* thread_info = (struct reb_thread_info*)args; + struct reb_simulation* const r = thread_info->r; +#ifdef MPI + // Distribute particles + reb_communication_mpi_distribute_particles(r); +#endif // MPI + + if (thread_info->tmax != r->t){ + int dt_sign = (thread_info->tmax > r->t) ? 1.0 : -1.0; // determine integration direction + r->dt = copysign(r->dt, dt_sign); + } + + double last_full_dt = r->dt; // need to store r->dt in case timestep gets artificially shrunk to meet exact_finish_time=1 + r->dt_last_done = 0.; // Reset in case first timestep attempt will fail + + if (r->testparticle_hidewarnings==0 && reb_particle_check_testparticles(r)){ + reb_simulation_warning(r,"At least one test particle (type 0) has finite mass. This might lead to unexpected behaviour. Set testparticle_hidewarnings=1 to hide this warning."); + } + if (r->status != REB_STATUS_PAUSED && r->status != REB_STATUS_SCREENSHOT){ // Allow simulation to be paused initially + r->status = REB_STATUS_RUNNING; + } + reb_run_heartbeat(r); +#ifdef __EMSCRIPTEN__ + double t0 = emscripten_performance_now(); +#endif + while(reb_check_exit(r,thread_info->tmax,&last_full_dt)<0){ +#ifdef __EMSCRIPTEN__ + double t1 = emscripten_performance_now(); + if (t1-t0>1000./120.){ // max framerate 120Hz + t0 = t1; + emscripten_sleep(0); // allow drawing and event handling + } + +#endif +#ifdef OPENGL + if (r->display_data){ + // Note: Mutex is not FIFO. + // Allow time for mutex to lock in display.c before it is relocked here. + while (r->display_data->need_copy == 1){ + usleep(10); + } + pthread_mutex_lock(&(r->display_data->mutex)); + } +#endif //OPENGL +#ifdef SERVER + if (r->server_data){ + // Note: Mutex is not FIFO. + // Allow time for mutex to lock in display.c before it is relocked here. + while (r->server_data->need_copy == 1){ + usleep(10); + } +#ifdef _WIN32 + WaitForSingleObject(r->server_data->mutex, INFINITE); +#else // _WIN32 + pthread_mutex_lock(&(r->server_data->mutex)); +#endif // _WIN32 + r->server_data->mutex_locked_by_integrate = 1; + } +#endif //SERVER + if (r->simulationarchive_filename){ reb_simulationarchive_heartbeat(r);} + reb_simulation_step(r); + reb_run_heartbeat(r); + if (reb_sigint){ + r->status = REB_STATUS_SIGINT; + } +#ifdef OPENGL + if (r->display_data){ + pthread_mutex_unlock(&(r->display_data->mutex)); + } +#endif //OPENGL +#ifdef SERVER + if (r->server_data){ +#ifdef _WIN32 + ReleaseMutex(r->server_data->mutex); +#else // _WIN32 + pthread_mutex_unlock(&(r->server_data->mutex)); +#endif // _WIN32 + r->server_data->mutex_locked_by_integrate = 0; + } +#endif //SERVER + if (r->usleep > 0){ + usleep(r->usleep); + } + } + reb_simulation_synchronize(r); + if(r->exact_finish_time==1){ // if finish_time = 1, r->dt could have been shrunk, so set to the last full timestep + r->dt = last_full_dt; + } + if (r->simulationarchive_filename){ reb_simulationarchive_heartbeat(r);} + + return NULL; +} + + +enum REB_STATUS reb_simulation_integrate(struct reb_simulation* const r, double tmax){ + struct reb_thread_info thread_info = { + .r = r, + .tmax = tmax, + }; + +#ifdef OPENGL +#ifdef __EMSCRIPTEN__ + if (r->display_data==NULL){ + r->display_data = calloc(sizeof(struct reb_display_data),1); + r->display_data->r = r; + // Setup windows, compile shaders, etc. + reb_display_init(r); // Will return. Display routines running in animation_loop. + } + reb_simulation_integrate_raw(&thread_info); +#else // __EMSCRIPTEN__ + if (r->display_data==NULL){ + r->display_data = calloc(sizeof(struct reb_display_data),1); + r->display_data->r = r; + if (pthread_mutex_init(&(r->display_data->mutex), NULL)){ + reb_simulation_error(r,"Mutex creation failed."); + } + } + + if (pthread_create(&r->display_data->compute_thread,NULL,reb_simulation_integrate_raw,&thread_info)){ + reb_simulation_error(r, "Error creating compute thread."); + } + + reb_display_init(r); // Display routines need to run on main thread. Will not return until r->status<0. + if (pthread_join(r->display_data->compute_thread,NULL)){ + reb_simulation_error(r, "Error joining compute thread."); + } +#endif // __EMSCRIPTEN__ +#else // OPENGL + reb_simulation_integrate_raw(&thread_info); +#endif // OPENGL + return r->status; +} + +size_t reb_simulation_struct_size(){ + // For unit tests to check if python struct has same size + return sizeof(struct reb_simulation); +} +int reb_check_fp_contract(){ + // Checks if floating point contractions are on. + // If so, this will prevent unit tests from passing + // and bit-wise reproducibility will fail. + double a = 1.2382309285234567; + double b = 2.123478623874623234567; + double c = 6.0284234234234567; + + double r1 = a*b+c; + double ab = a*b; + double r2 = ab+c; + + return r1 != r2; +} + +// Wrapper to free pointers from python. +void reb_free(void* p){ + free(p); +} + +#ifdef _WIN32 + +void PyInit_librebound() {}; + +// Source: https://codebrowser.dev/glibc/glibc/stdlib/rand_r.c.html +int rand_r(unsigned int *seed) { + unsigned int next = *seed; + int result; + + next *= 1103515245; + next += 12345; + result = (unsigned int) (next / 65536) % 2048; + + next *= 1103515245; + next += 12345; + result <<= 10; + result ^= (unsigned int) (next / 65536) % 1024; + + next *= 1103515245; + next += 12345; + result <<= 10; + result ^= (unsigned int) (next / 65536) % 1024; + + *seed = next; + + return result; +} + + +// Source: https://stackoverflow.com/a/40160038/115102 +#include +int vasprintf(char **strp, const char *fmt, va_list ap) { + // _vscprintf tells you how big the buffer needs to be + int len = _vscprintf(fmt, ap); + if (len == -1) { + return -1; + } + size_t size = (size_t)len + 1; + char *str = malloc(size); + if (!str) { + return -1; + } + // _vsprintf_s is the "secure" version of vsprintf + int r = vsprintf_s(str, len + 1, fmt, ap); + if (r == -1) { + free(str); + return -1; + } + *strp = str; + return r; +} +int asprintf(char **strp, const char *fmt, ...) { + va_list ap; + va_start(ap, fmt); + int r = vasprintf(strp, fmt, ap); + va_end(ap); + return r; +} + +// Source: https://stackoverflow.com/a/26085827/115102 +#define WIN32_LEAN_AND_MEAN +#include +#include // portable: uint64_t MSVC: __int64 +int gettimeofday(struct reb_timeval * tp, struct timezone * tzp) +{ + // Note: some broken versions only have 8 trailing zero's, the correct epoch has 9 trailing zero's + // This magic number is the number of 100 nanosecond intervals since January 1, 1601 (UTC) + // until 00:00:00 January 1, 1970 + static const uint64_t EPOCH = ((uint64_t) 116444736000000000ULL); + + SYSTEMTIME system_time; + FILETIME file_time; + uint64_t time; + + GetSystemTime( &system_time ); + SystemTimeToFileTime( &system_time, &file_time ); + time = ((uint64_t)file_time.dwLowDateTime ) ; + time += ((uint64_t)file_time.dwHighDateTime) << 32; + + tp->tv_sec = (int64_t) ((time - EPOCH) / 10000000L); + tp->tv_usec = (int64_t) (system_time.wMilliseconds * 1000); + return 0; +} + +// Source: https://stackoverflow.com/a/17283549/115102 +void usleep(__int64 usec) +{ + HANDLE timer; + LARGE_INTEGER ft; + + ft.QuadPart = -(10*usec); // Convert to 100 nanosecond interval, negative value indicates relative time + + timer = CreateWaitableTimer(NULL, TRUE, NULL); + SetWaitableTimer(timer, &ft, 0, NULL, NULL, 0); + WaitForSingleObject(timer, INFINITE); + CloseHandle(timer); +} +#endif // _WIN32 + +#ifdef OPENMP +void reb_omp_set_num_threads(int num_threads){ + omp_set_num_threads(num_threads); +} +#endif // OPENMP + +const char* reb_logo[26] = { + " _ _ ", + " | | | | ", + " _ __ ___| |__ ___ _ _ _ __ __| | ", + "| '__/ _ \\ '_ \\ / _ \\| | | | '_ \\ / _` | ", + "| | | __/ |_) | (_) | |_| | | | | (_| | ", + "|_| \\___|_.__/ \\___/ \\__,_|_| |_|\\__,_| ", + " ", + " `-:://::.` ", + " `/oshhoo+++oossso+:` ", + " `/ssooys++++++ossssssyyo:` ", + " `+do++oho+++osssso++++++++sy/` ", + " :yoh+++ho++oys+++++++++++++++ss. ", + " /y++hooyyooshooo+++++++++++++++oh- ", + " -dsssdssdsssdssssssssssooo+++++++oh` ", + " ho++ys+oy+++ho++++++++oosssssooo++so ", + " .d++oy++ys+++oh+++++++++++++++oosssod ", + " -h+oh+++yo++++oyo+++++++++++++++++oom ", + " `d+ho+++ys+++++oys++++++++++++++++++d ", + " yys++++oy+++++++oys+++++++++++++++s+ ", + " .m++++++h+++++++++oys++++++++++++oy` ", + " -yo++++ss++++++++++oyso++++++++oy. ", + " .ss++++ho+++++++++++osys+++++yo` ", + " :ss+++ho+++++++++++++osssss- ", + " -ossoys++++++++++++osso. ", + " `-/oyyyssosssyso+/. ", + " ``....` ", +}; + +const unsigned char reb_favicon_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, + 0x08, 0x06, 0x00, 0x00, 0x00, 0x1f, 0xf3, 0xff, 0x61, 0x00, 0x00, 0x00, + 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, + 0x00, 0x44, 0x65, 0x58, 0x49, 0x66, 0x4d, 0x4d, 0x00, 0x2a, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x01, 0x87, 0x69, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xa0, 0x01, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xa0, 0x02, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0xa0, 0x03, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x34, 0x55, 0x71, 0xf2, 0x00, 0x00, 0x01, 0xaf, 0x49, 0x44, + 0x41, 0x54, 0x38, 0x11, 0x6d, 0xd3, 0x3f, 0x48, 0x55, 0x51, 0x1c, 0xc0, + 0xf1, 0xf7, 0xb4, 0x87, 0x29, 0x1a, 0xa4, 0x90, 0x6d, 0x89, 0xa2, 0x0e, + 0x49, 0x69, 0xbd, 0x10, 0x1a, 0x2a, 0x74, 0x14, 0x57, 0x77, 0x09, 0x5d, + 0x0c, 0x23, 0x52, 0x70, 0x11, 0x6c, 0x70, 0x73, 0x30, 0x78, 0x98, 0x36, + 0x94, 0x20, 0x51, 0xad, 0xd2, 0x5f, 0x88, 0x1c, 0x55, 0x5c, 0x24, 0x0c, + 0x27, 0x51, 0xb4, 0xa9, 0x10, 0x41, 0x6a, 0xe8, 0x9f, 0xf8, 0xfd, 0x5e, + 0xee, 0x79, 0x1e, 0xd4, 0x1f, 0x7c, 0xee, 0xf9, 0x77, 0xcf, 0xb9, 0xf7, + 0xfc, 0xee, 0xb9, 0xd9, 0xcc, 0xc9, 0xb8, 0x42, 0x57, 0x1f, 0x6e, 0xe1, + 0x07, 0xfe, 0xe2, 0x00, 0x1b, 0x78, 0x82, 0x75, 0x9c, 0x1a, 0x65, 0xf4, + 0x3e, 0x46, 0x01, 0x8d, 0xe8, 0xc5, 0x03, 0x18, 0x25, 0x18, 0xc6, 0x3e, + 0x26, 0xe1, 0xbd, 0x49, 0x38, 0x60, 0x94, 0xe3, 0x43, 0x5a, 0xce, 0x51, + 0x6e, 0x63, 0x16, 0xbe, 0xcd, 0x23, 0xbc, 0x83, 0x71, 0x09, 0xf3, 0x78, + 0x81, 0xb3, 0xc8, 0x64, 0xbd, 0x10, 0x53, 0x58, 0xc1, 0x6f, 0x34, 0xa1, + 0x15, 0x7b, 0xd8, 0x41, 0x1b, 0x7c, 0xd0, 0x2f, 0x78, 0xcf, 0x22, 0x9c, + 0xdc, 0x8d, 0xfb, 0x67, 0xb8, 0x5c, 0x83, 0x13, 0x9f, 0x23, 0x8e, 0x09, + 0x1a, 0x79, 0x98, 0x87, 0x87, 0xf8, 0x83, 0x1b, 0xe8, 0x80, 0xf9, 0x69, + 0xc1, 0x33, 0xdf, 0x60, 0x06, 0xde, 0xec, 0x42, 0x9d, 0xf8, 0x87, 0x2d, + 0x54, 0x63, 0x04, 0x97, 0xe1, 0xb8, 0x39, 0x58, 0x83, 0xe1, 0xbc, 0x21, + 0x34, 0xd8, 0xf8, 0x8a, 0xcf, 0x30, 0xf3, 0x35, 0xb8, 0x03, 0x33, 0x5f, + 0x8b, 0x10, 0xe7, 0xa9, 0xbc, 0x85, 0xdb, 0x8b, 0xe3, 0xbd, 0x8d, 0x65, + 0x54, 0x46, 0xbd, 0xd3, 0xd4, 0x07, 0x31, 0x16, 0xf5, 0x59, 0xbd, 0x00, + 0x13, 0x5d, 0x61, 0x23, 0x8d, 0x79, 0x93, 0xe3, 0x1e, 0x7f, 0xa6, 0x1d, + 0x17, 0x29, 0xcf, 0xa1, 0x80, 0xf6, 0xb4, 0x2f, 0x14, 0xdf, 0xa9, 0xb8, + 0x95, 0xd1, 0xd0, 0x41, 0x99, 0x75, 0x81, 0xd2, 0xa8, 0xa3, 0x87, 0xfa, + 0x4b, 0x78, 0x70, 0x5c, 0xb4, 0x0a, 0x71, 0x7c, 0xa2, 0xe1, 0xbe, 0x7d, + 0x90, 0x91, 0x73, 0x81, 0x6f, 0xa8, 0x83, 0x61, 0x76, 0x17, 0x92, 0x5a, + 0x26, 0xf3, 0x85, 0xf2, 0x6a, 0x5a, 0x8f, 0x0b, 0x93, 0x7e, 0x17, 0xf5, + 0xd8, 0x74, 0xc0, 0x6f, 0xee, 0xe9, 0x32, 0x4c, 0x54, 0x08, 0xbf, 0xf3, + 0xbd, 0xd0, 0x88, 0x4a, 0xdf, 0xd8, 0x5c, 0x38, 0xa7, 0xd5, 0x37, 0x58, + 0x45, 0x0e, 0xb7, 0x11, 0x6f, 0xc7, 0x43, 0x93, 0xc7, 0xf1, 0xf8, 0x4f, + 0xc7, 0x3e, 0xc2, 0xdc, 0x64, 0xdc, 0xb3, 0xfd, 0x0a, 0x1f, 0x93, 0xd6, + 0xd1, 0xc5, 0x27, 0xc5, 0x8b, 0x3a, 0xd2, 0x81, 0xd7, 0x48, 0x8e, 0x72, + 0x18, 0x74, 0xd5, 0x37, 0xb8, 0x8e, 0x2e, 0xf8, 0xe7, 0xed, 0xc2, 0x2f, + 0x72, 0x13, 0x4b, 0x68, 0xc6, 0x38, 0x1a, 0x30, 0x00, 0x4f, 0x6f, 0xf1, + 0x5f, 0xb0, 0x1e, 0xc2, 0x1f, 0xa8, 0x1f, 0x75, 0xf0, 0xc4, 0xb9, 0x35, + 0xcf, 0x8a, 0x07, 0xee, 0x29, 0xd6, 0x50, 0x8c, 0x43, 0x2d, 0xa4, 0x52, + 0x79, 0x8a, 0xe5, 0x13, 0x77, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, + 0x44, 0xae, 0x42, 0x60, 0x82 +}; +const unsigned int reb_favicon_len = 581; diff --git a/rebound/source/src/rebound.h b/rebound/source/src/rebound.h new file mode 100644 index 0000000000000000000000000000000000000000..98f1b354b7d3aace09013add0d91220df1dc25ff --- /dev/null +++ b/rebound/source/src/rebound.h @@ -0,0 +1,1432 @@ +/** + * @file rebound.h + * @brief REBOUND API definition. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2015 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#ifndef _MAIN_H +#define _MAIN_H + +#ifdef _WIN64 +#define _LP64 +#endif +#ifdef _WIN32 +#include +#define _WINSOCKAPI_ //stops windows.h including winsock.h +#include +#define REB_RESTRICT +#define DLLEXPORT __declspec(dllexport) +#define __restrict__ +#elif __EMSCRIPTEN__ +#include +#include +#define REB_RESTRICT +#define DLLEXPORT +#else // Linux and MacOS +#define REB_RESTRICT restrict +#define DLLEXPORT +#endif // _WIN32 + +#include +#include +#include +#include +#define _USE_MATH_DEFINES +#include + +#ifdef _WIN32 +typedef struct reb_timeval { + int64_t tv_sec; + int64_t tv_usec; +} reb_timeval; +int gettimeofday(struct reb_timeval * tp, struct timezone * tzp); +int asprintf(char **strp, const char *fmt, ...); +int rand_r (unsigned int *seed); +#include +#define _TIMEVAL_DEFINED +#else // Linux and MacOS +#define reb_timeval timeval +#include +#include +#include +#endif // _WIN32 + +#ifdef AVX512 +#include +#endif + +#ifdef MPI +#include "mpi.h" +#endif + +#ifndef GITHASH +#define GITHASH notavailable0000000000000000000000000001 +#endif + + +#ifndef __GNUC__ +# define __attribute__(x) /*Ignore attributes in non-GNU compilers*/ +#endif + + +// Global constants and variables +DLLEXPORT extern const char* reb_build_str; ///< Date and time build string. +DLLEXPORT extern const char* reb_version_str; ///< Version string. +DLLEXPORT extern const char* reb_githash_str; ///< Current git hash. +DLLEXPORT extern const char* reb_logo[26]; ///< Logo of rebound. +DLLEXPORT extern const unsigned char reb_favicon_png[]; /// < Favicon in PNG format. +DLLEXPORT extern const unsigned int reb_favicon_len; +DLLEXPORT extern const int reb_max_messages_length; +DLLEXPORT extern const int reb_N_max_messages; +extern volatile sig_atomic_t reb_sigint; ///< Graceful global interrupt handler + +// Forward declarations +struct reb_simulation; +struct reb_simulationarchive; +struct reb_display_data; +struct reb_server_data; +struct reb_treecell; +struct reb_variational_configuration; +struct reb_display_settings; + +// Particle structure +struct reb_particle { + double x; // Cartesian coordinates + double y; + double z; + double vx; + double vy; + double vz; + double ax; + double ay; + double az; + double m; // mass + double r; // physical radius + double last_collision; // Last time the particle had a physical collision. + struct reb_treecell* c; // Pointer to the cell the particle is currently in. +#if !defined(_LP64) + char pad1[4]; // c is short by 4 bytes +#endif + uint32_t hash; // Hash, can be used to identify particle. +#if !defined(_LP64) + char pad2[4]; // ap is not padded to 8 bytes +#endif + void* ap; // This pointer allows REBOUNDx to add additional properties to the particle. +#if !defined(_LP64) + char pad3[4]; // ap is short by 4 bytes +#endif + struct reb_simulation* sim; // Pointer to the parent simulation. +#if !defined(_LP64) + char pad4[4]; // sim is short by 4 bytes +#endif +}; + +// Generic 3d vector +struct reb_vec3d { + double x; + double y; + double z; +}; + +// Generic 4d matrix (single precision) +struct reb_mat4df { + float m[16]; +}; + + +// Generic 6d vector +struct reb_vec6d{ + double x; + double y; + double z; + double vx; + double vy; + double vz; +}; + +// Rotation (implemented as a quaternion) +struct reb_rotation { + double ix; + double iy; + double iz; + double r; +}; + +// Structure representing one particle-particle collision +struct reb_collision{ + int p1; // Index of first particle involved in collision + int p2; // Index of second particle + struct reb_vec6d gb; // Offset due to boundary conditions + int ri; // Root cell index (MPI only) +}; + +// Generic pointer with 7 elements, for internal use only (IAS15). +struct reb_dp7 { + double* REB_RESTRICT p0; + double* REB_RESTRICT p1; + double* REB_RESTRICT p2; + double* REB_RESTRICT p3; + double* REB_RESTRICT p4; + double* REB_RESTRICT p5; + double* REB_RESTRICT p6; +}; + +// Integrator structures +// IAS15 (Rein & Spiegel 2015) +struct reb_integrator_ias15 { + double epsilon; // Precision control parameter + double min_dt; // Minimal timestep + enum { + REB_IAS15_INDIVIDUAL = 0, // fractional error is calculated seperately for each particle + REB_IAS15_GLOBAL = 1, // fractional error is calculated globally (was default until 01/2024) + REB_IAS15_PRS23 = 2, // Pham, Rein & Spiegel (2023) timestep criterion (default since 01/2024) + REB_IAS15_AARSETH85 = 3, // Aarseth (1985) timestep criterion + } adaptive_mode; + uint64_t iterations_max_exceeded; // Counter how many times the iteration did not converge. + unsigned int N_allocated; + double* REB_RESTRICT at; + double* REB_RESTRICT x0; + double* REB_RESTRICT v0; + double* REB_RESTRICT a0; + double* REB_RESTRICT csx; + double* REB_RESTRICT csv; + double* REB_RESTRICT csa0; + struct reb_dp7 g; + struct reb_dp7 b; + struct reb_dp7 csb; // Compensated summation storage for b + struct reb_dp7 e; + struct reb_dp7 br; // Used for resetting the b coefficients if a timestep gets rejected + struct reb_dp7 er; // Same for e coefficients + int* map; // internal map to particles (this is an identity map except when MERCURIUS is used + unsigned int N_allocated_map; // allocated size for map +}; + +// Mercurius (Rein et al. 2019) +struct reb_integrator_mercurius { + double (*L) (const struct reb_simulation* const r, double d, double dcrit); // Switching function (default same as Mercury) + double r_crit_hill; // Critical switching distance in units of Hill radii + unsigned int recalculate_coordinates_this_timestep; // Set to 1 if particles have been modified + unsigned int recalculate_r_crit_this_timestep; // Set to 1 if to recalculate critical switching radii + unsigned int safe_mode; // Combine Kick steps at beginning and end of timestep + + // Internal use + unsigned int is_synchronized; + unsigned int mode; // 0 if WH is operating, 1 if IAS15 is operating. + unsigned int encounter_N; // Number of particles currently having an encounter + unsigned int encounter_N_active;// Number of active particles currently having an encounter + unsigned int tponly_encounter; // 0 if any encounters are between two massive bodies. 1 if encounters only involve test particles + unsigned int N_allocated; + unsigned int N_allocated_additional_forces; + unsigned int N_allocated_dcrit; // Current size of dcrit arrays + double* dcrit; // Precalculated switching radii for particles + struct reb_particle* REB_RESTRICT particles_backup; // contains coordinates before Kepler step for encounter prediction + struct reb_particle* REB_RESTRICT particles_backup_additional_forces; // contains coordinates before Kepler step for encounter prediction + int* encounter_map; // Map to represent which particles are integrated with ias15 + struct reb_vec3d com_pos; // Used to keep track of the center of mass during the timestep + struct reb_vec3d com_vel; +}; + +// Symplectic Epicycle Integrator SEI (Rein & Tremaine 2011) +struct reb_integrator_sei { + double OMEGA; // Epicyclic frequency + double OMEGAZ; // Epicyclic frequency in z direction (if not set, use OMEGA) + + // Internal use + double lastdt; // Cached sin(), tan() for this value of dt. + double sindt; // Cached sin() + double tandt; // Cached tan() + double sindtz; // Cached sin(), z axis + double tandtz; // Cached tan(), z axis +}; + +// Leapfrog Integrator +struct reb_integrator_leapfrog { + unsigned int order; +}; + +// TRACE (Lu Hernandez & Rein 2024) +struct reb_integrator_trace { + int (*S) (struct reb_simulation* const r, const unsigned int i, const unsigned int j); + int (*S_peri) (struct reb_simulation* const r, const unsigned int j); + + enum { + REB_TRACE_PERI_PARTIAL_BS = 0, + REB_TRACE_PERI_FULL_BS = 1, + REB_TRACE_PERI_FULL_IAS15 = 2, + } peri_mode; + + double r_crit_hill; + double peri_crit_eta; + + // Internal use + enum { + REB_TRACE_MODE_INTERACTION = 0, // Interaction step + REB_TRACE_MODE_KEPLER = 1, // Kepler step + REB_TRACE_MODE_NONE = 2, // In-between steps, to avoid calculate_accelerations + REB_TRACE_MODE_FULL = 3, // Doing everything in one step (only used for collision search) + } mode; + unsigned int encounter_N; // Number of particles currently having an encounter + unsigned int encounter_N_active; // Number of active particles currently having an encounter + + unsigned int N_allocated; + unsigned int N_allocated_additional_forces; + unsigned int tponly_encounter; // 0 if any encounters are between two massive bodies. 1 if encounters only involve test particles + + struct reb_particle* REB_RESTRICT particles_backup; // Contains coordinates before the entire step + struct reb_particle* REB_RESTRICT particles_backup_kepler; // Contains coordinates before kepler step + struct reb_particle* REB_RESTRICT particles_backup_additional_forces; // For additional forces + + int* encounter_map; // Map to represent which particles are integrated with BS + struct reb_vec3d com_pos; // Used to keep track of the centre of mass during the timestep + struct reb_vec3d com_vel; + + int* current_Ks; // Tracking K_ij for the entire timestep + unsigned int current_C; // Tracking C for the entire timestep + unsigned int force_accept; // Force accept for irreversible steps: collisions and adding particles +}; + +// SABA Integrator (Laskar & Robutel 2001) +struct reb_integrator_saba { + enum { + REB_SABA_1 = 0x0, // WH + REB_SABA_2 = 0x1, // SABA2 + REB_SABA_3 = 0x2, // SABA3 + REB_SABA_4 = 0x3, // SABA4 + REB_SABA_CM_1 = 0x100, // SABACM1 (Modified kick corrector) + REB_SABA_CM_2 = 0x101, // SABACM2 (Modified kick corrector) + REB_SABA_CM_3 = 0x102, // SABACM3 (Modified kick corrector) + REB_SABA_CM_4 = 0x103, // SABACM4 (Modified kick corrector) + REB_SABA_CL_1 = 0x200, // SABACL1 (lazy corrector) + REB_SABA_CL_2 = 0x201, // SABACL2 (lazy corrector) + REB_SABA_CL_3 = 0x202, // SABACL3 (lazy corrector) + REB_SABA_CL_4 = 0x203, // SABACL4 (lazy corrector) + REB_SABA_10_4 = 0x4, // SABA(10,4), 7 stages + REB_SABA_8_6_4 = 0x5, // SABA(8,6,4), 7 stages + REB_SABA_10_6_4 = 0x6, // SABA(10,6,4), 8 stages, default + REB_SABA_H_8_4_4 = 0x7,// SABAH(8,4,4), 6 stages + REB_SABA_H_8_6_4 = 0x8,// SABAH(8,6,4), 8 stages + REB_SABA_H_10_6_4 = 0x9,// SABAH(10,6,4), 9 stages + } type; // Type of integrator + unsigned int safe_mode; // Combine first and last sub-step + unsigned int is_synchronized; // 1: physical state, 0: needs synchronization + unsigned int keep_unsynchronized; // 1: continue from unsynchronized state after synchronization +}; + +// WHFast Integrator (Rein & Tamayo 2015) +struct reb_integrator_whfast { + unsigned int corrector; // Order of first symplectic corrector: 0 (default - no corrector), 3, 5, 7, 11, 17. + unsigned int corrector2; // 0: no second corrector, 1: use second corrector + enum { + REB_WHFAST_KERNEL_DEFAULT = 0, + REB_WHFAST_KERNEL_MODIFIEDKICK = 1, + REB_WHFAST_KERNEL_COMPOSITION = 2, + REB_WHFAST_KERNEL_LAZY = 3, + } kernel; // Kernel type. See Rein, Tamayo & Brown 2019 for details. + enum { + REB_WHFAST_COORDINATES_JACOBI = 0, // Jacobi coordinates (default) + REB_WHFAST_COORDINATES_DEMOCRATICHELIOCENTRIC = 1, // Democratic Heliocentric coordinates + REB_WHFAST_COORDINATES_WHDS = 2, // WHDS coordinates (Hernandez and Dehnen, 2017) + REB_WHFAST_COORDINATES_BARYCENTRIC = 3, // Barycentric coordinates + } coordinates; // Coordinate system used in Hamiltonian splitting + unsigned int recalculate_coordinates_this_timestep; // 1: recalculate coordinates from inertial coordinates + unsigned int safe_mode; // 0: Drift Kick Drift scheme (default), 1: combine first and last sub-step. + unsigned int keep_unsynchronized; // 1: continue from unsynchronized state after synchronization + + // Internal use + struct reb_particle* REB_RESTRICT p_jh; // Jacobi/heliocentric/WHDS coordinates + struct reb_particle* REB_RESTRICT p_temp; // Used for lazy implementer's kernel + unsigned int is_synchronized; + unsigned int N_allocated; + unsigned int N_allocated_tmp; // Used for lazy implementer's kernel + unsigned int timestep_warning; + unsigned int recalculate_coordinates_but_not_synchronized_warning; +}; + +// Special particle struct for WHFast512 +struct reb_particle_avx512{ +#ifdef AVX512 + __m512d m __attribute__ ((aligned (64))); + __m512d x __attribute__ ((aligned (64))); + __m512d y __attribute__ ((aligned (64))); + __m512d z __attribute__ ((aligned (64))); + __m512d vx __attribute__ ((aligned (64))); + __m512d vy __attribute__ ((aligned (64))); + __m512d vz __attribute__ ((aligned (64))); +#else // AVX512 + double m[8]; // dummy for when AVX512 is not available + double x[8]; + double y[8]; + double z[8]; + double vx[8]; + double vy[8]; + double vz[8]; +#endif // AVX512 +}; + +// WHFast512 Integrator (Javaheri & Rein 2023) +struct reb_integrator_whfast512 { + unsigned int gr_potential; // 1: Turn on GR potential of central object, 0 (default): no GR potential + unsigned int N_systems; // Number of systems to be integrator in parallel: 1 (default, up to 8 planets), 2 (up to 4 planets each), 4 (2 planets each) + unsigned int keep_unsynchronized; // 1: continue from unsynchronized state after synchronization + + // Internal use + unsigned int is_synchronized; + unsigned int N_allocated; + unsigned int recalculate_constants; + struct reb_particle_avx512* p_jh; + struct reb_particle p_jh0[4]; +}; + +// Bulirsch Stoer Integrator (roughly follows fortran code by E. Hairer and G. Wanner) +struct reb_integrator_bs { + double eps_abs; // Allowed absolute scalar error. + double eps_rel; // Allowed relative scalar error. + double min_dt; // Minimum timestep + double max_dt; // Maximum teimstep + + // Internal use + struct reb_ode* nbody_ode; // ODE corresponding to N-body system + int* sequence; // stepsize sequence + int* cost_per_step; // overall cost of applying step reduction up to iteration k + 1, in number of calls. + double* cost_per_time_unit; // cost per unit step. + double* optimal_step; // optimal steps for each order. + double* coeff; // extrapolation coefficients. + double dt_proposed; + int first_or_last_step; + int previous_rejected; + int target_iter; + int user_ode_needs_nbody; // Do not set manually. Use needs_nbody in reb_ode instead. +}; + +// Available methods for EOS Integrator +enum REB_EOS_TYPE { + REB_EOS_LF = 0x00, + REB_EOS_LF4 = 0x01, + REB_EOS_LF6 = 0x02, + REB_EOS_LF8 = 0x03, + REB_EOS_LF4_2 = 0x04, + REB_EOS_LF8_6_4= 0x05, + REB_EOS_PLF7_6_4= 0x06, + REB_EOS_PMLF4 = 0x07, + REB_EOS_PMLF6 = 0x08, +}; + +// Available return values for collision resolve functions +enum REB_COLLISION_RESOLVE_OUTCOME { + REB_COLLISION_RESOLVE_OUTCOME_REMOVE_NONE = 0, + REB_COLLISION_RESOLVE_OUTCOME_REMOVE_P1 = 1, + REB_COLLISION_RESOLVE_OUTCOME_REMOVE_P2 = 2, + REB_COLLISION_RESOLVE_OUTCOME_REMOVE_BOTH = 3, +}; + +// Embedded Operator Splitting Integrator (Rein 2020) +struct reb_integrator_eos { + enum REB_EOS_TYPE phi0; // Outer operator splitting method + enum REB_EOS_TYPE phi1; // Inner operator splitting method + unsigned int n; // Number of inner splittings per outer splitting + unsigned int safe_mode; // Combine Kick steps at beginning and end of timestep + + // Internal use + unsigned int is_synchronized; +}; + + +// Integer-based positions and velocities for particles. Used in JANUS integrator. +#define REB_PARTICLE_INT_TYPE int64_t +struct reb_particle_int { + REB_PARTICLE_INT_TYPE x; + REB_PARTICLE_INT_TYPE y; + REB_PARTICLE_INT_TYPE z; + REB_PARTICLE_INT_TYPE vx; + REB_PARTICLE_INT_TYPE vy; + REB_PARTICLE_INT_TYPE vz; +}; + +// Janus integrator (Rein & Tamayo 2018) +struct reb_integrator_janus { + double scale_pos; // Scale of position grid. Default 1e-16 + double scale_vel; // Scale of velocity grid. Default 1e-16 + unsigned int order; // Order: 2 (default), 4, 6, 8, 10 + unsigned int recalculate_integer_coordinates_this_timestep; // Set to 1 if particles have been modified + + // Internal use + struct reb_particle_int* REB_RESTRICT p_int; + unsigned int N_allocated; +}; + +// Possible return values of of rebound_integrate +enum REB_STATUS { + // Any status less than SINGLE_STEP get incremented once every timestep until SINGLE_STEP is reached. + REB_STATUS_SINGLE_STEP = -10, // Performing a single step, then switching to PAUSED. + REB_STATUS_SCREENSHOT_READY=-5,// Screenshot is ready, send back, then finish integration + REB_STATUS_SCREENSHOT = -4, // Pause until visualization has taken a screenshot. + REB_STATUS_PAUSED = -3, // Simulation is paused by visualization. + REB_STATUS_LAST_STEP = -2, // Current timestep is the last one. Needed to ensure that t=tmax exactly. + REB_STATUS_RUNNING = -1, // Simulation is current running, no error occurred. + REB_STATUS_SUCCESS = 0, // Integration finished successfully. + REB_STATUS_GENERIC_ERROR = 1, // A generic error occurred and the integration was not successful. + REB_STATUS_NO_PARTICLES = 2, // The integration ends early because no particles are left in the simulation. + REB_STATUS_ENCOUNTER = 3, // The integration ends early because two particles had a close encounter (see exit_min_distance) + REB_STATUS_ESCAPE = 4, // The integration ends early because a particle escaped (see exit_max_distance) + REB_STATUS_USER = 5, // User caused exit, simulation did not finish successfully. + REB_STATUS_SIGINT = 6, // SIGINT received. Simulation stopped. + REB_STATUS_COLLISION = 7, // The integration ends early because two particles collided. +}; + +// Holds a particle's hash and the particle's index in the particles array. Used for particle_lookup_table. +struct reb_hash_pointer_pair{ + uint32_t hash; + int index; +}; + +// Main REBOUND Simulation structure +// Note: only variables that should be accessed by users are documented here. +struct reb_simulation { + double t; // Current simulation time. Default: 0. + double G; // Gravitational constant. Default: 1. + double softening; // Gravitational softening. Default: 0. + double dt; // Timestep. Default: 0.001. + double dt_last_done; // Last successful timestep. + uint64_t steps_done; // Number of timesteps done. + unsigned int N; // Number of particles (includes variational particles). Default: 0. + int N_var; // Number of variational particles. Default 0. + unsigned int N_var_config; + struct reb_variational_configuration* var_config; // Configuration structs. These contain details on variational particles. + int var_rescale_warning; + int N_active; // Number of active (i.e. not test-particle) particles. Default: -1 (all particles are active). + int testparticle_type; // 0 (default): active particles do not feel test-particles, 1: active particles feel test-particles + int testparticle_hidewarnings; + struct reb_hash_pointer_pair* particle_lookup_table; + int hash_ctr; + int N_lookup; // Number of entries in particle_lookup_table. + int N_allocated_lookup; // Number of lookup table entries allocated. + unsigned int N_allocated; // Current maximum space allocated in the particles array on this node. + struct reb_particle* particles; // Main particle array with active, variational, and test particles. + struct reb_vec3d* gravity_cs; + int N_allocated_gravity_cs; + struct reb_treecell** tree_root; + int tree_needs_update; // Flag to force a tree update (after boundary check) + double opening_angle2; // Opening angle for tree-based gravity calculation. Defaukt 0.25. + enum REB_STATUS status; // Current simulation status + int exact_finish_time; // 1 (default): integrate exactly to the time requested and adjust timestep if needed, 0: may overshoot by one timestep + + unsigned int force_is_velocity_dependent; // 0 (default): force only depends on position, 1: force also depends on velocities + unsigned int gravity_ignore_terms; + double output_timing_last; // Time when reb_simulation_output_timing() was called the last time. + int save_messages; // 0 (default): print messages on screen, 1: ignore messages (used in python interface). + char** messages; // Array of strings containing last messages (only used if save_messages==1). + double exit_max_distance; // Exit simulation if a particle is this far away from the origin. + double exit_min_distance; // Exit simulation if two particles come this close to each other. + double usleep; // Artificially slow down simulations by this many microseconds each timestep. + struct reb_display_settings* display_settings;// Optional. Will overwrite settings for visualization. If NULL, UI will determine settings. + struct reb_display_data* display_data; // Datastructure stores visualization related data. Does not have to be modified by the user. + struct reb_server_data* server_data; // Datastructure stores server related data. Does not have to be modified by the user. + int track_energy_offset; // 0 (default): do not track energy offset due to merging/lost particles, 1: track offset + double energy_offset; // Only used if track_energy_offset = 1 + double walltime; // Cumulative walltime of entire integration. + double walltime_last_step; // Wall time of last step. + double walltime_last_steps; // Average wall time of last step (updated every 0.1s). + double walltime_last_steps_sum; + int walltime_last_steps_N; + uint32_t python_unit_l; // Only used for when working with units in python. + uint32_t python_unit_m; // Only used for when working with units in python. + uint32_t python_unit_t; // Only used for when working with units in python. + + // Simulation domain and ghost boxes + struct reb_vec3d boxsize; // Size of the entire simulation box, root_x*boxsize. Set in box_init(). + double boxsize_max; // Maximum size of the entire box in any direction. Set in box_init(). + double root_size; // Size of a root box. + int N_root; // Total number of root boxes in all directions, N_root_x*N_root_y*N_root_z. Default: 1. Set in box_init(). + int N_root_x; // Number of ghost boxes in x direction. Do not change manually. + int N_root_y; + int N_root_z; + int N_ghost_x; // Number of ghost boxes in x direction. + int N_ghost_y; + int N_ghost_z; + + // MPI Parallelization +#ifdef MPI + int mpi_id; // Unique id of this node (starting at 0). Used for MPI only. + int mpi_num; // Number of MPI nodes. Used for MPI only. + struct reb_particle** particles_send; // Send buffer for particles. There is one buffer per node. + int* N_particles_send; // Current length of particle send buffer. + int* N_particles_send_max; // Maximal length of particle send beffer before realloc() is needed. + struct reb_particle** particles_recv; // Receive buffer for particles. There is one buffer per node. + int* N_particles_recv; // Current length of particle receive buffer. + int* N_particles_recv_max; // Maximal length of particle receive beffer before realloc() is needed. */ + + struct reb_treecell** tree_essential_send; // Send buffer for cells. There is one buffer per node. + int* N_tree_essential_send; // Current length of cell send buffer. + int* N_tree_essential_send_max; // Maximal length of cell send beffer before realloc() is needed. + struct reb_treecell** tree_essential_recv; // Receive buffer for cells. There is one buffer per node. + int* N_tree_essential_recv; // Current length of cell receive buffer. + int* N_tree_essential_recv_max; // Maximal length of cell receive beffer before realloc() is needed. +#endif // MPI + + int collision_resolve_keep_sorted; // 0 (default): may reorder particles during collisions, 1: keep particles sorted. + struct reb_collision* collisions; // Array of current collisions. Do not change manually + int N_allocated_collisions; + unsigned int collisions_N; // Number of collisions found during last collision search. + double minimum_collision_velocity; // Ensure relative velocity during collisions is at least this much (to avoid particles sinking into each other) + double collisions_plog; // Keeping track of momentum transfer in collisions (for ring simulations) + int64_t collisions_log_n; // Cumulative number of collisions in entire simulation. + + // MEGNO Chaos indicator. These variables should not be accessed directly. Use functions provided instead. + int calculate_megno; // Do not change manually. Internal flag that determines if megno is calculated (default=0, but megno_init() sets it to the index of variational particles used for megno) + double megno_Ys; // Running megno sum (internal use) + double megno_Yss; // Running megno sum (internal use) + double megno_cov_Yt; // covariance of MEGNO Y and t + double megno_var_t; // variance of t + double megno_mean_t; // mean of t + double megno_mean_Y; // mean of MEGNO Y + double megno_initial_t; // Time when MENGO was initialized + int64_t megno_n; // number of covariance updates + + unsigned int rand_seed; // seed for random number generator, used by MEGNO and other random number generators in REBOUND. + + // Simulationarchive. These variables should not be accessed directly. Use functions provided instead. + int simulationarchive_version; // Version of the SA binary format (1=original/, 2=incremental) + double simulationarchive_auto_interval; // Current sampling cadence, in code units + double simulationarchive_auto_walltime; // Current sampling cadence, in wall time + uint64_t simulationarchive_auto_step; // Current sampling cadence, in time steps + double simulationarchive_next; // Next output time (simulation tim or wall time, depending on wether auto_interval or auto_walltime is set) + uint64_t simulationarchive_next_step; // Next output step (only used if auto_steps is set) + char* simulationarchive_filename; // Name of output file + + // Available modules in REBOUND + enum { + REB_COLLISION_NONE = 0, // Do not search for collisions (default) + REB_COLLISION_DIRECT = 1, // Direct collision search O(N^2) + REB_COLLISION_TREE = 2, // Tree based collision search O(N log(N)) + REB_COLLISION_LINE = 4, // Direct collision search O(N^2), looks for collisions by assuming a linear path over the last timestep + REB_COLLISION_LINETREE = 5, // Tree-based collision search O(N log(N)), looks for collisions by assuming a linear path over the last timestep + } collision; + enum { + REB_INTEGRATOR_IAS15 = 0, // IAS15 integrator, 15th order, non-symplectic (default) + REB_INTEGRATOR_WHFAST = 1, // WHFast integrator, symplectic, 2nd order, up to 11th order correctors + REB_INTEGRATOR_SEI = 2, // SEI integrator for shearing sheet simulations, symplectic, needs OMEGA variable + REB_INTEGRATOR_LEAPFROG = 4, // LEAPFROG integrator, simple, 2nd order, symplectic + REB_INTEGRATOR_NONE = 7, // Do not integrate anything + REB_INTEGRATOR_JANUS = 8, // Bit-wise reversible JANUS integrator. + REB_INTEGRATOR_MERCURIUS = 9, // MERCURIUS integrator + REB_INTEGRATOR_SABA = 10, // SABA integrator family (Laskar and Robutel 2001) + REB_INTEGRATOR_EOS = 11, // Embedded Operator Splitting (EOS) integrator family (Rein 2019) + REB_INTEGRATOR_BS = 12, // Gragg-Bulirsch-Stoer + // REB_INTEGRATOR_TES = 20, // Used to be Terrestrial Exoplanet Simulator (TES) -- Do not reuse. + REB_INTEGRATOR_WHFAST512 = 21, // WHFast integrator, optimized for AVX512 + REB_INTEGRATOR_TRACE = 25, // TRACE integrator (Lu, Hernandez and Rein 2024) + } integrator; + enum { + REB_BOUNDARY_NONE = 0, // Do not check for anything (default) + REB_BOUNDARY_OPEN = 1, // Open boundary conditions. Removes particles if they leave the box + REB_BOUNDARY_PERIODIC = 2, // Periodic boundary conditions + REB_BOUNDARY_SHEAR = 3, // Shear periodic boundary conditions, needs OMEGA variable + } boundary; + enum { + REB_GRAVITY_NONE = 0, // Do not calculate graviational forces + REB_GRAVITY_BASIC = 1, // Basic O(N^2) direct summation algorithm, choose this for shearing sheet and periodic boundary conditions + REB_GRAVITY_COMPENSATED = 2, // Direct summation algorithm O(N^2) but with compensated summation, slightly slower than BASIC but more accurate + REB_GRAVITY_TREE = 3, // Use the tree to calculate gravity, O(N log(N)), set opening_angle2 to adjust accuracy. + REB_GRAVITY_MERCURIUS = 4, // Special gravity routine only for MERCURIUS + REB_GRAVITY_JACOBI = 5, // Special gravity routine which includes the Jacobi terms for WH integrators + REB_GRAVITY_TRACE = 6, // Special gravity routine only for TRACE + } gravity; + + // Datastructures for integrators + struct reb_integrator_sei ri_sei; // The SEI struct + struct reb_integrator_leapfrog ri_leapfrog; // The Leapfrog struct + struct reb_integrator_whfast ri_whfast; // The WHFast struct + struct reb_integrator_whfast512 ri_whfast512; // The WHFast512 struct + struct reb_integrator_saba ri_saba; // The SABA struct + struct reb_integrator_ias15 ri_ias15; // The IAS15 struct + struct reb_integrator_mercurius ri_mercurius; // The MERCURIUS struct + struct reb_integrator_trace ri_trace; // The TRACE struct + struct reb_integrator_janus ri_janus; // The JANUS struct + struct reb_integrator_eos ri_eos; // The EOS struct + struct reb_integrator_bs ri_bs; // The BS struct + + // ODEs. Do not access these variables directly. Use functions provided instead. + struct reb_ode** odes; // all ode sets (includes nbody if BS is set as integrator) + int N_odes; // number of ode sets + int N_allocated_odes; + int ode_warnings; + + // Callback functions + void (*additional_forces) (struct reb_simulation* const r); // Implement any additional (non-gravitational) forces here. + void (*pre_timestep_modifications) (struct reb_simulation* const r); // Executed just before eaach timestep. Used by REBOUNDx. + void (*post_timestep_modifications) (struct reb_simulation* const r); // Executed just after each timestep. Used by REBOUNDx. + void (*heartbeat) (struct reb_simulation* r); // Executed at each timestep once. Use this to do extra output/work during a simulation. + int (*key_callback) (struct reb_simulation* r, int key); // Used when SERVER or OPENGL visualization is on. Gets called after completed timestep and if a key has been pressed. Return 1 if you want to skip default key commands. + double (*coefficient_of_restitution) (const struct reb_simulation* const r, double v); // Allows for a velocity dependent coefficient of restitution (used for ring simulations) + enum REB_COLLISION_RESOLVE_OUTCOME (*collision_resolve) (struct reb_simulation* const r, struct reb_collision); // Determines what happens when two particles collide. + void (*free_particle_ap) (struct reb_particle* p); // Used by REBOUNDx. + void (*extras_cleanup) (struct reb_simulation* r); // Used by REBOUNDx. + void* extras; // Pointer to link to any additional (optional) libraries, e.g., REBOUNDx, ASSIST. +}; + + +////////////////////////////////////////////////////////////////////////////////////////////////////////// +// REBOUND API Functions +////////////////////////////////////////////////////////////////////////////////////////////////////////// + +// Simulation life cycle + +// Allocates memory for reb_simulation and initializes it. +DLLEXPORT struct reb_simulation* reb_simulation_create(void); +// Create a simulation object from a file. Set snapshot=-1 to load last snapshot. +DLLEXPORT struct reb_simulation* reb_simulation_create_from_file(char* filename, int64_t snapshot); +// Create a simulation object from a simulationarchive. Set snapshot=-1 to load last snapshot. +DLLEXPORT struct reb_simulation* reb_simulation_create_from_simulationarchive(struct reb_simulationarchive* sa, int64_t snapshot); +// Free simulation and all associated memory. +DLLEXPORT void reb_simulation_free(struct reb_simulation* const r); +// Only free memory in pointers of a simulation, but not the simulation itself. +DLLEXPORT void reb_simulation_free_pointers(struct reb_simulation* const r); +// Reset function pointers to default (NULL) values. Returns 1 if one ore more function pointers were not NULL before. +DLLEXPORT int reb_simulation_reset_function_pointers(struct reb_simulation* const r); +// Reset all integrator variables. +DLLEXPORT void reb_simulation_reset_integrator(struct reb_simulation* r); +// Make a deep copy of simulation. +DLLEXPORT struct reb_simulation* reb_simulation_copy(struct reb_simulation* r); +// Compare r1 to r2. If exactly equal then 0 is returned, otherwise 1. If output_option=1, then difference is also printed on screen. +DLLEXPORT int reb_simulation_diff(struct reb_simulation* r1, struct reb_simulation* r2, int output_option); +// Setup simulation domain and root boxes. This needs to be called before particles are added if the tree code is used. +DLLEXPORT void reb_simulation_configure_box(struct reb_simulation* const r, const double boxsize, const int N_root_x, const int N_root_y, const int N_root_z); // Configure the boundary/root box + +// Start webserver for visualization. Returns 0 on success. +DLLEXPORT int reb_simulation_start_server(struct reb_simulation* r, int port); +// Stop webserver. +DLLEXPORT void reb_simulation_stop_server(struct reb_simulation* r); + +// Errors, warnings + +// For fatal errors only. Print out an error message, then exit immediately and kill the process. Does no clean up memory. +DLLEXPORT void reb_exit(const char* const msg); +// Stop current integration in a nice way. Can be called from within heartbeat function. +DLLEXPORT void reb_simulation_stop(struct reb_simulation* const r); +// Print or store a warning message, then continue. +DLLEXPORT void reb_simulation_warning(struct reb_simulation* const r, const char* const msg); +// Print or store an error message, then continue. +DLLEXPORT void reb_simulation_error(struct reb_simulation* const r, const char* const msg); + + +// Output functions + +// Write the simulation to file (simulationarchive format). Appends a snapshot if file exists. +DLLEXPORT void reb_simulation_save_to_file(struct reb_simulation* r, const char* filename); +// Schedule regular outputs to a file based on simulation time. +DLLEXPORT void reb_simulation_save_to_file_interval(struct reb_simulation* const r, const char* filename, double interval); +// Schedule regular outputs to a file based on wall time. +DLLEXPORT void reb_simulation_save_to_file_walltime(struct reb_simulation* const r, const char* filename, double walltime); +// Schedule regular outputs to a file based on number of steps taken. +DLLEXPORT void reb_simulation_save_to_file_step(struct reb_simulation* const r, const char* filename, uint64_t step); +// Write the simulation to a memory buffer (simulationarchive format). +DLLEXPORT void reb_simulation_save_to_stream(struct reb_simulation* r, char** bufp, size_t* sizep); +// Output timing data to file. Appends file if it exists. +DLLEXPORT void reb_simulation_output_timing(struct reb_simulation* r, const double tmax); +// Output orbits to file. Appends file if it exists. +DLLEXPORT void reb_simulation_output_orbits(struct reb_simulation* r, char* filename); +// Output cartesian coordinates to file. Appends file if it exists. +DLLEXPORT void reb_simulation_output_ascii(struct reb_simulation* r, char* filename); +// Output velocity dispersion tensor to file. Used for ring simulations. Appends file if it exists. +DLLEXPORT void reb_simulation_output_velocity_dispersion(struct reb_simulation* r, char* filename); +// Function to allow for periodic outputs in heartbeat function. See examples on how to use it. +DLLEXPORT int reb_simulation_output_check(struct reb_simulation* r, double interval); +// Write a screenshot of the current simulation to a file. Requires that a server was started with reb_simulation_start_server() and one client web browser is connected. +// Returns 1 if successful, otherwise. +DLLEXPORT int reb_simulation_output_screenshot(struct reb_simulation* r, const char* filename); + + +// Timestepping + +// Advance simulation by 1 timestep. +DLLEXPORT void reb_simulation_step(struct reb_simulation* const r); +// Advance simulation by N_steps timesteps. +DLLEXPORT void reb_simulation_steps(struct reb_simulation* const r, unsigned int N_steps); +// Integrate simulation to at least time tmax (see exact_finish_time). +DLLEXPORT enum REB_STATUS reb_simulation_integrate(struct reb_simulation* const r, double tmax); +// Synchronize simulation if safe_mode is turned off by integrator to get physical coordinates. +DLLEXPORT void reb_simulation_synchronize(struct reb_simulation* r); + + +// Functions to operate on simulations + +// Move the simulation to the heliocentric frame (particle with index 0 will be at the origin and at rest after calling this function). +DLLEXPORT void reb_simulation_move_to_hel(struct reb_simulation* const r); +// Move the simultion to the center of mass frame (the center of mass will be at the origin and at rest after calling this function). +DLLEXPORT void reb_simulation_move_to_com(struct reb_simulation* const r); +// Multiply x,y,z,vx,vy,vz of each particle in r with given scalars. +DLLEXPORT void reb_simulation_imul(struct reb_simulation* r, double scalar_pos, double scalar_vel); +// Add cartesian components of each particle of r2 to cartesian components in r. r2 and r must have same number of particles. +DLLEXPORT int reb_simulation_iadd(struct reb_simulation* r, struct reb_simulation* r2); +// Same as above but substract r2 from r component wise. +DLLEXPORT int reb_simulation_isub(struct reb_simulation* r, struct reb_simulation* r2); +// Finds the two largest particles in the simulation. *p1 and *p2 will be set to the indicies of the largest particles. +DLLEXPORT void reb_simulation_two_largest_particles(struct reb_simulation* r, int* p1, int* p2); + + +// Diangnostic functions + +// Return the sum of potential and kinetic energy +DLLEXPORT double reb_simulation_energy(struct reb_simulation* const r); +// Returns the angular momentum. +DLLEXPORT struct reb_vec3d reb_simulation_angular_momentum(const struct reb_simulation* const r); +// Returns the center of mass of a simulation. +DLLEXPORT struct reb_particle reb_simulation_com(struct reb_simulation* r); +// Returns the center of mass of two particles. +DLLEXPORT struct reb_particle reb_particle_com_of_pair(struct reb_particle p1, struct reb_particle p2); +// Returns the center of mass of particles in the simulation within a given range. +DLLEXPORT struct reb_particle reb_simulation_com_range(struct reb_simulation* r, int first, int last); +// Returns the gravitational timescale as calculated in Pham, Rein, Spiegel (2023). Useful for setting the initial IAS15 timestep. +DLLEXPORT double reb_integrator_ias15_timescale(struct reb_simulation* r); + +// Functions to add and initialize particles + +// Use this function to add particle pt to simulation r. +DLLEXPORT void reb_simulation_add(struct reb_simulation* const r, struct reb_particle pt); +// Use this function to add a particle to a simulation using orbital parameters or cartesian coordinates. See examples on usage. +DLLEXPORT void reb_simulation_add_fmt(struct reb_simulation* r, const char* fmt, ...); +// Same as reb_simulation_add_fmt() but returns the particle instead of adding it to the simulation. Still need simulation for G, center of mass, etc. +DLLEXPORT struct reb_particle reb_particle_from_fmt(struct reb_simulation* r, const char* fmt, ...); +// This function sets up a Plummer sphere, N=number of particles, M=total mass, R=characteristic radius. Particles get added to simulation. +DLLEXPORT void reb_simulation_add_plummer(struct reb_simulation* r, int _N, double M, double R); +// Returns a particle given a set of orbital parameters. Also sets err to error code if initialization failed. +DLLEXPORT struct reb_particle reb_particle_from_orbit_err(double G, struct reb_particle primary, double m, double a, double e, double i, double Omega, double omega, double f, int* err); +// Same as above but without error code. +DLLEXPORT struct reb_particle reb_particle_from_orbit(double G, struct reb_particle primary, double m, double a, double e, double i, double Omega, double omega, double f); +// Returns a particle given a set of Pal orbital parameters. +DLLEXPORT struct reb_particle reb_particle_from_pal(double G, struct reb_particle primary, double m, double a, double lambda, double k, double h, double ix, double iy); +// Returns a reb_particle structure with fields/hash/ptrs initialized to nan/0/NULL. +DLLEXPORT struct reb_particle reb_particle_nan(void); + + +// Functions to access, remove, and operate on particles + +// Remove all particles +DLLEXPORT void reb_simulation_remove_all_particles(struct reb_simulation* const r); +// Remove one particle. keep_sorted flag can be set to 1 to maintain order of remaining particles. +DLLEXPORT int reb_simulation_remove_particle(struct reb_simulation* const r, int index, int keep_sorted); +// Remove one particle. Use hash to find particle. +DLLEXPORT int reb_simulation_remove_particle_by_hash(struct reb_simulation* const r, uint32_t hash, int keep_sorted); +// Returns pointer to particle with given hash. +DLLEXPORT struct reb_particle* reb_simulation_particle_by_hash(struct reb_simulation* const r, uint32_t hash); +// Same as above but searches on all nodes if MPI is enabled. Returns copy instead of a pointer because particle might be on a different node. +DLLEXPORT struct reb_particle reb_simulation_particle_by_hash_mpi(struct reb_simulation* const r, uint32_t hash); +// Returns a particle's index in the simulation given a pointer to the particle. Returns -1 if not found. +DLLEXPORT int reb_simulation_particle_index(struct reb_particle* p); +// Subtract particle p2 from p1 +DLLEXPORT void reb_particle_isub(struct reb_particle* p1, struct reb_particle* p2); +// Add particle p2 to p1 +DLLEXPORT void reb_particle_iadd(struct reb_particle* p1, struct reb_particle* p2); +// Multiply x,y,z,vx,vy,vz,m of p1 with given value. +DLLEXPORT void reb_particle_imul(struct reb_particle* p1, double value); +// Return the distance between particle p1 and p2 +DLLEXPORT double reb_particle_distance(struct reb_particle* p1, struct reb_particle* p2); +// Compares two particles, ignoring pointers. Returns 1 if particles differ, 0 if they are exactly equal. +DLLEXPORT int reb_particle_diff(struct reb_particle p1, struct reb_particle p2); + + +// Chaos indicators + +// Turn on MEGNO/Lyapunov calculation. Uses random seen in simulation. +DLLEXPORT void reb_simulation_init_megno(struct reb_simulation* const r); +// Same as above but used given random seend. Useful to reproduce same results every time. +DLLEXPORT void reb_simulation_init_megno_seed(struct reb_simulation* const r, unsigned int seed); +// Returns the current MEGNO value, +DLLEXPORT double reb_simulation_megno(struct reb_simulation* r); +// Returns the largest Lyapunov characteristic number (LCN). +DLLEXPORT double reb_simulation_lyapunov(struct reb_simulation* r); + + +// Built in mercurius switching functions + +DLLEXPORT double reb_integrator_mercurius_L_mercury(const struct reb_simulation* const r, double d, double dcrit); // default +DLLEXPORT double reb_integrator_mercurius_L_infinity(const struct reb_simulation* const r, double d, double dcrit); +DLLEXPORT double reb_integrator_mercurius_L_C4(const struct reb_simulation* const r, double d, double dcrit); +DLLEXPORT double reb_integrator_mercurius_L_C5(const struct reb_simulation* const r, double d, double dcrit); + +// Built in trace switching functions + +DLLEXPORT int reb_integrator_trace_switch_peri_default(struct reb_simulation* const r, const unsigned int j); +DLLEXPORT int reb_integrator_trace_switch_peri_none(struct reb_simulation* const r, const unsigned int j); +DLLEXPORT int reb_integrator_trace_switch_default(struct reb_simulation* const r, const unsigned int i, const unsigned int j); + + +// Built in collision resolve functions + +DLLEXPORT enum REB_COLLISION_RESOLVE_OUTCOME reb_collision_resolve_halt(struct reb_simulation* const r, struct reb_collision c); // halts a simulation when a collision occurs +DLLEXPORT enum REB_COLLISION_RESOLVE_OUTCOME reb_collision_resolve_hardsphere(struct reb_simulation* const r, struct reb_collision c); +DLLEXPORT enum REB_COLLISION_RESOLVE_OUTCOME reb_collision_resolve_merge(struct reb_simulation* const r, struct reb_collision c); + + +// Random sampling - These functions only use the simulation object for a seed. If r=NULL time and PID are used as a seed. + +DLLEXPORT double reb_random_uniform(struct reb_simulation* r, double min, double max); +DLLEXPORT double reb_random_powerlaw(struct reb_simulation* r, double min, double max, double slope); +DLLEXPORT double reb_random_normal(struct reb_simulation* r, double variance); +DLLEXPORT double reb_random_rayleigh(struct reb_simulation* r, double sigma); + + +// Miscellaneous functions + +// Calculate a hash value for a string. +DLLEXPORT uint32_t reb_hash(const char* str); +// Returns the angle f wrapped in the interval from 0 to 2*pi +DLLEXPORT double reb_mod2pi(double f); +// True anomaly for a given eccentricity and mean anomaly +DLLEXPORT double reb_M_to_f(double e, double M); +// True anomaly for a given eccentricity and eccentric anomaly +DLLEXPORT double reb_E_to_f(double e, double M); +// Eccentric anomaly for a given eccentricity and mean anomaly +DLLEXPORT double reb_M_to_E(double e, double M); + + +// Simulationarchive + +// Simulationarchive structure +struct reb_simulationarchive{ + FILE* inf; // File pointer (will be kept open) + char* filename; // Filename of open file. This is NULL if this is a memory-mapped file (using fmemopen) + int version; // Simulationarchive version + int reb_version_major; // Major REBOUND Version used to save SA + int reb_version_minor; // Minor REBOUND Version used to save SA + int reb_version_patch; // Patch REBOUND Version used to save SA + double auto_interval; // Interval setting used to create SA (if used) + double auto_walltime; // Walltime setting used to create SA (if used) + uint64_t auto_step; // Steps in-between SA snapshots (if used) + int64_t nblobs; // Total number of snapshots (including initial binary) + uint64_t* offset; // Index of offsets in file (length nblobs) + double* t; // Index of simulation times in file (length nblobs) +}; +// Allocate memory for a simulationarchive and initialize it with a file. +DLLEXPORT struct reb_simulationarchive* reb_simulationarchive_create_from_file(const char* filename); +// Free memory allocated by simulationarchive +DLLEXPORT void reb_simulationarchive_free(struct reb_simulationarchive* sa); + + +// Orbit calculation + +// Structure containing orbital elements for Keplerian orbits. +struct reb_orbit { + double d; // Radial distance from central object + double v; // velocity relative to central object's velocity + double h; // Specific angular momentum + double P; // Orbital period + double n; // Mean motion + double a; // Semi-major axis + double e; // Eccentricity + double inc; // Inclination + double Omega; // Longitude of ascending node + double omega; // Argument of pericenter + double pomega; // Longitude of pericenter + double f; // True anomaly + double M; // Mean anomaly + double l; // Mean Longitude + double theta; // True Longitude + double T; // Time of pericenter passage + double rhill; // Circular Hill radius + double pal_h; // Cartesian component of the eccentricity, h = e*sin(pomega) + double pal_k; // Cartesian component of the eccentricity, k = e*cos(pomega) + double pal_ix; // Cartesian component of the inclination, ix = 2*sin(i/2)*cos(Omega) + double pal_iy; // Cartesian component of the inclination, ix = 2*sin(i/2)*sin(Omega) + struct reb_vec3d hvec; // specific angular momentum vector + struct reb_vec3d evec; // eccentricity vector (mag=ecc, points toward peri) +}; +// Calculates all orbital elements of the particle p, assuming gravitational constant G and the given primary. +DLLEXPORT struct reb_orbit reb_orbit_from_particle(double G, struct reb_particle p, struct reb_particle primary); + + +// ODE functions + +// Defines one Ordinary Differential Equation (ODE) so that it can be integrated with REBOUND +struct reb_ode{ + unsigned int length; // number of components / dimenion + double* y; // Pointer to current state + unsigned int needs_nbody; // 1: ODE needs N-body particles to calculate RHS + void* ref; // Optional pointer to any additional data needed for derivative calculation + void (*derivatives)(struct reb_ode* const ode, double* const yDot, const double* const y, const double t); // Function pointer to right hand side of ODE + void (*getscale)(struct reb_ode* const ode, const double* const y0, const double* const y1); // Function pointer, sets scales for components (optional) + void (*pre_timestep)(struct reb_ode* const ode, const double* const y0); // Function pointer, gets called just before the ODE integration (optional) + void (*post_timestep)(struct reb_ode* const ode, const double* const y0); // Function pointer, gets called just after the ODE integration (optional) + + // Internal use + unsigned int N_allocated; + double* scale; + double* C; // Temporary internal array (extrapolation) + double** D; // Temporary internal array (extrapolation) + double* y1; // Temporary internal array (state during the step) + double* y0Dot; // Temporary internal array (derivatives at beginning of step) + double* yDot; // Temporary internal array (derivatives) + double* yTmp; // Temporary internal array (midpoint method) + struct reb_simulation* r; // weak reference to main simulation +}; +// Allocate memory for an ODE struct, initialize it, and attach it to the simulation. See examples for details on usage. +DLLEXPORT struct reb_ode* reb_ode_create(struct reb_simulation* r, unsigned int length); +// Free an ODE struct. +DLLEXPORT void reb_ode_free(struct reb_ode* ode); + + +// Variational equations + +// Struct describing the properties of a set of variational equations. +// If testparticle is set to -1, then it is assumed that all particles are massive +// and all particles influence all other particles. If testparticle is >=0 then +// the particle with that index is assumed to be a testparticle, i.e. it does not +// influence other particles. For second order variational equation, index_1st_order_a/b +// is the index in the particle array that corresponds to the 1st order variational +// equations. +struct reb_variational_configuration{ + struct reb_simulation* sim; // Reference to the simulation. + int order; // Order of the variational equation. 1 or 2. + int index; // Index of the first variational particle in the particles array. + int testparticle; // Is this variational configuration describe a test particle? -1 if not. + int index_1st_order_a; // Used for 2nd order variational particles only: Index of the first order variational particle in the particles array. + int index_1st_order_b; // Used for 2nd order variational particles only: Index of the first order variational particle in the particles array. + double lrescale; // Accumulates the logarithm of rescalings +}; + +// Add and initialize a set of first order variational particles +// If testparticle is >= 0, then only one variational particle (the test particle) will be added. +// If testparticle is -1, one variational particle for each real particle will be added. +// Returns the index of the first variational particle added +DLLEXPORT int reb_simulation_add_variation_1st_order(struct reb_simulation* const r, int testparticle); + +// Add and initialize a set of second order variational particles +// Note: a set of second order variational particles requires two sets of first order variational equations. +// If testparticle is >= 0, then only one variational particle (the test particle) will be added. +// If testparticle is -1, one variational particle for each real particle will be added. +// index_1st_order_a is the index of the corresponding first variational particles. +// index_1st_order_b is the index of the corresponding first variational particles. +// Returns the index of the first variational particle added +DLLEXPORT int reb_simulation_add_variation_2nd_order(struct reb_simulation* const r, int testparticle, int index_1st_order_a, int index_1st_order_b); + +// Rescale all sets of variational particles if their size gets too large (>1e100). +// This can prevent an overflow in floating point numbers. The logarithm of the rescaling +// factor is stored in the reb_variational_configuration's lrescale variable. +// This function is called automatically every timestep. To avoid automatic rescaling, +// set the reb_variational_configuration's lrescale variable to -1. +// For this function to work, the positions and velocities needs to be synchronized. +// A warning is presented if the integrator is not synchronized. +DLLEXPORT void reb_simulation_rescale_var(struct reb_simulation* const r); + +// These functions calculates the first/second derivative of a Keplerian orbit. +// Derivatives of Keplerian orbits are required for variational equations, in particular +// for optimization problems. +// The derivative is calculated with respect to the variables that appear in the function name. +// One variable implies that a first derivative is returned, two variables implies that a second +// derivate is returned. Classical orbital parameters and those introduced by Pal (2009) are +// supported. Pal coordinates have the advantage of being analytical (i.e. infinite differentiable). +// Classical orbital parameters may have singularities, for example when e is close to 0. +// Note that derivatives with respect to Cartesian coordinates are trivial and therefore not +// implemented as seperate functions. +// The following variables are supported: a, e, inc, f, omega, Omega, h, k, ix, iy and m (mass). +// The functions return the derivative as a particle structre. Each structure element is a derivative. +// The paramter po is the original particle for which the derivative is to be calculated. +DLLEXPORT struct reb_particle reb_particle_derivative_lambda(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_h(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_k(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_k_k(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_h_h(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_lambda_lambda(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_k_lambda(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_h_lambda(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_k_h(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_a(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_ix(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_ix_ix(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_iy_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_k_ix(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_h_ix(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_lambda_ix(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_lambda_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_h_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_k_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_ix_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_ix(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_lambda(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_h(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_k(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_a(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_lambda(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_h(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_k(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_ix(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_iy(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_m(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_e(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_e_e(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_inc(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_inc_inc(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_Omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_Omega_Omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_omega_omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_f(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_f_f(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_e(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_inc(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_Omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_a_f(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_e_inc(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_e_Omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_e_omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_e_f(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_e(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_inc_Omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_inc_omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_inc_f(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_inc(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_omega_Omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_Omega_f(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_Omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_omega_f(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_omega(double G, struct reb_particle primary, struct reb_particle po); +DLLEXPORT struct reb_particle reb_particle_derivative_m_f(double G, struct reb_particle primary, struct reb_particle po); + +// Functions for Frequency Analysis, MFT, FMFT +enum REB_FREQUENCY_ANALYSIS_TYPE { + REB_FREQUENCY_ANALYSIS_MFT = 0, + REB_FREQUENCY_ANALYSIS_FMFT = 1, + REB_FREQUENCY_ANALYSIS_FMFT2 = 2, +}; +// Returns 0 on success +DLLEXPORT int reb_frequency_analysis(double *output, int nfreq, double minfreq, double maxfreq, enum REB_FREQUENCY_ANALYSIS_TYPE type, double *input, unsigned long ndata); + +// Functions to convert between coordinate systems + +// Rotations +DLLEXPORT struct reb_rotation reb_rotation_inverse(const struct reb_rotation q); +DLLEXPORT struct reb_rotation reb_rotation_mul(const struct reb_rotation p, const struct reb_rotation q); + +DLLEXPORT struct reb_rotation reb_rotation_identity(); +DLLEXPORT struct reb_rotation reb_rotation_normalize(const struct reb_rotation q); +DLLEXPORT struct reb_rotation reb_rotation_conjugate(const struct reb_rotation q); +DLLEXPORT struct reb_rotation reb_rotation_init_angle_axis(const double angle, struct reb_vec3d axis); +DLLEXPORT struct reb_rotation reb_rotation_init_from_to(struct reb_vec3d from, struct reb_vec3d to); +DLLEXPORT struct reb_rotation reb_rotation_init_orbit(const double Omega, const double inc, const double omega); +DLLEXPORT struct reb_rotation reb_rotation_init_to_new_axes(struct reb_vec3d newz, struct reb_vec3d newx); +DLLEXPORT struct reb_rotation reb_rotation_slerp(struct reb_rotation q1, struct reb_rotation q2, double t); + +// transformations to/from vec3d +DLLEXPORT struct reb_vec3d reb_tools_spherical_to_xyz(const double mag, const double theta, const double phi); +DLLEXPORT void reb_tools_xyz_to_spherical(struct reb_vec3d const xyz, double* mag, double* theta, double* phi); + +DLLEXPORT struct reb_vec3d reb_vec3d_mul(const struct reb_vec3d v, const double s); +DLLEXPORT struct reb_vec3d reb_vec3d_add(const struct reb_vec3d v, const struct reb_vec3d w); +DLLEXPORT double reb_vec3d_length_squared(const struct reb_vec3d v); +DLLEXPORT double reb_vec3d_dot(const struct reb_vec3d a, const struct reb_vec3d b); +DLLEXPORT struct reb_vec3d reb_vec3d_cross(const struct reb_vec3d a, const struct reb_vec3d b); +DLLEXPORT struct reb_vec3d reb_vec3d_normalize(const struct reb_vec3d v); +DLLEXPORT struct reb_vec3d reb_vec3d_rotate(struct reb_vec3d v, const struct reb_rotation q); +DLLEXPORT void reb_vec3d_irotate(struct reb_vec3d *v, const struct reb_rotation q); +DLLEXPORT void reb_particle_irotate(struct reb_particle* p, const struct reb_rotation q); +DLLEXPORT void reb_simulation_irotate(struct reb_simulation* const sim, const struct reb_rotation q); + +DLLEXPORT void reb_rotation_to_orbital(struct reb_rotation q, double* Omega, double* inc, double* omega); + +#ifdef MPI +void reb_mpi_init(struct reb_simulation* const r); +void reb_mpi_finalize(struct reb_simulation* const r); +#endif // MPI + +#ifdef OPENMP +// Wrapper method to set number of OpenMP threads from python. +DLLEXPORT void reb_omp_set_num_threads(int num_threads); +#endif // OPENMP + +// The following stuctures are related to OpenGL/WebGL visualization. Nothing to be changed by the user. + +struct reb_orbit_opengl { + float x,y,z; + float a, e, f; + float omega, Omega, inc; +}; + +struct reb_vec3df { + float x,y,z; +}; + +struct reb_vec4df { + float x,y,z,r; +}; + +struct reb_server_data { + struct reb_simulation* r; + void* screenshot; // Screenshot data received by server (decoded) + size_t N_screenshot; // Size of decoded screenshot data + enum REB_STATUS status_before_screenshot; + int port; + int need_copy; + int ready; +#ifdef SERVER + int mutex_locked_by_integrate; // Let's heartbeat find out if it is being called while the mutex is locked. +#ifdef _WIN32 + SOCKET socket; + HANDLE mutex; // Mutex to allow for copying +#else // _WIN32 + int socket; + pthread_mutex_t mutex; // Mutex to allow for copying + pthread_t server_thread; +#endif // _WIN32 +#endif // SERVER +}; + +struct reb_display_settings { + struct reb_mat4df view; + int spheres; // Switches between point sprite and real spheres. + int pause; // Pauses visualization, but keep simulation running + int wire; // Shows/hides orbit wires. + unsigned int breadcrumbs; // Number of past particle positions. + int onscreentext; // Shows/hides onscreen text. + int onscreenhelp; // Shows/hides onscreen help. + int multisample; // Turn off/on multisampling. + int ghostboxes; // Shows/hides ghost boxes. + int reference; // reb_particle used as a reference for centering. +}; + +struct reb_display_data { + struct reb_display_settings s; + struct reb_simulation* r; + struct reb_simulation* r_copy; + void* screenshot; // Screenshot data to be sent to server + struct reb_vec4df* particle_data; + struct reb_orbit_opengl* orbit_data; + uint64_t N_allocated; + double mouse_x; + double mouse_y; + double retina; + int take_one_screenshot; +#ifndef _WIN32 + int need_copy; + pthread_mutex_t mutex; // Mutex to allow for copying + pthread_t compute_thread; +#endif // _WIN32 +#ifdef __EMSCRIPTEN__ + int connection_status; +#endif + uint64_t breadcrumb_last_steps_done; + unsigned int breadcrumb_N_allocated; + unsigned int breadcrumb_current_index; + unsigned int mouse_action; + unsigned int key_mods; + unsigned int particle_buffer; + unsigned int particle_buffer_current; + unsigned int orbit_buffer; + unsigned int orbit_buffer_current; + void* window; + struct { + unsigned int texture; + unsigned int program; + unsigned int vao; + unsigned int pos_location; + unsigned int ypos_location; + unsigned int scale_location; + unsigned int aspect_location; + unsigned int screen_aspect_location; + unsigned int rotation_location; + unsigned int texture_location; + unsigned int charval_buffer; + } shader_simplefont; + struct { + unsigned int program; + unsigned int box_vao; + unsigned int cross_vao; + unsigned int ruler_vao; + unsigned int mvp_location; + unsigned int color_location; + } shader_box; + struct { + unsigned int mvp_location; + unsigned int color_location; + unsigned int current_index_location; + unsigned int breadcrumb_N_location; + unsigned int N_real_location; + unsigned int program; + unsigned int particle_vao; + } shader_point; + struct { + unsigned int mvp_location; + unsigned int program; + unsigned int particle_vao_current; + unsigned int particle_vao; + } shader_sphere; + struct { + unsigned int mvp_location; + unsigned int current_index_location; + unsigned int breadcrumb_N_location; + unsigned int N_real_location; + unsigned int vertex_count_location; + unsigned int program; + unsigned int particle_vao_current; + unsigned int particle_vao; + unsigned int vertex_count; + } shader_orbit; + struct { + unsigned int mvp_location; + unsigned int vertex_count_location; + unsigned int program; + unsigned int particle_vao_current; + unsigned int vertex_count; + } shader_plane; +}; + +// Display settings initialization +DLLEXPORT void reb_simulation_add_display_settings(struct reb_simulation* r); + +// Matrix methods +DLLEXPORT struct reb_mat4df reb_mat4df_identity(); +DLLEXPORT struct reb_mat4df reb_mat4df_scale(struct reb_mat4df m, float x, float y, float z); +DLLEXPORT void reb_mat4df_print(struct reb_mat4df m); +DLLEXPORT int reb_mat4df_eq(struct reb_mat4df A, struct reb_mat4df B); +DLLEXPORT struct reb_vec3df reb_mat4df_get_scale(struct reb_mat4df m); +DLLEXPORT struct reb_mat4df reb_mat4df_translate(struct reb_mat4df m, float x, float y, float z); +DLLEXPORT struct reb_mat4df reb_mat4df_multiply(struct reb_mat4df A, struct reb_mat4df B); +DLLEXPORT struct reb_mat4df reb_rotation_to_mat4df(struct reb_rotation A); +DLLEXPORT struct reb_mat4df reb_mat4df_ortho(float l, float r, float b, float t, float n, float f); + + +// Declarations and functions needed internally or by python interface only. +void reb_sigint_handler(int signum); + +// Used in the binary file to identify data blobs +struct reb_simulationarchive_blob { + int32_t index; // Index of previous blob (binary file is 0, first blob is 1) + int32_t offset_prev; // Offset to beginning of previous blob (size of previous blob). + int32_t offset_next; // Offset to end of following blob (size of following blob). +}; +// Binary field descriptors are used to identify data blobs in simulationarchives. +struct reb_binary_field_descriptor { + uint32_t type; // Unique id for each field. Should not change between versions. Ids should not be reused. + enum { + REB_DOUBLE = 0, + REB_INT = 1, + REB_UINT = 2, // Same as UINT32 + REB_UINT32 = 3, + REB_INT64 = 4, + REB_UINT64 = 5, + // REB_ULONGLONG = 6, // No longer used. Using explicit lengths instead. + REB_VEC3D = 7, + REB_PARTICLE = 8, + REB_POINTER = 9, + REB_POINTER_ALIGNED = 10, // memory aligned to 64 bit boundary for AVX512 + REB_DP7 = 11, // Special datatype for IAS15 + REB_OTHER = 12, // Fields that need special treatment during input and/or output + REB_FIELD_END = 13, // Special type to indicate end of blob + REB_FIELD_NOT_FOUND = 14, // Special type used to throw error messages + REB_PARTICLE4 = 15, // Used for WHFast512 + REB_POINTER_FIXED_SIZE = 16, // A pointer with a fixed size. + } dtype; + char name[1024]; + size_t offset; // Offset of the storage location relative to the beginning of reb_simulation + size_t offset_N; // Offset of the storage location for the size relative to the beginning of reb_simulation + size_t element_size; // Size in bytes of each element (only used for pointers, dp7, etc) +}; +DLLEXPORT extern const struct reb_binary_field_descriptor reb_binary_field_descriptor_list[]; // List of blobs. Implemented in output.c +DLLEXPORT struct reb_binary_field_descriptor reb_binary_field_descriptor_for_type(int type); +DLLEXPORT struct reb_binary_field_descriptor reb_binary_field_descriptor_for_name(const char* name); + +// Possible errors that might occur during binary file reading. +enum reb_simulation_binary_error_codes { + REB_SIMULATION_BINARY_WARNING_NONE = 0, + REB_SIMULATION_BINARY_ERROR_NOFILE = 1, + REB_SIMULATION_BINARY_WARNING_VERSION = 2, + REB_SIMULATION_BINARY_WARNING_POINTERS = 4, + REB_SIMULATION_BINARY_WARNING_PARTICLES = 8, + REB_SIMULATION_BINARY_ERROR_FILENOTOPEN = 16, + REB_SIMULATION_BINARY_ERROR_OUTOFRANGE = 32, + REB_SIMULATION_BINARY_ERROR_SEEK = 64, + REB_SIMULATION_BINARY_WARNING_FIELD_UNKOWN = 128, + REB_SIMULATION_BINARY_ERROR_INTEGRATOR = 256, + REB_SIMULATION_BINARY_WARNING_CORRUPTFILE = 512, + REB_SIMULATION_BINARY_ERROR_OLD = 1024, +}; + + +struct reb_binary_field { // This structure is used to save and load binary files. + uint32_t type; // type as given by reb_binary_field_descriptor + uint64_t size; // Size in bytes of field (only counting what follows, not the binary field, itself). +}; + +DLLEXPORT void reb_simulation_init(struct reb_simulation* r); // Used internally and by python. Should not be called by the user. +DLLEXPORT void reb_simulation_update_acceleration(struct reb_simulation* r); // Used by REBOUNDx +DLLEXPORT void reb_simulation_update_tree(struct reb_simulation* const r); +DLLEXPORT int reb_simulation_get_next_message(struct reb_simulation* const r, char* const buf); // Get the next stored warning message. Used only if save_messages==1. Return value is 0 if no messages are present, 1 otherwise. +DLLEXPORT int reb_check_fp_contract(); // Returns 1 if floating point contraction are enabled. 0 otherwise. +DLLEXPORT size_t reb_simulation_struct_size(); +DLLEXPORT char* reb_simulation_diff_char(struct reb_simulation* r1, struct reb_simulation* r2); // Return the difference between two simulations as a human readable difference. Returned pointer needs to be freed. +DLLEXPORT void reb_simulation_set_collision_resolve(struct reb_simulation* r, enum REB_COLLISION_RESOLVE_OUTCOME (*resolve) (struct reb_simulation* const r, struct reb_collision c)); // Used from python +DLLEXPORT void reb_simulation_get_serialized_particle_data(struct reb_simulation* r, uint32_t* hash, double* m, double* radius, double (*xyz)[3], double (*vxvyvz)[3], double (*xyzvxvyvz)[6]); // NULL pointers will not be set. +DLLEXPORT void reb_simulation_set_serialized_particle_data(struct reb_simulation* r, uint32_t* hash, double* m, double* radius, double (*xyz)[3], double (*vxvyvz)[3], double (*xyzvxvyvz)[6]); // Null pointers will be ignored. +DLLEXPORT void reb_simulation_output_free_stream(char* buf); +DLLEXPORT struct reb_particle reb_simulation_jacobi_com(struct reb_particle* p); // Returns the Jacobi center of mass for a given particle. Used by python. Particle needs to be in a simulation. +DLLEXPORT struct reb_orbit reb_orbit_from_particle_err(double G, struct reb_particle p, struct reb_particle primary, int* err); +DLLEXPORT void reb_simulation_create_from_simulationarchive_with_messages(struct reb_simulation* r, struct reb_simulationarchive* sa, int64_t snapshot, enum reb_simulation_binary_error_codes* warnings); +DLLEXPORT void reb_simulation_copy_with_messages(struct reb_simulation* r_copy, struct reb_simulation* r, enum reb_simulation_binary_error_codes* warnings); // used from python +DLLEXPORT void reb_simulationarchive_init_from_buffer_with_messages(struct reb_simulationarchive* sa, char* buf, size_t size, struct reb_simulationarchive* sa_index, enum reb_simulation_binary_error_codes* warnings); +DLLEXPORT void reb_simulationarchive_create_from_file_with_messages(struct reb_simulationarchive* sa, const char* filename, struct reb_simulationarchive* sa_index, enum reb_simulation_binary_error_codes* warnings); +DLLEXPORT void reb_simulationarchive_free_pointers(struct reb_simulationarchive* sa); + +DLLEXPORT void reb_particles_transform_inertial_to_jacobi_posvel(const struct reb_particle* const particles, struct reb_particle* const p_j, const struct reb_particle* const p_mass, const unsigned int N, const unsigned int N_active); // p_mass: Should be the same particles array as ps for real particles. If passing variational particles in ps, p_mass should be the corresponding array of real particles. +DLLEXPORT void reb_particles_transform_inertial_to_jacobi_posvelacc(const struct reb_particle* const particles, struct reb_particle* const p_j, const struct reb_particle* const p_mass, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_inertial_to_jacobi_acc(const struct reb_particle* const particles, struct reb_particle* const p_j,const struct reb_particle* const p_mass, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_jacobi_to_inertial_posvel(struct reb_particle* const particles, const struct reb_particle* const p_j, const struct reb_particle* const p_mass, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_jacobi_to_inertial_pos(struct reb_particle* const particles, const struct reb_particle* const p_j, const struct reb_particle* const p_mass, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_jacobi_to_inertial_acc(struct reb_particle* const particles, const struct reb_particle* const p_j, const struct reb_particle* const p_mass, const unsigned int N, const unsigned int N_active); + +DLLEXPORT void reb_free(void* p); + +// Democratic heliocentric coordinates +DLLEXPORT void reb_particles_transform_inertial_to_democraticheliocentric_posvel(const struct reb_particle* const particles, struct reb_particle* const p_h, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_democraticheliocentric_to_inertial_pos(struct reb_particle* const particles, const struct reb_particle* const p_h, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_democraticheliocentric_to_inertial_posvel(struct reb_particle* const particles, const struct reb_particle* const p_h, const unsigned int N, const unsigned int N_active); + +// WHDS +DLLEXPORT void reb_particles_transform_inertial_to_whds_posvel(const struct reb_particle* const particles, struct reb_particle* const p_h, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_whds_to_inertial_pos(struct reb_particle* const particles, const struct reb_particle* const p_h, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_whds_to_inertial_posvel(struct reb_particle* const particles, const struct reb_particle* const p_h, const unsigned int N, const unsigned int N_active); + +// Barycentric coordinates +DLLEXPORT void reb_particles_transform_inertial_to_barycentric_posvel(const struct reb_particle* const particles, struct reb_particle* const p_b, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_barycentric_to_inertial_pos(struct reb_particle* const particles, const struct reb_particle* const p_b, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_barycentric_to_inertial_posvel(struct reb_particle* const particles, const struct reb_particle* const p_b, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_inertial_to_barycentric_acc(const struct reb_particle* const particles, struct reb_particle* const p_b, const unsigned int N, const unsigned int N_active); +DLLEXPORT void reb_particles_transform_barycentric_to_inertial_acc(struct reb_particle* const particles, const struct reb_particle* const p_b, const unsigned int N, const unsigned int N_active); + +// Potentially useful API functions +DLLEXPORT void reb_whfast_kepler_solver(const struct reb_simulation* const r, struct reb_particle* const restrict p_j, const double M, unsigned int i, double _dt); // The WHFast Kepler solver + +// Temporary. Function declarations needed by REBOUNDx +DLLEXPORT void reb_integrator_ias15_reset(struct reb_simulation* r); ///< Internal function used to call a specific integrator +DLLEXPORT void reb_integrator_ias15_part2(struct reb_simulation* r); ///< Internal function used to call a specific integrator +DLLEXPORT void reb_integrator_whfast_from_inertial(struct reb_simulation* const r); ///< Internal function to the appropriate WHFast coordinates from inertial +DLLEXPORT void reb_integrator_whfast_to_inertial(struct reb_simulation* const r); ///< Internal function to move back from particular WHFast coordinates to inertial +DLLEXPORT void reb_integrator_whfast_reset(struct reb_simulation* r); ///< Internal function used to call a specific integrator +DLLEXPORT int reb_integrator_whfast_init(struct reb_simulation* const r); ///< Internal function to check errors and allocate memory if needed +DLLEXPORT void reb_whfast_interaction_step(struct reb_simulation* const r, const double _dt);///< Internal function +DLLEXPORT void reb_whfast_jump_step(const struct reb_simulation* const r, const double _dt); ///< Internal function +DLLEXPORT void reb_whfast_kepler_step(const struct reb_simulation* const r, const double _dt); ///< Internal function +DLLEXPORT void reb_whfast_com_step(const struct reb_simulation* const r, const double _dt); ///< Internal function +#endif // _MAIN_H diff --git a/rebound/source/src/rotations.c b/rebound/source/src/rotations.c new file mode 100644 index 0000000000000000000000000000000000000000..08d7ab748c0b8523a3ba1008272b2e0f01b19b03 --- /dev/null +++ b/rebound/source/src/rotations.c @@ -0,0 +1,408 @@ +/** + * @file rotations.c + * @brief Tools for vector manipulations, rotations and quaternions. + * @author Hanno Rein , Dan Tamayo + * @details This code uses the same conventions as the Apple SIMD quaternion framework. See e.g.: + * https://github.com/xybp888/iOS-SDKs/blob/master/iPhoneOS13.0.sdk/usr/include/simd/quaternion.h + * + * @section LICENSE + * Copyright (c) 2022 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include "rebound.h" +#include "tools.h" + +// reb_vec3d manipulation functions + +struct reb_vec3d reb_vec3d_mul(const struct reb_vec3d v, const double s){ + struct reb_vec3d nv = { + .x = s*v.x, + .y = s*v.y, + .z = s*v.z + }; + return nv; +} + +struct reb_vec3d reb_vec3d_add(const struct reb_vec3d v, const struct reb_vec3d w){ + struct reb_vec3d nv = { + .x = v.x + w.x, + .y = v.y + w.y, + .z = v.z + w.z + }; + return nv; +} + +struct reb_vec3d reb_vec3d_cross(const struct reb_vec3d a, const struct reb_vec3d b){ + struct reb_vec3d c = { + .x = a.y*b.z - a.z*b.y, + .y = a.z*b.x - a.x*b.z, + .z = a.x*b.y - a.y*b.x, + }; + return c; +} + +double reb_vec3d_dot(const struct reb_vec3d a, const struct reb_vec3d b){ + return a.x*b.x + a.y*b.y + a.z*b.z; +} + +double reb_vec3d_length_squared(const struct reb_vec3d v){ + return reb_vec3d_dot(v, v); +} + +struct reb_vec3d reb_vec3d_normalize(const struct reb_vec3d v){ + return reb_vec3d_mul(v, 1./sqrt(reb_vec3d_length_squared(v))); +} + +// reb_rotation manipulation functions + +struct reb_vec3d reb_rotation_imag(const struct reb_rotation q){ + struct reb_vec3d i = { + .x = q.ix, + .y = q.iy, + .z = q.iz + }; + return i; +} + +struct reb_rotation reb_rotation_mul(const struct reb_rotation p, const struct reb_rotation q){ + // v_rot = p * ( q * v) + struct reb_rotation r = { + .r = p.r*q.r - p.ix*q.ix - p.iy*q.iy - p.iz*q.iz, + .ix = p.r*q.ix + p.ix*q.r + p.iy*q.iz - p.iz*q.iy, + .iy = p.r*q.iy - p.ix*q.iz + p.iy*q.r + p.iz*q.ix, + .iz = p.r*q.iz + p.ix*q.iy - p.iy*q.ix + p.iz*q.r + }; + return r; +} + +double reb_rotation_length_squared(const struct reb_rotation q){ + return q.r*q.r + q.ix*q.ix + q.iy*q.iy + q.iz*q.iz; +} + +struct reb_rotation reb_rotation_conjugate(const struct reb_rotation q){ + struct reb_rotation c = {.ix = -q.ix, .iy = -q.iy, .iz = -q.iz, .r = q.r }; + return c; +} + +struct reb_rotation reb_rotation_normalize(const struct reb_rotation q){ + double l = 1./sqrt(reb_rotation_length_squared(q)); + struct reb_rotation n = {.ix = q.ix*l, .iy = q.iy*l, .iz = q.iz*l, .r = q.r*l }; + return n; +} + +struct reb_rotation reb_rotation_inverse(const struct reb_rotation q){ + struct reb_rotation c = reb_rotation_conjugate(q); + double rl2 = 1./reb_rotation_length_squared(q); + c.r *= rl2; + c.ix *= rl2; + c.iy *= rl2; + c.iz *= rl2; + return c; +} + +// Object rotation functions + +struct reb_vec3d reb_vec3d_rotate(struct reb_vec3d v, const struct reb_rotation q){ + // Returns a copy + struct reb_vec3d r = v; + reb_vec3d_irotate(&r, q); + return r; +} + +void reb_vec3d_irotate(struct reb_vec3d* v, const struct reb_rotation q){ + // Rotates vector in place + struct reb_vec3d imag = reb_rotation_imag(q); + struct reb_vec3d t = reb_vec3d_mul(reb_vec3d_cross(imag,*v), 2); + struct reb_vec3d res = reb_vec3d_add(*v, reb_vec3d_add(reb_vec3d_mul(t, q.r), reb_vec3d_cross(imag, t))); + v->x = res.x; + v->y = res.y; + v->z = res.z; +} + +void reb_particle_irotate(struct reb_particle* p, const struct reb_rotation q){ + struct reb_vec3d pos = {p->x, p->y, p->z}; + reb_vec3d_irotate(&pos, q); + p->x = pos.x; + p->y = pos.y; + p->z = pos.z; + struct reb_vec3d vel = {p->vx, p->vy, p->vz}; + reb_vec3d_irotate(&vel, q); + p->vx = vel.x; + p->vy = vel.y; + p->vz = vel.z; +} + +void reb_simulation_irotate(struct reb_simulation* const sim, const struct reb_rotation q){ + const int N = sim->N; + for (int i = 0; i < N; i++){ + struct reb_particle* p = &sim->particles[i]; + reb_particle_irotate(p,q); + } +} + +// Alternate ways of initializing rotation + +struct reb_rotation reb_rotation_identity(){ + struct reb_rotation q = {.ix = 0.0, .iy = 0.0, .iz = 0.0, .r = 1.0 }; + return q; +} + +static inline struct reb_rotation reb_rotation_init_from_to_reduced(const struct reb_vec3d from, const struct reb_vec3d to) { + // Internal use only + struct reb_vec3d half = {.x=from.x+to.x, .y=from.y+to.y, .z=from.z+to.z}; + half = reb_vec3d_normalize(half); + struct reb_vec3d cross = reb_vec3d_cross(from, half); + double dot = reb_vec3d_dot(from, half); + struct reb_rotation q = {.ix=cross.x, .iy=cross.y, .iz=cross.z, .r=dot}; + return q; +} + +struct reb_rotation reb_rotation_init_from_to(struct reb_vec3d from, struct reb_vec3d to) { + from = reb_vec3d_normalize(from); + to = reb_vec3d_normalize(to); + + if (reb_vec3d_dot(from, to) >= 0) { // small angle + return reb_rotation_init_from_to_reduced(from, to); + } + + // More than 90 degrees apart, do rotation in two stages: + // (from -> half), (half -> to) + struct reb_vec3d half = {.x=from.x+to.x, .y=from.y+to.y, .z=from.z+to.z}; + half = reb_vec3d_normalize(half); + + if (!isnormal(reb_vec3d_length_squared(half))) { + // half is nearly zero, so from and to point in nearly opposite directions + // and the rotation is numerically underspecified. Pick an axis orthogonal + // to the vectors, and use an angle of pi radians. + struct reb_vec3d abs_from = {.x=fabs(from.x), .y=fabs(from.y), .z=fabs(from.z)}; + if (abs_from.x <= abs_from.y && abs_from.x <= abs_from.z){ + struct reb_vec3d axis = {.x=1, .y=0, .z = 0}; + axis = reb_vec3d_cross(from, axis); + struct reb_rotation q = {.ix=axis.x, .iy=axis.y, .iz=axis.z, .r=0.0}; + return q; + } + if (abs_from.y <= abs_from.z){ + struct reb_vec3d axis = {.x=0, .y=1, .z = 0}; + axis = reb_vec3d_cross(from, axis); + struct reb_rotation q = {.ix=axis.x, .iy=axis.y, .iz=axis.z, .r=0.0}; + return q; + } + struct reb_vec3d axis = {.x=0, .y=0, .z = 1}; + axis = reb_vec3d_cross(from, axis); + struct reb_rotation q = {.ix=axis.x, .iy=axis.y, .iz=axis.z, .r=0.0}; + return q; + } + + return reb_rotation_mul(reb_rotation_init_from_to_reduced(from, half), reb_rotation_init_from_to_reduced(half, to)); +} + +struct reb_rotation reb_rotation_init_angle_axis(const double angle, struct reb_vec3d axis){ + axis = reb_vec3d_normalize(axis); + double cos2 = cos(angle/2.0); + double sin2 = sin(angle/2.0); + struct reb_vec3d imag = reb_vec3d_mul(axis, sin2); + struct reb_rotation q = {.ix = imag.x, .iy = imag.y, .iz = imag.z, .r = cos2 }; + return q; +} + +struct reb_rotation reb_rotation_init_to_new_axes(struct reb_vec3d newz, struct reb_vec3d newx){ + double dotprod = reb_vec3d_dot(newz, newx); + newz = reb_vec3d_normalize(newz); + newx = reb_vec3d_add(newx, reb_vec3d_mul(newz, -dotprod)); // orthogonalize: newx = newx - (newx dot newz) newzhat + struct reb_vec3d z = {.x=0.0, .y=0.0, .z=1.0}; + struct reb_rotation q1 = reb_rotation_init_from_to(newz, z); + struct reb_vec3d x = {.x=1.0, .y=0.0, .z=0.0}; + reb_vec3d_irotate(&newx, q1); // need to rotate newx to what it would be after the first rotation + struct reb_rotation q2 = reb_rotation_init_from_to(newx, x); + return reb_rotation_mul(q2, q1); +} + +struct reb_rotation reb_rotation_init_orbit(const double Omega, const double inc, const double omega){ + // Murray and Dermot Eq. 2.121 (left hand side) + struct reb_vec3d x = {.x=1.0}; + struct reb_vec3d z = {.z=1.0}; + struct reb_rotation P1 = reb_rotation_init_angle_axis(omega, z); + struct reb_rotation P2 = reb_rotation_init_angle_axis(inc, x); + struct reb_rotation P3 = reb_rotation_init_angle_axis(Omega, z); + return reb_rotation_mul(P3, reb_rotation_mul(P2, P1)); +} + +#define MIN_INC 1.e-8 +void reb_rotation_to_orbital(struct reb_rotation q, double* Omega, double* inc, double* omega){ + // see https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0276302 + // and https://github.com/evbernardes/quaternion_to_euler/blob/main/euler_from_rotation.py + // Works but angles doen't always land in the right quadrant. + double ap = q.r; + double bp = q.iz; + double cp = q.ix; + double dp = q.iy; + *inc = acos(2.0*(ap*ap+bp*bp) - 1.0); + int safe1 = (fabs(*inc) > MIN_INC); + int safe2 = (fabs(*inc - M_PI) > MIN_INC); + + if (safe1 && safe2){ + double half_sum = atan2(bp, ap); + double half_diff = atan2(dp, cp); + *omega = half_sum - half_diff; + *Omega = half_sum + half_diff; + }else{ + *Omega = 0; + if (!safe1){ + double half_sum = atan2(bp, ap); + *omega = 2.0 * half_sum; + }else{ + double half_diff = atan2(dp, cp); + *omega = 2.0 * half_diff; + } + } + if (*omega < 0){ + *omega += M_PI*2.0; + } + if (*Omega < 0){ + *Omega += M_PI*2.0; + } +} + +#define QUATERNION_EPS 1e-4 // enough for visualizations +struct reb_rotation reb_rotation_slerp(struct reb_rotation q1, struct reb_rotation q2, double t){ + // Based on http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/index.htm + struct reb_rotation result; + + double cosHalfTheta = q1.r*q2.r + q1.ix*q2.ix + q1.iy*q2.iy + q1.iz*q2.iz; + + // if q1=q2 or qa=-q2 then theta = 0 and we can return qa + if (fabs(cosHalfTheta) >= 1.0) { + return q1; + } + + double halfTheta = acos(cosHalfTheta); + double sinHalfTheta = sqrt(1.0 - cosHalfTheta*cosHalfTheta); + // If theta = 180 degrees then result is not fully defined + // We could rotate around any axis normal to q1 or q2 + if (fabs(sinHalfTheta) < QUATERNION_EPS) { + result.r = (q1.r * 0.5 + q2.r * 0.5); + result.ix = (q1.ix * 0.5 + q2.ix * 0.5); + result.iy = (q1.iy * 0.5 + q2.iy * 0.5); + result.iz = (q1.iz * 0.5 + q2.iz * 0.5); + } else { + // Default quaternion calculation + double ratioA = sin((1 - t) * halfTheta) / sinHalfTheta; + double ratioB = sin(t * halfTheta) / sinHalfTheta; + result.r = (q1.r * ratioA + q2.r * ratioB); + result.ix = (q1.ix * ratioA + q2.ix * ratioB); + result.iy = (q1.iy * ratioA + q2.iy * ratioB); + result.iz = (q1.iz * ratioA + q2.iz * ratioB); + } + return result; +} + + +// Matrix methods, mostly used for visualization + +struct reb_mat4df reb_mat4df_identity(){ + struct reb_mat4df i = { .m={ + 1.,0.,0.,0., + 0.,1.,0.,0., + 0.,0.,1.,0., + 0.,0.,0.,1.}}; + return i; +} + +struct reb_mat4df reb_mat4df_scale(struct reb_mat4df m, float x, float y, float z){ + struct reb_mat4df nm = m; + for(int j=0;j<4;j++){ + nm.m[0+j*4] *= x; + nm.m[1+j*4] *= y; + nm.m[2+j*4] *= z; + } + return nm; +} + +void reb_mat4df_print(struct reb_mat4df m){ + printf("\n"); + for(int i=0;i<4;i++){ + for(int j=0;j<4;j++){ + printf("%f \t", m.m[i+j*4]); + } + printf("\n"); + } + printf("\n"); +} + +int reb_mat4df_eq(struct reb_mat4df A, struct reb_mat4df B){ + for(int j=0;j<16;j++){ + if (A.m[j] != B.m[j]) return 0; + } + return 1; +} + +struct reb_vec3df reb_mat4df_get_scale(struct reb_mat4df m){ + struct reb_vec3df s = { + .x = sqrtf(m.m[0]*m.m[0] + m.m[4]*m.m[4] + m.m[8]*m.m[8]), + .y = sqrtf(m.m[1]*m.m[1] + m.m[5]*m.m[5] + m.m[9]*m.m[9]), + .z = sqrtf(m.m[2]*m.m[2] + m.m[6]*m.m[6] + m.m[10]*m.m[10]), + }; + return s; +} + +struct reb_mat4df reb_mat4df_translate(struct reb_mat4df m, float x, float y, float z){ + struct reb_mat4df nm = m; + nm.m[3+4*0] += x*m.m[0+4*0] + y*m.m[1+4*0] + z*m.m[2+4*0]; + nm.m[3+4*1] += x*m.m[0+4*1] + y*m.m[1+4*1] + z*m.m[2+4*1]; + nm.m[3+4*2] += x*m.m[0+4*2] + y*m.m[1+4*2] + z*m.m[2+4*2]; + return nm; +} + +struct reb_mat4df reb_mat4df_multiply(struct reb_mat4df A, struct reb_mat4df B){ + struct reb_mat4df C = {0}; + for(int i=0;i<4;i++) + for(int j=0;j<4;j++){ + C.m[i+4*j] = 0.; + for(int k=0;k<4;k++){ + C.m[i+4*j] += A.m[k+4*j]*B.m[i+4*k]; + }} + return C; +} + +struct reb_mat4df reb_rotation_to_mat4df(struct reb_rotation A){ + struct reb_mat4df m; + float xx = A.ix * A.ix; float xy = A.ix * A.iy; float xz = A.ix * A.iz; + float xw = A.ix * A.r; float yy = A.iy * A.iy; float yz = A.iy * A.iz; + float yw = A.iy * A.r; float zz = A.iz * A.iz; float zw = A.iz * A.r; + m.m[0] = 1.-2.*(yy+zz); + m.m[1] = 2.*(xy-zw); + m.m[2] = 2.*(xz+yw); + m.m[4] = 2.*(xy+zw); + m.m[5] = 1.-2.*(xx+zz); + m.m[6] = 2.*(yz-xw); + m.m[8] = 2.*(xz-yw); + m.m[9] = 2.*(yz+xw); + m.m[10]= 1.-2.*(xx+yy); + m.m[3] = m.m[7] = m.m[11] = m.m[12] = m.m[13] = m.m[14] = 0; m.m[15]= 1; + return m; +} + +struct reb_mat4df reb_mat4df_ortho(float l, float r, float b, float t, float n, float f) { + struct reb_mat4df m; + m.m[0] = 2.f/(r-l); m.m[1] = 0.; m.m[2] = 0.; m.m[3] = -(r+l)/(r-l); + m.m[4] = 0.; m.m[5] = 2.f/(t-b); m.m[6] = 0.; m.m[7] = -(t+b)/(t-b); + m.m[8] = 0.; m.m[9] = 0.; m.m[10] = -2.f/(f-n); m.m[11] = -(f+n)/(f-n); + m.m[12] = 0.; m.m[13] = 0.; m.m[14] = 0.; m.m[15] = 1.f; + return m; +} diff --git a/rebound/source/src/rotations.h b/rebound/source/src/rotations.h new file mode 100644 index 0000000000000000000000000000000000000000..ee10c2f49cc00a81372217dc458736d6ae2e111f --- /dev/null +++ b/rebound/source/src/rotations.h @@ -0,0 +1,29 @@ +/** + * @file rotations.h + * @brief Tools for quaternions and rotations + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2022 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef ROTATIONS_H +#define ROTATIONS_H + + +#endif // ROTATIONS_H diff --git a/rebound/source/src/server.c b/rebound/source/src/server.c new file mode 100644 index 0000000000000000000000000000000000000000..c5bb5d50345709890ef127b1e002b370bfd1512b --- /dev/null +++ b/rebound/source/src/server.c @@ -0,0 +1,761 @@ +/** + * @file server.c + * @brief Opens a webserver to allow for platform independent visualization. + * @author Hanno Rein + * @details These functions provide real time visualizations + * using OpenGL. Part of the code is by Dave O'Hallaron, Carnegie Mellon (tiny.c). + * + * @section LICENSE + * Copyright (c) 2023 Hanno Rein, Dave O'Hallaron, Carnegie Mellon + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#include "rebound.h" + +#ifdef SERVER +#include +#ifdef _MSC_VER +//not #if defined(_WIN32) || defined(_WIN64) because we have strncasecmp in mingw +#define strncasecmp _strnicmp +#define strcasecmp _stricmp +#endif +#ifdef _WIN32 +#include +#include +#include +#define F_OK 0 +#define access _access +#pragma comment(lib, "ws2_32.lib") +#else // _WIN32 +#include +#include +#include +#include +#include +#include +#endif // _WIN32 +#include +#include +#include +#include + + + +#define BUFSIZE 1024 + +const char* reb_server_header = +"HTTP/1.1 200 OK\n" +"Server: REBOUND Webserver\n" +"Cache-Control: no-cache, no-store, must-revalidate\n" +"Pragma: no-cache\n" +"Expires: 0\n" +//"Access-Control-Allow-Origin: *\n" +//"Cross-Origin-Opener-Policy: cross-origin\n" +"Content-type: text/html\n" +"\r\n"; +const char* reb_server_header_png = +"HTTP/1.1 200 OK\n" +"Server: REBOUND Webserver\n" +"Content-type: image/png\n" +"\r\n"; + +#ifdef _WIN32 +int sendBytes(SOCKET s, const void * buffer, int buflen){ + int total = 0; + char *pbuf = (char*) buffer; + while (buflen > 0) { + int iResult = send(s, pbuf, buflen, 0); + if (iResult < 0) { + if (WSAGetLastError() == WSAEWOULDBLOCK) { + // optionally use select() to wait for the + // socket to have more space to write before + // calling send() again... + continue; + } + + printf("send error: %d\n", WSAGetLastError()); + return SOCKET_ERROR; + } else if (iResult == 0) { + printf("disconnected\n"); + return 0; + } else { + pbuf += iResult; + buflen -= iResult; + total += iResult; + } + } + + return total; +} +#endif // _WIN32 + + +#ifdef _WIN32 +static void reb_server_cerror(SOCKET clientS, char cause[]){ +#else //_WIN32 + static void reb_server_cerror(FILE *stream, char *cause){ +#endif //_WIN32 + char* buf = NULL; + asprintf(&buf, "HTTP/1.1 501 Not Implemented\n" + "Content-type: text/html\n" + "\n" + "REBOUND Webserver Error" + "\n" + "

Error

\n" + "

%s

\n" + "
REBOUND Webserver\n" + "\n" + , cause); + printf("\nREBOUND Webserver error: %s\n", cause); +#ifdef _WIN32 + sendBytes(clientS, buf, strlen(buf)); + closesocket(clientS); // close the Client Socket now that our Work is Complete. +#else //_WIN32 + fwrite(buf, 1, strlen(buf), stream); +#endif //_WIN32 + free(buf); + } + + static const unsigned char base64_table[65] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + + /** + * base64_decode - Base64 decode + * @src: Data to be decoded + * @len: Length of the data to be decoded + * @out_len: Pointer to output length variable + * Returns: Allocated buffer of out_len bytes of decoded data, + * or %NULL on failure + * + * Caller is responsible for freeing the returned buffer. + * + * Source: https://web.mit.edu/freebsd/head/contrib/wpa/src/utils/base64.c + */ + static unsigned char * base64_decode(const unsigned char *src, size_t len, size_t *out_len) { + unsigned char dtable[256], *out, *pos, block[4], tmp; + size_t i, count, olen; + int pad = 0; + + memset(dtable, 0x80, 256); + for (i = 0; i < sizeof(base64_table) - 1; i++) + dtable[base64_table[i]] = (unsigned char) i; + dtable['='] = 0; + + count = 0; + for (i = 0; i < len; i++) { + if (dtable[src[i]] != 0x80) + count++; + } + + if (count == 0 || count % 4) + return NULL; + + olen = count / 4 * 3; + pos = out = malloc(olen); + if (out == NULL) + return NULL; + + count = 0; + for (i = 0; i < len; i++) { + tmp = dtable[src[i]]; + if (tmp == 0x80) + continue; + + if (src[i] == '=') + pad++; + block[count] = tmp; + count++; + if (count == 4) { + *pos++ = (block[0] << 2) | (block[1] >> 4); + *pos++ = (block[1] << 4) | (block[2] >> 2); + *pos++ = (block[2] << 6) | block[3]; + count = 0; + if (pad) { + if (pad == 1) + pos--; + else if (pad == 2) + pos -= 2; + else { + /* Invalid padding */ + free(out); + return NULL; + } + break; + } + } + } + + *out_len = pos - out; + return out; + } + + +#ifndef _WIN32 + void* reb_server_start(void* args){ +#else //_WIN32 + DWORD WINAPI reb_server_start(void* args){ +#endif // _WIN32 + struct reb_server_data* data = (struct reb_server_data*)args; + struct reb_simulation* r = data->r; + + if (access("rebound.html", F_OK)) { + reb_simulation_warning(r, "File rebound.html not found in current directory. Attempting to download it from github."); + char curl_cmd[] = "curl -L -s --output rebound.html https://github.com/hannorein/rebound/releases/latest/download/rebound.html"; + system(curl_cmd); + if (access("rebound.html", F_OK)) { + reb_simulation_warning(r, "Automatic download failed. Manually download the file from github and place it in the current directory to enable browser based visualization."); + }else{ + printf("Success: rebound.html downloaded.\n"); + } + } + +#ifndef _WIN32 + pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); + pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL); + + + /* variables for connection management */ + int childfd; /* child socket */ + unsigned int clientlen; /* byte size of client's address */ + int optval; /* flag value for setsockopt */ + struct sockaddr_in serveraddr; /* server's addr */ + struct sockaddr_in clientaddr; /* client addr */ + + /* variables for connection I/O */ + FILE *stream; /* stream version of childfd */ + char buf[BUFSIZE]; /* message buffer */ + char method[BUFSIZE]; /* request method */ + char uri[BUFSIZE]; /* request uri */ + char version[BUFSIZE]; /* request method */ + + /* open socket descriptor */ + data->socket = socket(AF_INET, SOCK_STREAM, 0); + if (data->socket < 0) + reb_exit("ERROR opening socket"); + + /* allows us to restart server immediately */ + optval = 1; + setsockopt(data->socket, SOL_SOCKET, SO_REUSEADDR, + (const void *)&optval , sizeof(int)); + + /* bind port to socket */ + memset((char *) &serveraddr, 0, sizeof(serveraddr)); + serveraddr.sin_family = AF_INET; + serveraddr.sin_addr.s_addr = htonl(INADDR_ANY); + serveraddr.sin_port = htons(data->port); + if (bind(data->socket, (struct sockaddr *) &serveraddr, sizeof(serveraddr)) < 0){ + char error_msg[BUFSIZE]; + snprintf(error_msg, BUFSIZE, "Error binding to port %d. Port might be in use.\n", data->port); + reb_simulation_error(r, error_msg); + data->ready = -1; + return PTHREAD_CANCELED; + } + + /* get us ready to accept connection requests */ + if (listen(data->socket, 5) < 0) /* allow 5 requests to queue up */ + reb_exit("ERROR on listen"); + + printf("REBOUND Webserver listening on http://localhost:%d (not secure) ...\n",data->port); + /* + * main loop: wait for a connection request, parse HTTP, + * serve requested content, close connection. + */ + clientlen = sizeof(clientaddr); + while (1) { + /* wait for a connection request */ + data->ready = 1; + childfd = accept(data->socket, (struct sockaddr *) &clientaddr, &clientlen); + if (childfd < 0) { // Accept will fail if main thread is closing socket. + return PTHREAD_CANCELED; + } + + /* open the child socket descriptor as a stream */ + if ((stream = fdopen(childfd, "r+")) == NULL) + reb_exit("ERROR on fdopen"); + + /* get the HTTP request line */ + char* request = fgets(buf, BUFSIZE, stream); + if (!request){ + reb_server_cerror(stream, "Did not get request."); + fclose(stream); + close(childfd); + continue; + } + sscanf(buf, "%s %s %s\n", method, uri, version); + + /* only support the GET method */ + if (strcasecmp(method, "GET") && strcasecmp(method, "POST")) { + reb_server_cerror(stream, "Only GET+POST are implemented."); + fclose(stream); + close(childfd); + continue; + } + + /* read (and ignore) the HTTP headers */ + fgets(buf, BUFSIZE, stream); + unsigned long content_length = 0; + while(strcmp(buf, "\r\n")) { + char cl[BUFSIZE]; + int ni = sscanf(buf, "Content-Length: %s\n", cl); + if (ni){ + content_length = strtol(cl,NULL,10); + } + fgets(buf, BUFSIZE, stream); + } + + if (!strcasecmp(uri, "/simulation")) { + char* bufp = NULL; + size_t sizep; + data->need_copy = 1; + pthread_mutex_lock(&(data->mutex)); + reb_simulation_save_to_stream(r, &bufp,&sizep); + data->need_copy = 0; + pthread_mutex_unlock(&(data->mutex)); + fwrite(reb_server_header, 1, strlen(reb_server_header), stream); + fwrite(bufp, 1, sizep, stream); + free(bufp); + }else if (!strncasecmp(uri, "/keyboard/",10)) { + int key = 0; + sscanf(uri, "/keyboard/%d", &key); + data->need_copy = 1; + pthread_mutex_lock(&(data->mutex)); + int skip_default_keys = 0; + if (r->key_callback){ + skip_default_keys = r->key_callback(r, key); + } + data->need_copy = 0; + pthread_mutex_unlock(&(data->mutex)); + if (!skip_default_keys){ + switch (key){ + case 'Q': + data->r->status = REB_STATUS_USER; + fwrite(reb_server_header, 1, strlen(reb_server_header), stream); + fprintf(stream, "ok.\n"); + break; + case ' ': + if (data->r->status == REB_STATUS_PAUSED){ + printf("Resume.\n"); + data->r->status = REB_STATUS_RUNNING; + }else if (data->r->status == REB_STATUS_RUNNING){ + printf("Pause.\n"); + data->r->status = REB_STATUS_PAUSED; + } + fwrite(reb_server_header, 1, strlen(reb_server_header), stream); + fprintf(stream, "ok.\n"); + break; + case 264: // arrow down + if (data->r->status == REB_STATUS_PAUSED){ + data->r->status = REB_STATUS_SINGLE_STEP; + printf("Step.\n"); + } + fwrite(reb_server_header, 1, strlen(reb_server_header), stream); + fprintf(stream, "ok.\n"); + break; + case 267: // page down + if (data->r->status == REB_STATUS_PAUSED){ + data->r->status = REB_STATUS_SINGLE_STEP - 50; + printf("50 steps.\n"); + } + fwrite(reb_server_header, 1, strlen(reb_server_header), stream); + fprintf(stream, "ok.\n"); + break; + default: + // reb_server_cerror(stream, "Unsupported key received."); + break; + } + }else{ + fwrite(reb_server_header, 1, strlen(reb_server_header), stream); + fprintf(stream, "ok.\n"); + } + }else if (!strcasecmp(uri, "/") || !strcasecmp(uri, "/index.html") || !strcasecmp(uri, "/rebound.html")) { + struct stat sbuf; + if (stat("rebound.html", &sbuf) < 0) { + reb_server_cerror(stream, "rebound.html not found in current directory. Try `make rebound.html`."); + }else{ + fwrite(reb_server_header, 1, strlen(reb_server_header), stream); + int fd = open("rebound.html", O_RDONLY); + void* p = mmap(0, sbuf.st_size, PROT_READ, MAP_PRIVATE, fd, 0); + fwrite(p, 1, sbuf.st_size, stream); + munmap(p, sbuf.st_size); + } + }else if (!strcasecmp(uri, "/favicon.ico")) { + fwrite(reb_server_header_png, 1, strlen(reb_server_header_png), stream); + fwrite(reb_favicon_png,1, reb_favicon_len, stream); + }else if (!strcasecmp(uri, "/screenshot")) { + data->need_copy = 1; + pthread_mutex_lock(&(data->mutex)); + + if (content_length==0){ + printf("Received screenshot with size zero."); + goto screenshot_finish; + } + if (r->status != REB_STATUS_SCREENSHOT){ + printf("Received screenshot but did not expect one.\n"); + goto screenshot_finish; + } + if (data->screenshot) { + printf("Unable to receive screenshot as previous screenshot not freed.\n"); + goto screenshot_finish; + } + + char* dataURL = malloc(content_length); + int rc = fread(dataURL, content_length, 1, stream); + + if (rc!=1){ + printf("Error while reading screenshot data.\n"); + free(dataURL); + goto screenshot_finish; + } + + int rc_len = strlen(dataURL)+1; + char* base64 = strchr(dataURL, ','); + if (content_length != rc_len){ + printf("Received screenshot with incorrect size.\n"); + free(dataURL); + goto screenshot_finish; + } + if (!base64){ + printf("Unable to decode received screenshot. Data not in dataURL format.\n"); + free(dataURL); + goto screenshot_finish; + } + data->screenshot = base64_decode((unsigned char*)base64+1, strlen(base64+1), &data->N_screenshot); + if (!data->screenshot){ + printf("An error occured while decoding the screenshot.\n"); + } + data->r->status = REB_STATUS_PAUSED; + free(dataURL); +screenshot_finish: + data->need_copy = 0; + pthread_mutex_unlock(&(data->mutex)); + fwrite(reb_server_header, 1, strlen(reb_server_header), stream); + fprintf(stream, "ok.\n"); + }else{ + reb_server_cerror(stream, "Unsupported URI."); + printf("URI: %s\n", uri); + } + + /* clean up */ + fflush(stream); + fclose(stream); + close(childfd); + + } + printf("Server shutting down...\n"); + return PTHREAD_CANCELED; + +#else // _WIN32 + + + WSADATA wsa; + struct sockaddr_in server; + SOCKET clientS; + char method[BUFSIZE]; + char uri[BUFSIZE]; + char version[BUFSIZE]; + + if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0) { + printf("Winsock startup failed"); + exit(1); + } + + data->socket = socket(AF_INET, SOCK_STREAM, 0); + if (data->socket == INVALID_SOCKET) { + printf("Socket error\n"); + exit(1); + } + + server.sin_family = AF_INET; + server.sin_port = htons(data->port); + InetPton(AF_INET, _T("0.0.0.0"), &server.sin_addr); + + int ret_bind = bind(data->socket, (struct sockaddr*)&server, sizeof(server)); // binding the Host Address and Port Number + if (ret_bind) { + char error_msg[BUFSIZE]; + snprintf(error_msg, BUFSIZE, "Error binding to port %d. Port might be in use.\n", data->port); + reb_simulation_error(r, error_msg); + data->ready = -1; + return 1; + } + + int ret_listen = listen(data->socket, AF_INET); + if (ret_listen){ + printf("Listen error\n"); + exit(1); + } + + printf("REBOUND Webserver listening on http://localhost:%d (not secure) ...\n",data->port); + + while(1){ + data->ready = 1; + clientS = accept(data->socket, NULL, NULL); + if (clientS == INVALID_SOCKET) { // Accept will fail if main thread is closing socket. + return 1; + } + // Receive entire request. + int recN = 0; + char* recbuf = malloc(BUFSIZE); + int recbufN = 0; + while((recN = recv(clientS, recbuf+recbufN, BUFSIZE, 0))>0){ + recbufN += recN; + if (recNneed_copy = 1; + WaitForSingleObject(data->mutex, INFINITE); + reb_simulation_save_to_stream(r, &bufp,&sizep); + data->need_copy = 0; + ReleaseMutex(data->mutex); + sendBytes(clientS, reb_server_header, strlen(reb_server_header)); + sendBytes(clientS, bufp, sizep); + free(bufp); + }else if (!strncasecmp(uri, "/keyboard/",10)) { + int key = 0; + const char* ok = "ok."; + sscanf(uri, "/keyboard/%d", &key); + int skip_default_keys = 0; + data->need_copy = 1; + WaitForSingleObject(data->mutex, INFINITE); + if (r->key_callback){ + skip_default_keys = r->key_callback(r, key); + } + data->need_copy = 0; + ReleaseMutex(data->mutex); + if (!skip_default_keys){ + switch (key){ + case 'Q': + data->r->status = REB_STATUS_USER; + sendBytes(clientS, reb_server_header, strlen(reb_server_header)); + sendBytes(clientS, ok, strlen(ok)); + break; + case ' ': + if (data->r->status == REB_STATUS_PAUSED){ + printf("Resume.\n"); + data->r->status = REB_STATUS_RUNNING; + }else if (data->r->status == REB_STATUS_RUNNING){ + printf("Pause.\n"); + data->r->status = REB_STATUS_PAUSED; + } + sendBytes(clientS, reb_server_header, strlen(reb_server_header)); + sendBytes(clientS, ok, strlen(ok)); + break; + case 264: // down arrow + if (data->r->status == REB_STATUS_PAUSED){ + data->r->status = REB_STATUS_SINGLE_STEP; + printf("Step.\n"); + } + sendBytes(clientS, reb_server_header, strlen(reb_server_header)); + sendBytes(clientS, ok, strlen(ok)); + break; + case 267: // page down + if (data->r->status == REB_STATUS_PAUSED){ + data->r->status = REB_STATUS_SINGLE_STEP - 50; + printf("50 step.\n"); + } + sendBytes(clientS, reb_server_header, strlen(reb_server_header)); + sendBytes(clientS, ok, strlen(ok)); + break; + default: + // reb_server_cerror(clientS, "Unknown key received."); + continue; + break; + } + }else{ + sendBytes(clientS, reb_server_header, strlen(reb_server_header)); + sendBytes(clientS, ok, strlen(ok)); + } + }else if (!strcasecmp(uri, "/") || !strcasecmp(uri, "/index.html") || !strcasecmp(uri, "/rebound.html")) { + FILE *f = fopen("rebound.html", "rb"); + if (f){ + fseek(f, 0, SEEK_END); + long fsize = ftell(f); + fseek(f, 0, SEEK_SET); + char *buf = malloc(fsize); + fread(buf, fsize, 1, f); + fclose(f); + sendBytes(clientS, reb_server_header, strlen(reb_server_header)); + sendBytes(clientS, buf, fsize); + free(buf); + }else{ + reb_server_cerror(clientS, "rebound.html not found in current directory. Try `make rebound.html`."); + continue; + } + }else if (!strcasecmp(uri, "/favicon.ico")) { + sendBytes(clientS, reb_server_header_png, strlen(reb_server_header_png)); + sendBytes(clientS, reb_favicon_png, reb_favicon_len); + }else if (!strcasecmp(uri, "/screenshot")) { + data->need_copy = 1; + WaitForSingleObject(data->mutex, INFINITE); + if (content_length==0){ + printf("Received screenshot with size zero."); + goto screenshot_finish; + } + if (r->status != REB_STATUS_SCREENSHOT){ + printf("Received screenshot but did not expect one.\n"); + goto screenshot_finish; + } + if (data->screenshot) { + printf("Unable to receive screenshot as previous screenshot not freed.\n"); + goto screenshot_finish; + } + + char* dataURL = curLine; // Memory! + + int rc_len = strlen(dataURL)+1; + char* base64 = strchr(dataURL, ','); + if (content_length != rc_len){ + printf("Received screenshot with incorrect size.\n"); + goto screenshot_finish; + } + if (!base64){ + printf("Unable to decode received screenshot. Data not in dataURL format.\n"); + goto screenshot_finish; + } + data->screenshot = base64_decode((unsigned char*)base64+1, strlen(base64+1), &data->N_screenshot); + if (!data->screenshot){ + printf("An error occured while decoding the screenshot.\n"); + } + data->r->status = REB_STATUS_PAUSED; +screenshot_finish: + free(recbuf); + data->need_copy = 0; + ReleaseMutex(data->mutex); + const char* ok = "ok."; + sendBytes(clientS, reb_server_header, strlen(reb_server_header)); + sendBytes(clientS, ok, strlen(ok)); + }else{ + reb_server_cerror(clientS, "Unsupported request."); + printf("URI: %s\n",uri); + continue; + } + + closesocket(clientS); + } + WSACleanup(); + return 0; +#endif // _WIN32 + } + +#endif // SERVER + + + int reb_simulation_start_server(struct reb_simulation* r, int port){ +#ifdef SERVER + if (port){ + if (r->server_data){ + reb_simulation_error(r,"Server already started."); + return -1; + } + r->server_data = calloc(sizeof(struct reb_server_data),1); + r->server_data->r = r; + r->server_data->port = port; +#ifdef _WIN32 + r->server_data->mutex = CreateMutex(NULL, FALSE, NULL); + HANDLE thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)reb_server_start, r->server_data, 0, NULL); +#else // _WIN32 + if (pthread_mutex_init(&(r->server_data->mutex), NULL)){ + reb_simulation_error(r,"Mutex creation failed."); + return -1; + } + int ret_create = pthread_create(&(r->server_data->server_thread),NULL,reb_server_start,r->server_data); + if (ret_create){ + reb_simulation_error(r, "Error creating server thread."); + return -1; + } +#endif // _WIN32 + int maxwait = 100; + while (r->server_data->ready==0 && maxwait){ + usleep(10000); + maxwait--; + } + if (r->server_data->ready==0){ + reb_simulation_warning(r, "Server did not start immediately. This might just take a little bit longer."); + } + return 0; + }else{ + reb_simulation_error(r, "Cannot start server. Invalid port."); + return -1; + } +#else // SERVER +#ifndef SERVERHIDEWARNING + reb_simulation_error(r, "REBOUND has been compiled without SERVER support."); +#endif // SERVERHIDEWARNING + return -1; +#endif // SERVER + } + + void reb_simulation_stop_server(struct reb_simulation* r){ +#ifdef SERVER + if (r==NULL) return; + if (r->server_data){ +#ifdef _WIN32 + closesocket(r->server_data->socket); // Will cause thread to exit. +#else // _WIN32 + close(r->server_data->socket); // Will cause thread to exit. + int ret_cancel = pthread_cancel(r->server_data->server_thread); + if (ret_cancel==ESRCH){ + printf("Did not find server thread while trying to cancel it.\n"); + } + void* retval = 0; + pthread_join(r->server_data->server_thread, &retval); + if (retval!=PTHREAD_CANCELED){ + printf("An error occured while cancelling server thread.\n"); + } +#endif // _WIN32 + free(r->server_data); + r->server_data = NULL; + } +#endif //SERVER + } + + + diff --git a/rebound/source/src/server.h b/rebound/source/src/server.h new file mode 100644 index 0000000000000000000000000000000000000000..13cd09366081cf9c1fa013224f9e86b0527793ed --- /dev/null +++ b/rebound/source/src/server.h @@ -0,0 +1,29 @@ +/** + * @file server.c + * @brief Opens a webserver to allow for platform independent visualization. + * @author Hanno Rein + * @details These functions provide real time visualizations + * using OpenGL. Part of the code is by Dave O'Hallaron, Carnegie Mellon (tiny.c). + * + * @section LICENSE + * Copyright (c) 2023 Hanno Rein, Dave O'Hallaron, Carnegie Mellon + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef _SERVER_H +#define _SERVER_H +#endif // _SERVER_H diff --git a/rebound/source/src/simplefont.h b/rebound/source/src/simplefont.h new file mode 100644 index 0000000000000000000000000000000000000000..56cb0086d16c8ebfe5c3c4910284df8fa3e13e0a --- /dev/null +++ b/rebound/source/src/simplefont.h @@ -0,0 +1,686 @@ +static const unsigned char simplefont[] = +{ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xC0, + 0x07, 0xC0, 0xFF, 0xFF, 0x7F, 0xFE, 0x3F, 0xFC, 0x7F, 0xFE, 0xFF, 0xFF, + 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x1F, 0xE0, 0x1F, 0xF0, 0x7F, 0xC0, + 0x0F, 0x80, 0x3F, 0xFC, 0xFF, 0xFF, 0xE3, 0x8F, 0x03, 0x80, 0xCF, 0xF3, + 0x3F, 0xFC, 0x1F, 0xF8, 0x3F, 0xFC, 0xFF, 0xFF, 0x00, 0x00, 0x1F, 0xF8, + 0xE0, 0x07, 0xFF, 0xE1, 0x8F, 0xE3, 0x7F, 0x9C, 0x8F, 0x8F, 0x23, 0xC4, + 0xFF, 0xFF, 0xF3, 0x9F, 0x03, 0x80, 0x87, 0xE1, 0x1F, 0xF8, 0x1F, 0xF8, + 0x1F, 0xF8, 0xFF, 0xFF, 0x00, 0x00, 0x0F, 0xF0, 0xF0, 0x0F, 0x7F, 0xE8, + 0x8F, 0xE3, 0x7F, 0xFC, 0x8F, 0x8F, 0x23, 0xC4, 0xFF, 0xFF, 0x93, 0x93, + 0x63, 0x8C, 0x03, 0xC0, 0x0F, 0xF0, 0x1F, 0xF8, 0x0F, 0xF0, 0x3F, 0xFC, + 0xC0, 0x03, 0x07, 0xE0, 0xF8, 0x1F, 0x1F, 0xEC, 0x8F, 0xE3, 0x7F, 0xC0, + 0x0F, 0x80, 0x03, 0xC0, 0xFF, 0xFF, 0x93, 0x93, 0x63, 0x8C, 0x03, 0xC0, + 0x07, 0xE0, 0x3F, 0xFC, 0x07, 0xE0, 0x1F, 0xF8, 0xE0, 0x07, 0xE7, 0xE7, + 0x18, 0x18, 0x0F, 0xEF, 0x8F, 0xE3, 0x7F, 0x9C, 0x8F, 0x8F, 0x0F, 0xF0, + 0xFF, 0xFF, 0xF3, 0x9F, 0x03, 0x80, 0x03, 0xC0, 0x03, 0xC0, 0x63, 0xC6, + 0x07, 0xE0, 0x0F, 0xF0, 0xF0, 0x0F, 0xF7, 0xEF, 0x08, 0x10, 0x07, 0xFC, + 0x8F, 0xE3, 0x7F, 0xFC, 0x8F, 0x8F, 0xC1, 0x83, 0xFF, 0xFF, 0xF3, 0x9F, + 0x03, 0x80, 0x03, 0xC0, 0x01, 0x80, 0x41, 0x82, 0x03, 0xC0, 0x0F, 0xF0, + 0xF0, 0x0F, 0xF7, 0xEF, 0x08, 0x10, 0xE3, 0xF8, 0x1F, 0xF0, 0x7F, 0xFC, + 0x8F, 0x8F, 0xC1, 0x83, 0xFF, 0xFF, 0xF3, 0x9F, 0x03, 0x80, 0x03, 0xC0, + 0x01, 0x80, 0x01, 0x80, 0x03, 0xC0, 0x0F, 0xF0, 0xF0, 0x0F, 0xF7, 0xEF, + 0x08, 0x10, 0xE3, 0xF8, 0x7F, 0xFC, 0x7F, 0xFC, 0x8F, 0x8F, 0xC1, 0x83, + 0xFF, 0xFF, 0x13, 0x90, 0xE3, 0x8F, 0x07, 0xE0, 0x03, 0xC0, 0x01, 0x80, + 0x03, 0xC0, 0x0F, 0xF0, 0xF0, 0x0F, 0xF7, 0xEF, 0x08, 0x10, 0xE3, 0xF8, + 0x7F, 0xFC, 0x07, 0xFC, 0x8F, 0x83, 0xC1, 0x83, 0xFF, 0xFF, 0xF3, 0x9F, + 0x03, 0x80, 0x0F, 0xF0, 0x07, 0xE0, 0x41, 0x82, 0x47, 0xE2, 0x1F, 0xF8, + 0xE0, 0x07, 0xE7, 0xE7, 0x18, 0x18, 0xE3, 0xF8, 0x0F, 0xE0, 0x03, 0xFC, + 0x83, 0x81, 0x0F, 0xF0, 0xFF, 0xFF, 0xE3, 0x8F, 0x03, 0x80, 0x1F, 0xF8, + 0x0F, 0xF0, 0x63, 0xC6, 0x7F, 0xFE, 0x3F, 0xFC, 0xC0, 0x03, 0x07, 0xE0, + 0xF8, 0x1F, 0xE3, 0xF8, 0x7F, 0xFC, 0x03, 0xFC, 0x81, 0x81, 0x03, 0xC0, + 0xFF, 0xFF, 0x07, 0xC0, 0x0F, 0xE0, 0x3F, 0xFC, 0x1F, 0xF8, 0x7F, 0xFE, + 0x7F, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x0F, 0xF0, 0xF0, 0x0F, 0x07, 0xFC, + 0x7F, 0xFC, 0x07, 0xFE, 0x81, 0xC3, 0x23, 0xC4, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x7F, 0xFE, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0xFF, 0xFF, + 0x00, 0x00, 0x1F, 0xF8, 0xE0, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xC3, 0xFF, 0x23, 0xC4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x7F, 0xFE, 0x0F, 0xF0, 0x0F, 0xF0, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFC, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0x9F, 0xFF, 0xFE, 0xFF, 0xFF, + 0x07, 0xC0, 0x0F, 0xE0, 0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0x3F, 0xFE, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x01, 0x80, + 0xE1, 0xFF, 0xFF, 0x87, 0x7F, 0xFC, 0x8F, 0xF1, 0x03, 0xC0, 0x87, 0xCF, + 0xFF, 0xFF, 0x7F, 0xFC, 0x3F, 0xFE, 0x3F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x01, 0x80, 0x81, 0xFF, 0xFF, 0x81, + 0x3F, 0xF8, 0x8F, 0xF1, 0x33, 0xC6, 0xC7, 0xDF, 0xFF, 0xFF, 0x3F, 0xF8, + 0x1F, 0xFC, 0x3F, 0xFE, 0xFF, 0xFC, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, + 0x3F, 0xFC, 0x03, 0xC0, 0x01, 0xFE, 0x7F, 0x80, 0x1F, 0xF0, 0x8F, 0xF1, + 0x33, 0xC6, 0x0F, 0xFE, 0xFF, 0xFF, 0x1F, 0xF0, 0x0F, 0xF8, 0x3F, 0xFE, + 0xFF, 0xF8, 0x3F, 0xFE, 0xFF, 0xFF, 0xDF, 0xFB, 0x3F, 0xFC, 0x03, 0xC0, + 0x01, 0xF8, 0x1F, 0x80, 0x0F, 0xE0, 0x8F, 0xF1, 0x33, 0xC6, 0x0F, 0xF0, + 0xFF, 0xFF, 0x0F, 0xE0, 0x07, 0xF0, 0x3F, 0xFE, 0xFF, 0xF0, 0x1F, 0xFE, + 0xF3, 0xFF, 0xCF, 0xF3, 0x1F, 0xF8, 0x07, 0xE0, 0x01, 0xE0, 0x07, 0x80, + 0x7F, 0xFC, 0x8F, 0xF1, 0x33, 0xC6, 0xC7, 0xE3, 0xFF, 0xFF, 0x7F, 0xFC, + 0x03, 0xE0, 0x3F, 0xFE, 0xFF, 0xE0, 0x0F, 0xFE, 0xF3, 0xFF, 0xC7, 0xE3, + 0x1F, 0xF8, 0x07, 0xE0, 0x01, 0x80, 0x01, 0x80, 0x7F, 0xFC, 0x8F, 0xF1, + 0x03, 0xC6, 0xC7, 0xE3, 0xFF, 0xFF, 0x7F, 0xFC, 0x03, 0xE0, 0x03, 0xE0, + 0x03, 0xC0, 0x07, 0x80, 0xF3, 0xFF, 0x03, 0xC0, 0x0F, 0xF0, 0x0F, 0xF0, + 0x01, 0x80, 0x01, 0x80, 0x7F, 0xFC, 0x8F, 0xF1, 0x07, 0xC6, 0xC7, 0xE3, + 0xFF, 0xFF, 0x7F, 0xFC, 0x3F, 0xFE, 0x03, 0xE0, 0x03, 0x80, 0x03, 0x80, + 0xF3, 0xFF, 0x01, 0x80, 0x0F, 0xF0, 0x0F, 0xF0, 0x01, 0xE0, 0x07, 0x80, + 0x7F, 0xFC, 0xFF, 0xFF, 0x3F, 0xC6, 0xC7, 0xE3, 0x07, 0xC0, 0x7F, 0xFC, + 0x3F, 0xFE, 0x07, 0xF0, 0x03, 0xC0, 0x07, 0x80, 0x03, 0xE0, 0x03, 0xC0, + 0x07, 0xE0, 0x1F, 0xF8, 0x01, 0xF8, 0x1F, 0x80, 0x0F, 0xE0, 0xFF, 0xFF, + 0x3F, 0xC6, 0x0F, 0xF0, 0x07, 0xC0, 0x0F, 0xE0, 0x3F, 0xFE, 0x0F, 0xF8, + 0xFF, 0xE0, 0x0F, 0xFE, 0x03, 0xE0, 0xC7, 0xE3, 0x07, 0xE0, 0x1F, 0xF8, + 0x01, 0xFE, 0x7F, 0x80, 0x1F, 0xF0, 0x8F, 0xF1, 0x3F, 0xC6, 0x7F, 0xF0, + 0x07, 0xC0, 0x1F, 0xF0, 0x3F, 0xFE, 0x1F, 0xFC, 0xFF, 0xF0, 0x1F, 0xFE, + 0xFF, 0xFF, 0xCF, 0xF3, 0x03, 0xC0, 0x3F, 0xFC, 0x81, 0xFF, 0xFF, 0x81, + 0x3F, 0xF8, 0x8F, 0xF1, 0x3F, 0xC6, 0xFB, 0xE3, 0x07, 0xC0, 0x3F, 0xF8, + 0x3F, 0xFE, 0x3F, 0xFE, 0xFF, 0xF8, 0x3F, 0xFE, 0xFF, 0xFF, 0xDF, 0xFB, + 0x03, 0xC0, 0x3F, 0xFC, 0xE1, 0xFF, 0xFF, 0x87, 0x7F, 0xFC, 0x8F, 0xF1, + 0x3F, 0xC6, 0xF3, 0xE1, 0x07, 0xC0, 0x7F, 0xFC, 0x3F, 0xFE, 0x7F, 0xFF, + 0xFF, 0xFC, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x7F, 0xFE, + 0xF9, 0xFF, 0xFF, 0x9F, 0xFF, 0xFE, 0xFF, 0xFF, 0x3F, 0xC6, 0x07, 0xF0, + 0x07, 0xC0, 0x0F, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xC0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0xE3, 0xCF, 0xF3, 0xBF, 0xFD, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, + 0x8F, 0xE3, 0xCF, 0xF3, 0xBF, 0xFD, 0xFF, 0xFF, 0x0F, 0xFF, 0x1F, 0xFF, + 0xFF, 0xF0, 0x0F, 0xFF, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0x0F, 0xFE, 0x8F, 0xE3, 0xCF, 0xF3, + 0x0F, 0xE0, 0x8F, 0xF7, 0x67, 0xFE, 0x1F, 0xFF, 0x7F, 0xFC, 0x3F, 0xFE, + 0x77, 0xEE, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, + 0xFF, 0xFF, 0x0F, 0xFE, 0x8F, 0xE3, 0x01, 0x80, 0x07, 0xE0, 0x8F, 0xF3, + 0x67, 0xFE, 0x1F, 0xFF, 0x3F, 0xFE, 0x7F, 0xFC, 0x6F, 0xF6, 0x7F, 0xFE, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0x0F, 0xFE, + 0x9F, 0xF3, 0x01, 0x80, 0xA7, 0xFD, 0x8F, 0xF1, 0x67, 0xFE, 0x8F, 0xFF, + 0x1F, 0xFF, 0xFF, 0xF8, 0x1F, 0xF8, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0x0F, 0xFE, 0xFF, 0xFF, 0xCF, 0xF3, + 0xA7, 0xFD, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xF1, + 0x1F, 0xF8, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, + 0xFF, 0xFF, 0x0F, 0xFE, 0xFF, 0xFF, 0xCF, 0xF3, 0x07, 0xF0, 0x7F, 0xFC, + 0x0F, 0xEF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xF1, 0x03, 0xC0, 0x07, 0xE0, + 0xFF, 0xFF, 0x07, 0xE0, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0x1F, 0xFF, + 0xFF, 0xFF, 0xCF, 0xF3, 0x0F, 0xE0, 0x3F, 0xFE, 0x0F, 0xE6, 0xFF, 0xFF, + 0x8F, 0xFF, 0xFF, 0xF1, 0x03, 0xC0, 0x07, 0xE0, 0xFF, 0xFF, 0x07, 0xE0, + 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0xCF, 0xF3, + 0xBF, 0xE5, 0x1F, 0xFF, 0x67, 0xE0, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xF1, + 0x1F, 0xF8, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFC, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0xBF, 0xE5, 0x8F, 0xF1, + 0xE7, 0xF0, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xF8, 0x1F, 0xF8, 0x7F, 0xFE, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x01, 0x80, 0x07, 0xE0, 0xCF, 0xF1, 0xE7, 0xF8, 0xFF, 0xFF, + 0x3F, 0xFE, 0x7F, 0xFC, 0x6F, 0xF6, 0x7F, 0xFE, 0x1F, 0xFF, 0xFF, 0xFF, + 0x1F, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0xCF, 0xF3, + 0x07, 0xF0, 0xEF, 0xF1, 0x67, 0xF0, 0xFF, 0xFF, 0x7F, 0xFC, 0x3F, 0xFE, + 0x77, 0xEE, 0x7F, 0xFE, 0x1F, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0x8F, 0xFF, + 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0xCF, 0xF3, 0xBF, 0xFD, 0xFF, 0xFF, + 0x0F, 0xE6, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0x7F, 0xFE, 0xFF, 0xFF, + 0x1F, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xC7, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, + 0xFF, 0xFF, 0xCF, 0xF3, 0xBF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, + 0xC7, 0xFF, 0x3F, 0xFC, 0x0F, 0xF0, 0x7F, 0xFE, 0x0F, 0xF8, 0x0F, 0xF8, + 0xFF, 0xF8, 0x07, 0xE0, 0x3F, 0xF8, 0x07, 0xC0, 0x0F, 0xF0, 0x0F, 0xF0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x8F, 0xFF, 0x0F, 0xF0, + 0xC7, 0xE3, 0x7F, 0xFE, 0xC7, 0xF1, 0xC7, 0xF1, 0x7F, 0xF8, 0xC7, 0xFF, + 0x1F, 0xFF, 0xC7, 0xC7, 0xC7, 0xE3, 0xC7, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, + 0x7F, 0xFC, 0xFF, 0xFF, 0x1F, 0xFF, 0x87, 0xE1, 0xC7, 0xE1, 0x3F, 0xFE, + 0xC7, 0xE3, 0xC7, 0xE3, 0x3F, 0xF8, 0xC7, 0xFF, 0x8F, 0xFF, 0xC7, 0xC7, + 0xC7, 0xE3, 0xC7, 0xE3, 0x3F, 0xFE, 0x1F, 0xFF, 0x3F, 0xFE, 0xFF, 0xFF, + 0x3F, 0xFE, 0xE7, 0xE3, 0xC7, 0xE0, 0x07, 0xFE, 0xFF, 0xE3, 0xFF, 0xE3, + 0x9F, 0xF8, 0xC7, 0xFF, 0xC7, 0xFF, 0xC7, 0xC7, 0xC7, 0xE3, 0xC7, 0xE3, + 0x3F, 0xFE, 0x1F, 0xFF, 0x1F, 0xFF, 0x03, 0xC0, 0x7F, 0xFC, 0xFF, 0xE3, + 0xC7, 0xE0, 0x07, 0xFE, 0xFF, 0xF1, 0xFF, 0xF1, 0xCF, 0xF8, 0xC7, 0xFF, + 0xC7, 0xFF, 0xFF, 0xC7, 0x07, 0xE3, 0xC7, 0xE3, 0x3F, 0xFE, 0x1F, 0xFF, + 0x8F, 0xFF, 0x03, 0xC0, 0xFF, 0xF8, 0xFF, 0xF1, 0x47, 0xE2, 0x3F, 0xFE, + 0xFF, 0xF8, 0x3F, 0xF8, 0xE7, 0xF8, 0x07, 0xF8, 0x07, 0xF0, 0xFF, 0xE3, + 0x1F, 0xF8, 0x07, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xFF, + 0xFF, 0xF1, 0xFF, 0xF8, 0x47, 0xE2, 0x3F, 0xFE, 0x7F, 0xFC, 0x3F, 0xF8, + 0x07, 0xE0, 0x07, 0xF0, 0x07, 0xE0, 0xFF, 0xF1, 0x1F, 0xF8, 0x0F, 0xE0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0x7F, 0xFC, + 0x07, 0xE3, 0x3F, 0xFE, 0x3F, 0xFE, 0xFF, 0xF1, 0x07, 0xE0, 0xFF, 0xE1, + 0xC7, 0xE3, 0xFF, 0xF8, 0xC7, 0xE0, 0xFF, 0xE3, 0x3F, 0xFE, 0x1F, 0xFF, + 0x8F, 0xFF, 0x03, 0xC0, 0xFF, 0xF8, 0x7F, 0xFC, 0x07, 0xE3, 0x3F, 0xFE, + 0x1F, 0xFF, 0xFF, 0xE3, 0xFF, 0xF8, 0xFF, 0xE3, 0xC7, 0xE3, 0x7F, 0xFC, + 0xC7, 0xE3, 0xFF, 0xE3, 0x3F, 0xFE, 0x1F, 0xFF, 0x1F, 0xFF, 0x03, 0xC0, + 0x7F, 0xFC, 0xFF, 0xFF, 0x87, 0xE3, 0x3F, 0xFE, 0x8F, 0xE3, 0xC7, 0xE3, + 0xFF, 0xF8, 0xC7, 0xE3, 0xC7, 0xE3, 0x3F, 0xFE, 0xC7, 0xE3, 0xFF, 0xF1, + 0x3F, 0xFE, 0x1F, 0xFF, 0x3F, 0xFE, 0xFF, 0xFF, 0x3F, 0xFE, 0xFF, 0xFF, + 0xC7, 0xE3, 0x3F, 0xFE, 0xC7, 0xE3, 0xC7, 0xF1, 0xFF, 0xF8, 0xC7, 0xF1, + 0xC7, 0xE3, 0x3F, 0xFE, 0xC7, 0xE3, 0xFF, 0xF8, 0xFF, 0xFF, 0x8F, 0xFF, + 0x7F, 0xFC, 0xFF, 0xFF, 0x1F, 0xFF, 0x7F, 0xFC, 0x0F, 0xF0, 0x07, 0xF0, + 0x07, 0xE0, 0x0F, 0xF8, 0x3F, 0xE0, 0x0F, 0xF8, 0x0F, 0xF0, 0x3F, 0xFE, + 0x0F, 0xF0, 0x1F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, + 0x8F, 0xFF, 0x7F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xC7, 0xFF, 0x7F, 0xFC, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xC7, 0xC7, 0x3F, 0xFC, 0x07, 0xF0, 0x1F, 0xF0, 0x07, 0xF8, 0x07, 0xE0, + 0x07, 0xE0, 0x1F, 0xF0, 0xC7, 0xF1, 0x07, 0xFC, 0x7F, 0xC0, 0x87, 0xE3, + 0x07, 0xFF, 0xC7, 0xC7, 0xC7, 0xC7, 0x3F, 0xF8, 0xC7, 0xC7, 0x1F, 0xF8, + 0x8F, 0xE3, 0x8F, 0xE3, 0x8F, 0xF1, 0x8F, 0xE7, 0x8F, 0xE7, 0x8F, 0xE3, + 0xC7, 0xF1, 0x1F, 0xFF, 0xFF, 0xF1, 0x8F, 0xE3, 0x8F, 0xFF, 0x87, 0xC3, + 0xC7, 0xC7, 0x1F, 0xF1, 0xC7, 0xC7, 0x8F, 0xF1, 0x8F, 0xE3, 0xC7, 0xE3, + 0x8F, 0xE3, 0x8F, 0xEF, 0x8F, 0xEF, 0xC7, 0xE3, 0xC7, 0xF1, 0x1F, 0xFF, + 0xFF, 0xF1, 0x8F, 0xF1, 0x8F, 0xFF, 0x07, 0xC1, 0x87, 0xC7, 0x8F, 0xE3, + 0xC7, 0xC7, 0xC7, 0xE3, 0x8F, 0xE3, 0xC7, 0xFF, 0x8F, 0xE3, 0x8F, 0xFF, + 0x8F, 0xFF, 0xC7, 0xE3, 0xC7, 0xF1, 0x1F, 0xFF, 0xFF, 0xF1, 0x8F, 0xF8, + 0x8F, 0xFF, 0x07, 0xC0, 0x07, 0xC7, 0xC7, 0xC7, 0xC7, 0xC0, 0xC7, 0xE3, + 0x8F, 0xE3, 0xC7, 0xFF, 0x8F, 0xE3, 0x8F, 0xF3, 0x8F, 0xF3, 0xC7, 0xFF, + 0xC7, 0xF1, 0x1F, 0xFF, 0xFF, 0xF1, 0x0F, 0xFC, 0x8F, 0xFF, 0x07, 0xC0, + 0x07, 0xC6, 0xC7, 0xC7, 0xC7, 0xC0, 0xC7, 0xE3, 0x0F, 0xF0, 0xC7, 0xFF, + 0x8F, 0xE3, 0x0F, 0xF0, 0x0F, 0xF0, 0xC7, 0xFF, 0x07, 0xF0, 0x1F, 0xFF, + 0xFF, 0xF1, 0x0F, 0xFE, 0x8F, 0xFF, 0x47, 0xC4, 0x47, 0xC4, 0xC7, 0xC7, + 0xC7, 0xC0, 0xC7, 0xE3, 0x0F, 0xF0, 0xC7, 0xFF, 0x8F, 0xE3, 0x0F, 0xF0, + 0x0F, 0xF0, 0xC7, 0xFF, 0x07, 0xF0, 0x1F, 0xFF, 0xFF, 0xF1, 0x0F, 0xFE, + 0x8F, 0xFF, 0xC7, 0xC6, 0xC7, 0xC0, 0xC7, 0xC7, 0xC7, 0xC0, 0x07, 0xE0, + 0x8F, 0xE3, 0xC7, 0xFF, 0x8F, 0xE3, 0x8F, 0xF3, 0x8F, 0xF3, 0xC7, 0xE0, + 0xC7, 0xF1, 0x1F, 0xFF, 0xC7, 0xF1, 0x0F, 0xFC, 0x8F, 0xFF, 0xC7, 0xC7, + 0xC7, 0xC1, 0xC7, 0xC7, 0xC7, 0xFF, 0xC7, 0xE3, 0x8F, 0xE3, 0xC7, 0xFF, + 0x8F, 0xE3, 0x8F, 0xFF, 0x8F, 0xFF, 0xC7, 0xE3, 0xC7, 0xF1, 0x1F, 0xFF, + 0xC7, 0xF1, 0x8F, 0xF8, 0x8F, 0xEF, 0xC7, 0xC7, 0xC7, 0xC3, 0xC7, 0xC7, + 0xC7, 0xFF, 0xC7, 0xE3, 0x8F, 0xE3, 0xC7, 0xE3, 0x8F, 0xE3, 0x8F, 0xEF, + 0x8F, 0xFF, 0xC7, 0xE3, 0xC7, 0xF1, 0x1F, 0xFF, 0xC7, 0xF1, 0x8F, 0xF1, + 0x8F, 0xE7, 0xC7, 0xC7, 0xC7, 0xC7, 0x8F, 0xE3, 0xC7, 0xFF, 0xC7, 0xE3, + 0x8F, 0xE3, 0x8F, 0xE3, 0x8F, 0xF1, 0x8F, 0xE7, 0x8F, 0xFF, 0x8F, 0xE3, + 0xC7, 0xF1, 0x1F, 0xFF, 0xC7, 0xF1, 0x8F, 0xE3, 0x8F, 0xE3, 0xC7, 0xC7, + 0xC7, 0xC7, 0x1F, 0xF1, 0xC7, 0xFF, 0xC7, 0xE3, 0x07, 0xF0, 0x1F, 0xF0, + 0x07, 0xF8, 0x07, 0xE0, 0x07, 0xFF, 0x1F, 0xE0, 0xC7, 0xF1, 0x07, 0xFC, + 0x0F, 0xF8, 0x87, 0xE3, 0x07, 0xE0, 0xC7, 0xC7, 0xC7, 0xC7, 0x3F, 0xF8, + 0x1F, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0xFF, 0xFF, 0x07, 0xF0, 0x3F, 0xF8, + 0x07, 0xF0, 0x0F, 0xF0, 0x07, 0xC0, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xC7, + 0xC7, 0xF1, 0xC7, 0xF1, 0x07, 0xE0, 0x1F, 0xF0, 0xF7, 0xFF, 0x1F, 0xF0, + 0x3F, 0xFC, 0xFF, 0xFF, 0x8F, 0xE3, 0x0F, 0xE1, 0x8F, 0xE3, 0xC7, 0xE3, + 0x67, 0xCC, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xC7, 0xC7, 0xF1, 0xC7, 0xF1, + 0xC7, 0xE3, 0x1F, 0xFF, 0xE7, 0xFF, 0xFF, 0xF1, 0x1F, 0xF8, 0xFF, 0xFF, + 0x8F, 0xE3, 0x8F, 0xE3, 0x8F, 0xE3, 0xC7, 0xE3, 0x77, 0xDC, 0xC7, 0xF1, + 0xC7, 0xF1, 0xC7, 0xC7, 0xC7, 0xF1, 0xC7, 0xF1, 0xE7, 0xE3, 0x1F, 0xFF, + 0xC7, 0xFF, 0xFF, 0xF1, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xE3, 0xC7, 0xC7, + 0x8F, 0xE3, 0xC7, 0xE3, 0x7F, 0xFC, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xC7, + 0x8F, 0xF8, 0xC7, 0xF1, 0xF7, 0xF1, 0x1F, 0xFF, 0x8F, 0xFF, 0xFF, 0xF1, + 0xC7, 0xE3, 0xFF, 0xFF, 0x8F, 0xE3, 0xC7, 0xC7, 0x8F, 0xE3, 0xC7, 0xFF, + 0x7F, 0xFC, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xC7, 0x1F, 0xFC, 0xC7, 0xF1, + 0xFF, 0xF8, 0x1F, 0xFF, 0x1F, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0F, 0xF0, 0xC7, 0xC7, 0x0F, 0xF0, 0x0F, 0xF8, 0x7F, 0xFC, 0xC7, 0xF1, + 0xC7, 0xF1, 0xC7, 0xC6, 0x3F, 0xFE, 0x8F, 0xF8, 0x7F, 0xFC, 0x1F, 0xFF, + 0x3F, 0xFE, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, 0xC7, 0xC7, + 0x0F, 0xF0, 0x1F, 0xF0, 0x7F, 0xFC, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xC6, + 0x3F, 0xFE, 0x1F, 0xFC, 0x3F, 0xFE, 0x1F, 0xFF, 0x7F, 0xFC, 0xFF, 0xF1, + 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xC7, 0xC1, 0x8F, 0xF1, 0xFF, 0xE3, + 0x7F, 0xFC, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xC6, 0x1F, 0xFC, 0x3F, 0xFE, + 0x1F, 0xFF, 0x1F, 0xFF, 0xFF, 0xF8, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, + 0x8F, 0xFF, 0xC7, 0xC0, 0x8F, 0xE3, 0xC7, 0xE3, 0x7F, 0xFC, 0xC7, 0xF1, + 0xC7, 0xF1, 0x0F, 0xE0, 0x8F, 0xF8, 0x3F, 0xFE, 0x8F, 0xEF, 0x1F, 0xFF, + 0xFF, 0xF1, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0x0F, 0xE0, + 0x8F, 0xE3, 0xC7, 0xE3, 0x7F, 0xFC, 0xC7, 0xF1, 0x8F, 0xF8, 0x0F, 0xE1, + 0xC7, 0xF1, 0x3F, 0xFE, 0xC7, 0xE7, 0x1F, 0xFF, 0xFF, 0xE3, 0xFF, 0xF1, + 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0x0F, 0xE0, 0x8F, 0xE3, 0xC7, 0xE3, + 0x7F, 0xFC, 0xC7, 0xF1, 0x1F, 0xFC, 0x1F, 0xF1, 0xC7, 0xF1, 0x3F, 0xFE, + 0xC7, 0xE3, 0x1F, 0xFF, 0xFF, 0xC7, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, + 0x07, 0xFF, 0xFF, 0xE3, 0x87, 0xE3, 0x0F, 0xF0, 0x1F, 0xF0, 0x0F, 0xF8, + 0x3F, 0xFE, 0x1F, 0xF1, 0xC7, 0xF1, 0x0F, 0xF8, 0x07, 0xE0, 0x1F, 0xF0, + 0xFF, 0x8F, 0x1F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xFF, + 0xFF, 0xE0, 0xFF, 0xFF, 0x3F, 0xF8, 0xFF, 0xFF, 0x87, 0xFF, 0x7F, 0xFC, + 0xFF, 0xF1, 0x87, 0xFF, 0x0F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xC7, 0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, + 0x1F, 0xF1, 0xFF, 0xFF, 0x8F, 0xFF, 0x7F, 0xFC, 0xFF, 0xF1, 0x8F, 0xFF, + 0x7F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, + 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0x1F, 0xF1, 0xFF, 0xFF, + 0x8F, 0xFF, 0x7F, 0xFC, 0xFF, 0xF1, 0x8F, 0xFF, 0x7F, 0xFC, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xFF, + 0xFF, 0xF1, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x8F, 0xFF, 0x7F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x0F, 0xF8, 0x0F, 0xF0, 0x0F, 0xF8, 0x0F, 0xF0, 0x0F, 0xF8, + 0x1F, 0xFF, 0x0F, 0xE6, 0x8F, 0xF0, 0x0F, 0xFC, 0x3F, 0xF0, 0x8F, 0xE3, + 0x7F, 0xFC, 0x07, 0xE0, 0x07, 0xF8, 0x0F, 0xF8, 0xFF, 0xFF, 0xFF, 0xF1, + 0x8F, 0xE3, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0x07, 0xF8, 0xC7, 0xF1, + 0x0F, 0xE3, 0x7F, 0xFC, 0xFF, 0xF1, 0x8F, 0xF1, 0x7F, 0xFC, 0xC7, 0xC6, + 0xC7, 0xF1, 0xC7, 0xF1, 0xFF, 0xFF, 0xFF, 0xF1, 0x8F, 0xE3, 0xC7, 0xF1, + 0xC7, 0xF1, 0xC7, 0xF1, 0x07, 0xF8, 0xC7, 0xF1, 0x0F, 0xE3, 0x7F, 0xFC, + 0xFF, 0xF1, 0x8F, 0xF8, 0x7F, 0xFC, 0xC7, 0xC6, 0xC7, 0xF1, 0xC7, 0xF1, + 0xFF, 0xFF, 0x0F, 0xF0, 0x8F, 0xE3, 0xC7, 0xFF, 0xC7, 0xF1, 0x07, 0xF0, + 0x1F, 0xFF, 0xC7, 0xF1, 0x8F, 0xE3, 0x7F, 0xFC, 0xFF, 0xF1, 0x0F, 0xFC, + 0x7F, 0xFC, 0xC7, 0xC6, 0xC7, 0xF1, 0xC7, 0xF1, 0xFF, 0xFF, 0xC7, 0xF1, + 0x8F, 0xE3, 0xC7, 0xFF, 0xC7, 0xF1, 0xC7, 0xFF, 0x1F, 0xFF, 0xC7, 0xF1, + 0x8F, 0xE3, 0x7F, 0xFC, 0xFF, 0xF1, 0x8F, 0xF8, 0x7F, 0xFC, 0xC7, 0xC6, + 0xC7, 0xF1, 0xC7, 0xF1, 0xFF, 0xFF, 0xC7, 0xF1, 0x8F, 0xE3, 0xC7, 0xF1, + 0xC7, 0xF1, 0xC7, 0xF1, 0x1F, 0xFF, 0x0F, 0xF0, 0x8F, 0xE3, 0x7F, 0xFC, + 0xFF, 0xF1, 0x8F, 0xF1, 0x7F, 0xFC, 0xC7, 0xC6, 0xC7, 0xF1, 0xC7, 0xF1, + 0xFF, 0xFF, 0xC7, 0xF1, 0x8F, 0xE3, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, + 0x1F, 0xFF, 0x1F, 0xF0, 0x8F, 0xE3, 0x7F, 0xFC, 0xFF, 0xF1, 0x8F, 0xE3, + 0x7F, 0xFC, 0xC7, 0xC6, 0xC7, 0xF1, 0xC7, 0xF1, 0xFF, 0xFF, 0x0F, 0xE6, + 0x67, 0xF0, 0x0F, 0xF8, 0x0F, 0xE6, 0x0F, 0xF8, 0x07, 0xFC, 0xFF, 0xF1, + 0x87, 0xE3, 0x0F, 0xE0, 0xC7, 0xF1, 0x87, 0xE3, 0x0F, 0xE0, 0xC7, 0xC7, + 0xC7, 0xF1, 0x0F, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, + 0xC7, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x0F, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xE0, + 0x3F, 0xFC, 0x07, 0xFE, 0x07, 0xC7, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFE, 0x3F, 0xFC, 0x7F, 0xFC, + 0x23, 0xC6, 0x3F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x3F, 0xFE, 0x3F, 0xFC, 0x7F, 0xFC, 0x63, 0xC4, 0x1F, 0xF8, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFE, + 0x3F, 0xFC, 0x7F, 0xFC, 0xE3, 0xE0, 0x8F, 0xF1, 0x67, 0xF0, 0x07, 0xF3, + 0x87, 0xF1, 0x0F, 0xF8, 0x07, 0xF0, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xC7, + 0xC7, 0xF8, 0x8F, 0xE3, 0x07, 0xF8, 0x1F, 0xFF, 0x3F, 0xFC, 0xFF, 0xF8, + 0xFF, 0xFF, 0xC7, 0xE3, 0x8F, 0xE3, 0xE3, 0xF8, 0x0F, 0xE0, 0xC7, 0xF3, + 0x1F, 0xFF, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xC7, 0xC7, 0xF8, 0x8F, 0xE3, + 0xE7, 0xF8, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xE7, 0xE7, + 0x8F, 0xE3, 0xE3, 0xF8, 0x0F, 0xE3, 0xC7, 0xF3, 0x1F, 0xFF, 0xC7, 0xF1, + 0xC7, 0xF1, 0xC7, 0xC7, 0x0F, 0xFC, 0x8F, 0xE3, 0x77, 0xFC, 0xC7, 0xFF, + 0xFF, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xE7, 0xE7, 0x8F, 0xE3, 0xE3, 0xF8, + 0x8F, 0xFF, 0x0F, 0xFE, 0x1F, 0xFF, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xC6, + 0x1F, 0xFE, 0x8F, 0xE3, 0x3F, 0xFE, 0x1F, 0xFF, 0x3F, 0xFC, 0xFF, 0xF8, + 0xFF, 0xFF, 0xE7, 0xE7, 0x8F, 0xE3, 0xE3, 0xF8, 0x8F, 0xFF, 0x3F, 0xF8, + 0x1F, 0xFF, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xC6, 0x1F, 0xFE, 0x8F, 0xE3, + 0x1F, 0xFF, 0x3F, 0xFE, 0x3F, 0xFC, 0x7F, 0xFC, 0xFF, 0xFF, 0xE7, 0xE7, + 0x8F, 0xE3, 0xE3, 0xF8, 0x8F, 0xFF, 0xE7, 0xF1, 0x1F, 0xF1, 0xC7, 0xF1, + 0x8F, 0xF8, 0x0F, 0xE1, 0x0F, 0xFC, 0x1F, 0xF0, 0x8F, 0xFB, 0x3F, 0xFE, + 0x3F, 0xFC, 0x7F, 0xFC, 0xFF, 0xFF, 0xE7, 0xE7, 0x0F, 0xF0, 0x07, 0xF8, + 0x8F, 0xFF, 0xE7, 0xF1, 0x1F, 0xF1, 0xC7, 0xF1, 0x1F, 0xFC, 0x1F, 0xF1, + 0xC7, 0xF8, 0x3F, 0xF8, 0xC7, 0xF9, 0x3F, 0xFE, 0x3F, 0xFC, 0x7F, 0xFC, + 0xFF, 0xFF, 0x07, 0xE0, 0x8F, 0xFF, 0xFF, 0xF8, 0x07, 0xFF, 0x0F, 0xF8, + 0x3F, 0xF8, 0x0F, 0xE6, 0x3F, 0xFE, 0x1F, 0xF1, 0xC7, 0xF8, 0xFF, 0xF8, + 0x07, 0xF8, 0x7F, 0xE0, 0x3F, 0xFC, 0x07, 0xFE, 0xFF, 0xFF, 0x07, 0xE0, + 0x8F, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0x7F, 0xF0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x07, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, + 0x1F, 0xF0, 0xC7, 0xF1, 0x7F, 0xFC, 0x3F, 0xFE, 0xC7, 0xF1, 0x1F, 0xFF, + 0xBF, 0xFD, 0xFF, 0xFF, 0x3F, 0xFE, 0xC7, 0xF1, 0x1F, 0xFF, 0xC7, 0xF1, + 0x3F, 0xFE, 0x1F, 0xFF, 0x8F, 0xF1, 0xBF, 0xFD, 0x8F, 0xE3, 0xC7, 0xF1, + 0x3F, 0xFE, 0x9F, 0xFC, 0xC7, 0xF1, 0x3F, 0xFE, 0xBF, 0xFD, 0xFF, 0xFF, + 0x9F, 0xFC, 0xC7, 0xF1, 0x3F, 0xFE, 0xC7, 0xF1, 0x9F, 0xFC, 0x3F, 0xFE, + 0x8F, 0xF1, 0x7F, 0xFE, 0xC7, 0xE3, 0xC7, 0xF1, 0x1F, 0xFF, 0xCF, 0xF9, + 0xC7, 0xF1, 0x7F, 0xFC, 0x7F, 0xFE, 0xFF, 0xFF, 0xCF, 0xF9, 0xC7, 0xF1, + 0x7F, 0xFC, 0xC7, 0xF1, 0xCF, 0xF9, 0x7F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, + 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFC, 0x3F, 0xFC, 0xC7, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x1F, 0xF8, 0x1F, 0xF8, 0xC7, 0xFF, 0xC7, 0xF1, 0x0F, 0xF8, 0x0F, 0xF8, + 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, + 0x0F, 0xF8, 0x0F, 0xFC, 0x0F, 0xFC, 0x0F, 0xFC, 0x8F, 0xF1, 0x8F, 0xF1, + 0xC7, 0xFF, 0xC7, 0xF1, 0xC7, 0xF1, 0xFF, 0xF1, 0xFF, 0xF1, 0xFF, 0xF1, + 0xFF, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0x7F, 0xFC, + 0x7F, 0xFC, 0x7F, 0xFC, 0xC7, 0xE3, 0xC7, 0xE3, 0xC7, 0xFF, 0xC7, 0xF1, + 0xC7, 0xF1, 0xFF, 0xF1, 0xFF, 0xF1, 0xFF, 0xF1, 0xFF, 0xF1, 0xC7, 0xF1, + 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0x7F, 0xFC, 0x7F, 0xFC, 0x7F, 0xFC, + 0xC7, 0xE3, 0xC7, 0xE3, 0xC7, 0xFF, 0xC7, 0xF1, 0x07, 0xF0, 0x0F, 0xF0, + 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0xC7, 0xFF, 0x07, 0xF0, 0x07, 0xF0, + 0x07, 0xF0, 0x7F, 0xFC, 0x7F, 0xFC, 0x7F, 0xFC, 0xC7, 0xE3, 0xC7, 0xE3, + 0xC7, 0xE3, 0xC7, 0xF1, 0xC7, 0xFF, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, + 0xC7, 0xF1, 0xC7, 0xFF, 0xC7, 0xFF, 0xC7, 0xFF, 0xC7, 0xFF, 0x7F, 0xFC, + 0x7F, 0xFC, 0x7F, 0xFC, 0x07, 0xE0, 0x07, 0xE0, 0x8F, 0xE3, 0xC7, 0xF1, + 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, + 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0x7F, 0xFC, 0x7F, 0xFC, 0x7F, 0xFC, + 0xC7, 0xE3, 0xC7, 0xE3, 0x1F, 0xF0, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, + 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, + 0xC7, 0xF1, 0x7F, 0xFC, 0x7F, 0xFC, 0x7F, 0xFC, 0xC7, 0xE3, 0xC7, 0xE3, + 0x7F, 0xFC, 0x1F, 0xE6, 0x0F, 0xF8, 0x0F, 0xE6, 0x0F, 0xE6, 0x0F, 0xE6, + 0x0F, 0xE6, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xE0, + 0x0F, 0xE0, 0x0F, 0xE0, 0xC7, 0xE3, 0xC7, 0xE3, 0x0F, 0xFC, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFE, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xF8, 0xFF, 0xFF, + 0xFF, 0xFF, 0x3F, 0xFE, 0xC7, 0xF1, 0x1F, 0xFF, 0x3F, 0xFE, 0x1F, 0xFF, + 0x8F, 0xE3, 0x8F, 0xF1, 0xC7, 0xF1, 0x3F, 0xFE, 0x7F, 0xF8, 0x8F, 0xF1, + 0x03, 0xFE, 0x7F, 0x8C, 0x3F, 0xFE, 0xFF, 0xFF, 0x1F, 0xE0, 0x9F, 0xFC, + 0xC7, 0xF1, 0x3F, 0xFE, 0x9F, 0xFC, 0x3F, 0xFE, 0x8F, 0xE3, 0x8F, 0xF1, + 0xC7, 0xF1, 0x3F, 0xFE, 0x3F, 0xF0, 0x8F, 0xF1, 0xF3, 0xFC, 0x7F, 0x8C, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xE0, 0xCF, 0xF9, 0xC7, 0xF1, 0x7F, 0xFC, + 0xCF, 0xF9, 0x7F, 0xFC, 0x8F, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFE, + 0x1F, 0xE7, 0x8F, 0xF1, 0xF3, 0xFC, 0x7F, 0xFC, 0x07, 0xE0, 0xFF, 0xFF, + 0x47, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x1F, 0xF8, 0xC7, 0xF1, 0x0F, 0xF8, 0x1F, 0xFF, 0x8F, 0xF1, + 0xF3, 0xFC, 0x7F, 0xFC, 0x8F, 0xE7, 0xFF, 0xFF, 0x63, 0xFE, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0xF1, + 0xC7, 0xF1, 0xC7, 0xF1, 0x1F, 0xFF, 0x8F, 0xF1, 0xF3, 0xFC, 0x0F, 0xE0, + 0x8F, 0xEF, 0x0F, 0xF0, 0x73, 0xFE, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, + 0xC7, 0xF1, 0xC7, 0xF1, 0x8F, 0xE3, 0xC7, 0xE3, 0xC7, 0xF1, 0xC7, 0xF1, + 0x1F, 0xFF, 0x3F, 0xFC, 0xF3, 0xFC, 0x7F, 0xFC, 0x8F, 0xFB, 0x7F, 0xE6, + 0x03, 0xE0, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, + 0x8F, 0xE3, 0xC7, 0xE3, 0xC7, 0xF1, 0xC7, 0xFF, 0x1F, 0xFF, 0x7F, 0xFE, + 0x03, 0xFF, 0x7F, 0xFC, 0x0F, 0xF8, 0x7F, 0xE6, 0x03, 0xE0, 0xC7, 0xF1, + 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0x8F, 0xE3, 0xC7, 0xE3, + 0xC7, 0xF1, 0xC7, 0xFF, 0x07, 0xF8, 0x0F, 0xF0, 0xF3, 0xFE, 0x7F, 0xFC, + 0x0F, 0xF8, 0x0F, 0xE0, 0x73, 0xFE, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, + 0xC7, 0xF1, 0xC7, 0xF1, 0x8F, 0xE3, 0xC7, 0xE3, 0xC7, 0xF1, 0xC7, 0xF1, + 0x07, 0xF8, 0x7F, 0xFE, 0xF3, 0xFE, 0x7F, 0xFC, 0x8F, 0xFB, 0x67, 0xFE, + 0x73, 0xFE, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, + 0x8F, 0xE3, 0xC7, 0xE3, 0xC7, 0xF1, 0xC7, 0xF1, 0x1F, 0xFF, 0x0F, 0xF0, + 0x73, 0xCC, 0x63, 0xFC, 0x8F, 0xEF, 0x67, 0xE6, 0x73, 0xFE, 0xC7, 0xF1, + 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0x1F, 0xF0, 0xC7, 0xE3, + 0xC7, 0xF1, 0x0F, 0xF8, 0x1F, 0xFF, 0x7F, 0xFE, 0xF3, 0xDE, 0x63, 0xFC, + 0x8F, 0xE7, 0x67, 0xE6, 0x73, 0xE0, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, + 0xC7, 0xF1, 0xC7, 0xF1, 0x3F, 0xF8, 0x8F, 0xF1, 0xC7, 0xF1, 0x3F, 0xFE, + 0x8F, 0xEF, 0x7F, 0xFE, 0xF3, 0xC6, 0x07, 0xFE, 0x07, 0xE0, 0x8F, 0xF0, + 0x73, 0xE0, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xF8, 0x0F, 0xE6, 0x0F, 0xE6, + 0xFF, 0xF8, 0x1F, 0xF8, 0x0F, 0xF8, 0x3F, 0xFE, 0x8F, 0xE7, 0x7F, 0xFE, + 0xF3, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFC, 0xFF, 0xFF, + 0xFF, 0xFF, 0x3F, 0xFE, 0x0F, 0xE0, 0x7F, 0xFE, 0xF3, 0xA4, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFC, 0x7F, 0xFC, 0x7F, 0xFC, 0x7F, 0xFC, + 0x8F, 0xE3, 0x1F, 0xC6, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFE, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x3F, 0xFE, 0x3F, 0xFE, 0x3F, 0xFE, 0x3F, 0xFE, 0x23, 0xE2, 0xC7, 0xF0, + 0x1F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x8F, + 0xCF, 0x8F, 0x3F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0x1F, 0xFF, + 0x1F, 0xFF, 0x1F, 0xFF, 0xE3, 0xF8, 0xFF, 0xFF, 0xFF, 0xF9, 0x8F, 0xF1, + 0x3F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xC7, 0xC7, 0xC7, 0x3F, 0xFE, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xC7, 0xC7, 0x3F, 0xF8, 0xCF, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xC7, 0xE3, 0xC7, 0xE3, 0x3F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xC7, + 0xCF, 0xF9, 0xCF, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xF1, + 0xCF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0x0F, 0xFC, + 0x0F, 0xF8, 0xC7, 0xF1, 0x07, 0xF8, 0x07, 0xC7, 0xCF, 0xF9, 0x8F, 0xF1, + 0x3F, 0xFE, 0x03, 0xF0, 0x03, 0xF0, 0xCF, 0xF8, 0xCF, 0x98, 0xFF, 0xFF, + 0x3F, 0x8E, 0xC7, 0xF1, 0xFF, 0xF1, 0x7F, 0xFC, 0xC7, 0xF1, 0xC7, 0xF1, + 0xC7, 0xF1, 0x07, 0xC6, 0x3F, 0xF2, 0x3F, 0xFC, 0x3F, 0xFE, 0x03, 0xF0, + 0x03, 0xF0, 0x4F, 0xC4, 0x4F, 0x8C, 0x3F, 0xFE, 0x1F, 0xC7, 0x8F, 0xE3, + 0xFF, 0xF1, 0x7F, 0xFC, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0x47, 0xC4, + 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0x3F, 0x92, + 0x3F, 0x86, 0x3F, 0xFE, 0x8F, 0xE3, 0x1F, 0xC7, 0x0F, 0xF0, 0x7F, 0xFC, + 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xC0, 0x07, 0xE0, 0x07, 0xE0, + 0x8F, 0xFF, 0xF3, 0xFF, 0xFF, 0xF3, 0x1F, 0x9F, 0x1F, 0x93, 0x1F, 0xFC, + 0xC7, 0xF1, 0x3F, 0x8E, 0xC7, 0xF1, 0x7F, 0xFC, 0xC7, 0xF1, 0xC7, 0xF1, + 0xC7, 0xF1, 0xC7, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xFF, 0xF3, 0xFF, + 0xFF, 0xF3, 0x8F, 0xCF, 0x8F, 0x99, 0x1F, 0xFC, 0xC7, 0xF1, 0x3F, 0x8E, + 0xC7, 0xF1, 0x7F, 0xFC, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xC3, + 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xE7, 0xF3, 0xFF, 0xFF, 0xF3, 0xC7, 0xE7, + 0xC7, 0x81, 0x1F, 0xFC, 0x8F, 0xE3, 0x1F, 0xC7, 0xC7, 0xF1, 0x7F, 0xFC, + 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xF1, 0xC7, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, + 0x87, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xF3, 0xE7, 0x9F, 0x1F, 0xFC, + 0x1F, 0xC7, 0x8F, 0xE3, 0x0F, 0xE6, 0x0F, 0xE0, 0x0F, 0xF8, 0x0F, 0xE6, + 0xC7, 0xF1, 0xC7, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, 0xFF, 0xFF, + 0xFF, 0xFF, 0xF7, 0x83, 0xF7, 0x9F, 0x1F, 0xFC, 0x3F, 0x8E, 0xC7, 0xF1, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x3F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xCC, 0xAA, 0xAA, 0xAA, 0xAA, 0x7F, 0xFE, + 0x7F, 0xFE, 0x7F, 0xFE, 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xF9, + 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0x9F, 0xF9, 0x7F, 0xFE, 0xFF, 0xFF, + 0x99, 0x99, 0x11, 0x11, 0x44, 0x44, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, + 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xF9, 0x9F, 0xF9, 0xFF, 0xFF, + 0x9F, 0xF9, 0x9F, 0xF9, 0x7F, 0xFE, 0xFF, 0xFF, 0x33, 0x33, 0x11, 0x11, + 0x11, 0x11, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x9F, 0xF9, 0xFF, 0xFF, + 0xFF, 0xFF, 0x9F, 0xF9, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0x9F, 0xF9, + 0x7F, 0xFE, 0xFF, 0xFF, 0x66, 0x66, 0xAA, 0xAA, 0x22, 0x22, 0x7F, 0xFE, + 0x7F, 0xFE, 0x7F, 0xFE, 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xF9, + 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0x9F, 0xF9, 0x7F, 0xFE, 0xFF, 0xFF, + 0xCC, 0xCC, 0xAA, 0xAA, 0xAA, 0xAA, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, + 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xF9, 0x9F, 0xF9, 0xFF, 0xFF, + 0x9F, 0xF9, 0x9F, 0xF9, 0x7F, 0xFE, 0xFF, 0xFF, 0x99, 0x99, 0x11, 0x11, + 0x44, 0x44, 0x7F, 0xFE, 0x7F, 0xFE, 0x00, 0xFE, 0x9F, 0xF9, 0xFF, 0xFF, + 0x00, 0xFE, 0x80, 0xF9, 0x9F, 0xF9, 0x00, 0xF8, 0x80, 0xF9, 0x9F, 0xF9, + 0x00, 0xFE, 0xFF, 0xFF, 0x33, 0x33, 0x11, 0x11, 0x11, 0x11, 0x7F, 0xFE, + 0x7F, 0xFE, 0x00, 0xFE, 0x9F, 0xF9, 0xFF, 0xFF, 0x00, 0xFE, 0x80, 0xF9, + 0x9F, 0xF9, 0x00, 0xF8, 0x80, 0xF9, 0x9F, 0xF9, 0x00, 0xFE, 0xFF, 0xFF, + 0x66, 0x66, 0xAA, 0xAA, 0x22, 0x22, 0x7F, 0xFE, 0x00, 0xFE, 0x7F, 0xFE, + 0x80, 0xF9, 0x00, 0xF8, 0x7F, 0xFE, 0xFF, 0xF9, 0x9F, 0xF9, 0xFF, 0xF9, + 0xFF, 0xF9, 0x00, 0xF8, 0x7F, 0xFE, 0x00, 0xFE, 0xCC, 0xCC, 0xAA, 0xAA, + 0xAA, 0xAA, 0x7F, 0xFE, 0x00, 0xFE, 0x7F, 0xFE, 0x80, 0xF9, 0x00, 0xF8, + 0x7F, 0xFE, 0xFF, 0xF9, 0x9F, 0xF9, 0xFF, 0xF9, 0xFF, 0xF9, 0x00, 0xF8, + 0x7F, 0xFE, 0x00, 0xFE, 0x99, 0x99, 0x11, 0x11, 0x44, 0x44, 0x7F, 0xFE, + 0x7F, 0xFE, 0x00, 0xFE, 0x9F, 0xF9, 0x9F, 0xF9, 0x00, 0xFE, 0x80, 0xF9, + 0x9F, 0xF9, 0x80, 0xF9, 0x00, 0xF8, 0xFF, 0xFF, 0x00, 0xFE, 0x7F, 0xFE, + 0x33, 0x33, 0x11, 0x11, 0x11, 0x11, 0x7F, 0xFE, 0x7F, 0xFE, 0x00, 0xFE, + 0x9F, 0xF9, 0x9F, 0xF9, 0x00, 0xFE, 0x80, 0xF9, 0x9F, 0xF9, 0x80, 0xF9, + 0x00, 0xF8, 0xFF, 0xFF, 0x00, 0xFE, 0x7F, 0xFE, 0x66, 0x66, 0xAA, 0xAA, + 0x22, 0x22, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x9F, 0xF9, 0x9F, 0xF9, + 0x7F, 0xFE, 0x9F, 0xF9, 0x9F, 0xF9, 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x7F, 0xFE, 0xCC, 0xCC, 0xAA, 0xAA, 0xAA, 0xAA, 0x7F, 0xFE, + 0x7F, 0xFE, 0x7F, 0xFE, 0x9F, 0xF9, 0x9F, 0xF9, 0x7F, 0xFE, 0x9F, 0xF9, + 0x9F, 0xF9, 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, + 0x99, 0x99, 0x11, 0x11, 0x44, 0x44, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, + 0x9F, 0xF9, 0x9F, 0xF9, 0x7F, 0xFE, 0x9F, 0xF9, 0x9F, 0xF9, 0x9F, 0xF9, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x33, 0x33, 0x11, 0x11, + 0x11, 0x11, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x9F, 0xF9, 0x9F, 0xF9, + 0x7F, 0xFE, 0x9F, 0xF9, 0x9F, 0xF9, 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x7F, 0xFE, 0x66, 0x66, 0xAA, 0xAA, 0x22, 0x22, 0x7F, 0xFE, + 0x7F, 0xFE, 0x7F, 0xFE, 0x9F, 0xF9, 0x9F, 0xF9, 0x7F, 0xFE, 0x9F, 0xF9, + 0x9F, 0xF9, 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, + 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, + 0x7F, 0xFE, 0x9F, 0xF9, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0xFF, 0xFF, + 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, + 0xFF, 0xFF, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0xFE, 0x9F, 0xF9, + 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0xFF, 0xFF, + 0x9F, 0xF9, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, + 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0xFE, 0x9F, 0xF9, 0x9F, 0xF9, 0xFF, 0xFF, + 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0x7F, 0xFE, + 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, + 0x7F, 0xFE, 0x9F, 0xF9, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0xFF, 0xFF, + 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, + 0xFF, 0xFF, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0xFE, 0x9F, 0xF9, + 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0xFF, 0xFF, + 0x9F, 0xF9, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, + 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0x00, 0x9F, 0xF9, 0x9F, 0x01, 0x1F, 0x00, + 0x80, 0x01, 0x00, 0x00, 0x9F, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, + 0x7F, 0x00, 0x9F, 0xF9, 0x9F, 0x01, 0x1F, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x9F, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x9F, 0x01, + 0x9F, 0xFF, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x9F, 0x01, 0x9F, 0xFF, 0x9F, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, + 0x7F, 0x00, 0x9F, 0xF9, 0x1F, 0x00, 0x9F, 0x01, 0x00, 0x00, 0x80, 0x01, + 0x9F, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0x00, 0x9F, 0xF9, + 0x1F, 0x00, 0x9F, 0x01, 0x00, 0x00, 0x80, 0x01, 0x9F, 0x01, 0x00, 0x00, + 0x80, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0xFE, + 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0xFE, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, + 0xFF, 0xFF, 0x9F, 0xF9, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, + 0x7F, 0xFE, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, + 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0xFE, 0x9F, 0xF9, + 0xFF, 0xFF, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0x9F, 0xF9, 0xFF, 0xFF, + 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0xFE, + 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0xFE, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, + 0xFF, 0xFF, 0x9F, 0xF9, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, + 0x7F, 0xFE, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, + 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0xFF, 0xFF, 0x9F, 0xF9, 0xFF, 0xFF, + 0xFF, 0xFF, 0x9F, 0xF9, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xF9, + 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFC, + 0xFF, 0x00, 0x00, 0x00, 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xF9, + 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xF9, 0x7F, 0xFE, 0x7F, 0xFE, + 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x00, + 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xF9, 0x7F, 0xFE, 0xFF, 0xFF, + 0xFF, 0xFF, 0x9F, 0xF9, 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFF, 0x00, 0x00, + 0xFF, 0xFF, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x9F, 0xF9, 0xFF, 0xFF, + 0xFF, 0xFF, 0x9F, 0xF9, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xF9, + 0x7F, 0xFE, 0x7F, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFC, + 0xFF, 0x00, 0x00, 0x00, 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xF9, + 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xF9, 0x7F, 0xFE, 0x7F, 0xFE, + 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x00, + 0x9F, 0xF9, 0x00, 0x00, 0xFF, 0xFF, 0x9F, 0xF9, 0x7F, 0x00, 0x7F, 0x00, + 0xFF, 0xFF, 0x9F, 0xF9, 0x00, 0x00, 0x7F, 0xFE, 0xFF, 0xFF, 0x00, 0x00, + 0xFF, 0xFF, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x00, 0x9F, 0xF9, 0x00, 0x00, + 0xFF, 0xFF, 0x9F, 0xF9, 0x7F, 0x00, 0x7F, 0x00, 0xFF, 0xFF, 0x9F, 0xF9, + 0x00, 0x00, 0x7F, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFC, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x1F, 0x00, + 0x7F, 0xFE, 0x7F, 0xFE, 0x1F, 0x00, 0x80, 0x01, 0xFF, 0xFF, 0x00, 0xFE, + 0x7F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x1F, 0x00, 0x7F, 0xFE, 0x7F, 0xFE, + 0x1F, 0x00, 0x80, 0x01, 0xFF, 0xFF, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0x9F, 0xF9, 0xFF, 0xFF, 0x7F, 0x00, 0x7F, 0x00, 0x9F, 0xF9, 0x9F, 0xF9, + 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, + 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x9F, 0xF9, 0xFF, 0xFF, + 0x7F, 0x00, 0x7F, 0x00, 0x9F, 0xF9, 0x9F, 0xF9, 0x00, 0x00, 0xFF, 0xFF, + 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0x7F, 0xFE, 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, + 0x9F, 0xF9, 0x9F, 0xF9, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, + 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x9F, 0xF9, 0x9F, 0xF9, + 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, + 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x9F, 0xF9, 0xFF, 0xFF, + 0xFF, 0xFF, 0x7F, 0xFE, 0x9F, 0xF9, 0x9F, 0xF9, 0x7F, 0xFE, 0xFF, 0xFF, + 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0x7F, 0xFE, 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, + 0x9F, 0xF9, 0x9F, 0xF9, 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, + 0x9F, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x9F, 0xF9, 0x9F, 0xF9, + 0x7F, 0xFE, 0xFF, 0xFF, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, + 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x1F, 0xF8, 0x0F, 0xF0, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, + 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, + 0xFF, 0xFF, 0x0F, 0xF0, 0x07, 0xE0, 0x1F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, + 0x1F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xE3, 0x00, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x07, 0xE0, + 0xC3, 0xC3, 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x8F, 0xFF, 0x0F, 0xF8, + 0xFF, 0xFF, 0xC7, 0xE3, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xC3, 0xC3, 0xE3, 0xC7, 0x8F, 0xFF, + 0xFF, 0xFF, 0x3F, 0xF4, 0xCF, 0xFF, 0x07, 0xF0, 0xFF, 0xFF, 0xC7, 0xF1, + 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, + 0xFF, 0xFF, 0xE3, 0xC7, 0xE3, 0xC7, 0x1F, 0xFE, 0x0F, 0xE3, 0x1F, 0xF8, + 0xE7, 0xFF, 0xC3, 0xE1, 0x0F, 0xCE, 0xC7, 0xF8, 0x00, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xE3, 0xC7, + 0xE3, 0xC7, 0x0F, 0xFC, 0x63, 0x8C, 0xCF, 0xF1, 0xE7, 0xFF, 0xC3, 0xE1, + 0x07, 0xC4, 0xC7, 0xF8, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x03, 0xC0, 0xE3, 0xC7, 0xC7, 0xF8, + 0x63, 0x8C, 0xCF, 0xF2, 0x07, 0xF0, 0xC3, 0xE1, 0xE7, 0xE0, 0xC7, 0xF1, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, + 0x00, 0xFF, 0x03, 0xC0, 0xE3, 0xC7, 0xE3, 0xF1, 0x63, 0x8C, 0x4F, 0xF3, + 0x07, 0xF0, 0xC3, 0xE1, 0xE7, 0xF1, 0xC7, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xE3, 0xC7, + 0xC3, 0xC3, 0xE3, 0xF1, 0x63, 0x8C, 0x8F, 0xF3, 0xE7, 0xFF, 0xC3, 0xE1, + 0xE7, 0xF1, 0xC7, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xE3, 0xC7, 0x87, 0xE1, 0xE3, 0xF1, + 0x8F, 0xE1, 0x1F, 0xF8, 0xE7, 0xFF, 0xC3, 0xE1, 0xE7, 0xE0, 0xC7, 0xE3, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, + 0x00, 0xFF, 0xC3, 0xC3, 0x8F, 0xF1, 0xC7, 0xF8, 0xFF, 0xFF, 0x2F, 0xFC, + 0xCF, 0xFF, 0xC3, 0xE1, 0x07, 0xC4, 0xC7, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x07, 0xE0, + 0x8B, 0xD1, 0x0F, 0xFC, 0xFF, 0xFF, 0xF7, 0xFF, 0x8F, 0xFF, 0xC3, 0xE1, + 0x0F, 0xCE, 0xC7, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x0F, 0xF0, 0x83, 0xC1, 0x1F, 0xFE, + 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xF0, 0xC3, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, + 0x00, 0xFF, 0x1F, 0xF8, 0x83, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFC, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, + 0x3F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0xF0, 0x1F, 0xF0, + 0xFF, 0xFF, 0xDF, 0xFD, 0xFF, 0xFF, 0x7F, 0xFE, 0x1F, 0xFF, 0xFF, 0xF1, + 0xFF, 0xE0, 0x7F, 0xFC, 0x3F, 0xFE, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xC3, 0x1F, 0xE3, 0x1F, 0xE0, 0x7F, 0xE0, 0xFF, 0xFF, + 0x07, 0xE0, 0x7F, 0xFE, 0x3F, 0xFE, 0xFF, 0xF8, 0x7F, 0xC0, 0x7F, 0xFC, + 0x3F, 0xFE, 0x07, 0xC7, 0x8F, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, + 0x1F, 0xE3, 0xFF, 0xE3, 0x7F, 0xE0, 0xAF, 0xFA, 0x07, 0xE0, 0x7F, 0xFE, + 0x7F, 0xFC, 0x7F, 0xFC, 0x7F, 0x8C, 0x7F, 0xFC, 0x3F, 0xFE, 0x23, 0xC6, + 0xCF, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0x1F, 0xE3, 0xFF, 0xE3, + 0x7F, 0xE0, 0x4F, 0xFA, 0xFF, 0xFF, 0x7F, 0xFE, 0xFF, 0xF8, 0x3F, 0xFE, + 0x7F, 0x8C, 0x7F, 0xFC, 0xFF, 0xFF, 0x63, 0xC4, 0xCF, 0xF3, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFB, 0x1F, 0xE3, 0xFF, 0xF0, 0x7F, 0xE0, 0x5F, 0xFA, + 0xFF, 0xFF, 0x07, 0xE0, 0xFF, 0xF1, 0x1F, 0xFF, 0x7F, 0xFC, 0x7F, 0xFC, + 0xFF, 0xFF, 0xE3, 0xE0, 0x8F, 0xF1, 0x7F, 0xFE, 0xFF, 0xFF, 0xFF, 0xFB, + 0x1F, 0xE3, 0x3F, 0xFC, 0x7F, 0xE0, 0x2F, 0xF2, 0x07, 0xE0, 0x07, 0xE0, + 0xFF, 0xF1, 0x1F, 0xFF, 0x7F, 0xFC, 0x7F, 0xFC, 0x03, 0xE0, 0xFF, 0xFF, + 0x1F, 0xF8, 0x3F, 0xFC, 0x7F, 0xFE, 0xE3, 0xFB, 0x1F, 0xE3, 0x1F, 0xE0, + 0x7F, 0xE0, 0x8F, 0xF1, 0x07, 0xE0, 0x7F, 0xFE, 0xFF, 0xF8, 0x3F, 0xFE, + 0x7F, 0xFC, 0x7F, 0xFC, 0x03, 0xE0, 0xFF, 0xFF, 0x3F, 0xFC, 0x3F, 0xFC, + 0x7F, 0xFE, 0xC3, 0xFB, 0x1F, 0xE3, 0x1F, 0xE0, 0x7F, 0xE0, 0x3F, 0xFC, + 0xFF, 0xFF, 0x7F, 0xFE, 0x7F, 0xFC, 0x7F, 0xFC, 0x7F, 0xFC, 0x7F, 0xFC, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0xFF, 0xFF, 0x8F, 0xFB, + 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, + 0x3F, 0xFE, 0xFF, 0xF8, 0x7F, 0xFC, 0x63, 0xFC, 0xFF, 0xFF, 0x07, 0xC7, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, + 0x7F, 0xE0, 0xF7, 0xEF, 0x07, 0xE0, 0x7F, 0xFE, 0x1F, 0xFF, 0xFF, 0xF1, + 0x7F, 0xFC, 0x63, 0xFC, 0x3F, 0xFE, 0x23, 0xC6, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x3F, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xE0, 0xB3, 0xCD, + 0x07, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFC, 0x07, 0xFC, + 0x3F, 0xFE, 0x63, 0xC4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xF8, + 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xE0, 0xB3, 0xCF, 0xFF, 0xFF, 0x07, 0xE0, + 0x07, 0xE0, 0x07, 0xE0, 0x7F, 0xFC, 0x0F, 0xFE, 0x3F, 0xFE, 0xE3, 0xE0, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xBF, 0xFD, 0xFF, 0xFF, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, + 0x7F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFB, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFC, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +}; diff --git a/rebound/source/src/simulationarchive.c b/rebound/source/src/simulationarchive.c new file mode 100644 index 0000000000000000000000000000000000000000..992a60be693b3d6bd5b61d043d5518c719ef84ef --- /dev/null +++ b/rebound/source/src/simulationarchive.c @@ -0,0 +1,652 @@ +/** + * @file simulationarchive.c + * @brief Tools for creating and reading Simulationarchive binary files. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2016 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#include +#include +#include "particle.h" +#include "rebound.h" +#include "fmemopen.h" +#include "binarydiff.h" +#include "output.h" +#include "tools.h" +#include "input.h" +#include "output.h" +#include "integrator_ias15.h" +#ifdef MPI +#include "communication_mpi.h" +#endif + + +void reb_simulation_create_from_simulationarchive_with_messages(struct reb_simulation* r, struct reb_simulationarchive* sa, int64_t snapshot, enum reb_simulation_binary_error_codes* warnings){ + FILE* inf = sa->inf; + if (inf == NULL){ + *warnings |= REB_SIMULATION_BINARY_ERROR_FILENOTOPEN; + return; + } + if (snapshot<0) snapshot += sa->nblobs; + if (snapshot>=sa->nblobs || snapshot<0){ + *warnings |= REB_SIMULATION_BINARY_ERROR_OUTOFRANGE; + return; + } + + // load original binary file + reb_simulation_free_pointers(r); + memset(r,0,sizeof(struct reb_simulation)); + reb_simulation_init(r); +#ifdef MPI + reb_communication_mpi_init(r, 0, NULL); +#endif //MPI + r->simulationarchive_filename = NULL; + // reb_simulation_create sets simulationarchive_version to 3 by default. + // This will break reading in old version. + // Set to old version by default. Will be overwritten if new version was used. + r->simulationarchive_version = 0; + + fseek(inf, 0, SEEK_SET); + reb_input_fields(r, inf, warnings); + + // Done? + if (snapshot==0) return; + + // Read SA snapshot + if(fseek(inf, sa->offset[snapshot], SEEK_SET)){ + *warnings |= REB_SIMULATION_BINARY_ERROR_SEEK; + //reb_simulation_free(r); + return; + } + if (r->simulationarchive_version<2){ + *warnings |= REB_SIMULATION_BINARY_ERROR_OLD; + //reb_simulation_free(r); + return; + }else{ + // Version 2 or higher + reb_input_fields(r, inf, warnings); + } + return; +} + +struct reb_simulation* reb_simulation_create_from_simulationarchive(struct reb_simulationarchive* sa, int64_t snapshot){ + if (sa==NULL) return NULL; + enum reb_simulation_binary_error_codes warnings = REB_SIMULATION_BINARY_WARNING_NONE; + struct reb_simulation* r = reb_simulation_create(); + reb_simulation_create_from_simulationarchive_with_messages(r, sa, snapshot, &warnings); + r = reb_input_process_warnings(r, warnings); + return r; // might be null if error occured +} + +// Old 16 bit offsets. Used only to read old files. +struct reb_simulationarchive_blob16 { + int32_t index; + int16_t offset_prev; + int16_t offset_next; +}; + +void reb_read_simulationarchive_from_stream_with_messages(struct reb_simulationarchive* sa, struct reb_simulationarchive* sa_index, enum reb_simulation_binary_error_codes* warnings){ + // Assumes sa->inf is set to an open stream + const int debug = 0; + if (sa->inf==NULL){ + *warnings |= REB_SIMULATION_BINARY_ERROR_NOFILE; + return; + } + + // Get version + fseek(sa->inf, 0, SEEK_SET); + struct reb_binary_field field = {0}; + sa->version = 0; + double t0 = 0; + sa->reb_version_major = 0; + sa->reb_version_minor = 0; + sa->reb_version_patch = 0; + int uses32bitoffsets = 1; + // Cache descriptors + struct reb_binary_field_descriptor fd_header = reb_binary_field_descriptor_for_name("header"); + struct reb_binary_field_descriptor fd_t = reb_binary_field_descriptor_for_name("t"); + struct reb_binary_field_descriptor fd_sa_version = reb_binary_field_descriptor_for_name("simulationarchive_version"); + struct reb_binary_field_descriptor fd_sa_auto_walltime = reb_binary_field_descriptor_for_name("simulationarchive_auto_walltime"); + struct reb_binary_field_descriptor fd_sa_auto_interval = reb_binary_field_descriptor_for_name("simulationarchive_auto_interval"); + struct reb_binary_field_descriptor fd_sa_auto_step = reb_binary_field_descriptor_for_name("simulationarchive_auto_step"); + struct reb_binary_field_descriptor fd_end = reb_binary_field_descriptor_for_name("end"); + + + do{ + int didReadField = (int)fread(&field,sizeof(struct reb_binary_field),1,sa->inf); + if (!didReadField){ + *warnings |= REB_SIMULATION_BINARY_WARNING_CORRUPTFILE; + break; + } + if (field.type == fd_header.type){ + int64_t objects = 0; + // Input header. + const int64_t bufsize = 64 - sizeof(struct reb_binary_field); + char readbuf[64], curvbuf[64]; + const char* header = "REBOUND Binary File. Version: "; + sprintf(curvbuf,"%s%s",header+sizeof(struct reb_binary_field), reb_version_str); + + objects += fread(readbuf,sizeof(char),bufsize,sa->inf); + // Finding version_major/version_minor version + int c1=0, c2=0, c3=0; + for (int c=0; creb_version_patch = atoi(cpatch); + sa->reb_version_minor = atoi(cminor); + sa->reb_version_major = atoi(cmajor); + if (sa->reb_version_major <= 3 && sa->reb_version_minor < 18){ + uses32bitoffsets = 0; // fallback to 16 bit + } + } + if (objects < 1){ + *warnings |= REB_SIMULATION_BINARY_WARNING_CORRUPTFILE; + }else{ + // Note: following compares version, but ignores githash. + if(strncmp(readbuf,curvbuf,bufsize)!=0){ + *warnings |= REB_SIMULATION_BINARY_WARNING_VERSION; + } + } + + }else if (field.type == fd_t.type){ + fread(&t0, field.size, 1, sa->inf); + }else if (field.type == fd_sa_version.type){ + fread(&(sa->version), field.size, 1, sa->inf); + }else if (field.type == fd_sa_auto_walltime.type){ + fread(&(sa->auto_walltime), field.size, 1, sa->inf); + }else if (field.type == fd_sa_auto_interval.type){ + fread(&(sa->auto_interval), field.size, 1, sa->inf); + }else if (field.type == fd_sa_auto_step.type){ + fread(&(sa->auto_step), field.size, 1, sa->inf); + }else{ + fseek(sa->inf,field.size,SEEK_CUR); + } + }while(field.type!=fd_end.type); + + // Make index + if (sa->version<2){ + // Version 1 no longer supported + free(sa->filename); + sa->filename = NULL; + fclose(sa->inf); + sa->inf = NULL; + *warnings |= REB_SIMULATION_BINARY_ERROR_OLD; + return; + }else{ + // New version + if (debug) printf("=============\n"); + if (debug) printf("SA Version: 2\n"); + if (sa_index == NULL){ // Need to construct offset index from file. + int64_t nblobsmax = 1024; + sa->t = calloc(nblobsmax,sizeof(double)); + sa->offset = calloc(nblobsmax,sizeof(uint64_t)); + fseek(sa->inf, 0, SEEK_SET); + sa->nblobs = 0; + int read_error = 0; + struct reb_binary_field_descriptor fd_header = reb_binary_field_descriptor_for_name("header"); + struct reb_binary_field_descriptor fd_t = reb_binary_field_descriptor_for_name("t"); + struct reb_binary_field_descriptor fd_end = reb_binary_field_descriptor_for_name("end"); + for(int64_t i=0;ioffset[i] = ftell(sa->inf); + int blob_finished = 0; + do{ + size_t r1 = fread(&field,sizeof(struct reb_binary_field),1,sa->inf); + if (r1==1){ + if (field.type == fd_header.type){ + if (debug) printf("SA Field. type=HEADER\n"); + int s1 = fseek(sa->inf,64 - sizeof(struct reb_binary_field),SEEK_CUR); + if (s1){ + read_error = 1; + } + }else if (field.type == fd_t.type){ + size_t r2 = fread(&(sa->t[i]), field.size,1,sa->inf); + if (debug) printf("SA Field. type=TIME value=%.10f\n",sa->t[1]); + if (r2!=1){ + read_error = 1; + } + }else if (field.type == fd_end.type){ + if (debug) printf("SA Field. type=END =====\n"); + blob_finished = 1; + }else{ + int s2 = fseek(sa->inf,field.size,SEEK_CUR); + if (debug) printf("SA Field. type=%-6d size=%" PRIu64 "\n",field.type,(uint64_t)field.size); + if (s2){ + read_error = 1; + } + } + }else{ + read_error = 1; + } + }while(blob_finished==0 && read_error==0); + if (read_error){ + if (debug) printf("SA Error. Error while reading current blob.\n"); + // Error during reading. Current snapshot is corrupt. + break; + } + // Everything looks normal so far. Attempt to read next blob + struct reb_simulationarchive_blob blob = {0}; + size_t r3; + if (uses32bitoffsets){ + r3 = fread(&blob, sizeof(struct reb_simulationarchive_blob), 1, sa->inf); + }else{ + // Workaround for versions < 3.18 + struct reb_simulationarchive_blob16 blob16 = {0}; + r3 = fread(&blob16, sizeof(struct reb_simulationarchive_blob16), 1, sa->inf); + blob.index = blob16.index; + blob.offset_prev = blob16.offset_prev; + blob.offset_next = blob16.offset_next; + } + int next_blob_is_corrupted = 0; + if (r3!=1){ // Next snapshot is definitly corrupted. + // Assume we have reached the end of the file. + // Won't be able to do checksum. + if (debug) printf("SA Error. Error while reading next blob.\n"); + next_blob_is_corrupted = 1; + *warnings |= REB_SIMULATION_BINARY_WARNING_CORRUPTFILE; + } + if (i>0){ + size_t blobsize; + if (uses32bitoffsets){ + blobsize = sizeof(struct reb_simulationarchive_blob); + }else{ + blobsize = sizeof(struct reb_simulationarchive_blob16); + } + // Checking the offsets. Acts like a checksum. + if (((int64_t)blob.offset_prev )+ ((int64_t)blobsize) != ftell(sa->inf) - ((int64_t)sa->offset[i]) ){ + // Offsets don't work. Next snapshot is definitly corrupted. Assume current one as well. + if (debug) printf("SA Error. Offset mismatch: %lu != %" PRIu64 ".\n",blob.offset_prev + blobsize, (uint64_t)(ftell(sa->inf) - sa->offset[i]) ); + read_error = 1; + break; + } + } + // All tests passed. Accept current snapshot. Increase blob count. + sa->nblobs = i+1; + if (blob.offset_next==0 || next_blob_is_corrupted){ + // Last blob. + if (debug) printf("SA Reached final blob.\n"); + break; + } + if (i==nblobsmax-1){ // Increase + nblobsmax += 1024; + sa->t = realloc(sa->t,sizeof(double)*nblobsmax); + sa->offset = realloc(sa->offset,sizeof(uint64_t)*nblobsmax); + } + } + if (read_error){ + if (sa->nblobs>0){ + *warnings |= REB_SIMULATION_BINARY_WARNING_CORRUPTFILE; + }else{ + fclose(sa->inf); + sa->inf = NULL; + free(sa->filename); + sa->filename = NULL; + free(sa->t); + sa->t = NULL; + free(sa->offset); + sa->offset = NULL; + free(sa); + *warnings |= REB_SIMULATION_BINARY_ERROR_SEEK; + return; + } + } + + }else{ // reuse index from other SA + // This is an optimzation for loading many large SAs. + // It assumes the structure of this SA is *exactly* the same as in sa_index. + // Unexpected behaviour if the shape is not the same. + sa->nblobs = sa_index->nblobs; + sa->t = malloc(sizeof(double)*sa->nblobs); + sa->offset = malloc(sizeof(uint64_t)*sa->nblobs); + fseek(sa->inf, 0, SEEK_SET); + // No need to read the large file, just copying the index. + memcpy(sa->offset, sa_index->offset, sizeof(uint64_t)*sa->nblobs); + memcpy(sa->t, sa_index->t, sizeof(double)*sa->nblobs); + } + } +} + +void reb_simulationarchive_create_from_file_with_messages(struct reb_simulationarchive* sa, const char* filename, struct reb_simulationarchive* sa_index, enum reb_simulation_binary_error_codes* warnings){ + // Somewhat complicated calls for backwards compatability. +#ifdef MPI + int initialized; + MPI_Initialized(&initialized); + if (!initialized){ + int argc = 0; + char** argv = NULL; + MPI_Init(&argc, &argv); + } + int mpi_id=0; + MPI_Comm_rank(MPI_COMM_WORLD,&mpi_id); + char filename_mpi[1024]; + sprintf(filename_mpi,"%s_%d",filename,mpi_id); + sa->inf = fopen(filename_mpi,"rb"); +#else // MPI + sa->inf = fopen(filename,"rb"); +#endif // MPI + sa->filename = malloc(strlen(filename)+1); + strcpy(sa->filename,filename); + reb_read_simulationarchive_from_stream_with_messages(sa, sa_index, warnings); +} + +void reb_simulationarchive_init_from_buffer_with_messages(struct reb_simulationarchive* sa, char* buf, size_t size, struct reb_simulationarchive* sa_index, enum reb_simulation_binary_error_codes* warnings){ + // Somewhat complicated calls for backwards compatability. + sa->inf = reb_fmemopen(buf,size,"rb"); + sa->filename = NULL; + reb_read_simulationarchive_from_stream_with_messages(sa, sa_index, warnings); +} + +struct reb_simulationarchive* reb_simulationarchive_create_from_file(const char* filename){ + struct reb_simulationarchive* sa = malloc(sizeof(struct reb_simulationarchive)); + enum reb_simulation_binary_error_codes warnings = REB_SIMULATION_BINARY_WARNING_NONE; + reb_simulationarchive_create_from_file_with_messages(sa, filename, NULL, &warnings); + if (warnings & REB_SIMULATION_BINARY_ERROR_NOFILE){ + // Don't output an error if file does not exist, just return NULL. + free(sa); + sa = NULL; + }else{ + reb_input_process_warnings(NULL, warnings); + } + return sa; +} + +void reb_simulationarchive_free(struct reb_simulationarchive* sa){ + reb_simulationarchive_free_pointers(sa); + free(sa); +} + +void reb_simulationarchive_free_pointers(struct reb_simulationarchive* sa){ + if (sa==NULL) return; + if (sa->inf){ + fclose(sa->inf); + } + free(sa->filename); + free(sa->t); + free(sa->offset); +} + +void reb_simulationarchive_heartbeat(struct reb_simulation* const r){ + if (r->simulationarchive_filename!=NULL){ + int modes = 0; + if (r->simulationarchive_auto_interval!=0) modes++; + if (r->simulationarchive_auto_walltime!=0.) modes++; + if (r->simulationarchive_auto_step!=0) modes++; + if (modes>1){ + reb_simulation_error(r,"Only use one of simulationarchive_auto_interval, simulationarchive_auto_walltime, or simulationarchive_auto_step"); + } + if (r->simulationarchive_auto_interval!=0.){ + const double sign = r->dt>0.?1.:-1; + if (sign*r->simulationarchive_next <= sign*r->t){ + r->simulationarchive_next += sign*r->simulationarchive_auto_interval; + //Snap + reb_simulation_save_to_file(r, NULL); + } + } + if (r->simulationarchive_auto_step!=0.){ + if (r->simulationarchive_next_step <= r->steps_done){ + r->simulationarchive_next_step += r->simulationarchive_auto_step; + //Snap + reb_simulation_save_to_file(r, NULL); + } + } + if (r->simulationarchive_auto_walltime!=0.){ + if (r->simulationarchive_next <= r->walltime){ + r->simulationarchive_next += r->simulationarchive_auto_walltime; + //Snap + reb_simulation_save_to_file(r, NULL); + } + } + } +} + +void reb_simulation_save_to_file(struct reb_simulation* const r, const char* filename){ + if (r->simulationarchive_version<3){ + reb_simulation_error(r, "Writing Simulationarchives with a version < 3 is no longer supported.\n"); + return; + } + if (filename==NULL) filename = r->simulationarchive_filename; + struct stat buffer; +#ifdef MPI +#define filename_combined filename_mpi + char filename_mpi[1024]; + sprintf(filename_mpi,"%s_%d",filename,r->mpi_id); +#else // MPI +#define filename_combined filename +#endif // MPI + if (stat(filename_combined, &buffer) < 0){ + // File does not exist. Output binary. + FILE* of = fopen(filename_combined,"wb"); + if (of==NULL){ + reb_simulation_error(r, "Can not open file."); + return; + } + char* bufp; + size_t sizep; + reb_simulation_save_to_stream(r, &bufp,&sizep); + fwrite(bufp,sizep,1,of); + free(bufp); + fclose(of); + }else{ + // File exists, append snapshot. + struct reb_binary_field_descriptor fd_end = reb_binary_field_descriptor_for_name("end"); + // Create buffer containing original binary file + FILE* of = fopen(filename_combined,"r+b"); + fseek(of, 64, SEEK_SET); // Header + struct reb_binary_field field = {0}; + struct reb_simulationarchive_blob blob = {0}; + int bytesread; + do{ + bytesread = (int)fread(&field,sizeof(struct reb_binary_field),1,of); + fseek(of, field.size, SEEK_CUR); + }while(field.type!=fd_end.type && bytesread); + int64_t size_old = ftell(of); + if (bytesread!=1){ + reb_simulation_warning(r, "Simulationarchive appears to be corrupted. A recovery attempt has failed. No snapshot has been saved.\n"); + return; + } + + bytesread = (int)fread(&blob,sizeof(struct reb_simulationarchive_blob),1,of); + if (bytesread!=1){ + reb_simulation_warning(r, "Simulationarchive appears to be corrupted. A recovery attempt has failed. No snapshot has been saved.\n"); + return; + } + int archive_contains_more_than_one_blob = 0; + if (blob.offset_next>0){ + archive_contains_more_than_one_blob = 1; + } + + + char* buf_old = malloc(size_old); + fseek(of, 0, SEEK_SET); + fread(buf_old, size_old,1,of); + + // Create buffer containing current binary file + char* buf_new; + size_t size_new; + reb_simulation_save_to_stream(r, &buf_new, &size_new); + + // Create buffer containing diff + char* buf_diff; + size_t size_diff; + reb_binary_diff(buf_old, size_old, buf_new, size_new, &buf_diff, &size_diff, 0); + + int file_corrupt = 0; + int seek_ok = fseek(of, -sizeof(struct reb_simulationarchive_blob), SEEK_END); + int blobs_read = (int)fread(&blob, sizeof(struct reb_simulationarchive_blob), 1, of); + if (seek_ok !=0 || blobs_read != 1){ // cannot read blob + file_corrupt = 1; + } + if ( (archive_contains_more_than_one_blob && blob.offset_prev <=0) || blob.offset_next != 0){ // blob contains unexpected data. Note: First blob is all zeros. + file_corrupt = 1; + } + if (file_corrupt==0 && archive_contains_more_than_one_blob ){ + // Check if last two blobs are consistent. + seek_ok = fseek(of, - sizeof(struct reb_simulationarchive_blob) - sizeof(struct reb_binary_field), SEEK_CUR); + bytesread = (int)fread(&field, sizeof(struct reb_binary_field), 1, of); + if (seek_ok!=0 || bytesread!=1){ + file_corrupt = 1; + } + if (field.type != fd_end.type || field.size !=0){ + // expected an END field + file_corrupt = 1; + } + seek_ok = fseek(of, -blob.offset_prev - sizeof(struct reb_simulationarchive_blob), SEEK_CUR); + struct reb_simulationarchive_blob blob2 = {0}; + blobs_read = (int)fread(&blob2, sizeof(struct reb_simulationarchive_blob), 1, of); + if (seek_ok!=0 || blobs_read!=1 || blob2.offset_next != blob.offset_prev){ + file_corrupt = 1; + } + } + + if (file_corrupt){ + // Find last valid snapshot to allow for restarting and appending to archives where last snapshot was cut off + reb_simulation_warning(r, "Simulationarchive appears to be corrupted. REBOUND will attempt to fix it before appending more snapshots.\n"); + int seek_ok; + seek_ok = fseek(of, size_old, SEEK_SET); + int64_t last_blob = size_old + sizeof(struct reb_simulationarchive_blob); + do + { + seek_ok = fseek(of, -sizeof(struct reb_binary_field), SEEK_CUR); + if (seek_ok != 0){ + break; + } + bytesread = (int)fread(&field, sizeof(struct reb_binary_field), 1, of); + if (bytesread != 1 || field.type != fd_end.type){ // could be EOF or corrupt snapshot + break; + } + bytesread = (int)fread(&blob, sizeof(struct reb_simulationarchive_blob), 1, of); + if (bytesread != 1){ + break; + } + last_blob = ftell(of); + if (blob.offset_next>0){ + seek_ok = fseek(of, blob.offset_next, SEEK_CUR); + }else{ + break; + } + if (seek_ok != 0){ + break; + } + } while(1); + + // To append diff, seek to last valid location (=EOF if all snapshots valid) + fseek(of, last_blob, SEEK_SET); + }else{ + // File is not corrupt. Start at end to save time. + fseek(of, 0, SEEK_END); + } + + // Update blob info and Write diff to binary file + fseek(of, -sizeof(struct reb_simulationarchive_blob), SEEK_CUR); + fread(&blob, sizeof(struct reb_simulationarchive_blob), 1, of); + blob.offset_next = (int32_t)size_diff+sizeof(struct reb_binary_field); + fseek(of, -sizeof(struct reb_simulationarchive_blob), SEEK_CUR); + fwrite(&blob, sizeof(struct reb_simulationarchive_blob), 1, of); + fwrite(buf_diff, size_diff, 1, of); + field.type = fd_end.type; + field.size = 0; + fwrite(&field,sizeof(struct reb_binary_field), 1, of); + blob.index++; + blob.offset_prev = blob.offset_next; + blob.offset_next = 0; + fwrite(&blob, sizeof(struct reb_simulationarchive_blob), 1, of); + + fclose(of); + free(buf_new); + free(buf_old); + free(buf_diff); + } +} + +static int _reb_simulationarchive_automate_set_filename(struct reb_simulation* const r, const char* filename){ + if (r==NULL) return -1; + if (filename==NULL){ + reb_simulation_error(r, "Filename missing."); + return -1; + } + struct stat buffer; +#ifdef MPI +#define filename_combined filename_mpi + char filename_mpi[1024]; + sprintf(filename_mpi,"%s_%d",filename,r->mpi_id); +#else // MPI +#define filename_combined filename +#endif // MPI + if (stat(filename_combined, &buffer) == 0){ + reb_simulation_warning(r, "File in use for Simulationarchive already exists. Snapshots will be appended."); + } + free(r->simulationarchive_filename); + r->simulationarchive_filename = malloc((strlen(filename)+1)*sizeof(char)); + strcpy(r->simulationarchive_filename, filename); + return 0; +} + +void reb_simulation_save_to_file_interval(struct reb_simulation* const r, const char* filename, double interval){ + if(_reb_simulationarchive_automate_set_filename(r,filename)<0) return; + if(r->simulationarchive_auto_interval != interval){ + // Only update simulationarchive_next if interval changed. + // This ensures that interrupted simulations will continue + // after being restarted from a simulationarchive + r->simulationarchive_auto_interval = interval; + r->simulationarchive_next = r->t; + } +} + +void reb_simulation_save_to_file_walltime(struct reb_simulation* const r, const char* filename, double walltime){ + if(_reb_simulationarchive_automate_set_filename(r,filename)<0) return; + // Note that this will create two snapshots if restarted. + r->simulationarchive_auto_walltime = walltime; + r->simulationarchive_next = r->walltime; +} + +void reb_simulation_save_to_file_step(struct reb_simulation* const r, const char* filename, uint64_t step){ + if(_reb_simulationarchive_automate_set_filename(r,filename)<0) return; + if(r->simulationarchive_auto_step != step){ + // Only update simulationarchive_next if interval changed. + // This ensures that interrupted simulations will continue + // after being restarted from a simulationarchive + r->simulationarchive_auto_step = step; + r->simulationarchive_next_step = r->steps_done; + } +} diff --git a/rebound/source/src/simulationarchive.h b/rebound/source/src/simulationarchive.h new file mode 100644 index 0000000000000000000000000000000000000000..ff1077da96892ef02880e74312df3f265bf590c7 --- /dev/null +++ b/rebound/source/src/simulationarchive.h @@ -0,0 +1,37 @@ +/** + * @file simulationarchive.h + * @brief Tools for creating and readin a Simulationarchive binary file. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2016 Hanno Rein + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef SIMULATIONARCHIVE_H +#define SIMULATIONARCHIVE_H + +#include + +struct reb_simulation; +struct reb_particles; + +void reb_simulationarchive_heartbeat(struct reb_simulation* const r); ///< Internal function to handle outputs for the Simulationarchive. +void reb_simulationarchive_create_from_file_with_messages(struct reb_simulationarchive* sa, const char* filename, struct reb_simulationarchive* sa_shape, enum reb_simulation_binary_error_codes* warnings); ///< Internal function to read one snapshot from a simulationarchive. + + +#endif // SIMULATIONARCHIVE_H diff --git a/rebound/source/src/tools.c b/rebound/source/src/tools.c new file mode 100644 index 0000000000000000000000000000000000000000..3f914beb04bc530896c93cc7b7834d3e54af935a --- /dev/null +++ b/rebound/source/src/tools.c @@ -0,0 +1,1680 @@ +/** + * @file tools.c + * @brief Tools for creating distributions. + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include +#ifdef _WIN32 +#define strtok_r strtok_s +#define REB_RAND_MAX 2147483647 // INT_MAX +#else // Linux and MacOS +#define REB_RAND_MAX RAND_MAX +#endif // _WIN32 +#include +#include +#include +#include "rebound.h" +#include "particle.h" +#include "rebound.h" +#include "tools.h" +#include "tree.h" +#include "boundary.h" +#ifdef MPI +#include "communication_mpi.h" +#endif // MPI +#define MAX(a, b) ((a) > (b) ? (a) : (b)) ///< Returns the maximum of a and b + + +unsigned int reb_tools_get_rand_seed(){ + struct reb_timeval tim; + gettimeofday(&tim, NULL); + return tim.tv_usec + getpid(); +} + +double reb_random_uniform(struct reb_simulation* r, double min, double max){ + unsigned int seed; + unsigned int* seedp; + if (r){ + seedp = &r->rand_seed; + }else{ + seed = reb_tools_get_rand_seed(); + seedp = &seed; + } + return ((double)rand_r(seedp))/((double)(REB_RAND_MAX))*(max-min)+min; +} + + +double reb_random_powerlaw(struct reb_simulation* r, double min, double max, double slope){ + double y = reb_random_uniform(r, 0., 1.); + if(slope == -1) return exp(y*log(max/min) + log(min)); + else return pow( (pow(max,slope+1.)-pow(min,slope+1.))*y+pow(min,slope+1.), 1./(slope+1.)); +} + +double reb_random_normal(struct reb_simulation* r, double variance){ + double v1=0.,v2=0.,rsq=1.; + unsigned int seed; + unsigned int* seedp; + if (r){ + seedp = &r->rand_seed; + }else{ + seed = reb_tools_get_rand_seed(); + seedp = &seed; + } + while(rsq>=1. || rsq<1.0e-12){ + v1=2.*((double)rand_r(seedp))/((double)(REB_RAND_MAX))-1.0; + v2=2.*((double)rand_r(seedp))/((double)(REB_RAND_MAX))-1.0; + rsq=v1*v1+v2*v2; + } + // Note: This gives another random variable for free, but we'll throw it away for simplicity and for thread-safety. + return v1*sqrt(-2.*log(rsq)/rsq*variance); +} + +double reb_random_rayleigh(struct reb_simulation* r, double sigma){ + double y = reb_random_uniform(r, 0.,1.); + return sigma*sqrt(-2*log(y)); +} + +/// Other helper routines +double reb_simulation_energy(struct reb_simulation* const r){ +#ifdef MPI + reb_communication_mpi_distribute_particles(r); +#endif + const int N = r->N; + const int N_var = r->N_var; + const int _N_active = (r->N_active==-1)?(N-N_var):r->N_active; + const struct reb_particle* restrict const particles = r->particles; + double e_kin = 0.; + double e_pot = 0.; + int N_interact = (r->testparticle_type==0)?_N_active:(N-N_var); + for (int i=0;iG*pj.m*pi.m/sqrt(dx*dx + dy*dy + dz*dz); + } + } +#ifdef MPI + assert(r->testparticle_type==0); // ==1 not yet implemented + reb_communication_mpi_distribute_particles_all_to_all(r); + for (int m=0;mmpi_num;m++){ + if (m==r->mpi_id) continue; + for (int i=0;i<_N_active;i++){ + struct reb_particle pi = particles[i]; + // TODO: Use N_interact from other node for test_particle_type==1 + for (int j=0;jN_particles_recv[m];j++){ + struct reb_particle pj = r->particles_recv[m][j]; + double dx = pi.x - pj.x; + double dy = pi.y - pj.y; + double dz = pi.z - pj.z; + // Factor of 0.5 because two nodes will contribute. + e_pot -= 0.5* r->G*pj.m*pi.m/sqrt(dx*dx + dy*dy + dz*dz); + } + } + } + for (int i=0;impi_num;i++){ + r->N_particles_recv[i] = 0; + } + + MPI_Allreduce(MPI_IN_PLACE, &e_kin, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + MPI_Allreduce(MPI_IN_PLACE, &e_pot, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + double energy_offset_sum = 0; + MPI_Allreduce(&energy_offset_sum, &r->energy_offset, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + return e_kin + e_pot + energy_offset_sum; +#else // MPI + return e_kin + e_pot + r->energy_offset; +#endif // MPI +} + +struct reb_vec3d reb_simulation_angular_momentum(const struct reb_simulation* const r){ + const int N = r->N; + const struct reb_particle* restrict const particles = r->particles; + const int N_var = r->N_var; + struct reb_vec3d L = {0}; + for (int i=0;iN - r->N_var; + if (N_real>0){ + struct reb_particle* restrict const particles = r->particles; + struct reb_particle hel = r->particles[0]; + // Note: Variational particles will not be affected. + for (int i=1;iparticles[0].x = 0.; + r->particles[0].y = 0.; + r->particles[0].z = 0.; + r->particles[0].vx = 0.; + r->particles[0].vy = 0.; + r->particles[0].vz = 0.; + } +} + + +void reb_simulation_move_to_com(struct reb_simulation* const r){ + struct reb_particle com = reb_simulation_com(r); // Particles will be redistributed in this call if MPI used + struct reb_particle* restrict const particles = r->particles; + const int N_real = r->N - r->N_var; + + // First do second order + for (int v=0;vN_var_config;v++){ + int index = r->var_config[v].index; + if (r->var_config[v].testparticle>=0){ + // Test particles do not affect the COM + }else{ + if (r->var_config[v].order==2){ + struct reb_particle com_shift = {0}; + int index_1st_order_a = r->var_config[v].index_1st_order_a; + int index_1st_order_b = r->var_config[v].index_1st_order_b; + double dma = 0.; + double dmb = 0.; + double ddm = 0.; + for (int i=0;iN_var_config;v++){ + int index = r->var_config[v].index; + if (r->var_config[v].testparticle>=0){ + // Test particles do not affect the COM + }else{ + if (r->var_config[v].order==1){ + struct reb_particle com_shift = {0}; + double dm = 0.; + for (int i=0;igravity==REB_GRAVITY_TREE || r->collision==REB_COLLISION_TREE || r->collision==REB_COLLISION_LINETREE){ + reb_simulation_update_tree(r); + } +#ifdef MPI + reb_communication_mpi_distribute_particles(r); +#endif // MPI +} + +void reb_simulation_get_serialized_particle_data(struct reb_simulation* r, uint32_t* hash, double* m, double* radius, double (*xyz)[3], double (*vxvyvz)[3], double (*xyzvxvyvz)[6]){ + const int N_real = r->N - r->N_var; + struct reb_particle* restrict const particles = r->particles; + for (int i=0;iN - r->N_var; + struct reb_particle* restrict const particles = r->particles; + for (int i=0;i0.){ + p1.x /= p1.m; + p1.y /= p1.m; + p1.z /= p1.m; + p1.vx /= p1.m; + p1.vy /= p1.m; + p1.vz /= p1.m; + p1.ax /= p1.m; + p1.ay /= p1.m; + p1.az /= p1.m; + } + return p1; +} + +struct reb_particle reb_simulation_com_range(struct reb_simulation* r, int first, int last){ + struct reb_particle com = {0}; + for(int i=first; iparticles[i]); + } + return com; +} + +struct reb_particle reb_simulation_com(struct reb_simulation* r){ +#ifdef MPI + reb_communication_mpi_distribute_particles(r); + int N_real = r->N-r->N_var; + struct reb_particle com = reb_simulation_com_range(r, 0, N_real); + com.x *= com.m; + com.y *= com.m; + com.z *= com.m; + com.vx *= com.m; + com.vy *= com.m; + com.vz *= com.m; + com.ax *= com.m; + com.ay *= com.m; + com.az *= com.m; + + MPI_Allreduce(MPI_IN_PLACE, &com.x, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + MPI_Allreduce(MPI_IN_PLACE, &com.y, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + MPI_Allreduce(MPI_IN_PLACE, &com.z, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + MPI_Allreduce(MPI_IN_PLACE, &com.vx, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + MPI_Allreduce(MPI_IN_PLACE, &com.vy, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + MPI_Allreduce(MPI_IN_PLACE, &com.vz, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + MPI_Allreduce(MPI_IN_PLACE, &com.ax, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + MPI_Allreduce(MPI_IN_PLACE, &com.ay, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + MPI_Allreduce(MPI_IN_PLACE, &com.az, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + MPI_Allreduce(MPI_IN_PLACE, &com.m, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + + if (com.m > 0){ + com.x /= com.m; + com.y /= com.m; + com.z /= com.m; + com.vx /= com.m; + com.vy /= com.m; + com.vz /= com.m; + com.ax /= com.m; + com.ay /= com.m; + com.az /= com.m; + } + + return com; +#else // MPI + int N_real = r->N-r->N_var; + return reb_simulation_com_range(r, 0, N_real); +#endif // MPI +} + +struct reb_particle reb_simulation_jacobi_com(struct reb_particle* p){ + int p_index = reb_simulation_particle_index(p); + struct reb_simulation* r = p->sim; + return reb_simulation_com_range(r, 0, p_index); +} + +void reb_simulation_add_plummer(struct reb_simulation* r, int _N, double M, double R) { + // Algorithm from: + // http://adsabs.harvard.edu/abs/1974A%26A....37..183A + + double E = 3./64.*M_PI*M*M/R; + for (int i=0;i<_N;i++){ + struct reb_particle star = {0}; + double _r = pow(pow(reb_random_uniform(r, 0,1),-2./3.)-1.,-1./2.); + double x2 = reb_random_uniform(r, 0,1); + double x3 = reb_random_uniform(r, 0,2.*M_PI); + star.z = (1.-2.*x2)*_r; + star.x = sqrt(_r*_r-star.z*star.z)*cos(x3); + star.y = sqrt(_r*_r-star.z*star.z)*sin(x3); + double x5,g,q; + do{ + x5 = reb_random_uniform(r, 0.,1.); + q = reb_random_uniform(r, 0.,1.); + g = q*q*pow(1.-q*q,7./2.); + }while(0.1*x5>g); + double ve = pow(2.,1./2.)*pow(1.+_r*_r,-1./4.); + double v = q*ve; + double x6 = reb_random_uniform(r, 0.,1.); + double x7 = reb_random_uniform(r, 0.,2.*M_PI); + star.vz = (1.-2.*x6)*v; + star.vx = sqrt(v*v-star.vz*star.vz)*cos(x7); + star.vy = sqrt(v*v-star.vz*star.vz)*sin(x7); + + star.x *= 3.*M_PI/64.*M*M/E; + star.y *= 3.*M_PI/64.*M*M/E; + star.z *= 3.*M_PI/64.*M*M/E; + + star.vx *= sqrt(E*64./3./M_PI/M); + star.vy *= sqrt(E*64./3./M_PI/M); + star.vz *= sqrt(E*64./3./M_PI/M); + + star.m = M/(double)_N; + + reb_simulation_add(r, star); + } +} + +double reb_mod2pi(double f){ + const double pi2 = 2.*M_PI; + return fmod(pi2 + fmod(f, pi2), pi2); +} + +double reb_M_to_E(double e, double M){ + double E; + double F; + if (e < 1.){ + M = reb_mod2pi(M); // avoid numerical artefacts for negative numbers + + // Previous REBOUND initial guess + // E = e < 0.8 ? M : M_PI; + + // Guess from Danby & Burkadt 1983 and Napier 2024 + double sigma = 1.; + if (M > M_PI) sigma = -1; + E = M + sigma * 0.71 * e; + + F = E - e*sin(E) - M; + for(int i=0; i<100; i++){ + E = E - F/(1.-e*cos(E)); + F = E - e*sin(E) - M; + if(fabs(F) < 1.e-15){ + break; + } + } + E = reb_mod2pi(E); + } + else{ + E = M/fabs(M)*log(2.*fabs(M)/e + 1.8); + + F = E - e*sinh(E) + M; + for(int i=0; i<100; i++){ + E = E - F/(1.0 - e*cosh(E)); + F = E - e*sinh(E) + M; + if(fabs(F) < 1.e-15){ + break; + } + } + } + return E; +} + +double reb_E_to_f(double e, double E){ + if(e > 1.){ + return reb_mod2pi(2.*atan(sqrt((1.+e)/(e-1.))*tanh(0.5*E))); + } + else{ + return reb_mod2pi(2.*atan(sqrt((1.+e)/(1.-e))*tan(0.5*E))); + } +} + +double reb_M_to_f(double e, double M){ + double E = reb_M_to_E(e, M); + return reb_E_to_f(e, E); +} + +static const char* reb_string_for_particle_error(int err){ + if (err==1) + return "Cannot set e exactly to 1."; + if (err==2) + return "Eccentricity must be greater than or equal to zero."; + if (err==3) + return "Bound orbit (a > 0) must have e < 1."; + if (err==4) + return "Unbound orbit (a < 0) must have e > 1."; + if (err==5) + return "Unbound orbit can't have f beyond the range allowed by the asymptotes set by the hyperbola."; + if (err==6) + return "Primary has no mass."; + if (err==7) + return "Cannot mix Pal coordinates (h,k,ix,iy) with certain orbital elements (e, inc, Omega, omega, pomega, f, M, E, theta, T). Use longitude l to indicate the phase."; + if (err==8) + return "Cannot pass cartesian coordinates and orbital elements (incl primary) at the same time."; + if (err==9) + return "Need to pass reb_simulation object when initializing particle with orbital elements."; + if (err==10) + return "Need to pass either semi-major axis or orbital period to initialize particle using orbital elements."; + if (err==11) + return "Need to pass either semi-major axis or orbital period, but not both."; + if (err==12) + return "(ix, iy) coordinates are not valid. Squared sum exceeds 4."; + if (err==13) + return "Cannot pass both (omega, pomega) together."; + if (err==14) + return "Can only pass one longitude/anomaly in the set (f, M, E, l, theta, T)."; + return "An unknown error occured during reb_simulation_add_fmt()."; + +} + +static struct reb_particle reb_particle_from_fmt_errV(struct reb_simulation* r, int* err, const char* fmt, va_list args); + +void reb_simulation_add_fmt(struct reb_simulation* r, const char* fmt, ...){ + if (!r){ + fprintf(stderr, "\n\033[1mError!\033[0m Simulation can't be NULL1.\n"); + return; + } + + int err = 0; + va_list args; + va_start(args, fmt); + struct reb_particle particle = reb_particle_from_fmt_errV(r, &err, fmt, args); + va_end(args); + + if (err==0){ // Success + reb_simulation_add(r, particle); + }else{ + const char* error_string = reb_string_for_particle_error(err); + reb_simulation_error(r, error_string); + } +} + +struct reb_particle reb_particle_from_fmt(struct reb_simulation* r, const char* fmt, ...){ + int err = 0; + + va_list args; + va_start(args, fmt); + struct reb_particle particle = reb_particle_from_fmt_errV(r, &err, fmt, args); + va_end(args); + + if (err==0){ // Success + return particle; + }else{ + const char* error_string = reb_string_for_particle_error(err); + fprintf(stderr, "\n\033[1mError!\033[0m %s\n", error_string); + return reb_particle_nan(); + } +} + +static struct reb_particle reb_particle_from_fmt_errV(struct reb_simulation* r, int* err, const char* fmt, va_list args){ + double m = 0; + double radius = 0; + uint32_t hash = 0; + double x = nan(""); + double y = nan(""); + double z = nan(""); + double vx = nan(""); + double vy = nan(""); + double vz = nan(""); + double a = nan(""); + double P = nan(""); + double e = nan(""); + double inc = nan(""); + double Omega = nan(""); + double omega = nan(""); + double pomega = nan(""); + double f = nan(""); + double M = nan(""); + double E = nan(""); + double l = nan(""); + double theta = nan(""); + double T = nan(""); + double h = nan(""); + double k = nan(""); + double ix = nan(""); + double iy = nan(""); + struct reb_particle primary = {0}; + int primary_given = 0; + + char *sep = " \t\n,;"; + + char* fmt_c = strdup(fmt); + char* token; + char* rest = fmt_c; + + while ((token = strtok_r(rest, sep, &rest))){ + if (0==strcmp(token,"m")) + m = va_arg(args, double); + if (0==strcmp(token,"r")) + radius = va_arg(args, double); + if (0==strcmp(token,"x")) + x = va_arg(args, double); + if (0==strcmp(token,"y")) + y = va_arg(args, double); + if (0==strcmp(token,"z")) + z = va_arg(args, double); + if (0==strcmp(token,"vx")) + vx = va_arg(args, double); + if (0==strcmp(token,"vy")) + vy = va_arg(args, double); + if (0==strcmp(token,"vz")) + vz = va_arg(args, double); + if (0==strcmp(token,"a")) + a = va_arg(args, double); + if (0==strcmp(token,"P")) + P = va_arg(args, double); + if (0==strcmp(token,"e")) + e = va_arg(args, double); + if (0==strcmp(token,"inc")) + inc = va_arg(args, double); + if (0==strcmp(token,"Omega")) + Omega = va_arg(args, double); + if (0==strcmp(token,"omega")) + omega = va_arg(args, double); + if (0==strcmp(token,"pomega")) + pomega = va_arg(args, double); + if (0==strcmp(token,"f")) + f = va_arg(args, double); + if (0==strcmp(token,"M")) + M = va_arg(args, double); + if (0==strcmp(token,"E")) + E = va_arg(args, double); + if (0==strcmp(token,"l")) + l = va_arg(args, double); + if (0==strcmp(token,"theta")) + theta = va_arg(args, double); + if (0==strcmp(token,"T")) + T = va_arg(args, double); + if (0==strcmp(token,"h")) + h = va_arg(args, double); + if (0==strcmp(token,"k")) + k = va_arg(args, double); + if (0==strcmp(token,"ix")) + ix = va_arg(args, double); + if (0==strcmp(token,"iy")) + iy = va_arg(args, double); + if (0==strcmp(token,"primary")){ + primary = va_arg(args, struct reb_particle); + primary_given = 1; + } + if (0==strcmp(token,"hash")){ + hash = va_arg(args, uint32_t); + } + } + free(fmt_c); + + int Ncart = 0; + if (!isnan(x)) Ncart++; + if (!isnan(y)) Ncart++; + if (!isnan(z)) Ncart++; + if (!isnan(vx)) Ncart++; + if (!isnan(vy)) Ncart++; + if (!isnan(vz)) Ncart++; + + int Norb = 0; + if (primary_given) Norb++; + if (!isnan(a)) Norb++; + if (!isnan(P)) Norb++; + if (!isnan(e)) Norb++; + if (!isnan(inc)) Norb++; + if (!isnan(Omega)) Norb++; + if (!isnan(omega)) Norb++; + if (!isnan(pomega)) Norb++; + if (!isnan(f)) Norb++; + if (!isnan(M)) Norb++; + if (!isnan(E)) Norb++; + if (!isnan(l)) Norb++; + if (!isnan(theta)) Norb++; + if (!isnan(T)) Norb++; + + int Nnonpal = 0; + if (primary_given) Nnonpal++; + if (!isnan(e)) Nnonpal++; + if (!isnan(inc)) Nnonpal++; + if (!isnan(Omega)) Nnonpal++; + if (!isnan(omega)) Nnonpal++; + if (!isnan(pomega)) Nnonpal++; + if (!isnan(f)) Nnonpal++; + if (!isnan(M)) Nnonpal++; + if (!isnan(E)) Nnonpal++; + if (!isnan(theta)) Nnonpal++; + if (!isnan(T)) Nnonpal++; + + int Npal = 0; + if (!isnan(h)) Npal++; + if (!isnan(k)) Npal++; + if (!isnan(ix)) Npal++; + if (!isnan(iy)) Npal++; + + int Nlong = 0; + if (!isnan(f)) Nlong++; + if (!isnan(M)) Nlong++; + if (!isnan(E)) Nlong++; + if (!isnan(l)) Nlong++; + if (!isnan(theta)) Nlong++; + if (!isnan(T)) Nlong++; + + if (Nnonpal>0 && Npal>0){ + *err = 7; // cannot mix pal and orbital elements + return reb_particle_nan(); + } + if (Ncart>0 && Norb>0){ + *err = 8; // cannot mix cartesian and orbital elements + return reb_particle_nan(); + } + + if (Ncart || (!Norb)){ // Cartesian coordinates given, or not coordinates whatsoever + struct reb_particle particle = {0}; + particle.hash = hash; + particle.m = m; + particle.r = radius; + if (!isnan(x)) particle.x = x; // Note: is x is nan, then particle.x is 0 + if (!isnan(y)) particle.y = y; + if (!isnan(z)) particle.z = z; + if (!isnan(vx)) particle.vx = vx; + if (!isnan(vy)) particle.vy = vy; + if (!isnan(vz)) particle.vz = vz; + return particle; + } + + if (r==NULL){ + *err = 9; // need simulation for orbital elements + return reb_particle_nan(); + } + if (!primary_given){ +#ifdef MPI + reb_simulation_error(r, "When using MPI, you need to provide a primary to reb_simulation_add_fmt() when using orbital elements."); + return reb_particle_nan(); +#else // MPI + primary = reb_simulation_com(r); +#endif // MPI + } + // Note: jacobi_masses not yet implemented. + + if (isnan(a) && isnan(P)){ + *err = 10; // can't have a and P + return reb_particle_nan(); + } + if (!isnan(a) && !isnan(P)){ + *err = 11; // need to have a or P + return reb_particle_nan(); + } + if (isnan(a)){ + a = cbrt(P*P*r->G *(primary.m + m)/(4.*M_PI*M_PI)); + } + if (Npal>0){ + if (isnan(l)) l=0; + if (isnan(h)) h=0; + if (isnan(k)) k=0; + if (isnan(ix)) ix=0; + if (isnan(iy)) iy=0; + if ((ix*ix + iy*iy) > 4.0){ + *err = 12; // e too high + return reb_particle_nan(); + } + struct reb_particle particle = reb_particle_from_pal(r->G, primary, m, a, l, k, h, ix, iy); + particle.r = radius; + particle.hash = hash; + return particle; + } + + if (isnan(e)) e = 0.; + if (isnan(inc)) inc = 0.; + if (isnan(Omega)) Omega = 0.; + + if (!isnan(omega) && !isnan(pomega)){ + *err = 13; // Can't pass omega and pomega + return reb_particle_nan(); + } + if (isnan(omega) && isnan(pomega)) omega = 0.; + if (!isnan(pomega)){ + if (cos(inc)>0.){ + omega = pomega - Omega; + }else{ + omega = Omega - pomega; // retrograde orbits + } + } + + if (Nlong>1){ + *err = 14; // only one longitude + return reb_particle_nan(); + } + if (Nlong==0){ + f=0; + } + if (Nlong==1){ + if (!isnan(theta)){ + if (cos(inc)>0.){ + f = theta - Omega - omega; + }else{ + f = Omega - omega - theta; // retrograde + } + } + if (!isnan(l)){ + if (cos(inc)>0.){ + M = l - Omega - omega; // M will be converted to f below + }else{ + M = Omega - omega - l; // retrograde + } + } + if (!isnan(T)){ + double n = sqrt(r->G*(primary.m + m)/fabs(a*a*a)); + M = n * (r->t-T); + } + if (!isnan(M)){ + f = reb_M_to_f(e,M); + } + if (!isnan(E)){ + f = reb_E_to_f(e,E); + } + } + struct reb_particle particle = reb_particle_from_orbit_err(r->G, primary, m, a, e, inc, Omega, omega, f, err); + particle.r = radius; + particle.hash = hash; + return particle; +} + +#define TINY 1.E-308 ///< Close to smallest representable floating point number, used for orbit calculation + +struct reb_particle reb_particle_from_orbit_err(double G, struct reb_particle primary, double m, double a, double e, double inc, double Omega, double omega, double f, int* err){ + if(e == 1.){ + *err = 1; // Can't initialize a radial orbit with orbital elements. + return reb_particle_nan(); + } + if(e < 0.){ + *err = 2; // Eccentricity must be greater than or equal to zero. + return reb_particle_nan(); + } + if(e > 1.){ + if(a > 0.){ + *err = 3; // Bound orbit (a > 0) must have e < 1. + return reb_particle_nan(); + } + } + else{ + if(a < 0.){ + *err =4; // Unbound orbit (a < 0) must have e > 1. + return reb_particle_nan(); + } + } + if(e*cos(f) < -1.){ + *err = 5; // Unbound orbit can't have f set beyond the range allowed by the asymptotes set by the parabola. + return reb_particle_nan(); + } + if(primary.m < TINY){ + *err = 6; // Primary has no mass. + return reb_particle_nan(); + } + + struct reb_particle p = {0}; + p.m = m; + double r = a*(1-e*e)/(1 + e*cos(f)); + double v0 = sqrt(G*(m+primary.m)/a/(1.-e*e)); // in this form it works for elliptical and hyperbolic orbits + + double cO = cos(Omega); + double sO = sin(Omega); + double co = cos(omega); + double so = sin(omega); + double cf = cos(f); + double sf = sin(f); + double ci = cos(inc); + double si = sin(inc); + + // Murray & Dermott Eq 2.122 + p.x = primary.x + r*(cO*(co*cf-so*sf) - sO*(so*cf+co*sf)*ci); + p.y = primary.y + r*(sO*(co*cf-so*sf) + cO*(so*cf+co*sf)*ci); + p.z = primary.z + r*(so*cf+co*sf)*si; + + // Murray & Dermott Eq. 2.36 after applying the 3 rotation matrices from Sec. 2.8 to the velocities in the orbital plane + p.vx = primary.vx + v0*((e+cf)*(-ci*co*sO - cO*so) - sf*(co*cO - ci*so*sO)); + p.vy = primary.vy + v0*((e+cf)*(ci*co*cO - sO*so) - sf*(co*sO + ci*so*cO)); + p.vz = primary.vz + v0*((e+cf)*co*si - sf*si*so); + + p.ax = 0; p.ay = 0; p.az = 0; + + return p; +} + +struct reb_particle reb_particle_from_orbit(double G, struct reb_particle primary, double m, double a, double e, double inc, double Omega, double omega, double f){ + int err; + return reb_particle_from_orbit_err(G, primary, m, a, e, inc, Omega, omega, f, &err); +} + +struct reb_orbit reb_orbit_nan(void){ + struct reb_orbit o; + o.d = nan(""); + o.v = nan(""); + o.h = nan(""); + o.P = nan(""); + o.n = nan(""); + o.a = nan(""); + o.e = nan(""); + o.inc = nan(""); + o.Omega = nan(""); + o.omega = nan(""); + o.pomega = nan(""); + o.f = nan(""); + o.M = nan(""); + o.l = nan(""); + o.theta = nan(""); + o.T = nan(""); + o.rhill = nan(""); + + return o; +} + +#define MIN_REL_ERROR 1.0e-12 ///< Close to smallest relative floating point number, used for orbit calculation +#define MIN_INC 1.e-8 ///< Below this inclination, the broken angles pomega and theta equal the corresponding + ///< unbroken angles to within machine precision, so a practical boundary for planar orbits + // +#define MIN_ECC 1.e-8 ///< Below this eccentricity, corrections at order e^2 are below machine precision, so we use + ///< stable expressions accurate to O(e) for the mean longitude below for near-circular orbits. + // returns acos(num/denom), using disambiguator to tell which quadrant to return. + // will return 0 or pi appropriately if num is larger than denom by machine precision + // and will return 0 if denom is exactly 0. + + + + // Calculates right quadrant for acos(num/denom) using a disambiguator that is < 0 when acos in the range (0, -pi) +static double acos2(double num, double denom, double disambiguator){ + double val; + double cosine = num/denom; + if(cosine > -1. && cosine < 1.){ + val = acos(cosine); + if(disambiguator < 0.){ + val = - val; + } + } + else{ + val = (cosine <= -1.) ? M_PI : 0.; + } + return val; +} + +struct reb_orbit reb_orbit_from_particle_err(double G, struct reb_particle p, struct reb_particle primary, int* err){ + struct reb_orbit o; + if (primary.m <= TINY){ + *err = 1; // primary has no mass. + return reb_orbit_nan(); + } + double mu,dx,dy,dz,dvx,dvy,dvz,vsquared,vcircsquared,vdiffsquared; + double hx,hy,hz,vr,rvr,muinv,ex,ey,ez,nx,ny,n,ea; + mu = G*(p.m+primary.m); + dx = p.x - primary.x; + dy = p.y - primary.y; + dz = p.z - primary.z; + dvx = p.vx - primary.vx; + dvy = p.vy - primary.vy; + dvz = p.vz - primary.vz; + o.d = sqrt ( dx*dx + dy*dy + dz*dz ); + + vsquared = dvx*dvx + dvy*dvy + dvz*dvz; + o.v = sqrt(vsquared); + vcircsquared = mu/o.d; + o.a = -mu/( vsquared - 2.*vcircsquared ); // semi major axis + + o.rhill = o.a*cbrt(p.m/(3.*primary.m)); + + hx = (dy*dvz - dz*dvy); // specific angular momentum vector + hy = (dz*dvx - dx*dvz); + hz = (dx*dvy - dy*dvx); + o.h = sqrt ( hx*hx + hy*hy + hz*hz ); // abs value of angular momentum + o.hvec.x = hx; + o.hvec.y = hy; + o.hvec.z = hz; + + vdiffsquared = vsquared - vcircsquared; + if(o.d <= TINY){ + *err = 2; // particle is on top of primary + return reb_orbit_nan(); + } + vr = (dx*dvx + dy*dvy + dz*dvz)/o.d; + rvr = o.d*vr; + muinv = 1./mu; + + ex = muinv*( vdiffsquared*dx - rvr*dvx ); + ey = muinv*( vdiffsquared*dy - rvr*dvy ); + ez = muinv*( vdiffsquared*dz - rvr*dvz ); + o.e = sqrt( ex*ex + ey*ey + ez*ez ); // eccentricity + o.evec.x = ex; + o.evec.y = ey; + o.evec.z = ez; + o.n = o.a/fabs(o.a)*sqrt(fabs(mu/(o.a*o.a*o.a))); // mean motion (negative if hyperbolic) + o.P = 2*M_PI/o.n; // period (negative if hyperbolic) + + o.inc = acos2(hz, o.h, 1.); // cosi = dot product of h and z unit vectors. Always in [0,pi], so pass dummy disambiguator + // will = 0 if h is 0. + + nx = -hy; // vector pointing along the ascending node = zhat cross h + ny = hx; + n = sqrt( nx*nx + ny*ny ); + + // Omega, pomega and theta are measured from x axis, so we can always use y component to disambiguate if in the range [0,pi] or [pi,2pi] + o.Omega = acos2(nx, n, ny); // cos Omega is dot product of x and n unit vectors. Will = 0 if i=0. + + if(o.e < 1.){ + ea = acos2(1.-o.d/o.a, o.e, vr);// from definition of eccentric anomaly. If vr < 0, must be going from apo to peri, so ea = [pi, 2pi] so ea = -acos(cosea) + o.M = ea - o.e*sin(ea); // mean anomaly (Kepler's equation) + } + else{ + ea = acosh((1.-o.d/o.a)/o.e); + if(vr < 0.){ // Approaching pericenter, so eccentric anomaly < 0. + ea = -ea; + } + o.M = o.e*sinh(ea) - ea; // Hyperbolic Kepler's equation + } + + // in the near-planar case, the true longitude is always well defined for the position, and pomega for the pericenter if e!= 0 + // we therefore calculate those and calculate the remaining angles from them + if(o.inc < MIN_INC || o.inc > M_PI - MIN_INC){ // nearly planar. Use longitudes rather than angles referenced to node for numerical stability. + o.theta = acos2(dx, o.d, dy); // cos theta is dot product of x and r vectors (true longitude). + o.pomega = acos2(ex, o.e, ey); // cos pomega is dot product of x and e unit vectors. Will = 0 if e=0. + + if(o.inc < M_PI/2.){ + o.omega = o.pomega - o.Omega; + o.f = o.theta - o.pomega; + if(o.e > MIN_ECC){ // pomega well defined + o.l = o.pomega + o.M; + } + else{ // when e << 1 and pomega ill defined, use l = theta+(M-f). M-f is O(e) so well behaved + o.l = o.theta - 2.*o.e*sin(o.f); // M-f from Murray & Dermott Eq 2.93. This way l->theta smoothly as e->0 + } + } + else{ + o.omega = o.Omega - o.pomega; + o.f = o.pomega - o.theta; + if(o.e > MIN_ECC){ // pomega well defined + o.l = o.pomega - o.M; + } + else{ // when e << 1 and pomega ill defined, use l = theta+(M-f). M-f is O(e) so well behaved + o.l = o.theta + 2.*o.e*sin(o.f); // M-f from Murray & Dermott Eq 2.93 (retrograde changes sign). This way l->theta smoothly as e->0 + } + } + + } + // in the non-planar case, we can't calculate the broken angles from vectors like above. omega+f is always well defined, and omega if e!=0 + else{ + double wpf = acos2(nx*dx + ny*dy, n*o.d, dz); // omega plus f. Both angles measured in orbital plane, and always well defined for i!=0. + o.omega = acos2(nx*ex + ny*ey, n*o.e, ez); + if(o.inc < M_PI/2.){ + o.pomega = o.Omega + o.omega; + o.f = wpf - o.omega; + o.theta = o.Omega + wpf; + if(o.e > MIN_ECC){ // pomega well defined + o.l = o.pomega + o.M; + } + else{ // when e << 1 and pomega ill defined, use l = theta+(M-f). M-f is O(e) so well behaved + o.l = o.theta - 2.*o.e*sin(o.f); // M-f from Murray & Dermott Eq 2.93. This way l->theta smoothly as e->0 + } + } + else{ + o.pomega = o.Omega - o.omega; + o.f = wpf - o.omega; + o.theta = o.Omega - wpf; + if(o.e > MIN_ECC){ // pomega well defined + o.l = o.pomega - o.M; + } + else{ // when e << 1 and pomega ill defined, use l = theta+(M-f). M-f is O(e) so well behaved + o.l = o.theta + 2.*o.e*sin(o.f); // M-f from Murray & Dermott Eq 2.93 (retrograde changes sign). This way l->theta smoothly as e->0 + } + } + } + + double t0 = 0.0; + if (p.sim != NULL){ // if particle isn't in simulation yet, can't get time. + t0 = p.sim->t; + } + o.T = t0 - o.M/fabs(o.n); // time of pericenter passage (M = n(t-T). Works for hyperbolic orbits using fabs and n as defined above). + + // move some of the angles into [0,2pi) range + o.f = reb_mod2pi(o.f); + o.l = reb_mod2pi(o.l); + o.M = reb_mod2pi(o.M); + o.theta = reb_mod2pi(o.theta); + o.omega = reb_mod2pi(o.omega); + + + // Cartesian eccentricity and inclination components, see Pal (2009) + double fac = sqrt(2./(1.+hz/o.h))/o.h; + o.pal_ix = -fac * hy; + o.pal_iy = fac * hx; + o.pal_k = o.h/mu*(dvy-dvz/(o.h+hz)*hy)-1./o.d*(dx-dz/(o.h+hz)*hx); + o.pal_h = o.h/mu*(-dvx+dvz/(o.h+hz)*hx)-1./o.d*(dy-dz/(o.h+hz)*hy); + return o; +} + + +struct reb_orbit reb_orbit_from_particle(double G, struct reb_particle p, struct reb_particle primary){ + int err; + return reb_orbit_from_particle_err(G, p, primary, &err); +} + + +void reb_tools_solve_kepler_pal(double h, double k, double lambda, double* p, double* q){ + double e2 = h*h + k*k; + if (e2<0.3*0.3){ // low e case + double pn = 0; + double qn = 0; + + int n=0; + double f=0.; + do{ + double f0 = qn*cos(pn)+pn*sin(pn)-(k*cos(lambda)+h*sin(lambda)); + double f1 = -qn*sin(pn)+pn*cos(pn)-(k*sin(lambda)-h*cos(lambda)); + + double fac = 1./(qn-1.); + double fd00 = fac*(qn*cos(pn)-cos(pn)+pn*sin(pn)); + double fd01 = fac*(pn*cos(pn)-qn*sin(pn)+sin(pn)); + double fd10 = fac*(-sin(pn)); + double fd11 = fac*(-cos(pn)); + + qn -= fd00*f0+fd10*f1; + pn -= fd01*f0+fd11*f1; + f = sqrt(f0*f0+f1*f1); + }while(n++<50 && f>1e-15); + *p = pn; + *q = qn; + }else{ // high e case + double pomega = atan2(h,k); + double M = lambda-pomega; + double e = sqrt(e2); + double E = reb_M_to_E(e, M); + *p = e*sin(E); + *q = e*cos(E); + } +} + +void reb_tools_particle_to_pal(double G, struct reb_particle p, struct reb_particle primary, double *a, double* lambda, double* k, double* h, double* ix, double* iy){ + double x = p.x - primary.x; + double y = p.y - primary.y; + double z = p.z - primary.z; + double vx = p.vx - primary.vx; + double vy = p.vy - primary.vy; + double vz = p.vz - primary.vz; + double mu = G*(p.m+primary.m); + double r2 = x*x + y*y + z*z; + double r = sqrt(r2); + double cx = y*vz - z*vy; + double cy = z*vx - x*vz; + double cz = x*vy - y*vx; + double c2 = cx*cx + cy*cy + cz*cz; + double c = sqrt(c2); + double chat = x*vx + y*vy + z*vz; + + double fac = sqrt(2./(1.+cz/c))/c; + *ix = -fac * cy; + *iy = fac * cx; + *k = c/mu*(vy-vz/(c+cz)*cy)-1./r*(x-z/(c+cz)*cx); + *h = c/mu*(-vx+vz/(c+cz)*cx)-1./r*(y-z/(c+cz)*cy); + double e2 = (*k)*(*k)+(*h)*(*h); + *a = c2/(mu*(1.-e2)); + double l = 1.-sqrt(1.-e2); + *lambda = atan2(-r*vx+r*vz*cx/(c+cz)-(*k)*chat/(2.-l), r*vy-r*vz*cy/(c+cz)+(*h)*chat/(2.-l))-chat/c*(1.-l); +} + +struct reb_particle reb_particle_from_pal(double G, struct reb_particle primary, double m, double a, double lambda, double k, double h, double ix, double iy){ + struct reb_particle np = {0}; + np.m = m; + + double p=0.,q=0.; + reb_tools_solve_kepler_pal(h, k, lambda, &p, &q); + + double slp = sin(lambda+p); + double clp = cos(lambda+p); + + double l = 1.-sqrt(1.-h*h-k*k); + double xi = a*(clp + p/(2.-l)*h -k); + double eta = a*(slp - p/(2.-l)*k -h); + + double iz = sqrt(fabs(4.-ix*ix-iy*iy)); + double W = eta*ix-xi*iy; + + np.x = primary.x + xi+0.5*iy*W; + np.y = primary.y + eta-0.5*ix*W; + np.z = primary.z + 0.5*iz*W; + + double an = sqrt(G*(m+primary.m)/a); + double dxi = an/(1.-q)*(-slp+q/(2.-l)*h); + double deta = an/(1.-q)*(+clp-q/(2.-l)*k); + double dW = deta*ix-dxi*iy; + + np.vx = primary.vx + dxi+0.5*iy*dW; + np.vy = primary.vy + deta-0.5*ix*dW; + np.vz = primary.vz + 0.5*iz*dW; + + + return np; +} + +/*********************************** + * Variational Equations and Megno */ + +void reb_simulation_rescale_var(struct reb_simulation* const r){ + // This function rescales variational particles if a coordinate + // approached floating point limits (>1e100) + if (r->N_var_config==0){ + return; + } + + for (int v=0;vN_var_config;v++){ + struct reb_variational_configuration* vc = &(r->var_config[v]); + + if (vc->lrescale <0 ) continue; // Skip rescaling if lrescale set to -1 + + int N = 1; + if (vc->testparticle<0){ + N = r->N - r->N_var; + } + double scale = 0; + struct reb_particle* const particles = r->particles + vc->index; + for (int i=0; i 1e100){ + + if (vc->order == 1){ + for (int w=0;wN_var_config;w++){ + struct reb_variational_configuration* wc = &(r->var_config[w]); + if (wc->order == 2 && (wc->index_1st_order_a == vc->index || wc->index_1st_order_b == vc->index)){ + if (!(r->var_rescale_warning & 4)){ + r->var_rescale_warning |= 4; + reb_simulation_warning(r, "Rescaling a set of variational equations of order 1 which are being used by a set of variational equations of order 2. Order 2 equations will no longer be valid."); + } + } + } + }else{ // order 2 + if (!(r->var_rescale_warning & 2)){ + r->var_rescale_warning |= 2; + reb_simulation_warning(r, "Variational particles which are part of a second order variational equation have now large coordinates which might exceed range of floating point number range. REBOUND cannot rescale a second order variational equation as it is non-linear."); + } + return; + } + + + int is_synchronized = 1; + if (r->integrator == REB_INTEGRATOR_WHFAST && r->ri_whfast.is_synchronized == 0){ + is_synchronized = 0; + } + if (r->integrator == REB_INTEGRATOR_EOS && r->ri_eos.is_synchronized == 0){ + is_synchronized = 0; + } + if (is_synchronized == 0){ + if (!(r->var_rescale_warning & 1)){ + r->var_rescale_warning |= 1; + reb_simulation_warning(r, "Variational particles have large coordinates which might exceed range of floating point numbers. Rescaling failed because integrator was not synchronized. Turn on safe_mode or manually synchronize and rescale."); + } + return; + } + + vc->lrescale += log(scale); + for (int i=0; iintegrator == REB_INTEGRATOR_WHFAST && r->ri_whfast.safe_mode == 0){ + r->ri_whfast.recalculate_coordinates_this_timestep = 1; + } + } + } +} + + +int reb_simulation_add_variation_1st_order(struct reb_simulation* const r, int testparticle){ + r->N_var_config++; + r->var_config = realloc(r->var_config,sizeof(struct reb_variational_configuration)*r->N_var_config); + r->var_config[r->N_var_config-1].sim = r; + r->var_config[r->N_var_config-1].order = 1; + int index = r->N; + r->var_config[r->N_var_config-1].index = index; + r->var_config[r->N_var_config-1].lrescale = 0; + r->var_config[r->N_var_config-1].testparticle = testparticle; + struct reb_particle p0 = {0}; + if (testparticle>=0){ + reb_simulation_add(r,p0); + r->N_var++; + }else{ + int N_real = r->N - r->N_var; + for (int i=0;iN_var += N_real; + } + return index; +} + + +int reb_simulation_add_variation_2nd_order(struct reb_simulation* const r, int testparticle, int index_1st_order_a, int index_1st_order_b){ + r->N_var_config++; + r->var_config = realloc(r->var_config,sizeof(struct reb_variational_configuration)*r->N_var_config); + r->var_config[r->N_var_config-1].sim = r; + r->var_config[r->N_var_config-1].order = 2; + int index = r->N; + r->var_config[r->N_var_config-1].index = index; + r->var_config[r->N_var_config-1].lrescale = 0; + r->var_config[r->N_var_config-1].testparticle = testparticle; + r->var_config[r->N_var_config-1].index_1st_order_a = index_1st_order_a; + r->var_config[r->N_var_config-1].index_1st_order_b = index_1st_order_b; + struct reb_particle p0 = {0}; + if (testparticle>=0){ + reb_simulation_add(r,p0); + r->N_var++; + }else{ + int N_real = r->N - r->N_var; + for (int i=0;iN_var += N_real; + } + return index; +} + +void reb_simulation_init_megno_seed(struct reb_simulation* const r, unsigned int seed){ + r->rand_seed = seed; + reb_simulation_init_megno(r); +} + +void reb_simulation_init_megno(struct reb_simulation* const r){ + r->megno_Ys = 0.; + r->megno_Yss = 0.; + r->megno_cov_Yt = 0.; + r->megno_var_t = 0.; + r->megno_n = 0; + r->megno_mean_Y = 0; + r->megno_initial_t = r->t; + r->megno_mean_t = 0; + int i = reb_simulation_add_variation_1st_order(r,-1); + r->calculate_megno = i; + const int imax = i + (r->N-r->N_var); + struct reb_particle* const particles = r->particles; + for (;i + if (r->t==r->megno_initial_t) return 0.; + return r->megno_Yss/(r->t-r->megno_initial_t); +} +double reb_simulation_lyapunov(struct reb_simulation* r){ + // Returns the largest Lyapunov characteristic number (LCN) + // Note that different definitions exist. + // Here, we're following Eq 24 of Cincotta and Simo (2000) + // https://aas.aanda.org/articles/aas/abs/2000/20/h1686/h1686.html + if (r->megno_var_t==0.0) return 0.; + return r->megno_cov_Yt/r->megno_var_t; +} +double reb_tools_megno_deltad_delta(struct reb_simulation* const r){ + const struct reb_particle* restrict const particles = r->particles; + double deltad = 0; + double delta2 = 0; + int i = r->calculate_megno; + const int imax = i + (r->N-r->N_var); + for (;imegno_Ys += dY; + double Y = r->megno_Ys/(r->t-r->megno_initial_t); + // Calculate averge + r->megno_Yss += Y * dt_done; + // Update covariance of (Y,t) and variance of t + r->megno_n++; + double _d_t = r->t - r->megno_initial_t - r->megno_mean_t; + r->megno_mean_t += _d_t/(double)r->megno_n; + double _d_Y = reb_simulation_megno(r) - r->megno_mean_Y; + r->megno_mean_Y += _d_Y/(double)r->megno_n; + r->megno_cov_Yt += ((double)r->megno_n-1.)/(double)r->megno_n + *(r->t - r->megno_initial_t - r->megno_mean_t) + *(reb_simulation_megno(r)-r->megno_mean_Y); + r->megno_var_t += ((double)r->megno_n-1.)/(double)r->megno_n + *(r->t - r->megno_initial_t - r->megno_mean_t) + *(r->t - r->megno_initial_t - r->megno_mean_t); +} + +#define ROT32(x, y) ((x << y) | (x >> (32 - y))) // avoid effort +static uint32_t reb_murmur3_32(const char *key, uint32_t len, uint32_t seed) { + // Source: Wikipedia + static const uint32_t c1 = 0xcc9e2d51; + static const uint32_t c2 = 0x1b873593; + static const uint32_t r1 = 15; + static const uint32_t r2 = 13; + static const uint32_t m = 5; + static const uint32_t n = 0xe6546b64; + + uint32_t hash = seed; + + const int nblocks = len / 4; + const uint32_t *blocks = (const uint32_t *) key; + int i; + uint32_t k; + for (i = 0; i < nblocks; i++) { + k = blocks[i]; + k *= c1; + k = ROT32(k, r1); + k *= c2; + + hash ^= k; + hash = ROT32(hash, r2) * m + n; + } + + const uint8_t *tail = (const uint8_t *) (key + nblocks * 4); + uint32_t k1 = 0; + + switch (len & 3) { + case 3: + k1 ^= tail[2] << 16; + case 2: + k1 ^= tail[1] << 8; + case 1: + k1 ^= tail[0]; + + k1 *= c1; + k1 = ROT32(k1, r1); + k1 *= c2; + hash ^= k1; + } + + hash ^= len; + hash ^= (hash >> 16); + hash *= 0x85ebca6b; + hash ^= (hash >> 13); + hash *= 0xc2b2ae35; + hash ^= (hash >> 16); + + return hash; +} + +uint32_t reb_hash(const char* str){ + const int reb_seed = 1983; + return reb_murmur3_32(str,(uint32_t)strlen(str),reb_seed); +} + +void reb_simulation_imul(struct reb_simulation* r, double scalar_pos, double scalar_vel){ + const int N = r->N; + struct reb_particle* restrict const particles = r->particles; + for (int i=0;iN; + const int N2 = r2->N; + if (N!=N2) return -1; + struct reb_particle* restrict const particles = r->particles; + const struct reb_particle* restrict const particles2 = r2->particles; + for (int i=0;iN; + const int N2 = r2->N; + if (N!=N2) return -1; + struct reb_particle* restrict const particles = r->particles; + const struct reb_particle* restrict const particles2 = r2->particles; + for (int i=0;i + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#ifndef TOOLS_H +#define TOOLS_H + +#include + +struct reb_simulation; +struct reb_particles; + +/** + * @brief Returns deltad/delta + * @details Note, there is a typo in Gozdziewski et al 2001. + * @param r REBOUND simulation to be considered. + */ +double reb_tools_megno_deltad_delta(struct reb_simulation* const r); + +/** + * @brief Update MEGNO after a successful timestep by adding dY (=ddelta/delta*dt_done) + * @param r REBOUND simulation to be considered. + * @param dY Increment for MEGNO Y + */ +void reb_tools_megno_update(struct reb_simulation* r, double dY, double dt_done); + +/** + * @brief Init random number generator based on time and process id. + */ +unsigned int reb_tools_get_rand_seed(); + +/** + * @brief Convert angles for orbit routines + */ +double reb_M_to_E(double e, double M); + +/** + * @brief Convert angles for orbit routines + */ +double reb_M_to_f(double e, double M); + +/** + * @brief Convert angles for orbit routines + */ +double reb_E_to_f(double e, double M); + +/** + * @brief Kepler solver in Pal coordinates + */ +void reb_tools_solve_kepler_pal(double h, double k, double lambda, double* p, double* q); + +/** + * @brief Convert particle to Pal coordinates + */ +void reb_tools_particle_to_pal(double G, struct reb_particle p, struct reb_particle primary, double *a, double* lambda, double* k, double* h, double* ix, double* iy); + +/** + * @brief internal function to handle outputs for the Fast Simulation Restarter. + */ +void reb_fsr_heartbeat(struct reb_simulation* const r); +#endif // TOOLS_H diff --git a/rebound/source/src/transformations.c b/rebound/source/src/transformations.c new file mode 100644 index 0000000000000000000000000000000000000000..faf8d8f71f2633fa7b0245e15958f6470b255e73 --- /dev/null +++ b/rebound/source/src/transformations.c @@ -0,0 +1,644 @@ +/** + * @file transformations.c + * @brief Transformations back and forth between different coordinate systems. + * @author Hanno Rein + * @details This file collects all the transformations used by the different integrators + * between different coordinate systems. + * + * @section LICENSE + * Copyright (c) 2017 Hanno Rein, Dan Tamayo. + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#include "transformations.h" +#include "rebound.h" + +/****************************** + * Jacobi */ + +void reb_particles_transform_inertial_to_jacobi_posvel(const struct reb_particle* const particles, struct reb_particle* const p_j, const struct reb_particle* const p_mass, const unsigned int N, const unsigned int N_active){ + double eta = p_mass[0].m; + double s_x = eta * particles[0].x; + double s_y = eta * particles[0].y; + double s_z = eta * particles[0].z; + double s_vx = eta * particles[0].vx; + double s_vy = eta * particles[0].vy; + double s_vz = eta * particles[0].vz; + for (unsigned int i=1;i=N_active;i--){ + const struct reb_particle pji = p_j[i]; + const double ei = 1./eta; + particles[i].x = pji.x + s_x * ei; + particles[i].y = pji.y + s_y * ei; + particles[i].z = pji.z + s_z * ei; + particles[i].vx = pji.vx + s_vx * ei; + particles[i].vy = pji.vy + s_vy * ei; + particles[i].vz = pji.vz + s_vz * ei; + } + for (unsigned int i=N_active-1;i>0;i--){ + const struct reb_particle pji = p_j[i]; + const double ei = 1./eta; + s_x = (s_x - p_mass[i].m * pji.x ) * ei; + s_y = (s_y - p_mass[i].m * pji.y ) * ei; + s_z = (s_z - p_mass[i].m * pji.z ) * ei; + s_vx = (s_vx - p_mass[i].m * pji.vx) * ei; + s_vy = (s_vy - p_mass[i].m * pji.vy) * ei; + s_vz = (s_vz - p_mass[i].m * pji.vz) * ei; + particles[i].x = pji.x + s_x ; + particles[i].y = pji.y + s_y ; + particles[i].z = pji.z + s_z ; + particles[i].vx = pji.vx + s_vx; + particles[i].vy = pji.vy + s_vy; + particles[i].vz = pji.vz + s_vz; + eta -= p_mass[i].m; + s_x *= eta; + s_y *= eta; + s_z *= eta; + s_vx *= eta; + s_vy *= eta; + s_vz *= eta; + } + const double mi = 1./eta; + particles[0].x = s_x * mi; + particles[0].y = s_y * mi; + particles[0].z = s_z * mi; + particles[0].vx = s_vx * mi; + particles[0].vy = s_vy * mi; + particles[0].vz = s_vz * mi; +} + +void reb_particles_transform_jacobi_to_inertial_pos(struct reb_particle* const particles, const struct reb_particle* const p_j, const struct reb_particle* const p_mass, const unsigned int N, const unsigned int N_active){ + double eta = p_j[0].m; + double s_x = p_j[0].x * eta; + double s_y = p_j[0].y * eta; + double s_z = p_j[0].z * eta; + for (unsigned int i=N-1;i>=N_active;i--){ + const struct reb_particle pji = p_j[i]; + const double ei = 1./eta; + particles[i].x = pji.x + s_x*ei ; + particles[i].y = pji.y + s_y*ei ; + particles[i].z = pji.z + s_z*ei ; + } + for (unsigned int i=N_active-1;i>0;i--){ + const struct reb_particle pji = p_j[i]; + const double ei = 1./eta; + s_x = (s_x - p_mass[i].m * pji.x ) * ei; + s_y = (s_y - p_mass[i].m * pji.y ) * ei; + s_z = (s_z - p_mass[i].m * pji.z ) * ei; + particles[i].x = pji.x + s_x ; + particles[i].y = pji.y + s_y ; + particles[i].z = pji.z + s_z ; + eta -= p_mass[i].m; + s_x *= eta; + s_y *= eta; + s_z *= eta; + } + const double mi = 1./eta; + particles[0].x = s_x * mi; + particles[0].y = s_y * mi; + particles[0].z = s_z * mi; +} + +void reb_particles_transform_jacobi_to_inertial_acc(struct reb_particle* const particles, const struct reb_particle* const p_j, const struct reb_particle* const p_mass, const unsigned int N, const unsigned int N_active){ + double eta = p_j[0].m; + double s_ax = p_j[0].ax * eta; + double s_ay = p_j[0].ay * eta; + double s_az = p_j[0].az * eta; + for (unsigned int i=N-1;i>=N_active;i--){ + const struct reb_particle pji = p_j[i]; + const double ei = 1./eta; + particles[i].ax = pji.ax + s_ax * ei; + particles[i].ay = pji.ay + s_ay * ei; + particles[i].az = pji.az + s_az * ei; + } + for (unsigned int i=N_active-1;i>0;i--){ + const struct reb_particle pji = p_j[i]; + const double ei = 1./eta; + s_ax = (s_ax - p_mass[i].m * pji.ax ) * ei; + s_ay = (s_ay - p_mass[i].m * pji.ay ) * ei; + s_az = (s_az - p_mass[i].m * pji.az ) * ei; + particles[i].ax = pji.ax + s_ax ; + particles[i].ay = pji.ay + s_ay ; + particles[i].az = pji.az + s_az ; + eta -= p_mass[i].m; + s_ax *= eta; + s_ay *= eta; + s_az *= eta; + } + const double mi = 1./eta; + particles[0].ax = s_ax * mi; + particles[0].ay = s_ay * mi; + particles[0].az = s_az * mi; +} + +/****************************** + * WHDS (Hernandez) */ + +void reb_particles_transform_inertial_to_whds_posvel(const struct reb_particle* const particles, struct reb_particle* const p_h, const unsigned int N, const unsigned int N_active){ + double x0 = 0.; + double y0 = 0.; + double z0 = 0.; + double vx0 = 0.; + double vy0 = 0.; + double vz0 = 0.; + double m0 = 0.; +#pragma omp parallel for reduction(+:x0) reduction(+:y0) reduction(+:z0) reduction(+:vx0) reduction(+:vy0) reduction(+:vz0) reduction(+:m0) + for (unsigned int i=0;i + * + * @section LICENSE + * Copyright (c) 2017 Hanno Rein, Dan Tamayo. + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#ifndef _TRANFORMATIONS_H +#define _TRANFORMATIONS_H + +#endif diff --git a/rebound/source/src/tree.c b/rebound/source/src/tree.c new file mode 100644 index 0000000000000000000000000000000000000000..3294f912efcdb003ca3d966077ab51584f33c627 --- /dev/null +++ b/rebound/source/src/tree.c @@ -0,0 +1,423 @@ +/** + * @file tree.c + * @brief Tree routine, initializing and updating trees. + * @author Shangfei Liu + * @author Hanno Rein + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ +#include +#include +#include "particle.h" +#include "rebound.h" +#include "boundary.h" +#include "tree.h" +#ifdef MPI +#include "communication_mpi.h" +#endif // MPI + + +/** + * @brief Given a particle and a pointer to a node cell, the function returns the index of the octant which the particle belongs to. + * @param p The particles for which the octant is calculated + * @param node is the pointer to a node cell. + * @return Octant of subcell + */ +static int reb_reb_tree_get_octant_for_particle_in_cell(const struct reb_particle p, struct reb_treecell *node); + +/** + * @brief This function adds a particle to the octant[o] of a node. + * + * @details If node is NULL, the function allocate memory for it and calculate its geometric properties. + * As a leaf node, node->pt = pt. + * + * If node already exists, the function calls itself recursively until reach a leaf node. + * The leaf node would be divided into eight octants, then it puts the leaf-node hosting particle + * and the new particle into these octants. + * @param r REBOUND simulation to operate on + * @param node is the pointer to a node cell + * @param pt is the index of a particle. + * @param parent is the pointer to the parent cell of node. if node is a root, then parent + * is set to be NULL. + * @param o is the index of the octant of the node which particles[pt] belongs to. + */ +static struct reb_treecell *reb_tree_add_particle_to_cell(struct reb_simulation* const r, struct reb_treecell *node, int pt, struct reb_treecell *parent, int o); + +void reb_tree_add_particle_to_tree(struct reb_simulation* const r, int pt){ + if (r->tree_root==NULL){ + r->tree_root = calloc(r->N_root_x*r->N_root_y*r->N_root_z,sizeof(struct reb_treecell*)); + } + struct reb_particle p = r->particles[pt]; + if (!isfinite(p.x) || !isfinite(p.y) || !isfinite(p.z)){ + reb_simulation_error(r, "Particle has non-finite coordinates. Cannot add to tree."); + return; + } + int rootbox = reb_get_rootbox_for_particle(r, p); +#ifdef MPI + // Do not add particles that do not belong to this tree (avoid removing active particles) + int N_root_per_node = r->N_root/r->mpi_num; + int proc_id = rootbox/N_root_per_node; + if (proc_id!=r->mpi_id) return; +#endif // MPI + r->tree_root[rootbox] = reb_tree_add_particle_to_cell(r, r->tree_root[rootbox],pt,NULL,0); +} + +static struct reb_treecell *reb_tree_add_particle_to_cell(struct reb_simulation* const r, struct reb_treecell *node, int pt, struct reb_treecell *parent, int o){ + struct reb_particle* const particles = r->particles; + // Initialize a new node + if (node == NULL) { + node = calloc(1, sizeof(struct reb_treecell)); + struct reb_particle p = particles[pt]; + if (parent == NULL){ // The new node is a root + node->w = r->root_size; + int i = ((int)floor((p.x + r->boxsize.x/2.)/r->root_size))%r->N_root_x; + int j = ((int)floor((p.y + r->boxsize.y/2.)/r->root_size))%r->N_root_y; + int k = ((int)floor((p.z + r->boxsize.z/2.)/r->root_size))%r->N_root_z; + node->x = -r->boxsize.x/2.+r->root_size*(0.5+(double)i); + node->y = -r->boxsize.y/2.+r->root_size*(0.5+(double)j); + node->z = -r->boxsize.z/2.+r->root_size*(0.5+(double)k); + }else{ // The new node is a normal node + node->w = parent->w/2.; + node->x = parent->x + node->w/2.*((o>>0)%2==0?1.:-1); + node->y = parent->y + node->w/2.*((o>>1)%2==0?1.:-1); + node->z = parent->z + node->w/2.*((o>>2)%2==0?1.:-1); + } + for (int i=0; i<8; i++){ + node->oct[i] = NULL; + } + if (node->w<=0.0){ + reb_simulation_error(r, "Tree cell has size zero."); + free(node); + return NULL; + } + node->pt = pt; + particles[pt].c = node; + return node; + } + // In a existing node + if (node->pt >= 0) { // It's a leaf node + int o1 = reb_reb_tree_get_octant_for_particle_in_cell(particles[node->pt], node); + int o2 = reb_reb_tree_get_octant_for_particle_in_cell(particles[pt], node); + if (o1==o2){ // If they fall in the same octant, check if they have same coordinates to avoid infinite recursion + if (particles[pt].x == particles[node->pt].x && particles[pt].y == particles[node->pt].y && particles[pt].z == particles[node->pt].z){ + reb_simulation_error(r, "Cannot add two particles with the same coordinates to the tree."); + return node; + } + } + node->oct[o1] = reb_tree_add_particle_to_cell(r, node->oct[o1], node->pt, node, o1); + node->oct[o2] = reb_tree_add_particle_to_cell(r, node->oct[o2], pt, node, o2); + node->pt = -2; + }else{ // It's not a leaf + node->pt--; + int o = reb_reb_tree_get_octant_for_particle_in_cell(particles[pt], node); + node->oct[o] = reb_tree_add_particle_to_cell(r, node->oct[o], pt, node, o); + } + return node; +} + +static int reb_reb_tree_get_octant_for_particle_in_cell(const struct reb_particle p, struct reb_treecell *node){ + int octant = 0; + if (p.x < node->x) octant+=1; + if (p.y < node->y) octant+=2; + if (p.z < node->z) octant+=4; + return octant; +} + +/** + * @brief The function tests whether the particle is still within the cubic cell box. If the particle has moved outside the box, it returns 0. Otherwise, it returns 1. + * + * @param r REBOUND simulation to operate on + * @param node is the pointer to a node cell + * @return 0 is particle is not in cell, 1 if it is. + */ +static int reb_tree_particle_is_inside_cell(const struct reb_simulation* const r, struct reb_treecell *node){ + if (fabs(r->particles[node->pt].x-node->x) > node->w/2. || + fabs(r->particles[node->pt].y-node->y) > node->w/2. || + fabs(r->particles[node->pt].z-node->z) > node->w/2. || + isnan(r->particles[node->pt].y)) { + return 0; + } + return 1; +} + +/** + * @brief The function is called to walk through the whole tree to update its structure and node->pt at the end of each time step. + * + * @param r REBOUND simulation to operate on + * @param node is the pointer to a node cell + */ +static struct reb_treecell *reb_simulation_update_tree_cell(struct reb_simulation* const r, struct reb_treecell *node){ + int test = -1; /**< A temporary int variable is used to store the index of an octant when it needs to be freed. */ + if (node == NULL) { + return NULL; + } + // Non-leaf nodes + if (node->pt < 0) { + for (int o=0; o<8; o++) { + node->oct[o] = reb_simulation_update_tree_cell(r, node->oct[o]); + } + node->pt = 0; + for (int o=0; o<8; o++) { + struct reb_treecell *d = node->oct[o]; + if (d != NULL) { + // Update node->pt + if (d->pt >= 0) { // The child is a leaf + node->pt--; + test = o; + }else{ // The child cell contains several particles + node->pt += d->pt; + } + } + } + // Check if the node requires derefinement. + if (node->pt == 0) { // The node is empty. + free(node); + return NULL; + } else if (node->pt == -1) { // The node becomes a leaf. + node->pt = node->oct[test]->pt; + r->particles[node->pt].c = node; + free(node->oct[test]); + node->oct[test]=NULL; + return node; + } + return node; + } + // Leaf nodes + if (reb_tree_particle_is_inside_cell(r, node) == 0) { + int oldpos = node->pt; + struct reb_particle reinsertme = r->particles[oldpos]; + if (r->N){ // Check if there remains any particle in the simulation + (r->N)--; + r->particles[oldpos] = r->particles[r->N]; + r->particles[oldpos].c->pt = oldpos; + if (!isnan(reinsertme.y)){ // Do not reinsert if flagged for removal + reb_simulation_add(r, reinsertme); + } + } + free(node); + return NULL; + } else { + r->particles[node->pt].c = node; + return node; + } +} + +/** + * @brief The function calculates the total mass and center of mass of a node. When QUADRUPOLE is defined, it also calculates the mass quadrupole tensor for all non-leaf nodes. + */ +static void reb_simulation_update_tree_gravity_data_in_cell(const struct reb_simulation* const r, struct reb_treecell *node){ +#ifdef QUADRUPOLE + node->mxx = 0; + node->mxy = 0; + node->mxz = 0; + node->myy = 0; + node->myz = 0; + node->mzz = 0; +#endif // QUADRUPOLE + if (node->pt < 0) { + // Non-leaf nodes + node->m = 0; + node->mx = 0; + node->my = 0; + node->mz = 0; + for (int o=0; o<8; o++) { + struct reb_treecell* d = node->oct[o]; + if (d!=NULL){ + reb_simulation_update_tree_gravity_data_in_cell(r, d); + // Calculate the total mass and the center of mass + double d_m = d->m; + node->mx += d->mx*d_m; + node->my += d->my*d_m; + node->mz += d->mz*d_m; + node->m += d_m; + } + } + double m_tot = node->m; + if (m_tot>0){ + node->mx /= m_tot; + node->my /= m_tot; + node->mz /= m_tot; + } +#ifdef QUADRUPOLE + for (int o=0; o<8; o++) { + struct reb_treecell* d = node->oct[o]; + if (d!=NULL){ + // Ref: Hernquist, L., 1987, APJS + double d_m = d->m; + double qx = d->mx - node->mx; + double qy = d->my - node->my; + double qz = d->mz - node->mz; + double qr2 = qx*qx + qy*qy + qz*qz; + node->mxx += d->mxx + d_m*(3.*qx*qx - qr2); + node->mxy += d->mxy + d_m*3.*qx*qy; + node->mxz += d->mxz + d_m*3.*qx*qz; + node->myy += d->myy + d_m*(3.*qy*qy - qr2); + node->myz += d->myz + d_m*3.*qy*qz; + } + } + node->mzz = -node->mxx -node->myy; +#endif // QUADRUPOLE + }else{ + // Leaf nodes + struct reb_particle p = r->particles[node->pt]; + node->m = p.m; + node->mx = p.x; + node->my = p.y; + node->mz = p.z; + } +} + +void reb_simulation_update_tree_gravity_data(struct reb_simulation* const r){ + for(int i=0;iN_root;i++){ +#ifdef MPI + if (reb_communication_mpi_rootbox_is_local(r, i)==1){ +#endif // MPI + if (r->tree_root[i]!=NULL){ + reb_simulation_update_tree_gravity_data_in_cell(r, r->tree_root[i]); + } +#ifdef MPI + } +#endif // MPI + } +} + +void reb_simulation_update_tree(struct reb_simulation* const r){ + if (r->tree_root==NULL){ + r->tree_root = calloc(r->N_root_x*r->N_root_y*r->N_root_z,sizeof(struct reb_treecell*)); + } + for(int i=0;iN_root;i++){ + +#ifdef MPI + if (reb_communication_mpi_rootbox_is_local(r, i)==1){ +#endif // MPI + r->tree_root[i] = reb_simulation_update_tree_cell(r, r->tree_root[i]); +#ifdef MPI + } +#endif // MPI + } + r->tree_needs_update= 0; +} +static void reb_tree_delete_cell(struct reb_treecell* node){ + if (node==NULL){ + return; + } + if (node->remote==1){ + return; + } + for (int o=0; o<8; o++) { + reb_tree_delete_cell(node->oct[o]); + } + free(node); +} + +void reb_tree_delete(struct reb_simulation* const r){ + if (r->tree_root!=NULL){ + for(int i=0;iN_root;i++){ + reb_tree_delete_cell(r->tree_root[i]); + } + free(r->tree_root); + r->tree_root = NULL; + } +} + + + +#ifdef MPI +/** + * @brief The function returns the index of the root which contains the cell. + * + * @param node is a pointer to a node cell. + */ +int reb_particles_get_rootbox_for_node(struct reb_simulation* const r, struct reb_treecell* node){ + int i = ((int)floor((node->x + r->boxsize.x/2.)/r->root_size)+r->N_root_x)%r->N_root_x; + int j = ((int)floor((node->y + r->boxsize.y/2.)/r->root_size)+r->N_root_y)%r->N_root_y; + int k = ((int)floor((node->z + r->boxsize.z/2.)/r->root_size)+r->N_root_z)%r->N_root_z; + int index = (k*r->N_root_y+j)*r->N_root_x+i; + return index; +} + +/** + * @brief The function returns the octant index of a child cell within a parent cell. + * + * @param nnode is a pointer to a child cell of the cell which node points to. + * @param node is a pointer to a node cell. + */ +int reb_reb_tree_get_octant_for_cell_in_cell(struct reb_treecell* nnode, struct reb_treecell *node){ + int octant = 0; + if (nnode->x < node->x) octant+=1; + if (nnode->y < node->y) octant+=2; + if (nnode->z < node->z) octant+=4; + return octant; +} + +/** + * @brief Needs more comments! + * + * @param nnode is a pointer to a child cell of the cell which node points to. + * @param node is a pointer to a node cell. + */ +void reb_tree_add_essential_node_to_node(struct reb_treecell* nnode, struct reb_treecell* node){ + int o = reb_reb_tree_get_octant_for_cell_in_cell(nnode, node); + if (node->oct[o]==NULL){ + node->oct[o] = nnode; + }else{ + reb_tree_add_essential_node_to_node(nnode, node->oct[o]); + } +} + +void reb_tree_add_essential_node(struct reb_simulation* const r, struct reb_treecell* node){ + node->remote = 1; + // Add essential node to appropriate parent. + for (int o=0;o<8;o++){ + node->oct[o] = NULL; + } + int index = reb_particles_get_rootbox_for_node(r, node); + if (r->tree_root[index]==NULL){ + r->tree_root[index] = node; + }else{ + reb_tree_add_essential_node_to_node(node, r->tree_root[index]); + } +} +void reb_tree_prepare_essential_tree_for_gravity(struct reb_simulation* const r){ + for(int i=0;iN_root;i++){ + if (reb_communication_mpi_rootbox_is_local(r, i)==1){ + reb_communication_mpi_prepare_essential_tree_for_gravity(r, r->tree_root[i]); + }else{ + // Delete essential tree reference. + // Tree itself is saved in tree_essential_recv[][] and + // will be overwritten the next timestep. + r->tree_root[i] = NULL; + } + } +} +void reb_tree_prepare_essential_tree_for_collisions(struct reb_simulation* const r){ + for(int i=0;iN_root;i++){ + if (reb_communication_mpi_rootbox_is_local(r, i)==1){ + reb_communication_mpi_prepare_essential_tree_for_collisions(r, r->tree_root[i]); + }else{ + // Delete essential tree reference. + // Tree itself is saved in tree_essential_recv[][] and + // will be overwritten the next timestep. + r->tree_root[i] = NULL; + } + } +} +#endif // MPI + diff --git a/rebound/source/src/tree.h b/rebound/source/src/tree.h new file mode 100644 index 0000000000000000000000000000000000000000..bf0ef19c84ba1e4d8515d1d5f5f45cebd80f1e38 --- /dev/null +++ b/rebound/source/src/tree.h @@ -0,0 +1,101 @@ +/** + * @file tree.h + * @brief Tree header file. All the tree implementations needed by other routines. + * @author Shangfei Liu , Hanno Rein + * + * @section LICENSE + * Copyright (c) 2011 Hanno Rein, Shangfei Liu + * + * This file is part of rebound. + * + * rebound is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rebound is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rebound. If not, see . + * + */ + +#ifndef _TREE_H +#define _TREE_H + +struct reb_treecell; + +/** + * @brief The data structure of one node of a tree + */ +struct reb_treecell { + double x; /**< The x position of the center of a cell */ + double y; /**< The y position of the center of a cell */ + double z; /**< The z position of the center of a cell */ + double w; /**< The width of a cell */ + double m; /**< The total mass of a cell */ + double mx; /**< The x position of the center of mass of a cell */ + double my; /**< The y position of the center of mass of a cell */ + double mz; /**< The z position of the center of mass of a cell */ +#ifdef QUADRUPOLE + double mxx; /**< The xx component of the quadrupole tensor of mass of a cell */ + double mxy; /**< The xy component of the quadrupole tensor of mass of a cell */ + double mxz; /**< The xz component of the quadrupole tensor of mass of a cell */ + double myy; /**< The yy component of the quadrupole tensor of mass of a cell */ + double myz; /**< The yz component of the quadrupole tensor of mass of a cell */ + double mzz; /**< The zz component of the quadrupole tensor of mass of a cell */ +#endif // QUADRUPOLE + struct reb_treecell *oct[8]; /**< The pointer array to the octants of a cell */ + int pt; /**< It has double usages: in a leaf node, it stores the index + * of a particle; in a non-leaf node, it equals to (-1)*Total + * Number of particles within that cell. */ + int remote; /**< 0 by default. Set to 1 if this cell is part of an essential tree (MPI).*/ +}; + +/** + * @brief This function updates the tree. + * @details The tree needs to be updated when particles move, this function does that. + * @param r Rebound simulation to operate on + */ +void reb_simulation_update_tree(struct reb_simulation* const r); + +/** + * @brief The wrap function calls reb_simulation_update_tree_gravity_data_in_cell() for each tree. + * @param r Rebound simulation to operate on + */ +void reb_simulation_update_tree_gravity_data(struct reb_simulation* const r); + +/** + * @brief The wrap function calls reb_tree_add_particle_to_cell() to add the particle into one of the trees. If the tree_root doesn't exist, then it initializes the tree. + * @param r Rebound simulation to operate on + * @param pt Index of a particle. + */ +void reb_tree_add_particle_to_tree(struct reb_simulation* const r, int pt); + +/** + * @brief Free up all space occupied by the tree structure. + * This will not modify particles. + * @param r Rebound simulation to operate on + */ +void reb_tree_delete(struct reb_simulation* const r); + +#ifdef MPI +/** + * @brief MPI related function used to calculate gravity from nearby nodes + * @param node is a pointer to a node cell. + */ +void reb_tree_add_essential_node(struct reb_simulation* const r, struct reb_treecell* node); +/** + * @brief MPI related function used to calculate gravity from nearby nodes + */ +void reb_tree_prepare_essential_tree_for_gravity(struct reb_simulation* const r); +/** + * @brief MPI related function used to calculate gravity from nearby nodes + */ +void reb_tree_prepare_essential_tree_for_collisions(struct reb_simulation* const r); +#endif // MPI + +#endif // _TREE_H diff --git a/rebound/source/style.txt b/rebound/source/style.txt new file mode 100644 index 0000000000000000000000000000000000000000..2646bb8cbc99ec1f35a023777c77e2f3cce26d05 --- /dev/null +++ b/rebound/source/style.txt @@ -0,0 +1,45 @@ +Style Guide +=========== + +This is a short source code style guide for REBOUND. It is not enforced in any way and only intended to be a suggestion. + +Functions (c) +------------- + +* All non-static functions have the prefix reb_ +* All lower case +* Multiple words are connected with underscores +* "Sentences" should follow "noun_verb" rule, where "noun" is the object that gets operated on. For example: reb_simulation_create() and reb_simulation_free() +* All functions belonging to a specific module have a common prefix. For example: reb_integrator_whfast_kepler_step(). This might get long, but note that this is only really required for functions intended for general use. Internal functions can be static and do not need to include the prefix. + +Variables (c) +------------- + +* The function naming convention rules apply. +* The only public variables are in structs. Therefore, they do not have the reb_ prefix. +* As an exception to the lower case rule: the number of particle N is capitalized. +* Variables beginning with an underscore are not intended for general use. + +Objects (python) +---------------- + +* First letter is capitalized, all other letters are lower case +* Same name as in corresponding c struct except reb_ prefix. For example struct reb_particle is Particle. +* Instance methods in python drop the reb_ prefix and the noun from the corresponding c function. For example reb_simulation_move_to_com() becomes Simulation.move_to_com(). + +Specific function names (c) +--------------------------- + +* "create" describes a method which both allocates memory for the struct and then initializes the object. For example: reb_simulation_create() +* "reset" describes a method which resets the struct to (more or less) its initial values such that it can be used as if a new object was created. For example: reb_integrator_ias15_reset(). + +Header files (c) +---------------- + +* All struct and function definitions that a user might need to access are in rebound.h. +* Structs and function definitions that are specific to one module and are only used internally within the rebound library are in the module header files. For example: integrator_whfast.h. + +Indentation +----------- + +* Four spaces are used both in c and python for indentation. diff --git a/rebound/source/update_version.py b/rebound/source/update_version.py new file mode 100644 index 0000000000000000000000000000000000000000..45e989830e8c1d94e73e7231b450c715d866b0aa --- /dev/null +++ b/rebound/source/update_version.py @@ -0,0 +1,104 @@ +#!python +# This script automatically creates a list of examples by reading the header in all problem.c files. +import subprocess +ghash = subprocess.check_output(["git", "rev-parse", "HEAD"]).decode("ascii").strip() + +with open("version.txt") as f: + reboundversion = f.readlines()[0].strip() + print("Updating version to "+reboundversion) + +with open("README.md") as f: + readme = f.readlines() + +with open("README.md","w") as f: + for i in range(0,len(readme)): + # [![Version](https://img.shields.io/badge/rebound-v4.4.11-green.svg?style=flat)](https://rebound.hanno-rein.de) + if "![Version]" in readme[i]: + readme[i] = "[![Version](https://img.shields.io/badge/rebound-v"+reboundversion+"-green.svg?style=flat)](https://rebound.hanno-rein.de)\n" + f.write(readme[i]) + +with open("src/rebound.c") as f: + reboundlines = f.readlines() + for i,l in enumerate(reboundlines): + if "**VERSIONLINE**" in l: + reboundlines[i] = "const char* reb_version_str = \""+reboundversion+"\"; // **VERSIONLINE** This line gets updated automatically. Do not edit manually.\n" + + with open("src/rebound.c", "w") as f: + f.writelines(reboundlines) + +with open("setup.py") as f: + setuplines = f.readlines() + for i,l in enumerate(setuplines): + if "version='" in l: + setuplines[i] = " version='"+reboundversion+"',\n" + if "GITHASHAUTOUPDATE" in l: + setuplines[i] = " ghash_arg = \"-DGITHASH="+ghash+"\" #GITHASHAUTOUPDATE\n" + + with open("setup.py", "w") as f: + f.writelines(setuplines) + +with open("web_client/shell_rebound_webgl.html") as f: + reboundlines = f.readlines() + for i,l in enumerate(reboundlines): + if "" in l: + reboundlines[i] = " REBOUND v" + reboundversion + " \n" + + with open("web_client/shell_rebound_webgl.html", "w") as f: + f.writelines(reboundlines) + +with open("web_client/shell_rebound_console.html") as f: + reboundlines = f.readlines() + for i,l in enumerate(reboundlines): + if "" in l: + reboundlines[i] = " REBOUND v" + reboundversion + " \n" + + with open("web_client/shell_rebound_console.html", "w") as f: + f.writelines(reboundlines) + +with open("web_client/shell_rebound.html") as f: + reboundlines = f.readlines() + for i,l in enumerate(reboundlines): + if "" in l: + reboundlines[i] = " REBOUND v" + reboundversion + " \n" + + with open("web_client/shell_rebound.html", "w") as f: + f.writelines(reboundlines) + +shortversion = reboundversion +while shortversion[-1] != '.': + shortversion = shortversion[:-1] + +shortversion = shortversion[:-1] + +# find changelog +with open("changelog.md") as f: + found_start = 0 + changelog = "" + cl = f.readlines() + for l in cl: + if found_start == 0 and l.startswith("### Version"): + if reboundversion in l: + found_start = 1 + continue + if found_start == 1 and l.startswith("### Version"): + found_start = 2 + if found_start == 1: + changelog += l + +if found_start != 2 or len(changelog.strip())<5: + raise RuntimeError("Changelog not found") + +with open("_changelog.tmp", "w") as f: + f.writelines(changelog.strip()+"\n") + +print("----") +print("Changelog:\n") +print(changelog.strip()) +print("----") +print("Next:") +print("\ngit commit -a -m \"Updating version to "+reboundversion+"\"") +print("git tag "+reboundversion+" && git push && git push --tags") +print("gh release create "+reboundversion+" --notes-file _changelog.tmp") +print("----") +print("Might also want to push a rebound.html to this release:") +print("gh release upload "+reboundversion+" web_client/rebound.html") diff --git a/rebound/source/version.txt b/rebound/source/version.txt new file mode 100644 index 0000000000000000000000000000000000000000..4404a17baed870ceb93c0ca858a76eda33f7d478 --- /dev/null +++ b/rebound/source/version.txt @@ -0,0 +1 @@ +4.5.1 diff --git a/rebound/source/web_client/Makefile b/rebound/source/web_client/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..aacdf1e8f1ba494604cae98f9fc790c95ae6c6a4 --- /dev/null +++ b/rebound/source/web_client/Makefile @@ -0,0 +1,5 @@ +all: + emcc -O3 -I../src/ ../src/*.c problem.c -DOPENGL=1 -sSTACK_SIZE=655360 -s USE_GLFW=3 -s FULL_ES3=1 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sEXPORTED_RUNTIME_METHODS="callMain" -sFETCH -sSINGLE_FILE --shell-file shell_rebound.html -o rebound.html + +clean: + rm rebound.html diff --git a/rebound/source/web_client/compile.bash b/rebound/source/web_client/compile.bash new file mode 100644 index 0000000000000000000000000000000000000000..604ccf4a92057cdf9e1b5da0246f53df0704552b --- /dev/null +++ b/rebound/source/web_client/compile.bash @@ -0,0 +1,4 @@ +#!/bin/bash +# To be called from main rebound directory +source emsdk/emsdk_env.sh +make -C web_client diff --git a/rebound/source/web_client/problem.c b/rebound/source/web_client/problem.c new file mode 100644 index 0000000000000000000000000000000000000000..c9dd6078f13821826e7715214fe026cca43f2af2 --- /dev/null +++ b/rebound/source/web_client/problem.c @@ -0,0 +1,172 @@ +#include +#include +#include +#include +#include +#include "rebound.h" +#include "fmemopen.h" +#include "display.h" +#include "input.h" + +int first = 1; +double reconnect_delay = 1.; + +void request_frame_from_server(struct reb_simulation* r); + +EM_JS(void, reb_hide_console, (int hide), { + var output = document.getElementById("output"); + if (output){ + if (hide){ + output.style.display = "none"; + }else{ + output.style.display = "block"; + } + } + var container = document.getElementById("container"); + if (container){ + if (hide){ + container.style.height = "100%"; + }else{ + container.style.height = "80%"; + } + } +}); + +static void request_key_succeeded(emscripten_fetch_t *fetch) { + emscripten_fetch_close(fetch); // Free data associated with the fetch. +} + +void request_frame_failed(emscripten_fetch_t *fetch) { + struct reb_simulation* r = fetch->userData; + r->display_data->connection_status = -1; + reconnect_delay *= 1.1; + printf("Requesting %s failed (status code: %d). Server might have shut down.\n", fetch->url, fetch->status); + emscripten_fetch_close(fetch); // Also free data on failure. + + // Try again after a delay + emscripten_sleep(1000./120.*reconnect_delay); + request_frame_from_server(r); +} + +void request_key_failed(emscripten_fetch_t *fetch) { + struct reb_simulation* r = fetch->userData; + r->display_data->connection_status = -1; + printf("Requesting %s failed (status code: %d). Server might have shut down.\n", fetch->url, fetch->status); + emscripten_fetch_close(fetch); // Also free data on failure. +} + +void send_key(int key){ + emscripten_fetch_attr_t attr; + emscripten_fetch_attr_init(&attr); + strcpy(attr.requestMethod, "GET"); + attr.attributes = EMSCRIPTEN_FETCH_LOAD_TO_MEMORY; + attr.onsuccess = request_key_succeeded; + attr.onerror = request_key_failed; + char buffer[1024]; + sprintf(buffer, "/keyboard/%d", key); + emscripten_fetch(&attr, buffer); +} + +void reb_display_keyboard_passthrough(GLFWwindow* window, int key, int scancode, int action, int mods){ + struct reb_display_data* data = glfwGetWindowUserPointer(window); + if (!data){ + printf("Error accessing data in reb_display_keyboard\n"); + return; + } + if (action==GLFW_PRESS){ + send_key(key); + } + reb_display_keyboard(window, key, scancode, action, mods); +} + + +void send_screenshot_succeeded(emscripten_fetch_t *fetch) { + struct reb_simulation* r = fetch->userData; + emscripten_fetch_close(fetch); // Free data associated with the fetch. + r->status = REB_STATUS_PAUSED; // Pause until server sends new simulation. + r->display_data->r_copy->status = REB_STATUS_PAUSED; // Pause until server sends new simulation. + free(r->display_data->screenshot); + r->display_data->screenshot = NULL; + emscripten_sleep(1000./120.); + request_frame_from_server(r); +} + + +void send_screenshot_to_server(struct reb_simulation* r){ + emscripten_fetch_attr_t attr; + emscripten_fetch_attr_init(&attr); + attr.userData = r; + strcpy(attr.requestMethod, "POST"); + attr.attributes = EMSCRIPTEN_FETCH_LOAD_TO_MEMORY; + attr.onsuccess = send_screenshot_succeeded; + attr.onerror = request_frame_failed; + attr.requestData = r->display_data->screenshot; + attr.requestDataSize = strlen(r->display_data->screenshot)+1; + + emscripten_fetch(&attr, "/screenshot"); +} + + +void request_frame_succeeded(emscripten_fetch_t *fetch) { + struct reb_simulation* r = fetch->userData; + + FILE* fin = reb_fmemopen((void*)fetch->data, fetch->numBytes, "r"); + enum reb_simulation_binary_error_codes warnings; + reb_input_fields(r, fin, &warnings); + fclose(fin); + + if (first){ + r->display_data = calloc(1, sizeof(struct reb_display_data)); + r->display_data->r = r; + reb_display_init(r); // Will return. Display routines running in animation_loop. + glfwSetKeyCallback(r->display_data->window, reb_display_keyboard_passthrough); + reb_hide_console(1); + } + r->display_data->connection_status = 1; + reconnect_delay = 1.; + first = 0; + emscripten_fetch_close(fetch); // Free data associated with the fetch. + + emscripten_sleep(1000./120.); + request_frame_from_server(r); +} + + +void request_frame_from_server(struct reb_simulation* r){ + switch (r->status){ + case REB_STATUS_SCREENSHOT: + // Screenshot not ready yet. Wait. + emscripten_sleep(1000./120.); + request_frame_from_server(r); + break; + case REB_STATUS_SCREENSHOT_READY: + // Screenshot ready + // Send back + // resume normal pulls + send_screenshot_to_server(r); + break; + default: + { + emscripten_fetch_attr_t attr; + emscripten_fetch_attr_init(&attr); + attr.userData = r; + strcpy(attr.requestMethod, "GET"); + attr.attributes = EMSCRIPTEN_FETCH_LOAD_TO_MEMORY; + attr.onsuccess = request_frame_succeeded; + attr.onerror = request_frame_failed; + emscripten_fetch(&attr, "/simulation"); + } + break; + } + + +} + +int main(int argc, char* argv[]) { + struct reb_simulation* r = reb_simulation_create(); + r->t = 123.; + request_frame_from_server(r); + //while(1){ + //sleep(1); + //} +} diff --git a/rebound/source/web_client/shell_rebound.html b/rebound/source/web_client/shell_rebound.html new file mode 100644 index 0000000000000000000000000000000000000000..1643ae12162be7b28120c91ff4f2ce35b96f6a03 --- /dev/null +++ b/rebound/source/web_client/shell_rebound.html @@ -0,0 +1,218 @@ + + + + + + REBOUND Visualization + + + +
Loading ...
+
+ +
+
+ + REBOUND v4.5.1 +
+
+
+
+
+
+
+ + + + + + {{{ SCRIPT }}} + + diff --git a/rebound/source/web_client/shell_rebound_console.html b/rebound/source/web_client/shell_rebound_console.html new file mode 100644 index 0000000000000000000000000000000000000000..8122068626a9217e58519dfe6755a5c717a40146 --- /dev/null +++ b/rebound/source/web_client/shell_rebound_console.html @@ -0,0 +1,195 @@ + + + + + + REBOUND Visualization + + + +
Loading ...
+
+ +
+
+ + REBOUND v4.5.1 +
+
+
+ + + + + {{{ SCRIPT }}} + + diff --git a/rebound/source/web_client/shell_rebound_webgl.html b/rebound/source/web_client/shell_rebound_webgl.html new file mode 100644 index 0000000000000000000000000000000000000000..7a498bfe61c4b5e759628c667aba4b458f6c1acd --- /dev/null +++ b/rebound/source/web_client/shell_rebound_webgl.html @@ -0,0 +1,218 @@ + + + + + + REBOUND Visualization + + + +
Loading ...
+
+ +
+
+ + REBOUND v4.5.1 +
+
+
+
+
+
+
+ + + + + + {{{ SCRIPT }}} + + diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..ddfb2cb29b89bed7f37e02488b870c4a0e233ddb --- /dev/null +++ b/requirements.txt @@ -0,0 +1,7 @@ +fastmcp +fastapi +uvicorn[standard] +pydantic>=2.0.0 +matplotlib +numpy +scipy diff --git a/run_docker.ps1 b/run_docker.ps1 new file mode 100644 index 0000000000000000000000000000000000000000..542b1d03e694d6a02077e2ebad053a129b78685e --- /dev/null +++ b/run_docker.ps1 @@ -0,0 +1,35 @@ +cd $PSScriptRoot + +$ErrorActionPreference = "Stop" + +$entryName = if ($env:MCP_ENTRY_NAME) { $env:MCP_ENTRY_NAME } else { "rebound" } +$entryUrl = if ($env:MCP_ENTRY_URL) { $env:MCP_ENTRY_URL } else { "http://localhost:7860/mcp" } +$imageName = if ($env:MCP_IMAGE_NAME) { $env:MCP_IMAGE_NAME } else { "rebound-mcp" } + +$mcpDir = Join-Path $env:USERPROFILE ".cursor" +$mcpPath = Join-Path $mcpDir "mcp.json" +if (!(Test-Path $mcpDir)) { New-Item -ItemType Directory -Path $mcpDir | Out-Null } + +$config = @{} +if (Test-Path $mcpPath) { + try { $config = Get-Content $mcpPath -Raw | ConvertFrom-Json } catch { $config = @{} } +} + +# Rebuild mcpServers as ordered and append the entry last +$serversOrdered = [ordered]@{} +if ($config -and ($config.PSObject.Properties.Name -contains "mcpServers") -and $config.mcpServers) { + $existing = $config.mcpServers + if ($existing -is [pscustomobject]) { + foreach ($p in $existing.PSObject.Properties) { if ($p.Name -ne $entryName) { $serversOrdered[$p.Name] = $p.Value } } + } elseif ($existing -is [System.Collections.IDictionary]) { + foreach ($k in $existing.Keys) { if ($k -ne $entryName) { $serversOrdered[$k] = $existing[$k] } } + } +} +$serversOrdered[$entryName] = @{ url = $entryUrl } +$config = @{ mcpServers = $serversOrdered } + +$config | ConvertTo-Json -Depth 10 | Set-Content -Path $mcpPath -Encoding UTF8 +Write-Host ("Updated $entryName in " + $mcpPath + " -> " + $entryUrl) + +docker build -t $imageName . +docker run --rm -p 7860:7860 $imageName diff --git a/run_docker.sh b/run_docker.sh new file mode 100644 index 0000000000000000000000000000000000000000..64c11df70bfae8136016549ce7bcf18ec8d2a1eb --- /dev/null +++ b/run_docker.sh @@ -0,0 +1,82 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Switch to the directory where this script is located +cd "$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" + +mcp_entry_name="${MCP_ENTRY_NAME:-rebound}" +mcp_entry_url="${MCP_ENTRY_URL:-http://localhost:7860/mcp}" +mcp_dir="${HOME}/.cursor" +mcp_path="${mcp_dir}/mcp.json" +mkdir -p "${mcp_dir}" + +if command -v python3 >/dev/null 2>&1; then +python3 - "${mcp_path}" "${mcp_entry_name}" "${mcp_entry_url}" <<'PY' +import json, os, sys +path, name, url = sys.argv[1:4] +cfg = {"mcpServers": {}} +if os.path.exists(path): + try: + with open(path, "r", encoding="utf-8") as f: + cfg = json.load(f) + except Exception: + cfg = {"mcpServers": {}} +if not isinstance(cfg, dict): + cfg = {"mcpServers": {}} +servers = cfg.get("mcpServers") +if not isinstance(servers, dict): + servers = {} +ordered = {} +for k, v in servers.items(): + if k != name: + ordered[k] = v +ordered[name] = {"url": url} +cfg = {"mcpServers": ordered} +with open(path, "w", encoding="utf-8") as f: + json.dump(cfg, f, indent=2, ensure_ascii=False) +PY +elif command -v python >/dev/null 2>&1; then +python - "${mcp_path}" "${mcp_entry_name}" "${mcp_entry_url}" <<'PY' +import json, os, sys +path, name, url = sys.argv[1:4] +cfg = {"mcpServers": {}} +if os.path.exists(path): + try: + with open(path, "r", encoding="utf-8") as f: + cfg = json.load(f) + except Exception: + cfg = {"mcpServers": {}} +if not isinstance(cfg, dict): + cfg = {"mcpServers": {}} +servers = cfg.get("mcpServers") +if not isinstance(servers, dict): + servers = {} +ordered = {} +for k, v in servers.items(): + if k != name: + ordered[k] = v +ordered[name] = {"url": url} +cfg = {"mcpServers": ordered} +with open(path, "w", encoding="utf-8") as f: + json.dump(cfg, f, indent=2, ensure_ascii=False) +PY +elif command -v jq >/dev/null 2>&1; then + name="${mcp_entry_name}"; url="${mcp_entry_url}" + if [ -f "${mcp_path}" ]; then + tmp="$(mktemp)" + jq --arg name "$name" --arg url "$url" ' + .mcpServers = (.mcpServers // {}) + | .mcpServers as $s + | ($s | with_entries(select(.key != $name))) as $base + | .mcpServers = ($base + {($name): {"url": $url}}) + ' "${mcp_path}" > "${tmp}" && mv "${tmp}" "${mcp_path}" + else + printf '{ "mcpServers": { "%s": { "url": "%s" } } } +' "$name" "$url" > "${mcp_path}" + fi +else + echo "Warning: neither python nor jq found; skipped updating ~/.cursor/mcp.json" >&2 +fi + +docker build -t rebound-mcp . +docker run --rm -p 7860:7860 rebound-mcp