From b8c5d14a3cdaa7d2cb76b6f9d2c5a44a5123850d Mon Sep 17 00:00:00 2001 From: Phil Date: Sat, 6 Aug 2022 23:16:02 +0930 Subject: [PATCH] Initial Version of C++ VCD Tracer Library --- .clang-format | 97 + .clang-tidy | 5 + .cmake-format.yaml | 19 + .github/FUNDING.yml | 3 + .github/workflows/build_cmake.yml | 96 + .gitignore | 34 + .gitmodules | 3 + .lgtm.yml | 24 + .vscode/launch.json | 28 + .vscode/tasks.json | 13 + CMakeLists.txt | 87 + Dockerfile | 100 + LICENSE | 2 +- Makefile | 49 + README.md | 178 + cmake/Cache.cmake | 29 + cmake/CompilerWarnings.cmake | 79 + cmake/Conan.cmake | 60 + cmake/Doxygen.cmake | 11 + cmake/Linker.cmake | 33 + cmake/PreventInSourceBuilds.cmake | 18 + cmake/Sanitizers.cmake | 67 + cmake/StandardProjectSettings.cmake | 42 + cmake/StaticAnalyzers.cmake | 41 + conanfile.py | 26 + doc/images/example_signals.png | Bin 0 -> 64334 bytes example/CMakeLists.txt | 7 + example/signals.cpp | 115 + example/signals.gtkw | 37 + example/signals.vcd | 35435 ++++++++++++++++++++++++++ fuzz_test/CMakeLists.txt | 24 + fuzz_test/fuzz_tester.cpp | 103 + src/CMakeLists.txt | 5 + src/vcd_tracer.cpp | 344 + src/vcd_tracer.hpp | 716 + src/vcd_tracer.ipp | 131 + test/CMakeLists.txt | 63 + test/catch_main.cpp | 3 + test/constexpr_tests.cpp | 49 + test/tests.cpp | 549 + 40 files changed, 38724 insertions(+), 1 deletion(-) create mode 100644 .clang-format create mode 100644 .clang-tidy create mode 100644 .cmake-format.yaml create mode 100644 .github/FUNDING.yml create mode 100644 .github/workflows/build_cmake.yml create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 .lgtm.yml create mode 100644 .vscode/launch.json create mode 100644 .vscode/tasks.json create mode 100644 CMakeLists.txt create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 README.md create mode 100644 cmake/Cache.cmake create mode 100644 cmake/CompilerWarnings.cmake create mode 100644 cmake/Conan.cmake create mode 100644 cmake/Doxygen.cmake create mode 100644 cmake/Linker.cmake create mode 100644 cmake/PreventInSourceBuilds.cmake create mode 100644 cmake/Sanitizers.cmake create mode 100644 cmake/StandardProjectSettings.cmake create mode 100644 cmake/StaticAnalyzers.cmake create mode 100644 conanfile.py create mode 100644 doc/images/example_signals.png create mode 100644 example/CMakeLists.txt create mode 100644 example/signals.cpp create mode 100644 example/signals.gtkw create mode 100644 example/signals.vcd create mode 100644 fuzz_test/CMakeLists.txt create mode 100644 fuzz_test/fuzz_tester.cpp create mode 100644 src/CMakeLists.txt create mode 100644 src/vcd_tracer.cpp create mode 100644 src/vcd_tracer.hpp create mode 100644 src/vcd_tracer.ipp create mode 100644 test/CMakeLists.txt create mode 100644 test/catch_main.cpp create mode 100644 test/constexpr_tests.cpp create mode 100644 test/tests.cpp diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..758e196 --- /dev/null +++ b/.clang-format @@ -0,0 +1,97 @@ +AccessModifierOffset: -2 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +AlignEscapedNewlines: Left +AlignOperands: true +AlignTrailingComments: false +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortBlocksOnASingleLine: true +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: All +AllowShortIfStatementsOnASingleLine: true +AllowShortLoopsOnASingleLine: true +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: true +AlwaysBreakTemplateDeclarations: false +BinPackArguments: false +BinPackParameters: false +BraceWrapping: + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + BeforeCatch: false + BeforeElse: true + IndentBraces: false + SplitEmptyFunction: false + SplitEmptyNamespace: false + SplitEmptyRecord: false +BreakAfterJavaFieldAnnotations: true +BreakBeforeBinaryOperators: NonAssignment +BreakBeforeBraces: Custom +BreakBeforeInheritanceComma: true +BreakBeforeTernaryOperators: true +BreakConstructorInitializers: BeforeComma +BreakConstructorInitializersBeforeComma: true +BreakStringLiterals: true +ColumnLimit: 0 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: false +DerivePointerAlignment: false +DisableFormat: false +ExperimentalAutoDetectBinPacking: true +FixNamespaceComments: true +ForEachMacros: +- foreach +- Q_FOREACH +- BOOST_FOREACH +IncludeCategories: +- Priority: 2 + Regex: ^"(llvm|llvm-c|clang|clang-c)/ +- Priority: 3 + Regex: ^(<|"(gtest|gmock|isl|json)/) +- Priority: 1 + Regex: .* +IncludeIsMainRegex: (Test)?$ +IndentCaseLabels: false +IndentWidth: 4 +IndentWrappedFunctionNames: true +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: true +Language: Cpp +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 2 +NamespaceIndentation: All +ObjCBlockIndentWidth: 7 +ObjCSpaceAfterProperty: true +ObjCSpaceBeforeProtocolList: false +PointerAlignment: Right +ReflowComments: true +SortIncludes: false +SortUsingDeclarations: false +SpaceAfterCStyleCast: false +SpaceAfterTemplateKeyword: false +SpaceBeforeAssignmentOperators: true +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 0 +SpacesInAngles: false +SpacesInCStyleCastParentheses: false +SpacesInContainerLiterals: true +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: c++17 +TabWidth: 4 +UseTab: Never + diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..f58b9d5 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,5 @@ +--- +Checks: '*,-fuchsia-*,-google-*,-zircon-*,-abseil-*,-modernize-use-trailing-return-type,-llvm*' +WarningsAsErrors: '' +HeaderFilterRegex: '' +FormatStyle: none diff --git a/.cmake-format.yaml b/.cmake-format.yaml new file mode 100644 index 0000000..03c1da7 --- /dev/null +++ b/.cmake-format.yaml @@ -0,0 +1,19 @@ +additional_commands: + foo: + flags: + - BAR + - BAZ + kwargs: + DEPENDS: '*' + HEADERS: '*' + SOURCES: '*' +bullet_char: '*' +dangle_parens: false +enum_char: . +line_ending: unix +line_width: 120 +max_pargs_hwrap: 3 +separate_ctrl_name_with_space: false +separate_fn_name_with_space: false +tab_size: 2 + diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..51150f9 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,3 @@ +# These are supported funding model platforms + +github: nakane1chome diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml new file mode 100644 index 0000000..82e4a66 --- /dev/null +++ b/.github/workflows/build_cmake.yml @@ -0,0 +1,96 @@ +name: CMake + +on: + pull_request: + push: + branches: + - main + - master + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + # Conan cache environment variables + CONAN_SYSREQUIRES_MODE: enabled + CONAN_USER_HOME: "${{ github.workspace }}/conan-cache" + CONAN_USER_HOME_SHORT: "${{ github.workspace }}/conan-cache/short" + +# Use a bash shell so we can use the same syntax for environment variable +# access regardless of the host operating system +defaults: + run: + shell: bash + +jobs: + build: + + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: ['ubuntu-latest'] + include: + - os: ubuntu-latest + ENABLE_COVERAGE: ON + + + steps: + - uses: actions/checkout@v2 + + - name: Cache + uses: actions/cache@v2 + env: + cache-name: cache-conan-modules + with: + path: | + ${{ env.CONAN_USER_HOME }} + ~/.cache/pip + key: ${{ runner.os }}-${{ env.BUILD_TYPE }}-${{ hashFiles('CMakeLists.txt') }}-${{ hashFiles('cmake/Conan.cmake') }} + + - name: Install conan + run: | + pip3 install wheel setuptools gcovr + pip3 install conan --upgrade + + - name: Install / Configure dependencies + shell: bash + run: | + if [ "$RUNNER_OS" == "Linux" ]; then + echo "Ubuntu - Fix Conan Path" + sudo update-alternatives --install /usr/bin/conan conan /home/runner/.local/bin/conan 10 + sudo update-alternatives --config conan + elif [ "$RUNNER_OS" == "Windows" ]; then + echo "Using chocolatey to install OpenCppCoverage" + choco install opencppcoverage + # Add to Path + echo "C:/Program Files/OpenCppCoverage" >> $GITHUB_PATH + fi; + + - name: Configure CMake + run: | + cmake -S . -B ./build -DCMAKE_BUILD_TYPE:STRING=$BUILD_TYPE -DENABLE_COVERAGE:BOOL=${{ matrix.ENABLE_COVERAGE }} + + - name: Build + # Execute the build. You can specify a specific target with "--target " + run: cmake --build ./build --config $BUILD_TYPE + + - name: Unix - Test and coverage + if: runner.os != 'Windows' + working-directory: ./build + # Execute tests defined by the CMake configuration. + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: | + ctest -C $BUILD_TYPE + gcovr -j $(nproc) --delete --root ../ --print-summary --xml-pretty --xml coverage.xml . + + - name: Windows - Test and coverage + if: runner.os == 'Windows' + working-directory: ./build + run: | + OpenCppCoverage.exe --sources cpp_starter_project --export_type cobertura:coverage.xml --cover_children -- ctest -C $BUILD_TYPE + + - name: Publish to codecov + uses: codecov/codecov-action@v2 + with: + flags: ${{ runner.os }} + name: ${{ runner.os }}-coverage + files: ./build/coverage.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..63297ce --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +# Build directories and binary files +build/ +build_clang/ +build_cov +out/ +cmake-build-*/ + +# IDE files +.vs/ +.idea/ +.vscode/ +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.swp +*~ +Testing/ + +.#* +coverage.xml + +# OS Generated Files +.DS_Store +.AppleDouble +.LSOverride +._* +.Spotlight-V100 +.Trashes +.Trash-* +$RECYCLE.BIN/ +.TemporaryItems +ehthumbs.db +Thumbs.db \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..0403b47 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "export/cpp-vcd-tracer"] + path = _export/cpp-vcd-tracer + url = git@github.com:nakane1chome/cpp-vcd-tracer.git diff --git a/.lgtm.yml b/.lgtm.yml new file mode 100644 index 0000000..1f013bb --- /dev/null +++ b/.lgtm.yml @@ -0,0 +1,24 @@ +# for full syntax documentation see: https://lgtm.com/help/lgtm/lgtm.yml-configuration-file +path_classifiers: + test: + - "*/fuzz_test/**/*" + - "*/test/**/*" +extraction: + cpp: + prepare: + packages: + - g++-10 + - ccache + script: + - mkdir ~/.conan + - cat /usr/local/share/ca-certificates/semmle-cache-ca/semmle-cache-ca.crt >> ~/.conan/cacert.pem + - python3 -m pip install --upgrade pip setuptools + - python3 -m pip install conan + - python3 -m pip install cmake + - source ~/.profile + configure: + command: + - mkdir build + - cmake -D ENABLE_COVERAGE:BOOL=TRUE -S . -B build + index: + build_command: cmake --build ./build -- -j2 diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..80b4352 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,28 @@ +{ + "configurations": [ + { + g "name": "(gdb) Launch Tests", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/build/test/tests", + "args": [], + "stopAtEntry": false, + "cwd": "${fileDirname}", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "Enable all-exceptions", + "text": "catch throw", + "ignoreFailures": true + } + ] + } + ] +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..8cd065f --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,13 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "test", + "type" : "shell", + "command" : "${workspaceRoot}/build/test/tests", + "presentation" : { "reveal": "always" }, + } + ] +} diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..0832a7b --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,87 @@ +cmake_minimum_required(VERSION 3.15) + +# Set the project name to your project name, my project isn't very descriptive +project(myproject CXX) +include(cmake/StandardProjectSettings.cmake) +include(cmake/PreventInSourceBuilds.cmake) + +# Link this 'library' to set the c++ standard / compile-time options requested +add_library(project_options INTERFACE) +target_compile_features(project_options INTERFACE cxx_std_17) + +if(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang") + option(ENABLE_BUILD_WITH_TIME_TRACE "Enable -ftime-trace to generate time tracing .json files on clang" OFF) + if(ENABLE_BUILD_WITH_TIME_TRACE) + target_compile_options(project_options INTERFACE -ftime-trace) + endif() +endif() + +# Link this 'library' to use the warnings specified in CompilerWarnings.cmake +add_library(project_warnings INTERFACE) + +# enable cache system +include(cmake/Cache.cmake) + +# Add linker configuration +include(cmake/Linker.cmake) +configure_linker(project_options) + +# standard compiler warnings +include(cmake/CompilerWarnings.cmake) +set_project_warnings(project_warnings) + +# sanitizer options if supported by compiler +include(cmake/Sanitizers.cmake) +enable_sanitizers(project_options) + +# enable doxygen +include(cmake/Doxygen.cmake) +enable_doxygen() + +# allow for static analysis options +include(cmake/StaticAnalyzers.cmake) + +option(BUILD_SHARED_LIBS "Enable compilation of shared libraries" OFF) +option(ENABLE_TESTING "Enable Test Builds" ON) +option(ENABLE_FUZZING "Enable Fuzzing Builds" OFF) + +# Very basic PCH example +option(ENABLE_PCH "Enable Precompiled Headers" OFF) +if(ENABLE_PCH) + # This sets a global PCH parameter, each project will build its own PCH, which is a good idea if any #define's change + # + # consider breaking this out per project as necessary + target_precompile_headers( + project_options + INTERFACE + + + + ) +endif() + +option(ENABLE_CONAN "Use Conan for dependency management" ON) +if(ENABLE_CONAN) + include(cmake/Conan.cmake) + run_conan() +endif() + +if(ENABLE_TESTING) + enable_testing() + message("Building Tests. Be sure to check out test/constexpr_tests for constexpr testing") + add_subdirectory(test) +endif() + +if(ENABLE_FUZZING) + message("Building Fuzz Tests, using fuzzing sanitizer https://www.llvm.org/docs/LibFuzzer.html") + add_subdirectory(fuzz_test) +endif() + +add_subdirectory(src) +add_subdirectory(example) + +option(ENABLE_UNITY "Enable Unity builds of projects" OFF) +if(ENABLE_UNITY) + # Add for any project you want to apply unity builds for + set_target_properties(intro PROPERTIES UNITY_BUILD ON) +endif() diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..cfeae16 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,100 @@ +FROM ubuntu:bionic + +# Install packages available from standard repos +RUN apt-get update -qq && \ + apt-get install -y --no-install-recommends \ + software-properties-common wget git gpg-agent file \ + python3 python3-pip doxygen graphviz ccache cppcheck build-essential \ + neovim emacs nano + +# Install conan +RUN python3 -m pip install --upgrade pip setuptools && \ + python3 -m pip install conan && \ + conan --version + +# User-settable versions: +# This Dockerfile should support gcc-[7, 8, 9, 10] and clang-[10, 11] +# Earlier versions of clang will require significant modifications to the IWYU section +ARG GCC_VER="10" +ARG LLVM_VER="11" + +# Add gcc-${GCC_VER} +RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test && \ + apt-get update -qq && \ + apt-get install -y --no-install-recommends gcc-${GCC_VER} g++-${GCC_VER} + +# Add clang-${LLVM_VER} +RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - 2>/dev/null && \ + add-apt-repository -y "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-${LLVM_VER} main" && \ + apt-get update -qq && \ + apt-get install -y --no-install-recommends \ + clang-${LLVM_VER} lldb-${LLVM_VER} lld-${LLVM_VER} clangd-${LLVM_VER} \ + llvm-${LLVM_VER}-dev libclang-${LLVM_VER}-dev clang-tidy-${LLVM_VER} + +# Add current cmake/ccmake, from Kitware +RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null \ + | gpg --dearmor - | tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null && \ + apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main' && \ + apt-get update -qq && \ + apt-get install -y --no-install-recommends cmake cmake-curses-gui + +# Set the default clang-tidy, so CMake can find it +RUN update-alternatives --install /usr/bin/clang-tidy clang-tidy $(which clang-tidy-${LLVM_VER}) 1 + +# Install include-what-you-use +ENV IWYU /home/iwyu +ENV IWYU_BUILD ${IWYU}/build +ENV IWYU_SRC ${IWYU}/include-what-you-use +RUN mkdir -p ${IWYU_BUILD} && \ + git clone --branch clang_${LLVM_VER} \ + https://github.com/include-what-you-use/include-what-you-use.git \ + ${IWYU_SRC} +RUN CC=clang-${LLVM_VER} CXX=clang++-${LLVM_VER} cmake -S ${IWYU_SRC} \ + -B ${IWYU_BUILD} \ + -G "Unix Makefiles" -DCMAKE_PREFIX_PATH=/usr/lib/llvm-${LLVM_VER} && \ + cmake --build ${IWYU_BUILD} -j && \ + cmake --install ${IWYU_BUILD} + +# Per https://github.com/include-what-you-use/include-what-you-use#how-to-install: +# `You need to copy the Clang include directory to the expected location before +# running (similarly, use include-what-you-use -print-resource-dir to learn +# exactly where IWYU wants the headers).` +RUN mkdir -p $(include-what-you-use -print-resource-dir 2>/dev/null) +RUN ln -s $(readlink -f /usr/lib/clang/${LLVM_VER}/include) \ + $(include-what-you-use -print-resource-dir 2>/dev/null)/include + +## Cleanup cached apt data we don't need anymore +#RUN apt-get clean && \ +# rm -rf /var/lib/apt/lists/* + +# Set gcc-${GCC_VER} as default gcc +RUN update-alternatives --install /usr/bin/gcc gcc $(which gcc-${GCC_VER}) 100 +RUN update-alternatives --install /usr/bin/g++ g++ $(which g++-${GCC_VER}) 100 + +# Set clang-${LLVM_VER} as default clang +RUN update-alternatives --install /usr/bin/clang clang $(which clang-${LLVM_VER}) 100 +RUN update-alternatives --install /usr/bin/clang++ clang++ $(which clang++-${LLVM_VER}) 100 + +# Allow the user to set compiler defaults +ARG USE_CLANG +# if --build-arg USE_CLANG=1, set CC to 'clang' or set to null otherwise. +ENV CC=${USE_CLANG:+"clang"} +ENV CXX=${USE_CLANG:+"clang++"} +# if CC is null, set it to 'gcc' (or leave as is otherwise). +ENV CC=${CC:-"gcc"} +ENV CXX=${CXX:-"g++"} + +# By default, anything you run in Docker is done as superuser. +# Conan runs some install commands as superuser, and will prepend `sudo` to +# these commands, unless `CONAN_SYSREQUIRES_SUDO=0` is in your env variables. +ENV CONAN_SYSREQUIRES_SUDO 0 +# Some packages request that Conan use the system package manager to install +# a few dependencies. This flag allows Conan to proceed with these installations; +# leaving this flag undefined can cause some installation failures. +ENV CONAN_SYSREQUIRES_MODE enabled + +# Include project +ADD . /starter_project +WORKDIR /starter_project + +CMD ["/bin/bash"] diff --git a/LICENSE b/LICENSE index b31692a..1f14ecb 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2022, Phil M +Copyright (c) 2022, Philip Mulholland All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..71c4d1b --- /dev/null +++ b/Makefile @@ -0,0 +1,49 @@ +# A Makefile is a place where your can put those commands you run a lot. +# It's like a README, but you don't need to copy the commands to a console. +# It's like a shell script but you don't need to run it all. +# It's like a json/yaml configuration, but a bit harder to learn. + +SRC_DIRS=src test +ALL_SRC=$(shell find ${SRC_DIRS} -name "*.hpp" -or -name "*.cpp" -or -name "*.ipp") +export CLICOLOR=0 + +all: test + +build : + cmake -S . -B build -DENABLE_FUZZING:BOOL=OFF + +build_clang : + CC=clang CXX=clang++ cmake -S . -B build_clang -DENABLE_FUZZING:BOOL=ON + +build_cov : + cmake -S . -B ./build_cov -DCMAKE_BUILD_TYPE:STRING=Release -DENABLE_COVERAGE:BOOL=ON -DENABLE_FUZZING=OFF + +make : build + cmake --build build + +make_clang : build_clang + cmake --build build_clang + +make_cov : build_cov + cmake --build build_cov + +test: make + cd build; ctest -C Release + +test_cov: make_cov + cd build_cov; ctest -C Release + gcovr --delete --root ../ --print-summary --xml-pretty --xml coverage.xml . + +test_clang: make_clang + cd build_clang; ctest -C Release + +format: + clang-format-14 -i ${ALL_SRC} + +lint: build_clang + clang-tidy-14 \ + -p build_clang \ + src/vcd_tracer.cpp + +clean : + rm -rf build build_clang build_cov diff --git a/README.md b/README.md new file mode 100644 index 0000000..0e88bee --- /dev/null +++ b/README.md @@ -0,0 +1,178 @@ +# VCD Tracer for C++ + +## About + +[VCD](https://en.wikipedia.org/wiki/Value_change_dump) is a simple +trace log format for logic simulation tools such as Verilog and VHDL simulators. It's output is designed +to be viewed in a [waveform +viewer](https://en.wikipedia.org/wiki/Waveform_viewer) such as +[GTKWave](http://gtkwave.sourceforge.net/) and many commercial +simulation tools. It is not an efficient format, but it is easy to +implement and use. + +This library creates VCD files from C++ software. It is designed to be +embedded in software that has some sort of signal hierarchy and time +domain processing. For example it can be embedded in an instruction +set simulator. + +## LICENSE + +Copyright (c) 2022, Philip Mulholland + +BSD 3-Clause License. See LICENSE. + +## Usage + +Signals are traced using the templated `vcd_tracer::value<>` +class. The data type that can be traced is limited to fundamental +types. The bit size can be specified independently to the + +~~~ + vcd_tracer::value clock1; + vcd_tracer::value sine_wave; + vcd_tracer::value addr; + vcd_tracer::value data; + vcd_tracer::value burst; + vcd_tracer::value wr_rd_n; +~~~ + +A module hierarchy is defined independently of the trace +values. Modules can be defined to group values. Values are +"elaborated" within a given module. Without elaboration a value cannot +be traced. + +~~~ + vcd_tracer::top dumper("root"); + + vcd_tracer::module digital(dumper.root, "digital"); + vcd_tracer::module bus(digital, "bus"); + vcd_tracer::module analog(dumper.root, "analog"); + + // The elaboration of signals inside of the module hierarchy + digital.elaborate(clock1, "clk"); + analog.elaborate(sine_wave, "wave"); + bus.elaborate(addr, "addr"); + bus.elaborate(data, "data"); + bus.elaborate(burst, "burst"); + bus.elaborate(wr_rd_n, "wr_strb"); +~~~ + +Traces are output to a `std::ostream`. Once all values have been +elaborated the header can be finalized. + +~~~ + std::ofstream fout(fout_name); + dumper.finalize_header(fout, + std::chrono::system_clock::from_time_t(0)); +~~~ + +A trace value is updated with the `set()` method. + +~~~ + burst.set(1); + clock1.set(i & 0x1); + sine_wave.set(WAVE_BIAS_V + (WAVE_AMPL_V * sin(seconds * WAVE_FREQ_HZ * 2.0 * M_PI))); + wr_rd_n.set(true); + addr.set(static_cast(mem_addr&0xFFFF)); + data.set(memory[mem_addr]); +~~~ + +Values are written to file when the `time_update_abs()` or +`time_update_delta()` methods are called. + +~~~ + dumper.time_update_abs(fout, + std::chrono::nanoseconds{ TICK_NS * i }); +~~~ + +## Example + +The above code results in this VCD header: + +~~~ +$date + Thu Jan 1 00:00:00 1970 +$end +$timescale + 1ns +$end +$version + C++ Simple VCD Logger +$end +$scope module root $end +$scope module digital $end +$var wire 1 ! clk $end +$scope module bus $end +$var wire 16 $ addr $end +$var wire 32 % data $end +$var wire 4 & burst $end +$var wire 1 ' wr_strb $end +$upscope $end +$upscope $end +$scope module analog $end +$var real 64 " wave $end +$upscope $end +$upscope $end +$enddefinitions $end +~~~ + +The trace data is: + +~~~ +#0 +x! +r6.910777109229929e-310 " +x# +bx $ +bx % +bx & +x' +0! +r5 " +0# +b0 $ +b0 % +b01 & +1! +r5.028274147845015 " +#1 +0! +r5.056547179475086 " +1# +#2 +~~~ + +The output will look something like this: + +![GTKWave ](doc/images/example_signals.png) + +## Implementation + +This library is designed to use dependency injection rather than a C++ +class hierarchy for defining the relation between design hierarchy and +variables. This allows the module and signal hierarchy creation to be de-coupled from tracing. + +## Related Projects + +Other Open Source Software using VCD: + +Viewers: + +- http://gtkwave.sourceforge.net/ (Opensource waveform viewer) + +Tracers: + +- https://github.com/accellera-official/systemc (C++ Simulation) +- https://www.veripool.org/verilator/ (Verilog Simulator) +- http://iverilog.icarus.com/- (Verilog Simulator) +- https://github.com/westerndigitalcorporation/pyvcd (Output from Python) + +VCD Descriptions: + +- https://wiki.tcl-lang.org/page/VCD +- https://en.wikipedia.org/wiki/Value_change_dump + + +## Thanks + +This repository was generated from . diff --git a/cmake/Cache.cmake b/cmake/Cache.cmake new file mode 100644 index 0000000..31f5e7e --- /dev/null +++ b/cmake/Cache.cmake @@ -0,0 +1,29 @@ +option(ENABLE_CACHE "Enable cache if available" ON) +if(NOT ENABLE_CACHE) + return() +endif() + +set(CACHE_OPTION + "ccache" + CACHE STRING "Compiler cache to be used") +set(CACHE_OPTION_VALUES "ccache" "sccache") +set_property(CACHE CACHE_OPTION PROPERTY STRINGS ${CACHE_OPTION_VALUES}) +list( + FIND + CACHE_OPTION_VALUES + ${CACHE_OPTION} + CACHE_OPTION_INDEX) + +if(${CACHE_OPTION_INDEX} EQUAL -1) + message( + STATUS + "Using custom compiler cache system: '${CACHE_OPTION}', explicitly supported entries are ${CACHE_OPTION_VALUES}") +endif() + +find_program(CACHE_BINARY ${CACHE_OPTION}) +if(CACHE_BINARY) + message(STATUS "${CACHE_OPTION} found and enabled") + set(CMAKE_CXX_COMPILER_LAUNCHER ${CACHE_BINARY}) +else() + message(WARNING "${CACHE_OPTION} is enabled but was not found. Not using it") +endif() diff --git a/cmake/CompilerWarnings.cmake b/cmake/CompilerWarnings.cmake new file mode 100644 index 0000000..d09ffd6 --- /dev/null +++ b/cmake/CompilerWarnings.cmake @@ -0,0 +1,79 @@ +# from here: +# +# https://github.com/lefticus/cppbestpractices/blob/master/02-Use_the_Tools_Available.md + +function(set_project_warnings project_name) + option(WARNINGS_AS_ERRORS "Treat compiler warnings as errors" ON) + + set(MSVC_WARNINGS + /W4 # Baseline reasonable warnings + /w14242 # 'identifier': conversion from 'type1' to 'type1', possible loss of data + /w14254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data + /w14263 # 'function': member function does not override any base class virtual member function + /w14265 # 'classname': class has virtual functions, but destructor is not virtual instances of this class may not + # be destructed correctly + /w14287 # 'operator': unsigned/negative constant mismatch + /we4289 # nonstandard extension used: 'variable': loop control variable declared in the for-loop is used outside + # the for-loop scope + /w14296 # 'operator': expression is always 'boolean_value' + /w14311 # 'variable': pointer truncation from 'type1' to 'type2' + /w14545 # expression before comma evaluates to a function which is missing an argument list + /w14546 # function call before comma missing argument list + /w14547 # 'operator': operator before comma has no effect; expected operator with side-effect + /w14549 # 'operator': operator before comma has no effect; did you intend 'operator'? + /w14555 # expression has no effect; expected expression with side- effect + /w14619 # pragma warning: there is no warning number 'number' + /w14640 # Enable warning on thread un-safe static member initialization + /w14826 # Conversion from 'type1' to 'type_2' is sign-extended. This may cause unexpected runtime behavior. + /w14905 # wide string literal cast to 'LPSTR' + /w14906 # string literal cast to 'LPWSTR' + /w14928 # illegal copy-initialization; more than one user-defined conversion has been implicitly applied + /permissive- # standards conformance mode for MSVC compiler. + ) + + set(CLANG_WARNINGS + -Wall + -Wextra # reasonable and standard + -Wshadow # warn the user if a variable declaration shadows one from a parent context + -Wnon-virtual-dtor # warn the user if a class with virtual functions has a non-virtual destructor. This helps + # catch hard to track down memory errors + -Wold-style-cast # warn for c-style casts + -Wcast-align # warn for potential performance problem casts + -Wunused # warn on anything being unused + -Woverloaded-virtual # warn if you overload (not override) a virtual function + -Wpedantic # warn if non-standard C++ is used + -Wconversion # warn on type conversions that may lose data + -Wsign-conversion # warn on sign conversions + -Wnull-dereference # warn if a null dereference is detected + -Wdouble-promotion # warn if float is implicit promoted to double + -Wformat=2 # warn on security issues around functions that format output (ie printf) + -Wimplicit-fallthrough # warn on statements that fallthrough without an explicit annotation + ) + + if(WARNINGS_AS_ERRORS) + set(CLANG_WARNINGS ${CLANG_WARNINGS} -Werror) + set(MSVC_WARNINGS ${MSVC_WARNINGS} /WX) + endif() + + set(GCC_WARNINGS + ${CLANG_WARNINGS} + -Wmisleading-indentation # warn if indentation implies blocks where blocks do not exist + -Wduplicated-cond # warn if if / else chain has duplicated conditions + -Wduplicated-branches # warn if if / else branches have duplicated code + -Wlogical-op # warn about logical operations being used where bitwise were probably wanted + -Wuseless-cast # warn if you perform a cast to the same type + ) + + if(MSVC) + set(PROJECT_WARNINGS ${MSVC_WARNINGS}) + elseif(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang") + set(PROJECT_WARNINGS ${CLANG_WARNINGS}) + elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + set(PROJECT_WARNINGS ${GCC_WARNINGS}) + else() + message(AUTHOR_WARNING "No compiler warnings set for '${CMAKE_CXX_COMPILER_ID}' compiler.") + endif() + + target_compile_options(${project_name} INTERFACE ${PROJECT_WARNINGS}) + +endfunction() diff --git a/cmake/Conan.cmake b/cmake/Conan.cmake new file mode 100644 index 0000000..b57566f --- /dev/null +++ b/cmake/Conan.cmake @@ -0,0 +1,60 @@ +macro(run_conan) + # Download automatically, you can also just copy the conan.cmake file + if(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake") + message( + STATUS + "Downloading conan.cmake from https://github.com/conan-io/cmake-conan") + file( + DOWNLOAD + "https://raw.githubusercontent.com/conan-io/cmake-conan/v0.16.1/conan.cmake" + "${CMAKE_BINARY_DIR}/conan.cmake" + EXPECTED_HASH + SHA256=396e16d0f5eabdc6a14afddbcfff62a54a7ee75c6da23f32f7a31bc85db23484 + TLS_VERIFY ON) + endif() + + set(ENV{CONAN_REVISIONS_ENABLED} 1) + list(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR}) + list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}) + + include(${CMAKE_BINARY_DIR}/conan.cmake) + + # Add (or remove) remotes as needed + # conan_add_remote(NAME conan-center URL https://conan.bintray.com) + conan_add_remote(NAME cci URL https://center.conan.io INDEX 0) + conan_add_remote( + NAME bincrafters URL + https://bincrafters.jfrog.io/artifactory/api/conan/public-conan) + + # For multi configuration generators, like VS and XCode + if(NOT CMAKE_CONFIGURATION_TYPES) + message(STATUS "Single configuration build!") + set(LIST_OF_BUILD_TYPES ${CMAKE_BUILD_TYPE}) + else() + message(STATUS "Multi-configuration build: '${CMAKE_CONFIGURATION_TYPES}'!") + set(LIST_OF_BUILD_TYPES ${CMAKE_CONFIGURATION_TYPES}) + endif() + + foreach(TYPE ${LIST_OF_BUILD_TYPES}) + message(STATUS "Running Conan for build type '${TYPE}'") + + # Detects current build settings to pass into conan + conan_cmake_autodetect(settings BUILD_TYPE ${TYPE}) + + # PATH_OR_REFERENCE ${CMAKE_SOURCE_DIR} is used to tell conan to process + # the external "conanfile.py" provided with the project + # Alternatively a conanfile.txt could be used + conan_cmake_install( + PATH_OR_REFERENCE + ${CMAKE_SOURCE_DIR} + BUILD + missing + # Pass compile-time configured options into conan + OPTIONS + cpp_starter_use_imgui=${CPP_STARTER_USE_IMGUI} + cpp_starter_use_sdl=${CPP_STARTER_USE_SDL} + SETTINGS + ${settings}) + endforeach() + +endmacro() diff --git a/cmake/Doxygen.cmake b/cmake/Doxygen.cmake new file mode 100644 index 0000000..4dad807 --- /dev/null +++ b/cmake/Doxygen.cmake @@ -0,0 +1,11 @@ +function(enable_doxygen) + option(ENABLE_DOXYGEN "Enable doxygen doc builds of source" OFF) + if(ENABLE_DOXYGEN) + set(DOXYGEN_CALLER_GRAPH YES) + set(DOXYGEN_CALL_GRAPH YES) + set(DOXYGEN_EXTRACT_ALL YES) + find_package(Doxygen REQUIRED dot) + doxygen_add_docs(doxygen-docs ${PROJECT_SOURCE_DIR}) + + endif() +endfunction() diff --git a/cmake/Linker.cmake b/cmake/Linker.cmake new file mode 100644 index 0000000..8b9471e --- /dev/null +++ b/cmake/Linker.cmake @@ -0,0 +1,33 @@ +option(ENABLE_USER_LINKER "Enable a specific linker if available" OFF) + +include(CheckCXXCompilerFlag) + +set(USER_LINKER_OPTION + "lld" + CACHE STRING "Linker to be used") +set(USER_LINKER_OPTION_VALUES "lld" "gold" "bfd") +set_property(CACHE USER_LINKER_OPTION PROPERTY STRINGS ${USER_LINKER_OPTION_VALUES}) +list( + FIND + USER_LINKER_OPTION_VALUES + ${USER_LINKER_OPTION} + USER_LINKER_OPTION_INDEX) + +if(${USER_LINKER_OPTION_INDEX} EQUAL -1) + message( + STATUS + "Using custom linker: '${USER_LINKER_OPTION}', explicitly supported entries are ${USER_LINKER_OPTION_VALUES}") +endif() + +function(configure_linker project_name) + if(NOT ENABLE_USER_LINKER) + return() + endif() + + set(LINKER_FLAG "-fuse-ld=${USER_LINKER_OPTION}") + + check_cxx_compiler_flag(${LINKER_FLAG} CXX_SUPPORTS_USER_LINKER) + if(CXX_SUPPORTS_USER_LINKER) + target_compile_options(${project_name} INTERFACE ${LINKER_FLAG}) + endif() +endfunction() diff --git a/cmake/PreventInSourceBuilds.cmake b/cmake/PreventInSourceBuilds.cmake new file mode 100644 index 0000000..57d9c59 --- /dev/null +++ b/cmake/PreventInSourceBuilds.cmake @@ -0,0 +1,18 @@ +# +# This function will prevent in-source builds +function(AssureOutOfSourceBuilds) + # make sure the user doesn't play dirty with symlinks + get_filename_component(srcdir "${CMAKE_SOURCE_DIR}" REALPATH) + get_filename_component(bindir "${CMAKE_BINARY_DIR}" REALPATH) + + # disallow in-source builds + if("${srcdir}" STREQUAL "${bindir}") + message("######################################################") + message("Warning: in-source builds are disabled") + message("Please create a separate build directory and run cmake from there") + message("######################################################") + message(FATAL_ERROR "Quitting configuration") + endif() +endfunction() + +assureoutofsourcebuilds() diff --git a/cmake/Sanitizers.cmake b/cmake/Sanitizers.cmake new file mode 100644 index 0000000..55cdf8c --- /dev/null +++ b/cmake/Sanitizers.cmake @@ -0,0 +1,67 @@ +function(enable_sanitizers project_name) + + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES ".*Clang") + option(ENABLE_COVERAGE "Enable coverage reporting for gcc/clang" OFF) + + if(ENABLE_COVERAGE) + target_compile_options(${project_name} INTERFACE --coverage -O0 -g) + target_link_libraries(${project_name} INTERFACE --coverage) + endif() + + set(SANITIZERS "") + + option(ENABLE_SANITIZER_ADDRESS "Enable address sanitizer" OFF) + if(ENABLE_SANITIZER_ADDRESS) + list(APPEND SANITIZERS "address") + endif() + + option(ENABLE_SANITIZER_LEAK "Enable leak sanitizer" OFF) + if(ENABLE_SANITIZER_LEAK) + list(APPEND SANITIZERS "leak") + endif() + + option(ENABLE_SANITIZER_UNDEFINED_BEHAVIOR "Enable undefined behavior sanitizer" OFF) + if(ENABLE_SANITIZER_UNDEFINED_BEHAVIOR) + list(APPEND SANITIZERS "undefined") + endif() + + option(ENABLE_SANITIZER_THREAD "Enable thread sanitizer" OFF) + if(ENABLE_SANITIZER_THREAD) + if("address" IN_LIST SANITIZERS OR "leak" IN_LIST SANITIZERS) + message(WARNING "Thread sanitizer does not work with Address and Leak sanitizer enabled") + else() + list(APPEND SANITIZERS "thread") + endif() + endif() + + option(ENABLE_SANITIZER_MEMORY "Enable memory sanitizer" OFF) + if(ENABLE_SANITIZER_MEMORY AND CMAKE_CXX_COMPILER_ID MATCHES ".*Clang") + message(WARNING "Memory sanitizer requires all the code (including libc++) to be MSan-instrumented otherwise it reports false positives") + if("address" IN_LIST SANITIZERS + OR "thread" IN_LIST SANITIZERS + OR "leak" IN_LIST SANITIZERS) + message(WARNING "Memory sanitizer does not work with Address, Thread and Leak sanitizer enabled") + else() + list(APPEND SANITIZERS "memory") + endif() + endif() + + list( + JOIN + SANITIZERS + "," + LIST_OF_SANITIZERS) + + endif() + + if(LIST_OF_SANITIZERS) + if(NOT + "${LIST_OF_SANITIZERS}" + STREQUAL + "") + target_compile_options(${project_name} INTERFACE -fsanitize=${LIST_OF_SANITIZERS}) + target_link_options(${project_name} INTERFACE -fsanitize=${LIST_OF_SANITIZERS}) + endif() + endif() + +endfunction() diff --git a/cmake/StandardProjectSettings.cmake b/cmake/StandardProjectSettings.cmake new file mode 100644 index 0000000..66bbaa7 --- /dev/null +++ b/cmake/StandardProjectSettings.cmake @@ -0,0 +1,42 @@ +# Set a default build type if none was specified +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + message(STATUS "Setting build type to 'RelWithDebInfo' as none was specified.") + set(CMAKE_BUILD_TYPE + RelWithDebInfo + CACHE STRING "Choose the type of build." FORCE) + # Set the possible values of build type for cmake-gui, ccmake + set_property( + CACHE CMAKE_BUILD_TYPE + PROPERTY STRINGS + "Debug" + "Release" + "MinSizeRel" + "RelWithDebInfo") +endif() + +# Generate compile_commands.json to make it easier to work with clang based tools +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + +option(ENABLE_IPO "Enable Interprocedural Optimization, aka Link Time Optimization (LTO)" OFF) + +if(ENABLE_IPO) + include(CheckIPOSupported) + check_ipo_supported( + RESULT + result + OUTPUT + output) + if(result) + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) + else() + message(SEND_ERROR "IPO is not supported: ${output}") + endif() +endif() +if(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang") + add_compile_options(-fcolor-diagnostics) +elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + add_compile_options() +else() + message(STATUS "No colored compiler diagnostic set for '${CMAKE_CXX_COMPILER_ID}' compiler.") +endif() + diff --git a/cmake/StaticAnalyzers.cmake b/cmake/StaticAnalyzers.cmake new file mode 100644 index 0000000..6dffdf8 --- /dev/null +++ b/cmake/StaticAnalyzers.cmake @@ -0,0 +1,41 @@ +option(ENABLE_CPPCHECK "Enable static analysis with cppcheck" OFF) +option(ENABLE_CLANG_TIDY "Enable static analysis with clang-tidy" OFF) +option(ENABLE_INCLUDE_WHAT_YOU_USE "Enable static analysis with include-what-you-use" OFF) + +if(ENABLE_CPPCHECK) + find_program(CPPCHECK cppcheck) + if(CPPCHECK) + set(CMAKE_CXX_CPPCHECK + ${CPPCHECK} + --suppress=missingInclude + --enable=all + --inline-suppr + --inconclusive) + if(WARNINGS_AS_ERRORS) + list(APPEND CMAKE_CXX_CPPCHECK --error-exitcode=2) + endif() + else() + message(SEND_ERROR "cppcheck requested but executable not found") + endif() +endif() + +if(ENABLE_CLANG_TIDY) + find_program(CLANGTIDY clang-tidy) + if(CLANGTIDY) + set(CMAKE_CXX_CLANG_TIDY ${CLANGTIDY} -extra-arg=-Wno-unknown-warning-option) + if(WARNINGS_AS_ERRORS) + list(APPEND CMAKE_CXX_CLANG_TIDY -warnings-as-errors=*) + endif() + else() + message(SEND_ERROR "clang-tidy requested but executable not found") + endif() +endif() + +if(ENABLE_INCLUDE_WHAT_YOU_USE) + find_program(INCLUDE_WHAT_YOU_USE include-what-you-use) + if(INCLUDE_WHAT_YOU_USE) + set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE ${INCLUDE_WHAT_YOU_USE}) + else() + message(SEND_ERROR "include-what-you-use requested but executable not found") + endif() +endif() diff --git a/conanfile.py b/conanfile.py new file mode 100644 index 0000000..c75352d --- /dev/null +++ b/conanfile.py @@ -0,0 +1,26 @@ +from conans import ConanFile + + +class SimpleVcd(ConanFile): + # Note: options are copied from CMake boolean options. + # When turned off, CMake sometimes passes them as empty strings. + options = { + "cpp_starter_use_imgui": ["ON", "OFF", ""], + "cpp_starter_use_sdl": ["ON", "OFF", ""] + } + name = "SimpleVcd" + version = "0.1" + requires = ( + "catch2/2.13.7", + "docopt.cpp/0.6.2", + "fmt/8.0.1", + "spdlog/1.9.2", + ) + generators = "cmake", "gcc", "txt", "cmake_find_package" + + def requirements(self): + if self.options.cpp_starter_use_imgui == "ON": + self.requires("imgui-sfml/2.1@bincrafters/stable") + if self.options.cpp_starter_use_sdl == "ON": + self.requires("sdl2/2.0.10@bincrafters/stable") + diff --git a/doc/images/example_signals.png b/doc/images/example_signals.png new file mode 100644 index 0000000000000000000000000000000000000000..628f521816911ea3c7da015dd51eb1b4bd673e21 GIT binary patch literal 64334 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 c!A$BZ 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 literal 0 HcmV?d00001 diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt new file mode 100644 index 0000000..76872fa --- /dev/null +++ b/example/CMakeLists.txt @@ -0,0 +1,7 @@ +include(CTest) + +add_executable(signals signals.cpp) +target_link_libraries(signals PRIVATE project_warnings project_options vcd_tracer) +target_compile_features(signals PRIVATE cxx_std_17) + +add_test(NAME signals_example COMMAND signals /dev/null) diff --git a/example/signals.cpp b/example/signals.cpp new file mode 100644 index 0000000..a70f09d --- /dev/null +++ b/example/signals.cpp @@ -0,0 +1,115 @@ +/* + * C++ VCD Tracer Library Signal Definition and Tracing Example. + * + * For more information see https://github.com/nakane1chome/cpp-vcd-tracer + * + * Copyright (c) 2022, Philip Mulholland + * All rights reserved. + * + * Using the BSD 3-Clause License + * + * See LICENSE for license details. + */ + + +#include "../src/vcd_tracer.hpp" +#include +#include +#include +#include + +std::array memory {0}; +static constexpr double WAVE_FREQ_HZ=1e6; +static constexpr double WAVE_AMPL_V=4.5; +static constexpr double WAVE_BIAS_V=5.0; +static constexpr unsigned int CYCLES = 10000; +static constexpr unsigned int TICK_NS = 1; + +int main(int argc, const char **argv) { + + const std::string fout_name{ (argc > 1) ? argv[1] : "signals.vcd" }; + + // Define the signals we want to trace. Only one sample is + // buffered, so each interation needs to write to disk. + vcd_tracer::value clock1; + vcd_tracer::value clock2; + vcd_tracer::value sine_wave; + vcd_tracer::value addr; + vcd_tracer::value data; + vcd_tracer::value burst; + vcd_tracer::value wr_rd_n; + + + // The top module defines the base of the signal hierarchy + // It also owns + vcd_tracer::top dumper("root"); + + // Define a module hierarchy and associate signals with it + // This elaboration is indepdent of the signal definition above + // so the modules can be deallocated + { + // Create two child domains. + // Any number + vcd_tracer::module digital(dumper.root, "digital"); + vcd_tracer::module bus(digital, "bus"); + vcd_tracer::module analog(dumper.root, "analog"); + + // The elaboration of signals inside of the module hierarchy + digital.elaborate(clock1, "clk"); + analog.elaborate(sine_wave, "wave"); + bus.elaborate(clock2, "clk"); + bus.elaborate(addr, "addr"); + bus.elaborate(data, "data"); + bus.elaborate(burst, "burst"); + bus.elaborate(wr_rd_n, "wr_strb"); + } + + // Open a file for output + { + std::ofstream fout(fout_name); + + // Finalize signals before tracing11 + // The VCD format does not allow dynamic signal definition. + dumper.finalize_header(fout, + std::chrono::system_clock::from_time_t(0)); + + unsigned int mem_addr = 0; + burst.set(1); + + for (unsigned int i=0; i> 1) & 0x1); + + // Waveform + const double seconds = static_cast(i) * 1e-9 * TICK_NS; + sine_wave.set( WAVE_BIAS_V + (WAVE_AMPL_V * sin(seconds * WAVE_FREQ_HZ * 2.0 * M_PI))); + + // Memory read write + if ((i % 100)==20) { + // Write + wr_rd_n.set(true); + mem_addr = i % memory.size(); + memory[mem_addr] = i * 0x98764321 + 0x33442677; + } + if ((i % 100)==21) { + wr_rd_n.set(false); + } + if ((i % 100)==20) { + // read + addr.set(static_cast(i % memory.size())); + } + addr.set(static_cast(mem_addr&0xFFFF)); + data.set(memory[mem_addr]); + + + dumper.time_update_abs(fout, std::chrono::nanoseconds{ TICK_NS * i }); + + } + + } + + return 0; +} diff --git a/example/signals.gtkw b/example/signals.gtkw new file mode 100644 index 0000000..6672493 --- /dev/null +++ b/example/signals.gtkw @@ -0,0 +1,37 @@ +[*] +[*] GTKWave Analyzer v3.4.0 (w)1999-2022 BSI +[*] Fri Aug 5 14:33:20 2022 +[*] +[dumpfile] "/home/phil/github-wsl/simple-vcd/signals.vcd" +[dumpfile_mtime] "Fri Aug 5 14:32:32 2022" +[dumpfile_size] 320209 +[savefile] "/home/phil/github-wsl/simple-vcd/signals.gtkw" +[timestart] 334 +[size] 1920 993 +[pos] -1 -1 +*-8.722319 1212 -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 +[treeopen] root. +[treeopen] root.digital. +[sst_width] 297 +[signals_width] 254 +[sst_expanded] 1 +[sst_vpaned_height] 295 +@8029 +root.analog.wave +@20000 +- +- +- +- +@28 +root.digital.clk +root.digital.bus.clk +@24 +root.digital.bus.addr[15:0] +@22 +root.digital.bus.burst[3:0] +root.digital.bus.data[31:0] +@28 +root.digital.bus.wr_strb +[pattern_trace] 1 +[pattern_trace] 0 diff --git a/example/signals.vcd b/example/signals.vcd new file mode 100644 index 0000000..8a51aa4 --- /dev/null +++ b/example/signals.vcd @@ -0,0 +1,35435 @@ +$date + Thu Jan 1 00:00:00 1970 +$end +$timescale + 1ns +$end +$version + C++ Simple VCD Logger +$end +$scope module root $end +$scope module digital $end +$var wire 1 ! clk $end +$scope module bus $end +$var wire 1 # clk $end +$var wire 16 $ addr $end +$var wire 32 % data $end +$var wire 4 & burst $end +$var wire 1 ' wr_strb $end +$upscope $end +$upscope $end +$scope module analog $end +$var real 64 " wave $end +$upscope $end +$upscope $end +$enddefinitions $end +#0 +x! +r6.910777109229929e-310 " +x# +bx $ +bx % +bx & +x' +0! +r5 " +0# +b0 $ +b0 % +b01 & +1! +r5.028274147845015 " +#1 +0! +r5.056547179475086 " +1# +#2 +1! +r5.084817978719337 " +#3 +0! +r5.113085429495019 " +0# +#4 +1! +r5.141348415851577 " +#5 +0! +r5.169605822014706 " +1# +#6 +1! +r5.197856532430392 " +#7 +0! +r5.226099431808963 " +0# +#8 +1! +r5.254333405169111 " +#9 +0! +r5.28255733788191 " +1# +#10 +1! +r5.310770115714826 " +#11 +0! +r5.338970624875698 " +0# +#12 +1! +r5.367157752056709 " +#13 +0! +r5.395330384478345 " +1# +#14 +1! +r5.423487409933315 " +#15 +0! +r5.451627716830467 " +0# +#16 +1! +r5.47975019423867 " +#17 +0! +r5.507853731930668 " +1# +#18 +1! +r5.535937220426914 " +#19 +0! +r5.56399955103937 " +0# +b010100 $ +b011100100000010110010100001011 % +1' +#20 +1! +r5.592039615915271 " +0' +#21 +0! +r5.620056308080871 " +1# +#22 +1! +r5.648048521485134 " +#23 +0! +r5.676015151043407 " +0# +#24 +1! +r5.703955092681039 " +#25 +0! +r5.731867243376977 " +1# +#26 +1! +r5.759750501207303 " +#27 +0! +r5.787603765388742 " +0# +#28 +1! +r5.815425936322118 " +#29 +0! +r5.843215915635761 " +1# +#30 +1! +r5.870972606228871 " +#31 +0! +r5.898694912314832 " +0# +#32 +1! +r5.926381739464466 " +#33 +0! +r5.954031994649246 " +1# +#34 +1! +r5.981644586284442 " +#35 +0! +r6.009218424272215 " +0# +#36 +1! +r6.036752420044658 " +#37 +0! +r6.064245486606762 " +1# +#38 +1! +r6.091696538579334 " +#39 +0! +r6.119104492241846 " +0# +#40 +1! +r6.146468265575219 " +#41 +0! +r6.173786778304536 " +1# +#42 +1! +r6.20105895194169 " +#43 +0! +r6.228283709827964 " +0# +#44 +1! +r6.255459977176532 " +#45 +0! +r6.282586681114893 " +1# +#46 +1! +r6.309662750727224 " +#47 +0! +r6.336687117096657 " +0# +#48 +1! +r6.363658713347482 " +#49 +0! +r6.390576474687263 " +1# +#50 +1! +r6.417439338448871 " +#51 +0! +r6.444246244132443 " +0# +#52 +1! +r6.470996133447241 " +#53 +0! +r6.497687950353439 " +1# +#54 +1! +r6.524320641103811 " +#55 +0! +r6.550893154285327 " +0# +#56 +1! +r6.577404440860666 " +#57 +0! +r6.603853454209628 " +1# +#58 +1! +r6.630239150170455 " +#59 +0! +r6.656560487081051 " +0# +#60 +1! +r6.682816425820102 " +#61 +0! +r6.709005929848105 " +1# +#62 +1! +r6.735127965248285 " +#63 +0! +r6.761181500767411 " +0# +#64 +1! +r6.787165507856512 " +#65 +0! +r6.813078960711482 " +1# +#66 +1! +r6.838920836313571 " +#67 +0! +r6.864690114469779 " +0# +#68 +1! +r6.890385777853128 " +#69 +0! +r6.916006812042827 " +1# +#70 +1! +r6.941552205564316 " +#71 +0! +r6.967020949929198 " +0# +#72 +1! +r6.992412039675057 " +#73 +0! +r7.017724472405146 " +1# +#74 +1! +r7.04295724882796 " +#75 +0! +r7.068109372796695 " +0# +#76 +1! +r7.093179851348562 " +#77 +0! +r7.118167694743997 " +1# +#78 +1! +r7.143071916505725 " +#79 +0! +r7.167891533457719 " +0# +#80 +1! +r7.192625565763995 " +#81 +0! +r7.217273036967311 " +1# +#82 +1! +r7.241832974027709 " +#83 +0! +r7.266304407360924 " +0# +#84 +1! +r7.290686370876671 " +#85 +0! +r7.314977902016778 " +1# +#86 +1! +r7.339178041793193 " +#87 +0! +r7.363285834825831 " +0# +#88 +1! +r7.387300329380303 " +#89 +0! +r7.411220577405485 " +1# +#90 +1! +r7.435045634570942 " +#91 +0! +r7.458774560304211 " +0# +#92 +1! +r7.482406417827937 " +#93 +0! +r7.505940274196846 " +1# +#94 +1! +r7.529375200334588 " +#95 +0! +r7.552710271070405 " +0# +#96 +1! +r7.575944565175659 " +#97 +0! +r7.599077165400205 " +1# +#98 +1! +r7.622107158508593 " +#99 +0! +r7.645033635316129 " +0# +#100 +1! +r7.667855690724767 " +#101 +0! +r7.690572423758835 " +1# +#102 +1! +r7.713182937600611 " +#103 +0! +r7.735686339625724 " +0# +#104 +1! +r7.758081741438394 " +#105 +0! +r7.780368258906504 " +1# +#106 +1! +r7.802545012196506 " +#107 +0! +r7.824611125808152 " +0# +#108 +1! +r7.846565728609059 " +#109 +0! +r7.868407953869103 " +1# +#110 +1! +r7.89013693929463 " +#111 +0! +r7.911751827062499 " +0# +#112 +1! +r7.933251763853955 " +#113 +0! +r7.954635900888304 " +1# +#114 +1! +r7.975903393956433 " +#115 +0! +r7.997053403454133 " +0# +#116 +1! +r8.018085094415241 " +#117 +0! +r8.038997636544611 " +1# +#118 +1! +r8.059790204250886 " +#119 +0! +r8.0804619766791 " +0# +b01111000 $ +b10101010101100111001110111101111 % +1' +#120 +1! +r8.101012137743069 " +0' +#121 +0! +r8.121439876157623 " +1# +#122 +1! +r8.141744385470627 " +#123 +0! +r8.161924864094821 " +0# +#124 +1! +r8.181980515339465 " +#125 +0! +r8.201910547441784 " +1# +#126 +1! +r8.22171417359824 " +#127 +0! +r8.24139061199558 " +0# +#128 +1! +r8.260939085841709 " +#129 +0! +r8.280358823396352 " +1# +#130 +1! +r8.299649058001521 " +#131 +0! +r8.318809028111783 " +0# +#132 +1! +r8.337837977324327 " +#133 +0! +r8.35673515440882 " +1# +#134 +1! +r8.375499813337068 " +#135 +0! +r8.394131213312466 " +0# +#136 +1! +r8.412628618799248 " +#137 +0! +r8.430991299551515 " +1# +#138 +1! +r8.449218530642074 " +#139 +0! +r8.467309592491052 " +0# +#140 +1! +r8.485263770894303 " +#141 +0! +r8.503080357051605 " +1# +#142 +1! +r8.520758647594647 " +#143 +0! +r8.538297944614785 " +0# +#144 +1! +r8.555697555690607 " +#145 +0! +r8.57295679391526 " +1# +#146 +1! +r8.590074977923571 " +#147 +0! +r8.607051431918944 " +0# +#148 +1! +r8.623885485700049 " +#149 +0! +r8.640576474687263 " +1# +#150 +1! +r8.657123739948924 " +#151 +0! +r8.673526628227329 " +0# +#152 +1! +r8.689784491964534 " +#153 +0! +r8.705896689327924 " +1# +#154 +1! +r8.721862584235527 " +#155 +0! +r8.737681546381157 " +0# +#156 +1! +r8.75335295125927 " +#157 +0! +r8.768876180189638 " +1# +#158 +1! +r8.78425062034176 " +#159 +0! +r8.799475664759068 " +0# +#160 +1! +r8.814550712382875 " +#161 +0! +r8.829475168076113 " +1# +#162 +1! +r8.844248442646828 " +#163 +0! +r8.858869952871435 " +0# +#164 +1! +r8.873339121517747 " +#165 +0! +r8.887655377367759 " +1# +#166 +1! +r8.901818155240205 " +#167 +0! +r8.915826896012867 " +0# +#168 +1! +r8.929681046644641 " +#169 +0! +r8.943380060197386 " +1# +#170 +1! +r8.956923395857503 " +#171 +0! +r8.970310518957289 " +0# +#172 +1! +r8.983540900996047 " +#173 +0! +r8.996614019660951 " +1# +#174 +1! +r9.009529358847654 " +#175 +0! +r9.022286408680687 " +0# +#176 +1! +r9.034884665533561 " +#177 +0! +r9.04732363204867 " +1# +#178 +1! +r9.059602817156913 " +#179 +0! +r9.071721736097089 " +0# +#180 +1! +r9.083679910435027 " +#181 +0! +r9.095476868082482 " +1# +#182 +1! +r9.107112143315764 " +#183 +0! +r9.118585276794128 " +0# +#184 +1! +r9.129895815577914 " +#185 +0! +r9.141043313146417 " +1# +#186 +1! +r9.152027329415517 " +#187 +0! +r9.162847430755061 " +0# +#188 +1! +r9.173503190005977 " +#189 +0! +r9.183994186497131 " +1# +#190 +1! +r9.19432000606195 " +#191 +0! +r9.204480241054755 " +0# +#192 +1! +r9.214474490366865 " +#193 +0! +r9.224302359442433 " +1# +#194 +1! +r9.233963460294014 " +#195 +0! +r9.243457411517891 " +0# +#196 +1! +r9.252783838309121 " +#197 +0! +r9.26194237247635 " +1# +#198 +1! +r9.270932652456326 " +#199 +0! +r9.279754323328191 " +0# +#200 +1! +r9.288407036827484 " +#201 +0! +r9.296890451359893 " +1# +#202 +1! +r9.305204232014738 " +#203 +0! +r9.313348050578192 " +0# +#204 +1! +r9.321321585546244 " +#205 +0! +r9.329124522137388 " +1# +#206 +1! +r9.336756552305044 " +#207 +0! +r9.344217374749732 " +0# +#208 +1! +r9.351506694930958 " +#209 +0! +r9.35862422507884 " +1# +#210 +1! +r9.365569684205477 " +#211 +0! +r9.372342798116033 " +0# +#212 +1! +r9.37894329941957 " +#213 +0! +r9.385370927539597 " +1# +#214 +1! +r9.391625428724364 " +#215 +0! +r9.397706556056871 " +0# +#216 +1! +r9.403614069464624 " +#217 +0! +r9.40934773572911 " +1# +#218 +1! +r9.414907328495003 " +#219 +0! +r9.4202926282791 " +0# +b011011100 $ +b0111000111001011101011011010011 % +1' +#220 +1! +r9.425503422478984 " +0' +#221 +0! +r9.430539505381425 " +1# +#222 +1! +r9.435400678170492 " +#223 +0! +r9.440086748935407 " +0# +#224 +1! +r9.44459753267812 " +#225 +0! +r9.448932851320613 " +1# +#226 +1! +r9.45309253371193 " +#227 +0! +r9.45707641563493 " +0# +#228 +1! +r9.460884339812779 " +#229 +0! +r9.464516155915151 " +1# +#230 +1! +r9.467971720564162 " +#231 +0! +r9.471250897340038 " +0# +#232 +1! +r9.474353556786495 " +#233 +0! +r9.47727957641585 " +1# +#234 +1! +r9.48002884071386 " +#235 +0! +r9.482601241144277 " +0# +#236 +1! +r9.484996676153134 " +#237 +0! +r9.487215051172763 " +1# +#238 +1! +r9.489256278625515 " +#239 +0! +r9.491120277927223 " +0# +#240 +1! +r9.492806975490389 " +#241 +0! +r9.494316304727079 " +1# +#242 +1! +r9.495648206051561 " +#243 +0! +r9.496802626882651 " +0# +#244 +1! +r9.497779521645793 " +#245 +0! +r9.49857885177485 " +1# +#246 +1! +r9.499200585713641 " +#247 +0! +r9.499644698917173 " +0# +#248 +1! +r9.499911173852617 " +#249 +0! +r9.5 " +1# +#250 +1! +r9.499911173852617 " +#251 +0! +r9.499644698917173 " +0# +#252 +1! +r9.499200585713641 " +#253 +0! +r9.49857885177485 " +1# +#254 +1! +r9.497779521645793 " +#255 +0! +r9.496802626882651 " +0# +#256 +1! +r9.495648206051561 " +#257 +0! +r9.494316304727079 " +1# +#258 +1! +r9.492806975490389 " +#259 +0! +r9.491120277927223 " +0# +#260 +1! +r9.489256278625515 " +#261 +0! +r9.487215051172763 " +1# +#262 +1! +r9.484996676153134 " +#263 +0! +r9.482601241144277 " +0# +#264 +1! +r9.48002884071386 " +#265 +0! +r9.47727957641585 " +1# +#266 +1! +r9.474353556786495 " +#267 +0! +r9.471250897340038 " +0# +#268 +1! +r9.467971720564162 " +#269 +0! +r9.464516155915149 " +1# +#270 +1! +r9.460884339812779 " +#271 +0! +r9.45707641563493 " +0# +#272 +1! +r9.45309253371193 " +#273 +0! +r9.448932851320613 " +1# +#274 +1! +r9.44459753267812 " +#275 +0! +r9.440086748935407 " +0# +#276 +1! +r9.435400678170492 " +#277 +0! +r9.430539505381425 " +1# +#278 +1! +r9.425503422478984 " +#279 +0! +r9.4202926282791 " +0# +#280 +1! +r9.414907328495003 " +#281 +0! +r9.40934773572911 " +1# +#282 +1! +r9.403614069464624 " +#283 +0! +r9.397706556056871 " +0# +#284 +1! +r9.391625428724364 " +#285 +0! +r9.385370927539597 " +1# +#286 +1! +r9.37894329941957 " +#287 +0! +r9.372342798116033 " +0# +#288 +1! +r9.365569684205475 " +#289 +0! +r9.35862422507884 " +1# +#290 +1! +r9.351506694930958 " +#291 +0! +r9.344217374749732 " +0# +#292 +1! +r9.336756552305044 " +#293 +0! +r9.329124522137386 " +1# +#294 +1! +r9.321321585546244 " +#295 +0! +r9.313348050578192 " +0# +#296 +1! +r9.305204232014738 " +#297 +0! +r9.296890451359893 " +1# +#298 +1! +r9.288407036827484 " +#299 +0! +r9.279754323328191 " +0# +#300 +1! +r9.270932652456327 " +#301 +0! +r9.261942372476348 " +1# +#302 +1! +r9.252783838309123 " +#303 +0! +r9.243457411517891 " +0# +#304 +1! +r9.233963460294014 " +#305 +0! +r9.224302359442433 " +1# +#306 +1! +r9.214474490366865 " +#307 +0! +r9.204480241054755 " +0# +#308 +1! +r9.19432000606195 " +#309 +0! +r9.183994186497131 " +1# +#310 +1! +r9.173503190005977 " +#311 +0! +r9.162847430755061 " +0# +#312 +1! +r9.152027329415517 " +#313 +0! +r9.141043313146415 " +1# +#314 +1! +r9.129895815577916 " +#315 +0! +r9.118585276794128 " +0# +#316 +1! +r9.107112143315762 " +#317 +0! +r9.09547686808248 " +1# +#318 +1! +r9.083679910435025 " +#319 +0! +r9.071721736097087 " +0# +b0101000000 $ +b1000111000110000000111110110111 % +1' +#320 +1! +r9.059602817156913 " +0' +#321 +0! +r9.04732363204867 " +1# +#322 +1! +r9.034884665533562 " +#323 +0! +r9.022286408680687 " +0# +#324 +1! +r9.009529358847654 " +#325 +0! +r8.996614019660951 " +1# +#326 +1! +r8.983540900996049 " +#327 +0! +r8.970310518957289 " +0# +#328 +1! +r8.956923395857503 " +#329 +0! +r8.943380060197386 " +1# +#330 +1! +r8.929681046644641 " +#331 +0! +r8.915826896012867 " +0# +#332 +1! +r8.901818155240205 " +#333 +0! +r8.887655377367759 " +1# +#334 +1! +r8.873339121517747 " +#335 +0! +r8.858869952871435 " +0# +#336 +1! +r8.844248442646828 " +#337 +0! +r8.829475168076112 " +1# +#338 +1! +r8.814550712382875 " +#339 +0! +r8.799475664759068 " +0# +#340 +1! +r8.784250620341762 " +#341 +0! +r8.768876180189638 " +1# +#342 +1! +r8.75335295125927 " +#343 +0! +r8.737681546381157 " +0# +#344 +1! +r8.721862584235527 " +#345 +0! +r8.705896689327924 " +1# +#346 +1! +r8.689784491964534 " +#347 +0! +r8.673526628227327 " +0# +#348 +1! +r8.657123739948922 " +#349 +0! +r8.640576474687263 " +1# +#350 +1! +r8.623885485700049 " +#351 +0! +r8.607051431918944 " +0# +#352 +1! +r8.590074977923571 " +#353 +0! +r8.572956793915258 " +1# +#354 +1! +r8.555697555690607 " +#355 +0! +r8.538297944614785 " +0# +#356 +1! +r8.520758647594647 " +#357 +0! +r8.503080357051605 " +1# +#358 +1! +r8.485263770894301 " +#359 +0! +r8.467309592491052 " +0# +#360 +1! +r8.449218530642074 " +#361 +0! +r8.430991299551515 " +1# +#362 +1! +r8.41262861879925 " +#363 +0! +r8.394131213312466 " +0# +#364 +1! +r8.375499813337068 " +#365 +0! +r8.356735154408819 " +1# +#366 +1! +r8.337837977324325 " +#367 +0! +r8.318809028111783 " +0# +#368 +1! +r8.299649058001521 " +#369 +0! +r8.280358823396352 " +1# +#370 +1! +r8.260939085841709 " +#371 +0! +r8.24139061199558 " +0# +#372 +1! +r8.22171417359824 " +#373 +0! +r8.201910547441784 " +1# +#374 +1! +r8.181980515339465 " +#375 +0! +r8.16192486409482 " +0# +#376 +1! +r8.141744385470627 " +#377 +0! +r8.121439876157622 " +1# +#378 +1! +r8.101012137743067 " +#379 +0! +r8.0804619766791 " +0# +#380 +1! +r8.059790204250886 " +#381 +0! +r8.038997636544611 " +1# +#382 +1! +r8.018085094415241 " +#383 +0! +r7.997053403454132 " +0# +#384 +1! +r7.975903393956433 " +#385 +0! +r7.954635900888302 " +1# +#386 +1! +r7.933251763853955 " +#387 +0! +r7.911751827062499 " +0# +#388 +1! +r7.890136939294631 " +#389 +0! +r7.868407953869104 " +1# +#390 +1! +r7.846565728609059 " +#391 +0! +r7.824611125808152 " +0# +#392 +1! +r7.802545012196506 " +#393 +0! +r7.780368258906504 " +1# +#394 +1! +r7.758081741438394 " +#395 +0! +r7.735686339625724 " +0# +#396 +1! +r7.71318293760061 " +#397 +0! +r7.690572423758834 " +1# +#398 +1! +r7.667855690724767 " +#399 +0! +r7.64503363531613 " +0# +#400 +1! +r7.622107158508593 " +#401 +0! +r7.599077165400205 " +1# +#402 +1! +r7.575944565175659 " +#403 +0! +r7.552710271070404 " +0# +#404 +1! +r7.529375200334587 " +#405 +0! +r7.505940274196846 " +1# +#406 +1! +r7.482406417827935 " +#407 +0! +r7.458774560304212 " +0# +#408 +1! +r7.435045634570942 " +#409 +0! +r7.411220577405485 " +1# +#410 +1! +r7.387300329380303 " +#411 +0! +r7.36328583482583 " +0# +#412 +1! +r7.339178041793194 " +#413 +0! +r7.314977902016778 " +1# +#414 +1! +r7.29068637087667 " +#415 +0! +r7.266304407360923 " +0# +#416 +1! +r7.241832974027709 " +#417 +0! +r7.217273036967312 " +1# +#418 +1! +r7.192625565763995 " +#419 +0! +r7.16789153345772 " +0# +b0110100100 $ +b01010101010010100100100010011011 % +1' +#420 +1! +r7.143071916505725 " +0' +#421 +0! +r7.118167694743995 " +1# +#422 +1! +r7.093179851348562 " +#423 +0! +r7.068109372796695 " +0# +#424 +1! +r7.04295724882796 " +#425 +0! +r7.017724472405144 " +1# +#426 +1! +r6.992412039675057 " +#427 +0! +r6.967020949929198 " +0# +#428 +1! +r6.941552205564315 " +#429 +0! +r6.916006812042828 " +1# +#430 +1! +r6.890385777853128 " +#431 +0! +r6.864690114469779 " +0# +#432 +1! +r6.838920836313569 " +#433 +0! +r6.81307896071148 " +1# +#434 +1! +r6.787165507856512 " +#435 +0! +r6.76118150076741 " +0# +#436 +1! +r6.735127965248284 " +#437 +0! +r6.709005929848105 " +1# +#438 +1! +r6.682816425820102 " +#439 +0! +r6.656560487081052 " +0# +#440 +1! +r6.630239150170454 " +#441 +0! +r6.603853454209629 " +1# +#442 +1! +r6.577404440860664 " +#443 +0! +r6.550893154285327 " +0# +#444 +1! +r6.524320641103811 " +#445 +0! +r6.497687950353439 " +1# +#446 +1! +r6.470996133447242 " +#447 +0! +r6.444246244132442 " +0# +#448 +1! +r6.417439338448872 " +#449 +0! +r6.390576474687264 " +1# +#450 +1! +r6.363658713347483 " +#451 +0! +r6.336687117096657 " +0# +#452 +1! +r6.309662750727221 " +#453 +0! +r6.282586681114893 " +1# +#454 +1! +r6.255459977176531 " +#455 +0! +r6.228283709827963 " +0# +#456 +1! +r6.201058951941691 " +#457 +0! +r6.173786778304535 " +1# +#458 +1! +r6.14646826557522 " +#459 +0! +r6.119104492241846 " +0# +#460 +1! +r6.091696538579333 " +#461 +0! +r6.064245486606761 " +1# +#462 +1! +r6.036752420044657 " +#463 +0! +r6.009218424272214 " +0# +#464 +1! +r5.981644586284441 " +#465 +0! +r5.954031994649247 " +1# +#466 +1! +r5.926381739464467 " +#467 +0! +r5.898694912314832 " +0# +#468 +1! +r5.870972606228872 " +#469 +0! +r5.843215915635761 " +1# +#470 +1! +r5.815425936322118 " +#471 +0! +r5.787603765388742 " +0# +#472 +1! +r5.759750501207302 " +#473 +0! +r5.731867243376975 " +1# +#474 +1! +r5.703955092681039 " +#475 +0! +r5.676015151043407 " +0# +#476 +1! +r5.648048521485134 " +#477 +0! +r5.620056308080871 " +1# +#478 +1! +r5.592039615915272 " +#479 +0! +r5.563999551039369 " +0# +#480 +1! +r5.535937220426913 " +#481 +0! +r5.507853731930668 " +1# +#482 +1! +r5.479750194238668 " +#483 +0! +r5.451627716830465 " +0# +#484 +1! +r5.423487409933315 " +#485 +0! +r5.395330384478344 " +1# +#486 +1! +r5.367157752056709 " +#487 +0! +r5.338970624875697 " +0# +#488 +1! +r5.310770115714828 " +#489 +0! +r5.282557337881909 " +1# +#490 +1! +r5.254333405169109 " +#491 +0! +r5.226099431808963 " +0# +#492 +1! +r5.197856532430392 " +#493 +0! +r5.169605822014705 " +1# +#494 +1! +r5.141348415851577 " +#495 +0! +r5.11308542949502 " +0# +#496 +1! +r5.084817978719336 " +#497 +0! +r5.056547179475086 " +1# +#498 +1! +r5.028274147845016 " +#499 +0! +r4.999999999999996 " +0# +#500 +1! +r4.971725852154985 " +#501 +0! +r4.943452820524914 " +1# +#502 +1! +r4.915182021280663 " +#503 +0! +r4.886914570504979 " +0# +#504 +1! +r4.858651584148424 " +#505 +0! +r4.830394177985296 " +1# +#506 +1! +r4.802143467569604 " +#507 +0! +r4.773900568191038 " +0# +#508 +1! +r4.74566659483089 " +#509 +0! +r4.71744266211809 " +1# +#510 +1! +r4.689229884285174 " +#511 +0! +r4.661029375124302 " +0# +#512 +1! +r4.63284224794329 " +#513 +0! +r4.604669615521653 " +1# +#514 +1! +r4.576512590066686 " +#515 +0! +r4.548372283169534 " +0# +#516 +1! +r4.520249805761331 " +#517 +0! +r4.492146268069333 " +1# +#518 +1! +r4.464062779573086 " +#519 +0! +r4.43600044896063 " +0# +b01000001000 $ +b100011011111001000000101111111 % +1' +#520 +1! +r4.407960384084729 " +0' +#521 +0! +r4.379943691919128 " +1# +#522 +1! +r4.351951478514865 " +#523 +0! +r4.323984848956594 " +0# +#524 +1! +r4.296044907318961 " +#525 +0! +r4.268132756623024 " +1# +#526 +1! +r4.240249498792698 " +#527 +0! +r4.212396234611258 " +0# +#528 +1! +r4.184574063677881 " +#529 +0! +r4.156784084364238 " +1# +#530 +1! +r4.129027393771128 " +#531 +0! +r4.101305087685168 " +0# +#532 +1! +r4.073618260535534 " +#533 +0! +r4.045968005350755 " +1# +#534 +1! +r4.018355413715558 " +#535 +0! +r3.990781575727785 " +0# +#536 +1! +r3.963247579955342 " +#537 +0! +r3.935754513393238 " +1# +#538 +1! +r3.908303461420666 " +#539 +0! +r3.880895507758153 " +0# +#540 +1! +r3.853531734424779 " +#541 +0! +r3.826213221695464 " +1# +#542 +1! +r3.79894104805831 " +#543 +0! +r3.771716290172036 " +0# +#544 +1! +r3.744540022823468 " +#545 +0! +r3.717413318885107 " +1# +#546 +1! +r3.690337249272776 " +#547 +0! +r3.663312882903346 " +0# +#548 +1! +r3.636341286652516 " +#549 +0! +r3.609423525312735 " +1# +#550 +1! +r3.582560661551127 " +#551 +0! +r3.555753755867557 " +0# +#552 +1! +r3.529003866552759 " +#553 +0! +r3.50231204964656 " +1# +#554 +1! +r3.475679358896188 " +#555 +0! +r3.449106845714673 " +0# +#556 +1! +r3.422595559139333 " +#557 +0! +r3.396146545790375 " +1# +#558 +1! +r3.369760849829543 " +#559 +0! +r3.343439512918947 " +0# +#560 +1! +r3.317183574179898 " +#561 +0! +r3.290994070151894 " +1# +#562 +1! +r3.264872034751715 " +#563 +0! +r3.238818499232588 " +0# +#564 +1! +r3.21283449214349 " +#565 +0! +r3.186921039288517 " +1# +#566 +1! +r3.161079163686428 " +#567 +0! +r3.135309885530224 " +0# +#568 +1! +r3.10961422214687 " +#569 +0! +r3.083993187957173 " +1# +#570 +1! +r3.058447794435684 " +#571 +0! +r3.032979050070803 " +0# +#572 +1! +r3.007587960324942 " +#573 +0! +r2.982275527594854 " +1# +#574 +1! +r2.957042751172042 " +#575 +0! +r2.931890627203303 " +0# +#576 +1! +r2.906820148651436 " +#577 +0! +r2.881832305256002 " +1# +#578 +1! +r2.856928083494275 " +#579 +0! +r2.832108466542281 " +0# +#580 +1! +r2.807374434236004 " +#581 +0! +r2.782726963032689 " +1# +#582 +1! +r2.75816702597229 " +#583 +0! +r2.733695592639075 " +0# +#584 +1! +r2.709313629123331 " +#585 +0! +r2.685022097983219 " +1# +#586 +1! +r2.660821958206805 " +#587 +0! +r2.636714165174167 " +0# +#588 +1! +r2.612699670619698 " +#589 +0! +r2.588779422594515 " +1# +#590 +1! +r2.564954365429057 " +#591 +0! +r2.541225439695789 " +0# +#592 +1! +r2.517593582172063 " +#593 +0! +r2.494059725803152 " +1# +#594 +1! +r2.470624799665414 " +#595 +0! +r2.447289728929597 " +0# +#596 +1! +r2.424055434824339 " +#597 +0! +r2.400922834599795 " +1# +#598 +1! +r2.377892841491408 " +#599 +0! +r2.35496636468387 " +0# +#600 +1! +r2.332144309275232 " +#601 +0! +r2.309427576241167 " +1# +#602 +1! +r2.286817062399391 " +#603 +0! +r2.264313660374274 " +0# +#604 +1! +r2.241918258561607 " +#605 +0! +r2.219631741093496 " +1# +#606 +1! +r2.197454987803491 " +#607 +0! +r2.175388874191847 " +0# +#608 +1! +r2.153434271390941 " +#609 +0! +r2.131592046130895 " +1# +#610 +1! +r2.109863060705369 " +#611 +0! +r2.088248172937502 " +0# +#612 +1! +r2.066748236146047 " +#613 +0! +r2.045364099111694 " +1# +#614 +1! +r2.024096606043567 " +#615 +0! +r2.002946596545868 " +0# +#616 +1! +r1.981914905584759 " +#617 +0! +r1.961002363455389 " +1# +#618 +1! +r1.940209795749114 " +#619 +0! +r1.919538023320901 " +0# +b01001101100 $ +b01110001101011101011101001100011 % +1' +#620 +1! +r1.89898786225693 " +0' +#621 +0! +r1.878560123842379 " +1# +#622 +1! +r1.858255614529374 " +#623 +0! +r1.838075135905177 " +0# +#624 +1! +r1.818019484660536 " +#625 +0! +r1.798089452558216 " +1# +#626 +1! +r1.77828582640176 " +#627 +0! +r1.758609388004418 " +0# +#628 +1! +r1.73906091415829 " +#629 +0! +r1.719641176603649 " +1# +#630 +1! +r1.700350941998478 " +#631 +0! +r1.681190971888218 " +0# +#632 +1! +r1.662162022675674 " +#633 +0! +r1.643264845591178 " +1# +#634 +1! +r1.624500186662932 " +#635 +0! +r1.605868786687533 " +0# +#636 +1! +r1.587371381200753 " +#637 +0! +r1.569008700448482 " +1# +#638 +1! +r1.550781469357926 " +#639 +0! +r1.532690407508948 " +0# +#640 +1! +r1.514736229105696 " +#641 +0! +r1.496919642948394 " +1# +#642 +1! +r1.479241352405353 " +#643 +0! +r1.461702055385216 " +0# +#644 +1! +r1.444302444309393 " +#645 +0! +r1.427043206084742 " +1# +#646 +1! +r1.40992502207643 " +#647 +0! +r1.392948568081054 " +0# +#648 +1! +r1.37611451429995 " +#649 +0! +r1.359423525312737 " +1# +#650 +1! +r1.342876260051076 " +#651 +0! +r1.326473371772672 " +0# +#652 +1! +r1.310215508035466 " +#653 +0! +r1.294103310672076 " +1# +#654 +1! +r1.278137415764473 " +#655 +0! +r1.262318453618843 " +0# +#656 +1! +r1.24664704874073 " +#657 +0! +r1.231123819810362 " +1# +#658 +1! +r1.215749379658239 " +#659 +0! +r1.200524335240931 " +0# +#660 +1! +r1.185449287617125 " +#661 +0! +r1.170524831923886 " +1# +#662 +1! +r1.155751557353171 " +#663 +0! +r1.141130047128565 " +0# +#664 +1! +r1.126660878482251 " +#665 +0! +r1.112344622632242 " +1# +#666 +1! +r1.098181844759794 " +#667 +0! +r1.084173103987135 " +0# +#668 +1! +r1.070318953355359 " +#669 +0! +r1.056619939802614 " +1# +#670 +1! +r1.043076604142496 " +#671 +0! +r1.02968948104271 " +0# +#672 +1! +r1.016459099003952 " +#673 +0! +r1.003385980339049 " +1# +#674 +1! +r0.9904706411523447 " +#675 +0! +r0.9777135913193122 " +0# +#676 +1! +r0.9651153344664385 " +#677 +0! +r0.9526763679513293 " +1# +#678 +1! +r0.9403971828430873 " +#679 +0! +r0.9282782639029108 " +0# +#680 +1! +r0.9163200895649739 " +#681 +0! +r0.9045231319175198 " +1# +#682 +1! +r0.8928878566842373 " +#683 +0! +r0.8814147232058716 " +0# +#684 +1! +r0.8701041844220843 " +#685 +0! +r0.858956686853583 " +1# +#686 +1! +r0.8479726705844826 " +#687 +0! +r0.8371525692449389 " +0# +#688 +1! +r0.8264968099940235 " +#689 +0! +r0.8160058135028683 " +1# +#690 +1! +r0.8056799939380515 " +#691 +0! +r0.7955197589452467 " +0# +#692 +1! +r0.7855255096331346 " +#693 +0! +r0.7756976405575662 " +1# +#694 +1! +r0.7660365397059854 " +#695 +0! +r0.7565425884821089 " +0# +#696 +1! +r0.7472161616908775 " +#697 +0! +r0.7380576275236503 " +1# +#698 +1! +r0.7290673475436753 " +#699 +0! +r0.7202456766718095 " +0# +#700 +1! +r0.7115929631725146 " +#701 +0! +r0.7031095486401071 " +1# +#702 +1! +r0.6947957679852621 " +#703 +0! +r0.6866519494218082 " +0# +#704 +1! +r0.6786784144537554 " +#705 +0! +r0.670875477862614 " +1# +#706 +1! +r0.6632434476949554 " +#707 +0! +r0.655782625250267 " +0# +#708 +1! +r0.6484933050690422 " +#709 +0! +r0.6413757749211593 " +1# +#710 +1! +r0.6344303157945239 " +#711 +0! +r0.6276572018839666 " +0# +#712 +1! +r0.6210567005804313 " +#713 +0! +r0.6146290724604029 " +1# +#714 +1! +r0.6083745712756361 " +#715 +0! +r0.6022934439431298 " +0# +#716 +1! +r0.5963859305353756 " +#717 +0! +r0.5906522642708882 " +1# +#718 +1! +r0.5850926715049969 " +#719 +0! +r0.5797073717209011 " +0# +b01011010000 $ +b1000001111001101000111 % +1' +#720 +1! +r0.5744965775210158 " +0' +#721 +0! +r0.5694604946185757 " +1# +#722 +1! +r0.5645993218295091 " +#723 +0! +r0.559913251064593 " +0# +#724 +1! +r0.5554024673218798 " +#725 +0! +r0.5510671486793868 " +1# +#726 +1! +r0.5469074662880704 " +#727 +0! +r0.5429235843650693 " +0# +#728 +1! +r0.5391156601872202 " +#729 +0! +r0.5354838440848502 " +1# +#730 +1! +r0.5320282794358384 " +#731 +0! +r0.5287491026599618 " +0# +#732 +1! +r0.5256464432135051 " +#733 +0! +r0.5227204235841487 " +1# +#734 +1! +r0.5199711592861398 " +#735 +0! +r0.5173987588557241 " +0# +#736 +1! +r0.5150033238468659 " +#737 +0! +r0.5127849488272371 " +1# +#738 +1! +r0.5107437213744861 " +#739 +0! +r0.5088797220727779 " +0# +#740 +1! +r0.5071930245096121 " +#741 +0! +r0.5056836952729213 " +1# +#742 +1! +r0.5043517939484392 " +#743 +0! +r0.5031973731173478 " +0# +#744 +1! +r0.5022204783542081 " +#745 +0! +r0.50142114822515 " +1# +#746 +1! +r0.5007994142863597 " +#747 +0! +r0.5003553010828279 " +0# +#748 +1! +r0.5000888261473833 " +#749 +0! +r0.5 " +1# +#750 +1! +r0.5000888261473833 " +#751 +0! +r0.5003553010828279 " +0# +#752 +1! +r0.5007994142863597 " +#753 +0! +r0.50142114822515 " +1# +#754 +1! +r0.5022204783542081 " +#755 +0! +r0.5031973731173487 " +0# +#756 +1! +r0.5043517939484392 " +#757 +0! +r0.5056836952729213 " +1# +#758 +1! +r0.5071930245096121 " +#759 +0! +r0.5088797220727779 " +0# +#760 +1! +r0.5107437213744861 " +#761 +0! +r0.5127849488272371 " +1# +#762 +1! +r0.5150033238468659 " +#763 +0! +r0.5173987588557241 " +0# +#764 +1! +r0.5199711592861398 " +#765 +0! +r0.5227204235841496 " +1# +#766 +1! +r0.5256464432135051 " +#767 +0! +r0.5287491026599627 " +0# +#768 +1! +r0.5320282794358384 " +#769 +0! +r0.5354838440848493 " +1# +#770 +1! +r0.5391156601872202 " +#771 +0! +r0.5429235843650702 " +0# +#772 +1! +r0.5469074662880704 " +#773 +0! +r0.5510671486793868 " +1# +#774 +1! +r0.5554024673218807 " +#775 +0! +r0.5599132510645939 " +0# +#776 +1! +r0.5645993218295091 " +#777 +0! +r0.5694604946185757 " +1# +#778 +1! +r0.5744965775210158 " +#779 +0! +r0.5797073717209011 " +0# +#780 +1! +r0.5850926715049969 " +#781 +0! +r0.59065226427089 " +1# +#782 +1! +r0.5963859305353756 " +#783 +0! +r0.6022934439431289 " +0# +#784 +1! +r0.608374571275637 " +#785 +0! +r0.6146290724604029 " +1# +#786 +1! +r0.6210567005804313 " +#787 +0! +r0.6276572018839675 " +0# +#788 +1! +r0.6344303157945248 " +#789 +0! +r0.6413757749211602 " +1# +#790 +1! +r0.6484933050690422 " +#791 +0! +r0.6557826252502679 " +0# +#792 +1! +r0.6632434476949562 " +#793 +0! +r0.670875477862614 " +1# +#794 +1! +r0.6786784144537563 " +#795 +0! +r0.6866519494218091 " +0# +#796 +1! +r0.694795767985263 " +#797 +0! +r0.7031095486401062 " +1# +#798 +1! +r0.7115929631725164 " +#799 +0! +r0.7202456766718086 " +0# +#800 +1! +r0.7290673475436744 " +#801 +0! +r0.7380576275236503 " +1# +#802 +1! +r0.7472161616908792 " +#803 +0! +r0.7565425884821098 " +0# +#804 +1! +r0.7660365397059863 " +#805 +0! +r0.7756976405575671 " +1# +#806 +1! +r0.7855255096331346 " +#807 +0! +r0.7955197589452458 " +0# +#808 +1! +r0.8056799939380506 " +#809 +0! +r0.8160058135028692 " +1# +#810 +1! +r0.8264968099940235 " +#811 +0! +r0.8371525692449389 " +0# +#812 +1! +r0.8479726705844834 " +#813 +0! +r0.8589566868535847 " +1# +#814 +1! +r0.8701041844220851 " +#815 +0! +r0.8814147232058707 " +0# +#816 +1! +r0.8928878566842373 " +#817 +0! +r0.9045231319175189 " +1# +#818 +1! +r0.9163200895649748 " +#819 +0! +r0.9282782639029117 " +0# +b01100110100 $ +b10001110000100110010110000101011 % +1' +#820 +1! +r0.9403971828430882 " +0' +#821 +0! +r0.952676367951331 " +1# +#822 +1! +r0.9651153344664394 " +#823 +0! +r0.9777135913193131 " +0# +#824 +1! +r0.9904706411523438 " +#825 +0! +r1.003385980339048 " +1# +#826 +1! +r1.016459099003951 " +#827 +0! +r1.029689481042711 " +0# +#828 +1! +r1.043076604142497 " +#829 +0! +r1.056619939802615 " +1# +#830 +1! +r1.070318953355359 " +#831 +0! +r1.084173103987136 " +0# +#832 +1! +r1.098181844759794 " +#833 +0! +r1.112344622632241 " +1# +#834 +1! +r1.126660878482255 " +#835 +0! +r1.141130047128565 " +0# +#836 +1! +r1.155751557353173 " +#837 +0! +r1.170524831923887 " +1# +#838 +1! +r1.185449287617127 " +#839 +0! +r1.20052433524093 " +0# +#840 +1! +r1.215749379658241 " +#841 +0! +r1.231123819810363 " +1# +#842 +1! +r1.24664704874073 " +#843 +0! +r1.262318453618844 " +0# +#844 +1! +r1.278137415764472 " +#845 +0! +r1.294103310672078 " +1# +#846 +1! +r1.310215508035465 " +#847 +0! +r1.326473371772674 " +0# +#848 +1! +r1.342876260051078 " +#849 +0! +r1.359423525312736 " +1# +#850 +1! +r1.376114514299952 " +#851 +0! +r1.392948568081058 " +0# +#852 +1! +r1.409925022076429 " +#853 +0! +r1.427043206084741 " +1# +#854 +1! +r1.444302444309395 " +#855 +0! +r1.461702055385215 " +0# +#856 +1! +r1.479241352405352 " +#857 +0! +r1.496919642948395 " +1# +#858 +1! +r1.5147362291057 " +#859 +0! +r1.532690407508947 " +0# +#860 +1! +r1.550781469357928 " +#861 +0! +r1.569008700448486 " +1# +#862 +1! +r1.587371381200752 " +#863 +0! +r1.605868786687532 " +0# +#864 +1! +r1.624500186662932 " +#865 +0! +r1.643264845591183 " +1# +#866 +1! +r1.662162022675671 " +#867 +0! +r1.68119097188822 " +0# +#868 +1! +r1.700350941998481 " +#869 +0! +r1.719641176603648 " +1# +#870 +1! +r1.739060914158289 " +#871 +0! +r1.758609388004419 " +0# +#872 +1! +r1.778285826401758 " +#873 +0! +r1.798089452558216 " +1# +#874 +1! +r1.818019484660538 " +#875 +0! +r1.838075135905179 " +0# +#876 +1! +r1.858255614529373 " +#877 +0! +r1.878560123842379 " +1# +#878 +1! +r1.898987862256935 " +#879 +0! +r1.9195380233209 " +0# +#880 +1! +r1.940209795749114 " +#881 +0! +r1.961002363455392 " +1# +#882 +1! +r1.981914905584761 " +#883 +0! +r2.002946596545867 " +0# +#884 +1! +r2.024096606043568 " +#885 +0! +r2.045364099111699 " +1# +#886 +1! +r2.066748236146044 " +#887 +0! +r2.0882481729375 " +0# +#888 +1! +r2.109863060705372 " +#889 +0! +r2.131592046130897 " +1# +#890 +1! +r2.153434271390939 " +#891 +0! +r2.175388874191849 " +0# +#892 +1! +r2.197454987803493 " +#893 +0! +r2.219631741093493 " +1# +#894 +1! +r2.241918258561606 " +#895 +0! +r2.264313660374278 " +0# +#896 +1! +r2.286817062399389 " +#897 +0! +r2.309427576241164 " +1# +#898 +1! +r2.332144309275234 " +#899 +0! +r2.35496636468387 " +0# +#900 +1! +r2.377892841491409 " +#901 +0! +r2.400922834599795 " +1# +#902 +1! +r2.424055434824339 " +#903 +0! +r2.447289728929596 " +0# +#904 +1! +r2.470624799665411 " +#905 +0! +r2.494059725803158 " +1# +#906 +1! +r2.517593582172063 " +#907 +0! +r2.54122543969579 " +0# +#908 +1! +r2.564954365429061 " +#909 +0! +r2.588779422594516 " +1# +#910 +1! +r2.612699670619696 " +#911 +0! +r2.636714165174171 " +0# +#912 +1! +r2.660821958206808 " +#913 +0! +r2.68502209798322 " +1# +#914 +1! +r2.70931362912333 " +#915 +0! +r2.733695592639079 " +0# +#916 +1! +r2.758167025972292 " +#917 +0! +r2.782726963032688 " +1# +#918 +1! +r2.807374434236006 " +#919 +0! +r2.832108466542281 " +0# +b01110011000 $ +b011100010001010110010100001111 % +1' +#920 +1! +r2.856928083494276 " +0' +#921 +0! +r2.881832305256004 " +1# +#922 +1! +r2.90682014865144 " +#923 +0! +r2.931890627203305 " +0# +#924 +1! +r2.957042751172039 " +#925 +0! +r2.982275527594856 " +1# +#926 +1! +r3.007587960324942 " +#927 +0! +r3.032979050070804 " +0# +#928 +1! +r3.058447794435684 " +#929 +0! +r3.083993187957175 " +1# +#930 +1! +r3.109614222146872 " +#931 +0! +r3.13530988553022 " +0# +#932 +1! +r3.161079163686434 " +#933 +0! +r3.186921039288517 " +1# +#934 +1! +r3.212834492143489 " +#935 +0! +r3.238818499232589 " +0# +#936 +1! +r3.264872034751718 " +#937 +0! +r3.290994070151895 " +1# +#938 +1! +r3.3171835741799 " +#939 +0! +r3.34343951291895 " +0# +#940 +1! +r3.369760849829543 " +#941 +0! +r3.396146545790373 " +1# +#942 +1! +r3.422595559139334 " +#943 +0! +r3.449106845714675 " +0# +#944 +1! +r3.475679358896189 " +#945 +0! +r3.502312049646562 " +1# +#946 +1! +r3.529003866552759 " +#947 +0! +r3.55575375586756 " +0# +#948 +1! +r3.582560661551129 " +#949 +0! +r3.609423525312736 " +1# +#950 +1! +r3.636341286652518 " +#951 +0! +r3.663312882903342 " +0# +#952 +1! +r3.690337249272778 " +#953 +0! +r3.717413318885107 " +1# +#954 +1! +r3.744540022823466 " +#955 +0! +r3.771716290172037 " +0# +#956 +1! +r3.798941048058313 " +#957 +0! +r3.826213221695461 " +1# +#958 +1! +r3.853531734424779 " +#959 +0! +r3.880895507758155 " +0# +#960 +1! +r3.908303461420666 " +#961 +0! +r3.935754513393241 " +1# +#962 +1! +r3.963247579955346 " +#963 +0! +r3.990781575727783 " +0# +#964 +1! +r4.018355413715559 " +#965 +0! +r4.045968005350757 " +1# +#966 +1! +r4.073618260535531 " +#967 +0! +r4.101305087685172 " +0# +#968 +1! +r4.129027393771127 " +#969 +0! +r4.156784084364239 " +1# +#970 +1! +r4.184574063677884 " +#971 +0! +r4.212396234611258 " +0# +#972 +1! +r4.2402494987927 " +#973 +0! +r4.268132756623024 " +1# +#974 +1! +r4.29604490731896 " +#975 +0! +r4.323984848956594 " +0# +#976 +1! +r4.351951478514868 " +#977 +0! +r4.379943691919126 " +1# +#978 +1! +r4.407960384084729 " +#979 +0! +r4.436000448960633 " +0# +#980 +1! +r4.464062779573086 " +#981 +0! +r4.492146268069335 " +1# +#982 +1! +r4.520249805761336 " +#983 +0! +r4.548372283169532 " +0# +#984 +1! +r4.576512590066687 " +#985 +0! +r4.604669615521655 " +1# +#986 +1! +r4.632842247943289 " +#987 +0! +r4.661029375124302 " +0# +#988 +1! +r4.689229884285172 " +#989 +0! +r4.71744266211809 " +1# +#990 +1! +r4.745666594830892 " +#991 +0! +r4.773900568191034 " +0# +#992 +1! +r4.802143467569612 " +#993 +0! +r4.830394177985296 " +1# +#994 +1! +r4.858651584148422 " +#995 +0! +r4.886914570504984 " +0# +#996 +1! +r4.915182021280663 " +#997 +0! +r4.943452820524912 " +1# +#998 +1! +r4.971725852154985 " +#999 +0! +r5.000000000000007 " +0# +#1000 +1! +r5.028274147845017 " +#1001 +0! +r5.056547179475086 " +1# +#1002 +1! +r5.084817978719334 " +#1003 +0! +r5.113085429495018 " +0# +#1004 +1! +r5.14134841585158 " +#1005 +0! +r5.169605822014706 " +1# +#1006 +1! +r5.197856532430395 " +#1007 +0! +r5.226099431808968 " +0# +#1008 +1! +r5.254333405169105 " +#1009 +0! +r5.282557337881908 " +1# +#1010 +1! +r5.310770115714829 " +#1011 +0! +r5.338970624875695 " +0# +#1012 +1! +r5.367157752056713 " +#1013 +0! +r5.395330384478351 " +1# +#1014 +1! +r5.423487409933315 " +#1015 +0! +r5.451627716830465 " +0# +#1016 +1! +r5.479750194238667 " +#1017 +0! +r5.507853731930667 " +1# +#1018 +1! +r5.535937220426915 " +#1019 +0! +r5.563999551039369 " +0# +b01111111100 $ +b10101010011101111001110111110011 % +1' +#1020 +1! +r5.592039615915273 " +0' +#1021 +0! +r5.620056308080871 " +1# +#1022 +1! +r5.648048521485129 " +#1023 +0! +r5.676015151043408 " +0# +#1024 +1! +r5.703955092681042 " +#1025 +0! +r5.731867243376978 " +1# +#1026 +1! +r5.759750501207305 " +#1027 +0! +r5.787603765388748 " +0# +#1028 +1! +r5.815425936322114 " +#1029 +0! +r5.843215915635759 " +1# +#1030 +1! +r5.870972606228875 " +#1031 +0! +r5.89869491231483 " +0# +#1032 +1! +r5.92638173946447 " +#1033 +0! +r5.954031994649245 " +1# +#1034 +1! +r5.981644586284443 " +#1035 +0! +r6.009218424272214 " +0# +#1036 +1! +r6.036752420044655 " +#1037 +0! +r6.064245486606761 " +1# +#1038 +1! +r6.091696538579336 " +#1039 +0! +r6.119104492241847 " +0# +#1040 +1! +r6.146468265575223 " +#1041 +0! +r6.173786778304537 " +1# +#1042 +1! +r6.201058951941685 " +#1043 +0! +r6.228283709827965 " +0# +#1044 +1! +r6.255459977176535 " +#1045 +0! +r6.282586681114894 " +1# +#1046 +1! +r6.309662750727227 " +#1047 +0! +r6.336687117096655 " +0# +#1048 +1! +r6.36365871334748 " +#1049 +0! +r6.390576474687262 " +1# +#1050 +1! +r6.417439338448869 " +#1051 +0! +r6.444246244132442 " +0# +#1052 +1! +r6.470996133447242 " +#1053 +0! +r6.497687950353439 " +1# +#1054 +1! +r6.524320641103813 " +#1055 +0! +r6.550893154285327 " +0# +#1056 +1! +r6.577404440860664 " +#1057 +0! +r6.603853454209629 " +1# +#1058 +1! +r6.630239150170459 " +#1059 +0! +r6.656560487081052 " +0# +#1060 +1! +r6.682816425820105 " +#1061 +0! +r6.709005929848106 " +1# +#1062 +1! +r6.735127965248281 " +#1063 +0! +r6.761181500767413 " +0# +#1064 +1! +r6.78716550785651 " +#1065 +0! +r6.813078960711481 " +1# +#1066 +1! +r6.838920836313575 " +#1067 +0! +r6.864690114469778 " +0# +#1068 +1! +r6.890385777853126 " +#1069 +0! +r6.916006812042826 " +1# +#1070 +1! +r6.941552205564314 " +#1071 +0! +r6.967020949929198 " +0# +#1072 +1! +r6.99241203967506 " +#1073 +0! +r7.017724472405146 " +1# +#1074 +1! +r7.042957248827963 " +#1075 +0! +r7.068109372796696 " +0# +#1076 +1! +r7.093179851348562 " +#1077 +0! +r7.118167694743998 " +1# +#1078 +1! +r7.143071916505729 " +#1079 +0! +r7.167891533457721 " +0# +#1080 +1! +r7.192625565763999 " +#1081 +0! +r7.217273036967314 " +1# +#1082 +1! +r7.241832974027706 " +#1083 +0! +r7.266304407360924 " +0# +#1084 +1! +r7.290686370876669 " +#1085 +0! +r7.314977902016778 " +1# +#1086 +1! +r7.339178041793197 " +#1087 +0! +r7.363285834825831 " +0# +#1088 +1! +r7.387300329380302 " +#1089 +0! +r7.411220577405485 " +1# +#1090 +1! +r7.43504563457094 " +#1091 +0! +r7.458774560304212 " +0# +#1092 +1! +r7.482406417827939 " +#1093 +0! +r7.505940274196847 " +1# +#1094 +1! +r7.529375200334591 " +#1095 +0! +r7.552710271070399 " +0# +#1096 +1! +r7.575944565175659 " +#1097 +0! +r7.599077165400206 " +1# +#1098 +1! +r7.622107158508589 " +#1099 +0! +r7.645033635316131 " +0# +#1100 +1! +r7.667855690724771 " +#1101 +0! +r7.690572423758837 " +1# +#1102 +1! +r7.713182937600608 " +#1103 +0! +r7.735686339625724 " +0# +#1104 +1! +r7.758081741438392 " +#1105 +0! +r7.780368258906504 " +1# +#1106 +1! +r7.802545012196512 " +#1107 +0! +r7.824611125808152 " +0# +#1108 +1! +r7.846565728609063 " +#1109 +0! +r7.868407953869104 " +1# +#1110 +1! +r7.89013693929463 " +#1111 +0! +r7.911751827062501 " +0# +#1112 +1! +r7.933251763853955 " +#1113 +0! +r7.954635900888306 " +1# +#1114 +1! +r7.975903393956436 " +#1115 +0! +r7.997053403454128 " +0# +#1116 +1! +r8.018085094415238 " +#1117 +0! +r8.038997636544613 " +1# +#1118 +1! +r8.059790204250884 " +#1119 +0! +r8.080461976679102 " +0# +b010001100000 $ +b0111000101010011101011011010111 % +1' +#1120 +1! +r8.101012137743073 " +0' +#1121 +0! +r8.121439876157622 " +1# +#1122 +1! +r8.141744385470625 " +#1123 +0! +r8.161924864094821 " +0# +#1124 +1! +r8.181980515339463 " +#1125 +0! +r8.201910547441784 " +1# +#1126 +1! +r8.22171417359824 " +#1127 +0! +r8.241390611995582 " +0# +#1128 +1! +r8.260939085841713 " +#1129 +0! +r8.280358823396348 " +1# +#1130 +1! +r8.299649058001521 " +#1131 +0! +r8.318809028111785 " +0# +#1132 +1! +r8.337837977324327 " +#1133 +0! +r8.35673515440882 " +1# +#1134 +1! +r8.375499813337072 " +#1135 +0! +r8.394131213312464 " +0# +#1136 +1! +r8.412628618799246 " +#1137 +0! +r8.430991299551518 " +1# +#1138 +1! +r8.449218530642074 " +#1139 +0! +r8.467309592491052 " +0# +#1140 +1! +r8.485263770894306 " +#1141 +0! +r8.503080357051605 " +1# +#1142 +1! +r8.520758647594647 " +#1143 +0! +r8.538297944614783 " +0# +#1144 +1! +r8.555697555690607 " +#1145 +0! +r8.57295679391526 " +1# +#1146 +1! +r8.590074977923569 " +#1147 +0! +r8.607051431918945 " +0# +#1148 +1! +r8.62388548570005 " +#1149 +0! +r8.640576474687261 " +1# +#1150 +1! +r8.657123739948924 " +#1151 +0! +r8.673526628227329 " +0# +#1152 +1! +r8.689784491964534 " +#1153 +0! +r8.705896689327925 " +1# +#1154 +1! +r8.721862584235531 " +#1155 +0! +r8.737681546381159 " +0# +#1156 +1! +r8.75335295125927 " +#1157 +0! +r8.768876180189636 " +1# +#1158 +1! +r8.78425062034176 " +#1159 +0! +r8.799475664759068 " +0# +#1160 +1! +r8.814550712382875 " +#1161 +0! +r8.829475168076115 " +1# +#1162 +1! +r8.844248442646828 " +#1163 +0! +r8.858869952871434 " +0# +#1164 +1! +r8.873339121517747 " +#1165 +0! +r8.887655377367761 " +1# +#1166 +1! +r8.901818155240205 " +#1167 +0! +r8.915826896012867 " +0# +#1168 +1! +r8.929681046644642 " +#1169 +0! +r8.943380060197384 " +1# +#1170 +1! +r8.956923395857505 " +#1171 +0! +r8.970310518957291 " +0# +#1172 +1! +r8.983540900996047 " +#1173 +0! +r8.996614019660953 " +1# +#1174 +1! +r9.009529358847654 " +#1175 +0! +r9.022286408680689 " +0# +#1176 +1! +r9.034884665533561 " +#1177 +0! +r9.047323632048668 " +1# +#1178 +1! +r9.059602817156913 " +#1179 +0! +r9.071721736097089 " +0# +#1180 +1! +r9.083679910435027 " +#1181 +0! +r9.095476868082482 " +1# +#1182 +1! +r9.107112143315764 " +#1183 +0! +r9.118585276794128 " +0# +#1184 +1! +r9.129895815577916 " +#1185 +0! +r9.141043313146419 " +1# +#1186 +1! +r9.152027329415517 " +#1187 +0! +r9.162847430755063 " +0# +#1188 +1! +r9.173503190005977 " +#1189 +0! +r9.183994186497131 " +1# +#1190 +1! +r9.194320006061949 " +#1191 +0! +r9.204480241054753 " +0# +#1192 +1! +r9.214474490366865 " +#1193 +0! +r9.224302359442436 " +1# +#1194 +1! +r9.233963460294014 " +#1195 +0! +r9.243457411517891 " +0# +#1196 +1! +r9.252783838309121 " +#1197 +0! +r9.261942372476348 " +1# +#1198 +1! +r9.270932652456326 " +#1199 +0! +r9.279754323328191 " +0# +#1200 +1! +r9.288407036827484 " +#1201 +0! +r9.296890451359895 " +1# +#1202 +1! +r9.305204232014738 " +#1203 +0! +r9.31334805057819 " +0# +#1204 +1! +r9.321321585546244 " +#1205 +0! +r9.329124522137386 " +1# +#1206 +1! +r9.336756552305044 " +#1207 +0! +r9.344217374749734 " +0# +#1208 +1! +r9.351506694930958 " +#1209 +0! +r9.358624225078838 " +1# +#1210 +1! +r9.365569684205475 " +#1211 +0! +r9.372342798116032 " +0# +#1212 +1! +r9.37894329941957 " +#1213 +0! +r9.385370927539599 " +1# +#1214 +1! +r9.391625428724364 " +#1215 +0! +r9.397706556056871 " +0# +#1216 +1! +r9.403614069464624 " +#1217 +0! +r9.40934773572911 " +1# +#1218 +1! +r9.414907328495003 " +#1219 +0! +r9.4202926282791 " +0# +b010011000100 $ +b1000110110111000000111110111011 % +1' +#1220 +1! +r9.425503422478984 " +0' +#1221 +0! +r9.430539505381425 " +1# +#1222 +1! +r9.435400678170492 " +#1223 +0! +r9.440086748935405 " +0# +#1224 +1! +r9.44459753267812 " +#1225 +0! +r9.448932851320613 " +1# +#1226 +1! +r9.45309253371193 " +#1227 +0! +r9.457076415634932 " +0# +#1228 +1! +r9.460884339812779 " +#1229 +0! +r9.464516155915149 " +1# +#1230 +1! +r9.467971720564162 " +#1231 +0! +r9.471250897340038 " +0# +#1232 +1! +r9.474353556786495 " +#1233 +0! +r9.47727957641585 " +1# +#1234 +1! +r9.48002884071386 " +#1235 +0! +r9.482601241144277 " +0# +#1236 +1! +r9.484996676153134 " +#1237 +0! +r9.487215051172763 " +1# +#1238 +1! +r9.489256278625515 " +#1239 +0! +r9.491120277927223 " +0# +#1240 +1! +r9.492806975490389 " +#1241 +0! +r9.494316304727079 " +1# +#1242 +1! +r9.495648206051561 " +#1243 +0! +r9.496802626882651 " +0# +#1244 +1! +r9.497779521645793 " +#1245 +0! +r9.49857885177485 " +1# +#1246 +1! +r9.499200585713641 " +#1247 +0! +r9.499644698917173 " +0# +#1248 +1! +r9.499911173852617 " +#1249 +0! +r9.5 " +1# +#1250 +1! +r9.499911173852617 " +#1251 +0! +r9.499644698917173 " +0# +#1252 +1! +r9.499200585713641 " +#1253 +0! +r9.49857885177485 " +1# +#1254 +1! +r9.497779521645793 " +#1255 +0! +r9.496802626882651 " +0# +#1256 +1! +r9.495648206051563 " +#1257 +0! +r9.494316304727079 " +1# +#1258 +1! +r9.492806975490389 " +#1259 +0! +r9.491120277927223 " +0# +#1260 +1! +r9.489256278625513 " +#1261 +0! +r9.487215051172761 " +1# +#1262 +1! +r9.484996676153134 " +#1263 +0! +r9.482601241144277 " +0# +#1264 +1! +r9.48002884071386 " +#1265 +0! +r9.47727957641585 " +1# +#1266 +1! +r9.474353556786495 " +#1267 +0! +r9.471250897340038 " +0# +#1268 +1! +r9.467971720564162 " +#1269 +0! +r9.464516155915151 " +1# +#1270 +1! +r9.460884339812779 " +#1271 +0! +r9.45707641563493 " +0# +#1272 +1! +r9.45309253371193 " +#1273 +0! +r9.448932851320613 " +1# +#1274 +1! +r9.44459753267812 " +#1275 +0! +r9.440086748935403 " +0# +#1276 +1! +r9.435400678170492 " +#1277 +0! +r9.430539505381425 " +1# +#1278 +1! +r9.425503422478982 " +#1279 +0! +r9.4202926282791 " +0# +#1280 +1! +r9.414907328495003 " +#1281 +0! +r9.40934773572911 " +1# +#1282 +1! +r9.403614069464624 " +#1283 +0! +r9.397706556056871 " +0# +#1284 +1! +r9.391625428724364 " +#1285 +0! +r9.385370927539597 " +1# +#1286 +1! +r9.378943299419568 " +#1287 +0! +r9.372342798116033 " +0# +#1288 +1! +r9.365569684205475 " +#1289 +0! +r9.35862422507884 " +1# +#1290 +1! +r9.351506694930958 " +#1291 +0! +r9.344217374749734 " +0# +#1292 +1! +r9.336756552305044 " +#1293 +0! +r9.329124522137386 " +1# +#1294 +1! +r9.321321585546244 " +#1295 +0! +r9.31334805057819 " +0# +#1296 +1! +r9.305204232014738 " +#1297 +0! +r9.296890451359893 " +1# +#1298 +1! +r9.288407036827484 " +#1299 +0! +r9.279754323328191 " +0# +#1300 +1! +r9.270932652456324 " +#1301 +0! +r9.261942372476348 " +1# +#1302 +1! +r9.252783838309121 " +#1303 +0! +r9.243457411517891 " +0# +#1304 +1! +r9.233963460294015 " +#1305 +0! +r9.224302359442435 " +1# +#1306 +1! +r9.214474490366865 " +#1307 +0! +r9.204480241054753 " +0# +#1308 +1! +r9.194320006061947 " +#1309 +0! +r9.183994186497133 " +1# +#1310 +1! +r9.173503190005977 " +#1311 +0! +r9.162847430755061 " +0# +#1312 +1! +r9.152027329415517 " +#1313 +0! +r9.141043313146417 " +1# +#1314 +1! +r9.129895815577914 " +#1315 +0! +r9.118585276794128 " +0# +#1316 +1! +r9.107112143315764 " +#1317 +0! +r9.095476868082482 " +1# +#1318 +1! +r9.083679910435027 " +#1319 +0! +r9.071721736097086 " +0# +b010100101000 $ +b01010101000011100100100010011111 % +1' +#1320 +1! +r9.059602817156913 " +0' +#1321 +0! +r9.04732363204867 " +1# +#1322 +1! +r9.034884665533559 " +#1323 +0! +r9.022286408680685 " +0# +#1324 +1! +r9.009529358847658 " +#1325 +0! +r8.996614019660949 " +1# +#1326 +1! +r8.983540900996045 " +#1327 +0! +r8.970310518957291 " +0# +#1328 +1! +r8.956923395857501 " +#1329 +0! +r8.943380060197381 " +1# +#1330 +1! +r8.929681046644641 " +#1331 +0! +r8.915826896012867 " +0# +#1332 +1! +r8.901818155240207 " +#1333 +0! +r8.887655377367757 " +1# +#1334 +1! +r8.873339121517745 " +#1335 +0! +r8.858869952871435 " +0# +#1336 +1! +r8.84424844264683 " +#1337 +0! +r8.829475168076112 " +1# +#1338 +1! +r8.814550712382879 " +#1339 +0! +r8.799475664759068 " +0# +#1340 +1! +r8.784250620341757 " +#1341 +0! +r8.768876180189634 " +1# +#1342 +1! +r8.753352951259268 " +#1343 +0! +r8.737681546381157 " +0# +#1344 +1! +r8.721862584235529 " +#1345 +0! +r8.705896689327925 " +1# +#1346 +1! +r8.689784491964538 " +#1347 +0! +r8.673526628227327 " +0# +#1348 +1! +r8.657123739948922 " +#1349 +0! +r8.640576474687265 " +1# +#1350 +1! +r8.62388548570005 " +#1351 +0! +r8.607051431918944 " +0# +#1352 +1! +r8.590074977923569 " +#1353 +0! +r8.57295679391526 " +1# +#1354 +1! +r8.555697555690603 " +#1355 +0! +r8.538297944614783 " +0# +#1356 +1! +r8.520758647594651 " +#1357 +0! +r8.503080357051605 " +1# +#1358 +1! +r8.485263770894303 " +#1359 +0! +r8.467309592491048 " +0# +#1360 +1! +r8.449218530642073 " +#1361 +0! +r8.430991299551515 " +1# +#1362 +1! +r8.412628618799243 " +#1363 +0! +r8.394131213312468 " +0# +#1364 +1! +r8.37549981333707 " +#1365 +0! +r8.356735154408817 " +1# +#1366 +1! +r8.337837977324327 " +#1367 +0! +r8.318809028111783 " +0# +#1368 +1! +r8.299649058001517 " +#1369 +0! +r8.28035882339635 " +1# +#1370 +1! +r8.260939085841709 " +#1371 +0! +r8.24139061199558 " +0# +#1372 +1! +r8.221714173598242 " +#1373 +0! +r8.201910547441781 " +1# +#1374 +1! +r8.181980515339461 " +#1375 +0! +r8.161924864094821 " +0# +#1376 +1! +r8.141744385470622 " +#1377 +0! +r8.121439876157618 " +1# +#1378 +1! +r8.101012137743071 " +#1379 +0! +r8.080461976679098 " +0# +#1380 +1! +r8.059790204250886 " +#1381 +0! +r8.038997636544611 " +1# +#1382 +1! +r8.018085094415238 " +#1383 +0! +r7.997053403454137 " +0# +#1384 +1! +r7.975903393956433 " +#1385 +0! +r7.954635900888305 " +1# +#1386 +1! +r7.933251763853956 " +#1387 +0! +r7.911751827062496 " +0# +#1388 +1! +r7.890136939294628 " +#1389 +0! +r7.868407953869104 " +1# +#1390 +1! +r7.846565728609061 " +#1391 +0! +r7.824611125808149 " +0# +#1392 +1! +r7.802545012196504 " +#1393 +0! +r7.780368258906504 " +1# +#1394 +1! +r7.758081741438395 " +#1395 +0! +r7.73568633962572 " +0# +#1396 +1! +r7.713182937600608 " +#1397 +0! +r7.690572423758839 " +1# +#1398 +1! +r7.667855690724767 " +#1399 +0! +r7.64503363531613 " +0# +#1400 +1! +r7.622107158508594 " +#1401 +0! +r7.599077165400201 " +1# +#1402 +1! +r7.575944565175652 " +#1403 +0! +r7.552710271070405 " +0# +#1404 +1! +r7.52937520033459 " +#1405 +0! +r7.505940274196843 " +1# +#1406 +1! +r7.482406417827934 " +#1407 +0! +r7.45877456030421 " +0# +#1408 +1! +r7.435045634570935 " +#1409 +0! +r7.41122057740548 " +1# +#1410 +1! +r7.387300329380301 " +#1411 +0! +r7.363285834825836 " +0# +#1412 +1! +r7.339178041793193 " +#1413 +0! +r7.314977902016774 " +1# +#1414 +1! +r7.290686370876674 " +#1415 +0! +r7.266304407360922 " +0# +#1416 +1! +r7.241832974027702 " +#1417 +0! +r7.217273036967313 " +1# +#1418 +1! +r7.192625565763998 " +#1419 +0! +r7.167891533457716 " +0# +b010110001100 $ +b100011010000001000000110000011 % +1' +#1420 +1! +r7.143071916505725 " +0' +#1421 +0! +r7.118167694743997 " +1# +#1422 +1! +r7.093179851348557 " +#1423 +0! +r7.068109372796691 " +0# +#1424 +1! +r7.042957248827959 " +#1425 +0! +r7.017724472405152 " +1# +#1426 +1! +r6.992412039675058 " +#1427 +0! +r6.967020949929194 " +0# +#1428 +1! +r6.941552205564312 " +#1429 +0! +r6.916006812042825 " +1# +#1430 +1! +r6.890385777853128 " +#1431 +0! +r6.864690114469781 " +0# +#1432 +1! +r6.838920836313575 " +#1433 +0! +r6.813078960711479 " +1# +#1434 +1! +r6.787165507856512 " +#1435 +0! +r6.761181500767405 " +0# +#1436 +1! +r6.73512796524828 " +#1437 +0! +r6.709005929848109 " +1# +#1438 +1! +r6.6828164258201 " +#1439 +0! +r6.656560487081051 " +0# +#1440 +1! +r6.630239150170457 " +#1441 +0! +r6.603853454209624 " +1# +#1442 +1! +r6.577404440860663 " +#1443 +0! +r6.550893154285326 " +0# +#1444 +1! +r6.524320641103812 " +#1445 +0! +r6.497687950353442 " +1# +#1446 +1! +r6.470996133447238 " +#1447 +0! +r6.444246244132441 " +0# +#1448 +1! +r6.417439338448871 " +#1449 +0! +r6.390576474687258 " +1# +#1450 +1! +r6.363658713347486 " +#1451 +0! +r6.336687117096662 " +0# +#1452 +1! +r6.309662750727222 " +#1453 +0! +r6.282586681114886 " +1# +#1454 +1! +r6.255459977176534 " +#1455 +0! +r6.22828370982796 " +0# +#1456 +1! +r6.201058951941681 " +#1457 +0! +r6.173786778304536 " +1# +#1458 +1! +r6.146468265575221 " +#1459 +0! +r6.119104492241849 " +0# +#1460 +1! +r6.09169653857933 " +#1461 +0! +r6.06424548660676 " +1# +#1462 +1! +r6.036752420044659 " +#1463 +0! +r6.00921842427221 " +0# +#1464 +1! +r5.981644586284437 " +#1465 +0! +r5.954031994649251 " +1# +#1466 +1! +r5.926381739464466 " +#1467 +0! +r5.898694912314825 " +0# +#1468 +1! +r5.870972606228874 " +#1469 +0! +r5.843215915635758 " +1# +#1470 +1! +r5.815425936322117 " +#1471 +0! +r5.787603765388742 " +0# +#1472 +1! +r5.759750501207304 " +#1473 +0! +r5.73186724337698 " +1# +#1474 +1! +r5.703955092681037 " +#1475 +0! +r5.676015151043406 " +0# +#1476 +1! +r5.648048521485136 " +#1477 +0! +r5.620056308080875 " +1# +#1478 +1! +r5.592039615915268 " +#1479 +0! +r5.563999551039368 " +0# +#1480 +1! +r5.535937220426914 " +#1481 +0! +r5.507853731930662 " +1# +#1482 +1! +r5.479750194238665 " +#1483 +0! +r5.451627716830465 " +0# +#1484 +1! +r5.423487409933314 " +#1485 +0! +r5.395330384478346 " +1# +#1486 +1! +r5.367157752056712 " +#1487 +0! +r5.338970624875694 " +0# +#1488 +1! +r5.310770115714824 " +#1489 +0! +r5.282557337881903 " +1# +#1490 +1! +r5.254333405169112 " +#1491 +0! +r5.226099431808967 " +0# +#1492 +1! +r5.197856532430389 " +#1493 +0! +r5.169605822014704 " +1# +#1494 +1! +r5.141348415851578 " +#1495 +0! +r5.113085429495014 " +0# +#1496 +1! +r5.084817978719333 " +#1497 +0! +r5.056547179475085 " +1# +#1498 +1! +r5.028274147845015 " +#1499 +0! +r5.000000000000002 " +0# +#1500 +1! +r4.971725852154981 " +#1501 +0! +r4.943452820524911 " +1# +#1502 +1! +r4.915182021280662 " +#1503 +0! +r4.886914570504974 " +0# +#1504 +1! +r4.858651584148425 " +#1505 +0! +r4.830394177985299 " +1# +#1506 +1! +r4.802143467569606 " +#1507 +0! +r4.773900568191037 " +0# +#1508 +1! +r4.745666594830891 " +#1509 +0! +r4.717442662118085 " +1# +#1510 +1! +r4.689229884285171 " +#1511 +0! +r4.661029375124301 " +0# +#1512 +1! +r4.632842247943292 " +#1513 +0! +r4.604669615521658 " +1# +#1514 +1! +r4.576512590066682 " +#1515 +0! +r4.548372283169531 " +0# +#1516 +1! +r4.52024980576133 " +#1517 +0! +r4.492146268069334 " +1# +#1518 +1! +r4.464062779573082 " +#1519 +0! +r4.436000448960636 " +0# +b010111110000 $ +b01110001011100101011101001100111 % +1' +#1520 +1! +r4.407960384084728 " +0' +#1521 +0! +r4.379943691919129 " +1# +#1522 +1! +r4.351951478514859 " +#1523 +0! +r4.323984848956589 " +0# +#1524 +1! +r4.296044907318967 " +#1525 +0! +r4.268132756623023 " +1# +#1526 +1! +r4.240249498792699 " +#1527 +0! +r4.21239623461126 " +0# +#1528 +1! +r4.184574063677879 " +#1529 +0! +r4.156784084364237 " +1# +#1530 +1! +r4.129027393771129 " +#1531 +0! +r4.10130508768517 " +0# +#1532 +1! +r4.07361826053553 " +#1533 +0! +r4.045968005350751 " +1# +#1534 +1! +r4.018355413715557 " +#1535 +0! +r3.990781575727778 " +0# +#1536 +1! +r3.963247579955337 " +#1537 +0! +r3.935754513393243 " +1# +#1538 +1! +r3.908303461420672 " +#1539 +0! +r3.880895507758154 " +0# +#1540 +1! +r3.853531734424775 " +#1541 +0! +r3.826213221695467 " +1# +#1542 +1! +r3.798941048058308 " +#1543 +0! +r3.771716290172028 " +0# +#1544 +1! +r3.744540022823469 " +#1545 +0! +r3.71741331888511 " +1# +#1546 +1! +r3.690337249272774 " +#1547 +0! +r3.663312882903341 " +0# +#1548 +1! +r3.636341286652517 " +#1549 +0! +r3.609423525312731 " +1# +#1550 +1! +r3.582560661551124 " +#1551 +0! +r3.555753755867554 " +0# +#1552 +1! +r3.529003866552765 " +#1553 +0! +r3.502312049646561 " +1# +#1554 +1! +r3.475679358896183 " +#1555 +0! +r3.449106845714677 " +0# +#1556 +1! +r3.422595559139332 " +#1557 +0! +r3.396146545790372 " +1# +#1558 +1! +r3.369760849829546 " +#1559 +0! +r3.343439512918952 " +0# +#1560 +1! +r3.317183574179895 " +#1561 +0! +r3.290994070151894 " +1# +#1562 +1! +r3.264872034751716 " +#1563 +0! +r3.238818499232584 " +0# +#1564 +1! +r3.212834492143491 " +#1565 +0! +r3.186921039288516 " +1# +#1566 +1! +r3.161079163686429 " +#1567 +0! +r3.135309885530223 " +0# +#1568 +1! +r3.109614222146868 " +#1569 +0! +r3.08399318795717 " +1# +#1570 +1! +r3.058447794435684 " +#1571 +0! +r3.032979050070802 " +0# +#1572 +1! +r3.007587960324945 " +#1573 +0! +r2.982275527594851 " +1# +#1574 +1! +r2.957042751172037 " +#1575 +0! +r2.931890627203304 " +0# +#1576 +1! +r2.906820148651431 " +#1577 +0! +r2.881832305255999 " +1# +#1578 +1! +r2.856928083494278 " +#1579 +0! +r2.83210846654228 " +0# +#1580 +1! +r2.807374434236005 " +#1581 +0! +r2.78272696303269 " +1# +#1582 +1! +r2.758167025972288 " +#1583 +0! +r2.733695592639074 " +0# +#1584 +1! +r2.709313629123328 " +#1585 +0! +r2.685022097983222 " +1# +#1586 +1! +r2.66082195820681 " +#1587 +0! +r2.636714165174166 " +0# +#1588 +1! +r2.612699670619695 " +#1589 +0! +r2.588779422594516 " +1# +#1590 +1! +r2.564954365429053 " +#1591 +0! +r2.541225439695785 " +0# +#1592 +1! +r2.517593582172069 " +#1593 +0! +r2.494059725803153 " +1# +#1594 +1! +r2.470624799665406 " +#1595 +0! +r2.447289728929598 " +0# +#1596 +1! +r2.424055434824338 " +#1597 +0! +r2.400922834599788 " +1# +#1598 +1! +r2.377892841491408 " +#1599 +0! +r2.354966364683873 " +0# +#1600 +1! +r2.332144309275237 " +#1601 +0! +r2.309427576241163 " +1# +#1602 +1! +r2.286817062399388 " +#1603 +0! +r2.264313660374276 " +0# +#1604 +1! +r2.241918258561608 " +#1605 +0! +r2.219631741093492 " +1# +#1606 +1! +r2.197454987803499 " +#1607 +0! +r2.175388874191848 " +0# +#1608 +1! +r2.153434271390935 " +#1609 +0! +r2.131592046130893 " +1# +#1610 +1! +r2.109863060705368 " +#1611 +0! +r2.0882481729375 " +0# +#1612 +1! +r2.066748236146046 " +#1613 +0! +r2.045364099111698 " +1# +#1614 +1! +r2.02409660604357 " +#1615 +0! +r2.002946596545866 " +0# +#1616 +1! +r1.981914905584754 " +#1617 +0! +r1.961002363455391 " +1# +#1618 +1! +r1.940209795749116 " +#1619 +0! +r1.919538023320899 " +0# +b011001010100 $ +b101001001111001101001011 % +1' +#1620 +1! +r1.898987862256931 " +0' +#1621 +0! +r1.878560123842378 " +1# +#1622 +1! +r1.858255614529368 " +#1623 +0! +r1.838075135905175 " +0# +#1624 +1! +r1.818019484660534 " +#1625 +0! +r1.798089452558215 " +1# +#1626 +1! +r1.778285826401761 " +#1627 +0! +r1.758609388004416 " +0# +#1628 +1! +r1.739060914158288 " +#1629 +0! +r1.719641176603647 " +1# +#1630 +1! +r1.700350941998475 " +#1631 +0! +r1.681190971888219 " +0# +#1632 +1! +r1.662162022675676 " +#1633 +0! +r1.643264845591179 " +1# +#1634 +1! +r1.624500186662932 " +#1635 +0! +r1.605868786687533 " +0# +#1636 +1! +r1.587371381200748 " +#1637 +0! +r1.569008700448483 " +1# +#1638 +1! +r1.550781469357925 " +#1639 +0! +r1.532690407508948 " +0# +#1640 +1! +r1.514736229105699 " +#1641 +0! +r1.496919642948392 " +1# +#1642 +1! +r1.479241352405352 " +#1643 +0! +r1.461702055385214 " +0# +#1644 +1! +r1.444302444309389 " +#1645 +0! +r1.427043206084738 " +1# +#1646 +1! +r1.409925022076433 " +#1647 +0! +r1.392948568081055 " +0# +#1648 +1! +r1.376114514299951 " +#1649 +0! +r1.359423525312737 " +1# +#1650 +1! +r1.342876260051075 " +#1651 +0! +r1.326473371772675 " +0# +#1652 +1! +r1.310215508035464 " +#1653 +0! +r1.294103310672077 " +1# +#1654 +1! +r1.278137415764473 " +#1655 +0! +r1.262318453618841 " +0# +#1656 +1! +r1.246647048740729 " +#1657 +0! +r1.231123819810362 " +1# +#1658 +1! +r1.21574937965824 " +#1659 +0! +r1.20052433524093 " +0# +#1660 +1! +r1.185449287617124 " +#1661 +0! +r1.170524831923886 " +1# +#1662 +1! +r1.155751557353172 " +#1663 +0! +r1.141130047128562 " +0# +#1664 +1! +r1.126660878482252 " +#1665 +0! +r1.112344622632244 " +1# +#1666 +1! +r1.098181844759795 " +#1667 +0! +r1.084173103987135 " +0# +#1668 +1! +r1.070318953355361 " +#1669 +0! +r1.056619939802612 " +1# +#1670 +1! +r1.043076604142493 " +#1671 +0! +r1.029689481042711 " +0# +#1672 +1! +r1.016459099003953 " +#1673 +0! +r1.003385980339048 " +1# +#1674 +1! +r0.9904706411523438 " +#1675 +0! +r0.9777135913193131 " +0# +#1676 +1! +r0.9651153344664358 " +#1677 +0! +r0.9526763679513284 " +1# +#1678 +1! +r0.9403971828430855 " +#1679 +0! +r0.9282782639029152 " +0# +#1680 +1! +r0.9163200895649739 " +#1681 +0! +r0.9045231319175171 " +1# +#1682 +1! +r0.8928878566842391 " +#1683 +0! +r0.8814147232058698 " +0# +#1684 +1! +r0.8701041844220816 " +#1685 +0! +r0.8589566868535838 " +1# +#1686 +1! +r0.8479726705844843 " +#1687 +0! +r0.837152569244938 " +0# +#1688 +1! +r0.8264968099940235 " +#1689 +0! +r0.8160058135028692 " +1# +#1690 +1! +r0.8056799939380488 " +#1691 +0! +r0.7955197589452441 " +0# +#1692 +1! +r0.7855255096331337 " +#1693 +0! +r0.7756976405575662 " +1# +#1694 +1! +r0.7660365397059863 " +#1695 +0! +r0.756542588482108 " +0# +#1696 +1! +r0.7472161616908775 " +#1697 +0! +r0.7380576275236503 " +1# +#1698 +1! +r0.7290673475436744 " +#1699 +0! +r0.7202456766718095 " +0# +#1700 +1! +r0.7115929631725164 " +#1701 +0! +r0.7031095486401053 " +1# +#1702 +1! +r0.6947957679852621 " +#1703 +0! +r0.6866519494218064 " +0# +#1704 +1! +r0.6786784144537545 " +#1705 +0! +r0.6708754778626149 " +1# +#1706 +1! +r0.6632434476949562 " +#1707 +0! +r0.6557826252502679 " +0# +#1708 +1! +r0.6484933050690422 " +#1709 +0! +r0.6413757749211584 " +1# +#1710 +1! +r0.634430315794523 " +#1711 +0! +r0.6276572018839675 " +0# +#1712 +1! +r0.6210567005804304 " +#1713 +0! +r0.6146290724604038 " +1# +#1714 +1! +r0.6083745712756361 " +#1715 +0! +r0.6022934439431289 " +0# +#1716 +1! +r0.5963859305353756 " +#1717 +0! +r0.5906522642708874 " +1# +#1718 +1! +r0.5850926715049969 " +#1719 +0! +r0.579707371720902 " +0# +b011010111000 $ +b10001101110101110010110000101111 % +1' +#1720 +1! +r0.5744965775210158 " +0' +#1721 +0! +r0.5694604946185748 " +1# +#1722 +1! +r0.5645993218295091 " +#1723 +0! +r0.559913251064593 " +0# +#1724 +1! +r0.5554024673218789 " +#1725 +0! +r0.5510671486793868 " +1# +#1726 +1! +r0.5469074662880704 " +#1727 +0! +r0.5429235843650702 " +0# +#1728 +1! +r0.5391156601872202 " +#1729 +0! +r0.5354838440848493 " +1# +#1730 +1! +r0.5320282794358384 " +#1731 +0! +r0.5287491026599618 " +0# +#1732 +1! +r0.5256464432135042 " +#1733 +0! +r0.5227204235841496 " +1# +#1734 +1! +r0.5199711592861398 " +#1735 +0! +r0.5173987588557232 " +0# +#1736 +1! +r0.5150033238468659 " +#1737 +0! +r0.5127849488272371 " +1# +#1738 +1! +r0.5107437213744861 " +#1739 +0! +r0.5088797220727779 " +0# +#1740 +1! +r0.5071930245096121 " +#1741 +0! +r0.5056836952729213 " +1# +#1742 +1! +r0.5043517939484392 " +#1743 +0! +r0.5031973731173487 " +0# +#1744 +1! +r0.5022204783542081 " +#1745 +0! +r0.50142114822515 " +1# +#1746 +1! +r0.5007994142863588 " +#1747 +0! +r0.5003553010828279 " +0# +#1748 +1! +r0.5000888261473833 " +#1749 +0! +r0.5 " +1# +#1750 +1! +r0.5000888261473833 " +#1751 +0! +r0.5003553010828279 " +0# +#1752 +1! +r0.5007994142863597 " +#1753 +0! +r0.50142114822515 " +1# +#1754 +1! +r0.5022204783542081 " +#1755 +0! +r0.5031973731173487 " +0# +#1756 +1! +r0.5043517939484392 " +#1757 +0! +r0.5056836952729222 " +1# +#1758 +1! +r0.5071930245096121 " +#1759 +0! +r0.5088797220727779 " +0# +#1760 +1! +r0.510743721374487 " +#1761 +0! +r0.5127849488272371 " +1# +#1762 +1! +r0.5150033238468659 " +#1763 +0! +r0.5173987588557241 " +0# +#1764 +1! +r0.5199711592861407 " +#1765 +0! +r0.5227204235841496 " +1# +#1766 +1! +r0.5256464432135051 " +#1767 +0! +r0.5287491026599618 " +0# +#1768 +1! +r0.5320282794358384 " +#1769 +0! +r0.5354838440848502 " +1# +#1770 +1! +r0.5391156601872202 " +#1771 +0! +r0.542923584365071 " +0# +#1772 +1! +r0.5469074662880704 " +#1773 +0! +r0.5510671486793859 " +1# +#1774 +1! +r0.5554024673218807 " +#1775 +0! +r0.5599132510645939 " +0# +#1776 +1! +r0.5645993218295091 " +#1777 +0! +r0.5694604946185766 " +1# +#1778 +1! +r0.5744965775210167 " +#1779 +0! +r0.5797073717209011 " +0# +#1780 +1! +r0.5850926715049969 " +#1781 +0! +r0.5906522642708882 " +1# +#1782 +1! +r0.5963859305353765 " +#1783 +0! +r0.6022934439431298 " +0# +#1784 +1! +r0.608374571275637 " +#1785 +0! +r0.6146290724604029 " +1# +#1786 +1! +r0.6210567005804313 " +#1787 +0! +r0.6276572018839666 " +0# +#1788 +1! +r0.6344303157945239 " +#1789 +0! +r0.6413757749211593 " +1# +#1790 +1! +r0.6484933050690431 " +#1791 +0! +r0.6557826252502688 " +0# +#1792 +1! +r0.6632434476949545 " +#1793 +0! +r0.670875477862614 " +1# +#1794 +1! +r0.6786784144537554 " +#1795 +0! +r0.6866519494218082 " +0# +#1796 +1! +r0.6947957679852639 " +#1797 +0! +r0.7031095486401071 " +1# +#1798 +1! +r0.7115929631725155 " +#1799 +0! +r0.7202456766718077 " +0# +#1800 +1! +r0.7290673475436762 " +#1801 +0! +r0.7380576275236512 " +1# +#1802 +1! +r0.7472161616908783 " +#1803 +0! +r0.7565425884821098 " +0# +#1804 +1! +r0.7660365397059872 " +#1805 +0! +r0.7756976405575653 " +1# +#1806 +1! +r0.7855255096331319 " +#1807 +0! +r0.7955197589452458 " +0# +#1808 +1! +r0.8056799939380523 " +#1809 +0! +r0.8160058135028674 " +1# +#1810 +1! +r0.8264968099940244 " +#1811 +0! +r0.8371525692449424 " +0# +#1812 +1! +r0.8479726705844826 " +#1813 +0! +r0.8589566868535821 " +1# +#1814 +1! +r0.870104184422086 " +#1815 +0! +r0.8814147232058716 " +0# +#1816 +1! +r0.8928878566842373 " +#1817 +0! +r0.9045231319175224 " +1# +#1818 +1! +r0.9163200895649757 " +#1819 +0! +r0.9282782639029135 " +0# +b011100011100 $ +b011100000010010110010100010011 % +1' +#1820 +1! +r0.9403971828430846 " +0' +#1821 +0! +r0.9526763679513301 " +1# +#1822 +1! +r0.9651153344664412 " +#1823 +0! +r0.9777135913193149 " +0# +#1824 +1! +r0.9904706411523456 " +#1825 +0! +r1.00338598033905 " +1# +#1826 +1! +r1.016459099003951 " +#1827 +0! +r1.029689481042709 " +0# +#1828 +1! +r1.043076604142498 " +#1829 +0! +r1.056619939802614 " +1# +#1830 +1! +r1.070318953355359 " +#1831 +0! +r1.084173103987137 " +0# +#1832 +1! +r1.098181844759793 " +#1833 +0! +r1.112344622632242 " +1# +#1834 +1! +r1.126660878482253 " +#1835 +0! +r1.141130047128564 " +0# +#1836 +1! +r1.155751557353174 " +#1837 +0! +r1.170524831923888 " +1# +#1838 +1! +r1.185449287617126 " +#1839 +0! +r1.200524335240932 " +0# +#1840 +1! +r1.215749379658238 " +#1841 +0! +r1.231123819810365 " +1# +#1842 +1! +r1.246647048740731 " +#1843 +0! +r1.262318453618843 " +0# +#1844 +1! +r1.278137415764476 " +#1845 +0! +r1.294103310672079 " +1# +#1846 +1! +r1.310215508035462 " +#1847 +0! +r1.326473371772673 " +0# +#1848 +1! +r1.342876260051077 " +#1849 +0! +r1.359423525312736 " +1# +#1850 +1! +r1.376114514299954 " +#1851 +0! +r1.392948568081056 " +0# +#1852 +1! +r1.409925022076431 " +#1853 +0! +r1.42704320608474 " +1# +#1854 +1! +r1.444302444309391 " +#1855 +0! +r1.461702055385217 " +0# +#1856 +1! +r1.479241352405355 " +#1857 +0! +r1.496919642948395 " +1# +#1858 +1! +r1.514736229105702 " +#1859 +0! +r1.532690407508952 " +0# +#1860 +1! +r1.550781469357922 " +#1861 +0! +r1.569008700448485 " +1# +#1862 +1! +r1.587371381200756 " +#1863 +0! +r1.605868786687531 " +0# +#1864 +1! +r1.624500186662934 " +#1865 +0! +r1.643264845591187 " +1# +#1866 +1! +r1.662162022675674 " +#1867 +0! +r1.681190971888216 " +0# +#1868 +1! +r1.700350941998478 " +#1869 +0! +r1.71964117660365 " +1# +#1870 +1! +r1.739060914158291 " +#1871 +0! +r1.758609388004418 " +0# +#1872 +1! +r1.778285826401758 " +#1873 +0! +r1.798089452558219 " +1# +#1874 +1! +r1.818019484660532 " +#1875 +0! +r1.838075135905179 " +0# +#1876 +1! +r1.858255614529378 " +#1877 +0! +r1.878560123842381 " +1# +#1878 +1! +r1.898987862256934 " +#1879 +0! +r1.919538023320902 " +0# +#1880 +1! +r1.940209795749113 " +#1881 +0! +r1.961002363455388 " +1# +#1882 +1! +r1.981914905584757 " +#1883 +0! +r2.002946596545869 " +0# +#1884 +1! +r2.024096606043573 " +#1885 +0! +r2.045364099111695 " +1# +#1886 +1! +r2.066748236146043 " +#1887 +0! +r2.088248172937503 " +0# +#1888 +1! +r2.109863060705371 " +#1889 +0! +r2.131592046130896 " +1# +#1890 +1! +r2.153434271390945 " +#1891 +0! +r2.175388874191851 " +0# +#1892 +1! +r2.197454987803495 " +#1893 +0! +r2.219631741093496 " +1# +#1894 +1! +r2.241918258561605 " +#1895 +0! +r2.26431366037428 " +0# +#1896 +1! +r2.286817062399392 " +#1897 +0! +r2.309427576241166 " +1# +#1898 +1! +r2.33214430927524 " +#1899 +0! +r2.354966364683869 " +0# +#1900 +1! +r2.377892841491405 " +#1901 +0! +r2.400922834599798 " +1# +#1902 +1! +r2.424055434824341 " +#1903 +0! +r2.447289728929595 " +0# +#1904 +1! +r2.470624799665416 " +#1905 +0! +r2.494059725803157 " +1# +#1906 +1! +r2.517593582172065 " +#1907 +0! +r2.541225439695789 " +0# +#1908 +1! +r2.564954365429064 " +#1909 +0! +r2.588779422594512 " +1# +#1910 +1! +r2.612699670619699 " +#1911 +0! +r2.63671416517417 " +0# +#1912 +1! +r2.660821958206813 " +#1913 +0! +r2.685022097983226 " +1# +#1914 +1! +r2.709313629123332 " +#1915 +0! +r2.733695592639071 " +0# +#1916 +1! +r2.758167025972291 " +#1917 +0! +r2.782726963032686 " +1# +#1918 +1! +r2.807374434236008 " +#1919 +0! +r2.832108466542284 " +0# +b011110000000 $ +b10101010001110111001110111110111 % +1' +#1920 +1! +r2.856928083494282 " +0' +#1921 +0! +r2.881832305256003 " +1# +#1922 +1! +r2.906820148651435 " +#1923 +0! +r2.931890627203308 " +0# +#1924 +1! +r2.957042751172041 " +#1925 +0! +r2.982275527594862 " +1# +#1926 +1! +r3.007587960324934 " +#1927 +0! +r3.032979050070799 " +0# +#1928 +1! +r3.058447794435687 " +#1929 +0! +r3.083993187957174 " +1# +#1930 +1! +r3.109614222146878 " +#1931 +0! +r3.135309885530226 " +0# +#1932 +1! +r3.161079163686425 " +#1933 +0! +r3.186921039288513 " +1# +#1934 +1! +r3.212834492143488 " +#1935 +0! +r3.238818499232595 " +0# +#1936 +1! +r3.26487203475172 " +#1937 +0! +r3.29099407015189 " +1# +#1938 +1! +r3.317183574179899 " +#1939 +0! +r3.343439512918949 " +0# +#1940 +1! +r3.369760849829542 " +#1941 +0! +r3.396146545790375 " +1# +#1942 +1! +r3.422595559139336 " +#1943 +0! +r3.449106845714674 " +0# +#1944 +1! +r3.475679358896188 " +#1945 +0! +r3.502312049646565 " +1# +#1946 +1! +r3.529003866552762 " +#1947 +0! +r3.555753755867558 " +0# +#1948 +1! +r3.582560661551136 " +#1949 +0! +r3.609423525312734 " +1# +#1950 +1! +r3.636341286652513 " +#1951 +0! +r3.663312882903345 " +0# +#1952 +1! +r3.690337249272785 " +#1953 +0! +r3.717413318885114 " +1# +#1954 +1! +r3.744540022823466 " +#1955 +0! +r3.771716290172032 " +0# +#1956 +1! +r3.798941048058311 " +#1957 +0! +r3.826213221695463 " +1# +#1958 +1! +r3.853531734424786 " +#1959 +0! +r3.880895507758158 " +0# +#1960 +1! +r3.908303461420661 " +#1961 +0! +r3.93575451339324 " +1# +#1962 +1! +r3.963247579955341 " +#1963 +0! +r3.99078157572779 " +0# +#1964 +1! +r4.018355413715562 " +#1965 +0! +r4.045968005350764 " +1# +#1966 +1! +r4.073618260535534 " +#1967 +0! +r4.101305087685167 " +0# +#1968 +1! +r4.129027393771125 " +#1969 +0! +r4.156784084364242 " +1# +#1970 +1! +r4.184574063677891 " +#1971 +0! +r4.212396234611257 " +0# +#1972 +1! +r4.240249498792695 " +#1973 +0! +r4.26813275662302 " +1# +#1974 +1! +r4.296044907318963 " +#1975 +0! +r4.323984848956593 " +0# +#1976 +1! +r4.351951478514872 " +#1977 +0! +r4.379943691919125 " +1# +#1978 +1! +r4.407960384084731 " +#1979 +0! +r4.436000448960632 " +0# +#1980 +1! +r4.464062779573085 " +#1981 +0! +r4.492146268069338 " +1# +#1982 +1! +r4.520249805761334 " +#1983 +0! +r4.548372283169527 " +0# +#1984 +1! +r4.576512590066685 " +#1985 +0! +r4.604669615521662 " +1# +#1986 +1! +r4.632842247943287 " +#1987 +0! +r4.661029375124306 " +0# +#1988 +1! +r4.689229884285167 " +#1989 +0! +r4.717442662118089 " +1# +#1990 +1! +r4.745666594830888 " +#1991 +0! +r4.773900568191041 " +0# +#1992 +1! +r4.802143467569618 " +#1993 +0! +r4.830394177985295 " +1# +#1994 +1! +r4.858651584148413 " +#1995 +0! +r4.886914570504978 " +0# +#1996 +1! +r4.915182021280666 " +#1997 +0! +r4.943452820524914 " +1# +#1998 +1! +r4.971725852154992 " +#1999 +0! +r5.000000000000014 " +0# +#2000 +1! +r5.028274147845011 " +#2001 +0! +r5.056547179475089 " +1# +#2002 +1! +r5.084817978719338 " +#2003 +0! +r5.113085429495017 " +0# +#2004 +1! +r5.141348415851582 " +#2005 +0! +r5.169605822014701 " +1# +#2006 +1! +r5.197856532430394 " +#2007 +0! +r5.226099431808962 " +0# +#2008 +1! +r5.254333405169116 " +#2009 +0! +r5.282557337881914 " +1# +#2010 +1! +r5.310770115714829 " +#2011 +0! +r5.338970624875698 " +0# +#2012 +1! +r5.367157752056708 " +#2013 +0! +r5.395330384478349 " +1# +#2014 +1! +r5.423487409933318 " +#2015 +0! +r5.451627716830477 " +0# +#2016 +1! +r5.479750194238662 " +#2017 +0! +r5.507853731930657 " +1# +#2018 +1! +r5.535937220426918 " +#2019 +0! +r5.563999551039363 " +0# +b011111100100 $ +b0111000011011011101011011011011 % +1' +#2020 +1! +r5.59203961591528 " +0' +#2021 +0! +r5.620056308080878 " +1# +#2022 +1! +r5.64804852148514 " +#2023 +0! +r5.676015151043402 " +0# +#2024 +1! +r5.703955092681033 " +#2025 +0! +r5.731867243376984 " +1# +#2026 +1! +r5.759750501207301 " +#2027 +0! +r5.787603765388755 " +0# +#2028 +1! +r5.815425936322113 " +#2029 +0! +r5.843215915635762 " +1# +#2030 +1! +r5.870972606228871 " +#2031 +0! +r5.898694912314829 " +0# +#2032 +1! +r5.926381739464477 " +#2033 +0! +r5.95403199464924 " +1# +#2034 +1! +r5.981644586284442 " +#2035 +0! +r6.009218424272214 " +0# +#2036 +1! +r6.036752420044662 " +#2037 +0! +r6.064245486606763 " +1# +#2038 +1! +r6.091696538579335 " +#2039 +0! +r6.119104492241846 " +0# +#2040 +1! +r6.146468265575217 " +#2041 +0! +r6.17378677830454 " +1# +#2042 +1! +r6.201058951941692 " +#2043 +0! +r6.228283709827964 " +0# +#2044 +1! +r6.255459977176538 " +#2045 +0! +r6.282586681114882 " +1# +#2046 +1! +r6.309662750727226 " +#2047 +0! +r6.336687117096658 " +0# +#2048 +1! +r6.36365871334749 " +#2049 +0! +r6.390576474687268 " +1# +#2050 +1! +r6.41743933844886 " +#2051 +0! +r6.444246244132445 " +0# +#2052 +1! +r6.470996133447234 " +#2053 +0! +r6.497687950353447 " +1# +#2054 +1! +r6.524320641103816 " +#2055 +0! +r6.550893154285337 " +0# +#2056 +1! +r6.57740444086066 " +#2057 +0! +r6.60385345420962 " +1# +#2058 +1! +r6.630239150170461 " +#2059 +0! +r6.656560487081047 " +0# +#2060 +1! +r6.682816425820111 " +#2061 +0! +r6.709005929848113 " +1# +#2062 +1! +r6.735127965248283 " +#2063 +0! +r6.761181500767409 " +0# +#2064 +1! +r6.787165507856509 " +#2065 +0! +r6.813078960711491 " +1# +#2066 +1! +r6.83892083631357 " +#2067 +0! +r6.864690114469777 " +0# +#2068 +1! +r6.890385777853124 " +#2069 +0! +r6.916006812042829 " +1# +#2070 +1! +r6.941552205564316 " +#2071 +0! +r6.967020949929197 " +0# +#2072 +1! +r6.992412039675061 " +#2073 +0! +r7.017724472405141 " +1# +#2074 +1! +r7.042957248827962 " +#2075 +0! +r7.068109372796695 " +0# +#2076 +1! +r7.093179851348568 " +#2077 +0! +r7.118167694744001 " +1# +#2078 +1! +r7.143071916505728 " +#2079 +0! +r7.16789153345772 " +0# +#2080 +1! +r7.192625565763995 " +#2081 +0! +r7.217273036967317 " +1# +#2082 +1! +r7.241832974027712 " +#2083 +0! +r7.266304407360925 " +0# +#2084 +1! +r7.290686370876671 " +#2085 +0! +r7.314977902016771 " +1# +#2086 +1! +r7.339178041793197 " +#2087 +0! +r7.363285834825833 " +0# +#2088 +1! +r7.387300329380311 " +#2089 +0! +r7.411220577405491 " +1# +#2090 +1! +r7.435045634570946 " +#2091 +0! +r7.458774560304214 " +0# +#2092 +1! +r7.482406417827931 " +#2093 +0! +r7.505940274196853 " +1# +#2094 +1! +r7.529375200334593 " +#2095 +0! +r7.552710271070401 " +0# +#2096 +1! +r7.575944565175655 " +#2097 +0! +r7.599077165400199 " +1# +#2098 +1! +r7.622107158508593 " +#2099 +0! +r7.645033635316127 " +0# +#2100 +1! +r7.667855690724776 " +#2101 +0! +r7.69057242375883 " +1# +#2102 +1! +r7.713182937600612 " +#2103 +0! +r7.735686339625723 " +0# +#2104 +1! +r7.758081741438392 " +#2105 +0! +r7.780368258906507 " +1# +#2106 +1! +r7.802545012196507 " +#2107 +0! +r7.824611125808151 " +0# +#2108 +1! +r7.846565728609058 " +#2109 +0! +r7.868407953869107 " +1# +#2110 +1! +r7.890136939294631 " +#2111 +0! +r7.9117518270625 " +0# +#2112 +1! +r7.933251763853954 " +#2113 +0! +r7.954635900888302 " +1# +#2114 +1! +r7.975903393956436 " +#2115 +0! +r7.997053403454133 " +0# +#2116 +1! +r8.018085094415246 " +#2117 +0! +r8.038997636544615 " +1# +#2118 +1! +r8.059790204250877 " +#2119 +0! +r8.0804619766791 " +0# +b0100001001000 $ +b1000110101000000000111110111111 % +1' +#2120 +1! +r8.101012137743069 " +0' +#2121 +0! +r8.121439876157627 " +1# +#2122 +1! +r8.141744385470631 " +#2123 +0! +r8.161924864094825 " +0# +#2124 +1! +r8.181980515339465 " +#2125 +0! +r8.201910547441779 " +1# +#2126 +1! +r8.221714173598244 " +#2127 +0! +r8.241390611995584 " +0# +#2128 +1! +r8.260939085841716 " +#2129 +0! +r8.280358823396348 " +1# +#2130 +1! +r8.299649058001524 " +#2131 +0! +r8.318809028111781 " +0# +#2132 +1! +r8.337837977324323 " +#2133 +0! +r8.356735154408826 " +1# +#2134 +1! +r8.375499813337074 " +#2135 +0! +r8.394131213312466 " +0# +#2136 +1! +r8.412628618799246 " +#2137 +0! +r8.430991299551511 " +1# +#2138 +1! +r8.449218530642074 " +#2139 +0! +r8.467309592491052 " +0# +#2140 +1! +r8.48526377089431 " +#2141 +0! +r8.503080357051603 " +1# +#2142 +1! +r8.520758647594647 " +#2143 +0! +r8.538297944614785 " +0# +#2144 +1! +r8.555697555690607 " +#2145 +0! +r8.572956793915262 " +1# +#2146 +1! +r8.590074977923567 " +#2147 +0! +r8.607051431918945 " +0# +#2148 +1! +r8.623885485700049 " +#2149 +0! +r8.640576474687267 " +1# +#2150 +1! +r8.657123739948926 " +#2151 +0! +r8.673526628227329 " +0# +#2152 +1! +r8.689784491964536 " +#2153 +0! +r8.705896689327922 " +1# +#2154 +1! +r8.721862584235531 " +#2155 +0! +r8.737681546381157 " +0# +#2156 +1! +r8.753352951259275 " +#2157 +0! +r8.768876180189642 " +1# +#2158 +1! +r8.784250620341755 " +#2159 +0! +r8.79947566475907 " +0# +#2160 +1! +r8.814550712382875 " +#2161 +0! +r8.829475168076119 " +1# +#2162 +1! +r8.844248442646832 " +#2163 +0! +r8.858869952871437 " +0# +#2164 +1! +r8.873339121517745 " +#2165 +0! +r8.887655377367755 " +1# +#2166 +1! +r8.901818155240209 " +#2167 +0! +r8.915826896012865 " +0# +#2168 +1! +r8.929681046644646 " +#2169 +0! +r8.943380060197384 " +1# +#2170 +1! +r8.956923395857507 " +#2171 +0! +r8.970310518957289 " +0# +#2172 +1! +r8.983540900996047 " +#2173 +0! +r8.996614019660957 " +1# +#2174 +1! +r9.009529358847653 " +#2175 +0! +r9.022286408680687 " +0# +#2176 +1! +r9.034884665533561 " +#2177 +0! +r9.047323632048668 " +1# +#2178 +1! +r9.059602817156915 " +#2179 +0! +r9.071721736097089 " +0# +#2180 +1! +r9.083679910435027 " +#2181 +0! +r9.095476868082478 " +1# +#2182 +1! +r9.107112143315764 " +#2183 +0! +r9.11858527679413 " +0# +#2184 +1! +r9.129895815577914 " +#2185 +0! +r9.141043313146419 " +1# +#2186 +1! +r9.152027329415516 " +#2187 +0! +r9.162847430755061 " +0# +#2188 +1! +r9.173503190005977 " +#2189 +0! +r9.183994186497134 " +1# +#2190 +1! +r9.19432000606195 " +#2191 +0! +r9.20448024105475 " +0# +#2192 +1! +r9.214474490366866 " +#2193 +0! +r9.224302359442433 " +1# +#2194 +1! +r9.233963460294017 " +#2195 +0! +r9.243457411517891 " +0# +#2196 +1! +r9.252783838309124 " +#2197 +0! +r9.261942372476348 " +1# +#2198 +1! +r9.270932652456324 " +#2199 +0! +r9.279754323328193 " +0# +#2200 +1! +r9.288407036827483 " +#2201 +0! +r9.296890451359896 " +1# +#2202 +1! +r9.30520423201474 " +#2203 +0! +r9.313348050578194 " +0# +#2204 +1! +r9.321321585546244 " +#2205 +0! +r9.329124522137384 " +1# +#2206 +1! +r9.336756552305047 " +#2207 +0! +r9.344217374749732 " +0# +#2208 +1! +r9.351506694930958 " +#2209 +0! +r9.358624225078838 " +1# +#2210 +1! +r9.365569684205477 " +#2211 +0! +r9.372342798116033 " +0# +#2212 +1! +r9.37894329941957 " +#2213 +0! +r9.385370927539601 " +1# +#2214 +1! +r9.391625428724362 " +#2215 +0! +r9.397706556056871 " +0# +#2216 +1! +r9.403614069464624 " +#2217 +0! +r9.409347735729112 " +1# +#2218 +1! +r9.414907328495005 " +#2219 +0! +r9.4202926282791 " +0# +b0100010101100 $ +b01010100110100100100100010100011 % +1' +#2220 +1! +r9.425503422478984 " +0' +#2221 +0! +r9.430539505381425 " +1# +#2222 +1! +r9.435400678170492 " +#2223 +0! +r9.440086748935407 " +0# +#2224 +1! +r9.44459753267812 " +#2225 +0! +r9.448932851320613 " +1# +#2226 +1! +r9.453092533711928 " +#2227 +0! +r9.45707641563493 " +0# +#2228 +1! +r9.460884339812779 " +#2229 +0! +r9.464516155915152 " +1# +#2230 +1! +r9.467971720564162 " +#2231 +0! +r9.471250897340036 " +0# +#2232 +1! +r9.474353556786495 " +#2233 +0! +r9.47727957641585 " +1# +#2234 +1! +r9.48002884071386 " +#2235 +0! +r9.482601241144277 " +0# +#2236 +1! +r9.484996676153134 " +#2237 +0! +r9.487215051172761 " +1# +#2238 +1! +r9.489256278625513 " +#2239 +0! +r9.491120277927223 " +0# +#2240 +1! +r9.492806975490389 " +#2241 +0! +r9.494316304727079 " +1# +#2242 +1! +r9.495648206051561 " +#2243 +0! +r9.496802626882651 " +0# +#2244 +1! +r9.497779521645793 " +#2245 +0! +r9.49857885177485 " +1# +#2246 +1! +r9.499200585713641 " +#2247 +0! +r9.499644698917173 " +0# +#2248 +1! +r9.499911173852617 " +#2249 +0! +r9.5 " +1# +#2250 +1! +r9.499911173852617 " +#2251 +0! +r9.499644698917173 " +0# +#2252 +1! +r9.499200585713641 " +#2253 +0! +r9.49857885177485 " +1# +#2254 +1! +r9.497779521645793 " +#2255 +0! +r9.496802626882651 " +0# +#2256 +1! +r9.495648206051561 " +#2257 +0! +r9.494316304727079 " +1# +#2258 +1! +r9.492806975490389 " +#2259 +0! +r9.491120277927223 " +0# +#2260 +1! +r9.489256278625515 " +#2261 +0! +r9.487215051172763 " +1# +#2262 +1! +r9.484996676153134 " +#2263 +0! +r9.482601241144277 " +0# +#2264 +1! +r9.48002884071386 " +#2265 +0! +r9.47727957641585 " +1# +#2266 +1! +r9.474353556786497 " +#2267 +0! +r9.471250897340038 " +0# +#2268 +1! +r9.467971720564162 " +#2269 +0! +r9.464516155915149 " +1# +#2270 +1! +r9.460884339812781 " +#2271 +0! +r9.457076415634932 " +0# +#2272 +1! +r9.453092533711928 " +#2273 +0! +r9.448932851320613 " +1# +#2274 +1! +r9.444597532678118 " +#2275 +0! +r9.440086748935405 " +0# +#2276 +1! +r9.435400678170492 " +#2277 +0! +r9.430539505381425 " +1# +#2278 +1! +r9.425503422478986 " +#2279 +0! +r9.4202926282791 " +0# +#2280 +1! +r9.414907328495003 " +#2281 +0! +r9.409347735729108 " +1# +#2282 +1! +r9.403614069464625 " +#2283 +0! +r9.397706556056871 " +0# +#2284 +1! +r9.391625428724364 " +#2285 +0! +r9.385370927539597 " +1# +#2286 +1! +r9.378943299419568 " +#2287 +0! +r9.372342798116033 " +0# +#2288 +1! +r9.365569684205475 " +#2289 +0! +r9.358624225078842 " +1# +#2290 +1! +r9.351506694930958 " +#2291 +0! +r9.344217374749732 " +0# +#2292 +1! +r9.336756552305044 " +#2293 +0! +r9.329124522137388 " +1# +#2294 +1! +r9.321321585546244 " +#2295 +0! +r9.31334805057819 " +0# +#2296 +1! +r9.305204232014736 " +#2297 +0! +r9.296890451359891 " +1# +#2298 +1! +r9.288407036827483 " +#2299 +0! +r9.279754323328195 " +0# +#2300 +1! +r9.270932652456324 " +#2301 +0! +r9.261942372476348 " +1# +#2302 +1! +r9.252783838309119 " +#2303 +0! +r9.243457411517888 " +0# +#2304 +1! +r9.233963460294014 " +#2305 +0! +r9.224302359442436 " +1# +#2306 +1! +r9.214474490366868 " +#2307 +0! +r9.204480241054751 " +0# +#2308 +1! +r9.194320006061947 " +#2309 +0! +r9.183994186497127 " +1# +#2310 +1! +r9.173503190005977 " +#2311 +0! +r9.162847430755058 " +0# +#2312 +1! +r9.152027329415517 " +#2313 +0! +r9.141043313146419 " +1# +#2314 +1! +r9.12989581557791 " +#2315 +0! +r9.118585276794132 " +0# +#2316 +1! +r9.107112143315764 " +#2317 +0! +r9.095476868082482 " +1# +#2318 +1! +r9.083679910435027 " +#2319 +0! +r9.071721736097087 " +0# +b0100100010000 $ +b100011000001001000000110000111 % +1' +#2320 +1! +r9.059602817156913 " +0' +#2321 +0! +r9.04732363204867 " +1# +#2322 +1! +r9.034884665533564 " +#2323 +0! +r9.022286408680685 " +0# +#2324 +1! +r9.009529358847654 " +#2325 +0! +r8.996614019660951 " +1# +#2326 +1! +r8.983540900996045 " +#2327 +0! +r8.970310518957291 " +0# +#2328 +1! +r8.956923395857501 " +#2329 +0! +r8.943380060197386 " +1# +#2330 +1! +r8.929681046644637 " +#2331 +0! +r8.915826896012863 " +0# +#2332 +1! +r8.901818155240212 " +#2333 +0! +r8.887655377367757 " +1# +#2334 +1! +r8.873339121517747 " +#2335 +0! +r8.858869952871432 " +0# +#2336 +1! +r8.844248442646826 " +#2337 +0! +r8.829475168076108 " +1# +#2338 +1! +r8.814550712382879 " +#2339 +0! +r8.799475664759072 " +0# +#2340 +1! +r8.784250620341759 " +#2341 +0! +r8.768876180189636 " +1# +#2342 +1! +r8.753352951259265 " +#2343 +0! +r8.737681546381152 " +0# +#2344 +1! +r8.721862584235524 " +#2345 +0! +r8.705896689327925 " +1# +#2346 +1! +r8.689784491964538 " +#2347 +0! +r8.673526628227323 " +0# +#2348 +1! +r8.657123739948924 " +#2349 +0! +r8.640576474687265 " +1# +#2350 +1! +r8.62388548570005 " +#2351 +0! +r8.60705143191894 " +0# +#2352 +1! +r8.590074977923569 " +#2353 +0! +r8.57295679391526 " +1# +#2354 +1! +r8.5556975556906 " +#2355 +0! +r8.538297944614788 " +0# +#2356 +1! +r8.520758647594647 " +#2357 +0! +r8.503080357051605 " +1# +#2358 +1! +r8.485263770894303 " +#2359 +0! +r8.467309592491048 " +0# +#2360 +1! +r8.449218530642073 " +#2361 +0! +r8.430991299551515 " +1# +#2362 +1! +r8.41262861879925 " +#2363 +0! +r8.394131213312464 " +0# +#2364 +1! +r8.375499813337067 " +#2365 +0! +r8.356735154408819 " +1# +#2366 +1! +r8.337837977324327 " +#2367 +0! +r8.318809028111785 " +0# +#2368 +1! +r8.299649058001517 " +#2369 +0! +r8.28035882339635 " +1# +#2370 +1! +r8.260939085841704 " +#2371 +0! +r8.241390611995577 " +0# +#2372 +1! +r8.221714173598247 " +#2373 +0! +r8.201910547441782 " +1# +#2374 +1! +r8.181980515339468 " +#2375 +0! +r8.161924864094816 " +0# +#2376 +1! +r8.141744385470624 " +#2377 +0! +r8.121439876157613 " +1# +#2378 +1! +r8.101012137743073 " +#2379 +0! +r8.080461976679103 " +0# +#2380 +1! +r8.059790204250881 " +#2381 +0! +r8.038997636544613 " +1# +#2382 +1! +r8.018085094415232 " +#2383 +0! +r7.997053403454137 " +0# +#2384 +1! +r7.975903393956427 " +#2385 +0! +r7.954635900888306 " +1# +#2386 +1! +r7.933251763853957 " +#2387 +0! +r7.911751827062492 " +0# +#2388 +1! +r7.890136939294629 " +#2389 +0! +r7.868407953869104 " +1# +#2390 +1! +r7.846565728609063 " +#2391 +0! +r7.82461112580815 " +0# +#2392 +1! +r7.802545012196505 " +#2393 +0! +r7.780368258906504 " +1# +#2394 +1! +r7.758081741438396 " +#2395 +0! +r7.735686339625728 " +0# +#2396 +1! +r7.713182937600608 " +#2397 +0! +r7.690572423758834 " +1# +#2398 +1! +r7.667855690724767 " +#2399 +0! +r7.645033635316125 " +0# +#2400 +1! +r7.622107158508596 " +#2401 +0! +r7.599077165400203 " +1# +#2402 +1! +r7.575944565175659 " +#2403 +0! +r7.552710271070399 " +0# +#2404 +1! +r7.529375200334584 " +#2405 +0! +r7.505940274196844 " +1# +#2406 +1! +r7.482406417827935 " +#2407 +0! +r7.458774560304218 " +0# +#2408 +1! +r7.435045634570937 " +#2409 +0! +r7.411220577405482 " +1# +#2410 +1! +r7.387300329380295 " +#2411 +0! +r7.363285834825837 " +0# +#2412 +1! +r7.3391780417932 " +#2413 +0! +r7.314977902016775 " +1# +#2414 +1! +r7.290686370876676 " +#2415 +0! +r7.266304407360916 " +0# +#2416 +1! +r7.241832974027702 " +#2417 +0! +r7.217273036967314 " +1# +#2418 +1! +r7.192625565763999 " +#2419 +0! +r7.167891533457723 " +0# +b0100101110100 $ +b01110001001101101011101001101011 % +1' +#2420 +1! +r7.143071916505718 " +0' +#2421 +0! +r7.118167694743998 " +1# +#2422 +1! +r7.093179851348552 " +#2423 +0! +r7.0681093727967 " +0# +#2424 +1! +r7.042957248827959 " +#2425 +0! +r7.017724472405146 " +1# +#2426 +1! +r6.992412039675059 " +#2427 +0! +r6.967020949929188 " +0# +#2428 +1! +r6.941552205564321 " +#2429 +0! +r6.916006812042826 " +1# +#2430 +1! +r6.89038577785313 " +#2431 +0! +r6.864690114469774 " +0# +#2432 +1! +r6.838920836313568 " +#2433 +0! +r6.813078960711481 " +1# +#2434 +1! +r6.787165507856513 " +#2435 +0! +r6.761181500767413 " +0# +#2436 +1! +r6.735127965248281 " +#2437 +0! +r6.709005929848103 " +1# +#2438 +1! +r6.682816425820094 " +#2439 +0! +r6.656560487081045 " +0# +#2440 +1! +r6.630239150170466 " +#2441 +0! +r6.603853454209625 " +1# +#2442 +1! +r6.577404440860664 " +#2443 +0! +r6.550893154285319 " +0# +#2444 +1! +r6.524320641103806 " +#2445 +0! +r6.497687950353436 " +1# +#2446 +1! +r6.470996133447239 " +#2447 +0! +r6.444246244132449 " +0# +#2448 +1! +r6.417439338448865 " +#2449 +0! +r6.390576474687258 " +1# +#2450 +1! +r6.363658713347472 " +#2451 +0! +r6.336687117096663 " +0# +#2452 +1! +r6.309662750727231 " +#2453 +0! +r6.282586681114886 " +1# +#2454 +1! +r6.255459977176535 " +#2455 +0! +r6.228283709827953 " +0# +#2456 +1! +r6.201058951941681 " +#2457 +0! +r6.173786778304537 " +1# +#2458 +1! +r6.146468265575223 " +#2459 +0! +r6.119104492241851 " +0# +#2460 +1! +r6.091696538579331 " +#2461 +0! +r6.064245486606761 " +1# +#2462 +1! +r6.036752420044659 " +#2463 +0! +r6.009218424272219 " +0# +#2464 +1! +r5.981644586284439 " +#2465 +0! +r5.954031994649245 " +1# +#2466 +1! +r5.926381739464467 " +#2467 +0! +r5.898694912314826 " +0# +#2468 +1! +r5.870972606228875 " +#2469 +0! +r5.843215915635759 " +1# +#2470 +1! +r5.815425936322118 " +#2471 +0! +r5.787603765388736 " +0# +#2472 +1! +r5.759750501207297 " +#2473 +0! +r5.731867243376989 " +1# +#2474 +1! +r5.703955092681038 " +#2475 +0! +r5.676015151043408 " +0# +#2476 +1! +r5.648048521485129 " +#2477 +0! +r5.620056308080867 " +1# +#2478 +1! +r5.592039615915262 " +#2479 +0! +r5.563999551039369 " +0# +#2480 +1! +r5.535937220426923 " +#2481 +0! +r5.507853731930663 " +1# +#2482 +1! +r5.479750194238666 " +#2483 +0! +r5.451627716830457 " +0# +#2484 +1! +r5.423487409933307 " +#2485 +0! +r5.395330384478338 " +1# +#2486 +1! +r5.367157752056713 " +#2487 +0! +r5.338970624875703 " +0# +#2488 +1! +r5.310770115714817 " +#2489 +0! +r5.282557337881904 " +1# +#2490 +1! +r5.254333405169113 " +#2491 +0! +r5.226099431808968 " +0# +#2492 +1! +r5.197856532430398 " +#2493 +0! +r5.169605822014706 " +1# +#2494 +1! +r5.14134841585158 " +#2495 +0! +r5.113085429495007 " +0# +#2496 +1! +r5.084817978719342 " +#2497 +0! +r5.056547179475086 " +1# +#2498 +1! +r5.028274147845016 " +#2499 +0! +r5.000000000000003 " +0# +#2500 +1! +r4.971725852154981 " +#2501 +0! +r4.943452820524912 " +1# +#2502 +1! +r4.915182021280663 " +#2503 +0! +r4.886914570504983 " +0# +#2504 +1! +r4.858651584148419 " +#2505 +0! +r4.830394177985292 " +1# +#2506 +1! +r4.802143467569607 " +#2507 +0! +r4.773900568191038 " +0# +#2508 +1! +r4.745666594830892 " +#2509 +0! +r4.717442662118086 " +1# +#2510 +1! +r4.689229884285172 " +#2511 +0! +r4.661029375124294 " +0# +#2512 +1! +r4.632842247943285 " +#2513 +0! +r4.604669615521667 " +1# +#2514 +1! +r4.576512590066683 " +#2515 +0! +r4.548372283169532 " +0# +#2516 +1! +r4.520249805761323 " +#2517 +0! +r4.492146268069327 " +1# +#2518 +1! +r4.464062779573075 " +#2519 +0! +r4.436000448960637 " +0# +b0100111011000 $ +b1011010001111001101001111 % +1' +#2520 +1! +r4.407960384084737 " +0' +#2521 +0! +r4.379943691919122 " +1# +#2522 +1! +r4.35195147851486 " +#2523 +0! +r4.323984848956583 " +0# +#2524 +1! +r4.296044907318968 " +#2525 +0! +r4.268132756623016 " +1# +#2526 +1! +r4.2402494987927 " +#2527 +0! +r4.212396234611262 " +0# +#2528 +1! +r4.184574063677871 " +#2529 +0! +r4.156784084364238 " +1# +#2530 +1! +r4.12902739377113 " +#2531 +0! +r4.101305087685171 " +0# +#2532 +1! +r4.073618260535524 " +#2533 +0! +r4.045968005350753 " +1# +#2534 +1! +r4.018355413715559 " +#2535 +0! +r3.990781575727771 " +0# +#2536 +1! +r3.963247579955346 " +#2537 +0! +r3.935754513393237 " +1# +#2538 +1! +r3.908303461420666 " +#2539 +0! +r3.880895507758154 " +0# +#2540 +1! +r3.853531734424775 " +#2541 +0! +r3.826213221695468 " +1# +#2542 +1! +r3.798941048058309 " +#2543 +0! +r3.771716290172037 " +0# +#2544 +1! +r3.744540022823462 " +#2545 +0! +r3.717413318885103 " +1# +#2546 +1! +r3.690337249272782 " +#2547 +0! +r3.66331288290335 " +0# +#2548 +1! +r3.636341286652526 " +#2549 +0! +r3.609423525312732 " +1# +#2550 +1! +r3.582560661551125 " +#2551 +0! +r3.55575375586754 " +0# +#2552 +1! +r3.529003866552759 " +#2553 +0! +r3.502312049646562 " +1# +#2554 +1! +r3.475679358896192 " +#2555 +0! +r3.449106845714678 " +0# +#2556 +1! +r3.422595559139326 " +#2557 +0! +r3.396146545790365 " +1# +#2558 +1! +r3.369760849829539 " +#2559 +0! +r3.343439512918946 " +0# +#2560 +1! +r3.317183574179897 " +#2561 +0! +r3.290994070151895 " +1# +#2562 +1! +r3.264872034751717 " +#2563 +0! +r3.238818499232578 " +0# +#2564 +1! +r3.212834492143492 " +#2565 +0! +r3.18692103928851 " +1# +#2566 +1! +r3.161079163686423 " +#2567 +0! +r3.135309885530217 " +0# +#2568 +1! +r3.109614222146869 " +#2569 +0! +r3.083993187957186 " +1# +#2570 +1! +r3.058447794435684 " +#2571 +0! +r3.032979050070804 " +0# +#2572 +1! +r3.007587960324932 " +#2573 +0! +r2.982275527594845 " +1# +#2574 +1! +r2.957042751172031 " +#2575 +0! +r2.931890627203313 " +0# +#2576 +1! +r2.906820148651446 " +#2577 +0! +r2.881832305256 " +1# +#2578 +1! +r2.856928083494272 " +#2579 +0! +r2.832108466542281 " +0# +#2580 +1! +r2.807374434235992 " +#2581 +0! +r2.782726963032691 " +1# +#2582 +1! +r2.758167025972296 " +#2583 +0! +r2.733695592639082 " +0# +#2584 +1! +r2.709313629123323 " +#2585 +0! +r2.685022097983216 " +1# +#2586 +1! +r2.660821958206817 " +#2587 +0! +r2.636714165174167 " +0# +#2588 +1! +r2.612699670619696 " +#2589 +0! +r2.588779422594516 " +1# +#2590 +1! +r2.564954365429061 " +#2591 +0! +r2.54122543969578 " +0# +#2592 +1! +r2.517593582172069 " +#2593 +0! +r2.494059725803161 " +1# +#2594 +1! +r2.470624799665408 " +#2595 +0! +r2.447289728929592 " +0# +#2596 +1! +r2.424055434824339 " +#2597 +0! +r2.400922834599795 " +1# +#2598 +1! +r2.377892841491408 " +#2599 +0! +r2.354966364683873 " +0# +#2600 +1! +r2.332144309275237 " +#2601 +0! +r2.309427576241157 " +1# +#2602 +1! +r2.286817062399383 " +#2603 +0! +r2.264313660374271 " +0# +#2604 +1! +r2.241918258561602 " +#2605 +0! +r2.219631741093493 " +1# +#2606 +1! +r2.197454987803493 " +#2607 +0! +r2.175388874191849 " +0# +#2608 +1! +r2.15343427139093 " +#2609 +0! +r2.131592046130899 " +1# +#2610 +1! +r2.109863060705363 " +#2611 +0! +r2.088248172937507 " +0# +#2612 +1! +r2.066748236146041 " +#2613 +0! +r2.045364099111693 " +1# +#2614 +1! +r2.024096606043564 " +#2615 +0! +r2.002946596545867 " +0# +#2616 +1! +r1.981914905584761 " +#2617 +0! +r1.96100236345538 " +1# +#2618 +1! +r1.940209795749117 " +#2619 +0! +r1.919538023320905 " +0# +b0101000111100 $ +b10001101100110110010110000110011 % +1' +#2620 +1! +r1.898987862256937 " +0' +#2621 +0! +r1.878560123842385 " +1# +#2622 +1! +r1.85825561452937 " +#2623 +0! +r1.838075135905177 " +0# +#2624 +1! +r1.818019484660524 " +#2625 +0! +r1.798089452558216 " +1# +#2626 +1! +r1.778285826401762 " +#2627 +0! +r1.758609388004422 " +0# +#2628 +1! +r1.739060914158294 " +#2629 +0! +r1.719641176603643 " +1# +#2630 +1! +r1.700350941998475 " +#2631 +0! +r1.681190971888214 " +0# +#2632 +1! +r1.662162022675671 " +#2633 +0! +r1.64326484559118 " +1# +#2634 +1! +r1.624500186662932 " +#2635 +0! +r1.605868786687535 " +0# +#2636 +1! +r1.587371381200744 " +#2637 +0! +r1.569008700448489 " +1# +#2638 +1! +r1.55078146935792 " +#2639 +0! +r1.532690407508944 " +0# +#2640 +1! +r1.514736229105695 " +#2641 +0! +r1.496919642948392 " +1# +#2642 +1! +r1.479241352405352 " +#2643 +0! +r1.461702055385215 " +0# +#2644 +1! +r1.444302444309395 " +#2645 +0! +r1.427043206084734 " +1# +#2646 +1! +r1.409925022076424 " +#2647 +0! +r1.39294856808105 " +0# +#2648 +1! +r1.376114514299957 " +#2649 +0! +r1.359423525312743 " +1# +#2650 +1! +r1.342876260051075 " +#2651 +0! +r1.326473371772671 " +0# +#2652 +1! +r1.310215508035455 " +#2653 +0! +r1.294103310672068 " +1# +#2654 +1! +r1.278137415764474 " +#2655 +0! +r1.262318453618846 " +0# +#2656 +1! +r1.246647048740734 " +#2657 +0! +r1.231123819810358 " +1# +#2658 +1! +r1.215749379658236 " +#2659 +0! +r1.200524335240922 " +0# +#2660 +1! +r1.185449287617125 " +#2661 +0! +r1.170524831923887 " +1# +#2662 +1! +r1.155751557353173 " +#2663 +0! +r1.141130047128566 " +0# +#2664 +1! +r1.126660878482248 " +#2665 +0! +r1.112344622632245 " +1# +#2666 +1! +r1.098181844759791 " +#2667 +0! +r1.084173103987132 " +0# +#2668 +1! +r1.070318953355357 " +#2669 +0! +r1.056619939802613 " +1# +#2670 +1! +r1.043076604142497 " +#2671 +0! +r1.029689481042711 " +0# +#2672 +1! +r1.016459099003953 " +#2673 +0! +r1.003385980339052 " +1# +#2674 +1! +r0.9904706411523403 " +#2675 +0! +r0.9777135913193096 " +0# +#2676 +1! +r0.9651153344664358 " +#2677 +0! +r0.9526763679513355 " +1# +#2678 +1! +r0.9403971828430864 " +#2679 +0! +r0.9282782639029117 " +0# +#2680 +1! +r0.9163200895649748 " +#2681 +0! +r0.9045231319175144 " +1# +#2682 +1! +r0.89288785668424 " +#2683 +0! +r0.8814147232058671 " +0# +#2684 +1! +r0.8701041844220887 " +#2685 +0! +r0.8589566868535812 " +1# +#2686 +1! +r0.8479726705844817 " +#2687 +0! +r0.837152569244938 " +0# +#2688 +1! +r0.8264968099940235 " +#2689 +0! +r0.8160058135028692 " +1# +#2690 +1! +r0.8056799939380461 " +#2691 +0! +r0.7955197589452476 " +0# +#2692 +1! +r0.7855255096331311 " +#2693 +0! +r0.7756976405575697 " +1# +#2694 +1! +r0.766036539705989 " +#2695 +0! +r0.7565425884821089 " +0# +#2696 +1! +r0.7472161616908775 " +#2697 +0! +r0.7380576275236503 " +1# +#2698 +1! +r0.7290673475436744 " +#2699 +0! +r0.7202456766718095 " +0# +#2700 +1! +r0.7115929631725164 " +#2701 +0! +r0.7031095486401089 " +1# +#2702 +1! +r0.6947957679852603 " +#2703 +0! +r0.6866519494218064 " +0# +#2704 +1! +r0.6786784144537554 " +#2705 +0! +r0.6708754778626131 " +1# +#2706 +1! +r0.6632434476949562 " +#2707 +0! +r0.6557826252502679 " +0# +#2708 +1! +r0.6484933050690431 " +#2709 +0! +r0.6413757749211575 " +1# +#2710 +1! +r0.6344303157945257 " +#2711 +0! +r0.6276572018839657 " +0# +#2712 +1! +r0.6210567005804295 " +#2713 +0! +r0.6146290724604055 " +1# +#2714 +1! +r0.6083745712756361 " +#2715 +0! +r0.6022934439431289 " +0# +#2716 +1! +r0.5963859305353756 " +#2717 +0! +r0.59065226427089 " +1# +#2718 +1! +r0.5850926715049942 " +#2719 +0! +r0.5797073717208994 " +0# +b0101010100000 $ +b011011110011010110010100010111 % +1' +#2720 +1! +r0.5744965775210176 " +0' +#2721 +0! +r0.5694604946185748 " +1# +#2722 +1! +r0.5645993218295109 " +#2723 +0! +r0.559913251064593 " +0# +#2724 +1! +r0.5554024673218798 " +#2725 +0! +r0.551067148679385 " +1# +#2726 +1! +r0.5469074662880686 " +#2727 +0! +r0.5429235843650702 " +0# +#2728 +1! +r0.5391156601872211 " +#2729 +0! +r0.5354838440848502 " +1# +#2730 +1! +r0.5320282794358375 " +#2731 +0! +r0.5287491026599618 " +0# +#2732 +1! +r0.5256464432135033 " +#2733 +0! +r0.5227204235841496 " +1# +#2734 +1! +r0.5199711592861398 " +#2735 +0! +r0.5173987588557241 " +0# +#2736 +1! +r0.5150033238468659 " +#2737 +0! +r0.5127849488272362 " +1# +#2738 +1! +r0.5107437213744861 " +#2739 +0! +r0.5088797220727779 " +0# +#2740 +1! +r0.5071930245096121 " +#2741 +0! +r0.5056836952729213 " +1# +#2742 +1! +r0.5043517939484392 " +#2743 +0! +r0.5031973731173487 " +0# +#2744 +1! +r0.5022204783542081 " +#2745 +0! +r0.50142114822515 " +1# +#2746 +1! +r0.5007994142863588 " +#2747 +0! +r0.5003553010828279 " +0# +#2748 +1! +r0.5000888261473833 " +#2749 +0! +r0.5 " +1# +#2750 +1! +r0.5000888261473833 " +#2751 +0! +r0.5003553010828279 " +0# +#2752 +1! +r0.5007994142863597 " +#2753 +0! +r0.50142114822515 " +1# +#2754 +1! +r0.5022204783542081 " +#2755 +0! +r0.5031973731173487 " +0# +#2756 +1! +r0.5043517939484383 " +#2757 +0! +r0.5056836952729213 " +1# +#2758 +1! +r0.5071930245096121 " +#2759 +0! +r0.5088797220727779 " +0# +#2760 +1! +r0.5107437213744861 " +#2761 +0! +r0.5127849488272371 " +1# +#2762 +1! +r0.5150033238468659 " +#2763 +0! +r0.5173987588557241 " +0# +#2764 +1! +r0.5199711592861398 " +#2765 +0! +r0.5227204235841505 " +1# +#2766 +1! +r0.525646443213506 " +#2767 +0! +r0.5287491026599609 " +0# +#2768 +1! +r0.5320282794358384 " +#2769 +0! +r0.5354838440848502 " +1# +#2770 +1! +r0.5391156601872202 " +#2771 +0! +r0.5429235843650693 " +0# +#2772 +1! +r0.5469074662880704 " +#2773 +0! +r0.5510671486793859 " +1# +#2774 +1! +r0.5554024673218789 " +#2775 +0! +r0.5599132510645948 " +0# +#2776 +1! +r0.56459932182951 " +#2777 +0! +r0.5694604946185766 " +1# +#2778 +1! +r0.5744965775210167 " +#2779 +0! +r0.5797073717209011 " +0# +#2780 +1! +r0.585092671504996 " +#2781 +0! +r0.5906522642708882 " +1# +#2782 +1! +r0.5963859305353774 " +#2783 +0! +r0.6022934439431316 " +0# +#2784 +1! +r0.6083745712756388 " +#2785 +0! +r0.6146290724604038 " +1# +#2786 +1! +r0.6210567005804313 " +#2787 +0! +r0.6276572018839675 " +0# +#2788 +1! +r0.6344303157945239 " +#2789 +0! +r0.6413757749211593 " +1# +#2790 +1! +r0.6484933050690413 " +#2791 +0! +r0.6557826252502705 " +0# +#2792 +1! +r0.6632434476949545 " +#2793 +0! +r0.6708754778626149 " +1# +#2794 +1! +r0.6786784144537581 " +#2795 +0! +r0.6866519494218055 " +0# +#2796 +1! +r0.6947957679852639 " +#2797 +0! +r0.7031095486401071 " +1# +#2798 +1! +r0.71159296317252 " +#2799 +0! +r0.7202456766718077 " +0# +#2800 +1! +r0.7290673475436726 " +#2801 +0! +r0.7380576275236486 " +1# +#2802 +1! +r0.7472161616908757 " +#2803 +0! +r0.7565425884821115 " +0# +#2804 +1! +r0.7660365397059872 " +#2805 +0! +r0.7756976405575733 " +1# +#2806 +1! +r0.7855255096331346 " +#2807 +0! +r0.795519758945245 " +0# +#2808 +1! +r0.8056799939380497 " +#2809 +0! +r0.8160058135028674 " +1# +#2810 +1! +r0.826496809994028 " +#2811 +0! +r0.8371525692449415 " +0# +#2812 +1! +r0.8479726705844852 " +#2813 +0! +r0.8589566868535856 " +1# +#2814 +1! +r0.870104184422086 " +#2815 +0! +r0.8814147232058716 " +0# +#2816 +1! +r0.8928878566842373 " +#2817 +0! +r0.9045231319175251 " +1# +#2818 +1! +r0.9163200895649721 " +#2819 +0! +r0.9282782639029161 " +0# +b0101100000100 $ +b10101001111111111001110111111011 % +1' +#2820 +1! +r0.9403971828430908 " +0' +#2821 +0! +r0.9526763679513328 " +1# +#2822 +1! +r0.9651153344664403 " +#2823 +0! +r0.9777135913193069 " +0# +#2824 +1! +r0.9904706411523447 " +#2825 +0! +r1.003385980339049 " +1# +#2826 +1! +r1.016459099003958 " +#2827 +0! +r1.029689481042716 " +0# +#2828 +1! +r1.043076604142501 " +#2829 +0! +r1.05661993980261 " +1# +#2830 +1! +r1.070318953355354 " +#2831 +0! +r1.084173103987137 " +0# +#2832 +1! +r1.098181844759796 " +#2833 +0! +r1.11234462263225 " +1# +#2834 +1! +r1.126660878482261 " +#2835 +0! +r1.141130047128564 " +0# +#2836 +1! +r1.155751557353169 " +#2837 +0! +r1.170524831923884 " +1# +#2838 +1! +r1.18544928761713 " +#2839 +0! +r1.200524335240936 " +0# +#2840 +1! +r1.215749379658242 " +#2841 +0! +r1.231123819810364 " +1# +#2842 +1! +r1.24664704874073 " +#2843 +0! +r1.262318453618843 " +0# +#2844 +1! +r1.27813741576447 " +#2845 +0! +r1.294103310672083 " +1# +#2846 +1! +r1.310215508035461 " +#2847 +0! +r1.326473371772677 " +0# +#2848 +1! +r1.342876260051081 " +#2849 +0! +r1.35942352531274 " +1# +#2850 +1! +r1.376114514299953 " +#2851 +0! +r1.392948568081047 " +0# +#2852 +1! +r1.40992502207643 " +#2853 +0! +r1.42704320608474 " +1# +#2854 +1! +r1.444302444309391 " +#2855 +0! +r1.461702055385222 " +0# +#2856 +1! +r1.479241352405359 " +#2857 +0! +r1.496919642948399 " +1# +#2858 +1! +r1.514736229105691 " +#2859 +0! +r1.53269040750895 " +0# +#2860 +1! +r1.550781469357926 " +#2861 +0! +r1.569008700448484 " +1# +#2862 +1! +r1.58737138120076 " +#2863 +0! +r1.605868786687531 " +0# +#2864 +1! +r1.624500186662939 " +#2865 +0! +r1.643264845591176 " +1# +#2866 +1! +r1.662162022675678 " +#2867 +0! +r1.681190971888221 " +0# +#2868 +1! +r1.700350941998471 " +#2869 +0! +r1.719641176603649 " +1# +#2870 +1! +r1.73906091415829 " +#2871 +0! +r1.758609388004429 " +0# +#2872 +1! +r1.778285826401757 " +#2873 +0! +r1.798089452558223 " +1# +#2874 +1! +r1.818019484660531 " +#2875 +0! +r1.838075135905172 " +0# +#2876 +1! +r1.858255614529376 " +#2877 +0! +r1.87856012384238 " +1# +#2878 +1! +r1.898987862256933 " +#2879 +0! +r1.919538023320901 " +0# +#2880 +1! +r1.940209795749112 " +#2881 +0! +r1.961002363455387 " +1# +#2882 +1! +r1.981914905584756 " +#2883 +0! +r2.002946596545875 " +0# +#2884 +1! +r2.024096606043572 " +#2885 +0! +r2.0453640991117 " +1# +#2886 +1! +r2.066748236146049 " +#2887 +0! +r2.088248172937502 " +0# +#2888 +1! +r2.109863060705371 " +#2889 +0! +r2.131592046130895 " +1# +#2890 +1! +r2.15343427139095 " +#2891 +0! +r2.175388874191844 " +0# +#2892 +1! +r2.197454987803501 " +#2893 +0! +r2.219631741093501 " +1# +#2894 +1! +r2.241918258561598 " +#2895 +0! +r2.264313660374279 " +0# +#2896 +1! +r2.286817062399391 " +#2897 +0! +r2.309427576241165 " +1# +#2898 +1! +r2.332144309275233 " +#2899 +0! +r2.354966364683881 " +0# +#2900 +1! +r2.377892841491416 " +#2901 +0! +r2.40092283459979 " +1# +#2902 +1! +r2.424055434824334 " +#2903 +0! +r2.447289728929587 " +0# +#2904 +1! +r2.470624799665416 " +#2905 +0! +r2.494059725803156 " +1# +#2906 +1! +r2.517593582172078 " +#2907 +0! +r2.541225439695801 " +0# +#2908 +1! +r2.564954365429056 " +#2909 +0! +r2.588779422594511 " +1# +#2910 +1! +r2.612699670619691 " +#2911 +0! +r2.636714165174176 " +0# +#2912 +1! +r2.660821958206812 " +#2913 +0! +r2.685022097983238 " +1# +#2914 +1! +r2.709313629123331 " +#2915 +0! +r2.733695592639077 " +0# +#2916 +1! +r2.75816702597229 " +#2917 +0! +r2.782726963032685 " +1# +#2918 +1! +r2.807374434236015 " +#2919 +0! +r2.832108466542276 " +0# +b0101101101000 $ +b0111000001100011101011011011111 % +1' +#2920 +1! +r2.856928083494281 " +0' +#2921 +0! +r2.881832305256009 " +1# +#2922 +1! +r2.906820148651441 " +#2923 +0! +r2.931890627203307 " +0# +#2924 +1! +r2.95704275117204 " +#2925 +0! +r2.982275527594854 " +1# +#2926 +1! +r3.00758796032494 " +#2927 +0! +r3.032979050070812 " +0# +#2928 +1! +r3.058447794435693 " +#2929 +0! +r3.08399318795718 " +1# +#2930 +1! +r3.109614222146863 " +#2931 +0! +r3.135309885530211 " +0# +#2932 +1! +r3.161079163686432 " +#2933 +0! +r3.186921039288519 " +1# +#2934 +1! +r3.212834492143486 " +#2935 +0! +r3.238818499232602 " +0# +#2936 +1! +r3.264872034751711 " +#2937 +0! +r3.290994070151889 " +1# +#2938 +1! +r3.317183574179891 " +#2939 +0! +r3.343439512918955 " +0# +#2940 +1! +r3.369760849829548 " +#2941 +0! +r3.396146545790375 " +1# +#2942 +1! +r3.422595559139335 " +#2943 +0! +r3.449106845714673 " +0# +#2944 +1! +r3.475679358896187 " +#2945 +0! +r3.502312049646556 " +1# +#2946 +1! +r3.529003866552769 " +#2947 +0! +r3.55575375586755 " +0# +#2948 +1! +r3.58256066155112 " +#2949 +0! +r3.609423525312741 " +1# +#2950 +1! +r3.63634128665252 " +#2951 +0! +r3.663312882903344 " +0# +#2952 +1! +r3.690337249272776 " +#2953 +0! +r3.717413318885106 " +1# +#2954 +1! +r3.744540022823465 " +#2955 +0! +r3.771716290172031 " +0# +#2956 +1! +r3.798941048058318 " +#2957 +0! +r3.82621322169547 " +1# +#2958 +1! +r3.853531734424785 " +#2959 +0! +r3.880895507758157 " +0# +#2960 +1! +r3.908303461420668 " +#2961 +0! +r3.935754513393238 " +1# +#2962 +1! +r3.963247579955341 " +#2963 +0! +r3.990781575727796 " +0# +#2964 +1! +r4.018355413715553 " +#2965 +0! +r4.045968005350763 " +1# +#2966 +1! +r4.07361826053554 " +#2967 +0! +r4.101305087685173 " +0# +#2968 +1! +r4.129027393771132 " +#2969 +0! +r4.156784084364241 " +1# +#2970 +1! +r4.184574063677882 " +#2971 +0! +r4.212396234611256 " +0# +#2972 +1! +r4.24024949879271 " +#2973 +0! +r4.268132756623018 " +1# +#2974 +1! +r4.296044907318969 " +#2975 +0! +r4.3239848489566 " +0# +#2976 +1! +r4.351951478514855 " +#2977 +0! +r4.379943691919133 " +1# +#2978 +1! +r4.40796038408473 " +#2979 +0! +r4.436000448960646 " +0# +#2980 +1! +r4.464062779573085 " +#2981 +0! +r4.492146268069328 " +1# +#2982 +1! +r4.520249805761325 " +#2983 +0! +r4.548372283169526 " +0# +#2984 +1! +r4.576512590066693 " +#2985 +0! +r4.604669615521661 " +1# +#2986 +1! +r4.63284224794331 " +#2987 +0! +r4.661029375124304 " +0# +#2988 +1! +r4.689229884285174 " +#2989 +0! +r4.717442662118088 " +1# +#2990 +1! +r4.745666594830886 " +#2991 +0! +r4.773900568191047 " +0# +#2992 +1! +r4.802143467569617 " +#2993 +0! +r4.830394177985302 " +1# +#2994 +1! +r4.858651584148428 " +#2995 +0! +r4.886914570504985 " +0# +#2996 +1! +r4.915182021280665 " +#2997 +0! +r4.943452820524914 " +1# +#2998 +1! +r4.971725852154983 " +#2999 +0! +r4.999999999999996 " +0# +#3000 +1! +r5.028274147845027 " +#3001 +0! +r5.056547179475096 " +1# +#3002 +1! +r5.084817978719344 " +#3003 +0! +r5.113085429495024 " +0# +#3004 +1! +r5.141348415851565 " +#3005 +0! +r5.169605822014708 " +1# +#3006 +1! +r5.197856532430392 " +#3007 +0! +r5.226099431808978 " +0# +#3008 +1! +r5.254333405169123 " +#3009 +0! +r5.282557337881905 " +1# +#3010 +1! +r5.31077011571482 " +#3011 +0! +r5.338970624875689 " +0# +#3012 +1! +r5.367157752056714 " +#3013 +0! +r5.395330384478348 " +1# +#3014 +1! +r5.423487409933332 " +#3015 +0! +r5.451627716830467 " +0# +#3016 +1! +r5.479750194238669 " +#3017 +0! +r5.507853731930664 " +1# +#3018 +1! +r5.535937220426909 " +#3019 +0! +r5.563999551039378 " +0# +b0101111001100 $ +b1000110011001000000111111000011 % +1' +#3020 +1! +r5.592039615915279 " +0' +#3021 +0! +r5.620056308080877 " +1# +#3022 +1! +r5.648048521485139 " +#3023 +0! +r5.676015151043409 " +0# +#3024 +1! +r5.703955092681039 " +#3025 +0! +r5.731867243376975 " +1# +#3026 +1! +r5.7597505012073 " +#3027 +0! +r5.787603765388738 " +0# +#3028 +1! +r5.815425936322128 " +#3029 +0! +r5.843215915635769 " +1# +#3030 +1! +r5.870972606228877 " +#3031 +0! +r5.898694912314836 " +0# +#3032 +1! +r5.926381739464453 " +#3033 +0! +r5.954031994649247 " +1# +#3034 +1! +r5.981644586284441 " +#3035 +0! +r6.009218424272213 " +0# +#3036 +1! +r6.036752420044669 " +#3037 +0! +r6.064245486606771 " +1# +#3038 +1! +r6.091696538579341 " +#3039 +0! +r6.119104492241837 " +0# +#3040 +1! +r6.146468265575225 " +#3041 +0! +r6.173786778304539 " +1# +#3042 +1! +r6.201058951941691 " +#3043 +0! +r6.228283709827963 " +0# +#3044 +1! +r6.255459977176529 " +#3045 +0! +r6.282586681114903 " +1# +#3046 +1! +r6.309662750727218 " +#3047 +0! +r6.336687117096664 " +0# +#3048 +1! +r6.363658713347489 " +#3049 +0! +r6.390576474687252 " +1# +#3050 +1! +r6.417439338448874 " +#3051 +0! +r6.444246244132444 " +0# +#3052 +1! +r6.470996133447255 " +#3053 +0! +r6.497687950353438 " +1# +#3054 +1! +r6.524320641103822 " +#3055 +0! +r6.550893154285321 " +0# +#3056 +1! +r6.577404440860658 " +#3057 +0! +r6.603853454209634 " +1# +#3058 +1! +r6.630239150170461 " +#3059 +0! +r6.656560487081054 " +0# +#3060 +1! +r6.682816425820103 " +#3061 +0! +r6.709005929848105 " +1# +#3062 +1! +r6.735127965248282 " +#3063 +0! +r6.761181500767407 " +0# +#3064 +1! +r6.787165507856522 " +#3065 +0! +r6.81307896071149 " +1# +#3066 +1! +r6.838920836313577 " +#3067 +0! +r6.864690114469783 " +0# +#3068 +1! +r6.890385777853131 " +#3069 +0! +r6.916006812042828 " +1# +#3070 +1! +r6.941552205564316 " +#3071 +0! +r6.967020949929211 " +0# +#3072 +1! +r6.992412039675053 " +#3073 +0! +r7.017724472405154 " +1# +#3074 +1! +r7.042957248827967 " +#3075 +0! +r7.068109372796687 " +0# +#3076 +1! +r7.093179851348568 " +#3077 +0! +r7.118167694743985 " +1# +#3078 +1! +r7.143071916505727 " +#3079 +0! +r7.167891533457718 " +0# +#3080 +1! +r7.192625565764008 " +#3081 +0! +r7.217273036967322 " +1# +#3082 +1! +r7.241832974027703 " +#3083 +0! +r7.266304407360918 " +0# +#3084 +1! +r7.290686370876663 " +#3085 +0! +r7.314977902016784 " +1# +#3086 +1! +r7.339178041793195 " +#3087 +0! +r7.363285834825845 " +0# +#3088 +1! +r7.387300329380303 " +#3089 +0! +r7.411220577405484 " +1# +#3090 +1! +r7.435045634570939 " +#3091 +0! +r7.458774560304207 " +0# +#3092 +1! +r7.482406417827944 " +#3093 +0! +r7.505940274196852 " +1# +#3094 +1! +r7.529375200334592 " +#3095 +0! +r7.552710271070407 " +0# +#3096 +1! +r7.575944565175661 " +#3097 +0! +r7.599077165400205 " +1# +#3098 +1! +r7.622107158508591 " +#3099 +0! +r7.645033635316139 " +0# +#3100 +1! +r7.667855690724762 " +#3101 +0! +r7.690572423758843 " +1# +#3102 +1! +r7.713182937600617 " +#3103 +0! +r7.735686339625729 " +0# +#3104 +1! +r7.758081741438398 " +#3105 +0! +r7.780368258906494 " +1# +#3106 +1! +r7.802545012196506 " +#3107 +0! +r7.824611125808151 " +0# +#3108 +1! +r7.84656572860907 " +#3109 +0! +r7.868407953869113 " +1# +#3110 +1! +r7.890136939294637 " +#3111 +0! +r7.911751827062493 " +0# +#3112 +1! +r7.933251763853947 " +#3113 +0! +r7.954635900888307 " +1# +#3114 +1! +r7.975903393956435 " +#3115 +0! +r7.997053403454133 " +0# +#3116 +1! +r8.018085094415252 " +#3117 +0! +r8.038997636544607 " +1# +#3118 +1! +r8.059790204250882 " +#3119 +0! +r8.080461976679095 " +0# +b0110000110000 $ +b01010100100101100100100010100111 % +1' +#3120 +1! +r8.101012137743073 " +0' +#3121 +0! +r8.121439876157627 " +1# +#3122 +1! +r8.141744385470631 " +#3123 +0! +r8.161924864094823 " +0# +#3124 +1! +r8.181980515339465 " +#3125 +0! +r8.201910547441784 " +1# +#3126 +1! +r8.221714173598238 " +#3127 +0! +r8.241390611995589 " +0# +#3128 +1! +r8.260939085841706 " +#3129 +0! +r8.280358823396346 " +1# +#3130 +1! +r8.299649058001524 " +#3131 +0! +r8.318809028111785 " +0# +#3132 +1! +r8.337837977324329 " +#3133 +0! +r8.35673515440882 " +1# +#3134 +1! +r8.375499813337067 " +#3135 +0! +r8.394131213312466 " +0# +#3136 +1! +r8.412628618799246 " +#3137 +0! +r8.430991299551522 " +1# +#3138 +1! +r8.44921853064208 " +#3139 +0! +r8.467309592491056 " +0# +#3140 +1! +r8.485263770894305 " +#3141 +0! +r8.503080357051607 " +1# +#3142 +1! +r8.520758647594647 " +#3143 +0! +r8.538297944614785 " +0# +#3144 +1! +r8.555697555690614 " +#3145 +0! +r8.572956793915257 " +1# +#3146 +1! +r8.590074977923575 " +#3147 +0! +r8.607051431918949 " +0# +#3148 +1! +r8.623885485700052 " +#3149 +0! +r8.640576474687267 " +1# +#3150 +1! +r8.657123739948915 " +#3151 +0! +r8.673526628227329 " +0# +#3152 +1! +r8.689784491964534 " +#3153 +0! +r8.705896689327931 " +1# +#3154 +1! +r8.721862584235526 " +#3155 +0! +r8.737681546381163 " +0# +#3156 +1! +r8.753352951259266 " +#3157 +0! +r8.768876180189633 " +1# +#3158 +1! +r8.784250620341762 " +#3159 +0! +r8.799475664759068 " +0# +#3160 +1! +r8.814550712382884 " +#3161 +0! +r8.829475168076113 " +1# +#3162 +1! +r8.844248442646826 " +#3163 +0! +r8.858869952871434 " +0# +#3164 +1! +r8.873339121517743 " +#3165 +0! +r8.887655377367764 " +1# +#3166 +1! +r8.901818155240209 " +#3167 +0! +r8.915826896012868 " +0# +#3168 +1! +r8.929681046644642 " +#3169 +0! +r8.943380060197386 " +1# +#3170 +1! +r8.956923395857503 " +#3171 +0! +r8.970310518957289 " +0# +#3172 +1! +r8.983540900996054 " +#3173 +0! +r8.996614019660948 " +1# +#3174 +1! +r9.009529358847658 " +#3175 +0! +r9.02228640868069 " +0# +#3176 +1! +r9.034884665533564 " +#3177 +0! +r9.04732363204867 " +1# +#3178 +1! +r9.059602817156915 " +#3179 +0! +r9.071721736097087 " +0# +#3180 +1! +r9.083679910435025 " +#3181 +0! +r9.095476868082486 " +1# +#3182 +1! +r9.107112143315767 " +#3183 +0! +r9.118585276794132 " +0# +#3184 +1! +r9.12989581557791 " +#3185 +0! +r9.141043313146412 " +1# +#3186 +1! +r9.152027329415517 " +#3187 +0! +r9.162847430755061 " +0# +#3188 +1! +r9.173503190005981 " +#3189 +0! +r9.183994186497136 " +1# +#3190 +1! +r9.194320006061947 " +#3191 +0! +r9.204480241054753 " +0# +#3192 +1! +r9.214474490366863 " +#3193 +0! +r9.224302359442436 " +1# +#3194 +1! +r9.233963460294017 " +#3195 +0! +r9.243457411517896 " +0# +#3196 +1! +r9.252783838309123 " +#3197 +0! +r9.261942372476348 " +1# +#3198 +1! +r9.270932652456326 " +#3199 +0! +r9.27975432332819 " +0# +#3200 +1! +r9.288407036827488 " +#3201 +0! +r9.296890451359891 " +1# +#3202 +1! +r9.30520423201474 " +#3203 +0! +r9.313348050578194 " +0# +#3204 +1! +r9.321321585546244 " +#3205 +0! +r9.329124522137388 " +1# +#3206 +1! +r9.336756552305044 " +#3207 +0! +r9.344217374749732 " +0# +#3208 +1! +r9.351506694930958 " +#3209 +0! +r9.358624225078838 " +1# +#3210 +1! +r9.365569684205479 " +#3211 +0! +r9.372342798116033 " +0# +#3212 +1! +r9.378943299419571 " +#3213 +0! +r9.385370927539594 " +1# +#3214 +1! +r9.391625428724364 " +#3215 +0! +r9.397706556056871 " +0# +#3216 +1! +r9.403614069464624 " +#3217 +0! +r9.409347735729114 " +1# +#3218 +1! +r9.414907328495001 " +#3219 +0! +r9.4202926282791 " +0# +b0110010010100 $ +b100010110010001000000110001011 % +1' +#3220 +1! +r9.425503422478982 " +0' +#3221 +0! +r9.430539505381425 " +1# +#3222 +1! +r9.435400678170492 " +#3223 +0! +r9.440086748935407 " +0# +#3224 +1! +r9.44459753267812 " +#3225 +0! +r9.448932851320613 " +1# +#3226 +1! +r9.453092533711931 " +#3227 +0! +r9.45707641563493 " +0# +#3228 +1! +r9.460884339812781 " +#3229 +0! +r9.464516155915149 " +1# +#3230 +1! +r9.46797172056416 " +#3231 +0! +r9.471250897340038 " +0# +#3232 +1! +r9.474353556786495 " +#3233 +0! +r9.477279576415853 " +1# +#3234 +1! +r9.48002884071386 " +#3235 +0! +r9.482601241144277 " +0# +#3236 +1! +r9.484996676153134 " +#3237 +0! +r9.487215051172761 " +1# +#3238 +1! +r9.489256278625515 " +#3239 +0! +r9.491120277927223 " +0# +#3240 +1! +r9.492806975490389 " +#3241 +0! +r9.494316304727079 " +1# +#3242 +1! +r9.495648206051561 " +#3243 +0! +r9.496802626882651 " +0# +#3244 +1! +r9.497779521645793 " +#3245 +0! +r9.49857885177485 " +1# +#3246 +1! +r9.499200585713641 " +#3247 +0! +r9.499644698917173 " +0# +#3248 +1! +r9.499911173852617 " +#3249 +0! +r9.5 " +1# +#3250 +1! +r9.499911173852617 " +#3251 +0! +r9.499644698917173 " +0# +#3252 +1! +r9.499200585713641 " +#3253 +0! +r9.49857885177485 " +1# +#3254 +1! +r9.497779521645793 " +#3255 +0! +r9.496802626882651 " +0# +#3256 +1! +r9.495648206051563 " +#3257 +0! +r9.494316304727079 " +1# +#3258 +1! +r9.492806975490389 " +#3259 +0! +r9.491120277927223 " +0# +#3260 +1! +r9.489256278625515 " +#3261 +0! +r9.487215051172761 " +1# +#3262 +1! +r9.484996676153134 " +#3263 +0! +r9.482601241144277 " +0# +#3264 +1! +r9.48002884071386 " +#3265 +0! +r9.477279576415851 " +1# +#3266 +1! +r9.474353556786493 " +#3267 +0! +r9.471250897340038 " +0# +#3268 +1! +r9.467971720564158 " +#3269 +0! +r9.464516155915149 " +1# +#3270 +1! +r9.460884339812779 " +#3271 +0! +r9.45707641563493 " +0# +#3272 +1! +r9.453092533711931 " +#3273 +0! +r9.448932851320611 " +1# +#3274 +1! +r9.444597532678118 " +#3275 +0! +r9.440086748935405 " +0# +#3276 +1! +r9.43540067817049 " +#3277 +0! +r9.430539505381423 " +1# +#3278 +1! +r9.425503422478982 " +#3279 +0! +r9.4202926282791 " +0# +#3280 +1! +r9.414907328495005 " +#3281 +0! +r9.409347735729112 " +1# +#3282 +1! +r9.403614069464624 " +#3283 +0! +r9.397706556056868 " +0# +#3284 +1! +r9.391625428724362 " +#3285 +0! +r9.385370927539597 " +1# +#3286 +1! +r9.378943299419571 " +#3287 +0! +r9.372342798116033 " +0# +#3288 +1! +r9.365569684205477 " +#3289 +0! +r9.358624225078836 " +1# +#3290 +1! +r9.351506694930954 " +#3291 +0! +r9.34421737474973 " +0# +#3292 +1! +r9.336756552305046 " +#3293 +0! +r9.32912452213739 " +1# +#3294 +1! +r9.321321585546242 " +#3295 +0! +r9.313348050578192 " +0# +#3296 +1! +r9.305204232014738 " +#3297 +0! +r9.296890451359893 " +1# +#3298 +1! +r9.288407036827486 " +#3299 +0! +r9.279754323328191 " +0# +#3300 +1! +r9.270932652456327 " +#3301 +0! +r9.261942372476346 " +1# +#3302 +1! +r9.252783838309121 " +#3303 +0! +r9.243457411517895 " +0# +#3304 +1! +r9.233963460294014 " +#3305 +0! +r9.224302359442433 " +1# +#3306 +1! +r9.214474490366865 " +#3307 +0! +r9.204480241054755 " +0# +#3308 +1! +r9.19432000606195 " +#3309 +0! +r9.183994186497133 " +1# +#3310 +1! +r9.173503190005979 " +#3311 +0! +r9.162847430755058 " +0# +#3312 +1! +r9.152027329415514 " +#3313 +0! +r9.141043313146415 " +1# +#3314 +1! +r9.129895815577914 " +#3315 +0! +r9.118585276794128 " +0# +#3316 +1! +r9.107112143315764 " +#3317 +0! +r9.095476868082482 " +1# +#3318 +1! +r9.083679910435022 " +#3319 +0! +r9.071721736097084 " +0# +b0110011111000 $ +b01110000111110101011101001101111 % +1' +#3320 +1! +r9.059602817156911 " +0' +#3321 +0! +r9.047323632048666 " +1# +#3322 +1! +r9.034884665533561 " +#3323 +0! +r9.022286408680685 " +0# +#3324 +1! +r9.009529358847654 " +#3325 +0! +r8.996614019660951 " +1# +#3326 +1! +r8.983540900996051 " +#3327 +0! +r8.970310518957284 " +0# +#3328 +1! +r8.956923395857498 " +#3329 +0! +r8.943380060197383 " +1# +#3330 +1! +r8.929681046644639 " +#3331 +0! +r8.915826896012872 " +0# +#3332 +1! +r8.901818155240203 " +#3333 +0! +r8.887655377367759 " +1# +#3334 +1! +r8.87333912151774 " +#3335 +0! +r8.858869952871437 " +0# +#3336 +1! +r8.84424844264683 " +#3337 +0! +r8.829475168076117 " +1# +#3338 +1! +r8.814550712382879 " +#3339 +0! +r8.799475664759065 " +0# +#3340 +1! +r8.784250620341759 " +#3341 +0! +r8.768876180189627 " +1# +#3342 +1! +r8.75335295125927 " +#3343 +0! +r8.737681546381157 " +0# +#3344 +1! +r8.721862584235531 " +#3345 +0! +r8.705896689327925 " +1# +#3346 +1! +r8.689784491964531 " +#3347 +0! +r8.673526628227323 " +0# +#3348 +1! +r8.657123739948918 " +#3349 +0! +r8.640576474687261 " +1# +#3350 +1! +r8.623885485700047 " +#3351 +0! +r8.607051431918944 " +0# +#3352 +1! +r8.590074977923571 " +#3353 +0! +r8.572956793915251 " +1# +#3354 +1! +r8.55569755569061 " +#3355 +0! +r8.538297944614779 " +0# +#3356 +1! +r8.520758647594642 " +#3357 +0! +r8.503080357051601 " +1# +#3358 +1! +r8.485263770894299 " +#3359 +0! +r8.467309592491059 " +0# +#3360 +1! +r8.449218530642074 " +#3361 +0! +r8.430991299551517 " +1# +#3362 +1! +r8.412628618799239 " +#3363 +0! +r8.394131213312459 " +0# +#3364 +1! +r8.375499813337061 " +#3365 +0! +r8.356735154408824 " +1# +#3366 +1! +r8.337837977324334 " +#3367 +0! +r8.318809028111779 " +0# +#3368 +1! +r8.299649058001519 " +#3369 +0! +r8.280358823396341 " +1# +#3370 +1! +r8.260939085841699 " +#3371 +0! +r8.241390611995582 " +0# +#3372 +1! +r8.221714173598244 " +#3373 +0! +r8.201910547441788 " +1# +#3374 +1! +r8.181980515339458 " +#3375 +0! +r8.161924864094818 " +0# +#3376 +1! +r8.141744385470624 " +#3377 +0! +r8.12143987615762 " +1# +#3378 +1! +r8.101012137743067 " +#3379 +0! +r8.0804619766791 " +0# +#3380 +1! +r8.059790204250888 " +#3381 +0! +r8.0389976365446 " +1# +#3382 +1! +r8.018085094415245 " +#3383 +0! +r7.997053403454126 " +0# +#3384 +1! +r7.975903393956428 " +#3385 +0! +r7.954635900888301 " +1# +#3386 +1! +r7.933251763853952 " +#3387 +0! +r7.911751827062499 " +0# +#3388 +1! +r7.89013693929463 " +#3389 +0! +r7.868407953869106 " +1# +#3390 +1! +r7.846565728609063 " +#3391 +0! +r7.824611125808144 " +0# +#3392 +1! +r7.8025450121965 " +#3393 +0! +r7.780368258906499 " +1# +#3394 +1! +r7.758081741438403 " +#3395 +0! +r7.735686339625722 " +0# +#3396 +1! +r7.71318293760061 " +#3397 +0! +r7.690572423758836 " +1# +#3398 +1! +r7.667855690724755 " +#3399 +0! +r7.645033635316132 " +0# +#3400 +1! +r7.622107158508584 " +#3401 +0! +r7.59907716540021 " +1# +#3402 +1! +r7.575944565175654 " +#3403 +0! +r7.552710271070399 " +0# +#3404 +1! +r7.529375200334599 " +#3405 +0! +r7.505940274196845 " +1# +#3406 +1! +r7.482406417827937 " +#3407 +0! +r7.458774560304199 " +0# +#3408 +1! +r7.435045634570944 " +#3409 +0! +r7.411220577405476 " +1# +#3410 +1! +r7.387300329380309 " +#3411 +0! +r7.363285834825838 " +0# +#3412 +1! +r7.339178041793188 " +#3413 +0! +r7.314977902016776 " +1# +#3414 +1! +r7.290686370876669 " +#3415 +0! +r7.266304407360924 " +0# +#3416 +1! +r7.241832974027711 " +#3417 +0! +r7.217273036967315 " +1# +#3418 +1! +r7.192625565764001 " +#3419 +0! +r7.167891533457711 " +0# +b0110101011100 $ +b1001011001111001101010011 % +1' +#3420 +1! +r7.14307191650572 " +0' +#3421 +0! +r7.118167694743992 " +1# +#3422 +1! +r7.093179851348559 " +#3423 +0! +r7.068109372796694 " +0# +#3424 +1! +r7.04295724882796 " +#3425 +0! +r7.017724472405146 " +1# +#3426 +1! +r6.992412039675045 " +#3427 +0! +r6.967020949929203 " +0# +#3428 +1! +r6.941552205564307 " +#3429 +0! +r6.91600681204282 " +1# +#3430 +1! +r6.890385777853138 " +#3431 +0! +r6.864690114469775 " +0# +#3432 +1! +r6.838920836313569 " +#3433 +0! +r6.813078960711482 " +1# +#3434 +1! +r6.787165507856514 " +#3435 +0! +r6.7611815007674 " +0# +#3436 +1! +r6.735127965248275 " +#3437 +0! +r6.709005929848111 " +1# +#3438 +1! +r6.68281642582011 " +#3439 +0! +r6.656560487081061 " +0# +#3440 +1! +r6.630239150170452 " +#3441 +0! +r6.603853454209626 " +1# +#3442 +1! +r6.57740444086065 " +#3443 +0! +r6.550893154285313 " +0# +#3444 +1! +r6.524320641103814 " +#3445 +0! +r6.497687950353445 " +1# +#3446 +1! +r6.470996133447247 " +#3447 +0! +r6.444246244132436 " +0# +#3448 +1! +r6.417439338448866 " +#3449 +0! +r6.390576474687244 " +1# +#3450 +1! +r6.363658713347481 " +#3451 +0! +r6.336687117096656 " +0# +#3452 +1! +r6.309662750727224 " +#3453 +0! +r6.282586681114895 " +1# +#3454 +1! +r6.255459977176521 " +#3455 +0! +r6.22828370982797 " +0# +#3456 +1! +r6.201058951941683 " +#3457 +0! +r6.17378677830453 " +1# +#3458 +1! +r6.146468265575216 " +#3459 +0! +r6.119104492241844 " +0# +#3460 +1! +r6.091696538579333 " +#3461 +0! +r6.064245486606762 " +1# +#3462 +1! +r6.03675242004466 " +#3463 +0! +r6.009218424272204 " +0# +#3464 +1! +r5.981644586284432 " +#3465 +0! +r5.954031994649238 " +1# +#3466 +1! +r5.92638173946446 " +#3467 +0! +r5.898694912314843 " +0# +#3468 +1! +r5.870972606228868 " +#3469 +0! +r5.84321591563576 " +1# +#3470 +1! +r5.815425936322103 " +#3471 +0! +r5.787603765388729 " +0# +#3472 +1! +r5.759750501207307 " +#3473 +0! +r5.731867243376982 " +1# +#3474 +1! +r5.703955092681047 " +#3475 +0! +r5.6760151510434 " +0# +#3476 +1! +r5.64804852148513 " +#3477 +0! +r5.620056308080868 " +1# +#3478 +1! +r5.592039615915271 " +#3479 +0! +r5.56399955103937 " +0# +#3480 +1! +r5.535937220426916 " +#3481 +0! +r5.507853731930672 " +1# +#3482 +1! +r5.47975019423866 " +#3483 +0! +r5.451627716830474 " +0# +#3484 +1! +r5.423487409933323 " +#3485 +0! +r5.395330384478339 " +1# +#3486 +1! +r5.367157752056706 " +#3487 +0! +r5.338970624875696 " +0# +#3488 +1! +r5.310770115714827 " +#3489 +0! +r5.282557337881912 " +1# +#3490 +1! +r5.254333405169114 " +#3491 +0! +r5.226099431808969 " +0# +#3492 +1! +r5.197856532430384 " +#3493 +0! +r5.169605822014699 " +1# +#3494 +1! +r5.141348415851573 " +#3495 +0! +r5.113085429495015 " +0# +#3496 +1! +r5.084817978719335 " +#3497 +0! +r5.056547179475087 " +1# +#3498 +1! +r5.028274147845018 " +#3499 +0! +r4.999999999999988 " +0# +#3500 +1! +r4.97172585215499 " +#3501 +0! +r4.943452820524905 " +1# +#3502 +1! +r4.915182021280656 " +#3503 +0! +r4.886914570504977 " +0# +#3504 +1! +r4.858651584148419 " +#3505 +0! +r4.830394177985293 " +1# +#3506 +1! +r4.802143467569608 " +#3507 +0! +r4.773900568191038 " +0# +#3508 +1! +r4.745666594830878 " +#3509 +0! +r4.71744266211808 " +1# +#3510 +1! +r4.689229884285165 " +#3511 +0! +r4.661029375124296 " +0# +#3512 +1! +r4.632842247943302 " +#3513 +0! +r4.604669615521653 " +1# +#3514 +1! +r4.576512590066684 " +#3515 +0! +r4.548372283169517 " +0# +#3516 +1! +r4.520249805761332 " +#3517 +0! +r4.492146268069336 " +1# +#3518 +1! +r4.464062779573092 " +#3519 +0! +r4.436000448960637 " +0# +b0110111000000 $ +b10001101010111110010110000110111 % +1' +#3520 +1! +r4.407960384084721 " +0' +#3521 +0! +r4.379943691919124 " +1# +#3522 +1! +r4.351951478514846 " +#3523 +0! +r4.323984848956592 " +0# +#3524 +1! +r4.296044907318961 " +#3525 +0! +r4.268132756623025 " +1# +#3526 +1! +r4.240249498792701 " +#3527 +0! +r4.212396234611247 " +0# +#3528 +1! +r4.184574063677889 " +#3529 +0! +r4.156784084364232 " +1# +#3530 +1! +r4.129027393771123 " +#3531 +0! +r4.101305087685165 " +0# +#3532 +1! +r4.073618260535532 " +#3533 +0! +r4.045968005350754 " +1# +#3534 +1! +r4.01835541371556 " +#3535 +0! +r3.990781575727788 " +0# +#3536 +1! +r3.963247579955332 " +#3537 +0! +r3.93575451339323 " +1# +#3538 +1! +r3.908303461420659 " +#3539 +0! +r3.880895507758148 " +0# +#3540 +1! +r3.853531734424791 " +#3541 +0! +r3.826213221695462 " +1# +#3542 +1! +r3.798941048058309 " +#3543 +0! +r3.771716290172022 " +0# +#3544 +1! +r3.744540022823456 " +#3545 +0! +r3.717413318885112 " +1# +#3546 +1! +r3.690337249272783 " +#3547 +0! +r3.663312882903351 " +0# +#3548 +1! +r3.636341286652511 " +#3549 +0! +r3.609423525312732 " +1# +#3550 +1! +r3.582560661551111 " +#3551 +0! +r3.555753755867557 " +0# +#3552 +1! +r3.52900386655276 " +#3553 +0! +r3.502312049646563 " +1# +#3554 +1! +r3.475679358896193 " +#3555 +0! +r3.449106845714664 " +0# +#3556 +1! +r3.422595559139327 " +#3557 +0! +r3.396146545790366 " +1# +#3558 +1! +r3.36976084982954 " +#3559 +0! +r3.343439512918947 " +0# +#3560 +1! +r3.317183574179897 " +#3561 +0! +r3.290994070151896 " +1# +#3562 +1! +r3.264872034751718 " +#3563 +0! +r3.238818499232593 " +0# +#3564 +1! +r3.212834492143478 " +#3565 +0! +r3.186921039288511 " +1# +#3566 +1! +r3.161079163686423 " +#3567 +0! +r3.135309885530217 " +0# +#3568 +1! +r3.109614222146869 " +#3569 +0! +r3.083993187957172 " +1# +#3570 +1! +r3.058447794435685 " +#3571 +0! +r3.032979050070804 " +0# +#3572 +1! +r3.007587960324932 " +#3573 +0! +r2.982275527594846 " +1# +#3574 +1! +r2.957042751172033 " +#3575 +0! +r2.931890627203313 " +0# +#3576 +1! +r2.906820148651433 " +#3577 +0! +r2.881832305256001 " +1# +#3578 +1! +r2.856928083494273 " +#3579 +0! +r2.832108466542282 " +0# +#3580 +1! +r2.807374434236007 " +#3581 +0! +r2.782726963032678 " +1# +#3582 +1! +r2.758167025972297 " +#3583 +0! +r2.733695592639069 " +0# +#3584 +1! +r2.709313629123324 " +#3585 +0! +r2.68502209798323 " +1# +#3586 +1! +r2.660821958206805 " +#3587 +0! +r2.636714165174168 " +0# +#3588 +1! +r2.612699670619684 " +#3589 +0! +r2.588779422594517 " +1# +#3590 +1! +r2.564954365429049 " +#3591 +0! +r2.541225439695794 " +0# +#3592 +1! +r2.51759358217207 " +#3593 +0! +r2.494059725803149 " +1# +#3594 +1! +r2.470624799665408 " +#3595 +0! +r2.447289728929593 " +0# +#3596 +1! +r2.42405543482434 " +#3597 +0! +r2.400922834599796 " +1# +#3598 +1! +r2.37789284149141 " +#3599 +0! +r2.354966364683874 " +0# +#3600 +1! +r2.332144309275225 " +#3601 +0! +r2.309427576241158 " +1# +#3602 +1! +r2.286817062399384 " +#3603 +0! +r2.264313660374272 " +0# +#3604 +1! +r2.241918258561603 " +#3605 +0! +r2.219631741093495 " +1# +#3606 +1! +r2.197454987803494 " +#3607 +0! +r2.175388874191849 " +0# +#3608 +1! +r2.153434271390943 " +#3609 +0! +r2.131592046130888 " +1# +#3610 +1! +r2.109863060705364 " +#3611 +0! +r2.088248172937508 " +0# +#3612 +1! +r2.066748236146042 " +#3613 +0! +r2.045364099111706 " +1# +#3614 +1! +r2.024096606043565 " +#3615 +0! +r2.002946596545868 " +0# +#3616 +1! +r1.98191490558475 " +#3617 +0! +r1.961002363455381 " +1# +#3618 +1! +r1.940209795749118 " +#3619 +0! +r1.919538023320906 " +0# +b0111000100100 $ +b011011100100010110010100011011 % +1' +#3620 +1! +r1.898987862256938 " +0' +#3621 +0! +r1.878560123842374 " +1# +#3622 +1! +r1.85825561452937 " +#3623 +0! +r1.838075135905166 " +0# +#3624 +1! +r1.818019484660536 " +#3625 +0! +r1.798089452558217 " +1# +#3626 +1! +r1.778285826401762 " +#3627 +0! +r1.758609388004423 " +0# +#3628 +1! +r1.739060914158284 " +#3629 +0! +r1.719641176603643 " +1# +#3630 +1! +r1.700350941998476 " +#3631 +0! +r1.681190971888215 " +0# +#3632 +1! +r1.662162022675672 " +#3633 +0! +r1.64326484559118 " +1# +#3634 +1! +r1.624500186662933 " +#3635 +0! +r1.605868786687525 " +0# +#3636 +1! +r1.587371381200755 " +#3637 +0! +r1.569008700448479 " +1# +#3638 +1! +r1.550781469357921 " +#3639 +0! +r1.532690407508945 " +0# +#3640 +1! +r1.514736229105695 " +#3641 +0! +r1.496919642948404 " +1# +#3642 +1! +r1.479241352405353 " +#3643 +0! +r1.461702055385216 " +0# +#3644 +1! +r1.444302444309386 " +#3645 +0! +r1.427043206084734 " +1# +#3646 +1! +r1.409925022076425 " +#3647 +0! +r1.392948568081051 " +0# +#3648 +1! +r1.376114514299958 " +#3649 +0! +r1.359423525312734 " +1# +#3650 +1! +r1.342876260051076 " +#3651 +0! +r1.326473371772672 " +0# +#3652 +1! +r1.310215508035456 " +#3653 +0! +r1.294103310672079 " +1# +#3654 +1! +r1.278137415764474 " +#3655 +0! +r1.262318453618847 " +0# +#3656 +1! +r1.246647048740726 " +#3657 +0! +r1.231123819810359 " +1# +#3658 +1! +r1.215749379658237 " +#3659 +0! +r1.200524335240931 " +0# +#3660 +1! +r1.185449287617125 " +#3661 +0! +r1.170524831923887 " +1# +#3662 +1! +r1.155751557353173 " +#3663 +0! +r1.141130047128559 " +0# +#3664 +1! +r1.126660878482257 " +#3665 +0! +r1.112344622632245 " +1# +#3666 +1! +r1.098181844759792 " +#3667 +0! +r1.084173103987133 " +0# +#3668 +1! +r1.070318953355358 " +#3669 +0! +r1.056619939802613 " +1# +#3670 +1! +r1.043076604142497 " +#3671 +0! +r1.029689481042712 " +0# +#3672 +1! +r1.016459099003954 " +#3673 +0! +r1.003385980339045 " +1# +#3674 +1! +r0.9904706411523412 " +#3675 +0! +r0.9777135913193096 " +0# +#3676 +1! +r0.9651153344664367 " +#3677 +0! +r0.9526763679513293 " +1# +#3678 +1! +r0.9403971828430864 " +#3679 +0! +r0.9282782639029126 " +0# +#3680 +1! +r0.9163200895649677 " +#3681 +0! +r0.9045231319175207 " +1# +#3682 +1! +r0.8928878566842329 " +#3683 +0! +r0.881414723205868 " +0# +#3684 +1! +r0.8701041844220825 " +#3685 +0! +r0.8589566868535821 " +1# +#3686 +1! +r0.8479726705844888 " +#3687 +0! +r0.837152569244938 " +0# +#3688 +1! +r0.8264968099940244 " +#3689 +0! +r0.8160058135028638 " +1# +#3690 +1! +r0.8056799939380461 " +#3691 +0! +r0.7955197589452423 " +0# +#3692 +1! +r0.7855255096331373 " +#3693 +0! +r0.7756976405575697 " +1# +#3694 +1! +r0.7660365397059836 " +#3695 +0! +r0.7565425884821089 " +0# +#3696 +1! +r0.747216161690873 " +#3697 +0! +r0.7380576275236512 " +1# +#3698 +1! +r0.7290673475436753 " +#3699 +0! +r0.7202456766718104 " +0# +#3700 +1! +r0.7115929631725173 " +#3701 +0! +r0.7031095486401044 " +1# +#3702 +1! +r0.6947957679852612 " +#3703 +0! +r0.6866519494218073 " +0# +#3704 +1! +r0.6786784144537554 " +#3705 +0! +r0.6708754778626131 " +1# +#3706 +1! +r0.6632434476949562 " +#3707 +0! +r0.6557826252502679 " +0# +#3708 +1! +r0.6484933050690387 " +#3709 +0! +r0.641375774921161 " +1# +#3710 +1! +r0.6344303157945212 " +#3711 +0! +r0.6276572018839657 " +0# +#3712 +1! +r0.6210567005804295 " +#3713 +0! +r0.614629072460402 " +1# +#3714 +1! +r0.6083745712756361 " +#3715 +0! +r0.6022934439431289 " +0# +#3716 +1! +r0.5963859305353765 " +#3717 +0! +r0.5906522642708865 " +1# +#3718 +1! +r0.5850926715049942 " +#3719 +0! +r0.5797073717208994 " +0# +b0111010001000 $ +b10101001110000111001110111111111 % +1' +#3720 +1! +r0.5744965775210185 " +0' +#3721 +0! +r0.5694604946185775 " +1# +#3722 +1! +r0.5645993218295082 " +#3723 +0! +r0.559913251064593 " +0# +#3724 +1! +r0.5554024673218771 " +#3725 +0! +r0.551067148679385 " +1# +#3726 +1! +r0.5469074662880713 " +#3727 +0! +r0.5429235843650702 " +0# +#3728 +1! +r0.5391156601872211 " +#3729 +0! +r0.5354838440848493 " +1# +#3730 +1! +r0.5320282794358375 " +#3731 +0! +r0.52874910265996 " +0# +#3732 +1! +r0.5256464432135051 " +#3733 +0! +r0.5227204235841496 " +1# +#3734 +1! +r0.5199711592861398 " +#3735 +0! +r0.5173987588557241 " +0# +#3736 +1! +r0.515003323846865 " +#3737 +0! +r0.512784948827238 " +1# +#3738 +1! +r0.5107437213744861 " +#3739 +0! +r0.5088797220727779 " +0# +#3740 +1! +r0.5071930245096121 " +#3741 +0! +r0.5056836952729213 " +1# +#3742 +1! +r0.5043517939484392 " +#3743 +0! +r0.5031973731173487 " +0# +#3744 +1! +r0.5022204783542081 " +#3745 +0! +r0.50142114822515 " +1# +#3746 +1! +r0.5007994142863588 " +#3747 +0! +r0.5003553010828279 " +0# +#3748 +1! +r0.5000888261473833 " +#3749 +0! +r0.5 " +1# +#3750 +1! +r0.5000888261473833 " +#3751 +0! +r0.5003553010828279 " +0# +#3752 +1! +r0.5007994142863597 " +#3753 +0! +r0.50142114822515 " +1# +#3754 +1! +r0.5022204783542081 " +#3755 +0! +r0.5031973731173487 " +0# +#3756 +1! +r0.5043517939484383 " +#3757 +0! +r0.5056836952729213 " +1# +#3758 +1! +r0.5071930245096121 " +#3759 +0! +r0.5088797220727779 " +0# +#3760 +1! +r0.5107437213744861 " +#3761 +0! +r0.5127849488272371 " +1# +#3762 +1! +r0.5150033238468668 " +#3763 +0! +r0.5173987588557241 " +0# +#3764 +1! +r0.5199711592861407 " +#3765 +0! +r0.5227204235841478 " +1# +#3766 +1! +r0.5256464432135042 " +#3767 +0! +r0.5287491026599627 " +0# +#3768 +1! +r0.5320282794358384 " +#3769 +0! +r0.5354838440848519 " +1# +#3770 +1! +r0.5391156601872202 " +#3771 +0! +r0.5429235843650693 " +0# +#3772 +1! +r0.5469074662880695 " +#3773 +0! +r0.5510671486793859 " +1# +#3774 +1! +r0.5554024673218816 " +#3775 +0! +r0.5599132510645948 " +0# +#3776 +1! +r0.56459932182951 " +#3777 +0! +r0.5694604946185757 " +1# +#3778 +1! +r0.5744965775210167 " +#3779 +0! +r0.5797073717209011 " +0# +#3780 +1! +r0.585092671504996 " +#3781 +0! +r0.5906522642708918 " +1# +#3782 +1! +r0.5963859305353738 " +#3783 +0! +r0.6022934439431316 " +0# +#3784 +1! +r0.6083745712756379 " +#3785 +0! +r0.6146290724604038 " +1# +#3786 +1! +r0.6210567005804313 " +#3787 +0! +r0.6276572018839675 " +0# +#3788 +1! +r0.634430315794523 " +#3789 +0! +r0.6413757749211593 " +1# +#3790 +1! +r0.6484933050690449 " +#3791 +0! +r0.6557826252502696 " +0# +#3792 +1! +r0.6632434476949545 " +#3793 +0! +r0.6708754778626149 " +1# +#3794 +1! +r0.6786784144537528 " +#3795 +0! +r0.6866519494218091 " +0# +#3796 +1! +r0.694795767985263 " +#3797 +0! +r0.7031095486401115 " +1# +#3798 +1! +r0.71159296317252 " +#3799 +0! +r0.7202456766718077 " +0# +#3800 +1! +r0.7290673475436726 " +#3801 +0! +r0.7380576275236486 " +1# +#3802 +1! +r0.7472161616908801 " +#3803 +0! +r0.7565425884821115 " +0# +#3804 +1! +r0.7660365397059916 " +#3805 +0! +r0.7756976405575671 " +1# +#3806 +1! +r0.7855255096331346 " +#3807 +0! +r0.795519758945245 " +0# +#3808 +1! +r0.8056799939380497 " +#3809 +0! +r0.8160058135028727 " +1# +#3810 +1! +r0.8264968099940271 " +#3811 +0! +r0.8371525692449415 " +0# +#3812 +1! +r0.8479726705844852 " +#3813 +0! +r0.8589566868535847 " +1# +#3814 +1! +r0.8701041844220851 " +#3815 +0! +r0.8814147232058707 " +0# +#3816 +1! +r0.8928878566842364 " +#3817 +0! +r0.9045231319175242 " +1# +#3818 +1! +r0.9163200895649783 " +#3819 +0! +r0.928278263902909 " +0# +b0111011101100 $ +b0110111111101011101011011100011 % +1' +#3820 +1! +r0.9403971828430899 " +0' +#3821 +0! +r0.9526763679513328 " +1# +#3822 +1! +r0.9651153344664403 " +#3823 +0! +r0.9777135913193131 " +0# +#3824 +1! +r0.9904706411523518 " +#3825 +0! +r1.003385980339056 " +1# +#3826 +1! +r1.01645909900395 " +#3827 +0! +r1.029689481042715 " +0# +#3828 +1! +r1.043076604142501 " +#3829 +0! +r1.056619939802617 " +1# +#3830 +1! +r1.070318953355362 " +#3831 +0! +r1.084173103987129 " +0# +#3832 +1! +r1.098181844759795 " +#3833 +0! +r1.112344622632241 " +1# +#3834 +1! +r1.12666087848226 " +#3835 +0! +r1.141130047128563 " +0# +#3836 +1! +r1.155751557353169 " +#3837 +0! +r1.170524831923891 " +1# +#3838 +1! +r1.185449287617121 " +#3839 +0! +r1.200524335240935 " +0# +#3840 +1! +r1.215749379658241 " +#3841 +0! +r1.231123819810372 " +1# +#3842 +1! +r1.24664704874073 " +#3843 +0! +r1.262318453618842 " +0# +#3844 +1! +r1.278137415764479 " +#3845 +0! +r1.294103310672074 " +1# +#3846 +1! +r1.31021550803547 " +#3847 +0! +r1.326473371772676 " +0# +#3848 +1! +r1.342876260051071 " +#3849 +0! +r1.359423525312739 " +1# +#3850 +1! +r1.376114514299953 " +#3851 +0! +r1.392948568081065 " +0# +#3852 +1! +r1.409925022076429 " +#3853 +0! +r1.427043206084729 " +1# +#3854 +1! +r1.4443024443094 " +#3855 +0! +r1.461702055385211 " +0# +#3856 +1! +r1.479241352405358 " +#3857 +0! +r1.496919642948398 " +1# +#3858 +1! +r1.51473622910571 " +#3859 +0! +r1.53269040750895 " +0# +#3860 +1! +r1.550781469357916 " +#3861 +0! +r1.569008700448494 " +1# +#3862 +1! +r1.58737138120075 " +#3863 +0! +r1.60586878668754 " +0# +#3864 +1! +r1.624500186662938 " +#3865 +0! +r1.643264845591175 " +1# +#3866 +1! +r1.662162022675678 " +#3867 +0! +r1.681190971888209 " +0# +#3868 +1! +r1.700350941998492 " +#3869 +0! +r1.719641176603648 " +1# +#3870 +1! +r1.739060914158289 " +#3871 +0! +r1.758609388004428 " +0# +#3872 +1! +r1.778285826401757 " +#3873 +0! +r1.798089452558223 " +1# +#3874 +1! +r1.81801948466053 " +#3875 +0! +r1.838075135905171 " +0# +#3876 +1! +r1.858255614529376 " +#3877 +0! +r1.878560123842379 " +1# +#3878 +1! +r1.898987862256933 " +#3879 +0! +r1.9195380233209 " +0# +#3880 +1! +r1.940209795749123 " +#3881 +0! +r1.961002363455387 " +1# +#3882 +1! +r1.981914905584755 " +#3883 +0! +r2.002946596545874 " +0# +#3884 +1! +r2.024096606043571 " +#3885 +0! +r2.045364099111699 " +1# +#3886 +1! +r2.066748236146047 " +#3887 +0! +r2.088248172937501 " +0# +#3888 +1! +r2.109863060705369 " +#3889 +0! +r2.131592046130894 " +1# +#3890 +1! +r2.153434271390949 " +#3891 +0! +r2.175388874191855 " +0# +#3892 +1! +r2.197454987803487 " +#3893 +0! +r2.2196317410935 " +1# +#3894 +1! +r2.241918258561597 " +#3895 +0! +r2.264313660374278 " +0# +#3896 +1! +r2.286817062399389 " +#3897 +0! +r2.309427576241177 " +1# +#3898 +1! +r2.332144309275245 " +#3899 +0! +r2.354966364683867 " +0# +#3900 +1! +r2.377892841491416 " +#3901 +0! +r2.40092283459979 " +1# +#3902 +1! +r2.424055434824346 " +#3903 +0! +r2.4472897289296 " +0# +#3904 +1! +r2.470624799665401 " +#3905 +0! +r2.494059725803168 " +1# +#3906 +1! +r2.517593582172063 " +#3907 +0! +r2.541225439695801 " +0# +#3908 +1! +r2.564954365429056 " +#3909 +0! +r2.58877942259451 " +1# +#3910 +1! +r2.612699670619704 " +#3911 +0! +r2.636714165174161 " +0# +#3912 +1! +r2.660821958206825 " +#3913 +0! +r2.685022097983224 " +1# +#3914 +1! +r2.70931362912333 " +#3915 +0! +r2.733695592639076 " +0# +#3916 +1! +r2.758167025972289 " +#3917 +0! +r2.782726963032698 " +1# +#3918 +1! +r2.807374434235999 " +#3919 +0! +r2.832108466542289 " +0# +b0111101010000 $ +b1000110001010000000111111000111 % +1' +#3920 +1! +r2.85692808349428 " +0' +#3921 +0! +r2.881832305255994 " +1# +#3922 +1! +r2.90682014865144 " +#3923 +0! +r2.931890627203306 " +0# +#3924 +1! +r2.957042751172053 " +#3925 +0! +r2.982275527594853 " +1# +#3926 +1! +r3.00758796032494 " +#3927 +0! +r3.032979050070812 " +0# +#3928 +1! +r3.058447794435678 " +#3929 +0! +r3.083993187957179 " +1# +#3930 +1! +r3.109614222146862 " +#3931 +0! +r3.135309885530239 " +0# +#3932 +1! +r3.161079163686431 " +#3933 +0! +r3.186921039288518 " +1# +#3934 +1! +r3.2128344921435 " +#3935 +0! +r3.238818499232586 " +0# +#3936 +1! +r3.264872034751725 " +#3937 +0! +r3.290994070151888 " +1# +#3938 +1! +r3.31718357417989 " +#3939 +0! +r3.343439512918954 " +0# +#3940 +1! +r3.369760849829532 " +#3941 +0! +r3.396146545790388 " +1# +#3942 +1! +r3.422595559139334 " +#3943 +0! +r3.449106845714671 " +0# +#3944 +1! +r3.475679358896185 " +#3945 +0! +r3.502312049646555 " +1# +#3946 +1! +r3.529003866552767 " +#3947 +0! +r3.555753755867549 " +0# +#3948 +1! +r3.582560661551149 " +#3949 +0! +r3.60942352531274 " +1# +#3950 +1! +r3.636341286652519 " +#3951 +0! +r3.663312882903343 " +0# +#3952 +1! +r3.690337249272775 " +#3953 +0! +r3.71741331888512 " +1# +#3954 +1! +r3.744540022823464 " +#3955 +0! +r3.77171629017203 " +0# +#3956 +1! +r3.798941048058317 " +#3957 +0! +r3.826213221695469 " +1# +#3958 +1! +r3.853531734424783 " +#3959 +0! +r3.880895507758155 " +0# +#3960 +1! +r3.908303461420651 " +#3961 +0! +r3.935754513393237 " +1# +#3962 +1! +r3.963247579955339 " +#3963 +0! +r3.990781575727795 " +0# +#3964 +1! +r4.018355413715567 " +#3965 +0! +r4.045968005350762 " +1# +#3966 +1! +r4.07361826053554 " +#3967 +0! +r4.101305087685157 " +0# +#3968 +1! +r4.129027393771131 " +#3969 +0! +r4.156784084364239 " +1# +#3970 +1! +r4.184574063677896 " +#3971 +0! +r4.212396234611271 " +0# +#3972 +1! +r4.240249498792693 " +#3973 +0! +r4.268132756623017 " +1# +#3974 +1! +r4.296044907318953 " +#3975 +0! +r4.323984848956599 " +0# +#3976 +1! +r4.351951478514869 " +#3977 +0! +r4.379943691919115 " +1# +#3978 +1! +r4.407960384084745 " +#3979 +0! +r4.43600044896063 " +0# +#3980 +1! +r4.464062779573084 " +#3981 +0! +r4.492146268069328 " +1# +#3982 +1! +r4.52024980576134 " +#3983 +0! +r4.548372283169541 " +0# +#3984 +1! +r4.576512590066676 " +#3985 +0! +r4.604669615521676 " +1# +#3986 +1! +r4.632842247943294 " +#3987 +0! +r4.661029375124303 " +0# +#3988 +1! +r4.689229884285173 " +#3989 +0! +r4.717442662118071 " +1# +#3990 +1! +r4.745666594830901 " +#3991 +0! +r4.77390056819103 " +0# +#3992 +1! +r4.802143467569632 " +#3993 +0! +r4.8303941779853 " +1# +#3994 +1! +r4.858651584148411 " +#3995 +0! +r4.886914570504984 " +0# +#3996 +1! +r4.915182021280648 " +#3997 +0! +r4.943452820524929 " +1# +#3998 +1! +r4.971725852154982 " +#3999 +0! +r5.000000000000028 " +0# +#4000 +1! +r5.028274147845025 " +#4001 +0! +r5.056547179475078 " +1# +#4002 +1! +r5.084817978719343 " +#4003 +0! +r5.113085429495023 " +0# +#4004 +1! +r5.141348415851596 " +#4005 +0! +r5.169605822014707 " +1# +#4006 +1! +r5.197856532430375 " +#4007 +0! +r5.226099431808961 " +0# +#4008 +1! +r5.254333405169122 " +#4009 +0! +r5.28255733788192 " +1# +#4010 +1! +r5.310770115714818 " +#4011 +0! +r5.338970624875688 " +0# +#4012 +1! +r5.36715775205673 " +#4013 +0! +r5.395330384478347 " +1# +#4014 +1! +r5.423487409933331 " +#4015 +0! +r5.451627716830466 " +0# +#4016 +1! +r5.479750194238667 " +#4017 +0! +r5.50785373193068 " +1# +#4018 +1! +r5.535937220426908 " +#4019 +0! +r5.563999551039378 " +0# +b0111110110100 $ +b01010100010110100100100010101011 % +1' +#4020 +1! +r5.592039615915262 " +0' +#4021 +0! +r5.620056308080876 " +1# +#4022 +1! +r5.648048521485154 " +#4023 +0! +r5.676015151043408 " +0# +#4024 +1! +r5.703955092681039 " +#4025 +0! +r5.731867243376974 " +1# +#4026 +1! +r5.759750501207298 " +#4027 +0! +r5.787603765388752 " +0# +#4028 +1! +r5.815425936322111 " +#4029 +0! +r5.843215915635767 " +1# +#4030 +1! +r5.87097260622886 " +#4031 +0! +r5.89869491231485 " +0# +#4032 +1! +r5.926381739464468 " +#4033 +0! +r5.95403199464923 " +1# +#4034 +1! +r5.98164458628444 " +#4035 +0! +r6.009218424272196 " +0# +#4036 +1! +r6.036752420044683 " +#4037 +0! +r6.06424548660677 " +1# +#4038 +1! +r6.09169653857934 " +#4039 +0! +r6.119104492241836 " +0# +#4040 +1! +r6.146468265575223 " +#4041 +0! +r6.173786778304553 " +1# +#4042 +1! +r6.20105895194169 " +#4043 +0! +r6.228283709827977 " +0# +#4044 +1! +r6.255459977176528 " +#4045 +0! +r6.282586681114902 " +1# +#4046 +1! +r6.309662750727232 " +#4047 +0! +r6.336687117096648 " +0# +#4048 +1! +r6.363658713347488 " +#4049 +0! +r6.390576474687252 " +1# +#4050 +1! +r6.417439338448873 " +#4051 +0! +r6.444246244132458 " +0# +#4052 +1! +r6.470996133447239 " +#4053 +0! +r6.497687950353437 " +1# +#4054 +1! +r6.524320641103806 " +#4055 +0! +r6.55089315428535 " +0# +#4056 +1! +r6.577404440860672 " +#4057 +0! +r6.603853454209618 " +1# +#4058 +1! +r6.630239150170459 " +#4059 +0! +r6.656560487081053 " +0# +#4060 +1! +r6.682816425820117 " +#4061 +0! +r6.709005929848104 " +1# +#4062 +1! +r6.735127965248267 " +#4063 +0! +r6.761181500767406 " +0# +#4064 +1! +r6.787165507856521 " +#4065 +0! +r6.813078960711503 " +1# +#4066 +1! +r6.838920836313576 " +#4067 +0! +r6.864690114469767 " +0# +#4068 +1! +r6.89038577785313 " +#4069 +0! +r6.916006812042827 " +1# +#4070 +1! +r6.941552205564329 " +#4071 +0! +r6.967020949929196 " +0# +#4072 +1! +r6.992412039675067 " +#4073 +0! +r7.017724472405154 " +1# +#4074 +1! +r7.042957248827967 " +#4075 +0! +r7.0681093727967 " +0# +#4076 +1! +r7.093179851348552 " +#4077 +0! +r7.118167694743999 " +1# +#4078 +1! +r7.143071916505741 " +#4079 +0! +r7.167891533457718 " +0# +#4080 +1! +r7.192625565764007 " +#4081 +0! +r7.217273036967308 " +1# +#4082 +1! +r7.241832974027703 " +#4083 +0! +r7.266304407360931 " +0# +#4084 +1! +r7.290686370876662 " +#4085 +0! +r7.314977902016782 " +1# +#4086 +1! +r7.339178041793181 " +#4087 +0! +r7.363285834825831 " +0# +#4088 +1! +r7.387300329380316 " +#4089 +0! +r7.411220577405496 " +1# +#4090 +1! +r7.435045634570938 " +#4091 +0! +r7.458774560304192 " +0# +#4092 +1! +r7.482406417827956 " +#4093 +0! +r7.505940274196851 " +1# +#4094 +1! +r7.529375200334605 " +#4095 +0! +r7.552710271070406 " +0# +#4096 +1! +r7.575944565175647 " +#4097 +0! +r7.599077165400216 " +1# +#4098 +1! +r7.62210715850859 " +#4099 +0! +r7.645033635316138 " +0# +#4100 +1! +r7.667855690724762 " +#4101 +0! +r7.690572423758816 " +1# +#4102 +1! +r7.713182937600616 " +#4103 +0! +r7.735686339625728 " +0# +#4104 +1! +r7.758081741438396 " +#4105 +0! +r7.780368258906492 " +1# +#4106 +1! +r7.80254501219653 " +#4107 +0! +r7.824611125808163 " +0# +#4108 +1! +r7.846565728609057 " +#4109 +0! +r7.868407953869111 " +1# +#4110 +1! +r7.890136939294623 " +#4111 +0! +r7.911751827062517 " +0# +#4112 +1! +r7.933251763853958 " +#4113 +0! +r7.954635900888293 " +1# +#4114 +1! +r7.975903393956434 " +#4115 +0! +r7.99705340345412 " +0# +#4116 +1! +r8.01808509441525 " +#4117 +0! +r8.038997636544618 " +1# +#4118 +1! +r8.059790204250882 " +#4119 +0! +r8.080461976679093 " +0# +b01000000011000 $ +b100010100011001000000110001111 % +1' +#4120 +1! +r8.101012137743073 " +0' +#4121 +0! +r8.121439876157638 " +1# +#4122 +1! +r8.141744385470629 " +#4123 +0! +r8.161924864094834 " +0# +#4124 +1! +r8.181980515339465 " +#4125 +0! +r8.201910547441782 " +1# +#4126 +1! +r8.221714173598249 " +#4127 +0! +r8.241390611995577 " +0# +#4128 +1! +r8.260939085841716 " +#4129 +0! +r8.280358823396345 " +1# +#4130 +1! +r8.299649058001524 " +#4131 +0! +r8.318809028111795 " +0# +#4132 +1! +r8.337837977324327 " +#4133 +0! +r8.35673515440882 " +1# +#4134 +1! +r8.375499813337056 " +#4135 +0! +r8.394131213312464 " +0# +#4136 +1! +r8.412628618799255 " +#4137 +0! +r8.430991299551511 " +1# +#4138 +1! +r8.449218530642078 " +#4139 +0! +r8.467309592491056 " +0# +#4140 +1! +r8.485263770894313 " +#4141 +0! +r8.503080357051607 " +1# +#4142 +1! +r8.520758647594636 " +#4143 +0! +r8.538297944614783 " +0# +#4144 +1! +r8.555697555690614 " +#4145 +0! +r8.572956793915266 " +1# +#4146 +1! +r8.590074977923575 " +#4147 +0! +r8.60705143191894 " +0# +#4148 +1! +r8.623885485700043 " +#4149 +0! +r8.640576474687265 " +1# +#4150 +1! +r8.657123739948933 " +#4151 +0! +r8.673526628227329 " +0# +#4152 +1! +r8.689784491964526 " +#4153 +0! +r8.705896689327931 " +1# +#4154 +1! +r8.721862584235526 " +#4155 +0! +r8.737681546381161 " +0# +#4156 +1! +r8.753352951259266 " +#4157 +0! +r8.76887618018964 " +1# +#4158 +1! +r8.784250620341773 " +#4159 +0! +r8.799475664759068 " +0# +#4160 +1! +r8.814550712382882 " +#4161 +0! +r8.829475168076112 " +1# +#4162 +1! +r8.844248442646826 " +#4163 +0! +r8.858869952871441 " +0# +#4164 +1! +r8.873339121517743 " +#4165 +0! +r8.887655377367762 " +1# +#4166 +1! +r8.9018181552402 " +#4167 +0! +r8.915826896012867 " +0# +#4168 +1! +r8.929681046644642 " +#4169 +0! +r8.943380060197386 " +1# +#4170 +1! +r8.956923395857503 " +#4171 +0! +r8.97031051895728 " +0# +#4172 +1! +r8.983540900996061 " +#4173 +0! +r8.996614019660955 " +1# +#4174 +1! +r9.009529358847651 " +#4175 +0! +r9.022286408680689 " +0# +#4176 +1! +r9.034884665533557 " +#4177 +0! +r9.047323632048677 " +1# +#4178 +1! +r9.059602817156913 " +#4179 +0! +r9.071721736097095 " +0# +#4180 +1! +r9.083679910435025 " +#4181 +0! +r9.095476868082486 " +1# +#4182 +1! +r9.107112143315767 " +#4183 +0! +r9.118585276794132 " +0# +#4184 +1! +r9.129895815577918 " +#4185 +0! +r9.141043313146412 " +1# +#4186 +1! +r9.152027329415517 " +#4187 +0! +r9.162847430755068 " +0# +#4188 +1! +r9.173503190005976 " +#4189 +0! +r9.183994186497136 " +1# +#4190 +1! +r9.194320006061947 " +#4191 +0! +r9.204480241054753 " +0# +#4192 +1! +r9.214474490366868 " +#4193 +0! +r9.224302359442429 " +1# +#4194 +1! +r9.233963460294017 " +#4195 +0! +r9.243457411517886 " +0# +#4196 +1! +r9.252783838309128 " +#4197 +0! +r9.261942372476348 " +1# +#4198 +1! +r9.270932652456324 " +#4199 +0! +r9.27975432332819 " +0# +#4200 +1! +r9.288407036827486 " +#4201 +0! +r9.2968904513599 " +1# +#4202 +1! +r9.305204232014738 " +#4203 +0! +r9.313348050578188 " +0# +#4204 +1! +r9.321321585546244 " +#4205 +0! +r9.329124522137388 " +1# +#4206 +1! +r9.336756552305047 " +#4207 +0! +r9.344217374749732 " +0# +#4208 +1! +r9.351506694930952 " +#4209 +0! +r9.358624225078838 " +1# +#4210 +1! +r9.365569684205479 " +#4211 +0! +r9.372342798116033 " +0# +#4212 +1! +r9.378943299419571 " +#4213 +0! +r9.385370927539597 " +1# +#4214 +1! +r9.39162542872436 " +#4215 +0! +r9.397706556056871 " +0# +#4216 +1! +r9.403614069464627 " +#4217 +0! +r9.40934773572911 " +1# +#4218 +1! +r9.414907328495005 " +#4219 +0! +r9.4202926282791 " +0# +b01000001111100 $ +b01110000101111101011101001110011 % +1' +#4220 +1! +r9.425503422478982 " +0' +#4221 +0! +r9.430539505381425 " +1# +#4222 +1! +r9.435400678170488 " +#4223 +0! +r9.440086748935407 " +0# +#4224 +1! +r9.444597532678122 " +#4225 +0! +r9.448932851320613 " +1# +#4226 +1! +r9.453092533711931 " +#4227 +0! +r9.45707641563493 " +0# +#4228 +1! +r9.460884339812779 " +#4229 +0! +r9.464516155915151 " +1# +#4230 +1! +r9.467971720564165 " +#4231 +0! +r9.471250897340038 " +0# +#4232 +1! +r9.474353556786493 " +#4233 +0! +r9.477279576415853 " +1# +#4234 +1! +r9.48002884071386 " +#4235 +0! +r9.482601241144277 " +0# +#4236 +1! +r9.484996676153134 " +#4237 +0! +r9.487215051172761 " +1# +#4238 +1! +r9.489256278625515 " +#4239 +0! +r9.491120277927223 " +0# +#4240 +1! +r9.492806975490389 " +#4241 +0! +r9.494316304727079 " +1# +#4242 +1! +r9.495648206051561 " +#4243 +0! +r9.496802626882651 " +0# +#4244 +1! +r9.497779521645793 " +#4245 +0! +r9.49857885177485 " +1# +#4246 +1! +r9.499200585713641 " +#4247 +0! +r9.499644698917173 " +0# +#4248 +1! +r9.499911173852617 " +#4249 +0! +r9.5 " +1# +#4250 +1! +r9.499911173852617 " +#4251 +0! +r9.499644698917173 " +0# +#4252 +1! +r9.499200585713639 " +#4253 +0! +r9.49857885177485 " +1# +#4254 +1! +r9.497779521645793 " +#4255 +0! +r9.496802626882651 " +0# +#4256 +1! +r9.495648206051563 " +#4257 +0! +r9.494316304727079 " +1# +#4258 +1! +r9.492806975490389 " +#4259 +0! +r9.491120277927223 " +0# +#4260 +1! +r9.489256278625515 " +#4261 +0! +r9.487215051172761 " +1# +#4262 +1! +r9.484996676153134 " +#4263 +0! +r9.482601241144277 " +0# +#4264 +1! +r9.48002884071386 " +#4265 +0! +r9.477279576415853 " +1# +#4266 +1! +r9.474353556786495 " +#4267 +0! +r9.471250897340035 " +0# +#4268 +1! +r9.467971720564162 " +#4269 +0! +r9.464516155915149 " +1# +#4270 +1! +r9.460884339812779 " +#4271 +0! +r9.45707641563493 " +0# +#4272 +1! +r9.453092533711928 " +#4273 +0! +r9.448932851320613 " +1# +#4274 +1! +r9.444597532678118 " +#4275 +0! +r9.440086748935407 " +0# +#4276 +1! +r9.435400678170492 " +#4277 +0! +r9.430539505381425 " +1# +#4278 +1! +r9.425503422478984 " +#4279 +0! +r9.4202926282791 " +0# +#4280 +1! +r9.414907328495001 " +#4281 +0! +r9.409347735729106 " +1# +#4282 +1! +r9.403614069464624 " +#4283 +0! +r9.397706556056871 " +0# +#4284 +1! +r9.391625428724362 " +#4285 +0! +r9.385370927539597 " +1# +#4286 +1! +r9.378943299419564 " +#4287 +0! +r9.372342798116033 " +0# +#4288 +1! +r9.365569684205481 " +#4289 +0! +r9.358624225078842 " +1# +#4290 +1! +r9.351506694930954 " +#4291 +0! +r9.34421737474973 " +0# +#4292 +1! +r9.336756552305046 " +#4293 +0! +r9.32912452213739 " +1# +#4294 +1! +r9.321321585546238 " +#4295 +0! +r9.313348050578192 " +0# +#4296 +1! +r9.305204232014733 " +#4297 +0! +r9.296890451359893 " +1# +#4298 +1! +r9.288407036827481 " +#4299 +0! +r9.279754323328188 " +0# +#4300 +1! +r9.270932652456327 " +#4301 +0! +r9.261942372476346 " +1# +#4302 +1! +r9.252783838309124 " +#4303 +0! +r9.243457411517888 " +0# +#4304 +1! +r9.233963460294008 " +#4305 +0! +r9.224302359442433 " +1# +#4306 +1! +r9.214474490366865 " +#4307 +0! +r9.204480241054755 " +0# +#4308 +1! +r9.19432000606195 " +#4309 +0! +r9.183994186497127 " +1# +#4310 +1! +r9.173503190005979 " +#4311 +0! +r9.162847430755058 " +0# +#4312 +1! +r9.152027329415521 " +#4313 +0! +r9.141043313146408 " +1# +#4314 +1! +r9.129895815577914 " +#4315 +0! +r9.118585276794123 " +0# +#4316 +1! +r9.107112143315764 " +#4317 +0! +r9.095476868082489 " +1# +#4318 +1! +r9.083679910435016 " +#4319 +0! +r9.071721736097086 " +0# +b01000011100000 $ +b10111100001111001101010111 % +1' +#4320 +1! +r9.059602817156911 " +0' +#4321 +0! +r9.047323632048668 " +1# +#4322 +1! +r9.034884665533568 " +#4323 +0! +r9.02228640868068 " +0# +#4324 +1! +r9.009529358847654 " +#4325 +0! +r8.996614019660944 " +1# +#4326 +1! +r8.983540900996051 " +#4327 +0! +r8.970310518957286 " +0# +#4328 +1! +r8.956923395857499 " +#4329 +0! +r8.943380060197391 " +1# +#4330 +1! +r8.929681046644639 " +#4331 +0! +r8.915826896012872 " +0# +#4332 +1! +r8.901818155240205 " +#4333 +0! +r8.887655377367752 " +1# +#4334 +1! +r8.873339121517748 " +#4335 +0! +r8.858869952871437 " +0# +#4336 +1! +r8.844248442646832 " +#4337 +0! +r8.829475168076101 " +1# +#4338 +1! +r8.814550712382871 " +#4339 +0! +r8.799475664759074 " +0# +#4340 +1! +r8.784250620341759 " +#4341 +0! +r8.768876180189629 " +1# +#4342 +1! +r8.753352951259261 " +#4343 +0! +r8.737681546381157 " +0# +#4344 +1! +r8.721862584235531 " +#4345 +0! +r8.705896689327925 " +1# +#4346 +1! +r8.689784491964531 " +#4347 +0! +r8.673526628227314 " +0# +#4348 +1! +r8.65712373994892 " +#4349 +0! +r8.640576474687272 " +1# +#4350 +1! +r8.623885485700047 " +#4351 +0! +r8.607051431918945 " +0# +#4352 +1! +r8.59007497792356 " +#4353 +0! +r8.57295679391526 " +1# +#4354 +1! +r8.5556975556906 " +#4355 +0! +r8.53829794461479 " +0# +#4356 +1! +r8.520758647594644 " +#4357 +0! +r8.503080357051601 " +1# +#4358 +1! +r8.48526377089431 " +#4359 +0! +r8.46730959249105 " +0# +#4360 +1! +r8.449218530642064 " +#4361 +0! +r8.430991299551517 " +1# +#4362 +1! +r8.412628618799241 " +#4363 +0! +r8.394131213312471 " +0# +#4364 +1! +r8.375499813337061 " +#4365 +0! +r8.356735154408815 " +1# +#4366 +1! +r8.337837977324334 " +#4367 +0! +r8.318809028111779 " +0# +#4368 +1! +r8.299649058001529 " +#4369 +0! +r8.280358823396352 " +1# +#4370 +1! +r8.2609390858417 " +#4371 +0! +r8.241390611995573 " +0# +#4372 +1! +r8.221714173598244 " +#4373 +0! +r8.201910547441789 " +1# +#4374 +1! +r8.181980515339447 " +#4375 +0! +r8.161924864094818 " +0# +#4376 +1! +r8.141744385470613 " +#4377 +0! +r8.121439876157622 " +1# +#4378 +1! +r8.10101213774308 " +#4379 +0! +r8.080461976679089 " +0# +#4380 +1! +r8.05979020425089 " +#4381 +0! +r8.038997636544602 " +1# +#4382 +1! +r8.018085094415245 " +#4383 +0! +r7.99705340345415 " +0# +#4384 +1! +r7.975903393956417 " +#4385 +0! +r7.954635900888301 " +1# +#4386 +1! +r7.933251763853953 " +#4387 +0! +r7.911751827062499 " +0# +#4388 +1! +r7.890136939294631 " +#4389 +0! +r7.868407953869093 " +1# +#4390 +1! +r7.846565728609064 " +#4391 +0! +r7.824611125808145 " +0# +#4392 +1! +r7.802545012196513 " +#4393 +0! +r7.780368258906488 " +1# +#4394 +1! +r7.758081741438391 " +#4395 +0! +r7.735686339625735 " +0# +#4396 +1! +r7.713182937600611 " +#4397 +0! +r7.690572423758849 " +1# +#4398 +1! +r7.667855690724756 " +#4399 +0! +r7.64503363531612 " +0# +#4400 +1! +r7.622107158508598 " +#4401 +0! +r7.59907716540021 " +1# +#4402 +1! +r7.575944565175654 " +#4403 +0! +r7.552710271070388 " +0# +#4404 +1! +r7.529375200334586 " +#4405 +0! +r7.505940274196832 " +1# +#4406 +1! +r7.482406417827937 " +#4407 +0! +r7.458774560304199 " +0# +#4408 +1! +r7.435045634570931 " +#4409 +0! +r7.411220577405491 " +1# +#4410 +1! +r7.387300329380297 " +#4411 +0! +r7.363285834825839 " +0# +#4412 +1! +r7.339178041793189 " +#4413 +0! +r7.314977902016763 " +1# +#4414 +1! +r7.290686370876671 " +#4415 +0! +r7.266304407360924 " +0# +#4416 +1! +r7.241832974027711 " +#4417 +0! +r7.217273036967316 " +1# +#4418 +1! +r7.192625565763986 " +#4419 +0! +r7.167891533457725 " +0# +b01000101000100 $ +b10001101001000110010110000111011 % +1' +#4420 +1! +r7.14307191650572 " +0' +#4421 +0! +r7.118167694743993 " +1# +#4422 +1! +r7.093179851348546 " +#4423 +0! +r7.068109372796695 " +0# +#4424 +1! +r7.042957248827975 " +#4425 +0! +r7.017724472405147 " +1# +#4426 +1! +r6.992412039675046 " +#4427 +0! +r6.967020949929175 " +0# +#4428 +1! +r6.941552205564308 " +#4429 +0! +r6.916006812042836 " +1# +#4430 +1! +r6.890385777853139 " +#4431 +0! +r6.864690114469776 " +0# +#4432 +1! +r6.838920836313555 " +#4433 +0! +r6.813078960711483 " +1# +#4434 +1! +r6.78716550785653 " +#4435 +0! +r6.7611815007674 " +0# +#4436 +1! +r6.735127965248275 " +#4437 +0! +r6.709005929848098 " +1# +#4438 +1! +r6.682816425820111 " +#4439 +0! +r6.656560487081046 " +0# +#4440 +1! +r6.630239150170437 " +#4441 +0! +r6.603853454209627 " +1# +#4442 +1! +r6.577404440860651 " +#4443 +0! +r6.550893154285329 " +0# +#4444 +1! +r6.524320641103815 " +#4445 +0! +r6.497687950353431 " +1# +#4446 +1! +r6.470996133447248 " +#4447 +0! +r6.444246244132437 " +0# +#4448 +1! +r6.417439338448882 " +#4449 +0! +r6.39057647468726 " +1# +#4450 +1! +r6.363658713347466 " +#4451 +0! +r6.336687117096657 " +0# +#4452 +1! +r6.309662750727226 " +#4453 +0! +r6.282586681114912 " +1# +#4454 +1! +r6.255459977176507 " +#4455 +0! +r6.228283709827956 " +0# +#4456 +1! +r6.201058951941668 " +#4457 +0! +r6.173786778304532 " +1# +#4458 +1! +r6.146468265575233 " +#4459 +0! +r6.11910449224183 " +0# +#4460 +1! +r6.091696538579334 " +#4461 +0! +r6.064245486606747 " +1# +#4462 +1! +r6.036752420044661 " +#4463 +0! +r6.009218424272237 " +0# +#4464 +1! +r5.981644586284433 " +#4465 +0! +r5.954031994649239 " +1# +#4466 +1! +r5.926381739464461 " +#4467 +0! +r5.898694912314844 " +0# +#4468 +1! +r5.87097260622887 " +#4469 +0! +r5.843215915635746 " +1# +#4470 +1! +r5.81542593632212 " +#4471 +0! +r5.78760376538873 " +0# +#4472 +1! +r5.759750501207308 " +#4473 +0! +r5.731867243376952 " +1# +#4474 +1! +r5.703955092681032 " +#4475 +0! +r5.676015151043417 " +0# +#4476 +1! +r5.648048521485132 " +#4477 +0! +r5.620056308080885 " +1# +#4478 +1! +r5.592039615915255 " +#4479 +0! +r5.563999551039355 " +0# +#4480 +1! +r5.535937220426917 " +#4481 +0! +r5.507853731930673 " +1# +#4482 +1! +r5.479750194238661 " +#4483 +0! +r5.451627716830444 " +0# +#4484 +1! +r5.423487409933309 " +#4485 +0! +r5.395330384478356 " +1# +#4486 +1! +r5.367157752056707 " +#4487 +0! +r5.338970624875697 " +0# +#4488 +1! +r5.310770115714812 " +#4489 +0! +r5.282557337881913 " +1# +#4490 +1! +r5.254333405169131 " +#4491 +0! +r5.22609943180897 " +0# +#4492 +1! +r5.197856532430385 " +#4493 +0! +r5.169605822014684 " +1# +#4494 +1! +r5.141348415851573 " +#4495 +0! +r5.113085429495016 " +0# +#4496 +1! +r5.084817978719353 " +#4497 +0! +r5.056547179475088 " +1# +#4498 +1! +r5.028274147845003 " +#4499 +0! +r5.000000000000005 " +0# +#4500 +1! +r4.971725852154975 " +#4501 +0! +r4.943452820524906 " +1# +#4502 +1! +r4.915182021280658 " +#4503 +0! +r4.886914570504977 " +0# +#4504 +1! +r4.858651584148436 " +#4505 +0! +r4.830394177985294 " +1# +#4506 +1! +r4.802143467569593 " +#4507 +0! +r4.77390056819104 " +0# +#4508 +1! +r4.745666594830879 " +#4509 +0! +r4.717442662118096 " +1# +#4510 +1! +r4.689229884285182 " +#4511 +0! +r4.661029375124297 " +0# +#4512 +1! +r4.632842247943271 " +#4513 +0! +r4.604669615521654 " +1# +#4514 +1! +r4.576512590066701 " +#4515 +0! +r4.548372283169519 " +0# +#4516 +1! +r4.520249805761333 " +#4517 +0! +r4.492146268069321 " +1# +#4518 +1! +r4.464062779573092 " +#4519 +0! +r4.436000448960655 " +0# +b01000110101000 $ +b011011010101010110010100011111 % +1' +#4520 +1! +r4.407960384084706 " +0' +#4521 +0! +r4.379943691919125 " +1# +#4522 +1! +r4.351951478514847 " +#4523 +0! +r4.323984848956592 " +0# +#4524 +1! +r4.296044907318977 " +#4525 +0! +r4.268132756623011 " +1# +#4526 +1! +r4.240249498792702 " +#4527 +0! +r4.212396234611248 " +0# +#4528 +1! +r4.18457406367789 " +#4529 +0! +r4.156784084364233 " +1# +#4530 +1! +r4.129027393771125 " +#4531 +0! +r4.101305087685166 " +0# +#4532 +1! +r4.073618260535533 " +#4533 +0! +r4.045968005350771 " +1# +#4534 +1! +r4.01835541371553 " +#4535 +0! +r3.990781575727773 " +0# +#4536 +1! +r3.963247579955349 " +#4537 +0! +r3.935754513393231 " +1# +#4538 +1! +r3.908303461420676 " +#4539 +0! +r3.880895507758134 " +0# +#4540 +1! +r3.853531734424777 " +#4541 +0! +r3.826213221695478 " +1# +#4542 +1! +r3.798941048058311 " +#4543 +0! +r3.771716290172054 " +0# +#4544 +1! +r3.744540022823457 " +#4545 +0! +r3.717413318885098 " +1# +#4546 +1! +r3.690337249272769 " +#4547 +0! +r3.663312882903352 " +0# +#4548 +1! +r3.636341286652512 " +#4549 +0! +r3.609423525312718 " +1# +#4550 +1! +r3.582560661551127 " +#4551 +0! +r3.555753755867542 " +0# +#4552 +1! +r3.529003866552761 " +#4553 +0! +r3.502312049646564 " +1# +#4554 +1! +r3.475679358896179 " +#4555 +0! +r3.44910684571468 " +0# +#4556 +1! +r3.422595559139328 " +#4557 +0! +r3.396146545790382 " +1# +#4558 +1! +r3.369760849829541 " +#4559 +0! +r3.343439512918948 " +0# +#4560 +1! +r3.317183574179898 " +#4561 +0! +r3.290994070151897 " +1# +#4562 +1! +r3.264872034751704 " +#4563 +0! +r3.238818499232565 " +0# +#4564 +1! +r3.21283449214348 " +#4565 +0! +r3.186921039288526 " +1# +#4566 +1! +r3.161079163686424 " +#4567 +0! +r3.135309885530218 " +0# +#4568 +1! +r3.109614222146856 " +#4569 +0! +r3.083993187957173 " +1# +#4570 +1! +r3.058447794435701 " +#4571 +0! +r3.032979050070805 " +0# +#4572 +1! +r3.007587960324934 " +#4573 +0! +r2.982275527594847 " +1# +#4574 +1! +r2.957042751172033 " +#4575 +0! +r2.931890627203314 " +0# +#4576 +1! +r2.906820148651449 " +#4577 +0! +r2.881832305256002 " +1# +#4578 +1! +r2.85692808349426 " +#4579 +0! +r2.832108466542283 " +0# +#4580 +1! +r2.807374434235994 " +#4581 +0! +r2.782726963032679 " +1# +#4582 +1! +r2.758167025972297 " +#4583 +0! +r2.73369559263907 " +0# +#4584 +1! +r2.709313629123339 " +#4585 +0! +r2.685022097983218 " +1# +#4586 +1! +r2.660821958206792 " +#4587 +0! +r2.636714165174169 " +0# +#4588 +1! +r2.612699670619685 " +#4589 +0! +r2.588779422594518 " +1# +#4590 +1! +r2.564954365429063 " +#4591 +0! +r2.541225439695781 " +0# +#4592 +1! +r2.517593582172071 " +#4593 +0! +r2.494059725803149 " +1# +#4594 +1! +r2.470624799665422 " +#4595 +0! +r2.447289728929581 " +0# +#4596 +1! +r2.424055434824341 " +#4597 +0! +r2.400922834599784 " +1# +#4598 +1! +r2.37789284149141 " +#4599 +0! +r2.354966364683888 " +0# +#4600 +1! +r2.332144309275213 " +#4601 +0! +r2.309427576241159 " +1# +#4602 +1! +r2.286817062399384 " +#4603 +0! +r2.264313660374273 " +0# +#4604 +1! +r2.241918258561617 " +#4605 +0! +r2.219631741093483 " +1# +#4606 +1! +r2.197454987803495 " +#4607 +0! +r2.175388874191838 " +0# +#4608 +1! +r2.153434271390943 " +#4609 +0! +r2.131592046130889 " +1# +#4610 +1! +r2.109863060705365 " +#4611 +0! +r2.088248172937508 " +0# +#4612 +1! +r2.066748236146042 " +#4613 +0! +r2.045364099111706 " +1# +#4614 +1! +r2.024096606043542 " +#4615 +0! +r2.002946596545856 " +0# +#4616 +1! +r1.981914905584762 " +#4617 +0! +r1.961002363455382 " +1# +#4618 +1! +r1.940209795749118 " +#4619 +0! +r1.919538023320884 " +0# +b01001000001100 $ +b10101001100001111001111000000011 % +1' +#4620 +1! +r1.898987862256927 " +0' +#4621 +0! +r1.878560123842386 " +1# +#4622 +1! +r1.858255614529371 " +#4623 +0! +r1.838075135905167 " +0# +#4624 +1! +r1.818019484660526 " +#4625 +0! +r1.798089452558218 " +1# +#4626 +1! +r1.778285826401763 " +#4627 +0! +r1.758609388004423 " +0# +#4628 +1! +r1.739060914158285 " +#4629 +0! +r1.719641176603633 " +1# +#4630 +1! +r1.700350941998477 " +#4631 +0! +r1.681190971888226 " +0# +#4632 +1! +r1.662162022675673 " +#4633 +0! +r1.643264845591181 " +1# +#4634 +1! +r1.624500186662923 " +#4635 +0! +r1.605868786687536 " +0# +#4636 +1! +r1.587371381200746 " +#4637 +0! +r1.56900870044849 " +1# +#4638 +1! +r1.550781469357922 " +#4639 +0! +r1.532690407508945 " +0# +#4640 +1! +r1.514736229105696 " +#4641 +0! +r1.496919642948394 " +1# +#4642 +1! +r1.479241352405344 " +#4643 +0! +r1.461702055385216 " +0# +#4644 +1! +r1.444302444309386 " +#4645 +0! +r1.427043206084745 " +1# +#4646 +1! +r1.409925022076425 " +#4647 +0! +r1.392948568081052 " +0# +#4648 +1! +r1.376114514299958 " +#4649 +0! +r1.359423525312735 " +1# +#4650 +1! +r1.342876260051086 " +#4651 +0! +r1.326473371772673 " +0# +#4652 +1! +r1.310215508035457 " +#4653 +0! +r1.29410331067207 " +1# +#4654 +1! +r1.278137415764475 " +#4655 +0! +r1.262318453618847 " +0# +#4656 +1! +r1.246647048740718 " +#4657 +0! +r1.231123819810359 " +1# +#4658 +1! +r1.215749379658229 " +#4659 +0! +r1.200524335240932 " +0# +#4660 +1! +r1.185449287617134 " +#4661 +0! +r1.170524831923879 " +1# +#4662 +1! +r1.155751557353174 " +#4663 +0! +r1.14113004712856 " +0# +#4664 +1! +r1.126660878482258 " +#4665 +0! +r1.112344622632254 " +1# +#4666 +1! +r1.098181844759784 " +#4667 +0! +r1.084173103987133 " +0# +#4668 +1! +r1.070318953355359 " +#4669 +0! +r1.056619939802614 " +1# +#4670 +1! +r1.043076604142498 " +#4671 +0! +r1.029689481042705 " +0# +#4672 +1! +r1.016459099003955 " +#4673 +0! +r1.003385980339046 " +1# +#4674 +1! +r0.9904706411523492 " +#4675 +0! +r0.9777135913193034 " +0# +#4676 +1! +r0.9651153344664367 " +#4677 +0! +r0.9526763679513364 " +1# +#4678 +1! +r0.9403971828430873 " +#4679 +0! +r0.9282782639029197 " +0# +#4680 +1! +r0.9163200895649624 " +#4681 +0! +r0.9045231319175153 " +1# +#4682 +1! +r0.89288785668424 " +#4683 +0! +r0.881414723205868 " +0# +#4684 +1! +r0.8701041844220896 " +#4685 +0! +r0.8589566868535758 " +1# +#4686 +1! +r0.8479726705844826 " +#4687 +0! +r0.8371525692449326 " +0# +#4688 +1! +r0.8264968099940244 " +#4689 +0! +r0.8160058135028638 " +1# +#4690 +1! +r0.805679993938047 " +#4691 +0! +r0.7955197589452485 " +0# +#4692 +1! +r0.7855255096331319 " +#4693 +0! +r0.7756976405575706 " +1# +#4694 +1! +r0.7660365397059836 " +#4695 +0! +r0.7565425884821044 " +0# +#4696 +1! +r0.7472161616908783 " +#4697 +0! +r0.7380576275236512 " +1# +#4698 +1! +r0.7290673475436753 " +#4699 +0! +r0.7202456766718104 " +0# +#4700 +1! +r0.7115929631725129 " +#4701 +0! +r0.7031095486401089 " +1# +#4702 +1! +r0.6947957679852612 " +#4703 +0! +r0.6866519494218029 " +0# +#4704 +1! +r0.678678414453751 " +#4705 +0! +r0.6708754778626131 " +1# +#4706 +1! +r0.6632434476949571 " +#4707 +0! +r0.6557826252502688 " +0# +#4708 +1! +r0.6484933050690396 " +#4709 +0! +r0.6413757749211539 " +1# +#4710 +1! +r0.6344303157945221 " +#4711 +0! +r0.6276572018839692 " +0# +#4712 +1! +r0.6210567005804295 " +#4713 +0! +r0.6146290724604029 " +1# +#4714 +1! +r0.6083745712756334 " +#4715 +0! +r0.6022934439431298 " +0# +#4716 +1! +r0.59638593053538 " +#4717 +0! +r0.59065226427089 " +1# +#4718 +1! +r0.5850926715049942 " +#4719 +0! +r0.5797073717208994 " +0# +b01001001110000 $ +b0110111101110011101011011100111 % +1' +#4720 +1! +r0.5744965775210185 " +0' +#4721 +0! +r0.5694604946185748 " +1# +#4722 +1! +r0.5645993218295056 " +#4723 +0! +r0.5599132510645939 " +0# +#4724 +1! +r0.555402467321878 " +#4725 +0! +r0.5510671486793868 " +1# +#4726 +1! +r0.5469074662880686 " +#4727 +0! +r0.5429235843650684 " +0# +#4728 +1! +r0.5391156601872211 " +#4729 +0! +r0.5354838440848493 " +1# +#4730 +1! +r0.5320282794358402 " +#4731 +0! +r0.5287491026599618 " +0# +#4732 +1! +r0.5256464432135033 " +#4733 +0! +r0.5227204235841496 " +1# +#4734 +1! +r0.5199711592861398 " +#4735 +0! +r0.5173987588557241 " +0# +#4736 +1! +r0.5150033238468632 " +#4737 +0! +r0.5127849488272371 " +1# +#4738 +1! +r0.5107437213744852 " +#4739 +0! +r0.5088797220727779 " +0# +#4740 +1! +r0.507193024509613 " +#4741 +0! +r0.5056836952729205 " +1# +#4742 +1! +r0.5043517939484392 " +#4743 +0! +r0.5031973731173478 " +0# +#4744 +1! +r0.5022204783542081 " +#4745 +0! +r0.5014211482251509 " +1# +#4746 +1! +r0.5007994142863588 " +#4747 +0! +r0.5003553010828279 " +0# +#4748 +1! +r0.5000888261473833 " +#4749 +0! +r0.5 " +1# +#4750 +1! +r0.5000888261473833 " +#4751 +0! +r0.5003553010828279 " +0# +#4752 +1! +r0.5007994142863597 " +#4753 +0! +r0.50142114822515 " +1# +#4754 +1! +r0.5022204783542081 " +#4755 +0! +r0.5031973731173487 " +0# +#4756 +1! +r0.5043517939484392 " +#4757 +0! +r0.5056836952729213 " +1# +#4758 +1! +r0.5071930245096121 " +#4759 +0! +r0.508879722072777 " +0# +#4760 +1! +r0.5107437213744879 " +#4761 +0! +r0.512784948827238 " +1# +#4762 +1! +r0.515003323846865 " +#4763 +0! +r0.5173987588557232 " +0# +#4764 +1! +r0.5199711592861389 " +#4765 +0! +r0.5227204235841514 " +1# +#4766 +1! +r0.5256464432135051 " +#4767 +0! +r0.5287491026599609 " +0# +#4768 +1! +r0.5320282794358384 " +#4769 +0! +r0.5354838440848519 " +1# +#4770 +1! +r0.539115660187222 " +#4771 +0! +r0.5429235843650693 " +0# +#4772 +1! +r0.5469074662880722 " +#4773 +0! +r0.5510671486793859 " +1# +#4774 +1! +r0.5554024673218816 " +#4775 +0! +r0.5599132510645974 " +0# +#4776 +1! +r0.5645993218295091 " +#4777 +0! +r0.5694604946185757 " +1# +#4778 +1! +r0.5744965775210158 " +#4779 +0! +r0.5797073717209011 " +0# +#4780 +1! +r0.5850926715049987 " +#4781 +0! +r0.5906522642708882 " +1# +#4782 +1! +r0.5963859305353774 " +#4783 +0! +r0.6022934439431307 " +0# +#4784 +1! +r0.6083745712756379 " +#4785 +0! +r0.6146290724604038 " +1# +#4786 +1! +r0.6210567005804268 " +#4787 +0! +r0.6276572018839675 " +0# +#4788 +1! +r0.6344303157945266 " +#4789 +0! +r0.6413757749211593 " +1# +#4790 +1! +r0.6484933050690449 " +#4791 +0! +r0.6557826252502652 " +0# +#4792 +1! +r0.6632434476949536 " +#4793 +0! +r0.6708754778626149 " +1# +#4794 +1! +r0.6786784144537616 " +#4795 +0! +r0.6866519494218091 " +0# +#4796 +1! +r0.6947957679852577 " +#4797 +0! +r0.7031095486401062 " +1# +#4798 +1! +r0.7115929631725191 " +#4799 +0! +r0.7202456766718122 " +0# +#4800 +1! +r0.7290673475436726 " +#4801 +0! +r0.7380576275236477 " +1# +#4802 +1! +r0.7472161616908854 " +#4803 +0! +r0.7565425884821115 " +0# +#4804 +1! +r0.7660365397059916 " +#4805 +0! +r0.7756976405575671 " +1# +#4806 +1! +r0.7855255096331284 " +#4807 +0! +r0.7955197589452503 " +0# +#4808 +1! +r0.8056799939380488 " +#4809 +0! +r0.8160058135028718 " +1# +#4810 +1! +r0.8264968099940209 " +#4811 +0! +r0.8371525692449406 " +0# +#4812 +1! +r0.8479726705844914 " +#4813 +0! +r0.8589566868535847 " +1# +#4814 +1! +r0.8701041844220851 " +#4815 +0! +r0.8814147232058644 " +0# +#4816 +1! +r0.8928878566842489 " +#4817 +0! +r0.9045231319175242 " +1# +#4818 +1! +r0.9163200895649712 " +#4819 +0! +r0.9282782639029152 " +0# +b01001011010100 $ +b1000101111011000000111111001011 % +1' +#4820 +1! +r0.9403971828430828 " +0' +#4821 +0! +r0.952676367951339 " +1# +#4822 +1! +r0.9651153344664394 " +#4823 +0! +r0.977713591319306 " +0# +#4824 +1! +r0.9904706411523438 " +#4825 +0! +r1.003385980339041 " +1# +#4826 +1! +r1.016459099003957 " +#4827 +0! +r1.029689481042715 " +0# +#4828 +1! +r1.043076604142501 " +#4829 +0! +r1.056619939802609 " +1# +#4830 +1! +r1.070318953355361 " +#4831 +0! +r1.084173103987143 " +0# +#4832 +1! +r1.098181844759795 " +#4833 +0! +r1.112344622632249 " +1# +#4834 +1! +r1.126660878482252 " +#4835 +0! +r1.141130047128563 " +0# +#4836 +1! +r1.155751557353177 " +#4837 +0! +r1.170524831923882 " +1# +#4838 +1! +r1.185449287617129 " +#4839 +0! +r1.200524335240926 " +0# +#4840 +1! +r1.21574937965824 " +#4841 +0! +r1.231123819810372 " +1# +#4842 +1! +r1.246647048740729 " +#4843 +0! +r1.262318453618842 " +0# +#4844 +1! +r1.278137415764478 " +#4845 +0! +r1.294103310672091 " +1# +#4846 +1! +r1.310215508035469 " +#4847 +0! +r1.326473371772667 " +0# +#4848 +1! +r1.34287626005108 " +#4849 +0! +r1.359423525312738 " +1# +#4850 +1! +r1.376114514299961 " +#4851 +0! +r1.392948568081055 " +0# +#4852 +1! +r1.409925022076419 " +#4853 +0! +r1.427043206084738 " +1# +#4854 +1! +r1.444302444309399 " +#4855 +0! +r1.46170205538523 " +0# +#4856 +1! +r1.479241352405357 " +#4857 +0! +r1.496919642948388 " +1# +#4858 +1! +r1.514736229105689 " +#4859 +0! +r1.532690407508949 " +0# +#4860 +1! +r1.550781469357936 " +#4861 +0! +r1.569008700448483 " +1# +#4862 +1! +r1.587371381200759 " +#4863 +0! +r1.60586878668754 " +0# +#4864 +1! +r1.624500186662937 " +#4865 +0! +r1.643264845591184 " +1# +#4866 +1! +r1.662162022675666 " +#4867 +0! +r1.681190971888219 " +0# +#4868 +1! +r1.700350941998492 " +#4869 +0! +r1.719641176603647 " +1# +#4870 +1! +r1.7390609141583 " +#4871 +0! +r1.758609388004416 " +0# +#4872 +1! +r1.778285826401755 " +#4873 +0! +r1.798089452558222 " +1# +#4874 +1! +r1.81801948466053 " +#4875 +0! +r1.838075135905182 " +0# +#4876 +1! +r1.858255614529364 " +#4877 +0! +r1.87856012384239 " +1# +#4878 +1! +r1.898987862256931 " +#4879 +0! +r1.919538023320911 " +0# +#4880 +1! +r1.94020979574911 " +#4881 +0! +r1.961002363455374 " +1# +#4882 +1! +r1.981914905584778 " +#4883 +0! +r2.002946596545873 " +0# +#4884 +1! +r2.024096606043582 " +#4885 +0! +r2.045364099111699 " +1# +#4886 +1! +r2.066748236146034 " +#4887 +0! +r2.088248172937512 " +0# +#4888 +1! +r2.109863060705369 " +#4889 +0! +r2.131592046130906 " +1# +#4890 +1! +r2.153434271390935 " +#4891 +0! +r2.175388874191854 " +0# +#4892 +1! +r2.197454987803499 " +#4893 +0! +r2.2196317410935 " +1# +#4894 +1! +r2.241918258561608 " +#4895 +0! +r2.264313660374264 " +0# +#4896 +1! +r2.286817062399415 " +#4897 +0! +r2.309427576241176 " +1# +#4898 +1! +r2.33214430927523 " +#4899 +0! +r2.354966364683879 " +0# +#4900 +1! +r2.377892841491402 " +#4901 +0! +r2.400922834599815 " +1# +#4902 +1! +r2.424055434824345 " +#4903 +0! +r2.447289728929586 " +0# +#4904 +1! +r2.470624799665414 " +#4905 +0! +r2.494059725803141 " +1# +#4906 +1! +r2.517593582172076 " +#4907 +0! +r2.5412254396958 " +0# +#4908 +1! +r2.564954365429054 " +#4909 +0! +r2.588779422594509 " +1# +#4910 +1! +r2.612699670619703 " +#4911 +0! +r2.636714165174188 " +0# +#4912 +1! +r2.660821958206811 " +#4913 +0! +r2.685022097983236 " +1# +#4914 +1! +r2.709313629123329 " +#4915 +0! +r2.733695592639075 " +0# +#4916 +1! +r2.758167025972302 " +#4917 +0! +r2.782726963032684 " +1# +#4918 +1! +r2.807374434236013 " +#4919 +0! +r2.832108466542274 " +0# +b01001100111000 $ +b01010100000111100100100010101111 % +1' +#4920 +1! +r2.856928083494279 " +0' +#4921 +0! +r2.881832305256007 " +1# +#4922 +1! +r2.906820148651439 " +#4923 +0! +r2.931890627203305 " +0# +#4924 +1! +r2.957042751172053 " +#4925 +0! +r2.982275527594852 " +1# +#4926 +1! +r3.007587960324953 " +#4927 +0! +r3.032979050070796 " +0# +#4928 +1! +r3.058447794435692 " +#4929 +0! +r3.083993187957178 " +1# +#4930 +1! +r3.109614222146861 " +#4931 +0! +r3.135309885530223 " +0# +#4932 +1! +r3.161079163686415 " +#4933 +0! +r3.186921039288517 " +1# +#4934 +1! +r3.212834492143499 " +#4935 +0! +r3.238818499232599 " +0# +#4936 +1! +r3.264872034751725 " +#4937 +0! +r3.290994070151887 " +1# +#4938 +1! +r3.317183574179889 " +#4939 +0! +r3.343439512918953 " +0# +#4940 +1! +r3.369760849829562 " +#4941 +0! +r3.396146545790372 " +1# +#4942 +1! +r3.422595559139318 " +#4943 +0! +r3.449106845714685 " +0# +#4944 +1! +r3.475679358896184 " +#4945 +0! +r3.502312049646569 " +1# +#4946 +1! +r3.529003866552751 " +#4947 +0! +r3.555753755867533 " +0# +#4948 +1! +r3.582560661551148 " +#4949 +0! +r3.609423525312739 " +1# +#4950 +1! +r3.636341286652533 " +#4951 +0! +r3.663312882903342 " +0# +#4952 +1! +r3.690337249272774 " +#4953 +0! +r3.717413318885118 " +1# +#4954 +1! +r3.744540022823462 " +#4955 +0! +r3.771716290172044 " +0# +#4956 +1! +r3.798941048058301 " +#4957 +0! +r3.826213221695483 " +1# +#4958 +1! +r3.853531734424783 " +#4959 +0! +r3.880895507758154 " +0# +#4960 +1! +r3.908303461420666 " +#4961 +0! +r3.935754513393221 " +1# +#4962 +1! +r3.963247579955369 " +#4963 +0! +r3.990781575727794 " +0# +#4964 +1! +r4.01835541371555 " +#4965 +0! +r4.04596800535076 " +1# +#4966 +1! +r4.073618260535523 " +#4967 +0! +r4.101305087685187 " +0# +#4968 +1! +r4.12902739377113 " +#4969 +0! +r4.156784084364254 " +1# +#4970 +1! +r4.184574063677879 " +#4971 +0! +r4.212396234611269 " +0# +#4972 +1! +r4.240249498792707 " +#4973 +0! +r4.268132756623016 " +1# +#4974 +1! +r4.296044907318968 " +#4975 +0! +r4.323984848956582 " +0# +#4976 +1! +r4.351951478514868 " +#4977 +0! +r4.379943691919146 " +1# +#4978 +1! +r4.407960384084729 " +#4979 +0! +r4.436000448960645 " +0# +#4980 +1! +r4.464062779573082 " +#4981 +0! +r4.492146268069327 " +1# +#4982 +1! +r4.520249805761339 " +#4983 +0! +r4.548372283169524 " +0# +#4984 +1! +r4.576512590066691 " +#4985 +0! +r4.604669615521643 " +1# +#4986 +1! +r4.632842247943309 " +#4987 +0! +r4.661029375124302 " +0# +#4988 +1! +r4.689229884285171 " +#4989 +0! +r4.717442662118086 " +1# +#4990 +1! +r4.7456665948309 " +#4991 +0! +r4.773900568191062 " +0# +#4992 +1! +r4.802143467569615 " +#4993 +0! +r4.830394177985283 " +1# +#4994 +1! +r4.858651584148426 " +#4995 +0! +r4.886914570504983 " +0# +#4996 +1! +r4.915182021280679 " +#4997 +0! +r4.943452820524911 " +1# +#4998 +1! +r4.971725852154965 " +#4999 +0! +r4.999999999999995 " +0# +#5000 +1! +r5.028274147845024 " +#5001 +0! +r5.056547179475094 " +1# +#5002 +1! +r5.084817978719342 " +#5003 +0! +r5.113085429495023 " +0# +#5004 +1! +r5.141348415851595 " +#5005 +0! +r5.169605822014705 " +1# +#5006 +1! +r5.197856532430406 " +#5007 +0! +r5.22609943180896 " +0# +#5008 +1! +r5.254333405169121 " +#5009 +0! +r5.282557337881919 " +1# +#5010 +1! +r5.310770115714817 " +#5011 +0! +r5.338970624875703 " +0# +#5012 +1! +r5.367157752056697 " +#5013 +0! +r5.395330384478346 " +1# +#5014 +1! +r5.423487409933331 " +#5015 +0! +r5.451627716830465 " +0# +#5016 +1! +r5.479750194238666 " +#5017 +0! +r5.507853731930663 " +1# +#5018 +1! +r5.535937220426907 " +#5019 +0! +r5.563999551039377 " +0# +b01001110011100 $ +b100010010100001000000110010011 % +1' +#5020 +1! +r5.592039615915293 " +0' +#5021 +0! +r5.620056308080875 " +1# +#5022 +1! +r5.648048521485121 " +#5023 +0! +r5.676015151043423 " +0# +#5024 +1! +r5.703955092681038 " +#5025 +0! +r5.731867243376989 " +1# +#5026 +1! +r5.759750501207297 " +#5027 +0! +r5.78760376538872 " +0# +#5028 +1! +r5.815425936322141 " +#5029 +0! +r5.843215915635766 " +1# +#5030 +1! +r5.870972606228875 " +#5031 +0! +r5.898694912314833 " +0# +#5032 +1! +r5.926381739464467 " +#5033 +0! +r5.95403199464926 " +1# +#5034 +1! +r5.981644586284438 " +#5035 +0! +r6.009218424272226 " +0# +#5036 +1! +r6.036752420044651 " +#5037 +0! +r6.064245486606784 " +1# +#5038 +1! +r6.091696538579339 " +#5039 +0! +r6.119104492241835 " +0# +#5040 +1! +r6.146468265575222 " +#5041 +0! +r6.173786778304521 " +1# +#5042 +1! +r6.20105895194172 " +#5043 +0! +r6.228283709827976 " +0# +#5044 +1! +r6.255459977176526 " +#5045 +0! +r6.282586681114902 " +1# +#5046 +1! +r6.309662750727215 " +#5047 +0! +r6.336687117096679 " +0# +#5048 +1! +r6.363658713347487 " +#5049 +0! +r6.390576474687251 " +1# +#5050 +1! +r6.417439338448872 " +#5051 +0! +r6.444246244132457 " +0# +#5052 +1! +r6.470996133447254 " +#5053 +0! +r6.497687950353436 " +1# +#5054 +1! +r6.52432064110382 " +#5055 +0! +r6.550893154285319 " +0# +#5056 +1! +r6.577404440860671 " +#5057 +0! +r6.603853454209647 " +1# +#5058 +1! +r6.630239150170458 " +#5059 +0! +r6.656560487081052 " +0# +#5060 +1! +r6.682816425820101 " +#5061 +0! +r6.709005929848102 " +1# +#5062 +1! +r6.735127965248295 " +#5063 +0! +r6.761181500767405 " +0# +#5064 +1! +r6.78716550785652 " +#5065 +0! +r6.813078960711502 " +1# +#5066 +1! +r6.838920836313575 " +#5067 +0! +r6.864690114469781 " +0# +#5068 +1! +r6.89038577785313 " +#5069 +0! +r6.916006812042826 " +1# +#5070 +1! +r6.941552205564328 " +#5071 +0! +r6.967020949929223 " +0# +#5072 +1! +r6.992412039675066 " +#5073 +0! +r7.017724472405138 " +1# +#5074 +1! +r7.042957248827967 " +#5075 +0! +r7.0681093727967 " +0# +#5076 +1! +r7.093179851348579 " +#5077 +0! +r7.118167694743997 " +1# +#5078 +1! +r7.143071916505711 " +#5079 +0! +r7.167891533457716 " +0# +#5080 +1! +r7.192625565764006 " +#5081 +0! +r7.21727303696732 " +1# +#5082 +1! +r7.241832974027702 " +#5083 +0! +r7.266304407360916 " +0# +#5084 +1! +r7.290686370876688 " +#5085 +0! +r7.314977902016782 " +1# +#5086 +1! +r7.339178041793208 " +#5087 +0! +r7.36328583482583 " +0# +#5088 +1! +r7.387300329380288 " +#5089 +0! +r7.411220577405495 " +1# +#5090 +1! +r7.435045634570937 " +#5091 +0! +r7.458774560304218 " +0# +#5092 +1! +r7.482406417827942 " +#5093 +0! +r7.505940274196837 " +1# +#5094 +1! +r7.52937520033459 " +#5095 +0! +r7.552710271070392 " +0# +#5096 +1! +r7.575944565175659 " +#5097 +0! +r7.599077165400189 " +1# +#5098 +1! +r7.622107158508615 " +#5099 +0! +r7.645033635316137 " +0# +#5100 +1! +r7.66785569072476 " +#5101 +0! +r7.69057242375884 " +1# +#5102 +1! +r7.713182937600603 " +#5103 +0! +r7.735686339625753 " +0# +#5104 +1! +r7.758081741438408 " +#5105 +0! +r7.780368258906504 " +1# +#5106 +1! +r7.802545012196517 " +#5107 +0! +r7.824611125808149 " +0# +#5108 +1! +r7.846565728609068 " +#5109 +0! +r7.868407953869099 " +1# +#5110 +1! +r7.890136939294635 " +#5111 +0! +r7.911751827062491 " +0# +#5112 +1! +r7.933251763853957 " +#5113 +0! +r7.954635900888317 " +1# +#5114 +1! +r7.975903393956433 " +#5115 +0! +r7.997053403454143 " +0# +#5116 +1! +r8.018085094415238 " +#5117 +0! +r8.038997636544618 " +1# +#5118 +1! +r8.059790204250906 " +#5119 +0! +r8.080461976679103 " +0# +b01010000000000 $ +b01110000100000101011101001110111 % +1' +#5120 +1! +r8.101012137743083 " +0' +#5121 +0! +r8.121439876157625 " +1# +#5122 +1! +r8.141744385470616 " +#5123 +0! +r8.161924864094821 " +0# +#5124 +1! +r8.18198051533945 " +#5125 +0! +r8.201910547441781 " +1# +#5126 +1! +r8.221714173598226 " +#5127 +0! +r8.241390611995598 " +0# +#5128 +1! +r8.260939085841715 " +#5129 +0! +r8.280358823396345 " +1# +#5130 +1! +r8.299649058001522 " +#5131 +0! +r8.318809028111794 " +0# +#5132 +1! +r8.337837977324348 " +#5133 +0! +r8.356735154408829 " +1# +#5134 +1! +r8.375499813337065 " +#5135 +0! +r8.394131213312475 " +0# +#5136 +1! +r8.412628618799245 " +#5137 +0! +r8.43099129955152 " +1# +#5138 +1! +r8.449218530642067 " +#5139 +0! +r8.467309592491034 " +0# +#5140 +1! +r8.485263770894292 " +#5141 +0! +r8.503080357051605 " +1# +#5142 +1! +r8.520758647594656 " +#5143 +0! +r8.538297944614783 " +0# +#5144 +1! +r8.555697555690614 " +#5145 +0! +r8.572956793915274 " +1# +#5146 +1! +r8.590074977923575 " +#5147 +0! +r8.607051431918958 " +0# +#5148 +1! +r8.62388548570005 " +#5149 +0! +r8.640576474687274 " +1# +#5150 +1! +r8.657123739948924 " +#5151 +0! +r8.673526628227318 " +0# +#5152 +1! +r8.689784491964534 " +#5153 +0! +r8.705896689327911 " +1# +#5154 +1! +r8.721862584235524 " +#5155 +0! +r8.737681546381161 " +0# +#5156 +1! +r8.753352951259265 " +#5157 +0! +r8.76887618018964 " +1# +#5158 +1! +r8.784250620341753 " +#5159 +0! +r8.799475664759068 " +0# +#5160 +1! +r8.814550712382882 " +#5161 +0! +r8.829475168076129 " +1# +#5162 +1! +r8.844248442646833 " +#5163 +0! +r8.858869952871432 " +0# +#5164 +1! +r8.87333912151775 " +#5165 +0! +r8.887655377367754 " +1# +#5166 +1! +r8.901818155240207 " +#5167 +0! +r8.915826896012859 " +0# +#5168 +1! +r8.929681046644625 " +#5169 +0! +r8.943380060197393 " +1# +#5170 +1! +r8.956923395857501 " +#5171 +0! +r8.970310518957294 " +0# +#5172 +1! +r8.983540900996045 " +#5173 +0! +r8.996614019660939 " +1# +#5174 +1! +r9.009529358847665 " +#5175 +0! +r9.022286408680689 " +0# +#5176 +1! +r9.03488466553357 " +#5177 +0! +r9.04732363204867 " +1# +#5178 +1! +r9.059602817156918 " +#5179 +0! +r9.071721736097086 " +0# +#5180 +1! +r9.083679910435016 " +#5181 +0! +r9.095476868082478 " +1# +#5182 +1! +r9.107112143315753 " +#5183 +0! +r9.118585276794139 " +0# +#5184 +1! +r9.129895815577918 " +#5185 +0! +r9.141043313146412 " +1# +#5186 +1! +r9.152027329415517 " +#5187 +0! +r9.162847430755054 " +0# +#5188 +1! +r9.173503190005988 " +#5189 +0! +r9.183994186497134 " +1# +#5190 +1! +r9.194320006061947 " +#5191 +0! +r9.204480241054757 " +0# +#5192 +1! +r9.214474490366873 " +#5193 +0! +r9.224302359442435 " +1# +#5194 +1! +r9.23396346029401 " +#5195 +0! +r9.243457411517891 " +0# +#5196 +1! +r9.252783838309117 " +#5197 +0! +r9.261942372476348 " +1# +#5198 +1! +r9.270932652456329 " +#5199 +0! +r9.27975432332819 " +0# +#5200 +1! +r9.288407036827486 " +#5201 +0! +r9.296890451359891 " +1# +#5202 +1! +r9.305204232014738 " +#5203 +0! +r9.313348050578197 " +0# +#5204 +1! +r9.321321585546244 " +#5205 +0! +r9.329124522137391 " +1# +#5206 +1! +r9.336756552305044 " +#5207 +0! +r9.344217374749736 " +0# +#5208 +1! +r9.351506694930958 " +#5209 +0! +r9.358624225078842 " +1# +#5210 +1! +r9.365569684205475 " +#5211 +0! +r9.372342798116033 " +0# +#5212 +1! +r9.378943299419575 " +#5213 +0! +r9.385370927539597 " +1# +#5214 +1! +r9.39162542872436 " +#5215 +0! +r9.397706556056871 " +0# +#5216 +1! +r9.403614069464627 " +#5217 +0! +r9.409347735729117 " +1# +#5218 +1! +r9.414907328495005 " +#5219 +0! +r9.420292628279096 " +0# +b01010001100100 $ +b10101101001111001101011011 % +1' +#5220 +1! +r9.425503422478986 " +0' +#5221 +0! +r9.430539505381429 " +1# +#5222 +1! +r9.435400678170492 " +#5223 +0! +r9.440086748935403 " +0# +#5224 +1! +r9.44459753267812 " +#5225 +0! +r9.448932851320615 " +1# +#5226 +1! +r9.453092533711928 " +#5227 +0! +r9.457076415634932 " +0# +#5228 +1! +r9.460884339812779 " +#5229 +0! +r9.464516155915151 " +1# +#5230 +1! +r9.467971720564163 " +#5231 +0! +r9.471250897340038 " +0# +#5232 +1! +r9.474353556786497 " +#5233 +0! +r9.47727957641585 " +1# +#5234 +1! +r9.48002884071386 " +#5235 +0! +r9.482601241144279 " +0# +#5236 +1! +r9.484996676153134 " +#5237 +0! +r9.487215051172761 " +1# +#5238 +1! +r9.489256278625515 " +#5239 +0! +r9.491120277927221 " +0# +#5240 +1! +r9.492806975490389 " +#5241 +0! +r9.494316304727079 " +1# +#5242 +1! +r9.495648206051561 " +#5243 +0! +r9.496802626882651 " +0# +#5244 +1! +r9.497779521645793 " +#5245 +0! +r9.49857885177485 " +1# +#5246 +1! +r9.499200585713641 " +#5247 +0! +r9.499644698917173 " +0# +#5248 +1! +r9.499911173852617 " +#5249 +0! +r9.5 " +1# +#5250 +1! +r9.499911173852617 " +#5251 +0! +r9.499644698917173 " +0# +#5252 +1! +r9.499200585713641 " +#5253 +0! +r9.49857885177485 " +1# +#5254 +1! +r9.497779521645793 " +#5255 +0! +r9.496802626882651 " +0# +#5256 +1! +r9.495648206051561 " +#5257 +0! +r9.494316304727079 " +1# +#5258 +1! +r9.492806975490389 " +#5259 +0! +r9.491120277927221 " +0# +#5260 +1! +r9.489256278625515 " +#5261 +0! +r9.487215051172761 " +1# +#5262 +1! +r9.484996676153134 " +#5263 +0! +r9.482601241144275 " +0# +#5264 +1! +r9.480028840713858 " +#5265 +0! +r9.47727957641585 " +1# +#5266 +1! +r9.474353556786497 " +#5267 +0! +r9.471250897340038 " +0# +#5268 +1! +r9.46797172056416 " +#5269 +0! +r9.464516155915151 " +1# +#5270 +1! +r9.460884339812782 " +#5271 +0! +r9.457076415634932 " +0# +#5272 +1! +r9.453092533711928 " +#5273 +0! +r9.44893285132061 " +1# +#5274 +1! +r9.44459753267812 " +#5275 +0! +r9.440086748935407 " +0# +#5276 +1! +r9.435400678170492 " +#5277 +0! +r9.430539505381422 " +1# +#5278 +1! +r9.425503422478979 " +#5279 +0! +r9.420292628279096 " +0# +#5280 +1! +r9.414907328495005 " +#5281 +0! +r9.40934773572911 " +1# +#5282 +1! +r9.403614069464627 " +#5283 +0! +r9.397706556056869 " +0# +#5284 +1! +r9.391625428724366 " +#5285 +0! +r9.385370927539597 " +1# +#5286 +1! +r9.378943299419566 " +#5287 +0! +r9.372342798116033 " +0# +#5288 +1! +r9.365569684205473 " +#5289 +0! +r9.358624225078842 " +1# +#5290 +1! +r9.351506694930954 " +#5291 +0! +r9.344217374749725 " +0# +#5292 +1! +r9.336756552305042 " +#5293 +0! +r9.329124522137381 " +1# +#5294 +1! +r9.321321585546244 " +#5295 +0! +r9.313348050578186 " +0# +#5296 +1! +r9.305204232014738 " +#5297 +0! +r9.2968904513599 " +1# +#5298 +1! +r9.288407036827486 " +#5299 +0! +r9.279754323328198 " +0# +#5300 +1! +r9.270932652456327 " +#5301 +0! +r9.261942372476348 " +1# +#5302 +1! +r9.252783838309115 " +#5303 +0! +r9.243457411517888 " +0# +#5304 +1! +r9.233963460294021 " +#5305 +0! +r9.224302359442422 " +1# +#5306 +1! +r9.214474490366861 " +#5307 +0! +r9.204480241054744 " +0# +#5308 +1! +r9.194320006061947 " +#5309 +0! +r9.183994186497134 " +1# +#5310 +1! +r9.173503190005974 " +#5311 +0! +r9.162847430755065 " +0# +#5312 +1! +r9.152027329415516 " +#5313 +0! +r9.141043313146422 " +1# +#5314 +1! +r9.129895815577928 " +#5315 +0! +r9.118585276794123 " +0# +#5316 +1! +r9.107112143315764 " +#5317 +0! +r9.095476868082477 " +1# +#5318 +1! +r9.083679910435031 " +#5319 +0! +r9.071721736097071 " +0# +b01010011001000 $ +b10001100111001110010110000111111 % +1' +#5320 +1! +r9.059602817156904 " +0' +#5321 +0! +r9.047323632048668 " +1# +#5322 +1! +r9.034884665533554 " +#5323 +0! +r9.022286408680687 " +0# +#5324 +1! +r9.009529358847649 " +#5325 +0! +r8.996614019660953 " +1# +#5326 +1! +r8.983540900996058 " +#5327 +0! +r8.970310518957293 " +0# +#5328 +1! +r8.956923395857515 " +#5329 +0! +r8.943380060197375 " +1# +#5330 +1! +r8.929681046644639 " +#5331 +0! +r8.915826896012874 " +0# +#5332 +1! +r8.901818155240205 " +#5333 +0! +r8.887655377367752 " +1# +#5334 +1! +r8.873339121517732 " +#5335 +0! +r8.85886995287143 " +0# +#5336 +1! +r8.844248442646816 " +#5337 +0! +r8.82947516807611 " +1# +#5338 +1! +r8.814550712382863 " +#5339 +0! +r8.799475664759065 " +0# +#5340 +1! +r8.784250620341769 " +#5341 +0! +r8.768876180189638 " +1# +#5342 +1! +r8.753352951259281 " +#5343 +0! +r8.737681546381157 " +0# +#5344 +1! +r8.721862584235522 " +#5345 +0! +r8.705896689327927 " +1# +#5346 +1! +r8.689784491964531 " +#5347 +0! +r8.673526628227334 " +0# +#5348 +1! +r8.65712373994892 " +#5349 +0! +r8.640576474687252 " +1# +#5350 +1! +r8.623885485700049 " +#5351 +0! +r8.607051431918936 " +0# +#5352 +1! +r8.590074977923571 " +#5353 +0! +r8.572956793915253 " +1# +#5354 +1! +r8.55569755569061 " +#5355 +0! +r8.538297944614801 " +0# +#5356 +1! +r8.520758647594652 " +#5357 +0! +r8.503080357051603 " +1# +#5358 +1! +r8.48526377089429 " +#5359 +0! +r8.467309592491052 " +0# +#5360 +1! +r8.449218530642085 " +#5361 +0! +r8.430991299551518 " +1# +#5362 +1! +r8.412628618799241 " +#5363 +0! +r8.39413121331245 " +0# +#5364 +1! +r8.375499813337063 " +#5365 +0! +r8.356735154408828 " +1# +#5366 +1! +r8.337837977324323 " +#5367 +0! +r8.318809028111771 " +0# +#5368 +1! +r8.299649058001521 " +#5369 +0! +r8.280358823396364 " +1# +#5370 +1! +r8.260939085841713 " +#5371 +0! +r8.241390611995573 " +0# +#5372 +1! +r8.221714173598244 " +#5373 +0! +r8.201910547441779 " +1# +#5374 +1! +r8.181980515339472 " +#5375 +0! +r8.161924864094818 " +0# +#5376 +1! +r8.141744385470613 " +#5377 +0! +r8.121439876157622 " +1# +#5378 +1! +r8.101012137743057 " +#5379 +0! +r8.080461976679102 " +0# +#5380 +1! +r8.059790204250877 " +#5381 +0! +r8.038997636544591 " +1# +#5382 +1! +r8.018085094415234 " +#5383 +0! +r7.99705340345414 " +0# +#5384 +1! +r7.975903393956454 " +#5385 +0! +r7.95463590088829 " +1# +#5386 +1! +r7.933251763853954 " +#5387 +0! +r7.911751827062512 " +0# +#5388 +1! +r7.890136939294631 " +#5389 +0! +r7.868407953869119 " +1# +#5390 +1! +r7.84656572860904 " +#5391 +0! +r7.824611125808145 " +0# +#5392 +1! +r7.802545012196489 " +#5393 +0! +r7.780368258906501 " +1# +#5394 +1! +r7.758081741438405 " +#5395 +0! +r7.735686339625723 " +0# +#5396 +1! +r7.7131829376006 " +#5397 +0! +r7.690572423758837 " +1# +#5398 +1! +r7.667855690724783 " +#5399 +0! +r7.645033635316134 " +0# +#5400 +1! +r7.622107158508586 " +#5401 +0! +r7.599077165400212 " +1# +#5402 +1! +r7.575944565175655 " +#5403 +0! +r7.552710271070415 " +0# +#5404 +1! +r7.529375200334586 " +#5405 +0! +r7.505940274196833 " +1# +#5406 +1! +r7.482406417827938 " +#5407 +0! +r7.458774560304201 " +0# +#5408 +1! +r7.435045634570946 " +#5409 +0! +r7.411220577405477 " +1# +#5410 +1! +r7.387300329380285 " +#5411 +0! +r7.363285834825827 " +0# +#5412 +1! +r7.339178041793204 " +#5413 +0! +r7.314977902016778 " +1# +#5414 +1! +r7.290686370876657 " +#5415 +0! +r7.266304407360925 " +0# +#5416 +1! +r7.241832974027727 " +#5417 +0! +r7.217273036967317 " +1# +#5418 +1! +r7.192625565763988 " +#5419 +0! +r7.167891533457698 " +0# +b01010100101100 $ +b011011000110010110010100100011 % +1' +#5420 +1! +r7.143071916505722 " +0' +#5421 +0! +r7.118167694744008 " +1# +#5422 +1! +r7.093179851348561 " +#5423 +0! +r7.068109372796681 " +0# +#5424 +1! +r7.042957248827934 " +#5425 +0! +r7.017724472405135 " +1# +#5426 +1! +r6.992412039675061 " +#5427 +0! +r6.967020949929219 " +0# +#5428 +1! +r6.941552205564324 " +#5429 +0! +r6.916006812042822 " +1# +#5430 +1! +r6.890385777853139 " +#5431 +0! +r6.864690114469777 " +0# +#5432 +1! +r6.838920836313556 " +#5433 +0! +r6.813078960711484 " +1# +#5434 +1! +r6.787165507856502 " +#5435 +0! +r6.761181500767416 " +0# +#5436 +1! +r6.735127965248276 " +#5437 +0! +r6.709005929848083 " +1# +#5438 +1! +r6.682816425820097 " +#5439 +0! +r6.656560487081032 " +0# +#5440 +1! +r6.630239150170453 " +#5441 +0! +r6.603853454209643 " +1# +#5442 +1! +r6.577404440860667 " +#5443 +0! +r6.550893154285315 " +0# +#5444 +1! +r6.524320641103817 " +#5445 +0! +r6.497687950353462 " +1# +#5446 +1! +r6.470996133447219 " +#5447 +0! +r6.444246244132438 " +0# +#5448 +1! +r6.417439338448853 " +#5449 +0! +r6.390576474687261 " +1# +#5450 +1! +r6.363658713347498 " +#5451 +0! +r6.336687117096628 " +0# +#5452 +1! +r6.309662750727211 " +#5453 +0! +r6.282586681114867 " +1# +#5454 +1! +r6.255459977176523 " +#5455 +0! +r6.228283709827972 " +0# +#5456 +1! +r6.201058951941684 " +#5457 +0! +r6.173786778304548 " +1# +#5458 +1! +r6.146468265575217 " +#5459 +0! +r6.119104492241862 " +0# +#5460 +1! +r6.091696538579335 " +#5461 +0! +r6.064245486606748 " +1# +#5462 +1! +r6.036752420044662 " +#5463 +0! +r6.009218424272206 " +0# +#5464 +1! +r5.98164458628445 " +#5465 +0! +r5.954031994649209 " +1# +#5466 +1! +r5.926381739464446 " +#5467 +0! +r5.898694912314829 " +0# +#5468 +1! +r5.870972606228855 " +#5469 +0! +r5.843215915635762 " +1# +#5470 +1! +r5.815425936322105 " +#5471 +0! +r5.787603765388747 " +0# +#5472 +1! +r5.759750501207325 " +#5473 +0! +r5.731867243376985 " +1# +#5474 +1! +r5.703955092681033 " +#5475 +0! +r5.676015151043387 " +0# +#5476 +1! +r5.648048521485133 " +#5477 +0! +r5.620056308080855 " +1# +#5478 +1! +r5.592039615915272 " +#5479 +0! +r5.563999551039356 " +0# +#5480 +1! +r5.535937220426886 " +#5481 +0! +r5.507853731930658 " +1# +#5482 +1! +r5.479750194238646 " +#5483 +0! +r5.451627716830461 " +0# +#5484 +1! +r5.423487409933326 " +#5485 +0! +r5.395330384478342 " +1# +#5486 +1! +r5.367157752056724 " +#5487 +0! +r5.338970624875699 " +0# +#5488 +1! +r5.310770115714845 " +#5489 +0! +r5.282557337881915 " +1# +#5490 +1! +r5.254333405169101 " +#5491 +0! +r5.226099431808971 " +0# +#5492 +1! +r5.197856532430386 " +#5493 +0! +r5.169605822014685 " +1# +#5494 +1! +r5.141348415851542 " +#5495 +0! +r5.113085429495002 " +0# +#5496 +1! +r5.084817978719338 " +#5497 +0! +r5.056547179475073 " +1# +#5498 +1! +r5.028274147845019 " +#5499 +0! +r4.99999999999999 " +0# +#5500 +1! +r4.971725852154993 " +#5501 +0! +r4.943452820524938 " +1# +#5502 +1! +r4.915182021280675 " +#5503 +0! +r4.886914570504978 " +0# +#5504 +1! +r4.858651584148405 " +#5505 +0! +r4.830394177985295 " +1# +#5506 +1! +r4.802143467569627 " +#5507 +0! +r4.773900568191009 " +0# +#5508 +1! +r4.74566659483088 " +#5509 +0! +r4.717442662118065 " +1# +#5510 +1! +r4.689229884285167 " +#5511 +0! +r4.661029375124282 " +0# +#5512 +1! +r4.632842247943288 " +#5513 +0! +r4.60466961552167 " +1# +#5514 +1! +r4.576512590066686 " +#5515 +0! +r4.548372283169551 " +0# +#5516 +1! +r4.520249805761335 " +#5517 +0! +r4.492146268069322 " +1# +#5518 +1! +r4.464062779573093 " +#5519 +0! +r4.436000448960624 " +0# +b01010110010000 $ +b10101001010010111001111000000111 % +1' +#5520 +1! +r4.40796038408474 " +0' +#5521 +0! +r4.379943691919125 " +1# +#5522 +1! +r4.351951478514848 " +#5523 +0! +r4.323984848956593 " +0# +#5524 +1! +r4.296044907318947 " +#5525 +0! +r4.268132756623028 " +1# +#5526 +1! +r4.240249498792688 " +#5527 +0! +r4.212396234611266 " +0# +#5528 +1! +r4.184574063677875 " +#5529 +0! +r4.15678408436425 " +1# +#5530 +1! +r4.129027393771157 " +#5531 +0! +r4.101305087685152 " +0# +#5532 +1! +r4.073618260535534 " +#5533 +0! +r4.045968005350741 " +1# +#5534 +1! +r4.018355413715562 " +#5535 +0! +r3.990781575727806 " +0# +#5536 +1! +r3.963247579955318 " +#5537 +0! +r3.935754513393232 " +1# +#5538 +1! +r3.908303461420646 " +#5539 +0! +r3.88089550775815 " +0# +#5540 +1! +r3.853531734424763 " +#5541 +0! +r3.826213221695464 " +1# +#5542 +1! +r3.798941048058327 " +#5543 +0! +r3.77171629017204 " +0# +#5544 +1! +r3.744540022823489 " +#5545 +0! +r3.717413318885114 " +1# +#5546 +1! +r3.69033724927277 " +#5547 +0! +r3.663312882903353 " +0# +#5548 +1! +r3.636341286652514 " +#5549 +0! +r3.60942352531275 " +1# +#5550 +1! +r3.582560661551098 " +#5551 +0! +r3.555753755867544 " +0# +#5552 +1! +r3.529003866552762 " +#5553 +0! +r3.50231204964655 " +1# +#5554 +1! +r3.475679358896165 " +#5555 +0! +r3.449106845714667 " +0# +#5556 +1! +r3.422595559139344 " +#5557 +0! +r3.396146545790368 " +1# +#5558 +1! +r3.369760849829557 " +#5559 +0! +r3.343439512918949 " +0# +#5560 +1! +r3.317183574179885 " +#5561 +0! +r3.290994070151898 " +1# +#5562 +1! +r3.264872034751735 " +#5563 +0! +r3.238818499232595 " +0# +#5564 +1! +r3.212834492143481 " +#5565 +0! +r3.186921039288498 " +1# +#5566 +1! +r3.161079163686425 " +#5567 +0! +r3.135309885530205 " +0# +#5568 +1! +r3.109614222146871 " +#5569 +0! +r3.08399318795716 " +1# +#5570 +1! +r3.058447794435687 " +#5571 +0! +r3.032979050070792 " +0# +#5572 +1! +r3.007587960324949 " +#5573 +0! +r2.982275527594848 " +1# +#5574 +1! +r2.957042751172049 " +#5575 +0! +r2.931890627203301 " +0# +#5576 +1! +r2.90682014865145 " +#5577 +0! +r2.881832305256003 " +1# +#5578 +1! +r2.856928083494261 " +#5579 +0! +r2.832108466542284 " +0# +#5580 +1! +r2.807374434235995 " +#5581 +0! +r2.782726963032693 " +1# +#5582 +1! +r2.758167025972285 " +#5583 +0! +r2.733695592639057 " +0# +#5584 +1! +r2.709313629123326 " +#5585 +0! +r2.685022097983233 " +1# +#5586 +1! +r2.660821958206807 " +#5587 +0! +r2.636714165174157 " +0# +#5588 +1! +r2.612699670619699 " +#5589 +0! +r2.588779422594506 " +1# +#5590 +1! +r2.564954365429064 " +#5591 +0! +r2.541225439695809 " +0# +#5592 +1! +r2.517593582172046 " +#5593 +0! +r2.49405972580315 " +1# +#5594 +1! +r2.470624799665397 " +#5595 +0! +r2.447289728929595 " +0# +#5596 +1! +r2.424055434824355 " +#5597 +0! +r2.400922834599772 " +1# +#5598 +1! +r2.377892841491398 " +#5599 +0! +r2.354966364683876 " +0# +#5600 +1! +r2.332144309275227 " +#5601 +0! +r2.309427576241173 " +1# +#5602 +1! +r2.286817062399385 " +#5603 +0! +r2.264313660374286 " +0# +#5604 +1! +r2.241918258561605 " +#5605 +0! +r2.219631741093508 " +1# +#5606 +1! +r2.197454987803471 " +#5607 +0! +r2.175388874191839 " +0# +#5608 +1! +r2.153434271390945 " +#5609 +0! +r2.13159204613089 " +1# +#5610 +1! +r2.109863060705377 " +#5611 +0! +r2.088248172937472 " +0# +#5612 +1! +r2.066748236146031 " +#5613 +0! +r2.045364099111695 " +1# +#5614 +1! +r2.024096606043555 " +#5615 +0! +r2.002946596545869 " +0# +#5616 +1! +r1.981914905584751 " +#5617 +0! +r1.961002363455394 " +1# +#5618 +1! +r1.940209795749107 " +#5619 +0! +r1.919538023320908 " +0# +b01010111110100 $ +b0110111011111011101011011101011 % +1' +#5620 +1! +r1.898987862256929 " +0' +#5621 +0! +r1.878560123842364 " +1# +#5622 +1! +r1.858255614529372 " +#5623 +0! +r1.838075135905167 " +0# +#5624 +1! +r1.818019484660538 " +#5625 +0! +r1.798089452558207 " +1# +#5626 +1! +r1.778285826401742 " +#5627 +0! +r1.758609388004413 " +0# +#5628 +1! +r1.739060914158296 " +#5629 +0! +r1.719641176603644 " +1# +#5630 +1! +r1.700350941998489 " +#5631 +0! +r1.681190971888216 " +0# +#5632 +1! +r1.662162022675685 " +#5633 +0! +r1.643264845591181 " +1# +#5634 +1! +r1.624500186662924 " +#5635 +0! +r1.605868786687516 " +0# +#5636 +1! +r1.587371381200746 " +#5637 +0! +r1.569008700448491 " +1# +#5638 +1! +r1.550781469357922 " +#5639 +0! +r1.532690407508936 " +0# +#5640 +1! +r1.514736229105677 " +#5641 +0! +r1.496919642948384 " +1# +#5642 +1! +r1.479241352405355 " +#5643 +0! +r1.461702055385207 " +0# +#5644 +1! +r1.444302444309397 " +#5645 +0! +r1.427043206084736 " +1# +#5646 +1! +r1.409925022076436 " +#5647 +0! +r1.392948568081072 " +0# +#5648 +1! +r1.376114514299958 " +#5649 +0! +r1.359423525312736 " +1# +#5650 +1! +r1.342876260051068 " +#5651 +0! +r1.326473371772673 " +0# +#5652 +1! +r1.310215508035457 " +#5653 +0! +r1.294103310672062 " +1# +#5654 +1! +r1.278137415764467 " +#5655 +0! +r1.26231845361883 " +0# +#5656 +1! +r1.246647048740727 " +#5657 +0! +r1.231123819810351 " +1# +#5658 +1! +r1.215749379658238 " +#5659 +0! +r1.20052433524094 " +0# +#5660 +1! +r1.185449287617126 " +#5661 +0! +r1.170524831923897 " +1# +#5662 +1! +r1.155751557353174 " +#5663 +0! +r1.14113004712856 " +0# +#5664 +1! +r1.126660878482258 " +#5665 +0! +r1.112344622632238 " +1# +#5666 +1! +r1.098181844759801 " +#5667 +0! +r1.084173103987118 " +0# +#5668 +1! +r1.070318953355351 " +#5669 +0! +r1.056619939802599 " +1# +#5670 +1! +r1.043076604142491 " +#5671 +0! +r1.029689481042713 " +0# +#5672 +1! +r1.016459099003947 " +#5673 +0! +r1.003385980339053 " +1# +#5674 +1! +r0.9904706411523421 " +#5675 +0! +r0.9777135913193185 " +0# +#5676 +1! +r0.9651153344664518 " +#5677 +0! +r0.952676367951323 " +1# +#5678 +1! +r0.9403971828430873 " +#5679 +0! +r0.9282782639029064 " +0# +#5680 +1! +r0.9163200895649757 " +#5681 +0! +r0.9045231319175153 " +1# +#5682 +1! +r0.8928878566842275 " +#5683 +0! +r0.8814147232058689 " +0# +#5684 +1! +r0.8701041844220772 " +#5685 +0! +r0.858956686853583 " +1# +#5686 +1! +r0.8479726705844772 " +#5687 +0! +r0.8371525692449389 " +0# +#5688 +1! +r0.8264968099940315 " +#5689 +0! +r0.81600581350287 " +1# +#5690 +1! +r0.8056799939380586 " +#5691 +0! +r0.7955197589452379 " +0# +#5692 +1! +r0.7855255096331319 " +#5693 +0! +r0.7756976405575706 " +1# +#5694 +1! +r0.7660365397059845 " +#5695 +0! +r0.7565425884821044 " +0# +#5696 +1! +r0.7472161616908686 " +#5697 +0! +r0.7380576275236468 " +1# +#5698 +1! +r0.7290673475436762 " +#5699 +0! +r0.7202456766718059 " +0# +#5700 +1! +r0.7115929631725084 " +#5701 +0! +r0.7031095486401044 " +1# +#5702 +1! +r0.6947957679852657 " +#5703 +0! +r0.6866519494218171 " +0# +#5704 +1! +r0.6786784144537599 " +#5705 +0! +r0.670875477862614 " +1# +#5706 +1! +r0.6632434476949527 " +#5707 +0! +r0.6557826252502688 " +0# +#5708 +1! +r0.6484933050690396 " +#5709 +0! +r0.6413757749211619 " +1# +#5710 +1! +r0.6344303157945221 " +#5711 +0! +r0.627657201883963 " +0# +#5712 +1! +r0.6210567005804295 " +#5713 +0! +r0.6146290724603993 " +1# +#5714 +1! +r0.608374571275637 " +#5715 +0! +r0.6022934439431262 " +0# +#5716 +1! +r0.5963859305353765 " +#5717 +0! +r0.5906522642708936 " +1# +#5718 +1! +r0.5850926715049978 " +#5719 +0! +r0.5797073717208994 " +0# +b01011001011000 $ +b1000101101100000000111111001111 % +1' +#5720 +1! +r0.5744965775210185 " +0' +#5721 +0! +r0.5694604946185757 " +1# +#5722 +1! +r0.5645993218295109 " +#5723 +0! +r0.5599132510645939 " +0# +#5724 +1! +r0.555402467321878 " +#5725 +0! +r0.5510671486793823 " +1# +#5726 +1! +r0.5469074662880695 " +#5727 +0! +r0.542923584365071 " +0# +#5728 +1! +r0.5391156601872193 " +#5729 +0! +r0.5354838440848475 " +1# +#5730 +1! +r0.5320282794358384 " +#5731 +0! +r0.5287491026599636 " +0# +#5732 +1! +r0.5256464432135051 " +#5733 +0! +r0.5227204235841478 " +1# +#5734 +1! +r0.5199711592861407 " +#5735 +0! +r0.5173987588557232 " +0# +#5736 +1! +r0.5150033238468659 " +#5737 +0! +r0.5127849488272389 " +1# +#5738 +1! +r0.5107437213744852 " +#5739 +0! +r0.5088797220727779 " +0# +#5740 +1! +r0.5071930245096112 " +#5741 +0! +r0.5056836952729213 " +1# +#5742 +1! +r0.5043517939484383 " +#5743 +0! +r0.5031973731173469 " +0# +#5744 +1! +r0.5022204783542081 " +#5745 +0! +r0.50142114822515 " +1# +#5746 +1! +r0.5007994142863605 " +#5747 +0! +r0.500355301082827 " +0# +#5748 +1! +r0.5000888261473833 " +#5749 +0! +r0.5 " +1# +#5750 +1! +r0.5000888261473833 " +#5751 +0! +r0.500355301082827 " +0# +#5752 +1! +r0.5007994142863605 " +#5753 +0! +r0.50142114822515 " +1# +#5754 +1! +r0.5022204783542081 " +#5755 +0! +r0.5031973731173487 " +0# +#5756 +1! +r0.5043517939484383 " +#5757 +0! +r0.5056836952729213 " +1# +#5758 +1! +r0.507193024509613 " +#5759 +0! +r0.5088797220727779 " +0# +#5760 +1! +r0.5107437213744852 " +#5761 +0! +r0.5127849488272371 " +1# +#5762 +1! +r0.5150033238468668 " +#5763 +0! +r0.5173987588557232 " +0# +#5764 +1! +r0.5199711592861407 " +#5765 +0! +r0.5227204235841478 " +1# +#5766 +1! +r0.5256464432135051 " +#5767 +0! +r0.5287491026599644 " +0# +#5768 +1! +r0.5320282794358384 " +#5769 +0! +r0.5354838440848519 " +1# +#5770 +1! +r0.5391156601872202 " +#5771 +0! +r0.542923584365071 " +0# +#5772 +1! +r0.546907466288074 " +#5773 +0! +r0.5510671486793886 " +1# +#5774 +1! +r0.5554024673218789 " +#5775 +0! +r0.5599132510645948 " +0# +#5776 +1! +r0.5645993218295118 " +#5777 +0! +r0.5694604946185757 " +1# +#5778 +1! +r0.5744965775210131 " +#5779 +0! +r0.5797073717209003 " +0# +#5780 +1! +r0.5850926715049987 " +#5781 +0! +r0.5906522642708945 " +1# +#5782 +1! +r0.5963859305353774 " +#5783 +0! +r0.6022934439431271 " +0# +#5784 +1! +r0.6083745712756379 " +#5785 +0! +r0.6146290724604073 " +1# +#5786 +1! +r0.6210567005804384 " +#5787 +0! +r0.627657201883971 " +0# +#5788 +1! +r0.634430315794523 " +#5789 +0! +r0.6413757749211548 " +1# +#5790 +1! +r0.6484933050690405 " +#5791 +0! +r0.6557826252502696 " +0# +#5792 +1! +r0.6632434476949536 " +#5793 +0! +r0.6708754778626149 " +1# +#5794 +1! +r0.6786784144537616 " +#5795 +0! +r0.6866519494218091 " +0# +#5796 +1! +r0.6947957679852674 " +#5797 +0! +r0.7031095486401053 " +1# +#5798 +1! +r0.7115929631725191 " +#5799 +0! +r0.7202456766718166 " +0# +#5800 +1! +r0.7290673475436771 " +#5801 +0! +r0.7380576275236583 " +1# +#5802 +1! +r0.7472161616908801 " +#5803 +0! +r0.7565425884821053 " +0# +#5804 +1! +r0.7660365397059854 " +#5805 +0! +r0.7756976405575609 " +1# +#5806 +1! +r0.7855255096331337 " +#5807 +0! +r0.7955197589452387 " +0# +#5808 +1! +r0.8056799939380603 " +#5809 +0! +r0.8160058135028718 " +1# +#5810 +1! +r0.8264968099940324 " +#5811 +0! +r0.8371525692449406 " +0# +#5812 +1! +r0.8479726705844781 " +#5813 +0! +r0.8589566868535963 " +1# +#5814 +1! +r0.8701041844220905 " +#5815 +0! +r0.8814147232058822 " +0# +#5816 +1! +r0.8928878566842418 " +#5817 +0! +r0.9045231319175171 " +1# +#5818 +1! +r0.9163200895649766 " +#5819 +0! +r0.9282782639029081 " +0# +b01011010111100 $ +b01010011111000100100100010110011 % +1' +#5820 +1! +r0.940397182843089 " +0' +#5821 +0! +r0.9526763679513248 " +1# +#5822 +1! +r0.9651153344664394 " +#5823 +0! +r0.9777135913193202 " +0# +#5824 +1! +r0.9904706411523438 " +#5825 +0! +r1.003385980339055 " +1# +#5826 +1! +r1.016459099003949 " +#5827 +0! +r1.029689481042729 " +0# +#5828 +1! +r1.043076604142508 " +#5829 +0! +r1.056619939802617 " +1# +#5830 +1! +r1.070318953355368 " +#5831 +0! +r1.084173103987135 " +0# +#5832 +1! +r1.098181844759802 " +#5833 +0! +r1.11234462263224 " +1# +#5834 +1! +r1.126660878482244 " +#5835 +0! +r1.141130047128562 " +0# +#5836 +1! +r1.155751557353159 " +#5837 +0! +r1.170524831923899 " +1# +#5838 +1! +r1.185449287617128 " +#5839 +0! +r1.200524335240925 " +0# +#5840 +1! +r1.21574937965824 " +#5841 +0! +r1.231123819810371 " +1# +#5842 +1! +r1.246647048740746 " +#5843 +0! +r1.26231845361885 " +0# +#5844 +1! +r1.278137415764469 " +#5845 +0! +r1.294103310672082 " +1# +#5846 +1! +r1.310215508035459 " +#5847 +0! +r1.326473371772675 " +0# +#5848 +1! +r1.34287626005107 " +#5849 +0! +r1.359423525312737 " +1# +#5850 +1! +r1.376114514299942 " +#5851 +0! +r1.392948568081054 " +0# +#5852 +1! +r1.409925022076438 " +#5853 +0! +r1.427043206084738 " +1# +#5854 +1! +r1.444302444309399 " +#5855 +0! +r1.46170205538523 " +0# +#5856 +1! +r1.479241352405356 " +#5857 +0! +r1.496919642948407 " +1# +#5858 +1! +r1.514736229105699 " +#5859 +0! +r1.532690407508959 " +0# +#5860 +1! +r1.550781469357925 " +#5861 +0! +r1.569008700448472 " +1# +#5862 +1! +r1.587371381200748 " +#5863 +0! +r1.605868786687517 " +0# +#5864 +1! +r1.624500186662926 " +#5865 +0! +r1.643264845591184 " +1# +#5866 +1! +r1.662162022675687 " +#5867 +0! +r1.681190971888219 " +0# +#5868 +1! +r1.700350941998469 " +#5869 +0! +r1.719641176603647 " +1# +#5870 +1! +r1.739060914158299 " +#5871 +0! +r1.758609388004438 " +0# +#5872 +1! +r1.778285826401766 " +#5873 +0! +r1.79808945255821 " +1# +#5874 +1! +r1.81801948466054 " +#5875 +0! +r1.83807513590517 " +0# +#5876 +1! +r1.858255614529374 " +#5877 +0! +r1.878560123842366 " +1# +#5878 +1! +r1.898987862256908 " +#5879 +0! +r1.91953802332091 " +0# +#5880 +1! +r1.94020979574911 " +#5881 +0! +r1.961002363455397 " +1# +#5882 +1! +r1.981914905584754 " +#5883 +0! +r2.002946596545872 " +0# +#5884 +1! +r2.024096606043581 " +#5885 +0! +r2.045364099111698 " +1# +#5886 +1! +r2.066748236146058 " +#5887 +0! +r2.0882481729375 " +0# +#5888 +1! +r2.10986306070538 " +#5889 +0! +r2.131592046130893 " +1# +#5890 +1! +r2.153434271390947 " +#5891 +0! +r2.175388874191841 " +0# +#5892 +1! +r2.197454987803473 " +#5893 +0! +r2.219631741093511 " +1# +#5894 +1! +r2.241918258561608 " +#5895 +0! +r2.264313660374263 " +0# +#5896 +1! +r2.286817062399388 " +#5897 +0! +r2.30942757624115 " +1# +#5898 +1! +r2.332144309275256 " +#5899 +0! +r2.354966364683878 " +0# +#5900 +1! +r2.377892841491427 " +#5901 +0! +r2.400922834599801 " +1# +#5902 +1! +r2.424055434824357 " +#5903 +0! +r2.447289728929598 " +0# +#5904 +1! +r2.4706247996654 " +#5905 +0! +r2.494059725803153 " +1# +#5906 +1! +r2.517593582172048 " +#5907 +0! +r2.541225439695785 " +0# +#5908 +1! +r2.564954365429067 " +#5909 +0! +r2.588779422594508 " +1# +#5910 +1! +r2.612699670619702 " +#5911 +0! +r2.636714165174159 " +0# +#5912 +1! +r2.660821958206809 " +#5913 +0! +r2.685022097983236 " +1# +#5914 +1! +r2.709313629123328 " +#5915 +0! +r2.733695592639088 " +0# +#5916 +1! +r2.758167025972315 " +#5917 +0! +r2.782726963032697 " +1# +#5918 +1! +r2.807374434235998 " +#5919 +0! +r2.832108466542287 " +0# +b01011100100000 $ +b100010000101001000000110010111 % +1' +#5920 +1! +r2.856928083494264 " +0' +#5921 +0! +r2.881832305256006 " +1# +#5922 +1! +r2.906820148651453 " +#5923 +0! +r2.931890627203304 " +0# +#5924 +1! +r2.957042751172023 " +#5925 +0! +r2.982275527594851 " +1# +#5926 +1! +r3.007587960324952 " +#5927 +0! +r3.032979050070824 " +0# +#5928 +1! +r3.058447794435691 " +#5929 +0! +r3.083993187957163 " +1# +#5930 +1! +r3.109614222146874 " +#5931 +0! +r3.135309885530237 " +0# +#5932 +1! +r3.161079163686429 " +#5933 +0! +r3.186921039288531 " +1# +#5934 +1! +r3.212834492143483 " +#5935 +0! +r3.238818499232599 " +0# +#5936 +1! +r3.264872034751709 " +#5937 +0! +r3.290994070151901 " +1# +#5938 +1! +r3.317183574179888 " +#5939 +0! +r3.343439512918952 " +0# +#5940 +1! +r3.36976084982956 " +#5941 +0! +r3.396146545790371 " +1# +#5942 +1! +r3.422595559139348 " +#5943 +0! +r3.449106845714669 " +0# +#5944 +1! +r3.475679358896199 " +#5945 +0! +r3.502312049646583 " +1# +#5946 +1! +r3.529003866552765 " +#5947 +0! +r3.555753755867547 " +0# +#5948 +1! +r3.582560661551132 " +#5949 +0! +r3.609423525312753 " +1# +#5950 +1! +r3.636341286652517 " +#5951 +0! +r3.663312882903356 " +0# +#5952 +1! +r3.690337249272773 " +#5953 +0! +r3.717413318885087 " +1# +#5954 +1! +r3.744540022823492 " +#5955 +0! +r3.771716290172043 " +0# +#5956 +1! +r3.79894104805833 " +#5957 +0! +r3.826213221695467 " +1# +#5958 +1! +r3.853531734424767 " +#5959 +0! +r3.880895507758185 " +0# +#5960 +1! +r3.90830346142068 " +#5961 +0! +r3.935754513393235 " +1# +#5962 +1! +r3.963247579955353 " +#5963 +0! +r3.990781575727778 " +0# +#5964 +1! +r4.018355413715565 " +#5965 +0! +r4.045968005350744 " +1# +#5966 +1! +r4.073618260535538 " +#5967 +0! +r4.101305087685154 " +0# +#5968 +1! +r4.12902739377116 " +#5969 +0! +r4.156784084364253 " +1# +#5970 +1! +r4.184574063677879 " +#5971 +0! +r4.212396234611268 " +0# +#5972 +1! +r4.240249498792691 " +#5973 +0! +r4.268132756623062 " +1# +#5974 +1! +r4.296044907318982 " +#5975 +0! +r4.323984848956597 " +0# +#5976 +1! +r4.351951478514883 " +#5977 +0! +r4.379943691919129 " +1# +#5978 +1! +r4.407960384084743 " +#5979 +0! +r4.436000448960628 " +0# +#5980 +1! +r4.464062779573065 " +#5981 +0! +r4.492146268069326 " +1# +#5982 +1! +r4.520249805761337 " +#5983 +0! +r4.548372283169554 " +0# +#5984 +1! +r4.576512590066689 " +#5985 +0! +r4.604669615521674 " +1# +#5986 +1! +r4.632842247943291 " +#5987 +0! +r4.661029375124317 " +0# +#5988 +1! +r4.689229884285202 " +#5989 +0! +r4.717442662118101 " +1# +#5990 +1! +r4.745666594830883 " +#5991 +0! +r4.773900568191045 " +0# +#5992 +1! +r4.802143467569597 " +#5993 +0! +r4.830394177985299 " +1# +#5994 +1! +r4.858651584148409 " +#5995 +0! +r4.886914570504982 " +0# +#5996 +1! +r4.915182021280678 " +#5997 +0! +r4.94345282052491 " +1# +#5998 +1! +r4.971725852154996 " +#5999 +0! +r4.999999999999994 " +0# +#6000 +1! +r5.028274147845023 " +#6001 +0! +r5.056547179475109 " +1# +#6002 +1! +r5.084817978719341 " +#6003 +0! +r5.113085429495037 " +0# +#6004 +1! +r5.141348415851578 " +#6005 +0! +r5.16960582201472 " +1# +#6006 +1! +r5.197856532430389 " +#6007 +0! +r5.226099431808974 " +0# +#6008 +1! +r5.254333405169104 " +#6009 +0! +r5.282557337881886 " +1# +#6010 +1! +r5.310770115714816 " +#6011 +0! +r5.338970624875701 " +0# +#6012 +1! +r5.367157752056728 " +#6013 +0! +r5.395330384478345 " +1# +#6014 +1! +r5.423487409933298 " +#6015 +0! +r5.451627716830496 " +0# +#6016 +1! +r5.479750194238681 " +#6017 +0! +r5.507853731930693 " +1# +#6018 +1! +r5.535937220426922 " +#6019 +0! +r5.563999551039359 " +0# +b01011110000100 $ +b01110000010001101011101001111011 % +1' +#6020 +1! +r5.592039615915276 " +0' +#6021 +0! +r5.620056308080859 " +1# +#6022 +1! +r5.648048521485135 " +#6023 +0! +r5.67601515104339 " +0# +#6024 +1! +r5.703955092681037 " +#6025 +0! +r5.731867243376987 " +1# +#6026 +1! +r5.759750501207296 " +#6027 +0! +r5.78760376538875 " +0# +#6028 +1! +r5.815425936322109 " +#6029 +0! +r5.843215915635796 " +1# +#6030 +1! +r5.870972606228889 " +#6031 +0! +r5.898694912314832 " +0# +#6032 +1! +r5.926381739464481 " +#6033 +0! +r5.954031994649243 " +1# +#6034 +1! +r5.981644586284453 " +#6035 +0! +r6.009218424272209 " +0# +#6036 +1! +r6.036752420044635 " +#6037 +0! +r6.064245486606752 " +1# +#6038 +1! +r6.091696538579307 " +#6039 +0! +r6.119104492241865 " +0# +#6040 +1! +r6.146468265575221 " +#6041 +0! +r6.173786778304551 " +1# +#6042 +1! +r6.201058951941688 " +#6043 +0! +r6.228283709827975 " +0# +#6044 +1! +r6.255459977176557 " +#6045 +0! +r6.282586681114901 " +1# +#6046 +1! +r6.309662750727245 " +#6047 +0! +r6.336687117096662 " +0# +#6048 +1! +r6.363658713347501 " +#6049 +0! +r6.390576474687265 " +1# +#6050 +1! +r6.417439338448856 " +#6051 +0! +r6.44424624413244 " +0# +#6052 +1! +r6.470996133447223 " +#6053 +0! +r6.497687950353434 " +1# +#6054 +1! +r6.524320641103819 " +#6055 +0! +r6.550893154285318 " +0# +#6056 +1! +r6.57740444086067 " +#6057 +0! +r6.603853454209646 " +1# +#6058 +1! +r6.630239150170487 " +#6059 +0! +r6.656560487081065 " +0# +#6060 +1! +r6.6828164258201 " +#6061 +0! +r6.709005929848116 " +1# +#6062 +1! +r6.735127965248309 " +#6063 +0! +r6.761181500767419 " +0# +#6064 +1! +r6.787165507856504 " +#6065 +0! +r6.813078960711458 " +1# +#6066 +1! +r6.838920836313559 " +#6067 +0! +r6.86469011446978 " +0# +#6068 +1! +r6.890385777853142 " +#6069 +0! +r6.916006812042825 " +1# +#6070 +1! +r6.941552205564298 " +#6071 +0! +r6.967020949929193 " +0# +#6072 +1! +r6.992412039675065 " +#6073 +0! +r7.017724472405166 " +1# +#6074 +1! +r7.042957248827966 " +#6075 +0! +r7.068109372796712 " +0# +#6076 +1! +r7.093179851348564 " +#6077 +0! +r7.11816769474401 " +1# +#6078 +1! +r7.143071916505725 " +#6079 +0! +r7.167891533457702 " +0# +#6080 +1! +r7.192625565763991 " +#6081 +0! +r7.21727303696732 " +1# +#6082 +1! +r7.241832974027702 " +#6083 +0! +r7.266304407360929 " +0# +#6084 +1! +r7.29068637087666 " +#6085 +0! +r7.314977902016781 " +1# +#6086 +1! +r7.339178041793207 " +#6087 +0! +r7.363285834825829 " +0# +#6088 +1! +r7.387300329380314 " +#6089 +0! +r7.41122057740548 " +1# +#6090 +1! +r7.435045634570949 " +#6091 +0! +r7.458774560304231 " +0# +#6092 +1! +r7.48240641782794 " +#6093 +0! +r7.505940274196836 " +1# +#6094 +1! +r7.52937520033459 " +#6095 +0! +r7.552710271070418 " +0# +#6096 +1! +r7.575944565175658 " +#6097 +0! +r7.599077165400215 " +1# +#6098 +1! +r7.622107158508588 " +#6099 +0! +r7.645033635316111 " +0# +#6100 +1! +r7.667855690724785 " +#6101 +0! +r7.690572423758839 " +1# +#6102 +1! +r7.713182937600627 " +#6103 +0! +r7.735686339625726 " +0# +#6104 +1! +r7.758081741438407 " +#6105 +0! +r7.780368258906528 " +1# +#6106 +1! +r7.802545012196516 " +#6107 +0! +r7.824611125808149 " +0# +#6108 +1! +r7.846565728609042 " +#6109 +0! +r7.868407953869122 " +1# +#6110 +1! +r7.890136939294635 " +#6111 +0! +r7.91175182706249 " +0# +#6112 +1! +r7.933251763853956 " +#6113 +0! +r7.954635900888293 " +1# +#6114 +1! +r7.975903393956457 " +#6115 +0! +r7.997053403454142 " +0# +#6116 +1! +r8.018085094415238 " +#6117 +0! +r8.038997636544618 " +1# +#6118 +1! +r8.059790204250881 " +#6119 +0! +r8.080461976679103 " +0# +b01011111101000 $ +b10011110001111001101011111 % +1' +#6120 +1! +r8.101012137743083 " +0' +#6121 +0! +r8.121439876157623 " +1# +#6122 +1! +r8.141744385470616 " +#6123 +0! +r8.161924864094821 " +0# +#6124 +1! +r8.181980515339474 " +#6125 +0! +r8.201910547441781 " +1# +#6126 +1! +r8.221714173598247 " +#6127 +0! +r8.241390611995575 " +0# +#6128 +1! +r8.260939085841715 " +#6129 +0! +r8.280358823396366 " +1# +#6130 +1! +r8.299649058001522 " +#6131 +0! +r8.318809028111794 " +0# +#6132 +1! +r8.337837977324327 " +#6133 +0! +r8.356735154408828 " +1# +#6134 +1! +r8.375499813337086 " +#6135 +0! +r8.394131213312473 " +0# +#6136 +1! +r8.412628618799243 " +#6137 +0! +r8.430991299551518 " +1# +#6138 +1! +r8.449218530642067 " +#6139 +0! +r8.467309592491054 " +0# +#6140 +1! +r8.485263770894292 " +#6141 +0! +r8.503080357051605 " +1# +#6142 +1! +r8.520758647594654 " +#6143 +0! +r8.538297944614802 " +0# +#6144 +1! +r8.555697555690614 " +#6145 +0! +r8.572956793915253 " +1# +#6146 +1! +r8.590074977923575 " +#6147 +0! +r8.607051431918958 " +0# +#6148 +1! +r8.62388548570005 " +#6149 +0! +r8.640576474687274 " +1# +#6150 +1! +r8.657123739948922 " +#6151 +0! +r8.673526628227318 " +0# +#6152 +1! +r8.689784491964533 " +#6153 +0! +r8.705896689327929 " +1# +#6154 +1! +r8.721862584235524 " +#6155 +0! +r8.737681546381143 " +0# +#6156 +1! +r8.753352951259281 " +#6157 +0! +r8.76887618018964 " +1# +#6158 +1! +r8.784250620341769 " +#6159 +0! +r8.799475664759068 " +0# +#6160 +1! +r8.814550712382864 " +#6161 +0! +r8.829475168076128 " +1# +#6162 +1! +r8.844248442646833 " +#6163 +0! +r8.858869952871448 " +0# +#6164 +1! +r8.87333912151775 " +#6165 +0! +r8.887655377367754 " +1# +#6166 +1! +r8.901818155240207 " +#6167 +0! +r8.915826896012858 " +0# +#6168 +1! +r8.929681046644641 " +#6169 +0! +r8.943380060197377 " +1# +#6170 +1! +r8.956923395857515 " +#6171 +0! +r8.970310518957294 " +0# +#6172 +1! +r8.983540900996045 " +#6173 +0! +r8.996614019660953 " +1# +#6174 +1! +r9.009529358847651 " +#6175 +0! +r9.022286408680703 " +0# +#6176 +1! +r9.03488466553357 " +#6177 +0! +r9.04732363204867 " +1# +#6178 +1! +r9.059602817156918 " +#6179 +0! +r9.071721736097086 " +0# +#6180 +1! +r9.083679910435031 " +#6181 +0! +r9.095476868082478 " +1# +#6182 +1! +r9.107112143315765 " +#6183 +0! +r9.118585276794125 " +0# +#6184 +1! +r9.129895815577918 " +#6185 +0! +r9.141043313146424 " +1# +#6186 +1! +r9.152027329415517 " +#6187 +0! +r9.162847430755066 " +0# +#6188 +1! +r9.173503190005974 " +#6189 +0! +r9.183994186497134 " +1# +#6190 +1! +r9.194320006061957 " +#6191 +0! +r9.204480241054757 " +0# +#6192 +1! +r9.214474490366873 " +#6193 +0! +r9.224302359442435 " +1# +#6194 +1! +r9.23396346029401 " +#6195 +0! +r9.243457411517891 " +0# +#6196 +1! +r9.252783838309117 " +#6197 +0! +r9.261942372476348 " +1# +#6198 +1! +r9.27093265245632 " +#6199 +0! +r9.279754323328198 " +0# +#6200 +1! +r9.288407036827486 " +#6201 +0! +r9.296890451359889 " +1# +#6202 +1! +r9.305204232014738 " +#6203 +0! +r9.313348050578197 " +0# +#6204 +1! +r9.321321585546253 " +#6205 +0! +r9.329124522137391 " +1# +#6206 +1! +r9.336756552305044 " +#6207 +0! +r9.344217374749736 " +0# +#6208 +1! +r9.351506694930956 " +#6209 +0! +r9.358624225078842 " +1# +#6210 +1! +r9.365569684205473 " +#6211 +0! +r9.372342798116026 " +0# +#6212 +1! +r9.378943299419566 " +#6213 +0! +r9.385370927539597 " +1# +#6214 +1! +r9.391625428724367 " +#6215 +0! +r9.397706556056871 " +0# +#6216 +1! +r9.403614069464627 " +#6217 +0! +r9.409347735729117 " +1# +#6218 +1! +r9.414907328495005 " +#6219 +0! +r9.420292628279103 " +0# +b01100001001100 $ +b10001100101010110010110001000011 % +1' +#6220 +1! +r9.425503422478984 " +0' +#6221 +0! +r9.430539505381429 " +1# +#6222 +1! +r9.435400678170492 " +#6223 +0! +r9.440086748935403 " +0# +#6224 +1! +r9.44459753267812 " +#6225 +0! +r9.44893285132061 " +1# +#6226 +1! +r9.453092533711928 " +#6227 +0! +r9.457076415634932 " +0# +#6228 +1! +r9.460884339812779 " +#6229 +0! +r9.464516155915151 " +1# +#6230 +1! +r9.46797172056416 " +#6231 +0! +r9.471250897340038 " +0# +#6232 +1! +r9.474353556786497 " +#6233 +0! +r9.477279576415853 " +1# +#6234 +1! +r9.48002884071386 " +#6235 +0! +r9.482601241144277 " +0# +#6236 +1! +r9.484996676153134 " +#6237 +0! +r9.487215051172761 " +1# +#6238 +1! +r9.489256278625515 " +#6239 +0! +r9.491120277927221 " +0# +#6240 +1! +r9.492806975490385 " +#6241 +0! +r9.494316304727079 " +1# +#6242 +1! +r9.495648206051561 " +#6243 +0! +r9.496802626882651 " +0# +#6244 +1! +r9.497779521645793 " +#6245 +0! +r9.49857885177485 " +1# +#6246 +1! +r9.499200585713641 " +#6247 +0! +r9.499644698917173 " +0# +#6248 +1! +r9.499911173852617 " +#6249 +0! +r9.5 " +1# +#6250 +1! +r9.499911173852617 " +#6251 +0! +r9.499644698917173 " +0# +#6252 +1! +r9.499200585713641 " +#6253 +0! +r9.49857885177485 " +1# +#6254 +1! +r9.497779521645793 " +#6255 +0! +r9.496802626882651 " +0# +#6256 +1! +r9.495648206051561 " +#6257 +0! +r9.494316304727079 " +1# +#6258 +1! +r9.492806975490389 " +#6259 +0! +r9.491120277927223 " +0# +#6260 +1! +r9.489256278625511 " +#6261 +0! +r9.487215051172761 " +1# +#6262 +1! +r9.484996676153134 " +#6263 +0! +r9.482601241144275 " +0# +#6264 +1! +r9.480028840713858 " +#6265 +0! +r9.47727957641585 " +1# +#6266 +1! +r9.474353556786497 " +#6267 +0! +r9.471250897340038 " +0# +#6268 +1! +r9.467971720564163 " +#6269 +0! +r9.464516155915151 " +1# +#6270 +1! +r9.460884339812779 " +#6271 +0! +r9.457076415634932 " +0# +#6272 +1! +r9.453092533711928 " +#6273 +0! +r9.448932851320613 " +1# +#6274 +1! +r9.44459753267812 " +#6275 +0! +r9.440086748935403 " +0# +#6276 +1! +r9.435400678170492 " +#6277 +0! +r9.430539505381422 " +1# +#6278 +1! +r9.425503422478979 " +#6279 +0! +r9.420292628279096 " +0# +#6280 +1! +r9.414907328495005 " +#6281 +0! +r9.40934773572911 " +1# +#6282 +1! +r9.403614069464627 " +#6283 +0! +r9.397706556056869 " +0# +#6284 +1! +r9.391625428724359 " +#6285 +0! +r9.385370927539597 " +1# +#6286 +1! +r9.378943299419573 " +#6287 +0! +r9.372342798116033 " +0# +#6288 +1! +r9.365569684205473 " +#6289 +0! +r9.358624225078835 " +1# +#6290 +1! +r9.351506694930954 " +#6291 +0! +r9.344217374749736 " +0# +#6292 +1! +r9.336756552305042 " +#6293 +0! +r9.329124522137381 " +1# +#6294 +1! +r9.321321585546244 " +#6295 +0! +r9.313348050578186 " +0# +#6296 +1! +r9.305204232014738 " +#6297 +0! +r9.296890451359889 " +1# +#6298 +1! +r9.288407036827486 " +#6299 +0! +r9.279754323328188 " +0# +#6300 +1! +r9.270932652456327 " +#6301 +0! +r9.261942372476359 " +1# +#6302 +1! +r9.252783838309115 " +#6303 +0! +r9.243457411517889 " +0# +#6304 +1! +r9.23396346029401 " +#6305 +0! +r9.224302359442433 " +1# +#6306 +1! +r9.214474490366861 " +#6307 +0! +r9.204480241054744 " +0# +#6308 +1! +r9.194320006061947 " +#6309 +0! +r9.183994186497134 " +1# +#6310 +1! +r9.173503190005974 " +#6311 +0! +r9.162847430755054 " +0# +#6312 +1! +r9.152027329415516 " +#6313 +0! +r9.141043313146422 " +1# +#6314 +1! +r9.129895815577916 " +#6315 +0! +r9.118585276794137 " +0# +#6316 +1! +r9.107112143315751 " +#6317 +0! +r9.095476868082477 " +1# +#6318 +1! +r9.083679910435031 " +#6319 +0! +r9.071721736097086 " +0# +b01100010110000 $ +b011010110111010110010100100111 % +1' +#6320 +1! +r9.059602817156918 " +0' +#6321 +0! +r9.047323632048656 " +1# +#6322 +1! +r9.034884665533554 " +#6323 +0! +r9.022286408680689 " +0# +#6324 +1! +r9.009529358847651 " +#6325 +0! +r8.996614019660953 " +1# +#6326 +1! +r8.983540900996044 " +#6327 +0! +r8.970310518957294 " +0# +#6328 +1! +r8.956923395857501 " +#6329 +0! +r8.943380060197391 " +1# +#6330 +1! +r8.929681046644639 " +#6331 +0! +r8.915826896012858 " +0# +#6332 +1! +r8.901818155240205 " +#6333 +0! +r8.887655377367752 " +1# +#6334 +1! +r8.873339121517748 " +#6335 +0! +r8.85886995287143 " +0# +#6336 +1! +r8.844248442646816 " +#6337 +0! +r8.82947516807611 " +1# +#6338 +1! +r8.814550712382864 " +#6339 +0! +r8.799475664759067 " +0# +#6340 +1! +r8.784250620341751 " +#6341 +0! +r8.768876180189638 " +1# +#6342 +1! +r8.753352951259281 " +#6343 +0! +r8.737681546381159 " +0# +#6344 +1! +r8.721862584235524 " +#6345 +0! +r8.705896689327909 " +1# +#6346 +1! +r8.689784491964531 " +#6347 +0! +r8.673526628227334 " +0# +#6348 +1! +r8.657123739948922 " +#6349 +0! +r8.640576474687254 " +1# +#6350 +1! +r8.623885485700031 " +#6351 +0! +r8.607051431918936 " +0# +#6352 +1! +r8.590074977923571 " +#6353 +0! +r8.572956793915253 " +1# +#6354 +1! +r8.55569755569061 " +#6355 +0! +r8.538297944614781 " +0# +#6356 +1! +r8.520758647594654 " +#6357 +0! +r8.503080357051603 " +1# +#6358 +1! +r8.485263770894292 " +#6359 +0! +r8.467309592491052 " +0# +#6360 +1! +r8.449218530642066 " +#6361 +0! +r8.430991299551518 " +1# +#6362 +1! +r8.412628618799243 " +#6363 +0! +r8.394131213312452 " +0# +#6364 +1! +r8.375499813337063 " +#6365 +0! +r8.356735154408806 " +1# +#6366 +1! +r8.337837977324325 " +#6367 +0! +r8.318809028111771 " +0# +#6368 +1! +r8.299649058001521 " +#6369 +0! +r8.280358823396364 " +1# +#6370 +1! +r8.260939085841713 " +#6371 +0! +r8.241390611995596 " +0# +#6372 +1! +r8.221714173598246 " +#6373 +0! +r8.201910547441781 " +1# +#6374 +1! +r8.181980515339449 " +#6375 +0! +r8.16192486409482 " +0# +#6376 +1! +r8.141744385470638 " +#6377 +0! +r8.1214398761576 " +1# +#6378 +1! +r8.101012137743059 " +#6379 +0! +r8.080461976679079 " +0# +#6380 +1! +r8.059790204250879 " +#6381 +0! +r8.038997636544615 " +1# +#6382 +1! +r8.018085094415234 " +#6383 +0! +r7.997053403454141 " +0# +#6384 +1! +r7.975903393956431 " +#6385 +0! +r7.954635900888315 " +1# +#6386 +1! +r7.933251763853979 " +#6387 +0! +r7.911751827062488 " +0# +#6388 +1! +r7.890136939294632 " +#6389 +0! +r7.868407953869095 " +1# +#6390 +1! +r7.846565728609066 " +#6391 +0! +r7.824611125808122 " +0# +#6392 +1! +r7.802545012196489 " +#6393 +0! +r7.780368258906502 " +1# +#6394 +1! +r7.75808174143838 " +#6395 +0! +r7.735686339625724 " +0# +#6396 +1! +r7.7131829376006 " +#6397 +0! +r7.690572423758837 " +1# +#6398 +1! +r7.667855690724783 " +#6399 +0! +r7.645033635316135 " +0# +#6400 +1! +r7.622107158508612 " +#6401 +0! +r7.599077165400187 " +1# +#6402 +1! +r7.575944565175655 " +#6403 +0! +r7.552710271070415 " +0# +#6404 +1! +r7.529375200334588 " +#6405 +0! +r7.505940274196835 " +1# +#6406 +1! +r7.482406417827912 " +#6407 +0! +r7.458774560304202 " +0# +#6408 +1! +r7.43504563457092 " +#6409 +0! +r7.411220577405478 " +1# +#6410 +1! +r7.387300329380285 " +#6411 +0! +r7.363285834825827 " +0# +#6412 +1! +r7.339178041793204 " +#6413 +0! +r7.314977902016778 " +1# +#6414 +1! +r7.290686370876686 " +#6415 +0! +r7.266304407360927 " +0# +#6416 +1! +r7.2418329740277 " +#6417 +0! +r7.217273036967319 " +1# +#6418 +1! +r7.192625565763989 " +#6419 +0! +r7.167891533457728 " +0# +b01100100010100 $ +b10101001000011111001111000001011 % +1' +#6420 +1! +r7.143071916505722 " +0' +#6421 +0! +r7.118167694743981 " +1# +#6422 +1! +r7.093179851348562 " +#6423 +0! +r7.068109372796682 " +0# +#6424 +1! +r7.042957248827936 " +#6425 +0! +r7.017724472405135 " +1# +#6426 +1! +r6.992412039675063 " +#6427 +0! +r6.967020949929219 " +0# +#6428 +1! +r6.941552205564324 " +#6429 +0! +r6.916006812042824 " +1# +#6430 +1! +r6.890385777853112 " +#6431 +0! +r6.864690114469778 " +0# +#6432 +1! +r6.838920836313586 " +#6433 +0! +r6.813078960711485 " +1# +#6434 +1! +r6.787165507856503 " +#6435 +0! +r6.761181500767387 " +0# +#6436 +1! +r6.735127965248277 " +#6437 +0! +r6.709005929848114 " +1# +#6438 +1! +r6.682816425820098 " +#6439 +0! +r6.656560487081034 " +0# +#6440 +1! +r6.630239150170455 " +#6441 +0! +r6.603853454209644 " +1# +#6442 +1! +r6.577404440860668 " +#6443 +0! +r6.550893154285315 " +0# +#6444 +1! +r6.524320641103817 " +#6445 +0! +r6.497687950353432 " +1# +#6446 +1! +r6.47099613344725 " +#6447 +0! +r6.444246244132438 " +0# +#6448 +1! +r6.417439338448854 " +#6449 +0! +r6.390576474687263 " +1# +#6450 +1! +r6.363658713347468 " +#6451 +0! +r6.33668711709666 " +0# +#6452 +1! +r6.309662750727212 " +#6453 +0! +r6.282586681114868 " +1# +#6454 +1! +r6.255459977176524 " +#6455 +0! +r6.228283709827974 " +0# +#6456 +1! +r6.201058951941686 " +#6457 +0! +r6.173786778304517 " +1# +#6458 +1! +r6.146468265575219 " +#6459 +0! +r6.119104492241862 " +0# +#6460 +1! +r6.091696538579336 " +#6461 +0! +r6.064245486606781 " +1# +#6462 +1! +r6.036752420044632 " +#6463 +0! +r6.009218424272207 " +0# +#6464 +1! +r5.981644586284419 " +#6465 +0! +r5.954031994649242 " +1# +#6466 +1! +r5.926381739464447 " +#6467 +0! +r5.898694912314799 " +0# +#6468 +1! +r5.870972606228856 " +#6469 +0! +r5.843215915635763 " +1# +#6470 +1! +r5.815425936322137 " +#6471 +0! +r5.787603765388748 " +0# +#6472 +1! +r5.759750501207294 " +#6473 +0! +r5.731867243376985 " +1# +#6474 +1! +r5.703955092681034 " +#6475 +0! +r5.676015151043419 " +0# +#6476 +1! +r5.648048521485133 " +#6477 +0! +r5.620056308080856 " +1# +#6478 +1! +r5.592039615915273 " +#6479 +0! +r5.563999551039357 " +0# +#6480 +1! +r5.53593722042692 " +#6481 +0! +r5.507853731930659 " +1# +#6482 +1! +r5.479750194238647 " +#6483 +0! +r5.451627716830462 " +0# +#6484 +1! +r5.423487409933327 " +#6485 +0! +r5.395330384478343 " +1# +#6486 +1! +r5.367157752056693 " +#6487 +0! +r5.338970624875699 " +0# +#6488 +1! +r5.310770115714845 " +#6489 +0! +r5.282557337881916 " +1# +#6490 +1! +r5.254333405169102 " +#6491 +0! +r5.22609943180894 " +0# +#6492 +1! +r5.197856532430387 " +#6493 +0! +r5.169605822014718 " +1# +#6494 +1! +r5.141348415851576 " +#6495 +0! +r5.113085429495003 " +0# +#6496 +1! +r5.084817978719307 " +#6497 +0! +r5.056547179475074 " +1# +#6498 +1! +r5.02827414784502 " +#6499 +0! +r4.999999999999991 " +0# +#6500 +1! +r4.971725852154994 " +#6501 +0! +r4.943452820524908 " +1# +#6502 +1! +r4.915182021280676 " +#6503 +0! +r4.886914570504979 " +0# +#6504 +1! +r4.858651584148407 " +#6505 +0! +r4.830394177985296 " +1# +#6506 +1! +r4.802143467569596 " +#6507 +0! +r4.773900568191042 " +0# +#6508 +1! +r4.74566659483088 " +#6509 +0! +r4.717442662118066 " +1# +#6510 +1! +r4.689229884285169 " +#6511 +0! +r4.661029375124283 " +0# +#6512 +1! +r4.632842247943289 " +#6513 +0! +r4.604669615521671 " +1# +#6514 +1! +r4.576512590066687 " +#6515 +0! +r4.54837228316952 " +0# +#6516 +1! +r4.520249805761336 " +#6517 +0! +r4.492146268069355 " +1# +#6518 +1! +r4.464062779573063 " +#6519 +0! +r4.436000448960625 " +0# +b01100101111000 $ +b0110111010000011101011011101111 % +1' +#6520 +1! +r4.407960384084709 " +0' +#6521 +0! +r4.379943691919126 " +1# +#6522 +1! +r4.351951478514881 " +#6523 +0! +r4.323984848956563 " +0# +#6524 +1! +r4.296044907318948 " +#6525 +0! +r4.268132756622997 " +1# +#6526 +1! +r4.240249498792688 " +#6527 +0! +r4.212396234611266 " +0# +#6528 +1! +r4.184574063677876 " +#6529 +0! +r4.156784084364251 " +1# +#6530 +1! +r4.129027393771127 " +#6531 +0! +r4.101305087685184 " +0# +#6532 +1! +r4.073618260535504 " +#6533 +0! +r4.045968005350741 " +1# +#6534 +1! +r4.018355413715563 " +#6535 +0! +r3.990781575727776 " +0# +#6536 +1! +r3.96324757995535 " +#6537 +0! +r3.935754513393202 " +1# +#6538 +1! +r3.908303461420647 " +#6539 +0! +r3.880895507758151 " +0# +#6540 +1! +r3.853531734424764 " +#6541 +0! +r3.826213221695465 " +1# +#6542 +1! +r3.798941048058297 " +#6543 +0! +r3.771716290172041 " +0# +#6544 +1! +r3.74454002282349 " +#6545 +0! +r3.717413318885115 " +1# +#6546 +1! +r3.690337249272771 " +#6547 +0! +r3.663312882903324 " +0# +#6548 +1! +r3.636341286652515 " +#6549 +0! +r3.609423525312721 " +1# +#6550 +1! +r3.582560661551129 " +#6551 +0! +r3.555753755867545 " +0# +#6552 +1! +r3.529003866552733 " +#6553 +0! +r3.502312049646551 " +1# +#6554 +1! +r3.475679358896167 " +#6555 +0! +r3.449106845714668 " +0# +#6556 +1! +r3.422595559139345 " +#6557 +0! +r3.396146545790369 " +1# +#6558 +1! +r3.369760849829558 " +#6559 +0! +r3.34343951291895 " +0# +#6560 +1! +r3.317183574179915 " +#6561 +0! +r3.290994070151899 " +1# +#6562 +1! +r3.264872034751706 " +#6563 +0! +r3.238818499232596 " +0# +#6564 +1! +r3.212834492143481 " +#6565 +0! +r3.186921039288499 " +1# +#6566 +1! +r3.161079163686398 " +#6567 +0! +r3.135309885530206 " +0# +#6568 +1! +r3.109614222146872 " +#6569 +0! +r3.08399318795716 " +1# +#6570 +1! +r3.058447794435688 " +#6571 +0! +r3.032979050070793 " +0# +#6572 +1! +r3.00758796032495 " +#6573 +0! +r2.982275527594878 " +1# +#6574 +1! +r2.957042751172049 " +#6575 +0! +r2.931890627203302 " +0# +#6576 +1! +r2.906820148651422 " +#6577 +0! +r2.881832305256004 " +1# +#6578 +1! +r2.85692808349429 " +#6579 +0! +r2.832108466542257 " +0# +#6580 +1! +r2.807374434235996 " +#6581 +0! +r2.782726963032667 " +1# +#6582 +1! +r2.758167025972285 " +#6583 +0! +r2.733695592639058 " +0# +#6584 +1! +r2.709313629123327 " +#6585 +0! +r2.685022097983234 " +1# +#6586 +1! +r2.660821958206808 " +#6587 +0! +r2.636714165174185 " +0# +#6588 +1! +r2.6126996706197 " +#6589 +0! +r2.588779422594507 " +1# +#6590 +1! +r2.564954365429065 " +#6591 +0! +r2.541225439695784 " +0# +#6592 +1! +r2.517593582172073 " +#6593 +0! +r2.494059725803151 " +1# +#6594 +1! +r2.470624799665398 " +#6595 +0! +r2.447289728929596 " +0# +#6596 +1! +r2.42405543482433 " +#6597 +0! +r2.400922834599799 " +1# +#6598 +1! +r2.377892841491399 " +#6599 +0! +r2.354966364683877 " +0# +#6600 +1! +r2.332144309275228 " +#6601 +0! +r2.309427576241174 " +1# +#6602 +1! +r2.286817062399412 " +#6603 +0! +r2.264313660374262 " +0# +#6604 +1! +r2.241918258561606 " +#6605 +0! +r2.219631741093484 " +1# +#6606 +1! +r2.197454987803496 " +#6607 +0! +r2.175388874191865 " +0# +#6608 +1! +r2.153434271390921 " +#6609 +0! +r2.131592046130891 " +1# +#6610 +1! +r2.109863060705354 " +#6611 +0! +r2.088248172937498 " +0# +#6612 +1! +r2.066748236146032 " +#6613 +0! +r2.045364099111696 " +1# +#6614 +1! +r2.024096606043556 " +#6615 +0! +r2.002946596545871 " +0# +#6616 +1! +r1.981914905584775 " +#6617 +0! +r1.961002363455395 " +1# +#6618 +1! +r1.940209795749109 " +#6619 +0! +r1.919538023320909 " +0# +b01100111011100 $ +b1000101011101000000111111010011 % +1' +#6620 +1! +r1.898987862256929 " +0' +#6621 +0! +r1.878560123842388 " +1# +#6622 +1! +r1.85825561452935 " +#6623 +0! +r1.838075135905168 " +0# +#6624 +1! +r1.818019484660538 " +#6625 +0! +r1.798089452558208 " +1# +#6626 +1! +r1.778285826401742 " +#6627 +0! +r1.758609388004414 " +0# +#6628 +1! +r1.739060914158297 " +#6629 +0! +r1.719641176603646 " +1# +#6630 +1! +r1.700350941998489 " +#6631 +0! +r1.681190971888217 " +0# +#6632 +1! +r1.662162022675663 " +#6633 +0! +r1.643264845591183 " +1# +#6634 +1! +r1.624500186662946 " +#6635 +0! +r1.605868786687537 " +0# +#6636 +1! +r1.587371381200747 " +#6637 +0! +r1.569008700448471 " +1# +#6638 +1! +r1.550781469357923 " +#6639 +0! +r1.532690407508937 " +0# +#6640 +1! +r1.514736229105697 " +#6641 +0! +r1.496919642948385 " +1# +#6642 +1! +r1.479241352405356 " +#6643 +0! +r1.461702055385208 " +0# +#6644 +1! +r1.444302444309397 " +#6645 +0! +r1.427043206084736 " +1# +#6646 +1! +r1.409925022076437 " +#6647 +0! +r1.392948568081053 " +0# +#6648 +1! +r1.376114514299959 " +#6649 +0! +r1.359423525312736 " +1# +#6650 +1! +r1.342876260051069 " +#6651 +0! +r1.326473371772674 " +0# +#6652 +1! +r1.310215508035458 " +#6653 +0! +r1.29410331067208 " +1# +#6654 +1! +r1.278137415764467 " +#6655 +0! +r1.262318453618831 " +0# +#6656 +1! +r1.246647048740727 " +#6657 +0! +r1.231123819810352 " +1# +#6658 +1! +r1.215749379658239 " +#6659 +0! +r1.200524335240924 " +0# +#6660 +1! +r1.185449287617127 " +#6661 +0! +r1.170524831923881 " +1# +#6662 +1! +r1.155751557353175 " +#6663 +0! +r1.141130047128577 " +0# +#6664 +1! +r1.126660878482242 " +#6665 +0! +r1.112344622632239 " +1# +#6666 +1! +r1.098181844759786 " +#6667 +0! +r1.084173103987134 " +0# +#6668 +1! +r1.070318953355367 " +#6669 +0! +r1.0566199398026 " +1# +#6670 +1! +r1.043076604142492 " +#6671 +0! +r1.029689481042713 " +0# +#6672 +1! +r1.016459099003948 " +#6673 +0! +r1.003385980339054 " +1# +#6674 +1! +r0.9904706411523421 " +#6675 +0! +r0.9777135913193193 " +0# +#6676 +1! +r0.9651153344664376 " +#6677 +0! +r0.9526763679513373 " +1# +#6678 +1! +r0.9403971828430748 " +#6679 +0! +r0.9282782639029072 " +0# +#6680 +1! +r0.9163200895649766 " +#6681 +0! +r0.9045231319175162 " +1# +#6682 +1! +r0.8928878566842409 " +#6683 +0! +r0.8814147232058565 " +0# +#6684 +1! +r0.8701041844220772 " +#6685 +0! +r0.858956686853583 " +1# +#6686 +1! +r0.8479726705844772 " +#6687 +0! +r0.8371525692449397 " +0# +#6688 +1! +r0.82649680999402 " +#6689 +0! +r0.8160058135028709 " +1# +#6690 +1! +r0.8056799939380479 " +#6691 +0! +r0.7955197589452485 " +0# +#6692 +1! +r0.7855255096331328 " +#6693 +0! +r0.77569764055756 " +1# +#6694 +1! +r0.7660365397059845 " +#6695 +0! +r0.7565425884821044 " +0# +#6696 +1! +r0.7472161616908792 " +#6697 +0! +r0.7380576275236468 " +1# +#6698 +1! +r0.7290673475436655 " +#6699 +0! +r0.7202456766718059 " +0# +#6700 +1! +r0.7115929631725084 " +#6701 +0! +r0.7031095486401053 " +1# +#6702 +1! +r0.6947957679852665 " +#6703 +0! +r0.6866519494218082 " +0# +#6704 +1! +r0.6786784144537608 " +#6705 +0! +r0.670875477862614 " +1# +#6706 +1! +r0.6632434476949527 " +#6707 +0! +r0.6557826252502608 " +0# +#6708 +1! +r0.6484933050690405 " +#6709 +0! +r0.6413757749211619 " +1# +#6710 +1! +r0.6344303157945221 " +#6711 +0! +r0.627657201883963 " +0# +#6712 +1! +r0.6210567005804224 " +#6713 +0! +r0.6146290724603993 " +1# +#6714 +1! +r0.608374571275637 " +#6715 +0! +r0.6022934439431271 " +0# +#6716 +1! +r0.5963859305353765 " +#6717 +0! +r0.5906522642708874 " +1# +#6718 +1! +r0.5850926715049978 " +#6719 +0! +r0.5797073717209056 " +0# +b01101001000000 $ +b01010011101001100100100010110111 % +1' +#6720 +1! +r0.5744965775210131 " +0' +#6721 +0! +r0.5694604946185757 " +1# +#6722 +1! +r0.5645993218295065 " +#6723 +0! +r0.5599132510645939 " +0# +#6724 +1! +r0.555402467321878 " +#6725 +0! +r0.5510671486793823 " +1# +#6726 +1! +r0.5469074662880695 " +#6727 +0! +r0.5429235843650666 " +0# +#6728 +1! +r0.5391156601872202 " +#6729 +0! +r0.5354838440848475 " +1# +#6730 +1! +r0.5320282794358384 " +#6731 +0! +r0.5287491026599636 " +0# +#6732 +1! +r0.5256464432135051 " +#6733 +0! +r0.5227204235841514 " +1# +#6734 +1! +r0.5199711592861407 " +#6735 +0! +r0.5173987588557232 " +0# +#6736 +1! +r0.5150033238468659 " +#6737 +0! +r0.5127849488272371 " +1# +#6738 +1! +r0.5107437213744879 " +#6739 +0! +r0.5088797220727761 " +0# +#6740 +1! +r0.5071930245096112 " +#6741 +0! +r0.5056836952729196 " +1# +#6742 +1! +r0.5043517939484383 " +#6743 +0! +r0.5031973731173487 " +0# +#6744 +1! +r0.5022204783542081 " +#6745 +0! +r0.50142114822515 " +1# +#6746 +1! +r0.5007994142863588 " +#6747 +0! +r0.5003553010828279 " +0# +#6748 +1! +r0.5000888261473833 " +#6749 +0! +r0.5 " +1# +#6750 +1! +r0.5000888261473833 " +#6751 +0! +r0.5003553010828279 " +0# +#6752 +1! +r0.5007994142863588 " +#6753 +0! +r0.50142114822515 " +1# +#6754 +1! +r0.502220478354209 " +#6755 +0! +r0.5031973731173487 " +0# +#6756 +1! +r0.5043517939484401 " +#6757 +0! +r0.5056836952729213 " +1# +#6758 +1! +r0.507193024509613 " +#6759 +0! +r0.5088797220727779 " +0# +#6760 +1! +r0.5107437213744852 " +#6761 +0! +r0.5127849488272371 " +1# +#6762 +1! +r0.5150033238468632 " +#6763 +0! +r0.5173987588557258 " +0# +#6764 +1! +r0.5199711592861407 " +#6765 +0! +r0.5227204235841478 " +1# +#6766 +1! +r0.5256464432135051 " +#6767 +0! +r0.5287491026599644 " +0# +#6768 +1! +r0.532028279435842 " +#6769 +0! +r0.5354838440848519 " +1# +#6770 +1! +r0.5391156601872202 " +#6771 +0! +r0.542923584365071 " +0# +#6772 +1! +r0.546907466288074 " +#6773 +0! +r0.5510671486793877 " +1# +#6774 +1! +r0.5554024673218789 " +#6775 +0! +r0.5599132510645948 " +0# +#6776 +1! +r0.5645993218295065 " +#6777 +0! +r0.5694604946185757 " +1# +#6778 +1! +r0.5744965775210185 " +#6779 +0! +r0.5797073717209003 " +0# +#6780 +1! +r0.5850926715049987 " +#6781 +0! +r0.5906522642708874 " +1# +#6782 +1! +r0.5963859305353765 " +#6783 +0! +r0.6022934439431342 " +0# +#6784 +1! +r0.6083745712756379 " +#6785 +0! +r0.6146290724604064 " +1# +#6786 +1! +r0.6210567005804375 " +#6787 +0! +r0.627657201883971 " +0# +#6788 +1! +r0.634430315794523 " +#6789 +0! +r0.6413757749211548 " +1# +#6790 +1! +r0.6484933050690405 " +#6791 +0! +r0.6557826252502688 " +0# +#6792 +1! +r0.6632434476949536 " +#6793 +0! +r0.670875477862614 " +1# +#6794 +1! +r0.6786784144537519 " +#6795 +0! +r0.6866519494218082 " +0# +#6796 +1! +r0.6947957679852674 " +#6797 +0! +r0.7031095486401151 " +1# +#6798 +1! +r0.7115929631725191 " +#6799 +0! +r0.7202456766718068 " +0# +#6800 +1! +r0.7290673475436762 " +#6801 +0! +r0.7380576275236574 " +1# +#6802 +1! +r0.7472161616908792 " +#6803 +0! +r0.7565425884821053 " +0# +#6804 +1! +r0.7660365397059854 " +#6805 +0! +r0.7756976405575715 " +1# +#6806 +1! +r0.7855255096331328 " +#6807 +0! +r0.7955197589452494 " +0# +#6808 +1! +r0.8056799939380479 " +#6809 +0! +r0.8160058135028594 " +1# +#6810 +1! +r0.8264968099940315 " +#6811 +0! +r0.8371525692449406 " +0# +#6812 +1! +r0.8479726705844897 " +#6813 +0! +r0.858956686853583 " +1# +#6814 +1! +r0.8701041844220905 " +#6815 +0! +r0.8814147232058822 " +0# +#6816 +1! +r0.8928878566842418 " +#6817 +0! +r0.9045231319175162 " +1# +#6818 +1! +r0.9163200895649766 " +#6819 +0! +r0.9282782639029215 " +0# +b01101010100100 $ +b100001110110001000000110011011 % +1' +#6820 +1! +r0.940397182843089 " +0' +#6821 +0! +r0.9526763679513239 " +1# +#6822 +1! +r0.9651153344664385 " +#6823 +0! +r0.9777135913193051 " +0# +#6824 +1! +r0.9904706411523572 " +#6825 +0! +r1.003385980339054 " +1# +#6826 +1! +r1.016459099003948 " +#6827 +0! +r1.029689481042714 " +0# +#6828 +1! +r1.043076604142492 " +#6829 +0! +r1.056619939802616 " +1# +#6830 +1! +r1.070318953355368 " +#6831 +0! +r1.084173103987134 " +0# +#6832 +1! +r1.098181844759786 " +#6833 +0! +r1.112344622632239 " +1# +#6834 +1! +r1.126660878482259 " +#6835 +0! +r1.141130047128561 " +0# +#6836 +1! +r1.155751557353175 " +#6837 +0! +r1.170524831923881 " +1# +#6838 +1! +r1.185449287617128 " +#6839 +0! +r1.200524335240942 " +0# +#6840 +1! +r1.215749379658239 " +#6841 +0! +r1.23112381981037 " +1# +#6842 +1! +r1.246647048740728 " +#6843 +0! +r1.26231845361885 " +0# +#6844 +1! +r1.278137415764486 " +#6845 +0! +r1.294103310672081 " +1# +#6846 +1! +r1.310215508035459 " +#6847 +0! +r1.326473371772674 " +0# +#6848 +1! +r1.342876260051088 " +#6849 +0! +r1.359423525312737 " +1# +#6850 +1! +r1.376114514299941 " +#6851 +0! +r1.392948568081054 " +0# +#6852 +1! +r1.409925022076437 " +#6853 +0! +r1.427043206084756 " +1# +#6854 +1! +r1.444302444309398 " +#6855 +0! +r1.461702055385209 " +0# +#6856 +1! +r1.479241352405356 " +#6857 +0! +r1.496919642948406 " +1# +#6858 +1! +r1.514736229105718 " +#6859 +0! +r1.532690407508958 " +0# +#6860 +1! +r1.550781469357924 " +#6861 +0! +r1.569008700448471 " +1# +#6862 +1! +r1.587371381200747 " +#6863 +0! +r1.605868786687538 " +0# +#6864 +1! +r1.624500186662925 " +#6865 +0! +r1.643264845591183 " +1# +#6866 +1! +r1.662162022675686 " +#6867 +0! +r1.681190971888218 " +0# +#6868 +1! +r1.70035094199849 " +#6869 +0! +r1.719641176603646 " +1# +#6870 +1! +r1.739060914158298 " +#6871 +0! +r1.758609388004437 " +0# +#6872 +1! +r1.778285826401766 " +#6873 +0! +r1.798089452558231 " +1# +#6874 +1! +r1.818019484660539 " +#6875 +0! +r1.838075135905169 " +0# +#6876 +1! +r1.858255614529374 " +#6877 +0! +r1.878560123842365 " +1# +#6878 +1! +r1.89898786225693 " +#6879 +0! +r1.919538023320886 " +0# +#6880 +1! +r1.940209795749133 " +#6881 +0! +r1.961002363455396 " +1# +#6882 +1! +r1.981914905584777 " +#6883 +0! +r2.002946596545871 " +0# +#6884 +1! +r2.024096606043557 " +#6885 +0! +r2.045364099111721 " +1# +#6886 +1! +r2.066748236146057 " +#6887 +0! +r2.088248172937523 " +0# +#6888 +1! +r2.109863060705379 " +#6889 +0! +r2.131592046130891 " +1# +#6890 +1! +r2.153434271390946 " +#6891 +0! +r2.175388874191841 " +0# +#6892 +1! +r2.197454987803497 " +#6893 +0! +r2.219631741093485 " +1# +#6894 +1! +r2.241918258561607 " +#6895 +0! +r2.264313660374288 " +0# +#6896 +1! +r2.286817062399387 " +#6897 +0! +r2.309427576241175 " +1# +#6898 +1! +r2.332144309275229 " +#6899 +0! +r2.354966364683903 " +0# +#6900 +1! +r2.377892841491426 " +#6901 +0! +r2.400922834599799 " +1# +#6902 +1! +r2.424055434824357 " +#6903 +0! +r2.447289728929597 " +0# +#6904 +1! +r2.470624799665425 " +#6905 +0! +r2.494059725803152 " +1# +#6906 +1! +r2.517593582172047 " +#6907 +0! +r2.541225439695785 " +0# +#6908 +1! +r2.564954365429066 " +#6909 +0! +r2.588779422594535 " +1# +#6910 +1! +r2.612699670619701 " +#6911 +0! +r2.636714165174158 " +0# +#6912 +1! +r2.660821958206808 " +#6913 +0! +r2.685022097983234 " +1# +#6914 +1! +r2.709313629123355 " +#6915 +0! +r2.733695592639087 " +0# +#6916 +1! +r2.758167025972286 " +#6917 +0! +r2.782726963032696 " +1# +#6918 +1! +r2.807374434235997 " +#6919 +0! +r2.832108466542286 " +0# +b01101100001000 $ +b01110000000010101011101001111111 % +1' +#6920 +1! +r2.856928083494263 " +0' +#6921 +0! +r2.881832305256005 " +1# +#6922 +1! +r2.906820148651423 " +#6923 +0! +r2.931890627203303 " +0# +#6924 +1! +r2.95704275117205 " +#6925 +0! +r2.98227552759485 " +1# +#6926 +1! +r3.007587960324951 " +#6927 +0! +r3.032979050070823 " +0# +#6928 +1! +r3.058447794435689 " +#6929 +0! +r3.083993187957191 " +1# +#6930 +1! +r3.109614222146873 " +#6931 +0! +r3.135309885530236 " +0# +#6932 +1! +r3.161079163686428 " +#6933 +0! +r3.18692103928853 " +1# +#6934 +1! +r3.212834492143482 " +#6935 +0! +r3.238818499232568 " +0# +#6936 +1! +r3.264872034751707 " +#6937 +0! +r3.2909940701519 " +1# +#6938 +1! +r3.317183574179916 " +#6939 +0! +r3.343439512918951 " +0# +#6940 +1! +r3.36976084982953 " +#6941 +0! +r3.3961465457904 " +1# +#6942 +1! +r3.422595559139347 " +#6943 +0! +r3.449106845714699 " +0# +#6944 +1! +r3.475679358896198 " +#6945 +0! +r3.502312049646552 " +1# +#6946 +1! +r3.529003866552764 " +#6947 +0! +r3.555753755867546 " +0# +#6948 +1! +r3.58256066155113 " +#6949 +0! +r3.609423525312722 " +1# +#6950 +1! +r3.636341286652486 " +#6951 +0! +r3.663312882903355 " +0# +#6952 +1! +r3.690337249272772 " +#6953 +0! +r3.717413318885116 " +1# +#6954 +1! +r3.74454002282346 " +#6955 +0! +r3.771716290172042 " +0# +#6956 +1! +r3.798941048058329 " +#6957 +0! +r3.826213221695466 " +1# +#6958 +1! +r3.853531734424796 " +#6959 +0! +r3.880895507758152 " +0# +#6960 +1! +r3.908303461420679 " +#6961 +0! +r3.935754513393234 " +1# +#6962 +1! +r3.963247579955351 " +#6963 +0! +r3.990781575727777 " +0# +#6964 +1! +r4.018355413715533 " +#6965 +0! +r4.045968005350774 " +1# +#6966 +1! +r4.073618260535536 " +#6967 +0! +r4.101305087685153 " +0# +#6968 +1! +r4.129027393771127 " +#6969 +0! +r4.156784084364221 " +1# +#6970 +1! +r4.184574063677909 " +#6971 +0! +r4.212396234611267 " +0# +#6972 +1! +r4.240249498792721 " +#6973 +0! +r4.26813275662303 " +1# +#6974 +1! +r4.296044907318981 " +#6975 +0! +r4.323984848956596 " +0# +#6976 +1! +r4.351951478514882 " +#6977 +0! +r4.379943691919128 " +1# +#6978 +1! +r4.40796038408471 " +#6979 +0! +r4.436000448960627 " +0# +#6980 +1! +r4.464062779573096 " +#6981 +0! +r4.492146268069325 " +1# +#6982 +1! +r4.520249805761337 " +#6983 +0! +r4.548372283169521 " +0# +#6984 +1! +r4.576512590066688 " +#6985 +0! +r4.604669615521672 " +1# +#6986 +1! +r4.63284224794329 " +#6987 +0! +r4.661029375124317 " +0# +#6988 +1! +r4.689229884285202 " +#6989 +0! +r4.7174426621181 " +1# +#6990 +1! +r4.745666594830881 " +#6991 +0! +r4.773900568191043 " +0# +#6992 +1! +r4.802143467569596 " +#6993 +0! +r4.830394177985298 " +1# +#6994 +1! +r4.85865158414844 " +#6995 +0! +r4.886914570504981 " +0# +#6996 +1! +r4.915182021280645 " +#6997 +0! +r4.943452820524909 " +1# +#6998 +1! +r4.971725852154995 " +#6999 +0! +r5.000000000000024 " +0# +#7000 +1! +r5.028274147845022 " +#7001 +0! +r5.056547179475076 " +1# +#7002 +1! +r5.084817978719339 " +#7003 +0! +r5.113085429495036 " +0# +#7004 +1! +r5.141348415851577 " +#7005 +0! +r5.169605822014719 " +1# +#7006 +1! +r5.197856532430388 " +#7007 +0! +r5.226099431808973 " +0# +#7008 +1! +r5.254333405169103 " +#7009 +0! +r5.282557337881917 " +1# +#7010 +1! +r5.310770115714815 " +#7011 +0! +r5.3389706248757 " +0# +#7012 +1! +r5.367157752056726 " +#7013 +0! +r5.395330384478344 " +1# +#7014 +1! +r5.423487409933328 " +#7015 +0! +r5.451627716830463 " +0# +#7016 +1! +r5.479750194238679 " +#7017 +0! +r5.507853731930692 " +1# +#7018 +1! +r5.535937220426921 " +#7019 +0! +r5.56399955103939 " +0# +b01101101101100 $ +b10001111001111001101100011 % +1' +#7020 +1! +r5.592039615915274 " +0' +#7021 +0! +r5.620056308080889 " +1# +#7022 +1! +r5.648048521485134 " +#7023 +0! +r5.676015151043421 " +0# +#7024 +1! +r5.703955092681035 " +#7025 +0! +r5.731867243376955 " +1# +#7026 +1! +r5.759750501207327 " +#7027 +0! +r5.787603765388749 " +0# +#7028 +1! +r5.815425936322139 " +#7029 +0! +r5.843215915635764 " +1# +#7030 +1! +r5.870972606228857 " +#7031 +0! +r5.898694912314863 " +0# +#7032 +1! +r5.92638173946448 " +#7033 +0! +r5.954031994649243 " +1# +#7034 +1! +r5.981644586284452 " +#7035 +0! +r6.009218424272208 " +0# +#7036 +1! +r6.036752420044665 " +#7037 +0! +r6.064245486606751 " +1# +#7038 +1! +r6.091696538579336 " +#7039 +0! +r6.119104492241833 " +0# +#7040 +1! +r6.146468265575251 " +#7041 +0! +r6.173786778304549 " +1# +#7042 +1! +r6.201058951941687 " +#7043 +0! +r6.228283709827974 " +0# +#7044 +1! +r6.255459977176525 " +#7045 +0! +r6.28258668111493 " +1# +#7046 +1! +r6.309662750727244 " +#7047 +0! +r6.336687117096661 " +0# +#7048 +1! +r6.3636587133475 " +#7049 +0! +r6.390576474687263 " +1# +#7050 +1! +r6.417439338448885 " +#7051 +0! +r6.44424624413244 " +0# +#7052 +1! +r6.470996133447221 " +#7053 +0! +r6.497687950353433 " +1# +#7054 +1! +r6.524320641103818 " +#7055 +0! +r6.550893154285347 " +0# +#7056 +1! +r6.577404440860669 " +#7057 +0! +r6.603853454209615 " +1# +#7058 +1! +r6.630239150170456 " +#7059 +0! +r6.656560487081064 " +0# +#7060 +1! +r6.682816425820128 " +#7061 +0! +r6.709005929848115 " +1# +#7062 +1! +r6.735127965248308 " +#7063 +0! +r6.761181500767417 " +0# +#7064 +1! +r6.787165507856503 " +#7065 +0! +r6.813078960711485 " +1# +#7066 +1! +r6.838920836313559 " +#7067 +0! +r6.864690114469779 " +0# +#7068 +1! +r6.890385777853142 " +#7069 +0! +r6.916006812042824 " +1# +#7070 +1! +r6.941552205564325 " +#7071 +0! +r6.967020949929192 " +0# +#7072 +1! +r6.992412039675064 " +#7073 +0! +r7.017724472405165 " +1# +#7074 +1! +r7.042957248827964 " +#7075 +0! +r7.068109372796711 " +0# +#7076 +1! +r7.093179851348563 " +#7077 +0! +r7.11816769474401 " +1# +#7078 +1! +r7.143071916505724 " +#7079 +0! +r7.167891533457729 " +0# +#7080 +1! +r7.19262556576399 " +#7081 +0! +r7.217273036967291 " +1# +#7082 +1! +r7.2418329740277 " +#7083 +0! +r7.266304407360927 " +0# +#7084 +1! +r7.290686370876687 " +#7085 +0! +r7.31497790201678 " +1# +#7086 +1! +r7.339178041793178 " +#7087 +0! +r7.363285834825856 " +0# +#7088 +1! +r7.387300329380313 " +#7089 +0! +r7.411220577405507 " +1# +#7090 +1! +r7.435045634570947 " +#7091 +0! +r7.458774560304203 " +0# +#7092 +1! +r7.48240641782794 " +#7093 +0! +r7.505940274196835 " +1# +#7094 +1! +r7.529375200334589 " +#7095 +0! +r7.55271027107039 " +0# +#7096 +1! +r7.575944565175657 " +#7097 +0! +r7.599077165400214 " +1# +#7098 +1! +r7.622107158508587 " +#7099 +0! +r7.645033635316135 " +0# +#7100 +1! +r7.667855690724759 " +#7101 +0! +r7.690572423758864 " +1# +#7102 +1! +r7.713182937600626 " +#7103 +0! +r7.735686339625725 " +0# +#7104 +1! +r7.758081741438406 " +#7105 +0! +r7.780368258906503 " +1# +#7106 +1! +r7.802545012196516 " +#7107 +0! +r7.824611125808147 " +0# +#7108 +1! +r7.846565728609042 " +#7109 +0! +r7.868407953869097 " +1# +#7110 +1! +r7.890136939294608 " +#7111 +0! +r7.911751827062514 " +0# +#7112 +1! +r7.933251763853955 " +#7113 +0! +r7.954635900888316 " +1# +#7114 +1! +r7.975903393956432 " +#7115 +0! +r7.997053403454141 " +0# +#7116 +1! +r8.018085094415259 " +#7117 +0! +r8.038997636544616 " +1# +#7118 +1! +r8.059790204250902 " +#7119 +0! +r8.080461976679103 " +0# +b01101111010000 $ +b10001100011011110010110001000111 % +1' +#7120 +1! +r8.101012137743082 " +0' +#7121 +0! +r8.121439876157623 " +1# +#7122 +1! +r8.141744385470616 " +#7123 +0! +r8.16192486409482 " +0# +#7124 +1! +r8.18198051533945 " +#7125 +0! +r8.201910547441781 " +1# +#7126 +1! +r8.221714173598247 " +#7127 +0! +r8.241390611995575 " +0# +#7128 +1! +r8.260939085841713 " +#7129 +0! +r8.280358823396366 " +1# +#7130 +1! +r8.299649058001542 " +#7131 +0! +r8.318809028111794 " +0# +#7132 +1! +r8.337837977324325 " +#7133 +0! +r8.356735154408828 " +1# +#7134 +1! +r8.375499813337086 " +#7135 +0! +r8.394131213312473 " +0# +#7136 +1! +r8.412628618799243 " +#7137 +0! +r8.430991299551518 " +1# +#7138 +1! +r8.449218530642067 " +#7139 +0! +r8.467309592491052 " +0# +#7140 +1! +r8.485263770894312 " +#7141 +0! +r8.503080357051605 " +1# +#7142 +1! +r8.520758647594635 " +#7143 +0! +r8.538297944614781 " +0# +#7144 +1! +r8.555697555690612 " +#7145 +0! +r8.572956793915273 " +1# +#7146 +1! +r8.590074977923573 " +#7147 +0! +r8.607051431918956 " +0# +#7148 +1! +r8.62388548570005 " +#7149 +0! +r8.640576474687272 " +1# +#7150 +1! +r8.657123739948922 " +#7151 +0! +r8.673526628227316 " +0# +#7152 +1! +r8.689784491964533 " +#7153 +0! +r8.705896689327929 " +1# +#7154 +1! +r8.721862584235524 " +#7155 +0! +r8.737681546381161 " +0# +#7156 +1! +r8.753352951259263 " +#7157 +0! +r8.76887618018964 " +1# +#7158 +1! +r8.784250620341769 " +#7159 +0! +r8.799475664759067 " +0# +#7160 +1! +r8.814550712382882 " +#7161 +0! +r8.829475168076112 " +1# +#7162 +1! +r8.844248442646833 " +#7163 +0! +r8.858869952871448 " +0# +#7164 +1! +r8.873339121517748 " +#7165 +0! +r8.887655377367754 " +1# +#7166 +1! +r8.901818155240207 " +#7167 +0! +r8.915826896012874 " +0# +#7168 +1! +r8.929681046644641 " +#7169 +0! +r8.943380060197391 " +1# +#7170 +1! +r8.956923395857501 " +#7171 +0! +r8.97031051895728 " +0# +#7172 +1! +r8.98354090099606 " +#7173 +0! +r8.996614019660953 " +1# +#7174 +1! +r9.009529358847665 " +#7175 +0! +r9.022286408680689 " +0# +#7176 +1! +r9.034884665533568 " +#7177 +0! +r9.047323632048684 " +1# +#7178 +1! +r9.059602817156918 " +#7179 +0! +r9.071721736097086 " +0# +#7180 +1! +r9.083679910435016 " +#7181 +0! +r9.095476868082491 " +1# +#7182 +1! +r9.107112143315765 " +#7183 +0! +r9.118585276794125 " +0# +#7184 +1! +r9.129895815577916 " +#7185 +0! +r9.141043313146412 " +1# +#7186 +1! +r9.152027329415528 " +#7187 +0! +r9.162847430755066 " +0# +#7188 +1! +r9.173503190005974 " +#7189 +0! +r9.183994186497134 " +1# +#7190 +1! +r9.194320006061947 " +#7191 +0! +r9.204480241054757 " +0# +#7192 +1! +r9.214474490366872 " +#7193 +0! +r9.224302359442435 " +1# +#7194 +1! +r9.23396346029401 " +#7195 +0! +r9.243457411517891 " +0# +#7196 +1! +r9.252783838309126 " +#7197 +0! +r9.261942372476348 " +1# +#7198 +1! +r9.270932652456329 " +#7199 +0! +r9.279754323328188 " +0# +#7200 +1! +r9.288407036827486 " +#7201 +0! +r9.2968904513599 " +1# +#7202 +1! +r9.305204232014738 " +#7203 +0! +r9.313348050578195 " +0# +#7204 +1! +r9.321321585546244 " +#7205 +0! +r9.329124522137391 " +1# +#7206 +1! +r9.336756552305051 " +#7207 +0! +r9.344217374749736 " +0# +#7208 +1! +r9.351506694930956 " +#7209 +0! +r9.358624225078842 " +1# +#7210 +1! +r9.365569684205473 " +#7211 +0! +r9.372342798116033 " +0# +#7212 +1! +r9.378943299419566 " +#7213 +0! +r9.385370927539597 " +1# +#7214 +1! +r9.391625428724367 " +#7215 +0! +r9.397706556056869 " +0# +#7216 +1! +r9.403614069464627 " +#7217 +0! +r9.40934773572911 " +1# +#7218 +1! +r9.414907328495005 " +#7219 +0! +r9.420292628279103 " +0# +b01110000110100 $ +b011010101000010110010100101011 % +1' +#7220 +1! +r9.42550342247899 " +0' +#7221 +0! +r9.430539505381429 " +1# +#7222 +1! +r9.435400678170492 " +#7223 +0! +r9.440086748935403 " +0# +#7224 +1! +r9.44459753267812 " +#7225 +0! +r9.448932851320615 " +1# +#7226 +1! +r9.453092533711928 " +#7227 +0! +r9.457076415634926 " +0# +#7228 +1! +r9.460884339812782 " +#7229 +0! +r9.464516155915151 " +1# +#7230 +1! +r9.467971720564163 " +#7231 +0! +r9.471250897340038 " +0# +#7232 +1! +r9.474353556786493 " +#7233 +0! +r9.477279576415853 " +1# +#7234 +1! +r9.48002884071386 " +#7235 +0! +r9.482601241144279 " +0# +#7236 +1! +r9.484996676153134 " +#7237 +0! +r9.487215051172761 " +1# +#7238 +1! +r9.489256278625515 " +#7239 +0! +r9.491120277927221 " +0# +#7240 +1! +r9.492806975490389 " +#7241 +0! +r9.494316304727079 " +1# +#7242 +1! +r9.495648206051563 " +#7243 +0! +r9.496802626882651 " +0# +#7244 +1! +r9.497779521645793 " +#7245 +0! +r9.49857885177485 " +1# +#7246 +1! +r9.499200585713641 " +#7247 +0! +r9.499644698917173 " +0# +#7248 +1! +r9.499911173852617 " +#7249 +0! +r9.5 " +1# +#7250 +1! +r9.499911173852617 " +#7251 +0! +r9.499644698917173 " +0# +#7252 +1! +r9.499200585713641 " +#7253 +0! +r9.49857885177485 " +1# +#7254 +1! +r9.497779521645793 " +#7255 +0! +r9.496802626882651 " +0# +#7256 +1! +r9.495648206051561 " +#7257 +0! +r9.494316304727079 " +1# +#7258 +1! +r9.492806975490389 " +#7259 +0! +r9.491120277927221 " +0# +#7260 +1! +r9.489256278625515 " +#7261 +0! +r9.487215051172761 " +1# +#7262 +1! +r9.484996676153132 " +#7263 +0! +r9.482601241144275 " +0# +#7264 +1! +r9.480028840713858 " +#7265 +0! +r9.47727957641585 " +1# +#7266 +1! +r9.474353556786497 " +#7267 +0! +r9.471250897340038 " +0# +#7268 +1! +r9.467971720564163 " +#7269 +0! +r9.464516155915151 " +1# +#7270 +1! +r9.460884339812782 " +#7271 +0! +r9.457076415634926 " +0# +#7272 +1! +r9.453092533711928 " +#7273 +0! +r9.448932851320615 " +1# +#7274 +1! +r9.44459753267812 " +#7275 +0! +r9.440086748935403 " +0# +#7276 +1! +r9.435400678170485 " +#7277 +0! +r9.430539505381422 " +1# +#7278 +1! +r9.425503422478984 " +#7279 +0! +r9.420292628279096 " +0# +#7280 +1! +r9.414907328495005 " +#7281 +0! +r9.40934773572911 " +1# +#7282 +1! +r9.403614069464627 " +#7283 +0! +r9.397706556056876 " +0# +#7284 +1! +r9.391625428724367 " +#7285 +0! +r9.385370927539597 " +1# +#7286 +1! +r9.378943299419566 " +#7287 +0! +r9.372342798116033 " +0# +#7288 +1! +r9.365569684205473 " +#7289 +0! +r9.358624225078835 " +1# +#7290 +1! +r9.351506694930956 " +#7291 +0! +r9.344217374749727 " +0# +#7292 +1! +r9.336756552305044 " +#7293 +0! +r9.329124522137381 " +1# +#7294 +1! +r9.321321585546244 " +#7295 +0! +r9.313348050578188 " +0# +#7296 +1! +r9.305204232014738 " +#7297 +0! +r9.2968904513599 " +1# +#7298 +1! +r9.288407036827486 " +#7299 +0! +r9.279754323328188 " +0# +#7300 +1! +r9.270932652456329 " +#7301 +0! +r9.261942372476348 " +1# +#7302 +1! +r9.252783838309126 " +#7303 +0! +r9.243457411517891 " +0# +#7304 +1! +r9.23396346029401 " +#7305 +0! +r9.224302359442422 " +1# +#7306 +1! +r9.214474490366861 " +#7307 +0! +r9.204480241054757 " +0# +#7308 +1! +r9.194320006061947 " +#7309 +0! +r9.183994186497134 " +1# +#7310 +1! +r9.173503190005974 " +#7311 +0! +r9.162847430755066 " +0# +#7312 +1! +r9.152027329415528 " +#7313 +0! +r9.141043313146412 " +1# +#7314 +1! +r9.129895815577916 " +#7315 +0! +r9.118585276794125 " +0# +#7316 +1! +r9.107112143315765 " +#7317 +0! +r9.095476868082477 " +1# +#7318 +1! +r9.083679910435016 " +#7319 +0! +r9.071721736097086 " +0# +b01110010011000 $ +b10101000110100111001111000001111 % +1' +#7320 +1! +r9.059602817156904 " +0' +#7321 +0! +r9.04732363204867 " +1# +#7322 +1! +r9.034884665533554 " +#7323 +0! +r9.022286408680689 " +0# +#7324 +1! +r9.009529358847651 " +#7325 +0! +r8.996614019660953 " +1# +#7326 +1! +r8.98354090099606 " +#7327 +0! +r8.97031051895728 " +0# +#7328 +1! +r8.956923395857501 " +#7329 +0! +r8.943380060197391 " +1# +#7330 +1! +r8.929681046644641 " +#7331 +0! +r8.915826896012874 " +0# +#7332 +1! +r8.901818155240189 " +#7333 +0! +r8.887655377367754 " +1# +#7334 +1! +r8.873339121517748 " +#7335 +0! +r8.85886995287143 " +0# +#7336 +1! +r8.844248442646816 " +#7337 +0! +r8.829475168076112 " +1# +#7338 +1! +r8.814550712382864 " +#7339 +0! +r8.799475664759067 " +0# +#7340 +1! +r8.784250620341769 " +#7341 +0! +r8.76887618018964 " +1# +#7342 +1! +r8.753352951259263 " +#7343 +0! +r8.737681546381161 " +0# +#7344 +1! +r8.721862584235524 " +#7345 +0! +r8.705896689327929 " +1# +#7346 +1! +r8.689784491964533 " +#7347 +0! +r8.673526628227316 " +0# +#7348 +1! +r8.657123739948922 " +#7349 +0! +r8.640576474687254 " +1# +#7350 +1! +r8.623885485700031 " +#7351 +0! +r8.607051431918936 " +0# +#7352 +1! +r8.590074977923573 " +#7353 +0! +r8.572956793915253 " +1# +#7354 +1! +r8.555697555690612 " +#7355 +0! +r8.538297944614781 " +0# +#7356 +1! +r8.520758647594635 " +#7357 +0! +r8.503080357051605 " +1# +#7358 +1! +r8.485263770894312 " +#7359 +0! +r8.467309592491052 " +0# +#7360 +1! +r8.449218530642067 " +#7361 +0! +r8.430991299551497 " +1# +#7362 +1! +r8.412628618799243 " +#7363 +0! +r8.394131213312473 " +0# +#7364 +1! +r8.375499813337065 " +#7365 +0! +r8.356735154408806 " +1# +#7366 +1! +r8.337837977324325 " +#7367 +0! +r8.318809028111772 " +0# +#7368 +1! +r8.299649058001521 " +#7369 +0! +r8.280358823396343 " +1# +#7370 +1! +r8.260939085841713 " +#7371 +0! +r8.241390611995575 " +0# +#7372 +1! +r8.221714173598247 " +#7373 +0! +r8.201910547441802 " +1# +#7374 +1! +r8.18198051533945 " +#7375 +0! +r8.16192486409482 " +0# +#7376 +1! +r8.141744385470616 " +#7377 +0! +r8.121439876157623 " +1# +#7378 +1! +r8.101012137743059 " +#7379 +0! +r8.080461976679079 " +0# +#7380 +1! +r8.059790204250881 " +#7381 +0! +r8.038997636544593 " +1# +#7382 +1! +r8.018085094415236 " +#7383 +0! +r7.997053403454117 " +0# +#7384 +1! +r7.975903393956432 " +#7385 +0! +r7.954635900888316 " +1# +#7386 +1! +r7.933251763853955 " +#7387 +0! +r7.911751827062514 " +0# +#7388 +1! +r7.890136939294608 " +#7389 +0! +r7.868407953869097 " +1# +#7390 +1! +r7.846565728609066 " +#7391 +0! +r7.824611125808147 " +0# +#7392 +1! +r7.802545012196516 " +#7393 +0! +r7.780368258906478 " +1# +#7394 +1! +r7.758081741438382 " +#7395 +0! +r7.735686339625725 " +0# +#7396 +1! +r7.7131829376006 " +#7397 +0! +r7.690572423758839 " +1# +#7398 +1! +r7.667855690724759 " +#7399 +0! +r7.645033635316135 " +0# +#7400 +1! +r7.622107158508587 " +#7401 +0! +r7.599077165400214 " +1# +#7402 +1! +r7.575944565175657 " +#7403 +0! +r7.55271027107039 " +0# +#7404 +1! +r7.529375200334589 " +#7405 +0! +r7.505940274196835 " +1# +#7406 +1! +r7.48240641782794 " +#7407 +0! +r7.458774560304203 " +0# +#7408 +1! +r7.435045634570921 " +#7409 +0! +r7.41122057740548 " +1# +#7410 +1! +r7.387300329380286 " +#7411 +0! +r7.363285834825828 " +0# +#7412 +1! +r7.339178041793178 " +#7413 +0! +r7.31497790201678 " +1# +#7414 +1! +r7.290686370876687 " +#7415 +0! +r7.266304407360927 " +0# +#7416 +1! +r7.2418329740277 " +#7417 +0! +r7.217273036967291 " +1# +#7418 +1! +r7.19262556576399 " +#7419 +0! +r7.167891533457729 " +0# +b01110011111100 $ +b0110111000001011101011011110011 % +1' +#7420 +1! +r7.143071916505724 " +0' +#7421 +0! +r7.118167694743981 " +1# +#7422 +1! +r7.093179851348535 " +#7423 +0! +r7.068109372796684 " +0# +#7424 +1! +r7.042957248827964 " +#7425 +0! +r7.017724472405137 " +1# +#7426 +1! +r6.992412039675064 " +#7427 +0! +r6.967020949929192 " +0# +#7428 +1! +r6.941552205564325 " +#7429 +0! +r6.916006812042824 " +1# +#7430 +1! +r6.890385777853112 " +#7431 +0! +r6.864690114469779 " +0# +#7432 +1! +r6.838920836313559 " +#7433 +0! +r6.813078960711485 " +1# +#7434 +1! +r6.787165507856503 " +#7435 +0! +r6.761181500767389 " +0# +#7436 +1! +r6.735127965248278 " +#7437 +0! +r6.709005929848086 " +1# +#7438 +1! +r6.682816425820099 " +#7439 +0! +r6.656560487081035 " +0# +#7440 +1! +r6.630239150170456 " +#7441 +0! +r6.603853454209645 " +1# +#7442 +1! +r6.577404440860669 " +#7443 +0! +r6.550893154285347 " +0# +#7444 +1! +r6.524320641103818 " +#7445 +0! +r6.497687950353433 " +1# +#7446 +1! +r6.470996133447221 " +#7447 +0! +r6.44424624413244 " +0# +#7448 +1! +r6.417439338448885 " +#7449 +0! +r6.390576474687233 " +1# +#7450 +1! +r6.363658713347469 " +#7451 +0! +r6.336687117096631 " +0# +#7452 +1! +r6.309662750727213 " +#7453 +0! +r6.2825866811149 " +1# +#7454 +1! +r6.255459977176525 " +#7455 +0! +r6.228283709827974 " +0# +#7456 +1! +r6.201058951941687 " +#7457 +0! +r6.173786778304549 " +1# +#7458 +1! +r6.146468265575251 " +#7459 +0! +r6.119104492241833 " +0# +#7460 +1! +r6.091696538579336 " +#7461 +0! +r6.064245486606751 " +1# +#7462 +1! +r6.036752420044665 " +#7463 +0! +r6.009218424272177 " +0# +#7464 +1! +r5.98164458628442 " +#7465 +0! +r5.954031994649243 " +1# +#7466 +1! +r5.926381739464448 " +#7467 +0! +r5.898694912314832 " +0# +#7468 +1! +r5.870972606228857 " +#7469 +0! +r5.843215915635764 " +1# +#7470 +1! +r5.815425936322139 " +#7471 +0! +r5.787603765388749 " +0# +#7472 +1! +r5.759750501207327 " +#7473 +0! +r5.731867243376955 " +1# +#7474 +1! +r5.703955092681035 " +#7475 +0! +r5.676015151043421 " +0# +#7476 +1! +r5.648048521485134 " +#7477 +0! +r5.620056308080857 " +1# +#7478 +1! +r5.592039615915243 " +#7479 +0! +r5.563999551039358 " +0# +#7480 +1! +r5.535937220426889 " +#7481 +0! +r5.50785373193066 " +1# +#7482 +1! +r5.479750194238648 " +#7483 +0! +r5.451627716830463 " +0# +#7484 +1! +r5.423487409933328 " +#7485 +0! +r5.395330384478344 " +1# +#7486 +1! +r5.367157752056726 " +#7487 +0! +r5.3389706248757 " +0# +#7488 +1! +r5.310770115714815 " +#7489 +0! +r5.282557337881917 " +1# +#7490 +1! +r5.254333405169103 " +#7491 +0! +r5.226099431808973 " +0# +#7492 +1! +r5.197856532430388 " +#7493 +0! +r5.169605822014687 " +1# +#7494 +1! +r5.141348415851577 " +#7495 +0! +r5.113085429495004 " +0# +#7496 +1! +r5.084817978719308 " +#7497 +0! +r5.056547179475076 " +1# +#7498 +1! +r5.028274147845022 " +#7499 +0! +r5.000000000000024 " +0# +#7500 +1! +r4.971725852154995 " +#7501 +0! +r4.943452820524909 " +1# +#7502 +1! +r4.915182021280645 " +#7503 +0! +r4.886914570504981 " +0# +#7504 +1! +r4.85865158414844 " +#7505 +0! +r4.830394177985298 " +1# +#7506 +1! +r4.802143467569596 " +#7507 +0! +r4.773900568191012 " +0# +#7508 +1! +r4.745666594830881 " +#7509 +0! +r4.7174426621181 " +1# +#7510 +1! +r4.68922988428517 " +#7511 +0! +r4.661029375124285 " +0# +#7512 +1! +r4.63284224794329 " +#7513 +0! +r4.604669615521672 " +1# +#7514 +1! +r4.576512590066688 " +#7515 +0! +r4.548372283169521 " +0# +#7516 +1! +r4.520249805761337 " +#7517 +0! +r4.492146268069325 " +1# +#7518 +1! +r4.464062779573096 " +#7519 +0! +r4.436000448960627 " +0# +b01110101100000 $ +b1000101001110000000111111010111 % +1' +#7520 +1! +r4.40796038408471 " +0' +#7521 +0! +r4.379943691919128 " +1# +#7522 +1! +r4.351951478514851 " +#7523 +0! +r4.323984848956596 " +0# +#7524 +1! +r4.29604490731895 " +#7525 +0! +r4.268132756622999 " +1# +#7526 +1! +r4.240249498792689 " +#7527 +0! +r4.212396234611267 " +0# +#7528 +1! +r4.184574063677878 " +#7529 +0! +r4.156784084364221 " +1# +#7530 +1! +r4.129027393771127 " +#7531 +0! +r4.101305087685184 " +0# +#7532 +1! +r4.073618260535536 " +#7533 +0! +r4.045968005350774 " +1# +#7534 +1! +r4.018355413715533 " +#7535 +0! +r3.990781575727777 " +0# +#7536 +1! +r3.96324757995532 " +#7537 +0! +r3.935754513393234 " +1# +#7538 +1! +r3.908303461420648 " +#7539 +0! +r3.880895507758121 " +0# +#7540 +1! +r3.853531734424765 " +#7541 +0! +r3.826213221695466 " +1# +#7542 +1! +r3.798941048058329 " +#7543 +0! +r3.771716290172042 " +0# +#7544 +1! +r3.74454002282346 " +#7545 +0! +r3.717413318885116 " +1# +#7546 +1! +r3.690337249272772 " +#7547 +0! +r3.663312882903355 " +0# +#7548 +1! +r3.636341286652516 " +#7549 +0! +r3.609423525312722 " +1# +#7550 +1! +r3.58256066155113 " +#7551 +0! +r3.555753755867546 " +0# +#7552 +1! +r3.529003866552764 " +#7553 +0! +r3.502312049646552 " +1# +#7554 +1! +r3.475679358896167 " +#7555 +0! +r3.449106845714669 " +0# +#7556 +1! +r3.422595559139347 " +#7557 +0! +r3.39614654579037 " +1# +#7558 +1! +r3.36976084982953 " +#7559 +0! +r3.343439512918951 " +0# +#7560 +1! +r3.317183574179916 " +#7561 +0! +r3.2909940701519 " +1# +#7562 +1! +r3.264872034751707 " +#7563 +0! +r3.238818499232568 " +0# +#7564 +1! +r3.212834492143482 " +#7565 +0! +r3.18692103928853 " +1# +#7566 +1! +r3.161079163686428 " +#7567 +0! +r3.135309885530207 " +0# +#7568 +1! +r3.109614222146845 " +#7569 +0! +r3.083993187957162 " +1# +#7570 +1! +r3.058447794435689 " +#7571 +0! +r3.032979050070794 " +0# +#7572 +1! +r3.007587960324951 " +#7573 +0! +r2.98227552759485 " +1# +#7574 +1! +r2.95704275117205 " +#7575 +0! +r2.931890627203303 " +0# +#7576 +1! +r2.906820148651423 " +#7577 +0! +r2.881832305256005 " +1# +#7578 +1! +r2.856928083494263 " +#7579 +0! +r2.832108466542286 " +0# +#7580 +1! +r2.807374434235997 " +#7581 +0! +r2.782726963032668 " +1# +#7582 +1! +r2.758167025972286 " +#7583 +0! +r2.733695592639059 " +0# +#7584 +1! +r2.709313629123328 " +#7585 +0! +r2.685022097983234 " +1# +#7586 +1! +r2.660821958206808 " +#7587 +0! +r2.636714165174158 " +0# +#7588 +1! +r2.612699670619701 " +#7589 +0! +r2.588779422594535 " +1# +#7590 +1! +r2.564954365429039 " +#7591 +0! +r2.541225439695785 " +0# +#7592 +1! +r2.517593582172047 " +#7593 +0! +r2.494059725803152 " +1# +#7594 +1! +r2.470624799665425 " +#7595 +0! +r2.447289728929571 " +0# +#7596 +1! +r2.42405543482433 " +#7597 +0! +r2.400922834599774 " +1# +#7598 +1! +r2.3778928414914 " +#7599 +0! +r2.354966364683878 " +0# +#7600 +1! +r2.332144309275229 " +#7601 +0! +r2.309427576241175 " +1# +#7602 +1! +r2.286817062399387 " +#7603 +0! +r2.264313660374288 " +0# +#7604 +1! +r2.241918258561581 " +#7605 +0! +r2.219631741093485 " +1# +#7606 +1! +r2.197454987803497 " +#7607 +0! +r2.175388874191841 " +0# +#7608 +1! +r2.153434271390946 " +#7609 +0! +r2.131592046130867 " +1# +#7610 +1! +r2.109863060705355 " +#7611 +0! +r2.088248172937499 " +0# +#7612 +1! +r2.066748236146033 " +#7613 +0! +r2.045364099111697 " +1# +#7614 +1! +r2.024096606043557 " +#7615 +0! +r2.002946596545871 " +0# +#7616 +1! +r1.981914905584777 " +#7617 +0! +r1.961002363455396 " +1# +#7618 +1! +r1.940209795749109 " +#7619 +0! +r1.919538023320886 " +0# +b01110111000100 $ +b01010011011010100100100010111011 % +1' +#7620 +1! +r1.89898786225693 " +0' +#7621 +0! +r1.878560123842365 " +1# +#7622 +1! +r1.858255614529374 " +#7623 +0! +r1.838075135905169 " +0# +#7624 +1! +r1.818019484660517 " +#7625 +0! +r1.798089452558209 " +1# +#7626 +1! +r1.778285826401743 " +#7627 +0! +r1.758609388004415 " +0# +#7628 +1! +r1.739060914158298 " +#7629 +0! +r1.719641176603646 " +1# +#7630 +1! +r1.70035094199849 " +#7631 +0! +r1.681190971888218 " +0# +#7632 +1! +r1.662162022675664 " +#7633 +0! +r1.643264845591183 " +1# +#7634 +1! +r1.624500186662925 " +#7635 +0! +r1.605868786687517 " +0# +#7636 +1! +r1.587371381200768 " +#7637 +0! +r1.569008700448471 " +1# +#7638 +1! +r1.550781469357903 " +#7639 +0! +r1.532690407508958 " +0# +#7640 +1! +r1.514736229105698 " +#7641 +0! +r1.496919642948386 " +1# +#7642 +1! +r1.479241352405336 " +#7643 +0! +r1.461702055385209 " +0# +#7644 +1! +r1.444302444309398 " +#7645 +0! +r1.427043206084737 " +1# +#7646 +1! +r1.409925022076437 " +#7647 +0! +r1.392948568081054 " +0# +#7648 +1! +r1.376114514299941 " +#7649 +0! +r1.359423525312718 " +1# +#7650 +1! +r1.342876260051088 " +#7651 +0! +r1.326473371772656 " +0# +#7652 +1! +r1.31021550803544 " +#7653 +0! +r1.294103310672081 " +1# +#7654 +1! +r1.278137415764468 " +#7655 +0! +r1.262318453618831 " +0# +#7656 +1! +r1.246647048740728 " +#7657 +0! +r1.231123819810353 " +1# +#7658 +1! +r1.215749379658239 " +#7659 +0! +r1.200524335240925 " +0# +#7660 +1! +r1.185449287617145 " +#7661 +0! +r1.170524831923881 " +1# +#7662 +1! +r1.155751557353159 " +#7663 +0! +r1.141130047128577 " +0# +#7664 +1! +r1.126660878482259 " +#7665 +0! +r1.112344622632239 " +1# +#7666 +1! +r1.09818184475977 " +#7667 +0! +r1.084173103987134 " +0# +#7668 +1! +r1.070318953355352 " +#7669 +0! +r1.056619939802601 " +1# +#7670 +1! +r1.043076604142492 " +#7671 +0! +r1.029689481042714 " +0# +#7672 +1! +r1.016459099003948 " +#7673 +0! +r1.003385980339054 " +1# +#7674 +1! +r0.9904706411523572 " +#7675 +0! +r0.9777135913193051 " +0# +#7676 +1! +r0.9651153344664243 " +#7677 +0! +r0.9526763679513381 " +1# +#7678 +1! +r0.940397182843089 " +#7679 +0! +r0.9282782639029072 " +0# +#7680 +1! +r0.9163200895649766 " +#7681 +0! +r0.9045231319175162 " +1# +#7682 +1! +r0.8928878566842284 " +#7683 +0! +r0.8814147232058565 " +0# +#7684 +1! +r0.870104184422078 " +#7685 +0! +r0.858956686853583 " +1# +#7686 +1! +r0.8479726705844772 " +#7687 +0! +r0.8371525692449406 " +0# +#7688 +1! +r0.8264968099940315 " +#7689 +0! +r0.8160058135028594 " +1# +#7690 +1! +r0.8056799939380594 " +#7691 +0! +r0.7955197589452494 " +0# +#7692 +1! +r0.7855255096331328 " +#7693 +0! +r0.77569764055756 " +1# +#7694 +1! +r0.7660365397059854 " +#7695 +0! +r0.7565425884821053 " +0# +#7696 +1! +r0.7472161616908686 " +#7697 +0! +r0.7380576275236574 " +1# +#7698 +1! +r0.7290673475436664 " +#7699 +0! +r0.7202456766718068 " +0# +#7700 +1! +r0.7115929631725084 " +#7701 +0! +r0.7031095486401053 " +1# +#7702 +1! +r0.6947957679852674 " +#7703 +0! +r0.6866519494217993 " +0# +#7704 +1! +r0.6786784144537616 " +#7705 +0! +r0.670875477862614 " +1# +#7706 +1! +r0.6632434476949536 " +#7707 +0! +r0.6557826252502776 " +0# +#7708 +1! +r0.6484933050690405 " +#7709 +0! +r0.6413757749211548 " +1# +#7710 +1! +r0.634430315794515 " +#7711 +0! +r0.627657201883971 " +0# +#7712 +1! +r0.6210567005804233 " +#7713 +0! +r0.6146290724603993 " +1# +#7714 +1! +r0.6083745712756379 " +#7715 +0! +r0.6022934439431271 " +0# +#7716 +1! +r0.5963859305353765 " +#7717 +0! +r0.5906522642708811 " +1# +#7718 +1! +r0.5850926715049987 " +#7719 +0! +r0.5797073717209003 " +0# +b01111000101000 $ +b100001100111001000000110011111 % +1' +#7720 +1! +r0.5744965775210131 " +0' +#7721 +0! +r0.5694604946185811 " +1# +#7722 +1! +r0.5645993218295065 " +#7723 +0! +r0.5599132510645886 " +0# +#7724 +1! +r0.5554024673218834 " +#7725 +0! +r0.5510671486793877 " +1# +#7726 +1! +r0.5469074662880695 " +#7727 +0! +r0.5429235843650666 " +0# +#7728 +1! +r0.5391156601872202 " +#7729 +0! +r0.5354838440848475 " +1# +#7730 +1! +r0.5320282794358384 " +#7731 +0! +r0.5287491026599644 " +0# +#7732 +1! +r0.5256464432135051 " +#7733 +0! +r0.5227204235841478 " +1# +#7734 +1! +r0.5199711592861371 " +#7735 +0! +r0.5173987588557258 " +0# +#7736 +1! +r0.5150033238468632 " +#7737 +0! +r0.5127849488272345 " +1# +#7738 +1! +r0.5107437213744879 " +#7739 +0! +r0.5088797220727779 " +0# +#7740 +1! +r0.5071930245096112 " +#7741 +0! +r0.5056836952729213 " +1# +#7742 +1! +r0.5043517939484383 " +#7743 +0! +r0.5031973731173478 " +0# +#7744 +1! +r0.5022204783542081 " +#7745 +0! +r0.50142114822515 " +1# +#7746 +1! +r0.5007994142863588 " +#7747 +0! +r0.500355301082827 " +0# +#7748 +1! +r0.5000888261473833 " +#7749 +0! +r0.5 " +1# +#7750 +1! +r0.5000888261473833 " +#7751 +0! +r0.500355301082827 " +0# +#7752 +1! +r0.5007994142863588 " +#7753 +0! +r0.50142114822515 " +1# +#7754 +1! +r0.502220478354209 " +#7755 +0! +r0.5031973731173487 " +0# +#7756 +1! +r0.5043517939484392 " +#7757 +0! +r0.5056836952729213 " +1# +#7758 +1! +r0.5071930245096112 " +#7759 +0! +r0.5088797220727779 " +0# +#7760 +1! +r0.5107437213744879 " +#7761 +0! +r0.5127849488272389 " +1# +#7762 +1! +r0.5150033238468632 " +#7763 +0! +r0.5173987588557232 " +0# +#7764 +1! +r0.5199711592861433 " +#7765 +0! +r0.5227204235841478 " +1# +#7766 +1! +r0.5256464432135051 " +#7767 +0! +r0.5287491026599636 " +0# +#7768 +1! +r0.532028279435834 " +#7769 +0! +r0.5354838440848511 " +1# +#7770 +1! +r0.5391156601872238 " +#7771 +0! +r0.542923584365071 " +0# +#7772 +1! +r0.5469074662880695 " +#7773 +0! +r0.5510671486793877 " +1# +#7774 +1! +r0.5554024673218834 " +#7775 +0! +r0.5599132510645939 " +0# +#7776 +1! +r0.5645993218295065 " +#7777 +0! +r0.5694604946185757 " +1# +#7778 +1! +r0.5744965775210185 " +#7779 +0! +r0.5797073717208994 " +0# +#7780 +1! +r0.5850926715049978 " +#7781 +0! +r0.5906522642708936 " +1# +#7782 +1! +r0.5963859305353703 " +#7783 +0! +r0.6022934439431333 " +0# +#7784 +1! +r0.6083745712756441 " +#7785 +0! +r0.6146290724603993 " +1# +#7786 +1! +r0.6210567005804304 " +#7787 +0! +r0.6276572018839701 " +0# +#7788 +1! +r0.6344303157945301 " +#7789 +0! +r0.6413757749211539 " +1# +#7790 +1! +r0.6484933050690405 " +#7791 +0! +r0.6557826252502688 " +0# +#7792 +1! +r0.6632434476949527 " +#7793 +0! +r0.670875477862614 " +1# +#7794 +1! +r0.6786784144537608 " +#7795 +0! +r0.6866519494218171 " +0# +#7796 +1! +r0.6947957679852568 " +#7797 +0! +r0.7031095486401151 " +1# +#7798 +1! +r0.711592963172528 " +#7799 +0! +r0.7202456766718059 " +0# +#7800 +1! +r0.7290673475436762 " +#7801 +0! +r0.7380576275236566 " +1# +#7802 +1! +r0.7472161616908792 " +#7803 +0! +r0.7565425884821044 " +0# +#7804 +1! +r0.7660365397059845 " +#7805 +0! +r0.7756976405575715 " +1# +#7806 +1! +r0.7855255096331328 " +#7807 +0! +r0.7955197589452485 " +0# +#7808 +1! +r0.8056799939380594 " +#7809 +0! +r0.8160058135028585 " +1# +#7810 +1! +r0.82649680999402 " +#7811 +0! +r0.8371525692449522 " +0# +#7812 +1! +r0.8479726705845021 " +#7813 +0! +r0.858956686853583 " +1# +#7814 +1! +r0.8701041844220896 " +#7815 +0! +r0.8814147232058822 " +0# +#7816 +1! +r0.8928878566842409 " +#7817 +0! +r0.9045231319175162 " +1# +#7818 +1! +r0.9163200895649766 " +#7819 +0! +r0.9282782639029072 " +0# +b01111010001100 $ +b01101111110011101011101010000011 % +1' +#7820 +1! +r0.9403971828430748 " +0' +#7821 +0! +r0.9526763679513373 " +1# +#7822 +1! +r0.9651153344664518 " +#7823 +0! +r0.9777135913193042 " +0# +#7824 +1! +r0.9904706411523421 " +#7825 +0! +r1.003385980339069 " +1# +#7826 +1! +r1.016459099003948 " +#7827 +0! +r1.029689481042713 " +0# +#7828 +1! +r1.043076604142506 " +#7829 +0! +r1.056619939802615 " +1# +#7830 +1! +r1.070318953355367 " +#7831 +0! +r1.084173103987134 " +0# +#7832 +1! +r1.098181844759802 " +#7833 +0! +r1.112344622632239 " +1# +#7834 +1! +r1.126660878482242 " +#7835 +0! +r1.141130047128577 " +0# +#7836 +1! +r1.155751557353158 " +#7837 +0! +r1.170524831923881 " +1# +#7838 +1! +r1.185449287617127 " +#7839 +0! +r1.200524335240941 " +0# +#7840 +1! +r1.215749379658239 " +#7841 +0! +r1.23112381981037 " +1# +#7842 +1! +r1.246647048740745 " +#7843 +0! +r1.262318453618831 " +0# +#7844 +1! +r1.278137415764485 " +#7845 +0! +r1.29410331067208 " +1# +#7846 +1! +r1.310215508035476 " +#7847 +0! +r1.326473371772674 " +0# +#7848 +1! +r1.342876260051069 " +#7849 +0! +r1.359423525312755 " +1# +#7850 +1! +r1.376114514299941 " +#7851 +0! +r1.392948568081053 " +0# +#7852 +1! +r1.409925022076437 " +#7853 +0! +r1.427043206084736 " +1# +#7854 +1! +r1.444302444309397 " +#7855 +0! +r1.461702055385228 " +0# +#7856 +1! +r1.479241352405375 " +#7857 +0! +r1.496919642948385 " +1# +#7858 +1! +r1.514736229105718 " +#7859 +0! +r1.532690407508957 " +0# +#7860 +1! +r1.550781469357923 " +#7861 +0! +r1.569008700448471 " +1# +#7862 +1! +r1.587371381200747 " +#7863 +0! +r1.605868786687558 " +0# +#7864 +1! +r1.624500186662925 " +#7865 +0! +r1.643264845591183 " +1# +#7866 +1! +r1.662162022675685 " +#7867 +0! +r1.681190971888217 " +0# +#7868 +1! +r1.700350941998489 " +#7869 +0! +r1.719641176603667 " +1# +#7870 +1! +r1.739060914158276 " +#7871 +0! +r1.758609388004414 " +0# +#7872 +1! +r1.778285826401765 " +#7873 +0! +r1.798089452558231 " +1# +#7874 +1! +r1.818019484660538 " +#7875 +0! +r1.838075135905168 " +0# +#7876 +1! +r1.858255614529373 " +#7877 +0! +r1.878560123842365 " +1# +#7878 +1! +r1.898987862256929 " +#7879 +0! +r1.919538023320909 " +0# +#7880 +1! +r1.940209795749132 " +#7881 +0! +r1.961002363455371 " +1# +#7882 +1! +r1.981914905584775 " +#7883 +0! +r2.002946596545894 " +0# +#7884 +1! +r2.024096606043556 " +#7885 +0! +r2.045364099111696 " +1# +#7886 +1! +r2.066748236146057 " +#7887 +0! +r2.088248172937498 " +0# +#7888 +1! +r2.109863060705379 " +#7889 +0! +r2.131592046130891 " +1# +#7890 +1! +r2.153434271390946 " +#7891 +0! +r2.175388874191839 " +0# +#7892 +1! +r2.197454987803496 " +#7893 +0! +r2.219631741093509 " +1# +#7894 +1! +r2.241918258561581 " +#7895 +0! +r2.264313660374262 " +0# +#7896 +1! +r2.286817062399412 " +#7897 +0! +r2.309427576241199 " +1# +#7898 +1! +r2.332144309275228 " +#7899 +0! +r2.354966364683877 " +0# +#7900 +1! +r2.377892841491426 " +#7901 +0! +r2.400922834599799 " +1# +#7902 +1! +r2.424055434824356 " +#7903 +0! +r2.447289728929596 " +0# +#7904 +1! +r2.470624799665398 " +#7905 +0! +r2.494059725803151 " +1# +#7906 +1! +r2.517593582172073 " +#7907 +0! +r2.54122543969581 " +0# +#7908 +1! +r2.564954365429038 " +#7909 +0! +r2.588779422594507 " +1# +#7910 +1! +r2.612699670619727 " +#7911 +0! +r2.636714165174158 " +0# +#7912 +1! +r2.660821958206808 " +#7913 +0! +r2.685022097983234 " +1# +#7914 +1! +r2.709313629123354 " +#7915 +0! +r2.733695592639086 " +0# +#7916 +1! +r2.758167025972313 " +#7917 +0! +r2.782726963032694 " +1# +#7918 +1! +r2.807374434235996 " +#7919 +0! +r2.832108466542285 " +0# +b01111011110000 $ +b10000000001111001101100111 % +1' +#7920 +1! +r2.85692808349429 " +0' +#7921 +0! +r2.881832305255976 " +1# +#7922 +1! +r2.906820148651422 " +#7923 +0! +r2.931890627203302 " +0# +#7924 +1! +r2.957042751172078 " +#7925 +0! +r2.982275527594849 " +1# +#7926 +1! +r3.00758796032495 " +#7927 +0! +r3.032979050070822 " +0# +#7928 +1! +r3.05844779443566 " +#7929 +0! +r3.08399318795719 " +1# +#7930 +1! +r3.109614222146901 " +#7931 +0! +r3.135309885530235 " +0# +#7932 +1! +r3.161079163686427 " +#7933 +0! +r3.186921039288528 " +1# +#7934 +1! +r3.212834492143511 " +#7935 +0! +r3.238818499232567 " +0# +#7936 +1! +r3.264872034751706 " +#7937 +0! +r3.290994070151899 " +1# +#7938 +1! +r3.317183574179886 " +#7939 +0! +r3.34343951291895 " +0# +#7940 +1! +r3.369760849829558 " +#7941 +0! +r3.396146545790399 " +1# +#7942 +1! +r3.422595559139316 " +#7943 +0! +r3.449106845714697 " +0# +#7944 +1! +r3.475679358896226 " +#7945 +0! +r3.502312049646551 " +1# +#7946 +1! +r3.529003866552763 " +#7947 +0! +r3.555753755867545 " +0# +#7948 +1! +r3.58256066155116 " +#7949 +0! +r3.609423525312721 " +1# +#7950 +1! +r3.636341286652515 " +#7951 +0! +r3.663312882903354 " +0# +#7952 +1! +r3.690337249272771 " +#7953 +0! +r3.717413318885115 " +1# +#7954 +1! +r3.74454002282349 " +#7955 +0! +r3.77171629017201 " +0# +#7956 +1! +r3.798941048058297 " +#7957 +0! +r3.826213221695496 " +1# +#7958 +1! +r3.853531734424795 " +#7959 +0! +r3.880895507758151 " +0# +#7960 +1! +r3.908303461420678 " +#7961 +0! +r3.935754513393233 " +1# +#7962 +1! +r3.96324757995535 " +#7963 +0! +r3.990781575727776 " +0# +#7964 +1! +r4.018355413715563 " +#7965 +0! +r4.045968005350773 " +1# +#7966 +1! +r4.073618260535535 " +#7967 +0! +r4.101305087685184 " +0# +#7968 +1! +r4.129027393771158 " +#7969 +0! +r4.15678408436422 " +1# +#7970 +1! +r4.184574063677876 " +#7971 +0! +r4.212396234611298 " +0# +#7972 +1! +r4.240249498792688 " +#7973 +0! +r4.268132756623029 " +1# +#7974 +1! +r4.29604490731898 " +#7975 +0! +r4.323984848956595 " +0# +#7976 +1! +r4.351951478514881 " +#7977 +0! +r4.379943691919126 " +1# +#7978 +1! +r4.407960384084741 " +#7979 +0! +r4.436000448960594 " +0# +#7980 +1! +r4.464062779573094 " +#7981 +0! +r4.492146268069355 " +1# +#7982 +1! +r4.520249805761368 " +#7983 +0! +r4.54837228316952 " +0# +#7984 +1! +r4.576512590066687 " +#7985 +0! +r4.604669615521703 " +1# +#7986 +1! +r4.632842247943289 " +#7987 +0! +r4.661029375124315 " +0# +#7988 +1! +r4.689229884285201 " +#7989 +0! +r4.717442662118066 " +1# +#7990 +1! +r4.74566659483088 " +#7991 +0! +r4.773900568191042 " +0# +#7992 +1! +r4.802143467569628 " +#7993 +0! +r4.830394177985264 " +1# +#7994 +1! +r4.858651584148407 " +#7995 +0! +r4.886914570505011 " +0# +#7996 +1! +r4.915182021280644 " +#7997 +0! +r4.943452820524908 " +1# +#7998 +1! +r4.971725852154994 " +#7999 +0! +r5.000000000000055 " +0# +#8000 +1! +r5.028274147844988 " +#8001 +0! +r5.056547179475106 " +1# +#8002 +1! +r5.084817978719371 " +#8003 +0! +r5.113085429495003 " +0# +#8004 +1! +r5.141348415851576 " +#8005 +0! +r5.169605822014718 " +1# +#8006 +1! +r5.197856532430387 " +#8007 +0! +r5.226099431808972 " +0# +#8008 +1! +r5.254333405169102 " +#8009 +0! +r5.282557337881948 " +1# +#8010 +1! +r5.310770115714782 " +#8011 +0! +r5.338970624875699 " +0# +#8012 +1! +r5.367157752056757 " +#8013 +0! +r5.395330384478311 " +1# +#8014 +1! +r5.423487409933327 " +#8015 +0! +r5.451627716830462 " +0# +#8016 +1! +r5.479750194238711 " +#8017 +0! +r5.507853731930691 " +1# +#8018 +1! +r5.53593722042692 " +#8019 +0! +r5.563999551039389 " +0# +b01111101010100 $ +b10001100001100110010110001001011 % +1' +#8020 +1! +r5.592039615915273 " +0' +#8021 +0! +r5.620056308080856 " +1# +#8022 +1! +r5.648048521485165 " +#8023 +0! +r5.676015151043388 " +0# +#8024 +1! +r5.703955092681034 " +#8025 +0! +r5.731867243377017 " +1# +#8026 +1! +r5.759750501207326 " +#8027 +0! +r5.787603765388748 " +0# +#8028 +1! +r5.815425936322106 " +#8029 +0! +r5.843215915635795 " +1# +#8030 +1! +r5.870972606228888 " +#8031 +0! +r5.898694912314831 " +0# +#8032 +1! +r5.926381739464478 " +#8033 +0! +r5.954031994649242 " +1# +#8034 +1! +r5.981644586284451 " +#8035 +0! +r6.009218424272238 " +0# +#8036 +1! +r6.036752420044664 " +#8037 +0! +r6.064245486606749 " +1# +#8038 +1! +r6.091696538579304 " +#8039 +0! +r6.119104492241862 " +0# +#8040 +1! +r6.146468265575219 " +#8041 +0! +r6.173786778304517 " +1# +#8042 +1! +r6.201058951941716 " +#8043 +0! +r6.228283709827974 " +0# +#8044 +1! +r6.255459977176524 " +#8045 +0! +r6.282586681114929 " +1# +#8046 +1! +r6.309662750727242 " +#8047 +0! +r6.33668711709666 " +0# +#8048 +1! +r6.363658713347468 " +#8049 +0! +r6.390576474687263 " +1# +#8050 +1! +r6.417439338448854 " +#8051 +0! +r6.444246244132438 " +0# +#8052 +1! +r6.47099613344725 " +#8053 +0! +r6.497687950353432 " +1# +#8054 +1! +r6.524320641103787 " +#8055 +0! +r6.550893154285346 " +0# +#8056 +1! +r6.577404440860668 " +#8057 +0! +r6.603853454209614 " +1# +#8058 +1! +r6.630239150170485 " +#8059 +0! +r6.656560487081063 " +0# +#8060 +1! +r6.682816425820127 " +#8061 +0! +r6.709005929848084 " +1# +#8062 +1! +r6.735127965248306 " +#8063 +0! +r6.761181500767446 " +0# +#8064 +1! +r6.787165507856503 " +#8065 +0! +r6.813078960711485 " +1# +#8066 +1! +r6.838920836313557 " +#8067 +0! +r6.864690114469749 " +0# +#8068 +1! +r6.89038577785314 " +#8069 +0! +r6.916006812042824 " +1# +#8070 +1! +r6.941552205564353 " +#8071 +0! +r6.967020949929163 " +0# +#8072 +1! +r6.992412039675063 " +#8073 +0! +r7.017724472405192 " +1# +#8074 +1! +r7.042957248827936 " +#8075 +0! +r7.068109372796711 " +0# +#8076 +1! +r7.093179851348562 " +#8077 +0! +r7.118167694744009 " +1# +#8078 +1! +r7.143071916505722 " +#8079 +0! +r7.1678915334577 " +0# +#8080 +1! +r7.192625565764017 " +#8081 +0! +r7.217273036967319 " +1# +#8082 +1! +r7.2418329740277 " +#8083 +0! +r7.266304407360954 " +0# +#8084 +1! +r7.290686370876631 " +#8085 +0! +r7.314977902016778 " +1# +#8086 +1! +r7.339178041793232 " +#8087 +0! +r7.363285834825854 " +0# +#8088 +1! +r7.387300329380312 " +#8089 +0! +r7.411220577405478 " +1# +#8090 +1! +r7.435045634570947 " +#8091 +0! +r7.458774560304228 " +0# +#8092 +1! +r7.482406417827939 " +#8093 +0! +r7.505940274196861 " +1# +#8094 +1! +r7.529375200334588 " +#8095 +0! +r7.55271027107039 " +0# +#8096 +1! +r7.575944565175682 " +#8097 +0! +r7.599077165400213 " +1# +#8098 +1! +r7.622107158508586 " +#8099 +0! +r7.645033635316109 " +0# +#8100 +1! +r7.667855690724783 " +#8101 +0! +r7.690572423758837 " +1# +#8102 +1! +r7.7131829376006 " +#8103 +0! +r7.735686339625749 " +0# +#8104 +1! +r7.758081741438406 " +#8105 +0! +r7.780368258906502 " +1# +#8106 +1! +r7.802545012196514 " +#8107 +0! +r7.824611125808147 " +0# +#8108 +1! +r7.846565728609042 " +#8109 +0! +r7.868407953869095 " +1# +#8110 +1! +r7.890136939294632 " +#8111 +0! +r7.911751827062537 " +0# +#8112 +1! +r7.93325176385393 " +#8113 +0! +r7.954635900888315 " +1# +#8114 +1! +r7.975903393956431 " +#8115 +0! +r7.997053403454117 " +0# +#8116 +1! +r8.018085094415259 " +#8117 +0! +r8.038997636544615 " +1# +#8118 +1! +r8.059790204250879 " +#8119 +0! +r8.080461976679102 " +0# +b01111110111000 $ +b011010011001010110010100101111 % +1' +#8120 +1! +r8.101012137743082 " +0' +#8121 +0! +r8.121439876157645 " +1# +#8122 +1! +r8.141744385470615 " +#8123 +0! +r8.16192486409482 " +0# +#8124 +1! +r8.181980515339493 " +#8125 +0! +r8.201910547441758 " +1# +#8126 +1! +r8.221714173598246 " +#8127 +0! +r8.241390611995573 " +0# +#8128 +1! +r8.260939085841734 " +#8129 +0! +r8.280358823396364 " +1# +#8130 +1! +r8.299649058001521 " +#8131 +0! +r8.318809028111815 " +0# +#8132 +1! +r8.337837977324302 " +#8133 +0! +r8.356735154408828 " +1# +#8134 +1! +r8.375499813337084 " +#8135 +0! +r8.394131213312452 " +0# +#8136 +1! +r8.412628618799243 " +#8137 +0! +r8.430991299551518 " +1# +#8138 +1! +r8.449218530642087 " +#8139 +0! +r8.467309592491052 " +0# +#8140 +1! +r8.485263770894292 " +#8141 +0! +r8.503080357051623 " +1# +#8142 +1! +r8.520758647594615 " +#8143 +0! +r8.538297944614781 " +0# +#8144 +1! +r8.555697555690632 " +#8145 +0! +r8.572956793915273 " +1# +#8146 +1! +r8.590074977923571 " +#8147 +0! +r8.607051431918956 " +0# +#8148 +1! +r8.62388548570005 " +#8149 +0! +r8.640576474687272 " +1# +#8150 +1! +r8.657123739948922 " +#8151 +0! +r8.673526628227334 " +0# +#8152 +1! +r8.689784491964531 " +#8153 +0! +r8.705896689327909 " +1# +#8154 +1! +r8.721862584235542 " +#8155 +0! +r8.737681546381159 " +0# +#8156 +1! +r8.753352951259263 " +#8157 +0! +r8.768876180189656 " +1# +#8158 +1! +r8.784250620341769 " +#8159 +0! +r8.799475664759067 " +0# +#8160 +1! +r8.814550712382864 " +#8161 +0! +r8.829475168076126 " +1# +#8162 +1! +r8.844248442646849 " +#8163 +0! +r8.85886995287143 " +0# +#8164 +1! +r8.873339121517748 " +#8165 +0! +r8.887655377367752 " +1# +#8166 +1! +r8.901818155240205 " +#8167 +0! +r8.915826896012874 " +0# +#8168 +1! +r8.929681046644639 " +#8169 +0! +r8.943380060197377 " +1# +#8170 +1! +r8.956923395857485 " +#8171 +0! +r8.970310518957294 " +0# +#8172 +1! +r8.983540900996074 " +#8173 +0! +r8.996614019660939 " +1# +#8174 +1! +r9.009529358847665 " +#8175 +0! +r9.022286408680689 " +0# +#8176 +1! +r9.034884665533554 " +#8177 +0! +r9.047323632048684 " +1# +#8178 +1! +r9.059602817156918 " +#8179 +0! +r9.0717217360971 " +0# +#8180 +1! +r9.083679910435031 " +#8181 +0! +r9.095476868082477 " +1# +#8182 +1! +r9.107112143315778 " +#8183 +0! +r9.118585276794111 " +0# +#8184 +1! +r9.129895815577916 " +#8185 +0! +r9.141043313146435 " +1# +#8186 +1! +r9.152027329415503 " +#8187 +0! +r9.162847430755065 " +0# +#8188 +1! +r9.173503190005974 " +#8189 +0! +r9.183994186497145 " +1# +#8190 +1! +r9.194320006061957 " +#8191 +0! +r9.204480241054757 " +0# +#8192 +1! +r9.214474490366872 " +#8193 +0! +r9.224302359442422 " +1# +#8194 +1! +r9.23396346029401 " +#8195 +0! +r9.2434574115179 " +0# +#8196 +1! +r9.252783838309126 " +#8197 +0! +r9.261942372476348 " +1# +#8198 +1! +r9.270932652456318 " +#8199 +0! +r9.279754323328198 " +0# +#8200 +1! +r9.288407036827486 " +#8201 +0! +r9.296890451359889 " +1# +#8202 +1! +r9.305204232014747 " +#8203 +0! +r9.313348050578178 " +0# +#8204 +1! +r9.321321585546244 " +#8205 +0! +r9.32912452213739 " +1# +#8206 +1! +r9.336756552305051 " +#8207 +0! +r9.344217374749736 " +0# +#8208 +1! +r9.351506694930954 " +#8209 +0! +r9.358624225078842 " +1# +#8210 +1! +r9.365569684205473 " +#8211 +0! +r9.372342798116026 " +0# +#8212 +1! +r9.378943299419573 " +#8213 +0! +r9.385370927539611 " +1# +#8214 +1! +r9.391625428724359 " +#8215 +0! +r9.397706556056876 " +0# +#8216 +1! +r9.403614069464627 " +#8217 +0! +r9.40934773572911 " +1# +#8218 +1! +r9.41490732849501 " +#8219 +0! +r9.420292628279103 " +0# +b011100 $ +b10101000100101111001111000010011 % +1' +#8220 +1! +r9.425503422478984 " +0' +#8221 +0! +r9.430539505381422 " +1# +#8222 +1! +r9.435400678170492 " +#8223 +0! +r9.440086748935414 " +0# +#8224 +1! +r9.44459753267812 " +#8225 +0! +r9.448932851320613 " +1# +#8226 +1! +r9.453092533711928 " +#8227 +0! +r9.457076415634926 " +0# +#8228 +1! +r9.460884339812782 " +#8229 +0! +r9.464516155915151 " +1# +#8230 +1! +r9.467971720564167 " +#8231 +0! +r9.471250897340035 " +0# +#8232 +1! +r9.474353556786497 " +#8233 +0! +r9.477279576415853 " +1# +#8234 +1! +r9.480028840713858 " +#8235 +0! +r9.482601241144279 " +0# +#8236 +1! +r9.484996676153134 " +#8237 +0! +r9.487215051172761 " +1# +#8238 +1! +r9.489256278625515 " +#8239 +0! +r9.491120277927221 " +0# +#8240 +1! +r9.492806975490389 " +#8241 +0! +r9.494316304727079 " +1# +#8242 +1! +r9.495648206051561 " +#8243 +0! +r9.496802626882653 " +0# +#8244 +1! +r9.497779521645791 " +#8245 +0! +r9.49857885177485 " +1# +#8246 +1! +r9.499200585713641 " +#8247 +0! +r9.499644698917173 " +0# +#8248 +1! +r9.499911173852617 " +#8249 +0! +r9.5 " +1# +#8250 +1! +r9.499911173852617 " +#8251 +0! +r9.499644698917173 " +0# +#8252 +1! +r9.499200585713641 " +#8253 +0! +r9.498578851774848 " +1# +#8254 +1! +r9.497779521645793 " +#8255 +0! +r9.496802626882651 " +0# +#8256 +1! +r9.495648206051559 " +#8257 +0! +r9.494316304727079 " +1# +#8258 +1! +r9.492806975490389 " +#8259 +0! +r9.491120277927223 " +0# +#8260 +1! +r9.489256278625511 " +#8261 +0! +r9.487215051172761 " +1# +#8262 +1! +r9.484996676153134 " +#8263 +0! +r9.482601241144273 " +0# +#8264 +1! +r9.480028840713858 " +#8265 +0! +r9.47727957641585 " +1# +#8266 +1! +r9.474353556786493 " +#8267 +0! +r9.471250897340038 " +0# +#8268 +1! +r9.467971720564163 " +#8269 +0! +r9.464516155915156 " +1# +#8270 +1! +r9.460884339812779 " +#8271 +0! +r9.457076415634932 " +0# +#8272 +1! +r9.453092533711933 " +#8273 +0! +r9.44893285132061 " +1# +#8274 +1! +r9.44459753267812 " +#8275 +0! +r9.440086748935409 " +0# +#8276 +1! +r9.435400678170485 " +#8277 +0! +r9.430539505381422 " +1# +#8278 +1! +r9.425503422478984 " +#8279 +0! +r9.420292628279096 " +0# +#8280 +1! +r9.414907328495005 " +#8281 +0! +r9.409347735729103 " +1# +#8282 +1! +r9.403614069464627 " +#8283 +0! +r9.397706556056871 " +0# +#8284 +1! +r9.391625428724353 " +#8285 +0! +r9.385370927539604 " +1# +#8286 +1! +r9.378943299419566 " +#8287 +0! +r9.372342798116033 " +0# +#8288 +1! +r9.365569684205482 " +#8289 +0! +r9.358624225078835 " +1# +#8290 +1! +r9.351506694930956 " +#8291 +0! +r9.344217374749727 " +0# +#8292 +1! +r9.336756552305051 " +#8293 +0! +r9.329124522137381 " +1# +#8294 +1! +r9.321321585546235 " +#8295 +0! +r9.313348050578197 " +0# +#8296 +1! +r9.305204232014738 " +#8297 +0! +r9.2968904513599 " +1# +#8298 +1! +r9.288407036827477 " +#8299 +0! +r9.279754323328188 " +0# +#8300 +1! +r9.270932652456329 " +#8301 +0! +r9.261942372476337 " +1# +#8302 +1! +r9.252783838309117 " +#8303 +0! +r9.243457411517891 " +0# +#8304 +1! +r9.233963460294 " +#8305 +0! +r9.224302359442445 " +1# +#8306 +1! +r9.214474490366861 " +#8307 +0! +r9.204480241054746 " +0# +#8308 +1! +r9.194320006061947 " +#8309 +0! +r9.183994186497134 " +1# +#8310 +1! +r9.173503190005974 " +#8311 +0! +r9.162847430755054 " +0# +#8312 +1! +r9.152027329415517 " +#8313 +0! +r9.141043313146424 " +1# +#8314 +1! +r9.129895815577903 " +#8315 +0! +r9.118585276794125 " +0# +#8316 +1! +r9.107112143315765 " +#8317 +0! +r9.095476868082464 " +1# +#8318 +1! +r9.083679910435016 " +#8319 +0! +r9.071721736097086 " +0# +b010000000 $ +b0110110110010011101011011110111 % +1' +#8320 +1! +r9.059602817156918 " +0' +#8321 +0! +r9.047323632048656 " +1# +#8322 +1! +r9.034884665533555 " +#8323 +0! +r9.022286408680689 " +0# +#8324 +1! +r9.009529358847651 " +#8325 +0! +r8.996614019660953 " +1# +#8326 +1! +r8.98354090099606 " +#8327 +0! +r8.97031051895728 " +0# +#8328 +1! +r8.956923395857501 " +#8329 +0! +r8.943380060197393 " +1# +#8330 +1! +r8.929681046644657 " +#8331 +0! +r8.915826896012858 " +0# +#8332 +1! +r8.901818155240175 " +#8333 +0! +r8.88765537736777 " +1# +#8334 +1! +r8.873339121517734 " +#8335 +0! +r8.858869952871432 " +0# +#8336 +1! +r8.844248442646833 " +#8337 +0! +r8.829475168076112 " +1# +#8338 +1! +r8.814550712382864 " +#8339 +0! +r8.799475664759068 " +0# +#8340 +1! +r8.784250620341753 " +#8341 +0! +r8.76887618018964 " +1# +#8342 +1! +r8.753352951259247 " +#8343 +0! +r8.737681546381179 " +0# +#8344 +1! +r8.721862584235524 " +#8345 +0! +r8.705896689327894 " +1# +#8346 +1! +r8.689784491964552 " +#8347 +0! +r8.673526628227318 " +0# +#8348 +1! +r8.657123739948922 " +#8349 +0! +r8.640576474687274 " +1# +#8350 +1! +r8.623885485700031 " +#8351 +0! +r8.607051431918938 " +0# +#8352 +1! +r8.590074977923553 " +#8353 +0! +r8.572956793915274 " +1# +#8354 +1! +r8.555697555690614 " +#8355 +0! +r8.538297944614762 " +0# +#8356 +1! +r8.520758647594654 " +#8357 +0! +r8.503080357051605 " +1# +#8358 +1! +r8.485263770894313 " +#8359 +0! +r8.467309592491034 " +0# +#8360 +1! +r8.449218530642067 " +#8361 +0! +r8.430991299551518 " +1# +#8362 +1! +r8.412628618799221 " +#8363 +0! +r8.394131213312452 " +0# +#8364 +1! +r8.375499813337065 " +#8365 +0! +r8.356735154408806 " +1# +#8366 +1! +r8.337837977324348 " +#8367 +0! +r8.318809028111772 " +0# +#8368 +1! +r8.299649058001499 " +#8369 +0! +r8.280358823396345 " +1# +#8370 +1! +r8.260939085841715 " +#8371 +0! +r8.241390611995598 " +0# +#8372 +1! +r8.221714173598224 " +#8373 +0! +r8.201910547441781 " +1# +#8374 +1! +r8.181980515339474 " +#8375 +0! +r8.161924864094798 " +0# +#8376 +1! +r8.141744385470616 " +#8377 +0! +r8.121439876157623 " +1# +#8378 +1! +r8.101012137743037 " +#8379 +0! +r8.08046197667908 " +0# +#8380 +1! +r8.059790204250881 " +#8381 +0! +r8.038997636544618 " +1# +#8382 +1! +r8.018085094415238 " +#8383 +0! +r7.997053403454142 " +0# +#8384 +1! +r7.975903393956457 " +#8385 +0! +r7.954635900888293 " +1# +#8386 +1! +r7.933251763853956 " +#8387 +0! +r7.911751827062515 " +0# +#8388 +1! +r7.89013693929461 " +#8389 +0! +r7.868407953869097 " +1# +#8390 +1! +r7.846565728609067 " +#8391 +0! +r7.824611125808174 " +0# +#8392 +1! +r7.802545012196491 " +#8393 +0! +r7.780368258906479 " +1# +#8394 +1! +r7.758081741438407 " +#8395 +0! +r7.735686339625726 " +0# +#8396 +1! +r7.713182937600601 " +#8397 +0! +r7.690572423758839 " +1# +#8398 +1! +r7.667855690724759 " +#8399 +0! +r7.645033635316137 " +0# +#8400 +1! +r7.622107158508614 " +#8401 +0! +r7.599077165400189 " +1# +#8402 +1! +r7.575944565175658 " +#8403 +0! +r7.552710271070365 " +0# +#8404 +1! +r7.529375200334616 " +#8405 +0! +r7.505940274196836 " +1# +#8406 +1! +r7.482406417827914 " +#8407 +0! +r7.458774560304231 " +0# +#8408 +1! +r7.435045634570923 " +#8409 +0! +r7.41122057740548 " +1# +#8410 +1! +r7.387300329380286 " +#8411 +0! +r7.363285834825829 " +0# +#8412 +1! +r7.339178041793207 " +#8413 +0! +r7.314977902016754 " +1# +#8414 +1! +r7.290686370876688 " +#8415 +0! +r7.266304407360929 " +0# +#8416 +1! +r7.241832974027673 " +#8417 +0! +r7.217273036967348 " +1# +#8418 +1! +r7.192625565763991 " +#8419 +0! +r7.16789153345773 " +0# +b011100100 $ +b1000100111111000000111111011011 % +1' +#8420 +1! +r7.143071916505696 " +0' +#8421 +0! +r7.118167694743983 " +1# +#8422 +1! +r7.093179851348564 " +#8423 +0! +r7.068109372796684 " +0# +#8424 +1! +r7.042957248827994 " +#8425 +0! +r7.017724472405137 " +1# +#8426 +1! +r6.992412039675036 " +#8427 +0! +r6.967020949929193 " +0# +#8428 +1! +r6.941552205564326 " +#8429 +0! +r6.916006812042854 " +1# +#8430 +1! +r6.890385777853114 " +#8431 +0! +r6.86469011446978 " +0# +#8432 +1! +r6.838920836313589 " +#8433 +0! +r6.813078960711458 " +1# +#8434 +1! +r6.787165507856504 " +#8435 +0! +r6.761181500767419 " +0# +#8436 +1! +r6.73512796524825 " +#8437 +0! +r6.709005929848087 " +1# +#8438 +1! +r6.6828164258201 " +#8439 +0! +r6.656560487081036 " +0# +#8440 +1! +r6.630239150170457 " +#8441 +0! +r6.603853454209646 " +1# +#8442 +1! +r6.57740444086067 " +#8443 +0! +r6.550893154285318 " +0# +#8444 +1! +r6.524320641103759 " +#8445 +0! +r6.497687950353464 " +1# +#8446 +1! +r6.470996133447223 " +#8447 +0! +r6.44424624413244 " +0# +#8448 +1! +r6.417439338448887 " +#8449 +0! +r6.390576474687235 " +1# +#8450 +1! +r6.363658713347471 " +#8451 +0! +r6.336687117096662 " +0# +#8452 +1! +r6.309662750727245 " +#8453 +0! +r6.28258668111487 " +1# +#8454 +1! +r6.255459977176495 " +#8455 +0! +r6.228283709827975 " +0# +#8456 +1! +r6.201058951941688 " +#8457 +0! +r6.173786778304551 " +1# +#8458 +1! +r6.146468265575252 " +#8459 +0! +r6.119104492241834 " +0# +#8460 +1! +r6.091696538579338 " +#8461 +0! +r6.064245486606721 " +1# +#8462 +1! +r6.036752420044635 " +#8463 +0! +r6.009218424272209 " +0# +#8464 +1! +r5.981644586284391 " +#8465 +0! +r5.954031994649275 " +1# +#8466 +1! +r5.92638173946445 " +#8467 +0! +r5.898694912314801 " +0# +#8468 +1! +r5.870972606228889 " +#8469 +0! +r5.843215915635765 " +1# +#8470 +1! +r5.81542593632214 " +#8471 +0! +r5.787603765388718 " +0# +#8472 +1! +r5.759750501207296 " +#8473 +0! +r5.731867243376987 " +1# +#8474 +1! +r5.703955092681005 " +#8475 +0! +r5.676015151043453 " +0# +#8476 +1! +r5.648048521485135 " +#8477 +0! +r5.620056308080827 " +1# +#8478 +1! +r5.592039615915244 " +#8479 +0! +r5.563999551039359 " +0# +#8480 +1! +r5.535937220426922 " +#8481 +0! +r5.507853731930661 " +1# +#8482 +1! +r5.479750194238649 " +#8483 +0! +r5.451627716830465 " +0# +#8484 +1! +r5.423487409933298 " +#8485 +0! +r5.395330384478377 " +1# +#8486 +1! +r5.367157752056728 " +#8487 +0! +r5.338970624875669 " +0# +#8488 +1! +r5.310770115714816 " +#8489 +0! +r5.282557337881918 " +1# +#8490 +1! +r5.254333405169135 " +#8491 +0! +r5.226099431808942 " +0# +#8492 +1! +r5.197856532430389 " +#8493 +0! +r5.16960582201472 " +1# +#8494 +1! +r5.141348415851546 " +#8495 +0! +r5.113085429495005 " +0# +#8496 +1! +r5.084817978719341 " +#8497 +0! +r5.056547179475077 " +1# +#8498 +1! +r5.028274147845023 " +#8499 +0! +r4.999999999999994 " +0# +#8500 +1! +r4.971725852154964 " +#8501 +0! +r4.94345282052491 " +1# +#8502 +1! +r4.915182021280678 " +#8503 +0! +r4.886914570505014 " +0# +#8504 +1! +r4.858651584148409 " +#8505 +0! +r4.830394177985235 " +1# +#8506 +1! +r4.802143467569629 " +#8507 +0! +r4.773900568191013 " +0# +#8508 +1! +r4.745666594830883 " +#8509 +0! +r4.717442662118101 " +1# +#8510 +1! +r4.689229884285171 " +#8511 +0! +r4.661029375124286 " +0# +#8512 +1! +r4.632842247943259 " +#8513 +0! +r4.604669615521674 " +1# +#8514 +1! +r4.576512590066689 " +#8515 +0! +r4.548372283169491 " +0# +#8516 +1! +r4.520249805761369 " +#8517 +0! +r4.492146268069326 " +1# +#8518 +1! +r4.464062779573097 " +#8519 +0! +r4.436000448960659 " +0# +b0101001000 $ +b01010011001011100100100010111111 % +1' +#8520 +1! +r4.407960384084712 " +0' +#8521 +0! +r4.379943691919129 " +1# +#8522 +1! +r4.351951478514819 " +#8523 +0! +r4.323984848956565 " +0# +#8524 +1! +r4.296044907318951 " +#8525 +0! +r4.268132756622999 " +1# +#8526 +1! +r4.240249498792722 " +#8527 +0! +r4.212396234611268 " +0# +#8528 +1! +r4.184574063677847 " +#8529 +0! +r4.156784084364221 " +1# +#8530 +1! +r4.129027393771128 " +#8531 +0! +r4.101305087685185 " +0# +#8532 +1! +r4.073618260535506 " +#8533 +0! +r4.045968005350743 " +1# +#8534 +1! +r4.018355413715565 " +#8535 +0! +r3.990781575727746 " +0# +#8536 +1! +r3.963247579955384 " +#8537 +0! +r3.935754513393235 " +1# +#8538 +1! +r3.908303461420649 " +#8539 +0! +r3.880895507758122 " +0# +#8540 +1! +r3.853531734424767 " +#8541 +0! +r3.826213221695467 " +1# +#8542 +1! +r3.7989410480583 " +#8543 +0! +r3.771716290172043 " +0# +#8544 +1! +r3.744540022823492 " +#8545 +0! +r3.717413318885087 " +1# +#8546 +1! +r3.690337249272773 " +#8547 +0! +r3.663312882903356 " +0# +#8548 +1! +r3.636341286652486 " +#8549 +0! +r3.609423525312723 " +1# +#8550 +1! +r3.582560661551132 " +#8551 +0! +r3.555753755867577 " +0# +#8552 +1! +r3.529003866552735 " +#8553 +0! +r3.502312049646553 " +1# +#8554 +1! +r3.475679358896199 " +#8555 +0! +r3.449106845714669 " +0# +#8556 +1! +r3.422595559139348 " +#8557 +0! +r3.396146545790371 " +1# +#8558 +1! +r3.369760849829531 " +#8559 +0! +r3.343439512918952 " +0# +#8560 +1! +r3.317183574179917 " +#8561 +0! +r3.290994070151871 " +1# +#8562 +1! +r3.264872034751709 " +#8563 +0! +r3.23881849923254 " +0# +#8564 +1! +r3.212834492143513 " +#8565 +0! +r3.186921039288501 " +1# +#8566 +1! +r3.1610791636864 " +#8567 +0! +r3.135309885530237 " +0# +#8568 +1! +r3.109614222146845 " +#8569 +0! +r3.083993187957163 " +1# +#8570 +1! +r3.058447794435691 " +#8571 +0! +r3.032979050070795 " +0# +#8572 +1! +r3.007587960324952 " +#8573 +0! +r2.982275527594823 " +1# +#8574 +1! +r2.95704275117208 " +#8575 +0! +r2.931890627203304 " +0# +#8576 +1! +r2.906820148651396 " +#8577 +0! +r2.881832305256034 " +1# +#8578 +1! +r2.856928083494264 " +#8579 +0! +r2.832108466542287 " +0# +#8580 +1! +r2.80737443423597 " +#8581 +0! +r2.782726963032669 " +1# +#8582 +1! +r2.758167025972288 " +#8583 +0! +r2.73369559263906 " +0# +#8584 +1! +r2.709313629123328 " +#8585 +0! +r2.685022097983236 " +1# +#8586 +1! +r2.660821958206782 " +#8587 +0! +r2.636714165174187 " +0# +#8588 +1! +r2.612699670619702 " +#8589 +0! +r2.588779422594482 " +1# +#8590 +1! +r2.56495436542904 " +#8591 +0! +r2.541225439695785 " +0# +#8592 +1! +r2.517593582172075 " +#8593 +0! +r2.494059725803127 " +1# +#8594 +1! +r2.4706247996654 " +#8595 +0! +r2.447289728929598 " +0# +#8596 +1! +r2.424055434824331 " +#8597 +0! +r2.400922834599775 " +1# +#8598 +1! +r2.377892841491401 " +#8599 +0! +r2.354966364683853 " +0# +#8600 +1! +r2.332144309275229 " +#8601 +0! +r2.309427576241175 " +1# +#8602 +1! +r2.286817062399413 " +#8603 +0! +r2.264313660374263 " +0# +#8604 +1! +r2.241918258561608 " +#8605 +0! +r2.219631741093511 " +1# +#8606 +1! +r2.197454987803473 " +#8607 +0! +r2.175388874191841 " +0# +#8608 +1! +r2.153434271390947 " +#8609 +0! +r2.131592046130868 " +1# +#8610 +1! +r2.109863060705356 " +#8611 +0! +r2.0882481729375 " +0# +#8612 +1! +r2.066748236146058 " +#8613 +0! +r2.045364099111698 " +1# +#8614 +1! +r2.024096606043533 " +#8615 +0! +r2.002946596545872 " +0# +#8616 +1! +r1.981914905584754 " +#8617 +0! +r1.961002363455397 " +1# +#8618 +1! +r1.940209795749134 " +#8619 +0! +r1.919538023320887 " +0# +b0110101100 $ +b100001011000001000000110100011 % +1' +#8620 +1! +r1.898987862256931 " +0' +#8621 +0! +r1.878560123842389 " +1# +#8622 +1! +r1.858255614529352 " +#8623 +0! +r1.83807513590517 " +0# +#8624 +1! +r1.818019484660518 " +#8625 +0! +r1.798089452558232 " +1# +#8626 +1! +r1.778285826401743 " +#8627 +0! +r1.758609388004393 " +0# +#8628 +1! +r1.739060914158299 " +#8629 +0! +r1.719641176603647 " +1# +#8630 +1! +r1.700350941998491 " +#8631 +0! +r1.681190971888197 " +0# +#8632 +1! +r1.662162022675665 " +#8633 +0! +r1.643264845591184 " +1# +#8634 +1! +r1.624500186662905 " +#8635 +0! +r1.60586878668756 " +0# +#8636 +1! +r1.587371381200748 " +#8637 +0! +r1.569008700448451 " +1# +#8638 +1! +r1.550781469357945 " +#8639 +0! +r1.532690407508938 " +0# +#8640 +1! +r1.514736229105699 " +#8641 +0! +r1.496919642948387 " +1# +#8642 +1! +r1.479241352405356 " +#8643 +0! +r1.461702055385209 " +0# +#8644 +1! +r1.444302444309379 " +#8645 +0! +r1.427043206084757 " +1# +#8646 +1! +r1.409925022076438 " +#8647 +0! +r1.392948568081035 " +0# +#8648 +1! +r1.376114514299979 " +#8649 +0! +r1.359423525312737 " +1# +#8650 +1! +r1.342876260051051 " +#8651 +0! +r1.326473371772657 " +0# +#8652 +1! +r1.310215508035459 " +#8653 +0! +r1.294103310672082 " +1# +#8654 +1! +r1.278137415764451 " +#8655 +0! +r1.262318453618832 " +0# +#8656 +1! +r1.246647048740728 " +#8657 +0! +r1.231123819810354 " +1# +#8658 +1! +r1.21574937965824 " +#8659 +0! +r1.200524335240942 " +0# +#8660 +1! +r1.185449287617111 " +#8661 +0! +r1.170524831923882 " +1# +#8662 +1! +r1.155751557353176 " +#8663 +0! +r1.141130047128578 " +0# +#8664 +1! +r1.126660878482244 " +#8665 +0! +r1.11234462263224 " +1# +#8666 +1! +r1.098181844759802 " +#8667 +0! +r1.084173103987119 " +0# +#8668 +1! +r1.070318953355353 " +#8669 +0! +r1.056619939802617 " +1# +#8670 +1! +r1.043076604142493 " +#8671 +0! +r1.029689481042714 " +0# +#8672 +1! +r1.016459099003949 " +#8673 +0! +r1.003385980339055 " +1# +#8674 +1! +r0.9904706411523438 " +#8675 +0! +r0.9777135913192909 " +0# +#8676 +1! +r0.9651153344664527 " +#8677 +0! +r0.9526763679513248 " +1# +#8678 +1! +r0.940397182843089 " +#8679 +0! +r0.9282782639029215 " +0# +#8680 +1! +r0.9163200895649632 " +#8681 +0! +r0.9045231319175171 " +1# +#8682 +1! +r0.8928878566842418 " +#8683 +0! +r0.8814147232058573 " +0# +#8684 +1! +r0.870104184422078 " +#8685 +0! +r0.8589566868535714 " +1# +#8686 +1! +r0.8479726705844906 " +#8687 +0! +r0.8371525692449406 " +0# +#8688 +1! +r0.8264968099940084 " +#8689 +0! +r0.8160058135028718 " +1# +#8690 +1! +r0.8056799939380479 " +#8691 +0! +r0.7955197589452503 " +0# +#8692 +1! +r0.7855255096331222 " +#8693 +0! +r0.7756976405575609 " +1# +#8694 +1! +r0.7660365397059854 " +#8695 +0! +r0.7565425884820947 " +0# +#8696 +1! +r0.7472161616908899 " +#8697 +0! +r0.7380576275236477 " +1# +#8698 +1! +r0.7290673475436664 " +#8699 +0! +r0.7202456766718166 " +0# +#8700 +1! +r0.7115929631725093 " +#8701 +0! +r0.7031095486401053 " +1# +#8702 +1! +r0.6947957679852577 " +#8703 +0! +r0.6866519494218091 " +0# +#8704 +1! +r0.6786784144537616 " +#8705 +0! +r0.670875477862606 " +1# +#8706 +1! +r0.6632434476949705 " +#8707 +0! +r0.6557826252502696 " +0# +#8708 +1! +r0.6484933050690325 " +#8709 +0! +r0.6413757749211548 " +1# +#8710 +1! +r0.634430315794523 " +#8711 +0! +r0.627657201883971 " +0# +#8712 +1! +r0.6210567005804233 " +#8713 +0! +r0.6146290724604002 " +1# +#8714 +1! +r0.6083745712756379 " +#8715 +0! +r0.6022934439431271 " +0# +#8716 +1! +r0.5963859305353774 " +#8717 +0! +r0.5906522642708945 " +1# +#8718 +1! +r0.5850926715049924 " +#8719 +0! +r0.5797073717209003 " +0# +b01000010000 $ +b01101111100100101011101010000111 % +1' +#8720 +1! +r0.5744965775210193 " +0' +#8721 +0! +r0.5694604946185704 " +1# +#8722 +1! +r0.5645993218295065 " +#8723 +0! +r0.5599132510645948 " +0# +#8724 +1! +r0.5554024673218834 " +#8725 +0! +r0.5510671486793832 " +1# +#8726 +1! +r0.5469074662880651 " +#8727 +0! +r0.542923584365071 " +0# +#8728 +1! +r0.5391156601872202 " +#8729 +0! +r0.5354838440848475 " +1# +#8730 +1! +r0.5320282794358384 " +#8731 +0! +r0.5287491026599609 " +0# +#8732 +1! +r0.5256464432135051 " +#8733 +0! +r0.5227204235841514 " +1# +#8734 +1! +r0.5199711592861433 " +#8735 +0! +r0.5173987588557232 " +0# +#8736 +1! +r0.5150033238468614 " +#8737 +0! +r0.5127849488272389 " +1# +#8738 +1! +r0.5107437213744852 " +#8739 +0! +r0.5088797220727779 " +0# +#8740 +1! +r0.507193024509613 " +#8741 +0! +r0.5056836952729196 " +1# +#8742 +1! +r0.5043517939484383 " +#8743 +0! +r0.5031973731173478 " +0# +#8744 +1! +r0.5022204783542081 " +#8745 +0! +r0.50142114822515 " +1# +#8746 +1! +r0.5007994142863588 " +#8747 +0! +r0.5003553010828279 " +0# +#8748 +1! +r0.5000888261473833 " +#8749 +0! +r0.5 " +1# +#8750 +1! +r0.5000888261473824 " +#8751 +0! +r0.5003553010828279 " +0# +#8752 +1! +r0.5007994142863588 " +#8753 +0! +r0.5014211482251509 " +1# +#8754 +1! +r0.502220478354209 " +#8755 +0! +r0.5031973731173487 " +0# +#8756 +1! +r0.5043517939484392 " +#8757 +0! +r0.5056836952729196 " +1# +#8758 +1! +r0.507193024509613 " +#8759 +0! +r0.5088797220727796 " +0# +#8760 +1! +r0.5107437213744879 " +#8761 +0! +r0.5127849488272371 " +1# +#8762 +1! +r0.5150033238468632 " +#8763 +0! +r0.5173987588557258 " +0# +#8764 +1! +r0.5199711592861407 " +#8765 +0! +r0.5227204235841478 " +1# +#8766 +1! +r0.5256464432135086 " +#8767 +0! +r0.5287491026599564 " +0# +#8768 +1! +r0.5320282794358384 " +#8769 +0! +r0.5354838440848546 " +1# +#8770 +1! +r0.5391156601872238 " +#8771 +0! +r0.542923584365071 " +0# +#8772 +1! +r0.5469074662880695 " +#8773 +0! +r0.5510671486793877 " +1# +#8774 +1! +r0.555402467321878 " +#8775 +0! +r0.5599132510645939 " +0# +#8776 +1! +r0.5645993218295109 " +#8777 +0! +r0.5694604946185757 " +1# +#8778 +1! +r0.5744965775210131 " +#8779 +0! +r0.5797073717209056 " +0# +#8780 +1! +r0.5850926715049978 " +#8781 +0! +r0.5906522642708874 " +1# +#8782 +1! +r0.5963859305353836 " +#8783 +0! +r0.6022934439431333 " +0# +#8784 +1! +r0.608374571275637 " +#8785 +0! +r0.6146290724603993 " +1# +#8786 +1! +r0.6210567005804375 " +#8787 +0! +r0.6276572018839772 " +0# +#8788 +1! +r0.6344303157945221 " +#8789 +0! +r0.6413757749211619 " +1# +#8790 +1! +r0.6484933050690396 " +#8791 +0! +r0.6557826252502608 " +0# +#8792 +1! +r0.6632434476949616 " +#8793 +0! +r0.670875477862614 " +1# +#8794 +1! +r0.6786784144537688 " +#8795 +0! +r0.6866519494217984 " +0# +#8796 +1! +r0.6947957679852657 " +#8797 +0! +r0.7031095486401142 " +1# +#8798 +1! +r0.7115929631725084 " +#8799 +0! +r0.7202456766718157 " +0# +#8800 +1! +r0.7290673475436762 " +#8801 +0! +r0.7380576275236468 " +1# +#8802 +1! +r0.7472161616908783 " +#8803 +0! +r0.7565425884821044 " +0# +#8804 +1! +r0.7660365397059952 " +#8805 +0! +r0.7756976405575706 " +1# +#8806 +1! +r0.7855255096331319 " +#8807 +0! +r0.7955197589452601 " +0# +#8808 +1! +r0.8056799939380355 " +#8809 +0! +r0.81600581350287 " +1# +#8810 +1! +r0.8264968099940431 " +#8811 +0! +r0.8371525692449513 " +0# +#8812 +1! +r0.8479726705844888 " +#8813 +0! +r0.858956686853583 " +1# +#8814 +1! +r0.8701041844220896 " +#8815 +0! +r0.8814147232058813 " +0# +#8816 +1! +r0.8928878566842409 " +#8817 +0! +r0.9045231319175286 " +1# +#8818 +1! +r0.9163200895649624 " +#8819 +0! +r0.9282782639029064 " +0# +b01001110100 $ +b101110001001111001101101011 % +1' +#8820 +1! +r0.9403971828431015 " +0' +#8821 +0! +r0.9526763679513373 " +1# +#8822 +1! +r0.9651153344664376 " +#8823 +0! +r0.9777135913193042 " +0# +#8824 +1! +r0.9904706411523563 " +#8825 +0! +r1.003385980339053 " +1# +#8826 +1! +r1.016459099003947 " +#8827 +0! +r1.029689481042728 " +0# +#8828 +1! +r1.043076604142506 " +#8829 +0! +r1.056619939802614 " +1# +#8830 +1! +r1.070318953355367 " +#8831 +0! +r1.084173103987133 " +0# +#8832 +1! +r1.098181844759785 " +#8833 +0! +r1.112344622632238 " +1# +#8834 +1! +r1.126660878482258 " +#8835 +0! +r1.14113004712856 " +0# +#8836 +1! +r1.155751557353158 " +#8837 +0! +r1.170524831923897 " +1# +#8838 +1! +r1.185449287617126 " +#8839 +0! +r1.200524335240924 " +0# +#8840 +1! +r1.215749379658255 " +#8841 +0! +r1.231123819810369 " +1# +#8842 +1! +r1.246647048740727 " +#8843 +0! +r1.262318453618848 " +0# +#8844 +1! +r1.278137415764485 " +#8845 +0! +r1.294103310672098 " +1# +#8846 +1! +r1.310215508035457 " +#8847 +0! +r1.326473371772673 " +0# +#8848 +1! +r1.342876260051105 " +#8849 +0! +r1.359423525312717 " +1# +#8850 +1! +r1.376114514299958 " +#8851 +0! +r1.392948568081052 " +0# +#8852 +1! +r1.409925022076417 " +#8853 +0! +r1.427043206084755 " +1# +#8854 +1! +r1.444302444309397 " +#8855 +0! +r1.461702055385247 " +0# +#8856 +1! +r1.479241352405335 " +#8857 +0! +r1.496919642948405 " +1# +#8858 +1! +r1.514736229105717 " +#8859 +0! +r1.532690407508936 " +0# +#8860 +1! +r1.550781469357922 " +#8861 +0! +r1.56900870044847 " +1# +#8862 +1! +r1.587371381200767 " +#8863 +0! +r1.605868786687537 " +0# +#8864 +1! +r1.624500186662924 " +#8865 +0! +r1.643264845591203 " +1# +#8866 +1! +r1.662162022675642 " +#8867 +0! +r1.681190971888216 " +0# +#8868 +1! +r1.70035094199851 " +#8869 +0! +r1.719641176603623 " +1# +#8870 +1! +r1.739060914158296 " +#8871 +0! +r1.758609388004435 " +0# +#8872 +1! +r1.778285826401763 " +#8873 +0! +r1.79808945255823 " +1# +#8874 +1! +r1.818019484660538 " +#8875 +0! +r1.83807513590519 " +0# +#8876 +1! +r1.858255614529372 " +#8877 +0! +r1.878560123842364 " +1# +#8878 +1! +r1.898987862256951 " +#8879 +0! +r1.919538023320908 " +0# +#8880 +1! +r1.940209795749107 " +#8881 +0! +r1.961002363455418 " +1# +#8882 +1! +r1.981914905584775 " +#8883 +0! +r2.002946596545869 " +0# +#8884 +1! +r2.024096606043555 " +#8885 +0! +r2.045364099111719 " +1# +#8886 +1! +r2.066748236146055 " +#8887 +0! +r2.088248172937497 " +0# +#8888 +1! +r2.109863060705377 " +#8889 +0! +r2.13159204613089 " +1# +#8890 +1! +r2.153434271390945 " +#8891 +0! +r2.175388874191863 " +0# +#8892 +1! +r2.197454987803495 " +#8893 +0! +r2.219631741093484 " +1# +#8894 +1! +r2.24191825856158 " +#8895 +0! +r2.264313660374286 " +0# +#8896 +1! +r2.286817062399436 " +#8897 +0! +r2.309427576241147 " +1# +#8898 +1! +r2.332144309275253 " +#8899 +0! +r2.354966364683876 " +0# +#8900 +1! +r2.377892841491398 " +#8901 +0! +r2.400922834599824 " +1# +#8902 +1! +r2.424055434824355 " +#8903 +0! +r2.447289728929595 " +0# +#8904 +1! +r2.470624799665424 " +#8905 +0! +r2.49405972580315 " +1# +#8906 +1! +r2.517593582172099 " +#8907 +0! +r2.541225439695756 " +0# +#8908 +1! +r2.564954365429064 " +#8909 +0! +r2.58877942259456 " +1# +#8910 +1! +r2.612699670619672 " +#8911 +0! +r2.636714165174184 " +0# +#8912 +1! +r2.660821958206807 " +#8913 +0! +r2.68502209798326 " +1# +#8914 +1! +r2.709313629123353 " +#8915 +0! +r2.733695592639085 " +0# +#8916 +1! +r2.758167025972312 " +#8917 +0! +r2.782726963032666 " +1# +#8918 +1! +r2.807374434235995 " +#8919 +0! +r2.832108466542312 " +0# +b01011011000 $ +b10001011111101110010110001001111 % +1' +#8920 +1! +r2.856928083494261 " +0' +#8921 +0! +r2.881832305256003 " +1# +#8922 +1! +r2.906820148651421 " +#8923 +0! +r2.931890627203329 " +0# +#8924 +1! +r2.957042751172049 " +#8925 +0! +r2.982275527594848 " +1# +#8926 +1! +r3.007587960324978 " +#8927 +0! +r3.032979050070763 " +0# +#8928 +1! +r3.058447794435687 " +#8929 +0! +r3.083993187957189 " +1# +#8930 +1! +r3.109614222146901 " +#8931 +0! +r3.135309885530234 " +0# +#8932 +1! +r3.161079163686425 " +#8933 +0! +r3.186921039288527 " +1# +#8934 +1! +r3.212834492143481 " +#8935 +0! +r3.238818499232566 " +0# +#8936 +1! +r3.264872034751735 " +#8937 +0! +r3.290994070151898 " +1# +#8938 +1! +r3.317183574179885 " +#8939 +0! +r3.343439512918978 " +0# +#8940 +1! +r3.369760849829557 " +#8941 +0! +r3.396146545790368 " +1# +#8942 +1! +r3.422595559139374 " +#8943 +0! +r3.449106845714697 " +0# +#8944 +1! +r3.475679358896195 " +#8945 +0! +r3.50231204964655 " +1# +#8946 +1! +r3.529003866552762 " +#8947 +0! +r3.555753755867604 " +0# +#8948 +1! +r3.582560661551129 " +#8949 +0! +r3.60942352531275 " +1# +#8950 +1! +r3.636341286652514 " +#8951 +0! +r3.663312882903322 " +0# +#8952 +1! +r3.690337249272801 " +#8953 +0! +r3.717413318885114 " +1# +#8954 +1! +r3.744540022823458 " +#8955 +0! +r3.771716290172009 " +0# +#8956 +1! +r3.798941048058327 " +#8957 +0! +r3.826213221695495 " +1# +#8958 +1! +r3.853531734424763 " +#8959 +0! +r3.880895507758181 " +0# +#8960 +1! +r3.908303461420677 " +#8961 +0! +r3.935754513393232 " +1# +#8962 +1! +r3.963247579955349 " +#8963 +0! +r3.990781575727774 " +0# +#8964 +1! +r4.018355413715531 " +#8965 +0! +r4.045968005350772 " +1# +#8966 +1! +r4.073618260535534 " +#8967 +0! +r4.101305087685214 " +0# +#8968 +1! +r4.129027393771095 " +#8969 +0! +r4.15678408436425 " +1# +#8970 +1! +r4.184574063677938 " +#8971 +0! +r4.212396234611234 " +0# +#8972 +1! +r4.240249498792719 " +#8973 +0! +r4.268132756623028 " +1# +#8974 +1! +r4.296044907318979 " +#8975 +0! +r4.323984848956593 " +0# +#8976 +1! +r4.35195147851488 " +#8977 +0! +r4.379943691919157 " +1# +#8978 +1! +r4.407960384084708 " +#8979 +0! +r4.436000448960624 " +0# +#8980 +1! +r4.464062779573125 " +#8981 +0! +r4.49214626806929 " +1# +#8982 +1! +r4.520249805761335 " +#8983 +0! +r4.548372283169519 " +0# +#8984 +1! +r4.576512590066718 " +#8985 +0! +r4.60466961552167 " +1# +#8986 +1! +r4.632842247943288 " +#8987 +0! +r4.661029375124346 " +0# +#8988 +1! +r4.689229884285135 " +#8989 +0! +r4.717442662118097 " +1# +#8990 +1! +r4.745666594830912 " +#8991 +0! +r4.773900568191041 " +0# +#8992 +1! +r4.802143467569595 " +#8993 +0! +r4.830394177985263 " +1# +#8994 +1! +r4.858651584148437 " +#8995 +0! +r4.886914570504978 " +0# +#8996 +1! +r4.915182021280643 " +#8997 +0! +r4.943452820524939 " +1# +#8998 +1! +r4.971725852154993 " +#8999 +0! +r4.99999999999999 " +0# +#9000 +1! +r5.028274147845051 " +#9001 +0! +r5.056547179475105 " +1# +#9002 +1! +r5.084817978719338 " +#9003 +0! +r5.113085429495034 " +0# +#9004 +1! +r5.141348415851574 " +#9005 +0! +r5.169605822014717 " +1# +#9006 +1! +r5.197856532430386 " +#9007 +0! +r5.226099431808971 " +0# +#9008 +1! +r5.254333405169165 " +#9009 +0! +r5.282557337881883 " +1# +#9010 +1! +r5.310770115714845 " +#9011 +0! +r5.338970624875699 " +0# +#9012 +1! +r5.367157752056692 " +#9013 +0! +r5.395330384478374 " +1# +#9014 +1! +r5.423487409933326 " +#9015 +0! +r5.451627716830461 " +0# +#9016 +1! +r5.479750194238646 " +#9017 +0! +r5.50785373193069 " +1# +#9018 +1! +r5.53593722042695 " +#9019 +0! +r5.563999551039356 " +0# +b01100111100 $ +b011010001010010110010100110011 % +1' +#9020 +1! +r5.592039615915272 " +0' +#9021 +0! +r5.620056308080855 " +1# +#9022 +1! +r5.648048521485101 " +#9023 +0! +r5.676015151043418 " +0# +#9024 +1! +r5.703955092681033 " +#9025 +0! +r5.731867243377016 " +1# +#9026 +1! +r5.759750501207325 " +#9027 +0! +r5.787603765388747 " +0# +#9028 +1! +r5.815425936322169 " +#9029 +0! +r5.843215915635731 " +1# +#9030 +1! +r5.870972606228886 " +#9031 +0! +r5.898694912314861 " +0# +#9032 +1! +r5.926381739464446 " +#9033 +0! +r5.95403199464924 " +1# +#9034 +1! +r5.98164458628445 " +#9035 +0! +r6.009218424272238 " +0# +#9036 +1! +r6.036752420044662 " +#9037 +0! +r6.064245486606748 " +1# +#9038 +1! +r6.091696538579366 " +#9039 +0! +r6.119104492241799 " +0# +#9040 +1! +r6.146468265575217 " +#9041 +0! +r6.173786778304579 " +1# +#9042 +1! +r6.201058951941715 " +#9043 +0! +r6.228283709827972 " +0# +#9044 +1! +r6.255459977176523 " +#9045 +0! +r6.282586681114928 " +1# +#9046 +1! +r6.309662750727242 " +#9047 +0! +r6.336687117096659 " +0# +#9048 +1! +r6.363658713347498 " +#9049 +0! +r6.390576474687231 " +1# +#9050 +1! +r6.417439338448853 " +#9051 +0! +r6.444246244132468 " +0# +#9052 +1! +r6.470996133447249 " +#9053 +0! +r6.497687950353431 " +1# +#9054 +1! +r6.524320641103786 " +#9055 +0! +r6.550893154285345 " +0# +#9056 +1! +r6.577404440860667 " +#9057 +0! +r6.603853454209613 " +1# +#9058 +1! +r6.630239150170484 " +#9059 +0! +r6.656560487081062 " +0# +#9060 +1! +r6.682816425820097 " +#9061 +0! +r6.709005929848114 " +1# +#9062 +1! +r6.735127965248306 " +#9063 +0! +r6.761181500767416 " +0# +#9064 +1! +r6.787165507856531 " +#9065 +0! +r6.813078960711484 " +1# +#9066 +1! +r6.838920836313556 " +#9067 +0! +r6.864690114469748 " +0# +#9068 +1! +r6.890385777853139 " +#9069 +0! +r6.91600681204288 " +1# +#9070 +1! +r6.941552205564294 " +#9071 +0! +r6.967020949929219 " +0# +#9072 +1! +r6.992412039675061 " +#9073 +0! +r7.017724472405135 " +1# +#9074 +1! +r7.042957248827991 " +#9075 +0! +r7.06810937279671 " +0# +#9076 +1! +r7.093179851348589 " +#9077 +0! +r7.118167694743979 " +1# +#9078 +1! +r7.143071916505722 " +#9079 +0! +r7.167891533457755 " +0# +#9080 +1! +r7.192625565763988 " +#9081 +0! +r7.217273036967317 " +1# +#9082 +1! +r7.241832974027698 " +#9083 +0! +r7.266304407360899 " +0# +#9084 +1! +r7.290686370876685 " +#9085 +0! +r7.314977902016778 " +1# +#9086 +1! +r7.339178041793231 " +#9087 +0! +r7.363285834825799 " +0# +#9088 +1! +r7.387300329380311 " +#9089 +0! +r7.411220577405505 " +1# +#9090 +1! +r7.435045634570919 " +#9091 +0! +r7.458774560304228 " +0# +#9092 +1! +r7.482406417827965 " +#9093 +0! +r7.50594027419686 " +1# +#9094 +1! +r7.529375200334586 " +#9095 +0! +r7.552710271070389 " +0# +#9096 +1! +r7.575944565175682 " +#9097 +0! +r7.599077165400212 " +1# +#9098 +1! +r7.622107158508586 " +#9099 +0! +r7.645033635316159 " +0# +#9100 +1! +r7.667855690724732 " +#9101 +0! +r7.690572423758837 " +1# +#9102 +1! +r7.71318293760065 " +#9103 +0! +r7.735686339625749 " +0# +#9104 +1! +r7.758081741438405 " +#9105 +0! +r7.780368258906501 " +1# +#9106 +1! +r7.802545012196514 " +#9107 +0! +r7.824611125808145 " +0# +#9108 +1! +r7.84656572860904 " +#9109 +0! +r7.868407953869119 " +1# +#9110 +1! +r7.890136939294631 " +#9111 +0! +r7.911751827062488 " +0# +#9112 +1! +r7.933251763853978 " +#9113 +0! +r7.954635900888314 " +1# +#9114 +1! +r7.975903393956431 " +#9115 +0! +r7.997053403454116 " +0# +#9116 +1! +r8.018085094415259 " +#9117 +0! +r8.038997636544615 " +1# +#9118 +1! +r8.059790204250877 " +#9119 +0! +r8.080461976679102 " +0# +b01110100000 $ +b10101000010110111001111000010111 % +1' +#9120 +1! +r8.10101213774308 " +0' +#9121 +0! +r8.121439876157622 " +1# +#9122 +1! +r8.141744385470638 " +#9123 +0! +r8.161924864094818 " +0# +#9124 +1! +r8.181980515339449 " +#9125 +0! +r8.201910547441802 " +1# +#9126 +1! +r8.221714173598244 " +#9127 +0! +r8.241390611995618 " +0# +#9128 +1! +r8.26093908584169 " +#9129 +0! +r8.280358823396364 " +1# +#9130 +1! +r8.299649058001542 " +#9131 +0! +r8.318809028111771 " +0# +#9132 +1! +r8.337837977324345 " +#9133 +0! +r8.356735154408828 " +1# +#9134 +1! +r8.375499813337063 " +#9135 +0! +r8.394131213312471 " +0# +#9136 +1! +r8.412628618799241 " +#9137 +0! +r8.430991299551538 " +1# +#9138 +1! +r8.449218530642064 " +#9139 +0! +r8.467309592491052 " +0# +#9140 +1! +r8.485263770894331 " +#9141 +0! +r8.503080357051584 " +1# +#9142 +1! +r8.520758647594652 " +#9143 +0! +r8.538297944614781 " +0# +#9144 +1! +r8.55569755569063 " +#9145 +0! +r8.572956793915271 " +1# +#9146 +1! +r8.590074977923571 " +#9147 +0! +r8.607051431918954 " +0# +#9148 +1! +r8.623885485700029 " +#9149 +0! +r8.640576474687272 " +1# +#9150 +1! +r8.65712373994894 " +#9151 +0! +r8.673526628227314 " +0# +#9152 +1! +r8.689784491964531 " +#9153 +0! +r8.705896689327909 " +1# +#9154 +1! +r8.72186258423554 " +#9155 +0! +r8.737681546381157 " +0# +#9156 +1! +r8.753352951259263 " +#9157 +0! +r8.768876180189654 " +1# +#9158 +1! +r8.784250620341769 " +#9159 +0! +r8.799475664759065 " +0# +#9160 +1! +r8.814550712382896 " +#9161 +0! +r8.829475168076126 " +1# +#9162 +1! +r8.844248442646832 " +#9163 +0! +r8.858869952871446 " +0# +#9164 +1! +r8.873339121517748 " +#9165 +0! +r8.887655377367752 " +1# +#9166 +1! +r8.901818155240205 " +#9167 +0! +r8.915826896012874 " +0# +#9168 +1! +r8.929681046644639 " +#9169 +0! +r8.943380060197375 " +1# +#9170 +1! +r8.956923395857515 " +#9171 +0! +r8.970310518957293 " +0# +#9172 +1! +r8.983540900996044 " +#9173 +0! +r8.996614019660967 " +1# +#9174 +1! +r9.009529358847663 " +#9175 +0! +r9.022286408680687 " +0# +#9176 +1! +r9.034884665533554 " +#9177 +0! +r9.047323632048682 " +1# +#9178 +1! +r9.059602817156932 " +#9179 +0! +r9.071721736097086 " +0# +#9180 +1! +r9.083679910435031 " +#9181 +0! +r9.095476868082477 " +1# +#9182 +1! +r9.107112143315751 " +#9183 +0! +r9.118585276794136 " +0# +#9184 +1! +r9.129895815577914 " +#9185 +0! +r9.14104331314641 " +1# +#9186 +1! +r9.152027329415528 " +#9187 +0! +r9.162847430755065 " +0# +#9188 +1! +r9.173503190005997 " +#9189 +0! +r9.183994186497122 " +1# +#9190 +1! +r9.194320006061957 " +#9191 +0! +r9.204480241054767 " +0# +#9192 +1! +r9.214474490366861 " +#9193 +0! +r9.224302359442433 " +1# +#9194 +1! +r9.233963460294008 " +#9195 +0! +r9.2434574115179 " +0# +#9196 +1! +r9.252783838309124 " +#9197 +0! +r9.261942372476348 " +1# +#9198 +1! +r9.270932652456338 " +#9199 +0! +r9.279754323328177 " +0# +#9200 +1! +r9.288407036827486 " +#9201 +0! +r9.296890451359907 " +1# +#9202 +1! +r9.305204232014727 " +#9203 +0! +r9.313348050578195 " +0# +#9204 +1! +r9.321321585546244 " +#9205 +0! +r9.32912452213739 " +1# +#9206 +1! +r9.336756552305051 " +#9207 +0! +r9.344217374749736 " +0# +#9208 +1! +r9.351506694930963 " +#9209 +0! +r9.358624225078835 " +1# +#9210 +1! +r9.365569684205473 " +#9211 +0! +r9.372342798116041 " +0# +#9212 +1! +r9.378943299419573 " +#9213 +0! +r9.385370927539597 " +1# +#9214 +1! +r9.391625428724359 " +#9215 +0! +r9.397706556056876 " +0# +#9216 +1! +r9.403614069464627 " +#9217 +0! +r9.40934773572911 " +1# +#9218 +1! +r9.41490732849501 " +#9219 +0! +r9.420292628279103 " +0# +b010000000100 $ +b0110110100011011101011011111011 % +1' +#9220 +1! +r9.425503422478984 " +0' +#9221 +0! +r9.430539505381427 " +1# +#9222 +1! +r9.435400678170492 " +#9223 +0! +r9.440086748935403 " +0# +#9224 +1! +r9.444597532678124 " +#9225 +0! +r9.448932851320613 " +1# +#9226 +1! +r9.453092533711928 " +#9227 +0! +r9.457076415634926 " +0# +#9228 +1! +r9.460884339812782 " +#9229 +0! +r9.46451615591516 " +1# +#9230 +1! +r9.46797172056416 " +#9231 +0! +r9.471250897340042 " +0# +#9232 +1! +r9.474353556786497 " +#9233 +0! +r9.47727957641585 " +1# +#9234 +1! +r9.48002884071386 " +#9235 +0! +r9.482601241144279 " +0# +#9236 +1! +r9.484996676153134 " +#9237 +0! +r9.487215051172761 " +1# +#9238 +1! +r9.489256278625515 " +#9239 +0! +r9.491120277927225 " +0# +#9240 +1! +r9.492806975490385 " +#9241 +0! +r9.494316304727079 " +1# +#9242 +1! +r9.495648206051561 " +#9243 +0! +r9.496802626882651 " +0# +#9244 +1! +r9.497779521645793 " +#9245 +0! +r9.49857885177485 " +1# +#9246 +1! +r9.499200585713641 " +#9247 +0! +r9.499644698917173 " +0# +#9248 +1! +r9.499911173852617 " +#9249 +0! +r9.5 " +1# +#9250 +1! +r9.499911173852617 " +#9251 +0! +r9.499644698917173 " +0# +#9252 +1! +r9.499200585713639 " +#9253 +0! +r9.49857885177485 " +1# +#9254 +1! +r9.497779521645793 " +#9255 +0! +r9.496802626882651 " +0# +#9256 +1! +r9.495648206051559 " +#9257 +0! +r9.494316304727079 " +1# +#9258 +1! +r9.492806975490389 " +#9259 +0! +r9.491120277927219 " +0# +#9260 +1! +r9.489256278625515 " +#9261 +0! +r9.487215051172761 " +1# +#9262 +1! +r9.484996676153132 " +#9263 +0! +r9.482601241144279 " +0# +#9264 +1! +r9.480028840713858 " +#9265 +0! +r9.47727957641585 " +1# +#9266 +1! +r9.474353556786493 " +#9267 +0! +r9.471250897340038 " +0# +#9268 +1! +r9.467971720564163 " +#9269 +0! +r9.464516155915147 " +1# +#9270 +1! +r9.460884339812782 " +#9271 +0! +r9.457076415634932 " +0# +#9272 +1! +r9.453092533711924 " +#9273 +0! +r9.44893285132061 " +1# +#9274 +1! +r9.44459753267812 " +#9275 +0! +r9.440086748935409 " +0# +#9276 +1! +r9.435400678170486 " +#9277 +0! +r9.430539505381422 " +1# +#9278 +1! +r9.425503422478986 " +#9279 +0! +r9.420292628279096 " +0# +#9280 +1! +r9.414907328495005 " +#9281 +0! +r9.40934773572911 " +1# +#9282 +1! +r9.40361406946462 " +#9283 +0! +r9.397706556056871 " +0# +#9284 +1! +r9.391625428724367 " +#9285 +0! +r9.38537092753959 " +1# +#9286 +1! +r9.378943299419568 " +#9287 +0! +r9.372342798116033 " +0# +#9288 +1! +r9.365569684205482 " +#9289 +0! +r9.358624225078835 " +1# +#9290 +1! +r9.351506694930947 " +#9291 +0! +r9.344217374749736 " +0# +#9292 +1! +r9.336756552305035 " +#9293 +0! +r9.329124522137382 " +1# +#9294 +1! +r9.321321585546244 " +#9295 +0! +r9.313348050578188 " +0# +#9296 +1! +r9.305204232014738 " +#9297 +0! +r9.2968904513599 " +1# +#9298 +1! +r9.288407036827497 " +#9299 +0! +r9.27975432332819 " +0# +#9300 +1! +r9.27093265245631 " +#9301 +0! +r9.261942372476359 " +1# +#9302 +1! +r9.252783838309117 " +#9303 +0! +r9.243457411517891 " +0# +#9304 +1! +r9.233963460294021 " +#9305 +0! +r9.224302359442424 " +1# +#9306 +1! +r9.214474490366863 " +#9307 +0! +r9.204480241054746 " +0# +#9308 +1! +r9.194320006061959 " +#9309 +0! +r9.183994186497134 " +1# +#9310 +1! +r9.173503190005963 " +#9311 +0! +r9.162847430755068 " +0# +#9312 +1! +r9.152027329415517 " +#9313 +0! +r9.141043313146398 " +1# +#9314 +1! +r9.12989581557793 " +#9315 +0! +r9.118585276794125 " +0# +#9316 +1! +r9.107112143315767 " +#9317 +0! +r9.095476868082464 " +1# +#9318 +1! +r9.083679910435016 " +#9319 +0! +r9.071721736097086 " +0# +b010001101000 $ +b1000100110000000000111111011111 % +1' +#9320 +1! +r9.059602817156906 " +0' +#9321 +0! +r9.047323632048684 " +1# +#9322 +1! +r9.034884665533555 " +#9323 +0! +r9.022286408680674 " +0# +#9324 +1! +r9.009529358847651 " +#9325 +0! +r8.996614019660955 " +1# +#9326 +1! +r8.983540900996061 " +#9327 +0! +r8.97031051895728 " +0# +#9328 +1! +r8.956923395857501 " +#9329 +0! +r8.943380060197393 " +1# +#9330 +1! +r8.929681046644625 " +#9331 +0! +r8.915826896012891 " +0# +#9332 +1! +r8.901818155240207 " +#9333 +0! +r8.887655377367738 " +1# +#9334 +1! +r8.873339121517734 " +#9335 +0! +r8.858869952871432 " +0# +#9336 +1! +r8.844248442646833 " +#9337 +0! +r8.829475168076112 " +1# +#9338 +1! +r8.814550712382866 " +#9339 +0! +r8.799475664759068 " +0# +#9340 +1! +r8.784250620341753 " +#9341 +0! +r8.76887618018964 " +1# +#9342 +1! +r8.753352951259282 " +#9343 +0! +r8.737681546381143 " +0# +#9344 +1! +r8.721862584235524 " +#9345 +0! +r8.705896689327929 " +1# +#9346 +1! +r8.689784491964517 " +#9347 +0! +r8.673526628227318 " +0# +#9348 +1! +r8.657123739948924 " +#9349 +0! +r8.640576474687274 " +1# +#9350 +1! +r8.623885485700033 " +#9351 +0! +r8.607051431918919 " +0# +#9352 +1! +r8.590074977923575 " +#9353 +0! +r8.572956793915255 " +1# +#9354 +1! +r8.555697555690614 " +#9355 +0! +r8.538297944614802 " +0# +#9356 +1! +r8.520758647594636 " +#9357 +0! +r8.503080357051605 " +1# +#9358 +1! +r8.485263770894273 " +#9359 +0! +r8.467309592491075 " +0# +#9360 +1! +r8.449218530642067 " +#9361 +0! +r8.430991299551479 " +1# +#9362 +1! +r8.412628618799264 " +#9363 +0! +r8.394131213312454 " +0# +#9364 +1! +r8.375499813337065 " +#9365 +0! +r8.356735154408829 " +1# +#9366 +1! +r8.337837977324327 " +#9367 +0! +r8.318809028111772 " +0# +#9368 +1! +r8.299649058001501 " +#9369 +0! +r8.280358823396366 " +1# +#9370 +1! +r8.260939085841715 " +#9371 +0! +r8.241390611995554 " +0# +#9372 +1! +r8.22171417359827 " +#9373 +0! +r8.201910547441781 " +1# +#9374 +1! +r8.181980515339474 " +#9375 +0! +r8.161924864094798 " +0# +#9376 +1! +r8.141744385470616 " +#9377 +0! +r8.121439876157625 " +1# +#9378 +1! +r8.101012137743037 " +#9379 +0! +r8.08046197667908 " +0# +#9380 +1! +r8.059790204250881 " +#9381 +0! +r8.038997636544593 " +1# +#9382 +1! +r8.018085094415261 " +#9383 +0! +r7.997053403454143 " +0# +#9384 +1! +r7.975903393956409 " +#9385 +0! +r7.954635900888293 " +1# +#9386 +1! +r7.933251763853957 " +#9387 +0! +r7.911751827062515 " +0# +#9388 +1! +r7.89013693929461 " +#9389 +0! +r7.868407953869099 " +1# +#9390 +1! +r7.846565728609068 " +#9391 +0! +r7.824611125808124 " +0# +#9392 +1! +r7.802545012196492 " +#9393 +0! +r7.780368258906504 " +1# +#9394 +1! +r7.758081741438382 " +#9395 +0! +r7.735686339625727 " +0# +#9396 +1! +r7.713182937600603 " +#9397 +0! +r7.69057242375884 " +1# +#9398 +1! +r7.66785569072476 " +#9399 +0! +r7.645033635316137 " +0# +#9400 +1! +r7.622107158508615 " +#9401 +0! +r7.599077165400189 " +1# +#9402 +1! +r7.575944565175659 " +#9403 +0! +r7.552710271070419 " +0# +#9404 +1! +r7.529375200334563 " +#9405 +0! +r7.505940274196837 " +1# +#9406 +1! +r7.482406417827942 " +#9407 +0! +r7.458774560304178 " +0# +#9408 +1! +r7.435045634570923 " +#9409 +0! +r7.411220577405454 " +1# +#9410 +1! +r7.387300329380315 " +#9411 +0! +r7.36328583482583 " +0# +#9412 +1! +r7.339178041793152 " +#9413 +0! +r7.314977902016782 " +1# +#9414 +1! +r7.290686370876662 " +#9415 +0! +r7.26630440736093 " +0# +#9416 +1! +r7.24183297402773 " +#9417 +0! +r7.217273036967293 " +1# +#9418 +1! +r7.192625565763992 " +#9419 +0! +r7.167891533457674 " +0# +b010011001100 $ +b01010010111100100100100011000011 % +1' +#9420 +1! +r7.143071916505754 " +0' +#9421 +0! +r7.118167694743983 " +1# +#9422 +1! +r7.093179851348538 " +#9423 +0! +r7.068109372796714 " +0# +#9424 +1! +r7.042957248827937 " +#9425 +0! +r7.017724472405138 " +1# +#9426 +1! +r6.992412039675036 " +#9427 +0! +r6.967020949929195 " +0# +#9428 +1! +r6.941552205564328 " +#9429 +0! +r6.916006812042797 " +1# +#9430 +1! +r6.890385777853172 " +#9431 +0! +r6.864690114469781 " +0# +#9432 +1! +r6.838920836313531 " +#9433 +0! +r6.813078960711517 " +1# +#9434 +1! +r6.787165507856505 " +#9435 +0! +r6.76118150076742 " +0# +#9436 +1! +r6.735127965248251 " +#9437 +0! +r6.709005929848088 " +1# +#9438 +1! +r6.682816425820101 " +#9439 +0! +r6.656560487081037 " +0# +#9440 +1! +r6.630239150170458 " +#9441 +0! +r6.603853454209647 " +1# +#9442 +1! +r6.577404440860642 " +#9443 +0! +r6.550893154285319 " +0# +#9444 +1! +r6.52432064110382 " +#9445 +0! +r6.497687950353406 " +1# +#9446 +1! +r6.470996133447223 " +#9447 +0! +r6.444246244132442 " +0# +#9448 +1! +r6.417439338448887 " +#9449 +0! +r6.390576474687236 " +1# +#9450 +1! +r6.363658713347472 " +#9451 +0! +r6.336687117096663 " +0# +#9452 +1! +r6.309662750727215 " +#9453 +0! +r6.282586681114871 " +1# +#9454 +1! +r6.255459977176526 " +#9455 +0! +r6.228283709827945 " +0# +#9456 +1! +r6.201058951941689 " +#9457 +0! +r6.173786778304552 " +1# +#9458 +1! +r6.146468265575253 " +#9459 +0! +r6.119104492241835 " +0# +#9460 +1! +r6.091696538579277 " +#9461 +0! +r6.064245486606784 " +1# +#9462 +1! +r6.036752420044635 " +#9463 +0! +r6.009218424272211 " +0# +#9464 +1! +r5.981644586284454 " +#9465 +0! +r5.954031994649213 " +1# +#9466 +1! +r5.926381739464451 " +#9467 +0! +r5.898694912314833 " +0# +#9468 +1! +r5.870972606228859 " +#9469 +0! +r5.843215915635766 " +1# +#9470 +1! +r5.815425936322078 " +#9471 +0! +r5.787603765388751 " +0# +#9472 +1! +r5.759750501207297 " +#9473 +0! +r5.731867243376926 " +1# +#9474 +1! +r5.703955092681069 " +#9475 +0! +r5.676015151043391 " +0# +#9476 +1! +r5.648048521485137 " +#9477 +0! +r5.620056308080827 " +1# +#9478 +1! +r5.592039615915245 " +#9479 +0! +r5.563999551039361 " +0# +#9480 +1! +r5.535937220426891 " +#9481 +0! +r5.507853731930695 " +1# +#9482 +1! +r5.47975019423865 " +#9483 +0! +r5.451627716830433 " +0# +#9484 +1! +r5.423487409933331 " +#9485 +0! +r5.395330384478346 " +1# +#9486 +1! +r5.367157752056729 " +#9487 +0! +r5.338970624875671 " +0# +#9488 +1! +r5.310770115714817 " +#9489 +0! +r5.282557337881919 " +1# +#9490 +1! +r5.254333405169073 " +#9491 +0! +r5.226099431809008 " +0# +#9492 +1! +r5.19785653243039 " +#9493 +0! +r5.169605822014657 " +1# +#9494 +1! +r5.141348415851547 " +#9495 +0! +r5.113085429495007 " +0# +#9496 +1! +r5.084817978719342 " +#9497 +0! +r5.056547179475078 " +1# +#9498 +1! +r5.028274147845024 " +#9499 +0! +r5.000000000000027 " +0# +#9500 +1! +r4.971725852154965 " +#9501 +0! +r4.943452820524911 " +1# +#9502 +1! +r4.915182021280679 " +#9503 +0! +r4.886914570504951 " +0# +#9504 +1! +r4.85865158414841 " +#9505 +0! +r4.830394177985299 " +1# +#9506 +1! +r4.802143467569567 " +#9507 +0! +r4.773900568191014 " +0# +#9508 +1! +r4.745666594830884 " +#9509 +0! +r4.717442662118102 " +1# +#9510 +1! +r4.689229884285171 " +#9511 +0! +r4.661029375124254 " +0# +#9512 +1! +r4.632842247943293 " +#9513 +0! +r4.604669615521643 " +1# +#9514 +1! +r4.576512590066691 " +#9515 +0! +r4.548372283169556 " +0# +#9516 +1! +r4.520249805761307 " +#9517 +0! +r4.492146268069327 " +1# +#9518 +1! +r4.464062779573098 " +#9519 +0! +r4.436000448960661 " +0# +b010100110000 $ +b100001001001001000000110100111 % +1' +#9520 +1! +r4.407960384084713 " +0' +#9521 +0! +r4.379943691919098 " +1# +#9522 +1! +r4.351951478514884 " +#9523 +0! +r4.323984848956567 " +0# +#9524 +1! +r4.296044907318952 " +#9525 +0! +r4.268132756623032 " +1# +#9526 +1! +r4.240249498792692 " +#9527 +0! +r4.212396234611269 " +0# +#9528 +1! +r4.184574063677848 " +#9529 +0! +r4.156784084364254 " +1# +#9530 +1! +r4.12902739377113 " +#9531 +0! +r4.101305087685124 " +0# +#9532 +1! +r4.07361826053557 " +#9533 +0! +r4.045968005350745 " +1# +#9534 +1! +r4.018355413715504 " +#9535 +0! +r3.99078157572781 " +0# +#9536 +1! +r3.963247579955323 " +#9537 +0! +r3.935754513393237 " +1# +#9538 +1! +r3.90830346142065 " +#9539 +0! +r3.880895507758123 " +0# +#9540 +1! +r3.853531734424767 " +#9541 +0! +r3.826213221695437 " +1# +#9542 +1! +r3.798941048058332 " +#9543 +0! +r3.771716290172044 " +0# +#9544 +1! +r3.744540022823432 " +#9545 +0! +r3.717413318885088 " +1# +#9546 +1! +r3.690337249272774 " +#9547 +0! +r3.663312882903357 " +0# +#9548 +1! +r3.636341286652487 " +#9549 +0! +r3.609423525312724 " +1# +#9550 +1! +r3.582560661551133 " +#9551 +0! +r3.555753755867518 " +0# +#9552 +1! +r3.529003866552797 " +#9553 +0! +r3.502312049646554 " +1# +#9554 +1! +r3.475679358896169 " +#9555 +0! +r3.44910684571467 " +0# +#9556 +1! +r3.422595559139348 " +#9557 +0! +r3.396146545790372 " +1# +#9558 +1! +r3.369760849829532 " +#9559 +0! +r3.343439512918953 " +0# +#9560 +1! +r3.317183574179918 " +#9561 +0! +r3.290994070151872 " +1# +#9562 +1! +r3.26487203475171 " +#9563 +0! +r3.238818499232599 " +0# +#9564 +1! +r3.212834492143455 " +#9565 +0! +r3.186921039288502 " +1# +#9566 +1! +r3.16107916368643 " +#9567 +0! +r3.135309885530209 " +0# +#9568 +1! +r3.109614222146846 " +#9569 +0! +r3.083993187957164 " +1# +#9570 +1! +r3.058447794435692 " +#9571 +0! +r3.032979050070796 " +0# +#9572 +1! +r3.007587960324896 " +#9573 +0! +r2.982275527594881 " +1# +#9574 +1! +r2.957042751172024 " +#9575 +0! +r2.931890627203305 " +0# +#9576 +1! +r2.906820148651454 " +#9577 +0! +r2.881832305255979 " +1# +#9578 +1! +r2.856928083494265 " +#9579 +0! +r2.832108466542288 " +0# +#9580 +1! +r2.807374434236027 " +#9581 +0! +r2.782726963032669 " +1# +#9582 +1! +r2.758167025972261 " +#9583 +0! +r2.733695592639089 " +0# +#9584 +1! +r2.709313629123329 " +#9585 +0! +r2.685022097983236 " +1# +#9586 +1! +r2.660821958206811 " +#9587 +0! +r2.63671416517416 " +0# +#9588 +1! +r2.612699670619703 " +#9589 +0! +r2.588779422594482 " +1# +#9590 +1! +r2.564954365429094 " +#9591 +0! +r2.541225439695786 " +0# +#9592 +1! +r2.517593582172023 " +#9593 +0! +r2.494059725803181 " +1# +#9594 +1! +r2.4706247996654 " +#9595 +0! +r2.447289728929599 " +0# +#9596 +1! +r2.424055434824358 " +#9597 +0! +r2.400922834599776 " +1# +#9598 +1! +r2.377892841491402 " +#9599 +0! +r2.354966364683853 " +0# +#9600 +1! +r2.33214430927523 " +#9601 +0! +r2.309427576241176 " +1# +#9602 +1! +r2.286817062399364 " +#9603 +0! +r2.26431366037429 " +0# +#9604 +1! +r2.241918258561608 " +#9605 +0! +r2.219631741093461 " +1# +#9606 +1! +r2.197454987803474 " +#9607 +0! +r2.175388874191842 " +0# +#9608 +1! +r2.153434271390948 " +#9609 +0! +r2.131592046130869 " +1# +#9610 +1! +r2.109863060705357 " +#9611 +0! +r2.0882481729375 " +0# +#9612 +1! +r2.066748236146034 " +#9613 +0! +r2.045364099111723 " +1# +#9614 +1! +r2.024096606043558 " +#9615 +0! +r2.002946596545849 " +0# +#9616 +1! +r1.981914905584754 " +#9617 +0! +r1.961002363455398 " +1# +#9618 +1! +r1.940209795749134 " +#9619 +0! +r1.919538023320888 " +0# +b010110010100 $ +b01101111010101101011101010001011 % +1' +#9620 +1! +r1.898987862256931 " +0' +#9621 +0! +r1.87856012384239 " +1# +#9622 +1! +r1.858255614529352 " +#9623 +0! +r1.838075135905171 " +0# +#9624 +1! +r1.818019484660541 " +#9625 +0! +r1.798089452558188 " +1# +#9626 +1! +r1.778285826401745 " +#9627 +0! +r1.758609388004416 " +0# +#9628 +1! +r1.739060914158277 " +#9629 +0! +r1.719641176603647 " +1# +#9630 +1! +r1.700350941998492 " +#9631 +0! +r1.681190971888241 " +0# +#9632 +1! +r1.662162022675666 " +#9633 +0! +r1.643264845591142 " +1# +#9634 +1! +r1.624500186662948 " +#9635 +0! +r1.605868786687519 " +0# +#9636 +1! +r1.587371381200749 " +#9637 +0! +r1.569008700448494 " +1# +#9638 +1! +r1.550781469357905 " +#9639 +0! +r1.532690407508939 " +0# +#9640 +1! +r1.514736229105679 " +#9641 +0! +r1.496919642948408 " +1# +#9642 +1! +r1.479241352405357 " +#9643 +0! +r1.46170205538519 " +0# +#9644 +1! +r1.444302444309399 " +#9645 +0! +r1.427043206084738 " +1# +#9646 +1! +r1.409925022076439 " +#9647 +0! +r1.392948568081074 " +0# +#9648 +1! +r1.376114514299942 " +#9649 +0! +r1.359423525312738 " +1# +#9650 +1! +r1.342876260051052 " +#9651 +0! +r1.326473371772694 " +0# +#9652 +1! +r1.31021550803546 " +#9653 +0! +r1.294103310672064 " +1# +#9654 +1! +r1.278137415764487 " +#9655 +0! +r1.262318453618832 " +0# +#9656 +1! +r1.246647048740729 " +#9657 +0! +r1.231123819810354 " +1# +#9658 +1! +r1.21574937965824 " +#9659 +0! +r1.200524335240943 " +0# +#9660 +1! +r1.185449287617112 " +#9661 +0! +r1.170524831923882 " +1# +#9662 +1! +r1.155751557353177 " +#9663 +0! +r1.141130047128546 " +0# +#9664 +1! +r1.126660878482276 " +#9665 +0! +r1.11234462263224 " +1# +#9666 +1! +r1.098181844759771 " +#9667 +0! +r1.08417310398712 " +0# +#9668 +1! +r1.070318953355353 " +#9669 +0! +r1.056619939802617 " +1# +#9670 +1! +r1.043076604142493 " +#9671 +0! +r1.029689481042715 " +0# +#9672 +1! +r1.016459099003949 " +#9673 +0! +r1.003385980339041 " +1# +#9674 +1! +r0.9904706411523438 " +#9675 +0! +r0.9777135913193202 " +0# +#9676 +1! +r0.9651153344664252 " +#9677 +0! +r0.9526763679513248 " +1# +#9678 +1! +r0.9403971828430899 " +#9679 +0! +r0.9282782639029215 " +0# +#9680 +1! +r0.9163200895649641 " +#9681 +0! +r0.904523131917518 " +1# +#9682 +1! +r0.8928878566842426 " +#9683 +0! +r0.8814147232058573 " +0# +#9684 +1! +r0.8701041844220789 " +#9685 +0! +r0.8589566868535847 " +1# +#9686 +1! +r0.8479726705844781 " +#9687 +0! +r0.8371525692449406 " +0# +#9688 +1! +r0.8264968099940324 " +#9689 +0! +r0.8160058135028603 " +1# +#9690 +1! +r0.8056799939380488 " +#9691 +0! +r0.7955197589452272 " +0# +#9692 +1! +r0.7855255096331453 " +#9693 +0! +r0.7756976405575609 " +1# +#9694 +1! +r0.7660365397059641 " +#9695 +0! +r0.7565425884821169 " +0# +#9696 +1! +r0.7472161616908695 " +#9697 +0! +r0.7380576275236477 " +1# +#9698 +1! +r0.7290673475436771 " +#9699 +0! +r0.7202456766718068 " +0# +#9700 +1! +r0.7115929631725093 " +#9701 +0! +r0.7031095486400964 " +1# +#9702 +1! +r0.6947957679852674 " +#9703 +0! +r0.6866519494218091 " +0# +#9704 +1! +r0.6786784144537439 " +#9705 +0! +r0.6708754778626238 " +1# +#9706 +1! +r0.6632434476949536 " +#9707 +0! +r0.6557826252502696 " +0# +#9708 +1! +r0.6484933050690325 " +#9709 +0! +r0.6413757749211548 " +1# +#9710 +1! +r0.634430315794523 " +#9711 +0! +r0.6276572018839559 " +0# +#9712 +1! +r0.6210567005804384 " +#9713 +0! +r0.6146290724604002 " +1# +#9714 +1! +r0.6083745712756308 " +#9715 +0! +r0.6022934439431342 " +0# +#9716 +1! +r0.5963859305353774 " +#9717 +0! +r0.5906522642708945 " +1# +#9718 +1! +r0.5850926715049924 " +#9719 +0! +r0.5797073717209011 " +0# +b010111111000 $ +b101100010001111001101101111 % +1' +#9720 +1! +r0.5744965775210193 " +0' +#9721 +0! +r0.5694604946185704 " +1# +#9722 +1! +r0.5645993218295065 " +#9723 +0! +r0.5599132510645948 " +0# +#9724 +1! +r0.5554024673218736 " +#9725 +0! +r0.5510671486793832 " +1# +#9726 +1! +r0.5469074662880695 " +#9727 +0! +r0.5429235843650666 " +0# +#9728 +1! +r0.5391156601872202 " +#9729 +0! +r0.5354838440848475 " +1# +#9730 +1! +r0.5320282794358384 " +#9731 +0! +r0.5287491026599609 " +0# +#9732 +1! +r0.5256464432135051 " +#9733 +0! +r0.5227204235841514 " +1# +#9734 +1! +r0.5199711592861371 " +#9735 +0! +r0.5173987588557232 " +0# +#9736 +1! +r0.5150033238468668 " +#9737 +0! +r0.5127849488272345 " +1# +#9738 +1! +r0.5107437213744852 " +#9739 +0! +r0.5088797220727779 " +0# +#9740 +1! +r0.507193024509613 " +#9741 +0! +r0.5056836952729196 " +1# +#9742 +1! +r0.5043517939484365 " +#9743 +0! +r0.5031973731173487 " +0# +#9744 +1! +r0.5022204783542081 " +#9745 +0! +r0.50142114822515 " +1# +#9746 +1! +r0.5007994142863605 " +#9747 +0! +r0.5003553010828279 " +0# +#9748 +1! +r0.5000888261473833 " +#9749 +0! +r0.5 " +1# +#9750 +1! +r0.5000888261473824 " +#9751 +0! +r0.5003553010828279 " +0# +#9752 +1! +r0.5007994142863605 " +#9753 +0! +r0.5014211482251492 " +1# +#9754 +1! +r0.502220478354209 " +#9755 +0! +r0.5031973731173496 " +0# +#9756 +1! +r0.5043517939484374 " +#9757 +0! +r0.5056836952729213 " +1# +#9758 +1! +r0.507193024509613 " +#9759 +0! +r0.5088797220727796 " +0# +#9760 +1! +r0.5107437213744879 " +#9761 +0! +r0.5127849488272371 " +1# +#9762 +1! +r0.5150033238468685 " +#9763 +0! +r0.5173987588557205 " +0# +#9764 +1! +r0.5199711592861398 " +#9765 +0! +r0.522720423584154 " +1# +#9766 +1! +r0.5256464432135015 " +#9767 +0! +r0.5287491026599636 " +0# +#9768 +1! +r0.5320282794358375 " +#9769 +0! +r0.5354838440848546 " +1# +#9770 +1! +r0.5391156601872238 " +#9771 +0! +r0.542923584365071 " +0# +#9772 +1! +r0.546907466288074 " +#9773 +0! +r0.5510671486793823 " +1# +#9774 +1! +r0.555402467321878 " +#9775 +0! +r0.5599132510645992 " +0# +#9776 +1! +r0.5645993218295109 " +#9777 +0! +r0.5694604946185748 " +1# +#9778 +1! +r0.5744965775210122 " +#9779 +0! +r0.5797073717209056 " +0# +#9780 +1! +r0.5850926715049978 " +#9781 +0! +r0.5906522642708874 " +1# +#9782 +1! +r0.5963859305353827 " +#9783 +0! +r0.6022934439431333 " +0# +#9784 +1! +r0.6083745712756361 " +#9785 +0! +r0.6146290724604055 " +1# +#9786 +1! +r0.6210567005804375 " +#9787 +0! +r0.6276572018839692 " +0# +#9788 +1! +r0.6344303157945301 " +#9789 +0! +r0.6413757749211619 " +1# +#9790 +1! +r0.6484933050690396 " +#9791 +0! +r0.6557826252502599 " +0# +#9792 +1! +r0.6632434476949607 " +#9793 +0! +r0.6708754778626309 " +1# +#9794 +1! +r0.678678414453751 " +#9795 +0! +r0.6866519494218171 " +0# +#9796 +1! +r0.6947957679852657 " +#9797 +0! +r0.7031095486401044 " +1# +#9798 +1! +r0.7115929631725271 " +#9799 +0! +r0.7202456766718157 " +0# +#9800 +1! +r0.7290673475436753 " +#9801 +0! +r0.7380576275236459 " +1# +#9802 +1! +r0.7472161616908783 " +#9803 +0! +r0.7565425884821249 " +0# +#9804 +1! +r0.7660365397059836 " +#9805 +0! +r0.7756976405575706 " +1# +#9806 +1! +r0.7855255096331319 " +#9807 +0! +r0.795519758945237 " +0# +#9808 +1! +r0.8056799939380586 " +#9809 +0! +r0.81600581350287 " +1# +#9810 +1! +r0.8264968099940431 " +#9811 +0! +r0.8371525692449264 " +0# +#9812 +1! +r0.8479726705844888 " +#9813 +0! +r0.8589566868535945 " +1# +#9814 +1! +r0.8701041844220763 " +#9815 +0! +r0.8814147232058813 " +0# +#9816 +1! +r0.89288785668424 " +#9817 +0! +r0.9045231319175153 " +1# +#9818 +1! +r0.9163200895649757 " +#9819 +0! +r0.9282782639029055 " +0# +b011001011100 $ +b10001011101110110010110001010011 % +1' +#9820 +1! +r0.9403971828431015 " +0' +#9821 +0! +r0.9526763679513364 " +1# +#9822 +1! +r0.9651153344664367 " +#9823 +0! +r0.9777135913193318 " +0# +#9824 +1! +r0.990470641152327 " +#9825 +0! +r1.003385980339053 " +1# +#9826 +1! +r1.016459099003976 " +#9827 +0! +r1.029689481042727 " +0# +#9828 +1! +r1.043076604142505 " +#9829 +0! +r1.056619939802614 " +1# +#9830 +1! +r1.070318953355367 " +#9831 +0! +r1.084173103987133 " +0# +#9832 +1! +r1.098181844759784 " +#9833 +0! +r1.112344622632254 " +1# +#9834 +1! +r1.126660878482241 " +#9835 +0! +r1.14113004712856 " +0# +#9836 +1! +r1.15575155735319 " +#9837 +0! +r1.170524831923896 " +1# +#9838 +1! +r1.185449287617126 " +#9839 +0! +r1.200524335240923 " +0# +#9840 +1! +r1.215749379658255 " +#9841 +0! +r1.231123819810369 " +1# +#9842 +1! +r1.246647048740726 " +#9843 +0! +r1.262318453618847 " +0# +#9844 +1! +r1.278137415764484 " +#9845 +0! +r1.294103310672079 " +1# +#9846 +1! +r1.310215508035475 " +#9847 +0! +r1.326473371772673 " +0# +#9848 +1! +r1.342876260051067 " +#9849 +0! +r1.359423525312753 " +1# +#9850 +1! +r1.376114514299958 " +#9851 +0! +r1.392948568081052 " +0# +#9852 +1! +r1.409925022076416 " +#9853 +0! +r1.427043206084754 " +1# +#9854 +1! +r1.444302444309415 " +#9855 +0! +r1.461702055385207 " +0# +#9856 +1! +r1.479241352405374 " +#9857 +0! +r1.496919642948404 " +1# +#9858 +1! +r1.514736229105696 " +#9859 +0! +r1.532690407508956 " +0# +#9860 +1! +r1.550781469357922 " +#9861 +0! +r1.569008700448469 " +1# +#9862 +1! +r1.587371381200746 " +#9863 +0! +r1.605868786687536 " +0# +#9864 +1! +r1.624500186662966 " +#9865 +0! +r1.64326484559116 " +1# +#9866 +1! +r1.662162022675683 " +#9867 +0! +r1.681190971888216 " +0# +#9868 +1! +r1.700350941998466 " +#9869 +0! +r1.719641176603666 " +1# +#9870 +1! +r1.739060914158296 " +#9871 +0! +r1.758609388004434 " +0# +#9872 +1! +r1.778285826401741 " +#9873 +0! +r1.79808945255823 " +1# +#9874 +1! +r1.818019484660559 " +#9875 +0! +r1.838075135905167 " +0# +#9876 +1! +r1.858255614529371 " +#9877 +0! +r1.878560123842363 " +1# +#9878 +1! +r1.898987862256905 " +#9879 +0! +r1.919538023320907 " +0# +#9880 +1! +r1.940209795749106 " +#9881 +0! +r1.961002363455417 " +1# +#9882 +1! +r1.981914905584774 " +#9883 +0! +r2.002946596545868 " +0# +#9884 +1! +r2.024096606043602 " +#9885 +0! +r2.04536409911167 " +1# +#9886 +1! +r2.066748236146054 " +#9887 +0! +r2.08824817293752 " +0# +#9888 +1! +r2.109863060705377 " +#9889 +0! +r2.131592046130889 " +1# +#9890 +1! +r2.153434271390943 " +#9891 +0! +r2.175388874191863 " +0# +#9892 +1! +r2.197454987803495 " +#9893 +0! +r2.219631741093483 " +1# +#9894 +1! +r2.241918258561629 " +#9895 +0! +r2.264313660374235 " +0# +#9896 +1! +r2.286817062399384 " +#9897 +0! +r2.309427576241198 " +1# +#9898 +1! +r2.332144309275252 " +#9899 +0! +r2.354966364683875 " +0# +#9900 +1! +r2.377892841491398 " +#9901 +0! +r2.400922834599823 " +1# +#9902 +1! +r2.424055434824354 " +#9903 +0! +r2.447289728929594 " +0# +#9904 +1! +r2.470624799665422 " +#9905 +0! +r2.494059725803149 " +1# +#9906 +1! +r2.517593582172045 " +#9907 +0! +r2.541225439695808 " +0# +#9908 +1! +r2.564954365429063 " +#9909 +0! +r2.588779422594504 " +1# +#9910 +1! +r2.612699670619725 " +#9911 +0! +r2.636714165174183 " +0# +#9912 +1! +r2.660821958206806 " +#9913 +0! +r2.685022097983204 " +1# +#9914 +1! +r2.709313629123352 " +#9915 +0! +r2.733695592639112 " +0# +#9916 +1! +r2.758167025972283 " +#9917 +0! +r2.782726963032693 " +1# +#9918 +1! +r2.807374434235994 " +#9919 +0! +r2.832108466542283 " +0# +b011011000000 $ +b011001111011010110010100110111 % +1' +#9920 +1! +r2.856928083494288 " +0' +#9921 +0! +r2.881832305256002 " +1# +#9922 +1! +r2.906820148651477 " +#9923 +0! +r2.931890627203272 " +0# +#9924 +1! +r2.957042751172047 " +#9925 +0! +r2.982275527594904 " +1# +#9926 +1! +r3.007587960324919 " +#9927 +0! +r3.03297905007082 " +0# +#9928 +1! +r3.058447794435686 " +#9929 +0! +r3.083993187957159 " +1# +#9930 +1! +r3.1096142221469 " +#9931 +0! +r3.135309885530233 " +0# +#9932 +1! +r3.161079163686454 " +#9933 +0! +r3.186921039288497 " +1# +#9934 +1! +r3.21283449214348 " +#9935 +0! +r3.238818499232624 " +0# +#9936 +1! +r3.264872034751675 " +#9937 +0! +r3.290994070151897 " +1# +#9938 +1! +r3.317183574179883 " +#9939 +0! +r3.343439512918978 " +0# +#9940 +1! +r3.369760849829556 " +#9941 +0! +r3.396146545790367 " +1# +#9942 +1! +r3.422595559139373 " +#9943 +0! +r3.449106845714695 " +0# +#9944 +1! +r3.475679358896194 " +#9945 +0! +r3.502312049646579 " +1# +#9946 +1! +r3.529003866552731 " +#9947 +0! +r3.555753755867542 " +0# +#9948 +1! +r3.582560661551157 " +#9949 +0! +r3.609423525312749 " +1# +#9950 +1! +r3.636341286652512 " +#9951 +0! +r3.663312882903321 " +0# +#9952 +1! +r3.690337249272799 " +#9953 +0! +r3.717413318885114 " +1# +#9954 +1! +r3.744540022823457 " +#9955 +0! +r3.77171629017207 " +0# +#9956 +1! +r3.798941048058326 " +#9957 +0! +r3.826213221695463 " +1# +#9958 +1! +r3.853531734424793 " +#9959 +0! +r3.88089550775818 " +0# +#9960 +1! +r3.908303461420676 " +#9961 +0! +r3.935754513393231 " +1# +#9962 +1! +r3.963247579955349 " +#9963 +0! +r3.990781575727773 " +0# +#9964 +1! +r4.01835541371553 " +#9965 +0! +r4.045968005350771 " +1# +#9966 +1! +r4.073618260535533 " +#9967 +0! +r4.10130508768515 " +0# +#9968 +1! +r4.129027393771156 " +#9969 +0! +r4.156784084364249 " +1# +#9970 +1! +r4.184574063677874 " +#9971 +0! +r4.212396234611233 " +0# +#9972 +1! +r4.240249498792718 " +#9973 +0! +r4.268132756623058 " +1# +#9974 +1! +r4.296044907318946 " +#9975 +0! +r4.323984848956592 " +0# +#9976 +1! +r4.35195147851491 " +#9977 +0! +r4.379943691919125 " +1# +#9978 +1! +r4.407960384084738 " +#9979 +0! +r4.436000448960623 " +0# +#9980 +1! +r4.464062779573061 " +#9981 +0! +r4.492146268069353 " +1# +#9982 +1! +r4.520249805761333 " +#9983 +0! +r4.548372283169582 " +0# +#9984 +1! +r4.576512590066653 " +#9985 +0! +r4.60466961552167 " +1# +#9986 +1! +r4.632842247943318 " +#9987 +0! +r4.661029375124281 " +0# +#9988 +1! +r4.689229884285198 " +#9989 +0! +r4.717442662118096 " +1# +#9990 +1! +r4.745666594830911 " +#9991 +0! +r4.77390056819104 " +0# +#9992 +1! +r4.802143467569593 " +#9993 +0! +r4.830394177985326 " +1# +#9994 +1! +r4.858651584148404 " +#9995 +0! +r4.886914570504977 " +0# +#9996 +1! +r4.915182021280706 " +#9997 +0! +r4.943452820524874 " +1# +#9998 +1! +r4.971725852154991 " +#9999 diff --git a/fuzz_test/CMakeLists.txt b/fuzz_test/CMakeLists.txt new file mode 100644 index 0000000..f2ed11b --- /dev/null +++ b/fuzz_test/CMakeLists.txt @@ -0,0 +1,24 @@ +# A fuzz test runs until it finds an error. This particular one is going to rely on libFuzzer. +# + +find_package(fmt) + +add_executable(fuzz_tester fuzz_tester.cpp) + +target_link_libraries( + fuzz_tester + PRIVATE project_options + project_warnings + vcd_tracer + fmt::fmt + -coverage + -fsanitize=fuzzer,undefined,address) +target_compile_options(fuzz_tester PRIVATE -fsanitize=fuzzer,undefined,address) + + +# Allow short runs during automated testing to see if something new breaks +set(FUZZ_RUNTIME + 10 + CACHE STRING "Number of seconds to run fuzz tests during ctest run") # Default of 10 seconds + +add_test(NAME fuzz_tester_run COMMAND fuzz_tester -max_total_time=${FUZZ_RUNTIME}) diff --git a/fuzz_test/fuzz_tester.cpp b/fuzz_test/fuzz_tester.cpp new file mode 100644 index 0000000..c554b7d --- /dev/null +++ b/fuzz_test/fuzz_tester.cpp @@ -0,0 +1,103 @@ +/* + * C++ VCD Tracer Library Fuzz tests + * + * For more information see https://github.com/nakane1chome/simple-vcd + * + * Copyright (c) 2022, Philip Mulholland + * All rights reserved. + * + * Using the BSD 3-Clause License + * + * See LICENSE for license details. + * + * NOTE: THESE ARE NOT PASSING + * + */ + + +#include +#include +#include + +#include "../src/vcd_tracer.hpp" + +static vcd_tracer::scope_fn::sequence_t seq = 42; + +struct FuzzData { + + vcd_tracer::top dumper{"root"}; + + vcd_tracer::value var_1; + vcd_tracer::value var_2; + vcd_tracer::value var_3; + vcd_tracer::value var_4; + + std::ostringstream trace_data; + + FuzzData(void) { + + dumper.root.elaborate(var_1, "a"); + dumper.root.elaborate(var_2, "sixteen_bits_trace_var"); + dumper.root.elaborate(var_3, "word"); + dumper.root.elaborate(var_4, "big_trace_var"); + + dumper.finalize_header(trace_data, std::chrono::system_clock::from_time_t(0)); + + + } + +}; + + +// Fuzzer that attempts to invoke undefined behavior for signed integer overflow +// cppcheck-suppress unusedFunction symbolName=LLVMFuzzerTestOneInput +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { + + static FuzzData fuzz_trace; + size_t i = 0; + while (size > i) { + size_t take_bytes = std::min(static_cast(data[i] % 9), size-i); + i++; + switch (take_bytes) { + case 0: + fuzz_trace.var_1.unknown(); + break; + case 1: + fuzz_trace.var_1.set(data[i++]); + break; + case 2: { + uint16_t v = reinterpret_cast(&data[i])[0]; + i+=2; + fuzz_trace.var_2.set(v); + break; + } + case 3: + fuzz_trace.var_2.unknown(); + break; + case 4: { + uint32_t v = reinterpret_cast(&data[i])[0]; + i+=4; + fuzz_trace.var_3.set(v); + break; + } + case 5: + fuzz_trace.var_3.unknown(); + break; + case 6: + fuzz_trace.var_4.unknown(); + break; + case 7: + fuzz_trace.var_2.undriven(); + break; + case 8: { + uint64_t v = reinterpret_cast(&data[i])[0]; + i+=8; + fuzz_trace.var_4.set(v); + break; + } + } + seq++; + } + //fuzz_trace; + return 0; +} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..6301019 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,5 @@ + +# Generic test that uses conan libs +add_library(vcd_tracer vcd_tracer.cpp) + +target_compile_features(vcd_tracer PRIVATE cxx_std_17) diff --git a/src/vcd_tracer.cpp b/src/vcd_tracer.cpp new file mode 100644 index 0000000..df74499 --- /dev/null +++ b/src/vcd_tracer.cpp @@ -0,0 +1,344 @@ +/* + * C++ VCD Tracer Library + * + * For more information see https://github.com/nakane1chome/cpp-vcd-tracer + * + * Copyright (c) 2022, Philip Mulholland + * All rights reserved. + * + * Using the BSD 3-Clause License + * + * See LICENSE for license details. + */ + +#include +#include +#include + +#include "vcd_tracer.hpp" + +namespace vcd_tracer { + + using namespace std::literals::chrono_literals; + + + // File header that does not change. + constexpr const char *STATIC_VCD_HEADER = + "$version\n" + " C++ Simple VCD Logger\n" + "$end\n"; + + /** Type trait strucuture to translate a C++ chrono type to a + * string representation for the VCD header. + * @tparam T A std::chrono::duration specialized type. + */ + template + struct vcd_timescale { + static constexpr const char *value = "??"; + }; + template<> + struct vcd_timescale { + static constexpr const char *value = "ns"; + }; + template<> + struct vcd_timescale { + static constexpr const char *value = "us"; + }; + template<> + struct vcd_timescale { + static constexpr const char *value = "ms"; + }; + template<> + struct vcd_timescale { + static constexpr const char *value = "s"; + }; + + // ------------------------------------------ + // Module + + void module::finalize_header(std::ostream &out) { + if (_context != nullptr) { + finalize_header(out, _context); + } + _context.reset(); + } + + void module::finalize_header( + std::ostream &out, + std::shared_ptr context) { + // Module and var definitions have been done, collect the + // submodules and end the definition. + out << context->vcd_scope.str(); + for (const auto child : context->children) { + finalize_header(out, child); + } + out << "$upscope $end\n"; + } + + + // ------------------------------------------------------------------------ + // Top + + top::top(std::string_view name) + : root( + // This function will register any variable in the child + // hierarchy with this top module. + [identifier_generator = _identifier_generator, var_map = _var_map](const std::string_view full_path, + scope_fn::dumper_fn fn) -> value_context { + // Allocate a new identifier + const std::string identifier = identifier_generator->next(); + // Register this new varaible - the path and function to write values to the trace. + var_map->identifier_map[identifier] = full_path; + var_map->dumper_map[identifier] = fn; + // Create a function that allows the registration in this class to be reset by the variable destructor. + auto updater = [identifier, var_map](scope_fn::dumper_fn fn) -> void { + var_map->dumper_map[identifier] = fn; + }; + return value_context{ identifier, updater }; + }, + name) { + } + + void top::log_time(std::ostream &out, + scope_fn::sequence_t new_time, + bool force, + std::string_view reason) { + if (force || (new_time != _tracepoint)) { + // Insert a new time point into the VCD trace. + out << "#" << new_time << "\n"; + _tracepoint = new_time; + // For debugging log what caused this update + if constexpr (SIMPLE_VCD_DEBUG) { + out << "$comment LOG TIME " << reason << "$end\n"; + } + } + else { + // For debugging log events that have not caused time to update + if constexpr (SIMPLE_VCD_DEBUG) { + out << "$comment NO LOG TIME " << reason << "$end\n"; + } + } + } + + + void top::finalize_header(std::ostream &out, std::chrono::time_point date) { + // Create the VCD header + std::time_t start_time = std::chrono::system_clock::to_time_t(date); + out << "$date\n" + << " " << std::asctime(std::gmtime(&start_time)) + << "$end\n"; + out << "$timescale\n" + << " 1" << vcd_timescale::value << "\n" + << "$end\n"; + out << STATIC_VCD_HEADER; + // Write out the design hierarchy + root.finalize_header(out); + out << "$enddefinitions $end\n"; + // Default values + log_time(out, 0, true, "finalize header"); + // Log the initial state + _timestamp = 0; + time_update_core(out); + } + + void top::time_update_delta(std::ostream &out, time_base delta) { + if constexpr (SIMPLE_VCD_DEBUG) { + out << "$comment DELTA TIME " << delta.count() << " $end\n"; + } + // Log out the updated variables + time_update_core(out); + // Now the variables have been dumped to capture the state UP TO this time + // log the time + const auto delta_count = delta.count(); + _timestamp += delta_count; + if (_timestamp <= _tracepoint) { + // If the timestamp has fallen behind the tracepoint, move it forward + _timestamp = _tracepoint; + if constexpr (SIMPLE_VCD_DEBUG) { + out << "$comment SYNC ABS TIME WITH TRACEPOINT " << _tracepoint << " $end\n"; + } + } + // Format the current time for VCD + log_time(out, _timestamp, false, "DELTA"); + } + + void top::time_update_abs(std::ostream &out, time_base new_timestamp) { + if constexpr (SIMPLE_VCD_DEBUG) { + out << "$comment ABS TIME " << new_timestamp.count() << " $end\n"; + } + // Log out the updated variables + time_update_core(out); + // Now the variables have been dumped to capture the state UP TO this time + // log the time + auto new_timestamp_count = new_timestamp.count(); + if (new_timestamp_count >= _timestamp) { + if (new_timestamp_count <= static_cast(_tracepoint)) { + // If the timestamp has fallen behind the tracepoint, move it forward + new_timestamp_count = _tracepoint; + if constexpr (SIMPLE_VCD_DEBUG) { + out << "$comment SYNC ABS TIME WITH TRACEPOINT " << _tracepoint << " $end\n"; + } + } + _timestamp = new_timestamp_count; + // Format the current time for VCD + log_time(out, _timestamp, false, "ABS"); + } + else { + if constexpr (SIMPLE_VCD_DEBUG) { + out << "$comment WARNING - backwards time " << new_timestamp.count() << "$end\n"; + } + } + } + + void top::time_update_core(std::ostream &out) { + bool first_unset = true; + scope_fn::sequence_t first_sequence; + // First pass - find order of next sample + std::map> status; + if constexpr (SIMPLE_VCD_DEBUG) { + out << "$comment first pass $end\n"; + } + // Each variable could be traced out of order to the global timestamp + // Find the initial time point of the trace variable + for (auto [identifier, dump_fn] : _var_map->dumper_map) { + const auto sequence = dump_fn(out, true); + if (sequence.next.has_value()) { + status[sequence.next.value()].push_back(identifier); + if constexpr (SIMPLE_VCD_DEBUG) { + out << "$comment first pass found: " + << identifier << " @ " + << sequence.next.value() << " $end\n"; + } + } + if (sequence.dumped.has_value()) { + if (first_unset || first_sequence > sequence.dumped.value()) { + first_unset = false; + first_sequence = sequence.dumped.value(); + } + } + } + if constexpr (SIMPLE_VCD_DEBUG) { + out << "$comment second pass " << status.size() << " $end\n"; + } + // Second pass - trace buffer values. + while (status.size() > 0) { + const auto [sequence, identifiers] = *status.begin(); + if (first_unset) { + first_sequence = sequence; + first_unset = false; + } + const auto delta = (sequence - first_sequence); + log_time(out, _timestamp + delta, false, "seq"); + if constexpr (SIMPLE_VCD_DEBUG) { + out << "$comment seq=" << sequence << ", delta=" << delta << " $end\n"; + } + for (const auto identifier : identifiers) { + const auto done_sequence = _var_map->dumper_map[identifier](out, false); + if (done_sequence.next.has_value()) { + status[done_sequence.next.value()].push_back(identifier); + if constexpr (SIMPLE_VCD_DEBUG) { + out << "$comment second pass found: " + << identifier << " @ " + << sequence << " -> " + << done_sequence.next.value() << " $end\n"; + } + } + else { + if constexpr (SIMPLE_VCD_DEBUG) { + out << "$comment second pass not found: " + << identifier << " @ " + << sequence << " $end\n"; + } + } + } + status.erase(status.begin()); + } + } + + void top::finalize_trace(std::ostream &out) { + // Flush any lingering values + time_update_delta(out, std::chrono::nanoseconds(1)); + // Allow some time at the end for viewing the final value + time_update_delta(out, std::chrono::microseconds(1)); + } + + // ------------------------------------------------------------------------ + // Value + + template + void value_base::dump(std::ostream &out, + const size_t bit_size, + const value_state state, + const T value) const { + if constexpr (SIMPLE_VCD_DEBUG) { + out << "$comment " << std::hex << value << std::dec << " " << _scope.identifier << " $end\n"; + } + if constexpr (std::is_floating_point_v) { + // Emulate .%16g + std::array format_buf; + ::snprintf(format_buf.data(), format_buf.size(), "r%-.16g ", static_cast(value)); + out << format_buf.data() << _scope.identifier << "\n"; + } + else if constexpr (std::is_same_v) { + if (state == value_state::unknown_x) { + out << "x" << _scope.identifier << "\n"; + } + else if (state == value_state::undriven_z) { + out << "z" << _scope.identifier << "\n"; + } + else { + out << (value ? "1" : "0") << _scope.identifier << "\n"; + } + } + else { + out << "b"; + if (state == value_state::unknown_x) { + out << "x"; + } + else if (state == value_state::undriven_z) { + out << "z"; + } + else { + T mask = static_cast(1) << (bit_size - 1); + bool prev_bit = (value & mask) != 0; + bool compress = true; + for (int i = bit_size - 2; i >= 0; i--) { + mask = mask >> 1; + const bool this_bit = (value & mask) != 0; + if (compress && (this_bit == prev_bit)) { + // Compress the left bits until a change is present.. + } + else { + compress = false; + out << (prev_bit ? "1" : "0"); + } + prev_bit = this_bit; + } + out << (prev_bit ? "1" : "0"); + } + out << " " << _scope.identifier << "\n"; + } + } + + // ------------------------------------------------------------------------ + // Template instanciations of value<> + + template void value_base::dump(std::ostream &out, const size_t bit_size, const value_state state, const bool value) const; + + template void value_base::dump(std::ostream &out, const size_t bit_size, const value_state state, const int value) const; + template void value_base::dump(std::ostream &out, const size_t bit_size, const value_state state, const unsigned int value) const; + + template void value_base::dump(std::ostream &out, const size_t bit_size, const value_state state, const char value) const; + template void value_base::dump(std::ostream &out, const size_t bit_size, const value_state state, const unsigned char value) const; + + template void value_base::dump(std::ostream &out, const size_t bit_size, const value_state state, const short value) const; + template void value_base::dump(std::ostream &out, const size_t bit_size, const value_state state, const unsigned short value) const; + + template void value_base::dump(std::ostream &out, const size_t bit_size, const value_state state, const long value) const; + template void value_base::dump(std::ostream &out, const size_t bit_size, const value_state state, const unsigned long value) const; + + template void value_base::dump(std::ostream &out, const size_t bit_size, const value_state state, const float value) const; + template void value_base::dump(std::ostream &out, const size_t bit_size, const value_state state, const double value) const; + + +};// namespace vcd_tracer diff --git a/src/vcd_tracer.hpp b/src/vcd_tracer.hpp new file mode 100644 index 0000000..52ec889 --- /dev/null +++ b/src/vcd_tracer.hpp @@ -0,0 +1,716 @@ +/* + * C++ VCD Tracer Library + * + * For more information see https://github.com/nakane1chome/cpp-vcd-tracer + * + * Copyright (c) 2022, Philip Mulholland + * All rights reserved. + * + * Using the BSD 3-Clause License + * + * See LICENSE for license details. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef SIMPLE_VCD_HPP +#define SIMPLE_VCD_HPP + +/** + Phases: + + As VCD is format used for hardware design there is a number phases used to build a representation of the system to be traced. + + - Analysis - The compiler parsed and builds the program. + - Elaboration - At run time the program registers values with the tracer. + - Run time tracing - + + */ +namespace vcd_tracer { + + /** Set this to true to log to stderr */ + constexpr bool SIMPLE_VCD_DEBUG = false; + + /** A class to generate VCD a sequence of unique variable identifiers. + The identifier is composed of printable ASCII characters from ! to ~ (decimal 33 to 126). + */ + class identifier_generator { + public: + /** Generate the next VCD identifier. + * @retval VCD identifer. + */ + constexpr const char *next(void); + + private: + std::array _identifier{ 0 }; + size_t _size{ 0 }; + }; + + + /** This class represents te interface between classes in the VCD tracer module. + As the VCD tracer is implemented using the dependency injection style these functions and types are used instead of a class hierachy. + */ + class scope_fn { + public: + //! The sequence determines what order variables will be dumped in. + using sequence_t = std::uint64_t; + //! A sequence may be optional if there are no variables to dump. + using optional_sequence_t = std::optional; + // A dump sequence defines + struct dump_sequence_t { + optional_sequence_t dumped; + optional_sequence_t next; + }; + //! The type signature of a function used to write a variable to file. + //! It returns information on what value has been dumped and when it should be called again. + using dumper_fn = std::function; + //! The type signature of a function used to ?? + using updater_fn = std::function; + //! The type signature of a function used to add a variable to be traced. The parameter define the information reqired VCD by a VCD header. + using add_fn = std::function< + struct value_context(std::string_view var_name, + std::string_view var_type, + unsigned int bit_size, + dumper_fn fn)>; + //! The type signature of a function used to register a variable and it's dumper. + using register_fn = std::function< + struct value_context(std::string_view var_name, + dumper_fn fn)>; + //! A constant to represent the end of a set of variables to be dumped. + static constexpr dump_sequence_t end_sequence{ {}, {} }; + //! A constant to represent an empty sequence. + static const sequence_t nop_sequence{ 0 }; + //! A stub function to be used in place of a real dumper function. + static dump_sequence_t nop_dump(std::ostream &out, bool start) { + (void)out; + (void)start; + return end_sequence; + } + //! A stub function to be used in place of a real update function. + static void nop_update(dumper_fn fn) { + (void)fn; + } + }; + + /** Represent the context of a value to be traced. + */ + struct value_context { + //! The identifier of the value + std::string identifier; + //! The update function of the value. + scope_fn::updater_fn updater; + }; + + + /** Represent a module within a hierarchical scope. + A module has a parent and children modules. + This class only captures the child modules, on the assumption we will traverse from the top module. + It is expected this class is only used during the elaboration phase, and can be freed once all variables are assigned identifers. + */ + class module_instance { + public: + /** Define a hierarchical module context by it's instance name + @param name The name of this instance. + */ + module_instance(const std::string_view name) + : instance_name(name) { + } + //! The name of this module instance. + const std::string instance_name; + //! This string buffer will capture the VCD header information, it is written to file at the end of elaboration. + std::ostringstream vcd_scope; + //! The children of this module instance. + std::vector> children; + }; + + /** A type trait like structure used to determine the size in bits of a C++ type. + */ + template + struct bit_size { + //! Use the sizeof() the underlying type, and convert to 8 bits per byte. + static constexpr unsigned int value = sizeof(T) * 8; + }; + /** Specialized type trait to indicate boolean values are traced as one bit regardless of the C++ storage size. + */ + template<> + struct bit_size { + // 1 bit + static constexpr unsigned int value = 1; + }; + /** A type trait like structure used to determine the var type + */ + template + struct vcd_var_type { + static constexpr const char *value = "wire"; + }; + template<> + struct vcd_var_type { + static constexpr const char *value = "real"; + }; + template<> + struct vcd_var_type { + static constexpr const char *value = "real"; + }; + + /** Define an index that is used to managed reading back traced values to file. + Values may be traced to file in a different order to which they are traced to the buffer. + */ + template + struct index { + //! Write index when values are traced to memory + int write{ -1 }; + //! Read index when values are read from memory and traced to file. + int read{ 0 }; + }; + + /** Specialie te index for tracing a history of depth 1. + */ + template<> + struct index<1> { + //! Write index to indicate if a value has been traced. + int write{ -1 }; + }; + + /** In VCD any value can have a state beyond it's known value (as defined by it's type). + */ + enum class value_state { + //! A value that is unknown. It will be traced as an 'x' value. + unknown_x, + //! A value that has not been driven. It will be traced as an 'z' value. + undriven_z, + //! A normal known value. + known, + }; + + /** A structure to represent a sample that has been traced with state and sequence context. + - The state can be set directly, or determined to me known when a value is set. + - The sequence is recorded from a global sequence number. + + This structure can be further specialized when less information is required to be traced. + */ + template + struct sample { + //! The global sequence of the value, used to determine the order of tracing. + scope_fn::sequence_t sequence{ static_cast(-1) }; + //! The state of the value. + value_state state{ value_state::unknown_x }; + //! The value to be traced if the state is known. + SAMPLE_T value; + /** Set a value and record a sequence. + @param v A value that will be traced. + */ + void set(SAMPLE_T v) { + sequence = *SAMPLE_CUR_SEQ; + state = value_state::known; + value = v; + } + /** Set the state and record a sequence. + @param S The new state. + */ + void set_state(value_state S) { + sequence = *SAMPLE_CUR_SEQ; + state = S; + } + }; + + /** A structure to represent a sample that has been traced with state. + - The state can be set directly, or determined to me known when a value is set. + + This structure is specialized to remove tracing of sequence numbers. + + */ + template + struct sample { + //! The state of the value. + value_state state{ value_state::unknown_x }; + //! The value to be traced if the state is known. + SAMPLE_T value; + /** Set a value . + @param v A value that will be traced. + */ + void set(SAMPLE_T v) { + state = value_state::known; + value = v; + } + /** Set the state. + @param S The new state, such as unknown. + */ + void set_state(value_state S) { + state = S; + } + }; + + + /** Representation a value to be traced without it's type information. + + In a vcd header this will represent a $var declaration (but it will not generate the header) + In the vcd body this class will provide the trace values. + + The lifetime of this class is the full trace lifetime. + + */ + class value_base { + public: + value_base(value_base &&) = delete; + value_base(const value_base &) = delete; + value_base &operator=(value_base &&) = delete; + value_base &operator=(const value_base &) = delete; + + /** Clean up a traced variable + */ + virtual ~value_base(void) { + // Make sure the dumper function is invalidated so the + // disposed of dumper function is not called. + _scope.updater(scope_fn::nop_dump); + } + + protected: + /** Create a new value to be traced, defining it at compile time. + A value cannot be created without type information, so this must be called by a concrete child class constructora. + + @param bit_size The size, in bits, of this value. + @param add_fn The function used to add the variable to the parent hiearchy. + @param var_name The name of the value to be traced. + @param dumper_fn The specialized function that can be used to dump this value to file. + */ + value_base(const unsigned int bit_size, + const char *var_type, + scope_fn::add_fn add_fn, + const std::string_view var_name, + scope_fn::dumper_fn dumper_fn) + : _scope(add_fn(var_name, var_type, bit_size, dumper_fn)) { + } + /** Create a new value to be traced without defining it at compile time. + @param bit_size The size, in bits, of this value. + + elaborate_base() must be called after this. + */ + value_base(unsigned int bit_size) + // Define a default do nothing trace context + : _scope{ "", scope_fn::nop_update } { + (void)bit_size; + } + + /** + @param bit_size The size, in bits, of this value. + @param add_fn The function used to add the variable to the parent hiearchy. + @param var_name The name of the value to be traced. + @param dumper_fn The specialized function that can be used to dump this value to file. + */ + void elaborate_base(const unsigned int bit_size, + const char *var_type, + scope_fn::add_fn add_fn, + const std::string_view var_name, + scope_fn::dumper_fn dumper_fn) { + auto new_scope = add_fn(var_name, var_type, bit_size, dumper_fn); + _scope.identifier = new_scope.identifier; + _scope.updater = new_scope.updater; + } + + public: + protected: + // This is the context required to trace the variable. + value_context _scope; + + protected: + // A common dumper function. + template + void dump(std::ostream &out, const size_t bit_size, const value_state state, const T value) const; + };// value_base + + + /** Typed value for tracing representation. + @tparam BIT_SIZE - The size in bits of the type. + @tparam TRACE_DEPTH - When set to more than one a buffer of values can be accumulated before writing to file. + @tparam CUR_SEQ - This is a pointer to a global sequence counter. + + In a vcd header this will represent a $var declaration (but it will not generate the header) + In the vcd body this class will provide the trace values. + + The lifetime of this class is the full trace lifetime. + */ + template::value, + int TRACE_DEPTH = 1, + scope_fn::sequence_t *CUR_SEQ = nullptr> + class value : public value_base { + private: + // The write index, and read index for buffered traces. + index _idx{ 0 }; + // The values will be stored directly in this instance. + std::array, static_cast(TRACE_DEPTH)> _samples; + + public: + /** Instanciate an uninitialized value. The state will be set to unknown + The name and scope need to be set later via elaborate(). + */ + value(void) + : value_base(BIT_SIZE) { + _idx.write = -1; + _samples[0].set_state(value_state::unknown_x); + } + /** Instanciate a trace value with an initialized value. The state will be set to known. + @param default_value Initial value to be traced at time 0. + The name and scope need to be set later via elaborate(). + */ + value(const T default_value) + : value_base(BIT_SIZE) { + _idx.write = -1; + _samples[0].set(default_value); + } + /** Instanciate named and scoped trace value with an uninitialized value. The state will be set to unknown + @param var_name variable name + @param add_fn Funtion to register this trace variable with it's scope. + */ + value(scope_fn::add_fn add_fn, + const std::string_view var_name) + : value_base(BIT_SIZE, + vcd_var_type::value, + add_fn, + var_name, + [this](std::ostream &out, bool start) -> scope_fn::dump_sequence_t { + return this->dump(out, start); + }) { + _idx.write = -1; + } + /** Instanciate named and scoped trace value with an initialized value. The state will be set to known. + @param var_name variable name + @param add_fn Funtion to register this trace variable with it's scope. + @param default_value Initial value to be traced at time 0. + */ + value(scope_fn::add_fn add_fn, + const std::string_view var_name, + const T default_value) + : value_base(BIT_SIZE, + vcd_var_type::value, + add_fn, + var_name, + [this](std::ostream &out, bool start) -> scope_fn::dump_sequence_t { + return this->dump(out, start); + }) { + _idx.write = -1; + _samples[0].set(default_value); + } + /** Elaborate a value by settings it's name and scope + @param add_fn Funtion to register this trace variable with it's scope. + @param default_value Initial value to be traced at time 0. + */ + void elaborate(scope_fn::add_fn add_fn, + const std::string_view var_name) { + elaborate_base(BIT_SIZE, + vcd_var_type::value, + add_fn, + var_name, + std::bind(&value::dump, this, std::placeholders::_1, std::placeholders::_2)); + } + /** Set a variables state to a compile time defined value + */ + template + void set_state(void) { + if constexpr (TRACE_DEPTH == 1) { + // Case for unbuffered trace. + if (_samples[0].state != S) { + // Set the state and flag that it has been updated via _idx.write + _samples[0].set_state(S); + _idx.write = 1; + } + } + else { + // Case for buffered write + // Only update the trace if + // 1. The write index was the default value (-1), OR + // 2. The most recent trace state does not matcha + if ((_idx.write == -1) || ((_idx.write < TRACE_DEPTH) && (_samples[static_cast(_idx.write % TRACE_DEPTH)].state != S))) { + // The trace needs updating + if ((_idx.write == -1) || (_samples[static_cast(_idx.write % TRACE_DEPTH)].sequence != *CUR_SEQ)) { + // A new timestamp, or uninitialized write index. + // The index should be moved. + _idx.write++; + } + if (_idx.write < TRACE_DEPTH) { + // Set the value if the buffer has space. + _samples[static_cast(_idx.write % TRACE_DEPTH)].set_state(S); + } + } + } + } + /** Assign this trace variable to the unknown (X) state + */ + void unknown(void) { + set_state(); + } + /** Assign this trace variable to the undriven (Z) state + */ + void undriven(void) { + set_state(); + } + + /** A helper function to determine if a change is traced. + @retval true The sample has changed. + */ + inline bool sample_changed(const T new_sample, const T prev_sample) { + return new_sample != prev_sample; + } + /** Set a value to be traced + @param v The new value to be traced. + */ + void set(const T v) { + if constexpr (TRACE_DEPTH == 1) { + // Case for unbuffered trace. + if (sample_changed(v, _samples[0].value) || (_samples[0].state != value_state::known)) { + // Set the value and flag that it has been updated via _idx.write + _samples[0].set(v); + _idx.write = 1; + } + } + else { + // Case for buffered trace. + // Only update the trace if + // 1. The write index was the default value (-1), OR + // 2. The most recent trace value does not match + if ((_idx.write == -1) || ((_idx.write < TRACE_DEPTH) && ((sample_changed(v, _samples[static_cast(_idx.write % TRACE_DEPTH)].value)) || _samples[static_cast(_idx.write % TRACE_DEPTH)].state != value_state::known))) { + if ((_idx.write == -1) || (_samples[static_cast(_idx.write % TRACE_DEPTH)].sequence != *CUR_SEQ)) { + // Move the write index, due to an uninitialized index or timestamp change. + _idx.write++; + } + if (_idx.write < TRACE_DEPTH) { + // Save the sampe value + _samples[static_cast(_idx.write % TRACE_DEPTH)].set(v); + } + } + } + } + + private: + /** Dump values from this trace variable to file. + @param out Output stream to write VCD values to + @param start Flag to indicate this is the first write. + @retval scope_fn::end_sequence When there are no more values to read, + @retval {dumped index, next index} When there are more values to read, the NEXT sequence. + */ + scope_fn::dump_sequence_t dump(std::ostream &out, bool start); + };// value + + /** A class to represent a module instance scope. + + This class represents a '$scope module ' declaration in a VCD header. + + The lifetime of this class can be restricted to the elaboration phase. + + */ + class module { + public: + /** Declare a module instance, and provide the parent scope via a registration function. + @param register_fn Provide the scope via this function. + @param instance_name The name of this module instance. + */ + module(scope_fn::register_fn register_fn, + std::string_view instance_name) :_register_fn{ register_fn }, + _context{ std::make_shared(instance_name) } { + _context->vcd_scope << "$scope module " << instance_name << " $end\n"; + } + /** Declare a module instance, and provide the parent scope a reference to another module. + @param parent Provide the scope via this reference. + @param instance_name The name of this module instance. + */ + module(module &parent, + std::string_view instance_name) :_register_fn{ parent.get_register_fn() }, + _context{ std::make_shared(instance_name) } { + _context->vcd_scope << "$scope module " << instance_name << " $end\n"; + parent._context->children.push_back(_context); + } + + private: + /** Declare a module instance from within a different module instance, + @param register_fn Provide the scope via this function. + @param_context parent Provide the scope via this pointer. + @param instance_name The name of this module instance. + */ + module(scope_fn::register_fn register_fn, + std::string_view instance_name, + std::weak_ptr parent_context) :_register_fn{ register_fn }, + _context{ std::make_shared(instance_name) } { + _context->vcd_scope << "$scope module " << instance_name << " $end\n"; + if (auto use_parent_context = parent_context.lock()) { + use_parent_context->children.push_back(_context); + } + } + + public: + /** Elaborate a trace variable within this module. The varible should have been instanciated WITHOUT scope. + @tparam BIT_SIZE The size in bits of the trace variable. + @tparam TRACE_DEPTH The size of the trace buffer. + @tparam CUR_SEQ The pointer to the sequence counter. + @param var A trace variable already declared. + @param var_name The name of the variable to be used when tracing. + */ + template + void elaborate(value &var, const std::string_view var_name) { + var.elaborate(get_add_fn(), var_name); + } + /** Get the function to be provided to a trace variable declaration to give it scoped withing this module instance + */ + [[nodiscard]] scope_fn::add_fn get_add_fn(void) { + return [this](std::string_view var_name, + std::string_view var_type, + const unsigned int bit_size, + scope_fn::dumper_fn fn) -> value_context { + return this->add_var(var_name, var_type, bit_size, fn); + }; + } + /** + template + value get_value(const std::string_view var_name) { + return value(get_add_fn(), var_name); + }**/ + /** Create a new child module within the scope of this module instance + @param child_name The instance name of the new module. + */ + [[nodiscard]] module get_module(const std::string_view child_name) { + return module(get_register_fn(), child_name, _context); + } + /** Write the VCD header to the output buffer + */ + void finalize_header(std::ostream &out); + + private: + // This function passed a new variable up in the heirarchy to be assinged a global identifier and registered. + // TODO should be in _context so we can remove the scaffoling of the module() class + scope_fn::register_fn _register_fn; + std::shared_ptr _context; + + private: + void finalize_header(std::ostream &out, + std::shared_ptr context); + + /** A function that can be passed to a new trace variable to declare it within the scope of this module instance + */ + [[nodiscard]] value_context add_var(std::string_view var_name, + std::string_view var_type, + const unsigned int bit_size, + scope_fn::dumper_fn fn) { + std::string child_path = _context->instance_name + "." + std::string(var_name); + auto value_context = _register_fn(child_path, fn); + _context->vcd_scope + << "$var " << var_type + << " " << bit_size + << " " << value_context.identifier + << " " << var_name + << " $end\n"; + return value_context; + } + /** Get the function that can be used to register a variable within this module + */ + [[nodiscard]] scope_fn::register_fn get_register_fn(void) { + return [this](std::string_view child_path, + scope_fn::dumper_fn fn) -> value_context { + return this->register_var(child_path, fn); + }; + } + /** Get the function that can be used to register a variable within this module + @param child_path The path of the variable. It will be added to the full instance path to be registered at the next level. + @param fn The function that will be used to dump a given variable to file. + */ + [[nodiscard]] value_context register_var(std::string_view child_path, + scope_fn::dumper_fn fn) { + std::string this_path = _context->instance_name + "." + std::string(child_path); + auto value_context = _register_fn(this_path, fn); + return value_context; + } + };// module + + /** A class to represent the top scope of a trace. + + This will corrospond to a single VCD trace file. + + This class manages the elaboration and trace phase. + + This class manages the trace time. + + */ + class top { + public: + top(std::string_view name); + + //! This is the time resolution of the trace. + using time_base = std::chrono::nanoseconds; + + // time_base trace_interval {time_base::min()}; + + /** End the elaboration phase and write the VCD file header to a file. + Once this is done no new trace variables can be added. + @param out Trace output. + @param date The date to be set in the header $date field. + */ + void finalize_header(std::ostream &out, + std::chrono::time_point date); + /** Update the timestamp of the trace with a delta time to the previous timestamp + This will result in an output to the trace file of the stored data. + @param out Trace output. + @param delta The change in time since this function was last called. + */ + void time_update_delta(std::ostream &out, time_base delta); + + /** Update the timestamp of the trace with am absolute time. + This will result in an output to the trace file of the stored data. + @param out Trace output. + @param timestamp The trace will be moved to this timestamp. + */ + void time_update_abs(std::ostream &out, time_base timestamp); + + /** Flush the remaining trace + @param out Trace output. + */ + void finalize_trace(std::ostream &out); + + private: + + struct map_data { + // Map identifiers to variable names + std::map identifier_map; + // Map idenfiers to dump functions. + std::map dumper_map; + } ; + + private: + /** This function will do the bulk of the dumping af variables. */ + void time_update_core(std::ostream &out); + + private: + // The most recently traced time + scope_fn::sequence_t _tracepoint; + // The most recently updated time. + scope_fn::sequence_t _timestamp; + // Write out a time in the VCD trace format + void log_time(std::ostream &out, scope_fn::sequence_t new_time, bool force, std::string_view reason); + // Creation of identifiers + std::shared_ptr _identifier_generator = std::make_shared(); + // Mapping of registers to identifiers and functions + std::shared_ptr _var_map = std::make_shared(); + + public : + //! The root module in the design hiearchy + module root; + + + };// topc + +}// namespace vcd_tracer + +#endif + +#include "vcd_tracer.ipp" diff --git a/src/vcd_tracer.ipp b/src/vcd_tracer.ipp new file mode 100644 index 0000000..07cfcbc --- /dev/null +++ b/src/vcd_tracer.ipp @@ -0,0 +1,131 @@ +/* -*- c++ -*- + * C++ VCD Tracer Library + * + * For more information see https://github.com/nakane1chome/cpp-vcd-tracer + * + * Copyright (c) 2022, Philip Mulholland + * All rights reserved. + * + * Using the BSD 3-Clause License + * + * See LICENSE for license details. + */ + +#ifndef SIMPLE_VCD_IPP +#define SIMPLE_VCD_IPP + +namespace vcd_tracer { + + // ------------------------------------------ + // Identifier Generator + + // VCD identifiers use a subset of ascii. We will assign + // identifiers incrementally between these characters. + constexpr char VCD_NAME_START = '!'; + constexpr char VCD_NAME_END = 'z'; + + constexpr const char *identifier_generator::next(void) { + // Generate each combination within the range of: + // VCD_NAME_START..VCD_NAME_END + // Append a column when each combination has been used up. + if (_size == _identifier.size()) { + return _identifier.data(); + } + if (_size == 0) { + _identifier[0] = VCD_NAME_START; + _identifier[1] = '\0'; + _size = 1; + return _identifier.data(); + } + else { + size_t i = _size; + // Increment the last characters + do { + i--; + if (_identifier[i] == VCD_NAME_END) { + _identifier[i] = VCD_NAME_START; + } + else { + // Return the valid identifier. + _identifier[i]++; + return _identifier.data(); + } + } while (i != 0); + // increment the next + // Add a new column, initialize with starting character. + _identifier[_size] = VCD_NAME_START; + _size++; + _identifier[_size] = '\0'; + return _identifier.data(); + } + } + + + // ------------------------------------------ + // Dumper + + template + scope_fn::dump_sequence_t value::dump( + std::ostream &out, bool start) { + if constexpr (TRACE_DEPTH == 1) { + // Case for unbuffered trace. + (void)start; + if (_idx.write) { + // Dump the value and reset the state + value_base::dump(out, BIT_SIZE, _samples[0].state, _samples[0].value); + _idx.write = 0; + } + // No sequence is recorded. + return scope_fn::end_sequence; + } + else { + // Case for buffered trace + if (start) { + // Reset the read index at the start of the dump sequence. + _idx.read = 0; + } + if (_idx.read > _idx.write) { + // No more values to read + // Reset the write + _idx.write = -1; + return scope_fn::end_sequence; + } + // Sample to read. + const size_t read_index = static_cast(_idx.read % TRACE_DEPTH); + if (start) { + // dont read it, just return the position + return { {}, _samples[read_index].sequence }; + } + // Dump a single value + value_base::dump(out, BIT_SIZE, _samples[read_index].state, _samples[read_index].value); + // Update the read pointer + _idx.read++; + // Test for a buffer with or without global sequencing + using NullType = std::integral_constant; + using ActualType = std::integral_constant; + if constexpr (std::is_same_v) { + // No sequence is recorded. + return { _samples[read_index].sequence, {} }; + } + else { + // Find the next location to read. + if (_idx.read > _idx.write) { + _idx.write = -1; + // No more values to read + return { _samples[read_index].sequence, {} }; + } + else { + // The sequence of the next value + return { _samples[read_index].sequence, + _samples[static_cast(_idx.read % TRACE_DEPTH)].sequence }; + } + } + } + }// dump() + +}// namespace vcd_tracer + +#endif// #ifndef SIMPLE_VCD_IPP diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..422f831 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,63 @@ +find_package(Catch2 REQUIRED) + +include(CTest) +include(Catch) + +add_library(catch_main STATIC catch_main.cpp) +target_link_libraries(catch_main PUBLIC Catch2::Catch2) +target_link_libraries(catch_main PRIVATE project_options) +target_link_libraries(catch_main PRIVATE vcd_tracer) + +add_executable(tests tests.cpp) +target_link_libraries(tests PRIVATE project_warnings project_options catch_main) + +# automatically discover tests that are defined in catch based test files you can modify the unittests. Set TEST_PREFIX +# to whatever you want, or use different for different binaries +catch_discover_tests( + tests + TEST_PREFIX + "unittests." + REPORTER + xml + OUTPUT_DIR + . + OUTPUT_PREFIX + "unittests." + OUTPUT_SUFFIX + .xml) + +# Add a file containing a set of constexpr tests +add_executable(constexpr_tests constexpr_tests.cpp) +target_link_libraries(constexpr_tests PRIVATE project_options project_warnings catch_main) + +catch_discover_tests( + constexpr_tests + TEST_PREFIX + "constexpr." + REPORTER + xml + OUTPUT_DIR + . + OUTPUT_PREFIX + "constexpr." + OUTPUT_SUFFIX + .xml) + +# Disable the constexpr portion of the test, and build again this allows us to have an executable that we can debug when +# things go wrong with the constexpr testing +add_executable(relaxed_constexpr_tests constexpr_tests.cpp) +target_link_libraries(relaxed_constexpr_tests PRIVATE project_options project_warnings catch_main) +target_compile_definitions(relaxed_constexpr_tests PRIVATE -DCATCH_CONFIG_RUNTIME_STATIC_REQUIRE) + +catch_discover_tests( + relaxed_constexpr_tests + TEST_PREFIX + "relaxed_constexpr." + REPORTER + xml + OUTPUT_DIR + . + OUTPUT_PREFIX + "relaxed_constexpr." + OUTPUT_SUFFIX + .xml) diff --git a/test/catch_main.cpp b/test/catch_main.cpp new file mode 100644 index 0000000..28ceb8c --- /dev/null +++ b/test/catch_main.cpp @@ -0,0 +1,3 @@ +#define CATCH_CONFIG_MAIN// This tells the catch header to generate a main + +#include diff --git a/test/constexpr_tests.cpp b/test/constexpr_tests.cpp new file mode 100644 index 0000000..d37a596 --- /dev/null +++ b/test/constexpr_tests.cpp @@ -0,0 +1,49 @@ +/* + * C++ VCD Tracer Library Tests + * + * For more information see https://github.com/nakane1chome/cpp-vcd-tracer + * + * Copyright (c) 2022, Philip Mulholland + * All rights reserved. + * + * Using the BSD 3-Clause License + * + * See LICENSE for license details. + */ + +#include + +#include +#include "../src/vcd_tracer.hpp" + +constexpr bool strings_equal(char const *a, char const *b) { + return std::string_view(a) == b; +} + +constexpr std::array GenerateVcdKey(unsigned int number)// NOLINT(misc-no-recursion) +{ + vcd_tracer::identifier_generator k; + for (unsigned int i = 0; i < number; i++) { + k.next(); + } + // Must return by VALUE + const char *r = k.next(); + return { r[0], r[1], r[2], r[3] }; +} + + +TEST_CASE("VCD identifiers are created-0 char", "[GenerateVcdKey-0]") { + STATIC_REQUIRE(std::string_view(GenerateVcdKey(0).data()) == "!"); +} + +TEST_CASE("VCD identifiers are created-89 char", "[GenerateVcdKey-89]") { + STATIC_REQUIRE(std::string_view(GenerateVcdKey(89).data()) == "z"); +} + +TEST_CASE("VCD identifiers are created-90 char", "[GenerateVcdKey-90]") { + STATIC_REQUIRE(std::string_view(GenerateVcdKey(90).data()) == "!!"); +} + +TEST_CASE("VCD identifiers are created-180 char", "[GenerateVcdKey-180]") { + STATIC_REQUIRE(std::string_view(GenerateVcdKey(180).data()) == "\"!"); +} diff --git a/test/tests.cpp b/test/tests.cpp new file mode 100644 index 0000000..cb20901 --- /dev/null +++ b/test/tests.cpp @@ -0,0 +1,549 @@ +/* + * C++ VCD Tracer Library Tests + * + * For more information see https://github.com/nakane1chome/cpp-vcd-tracer + * + * Copyright (c) 2022, Philip Mulholland + * All rights reserved. + * + * Using the BSD 3-Clause License + * + * See LICENSE for license details. + */ + +#include +#include + +#include +#include "../src/vcd_tracer.hpp" + +// See https://en.wikipedia.org/wiki/Value_change_dump + +std::string GenerateVcdKey(unsigned int number)// NOLINT(misc-no-recursion) +{ + vcd_tracer::identifier_generator k; + std::string key; + for (unsigned int i = 0; i < number; i++) { + key = k.next(); + } + key = k.next(); + return key; +} + + +TEST_CASE("VCD identifiers are created", "[GenerateVcdKey]") { + REQUIRE(GenerateVcdKey(0) == "!"); + REQUIRE(GenerateVcdKey(8) == ")"); + REQUIRE(GenerateVcdKey(89) == "z"); + REQUIRE(GenerateVcdKey(90) == "!!"); + REQUIRE(GenerateVcdKey(91) == "!\""); + REQUIRE(GenerateVcdKey(179) == "!z"); + REQUIRE(GenerateVcdKey(180) == "\"!"); +} + +TEST_CASE("VCD Integer Value", "VcdValue") { + + vcd_tracer::scope_fn::dumper_fn my_dumper = vcd_tracer::scope_fn::nop_dump; + unsigned int my_bit_size = 88888; + std::string my_full_path; + + auto update_fn = [&](vcd_tracer::scope_fn::dumper_fn fn) { + my_dumper = fn; + }; + + auto add_fn = [&](const std::string_view full_path, + const std::string_view var_type, + unsigned int bit_size, + vcd_tracer::scope_fn::dumper_fn fn) { + (void)var_type; + my_full_path = full_path; + my_dumper = fn; + my_bit_size = bit_size; + return vcd_tracer::value_context{ "vv", update_fn }; + }; + + { + vcd_tracer::value test_var(add_fn, "Path.To.Var"); + + REQUIRE(my_bit_size == 9); + REQUIRE(my_full_path == "Path.To.Var"); + + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + REQUIRE(dump_out.str() == "bx vv\n"); + } + + test_var.set(0x155); + + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + REQUIRE(dump_out.str() == "b101010101 vv\n"); + } + + test_var.set(0x0AA); + + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + REQUIRE(dump_out.str() == "b010101010 vv\n"); + } + + test_var.undriven(); + + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + REQUIRE(dump_out.str() == "bz vv\n"); + } + } + + // Destructor will set dumper to nop function + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + REQUIRE(dump_out.str() == ""); + } + + { + vcd_tracer::value test_var(add_fn, "Path.To.Var2", 0x4242); + + REQUIRE(my_bit_size == 15); + REQUIRE(my_full_path == "Path.To.Var2"); + + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + REQUIRE(dump_out.str() == "b100001001000010 vv\n"); + } + } + + + { + vcd_tracer::value test_var(add_fn, "Path.To.Var3"); + + REQUIRE(my_bit_size == 1); + REQUIRE(my_full_path == "Path.To.Var3"); + + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + REQUIRE(dump_out.str() == "xvv\n"); + } + + test_var.set(true); + + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + REQUIRE(dump_out.str() == "1vv\n"); + } + + test_var.set(false); + + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + REQUIRE(dump_out.str() == "0vv\n"); + } + + test_var.undriven(); + + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + REQUIRE(dump_out.str() == "zvv\n"); + } + } + + { + vcd_tracer::value test_var(add_fn, "Path.To.Var4", 0.001f); + + REQUIRE(my_bit_size == 32); + REQUIRE(my_full_path == "Path.To.Var4"); + + + { + char tmp[64]; + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + snprintf(tmp, sizeof(tmp), "r%.16g vv\n", static_cast(0.001f)); + REQUIRE(dump_out.str() == tmp); + } + + test_var.set(10000000000000000.0f); + + { + char tmp[64]; + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + snprintf(tmp, sizeof(tmp), "r%.16g vv\n", static_cast(10000000000000000.0f)); + REQUIRE(dump_out.str() == tmp); + } + } + + { + vcd_tracer::value test_var; + + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + REQUIRE(dump_out.str() == ""); + } + + test_var.elaborate(add_fn, "Path.To.Var5"); + + REQUIRE(my_bit_size == 11); + REQUIRE(my_full_path == "Path.To.Var5"); + + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + REQUIRE(dump_out.str() == "bx vv\n"); + } + + test_var.set(0x355); + + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + REQUIRE(dump_out.str() == "b01101010101 vv\n"); + } + } + + { + vcd_tracer::value test_var(0x1DEAD); + + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + REQUIRE(dump_out.str() == ""); + } + + test_var.elaborate(add_fn, "Path.To.Var6"); + + REQUIRE(my_bit_size == 17); + REQUIRE(my_full_path == "Path.To.Var6"); + + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + // 2 LSB are compressed + REQUIRE(dump_out.str() == "b101111010101101 vv\n"); + } + + test_var.set(0x0); + + { + std::ostringstream dump_out; + (void)my_dumper(dump_out, true); + REQUIRE(dump_out.str() == "b0 vv\n"); + } + } +} + + +TEST_CASE("VCD Trace Buffer", "VcdTraceBuffer") { + + + static vcd_tracer::scope_fn::sequence_t seq = 42; + + + vcd_tracer::scope_fn::dumper_fn my_dumper = vcd_tracer::scope_fn::nop_dump;// Default value - overwritten + + unsigned int my_bit_size = 88888; + std::string my_full_path; + + auto update_fn = [&](vcd_tracer::scope_fn::dumper_fn fn) { + my_dumper = fn; + }; + + auto add_fn = [&](const std::string_view full_path, + const std::string_view var_type, + unsigned int bit_size, + vcd_tracer::scope_fn::dumper_fn fn) { + (void)var_type; + my_full_path = full_path; + my_dumper = fn; + my_bit_size = bit_size; + return vcd_tracer::value_context{ "vv", update_fn }; + }; + + vcd_tracer::value test_var(add_fn, "Path.To.Var"); + + REQUIRE(my_bit_size == 9); + REQUIRE(my_full_path == "Path.To.Var"); + + test_var.set(1); + seq++; + test_var.set(2); + seq++; + test_var.set(3); + seq++; + test_var.set(4); + seq++; + test_var.set(5); + seq++; + test_var.set(0); + seq++; + + { + std::ostringstream dump_out; + auto first_status = my_dumper(dump_out, true); + REQUIRE(first_status.next.value() == 42); + for (unsigned int i = 0; i < 6; i++) { + auto status = my_dumper(dump_out, false); + if (i == 5) { + // No more values + REQUIRE(status.next.has_value() == false); + } + else { + REQUIRE(status.next.has_value() == true); + if (status.next.has_value()) { + // The next sequence - first there is no dump - just the sequence + REQUIRE(status.next.value() == 42 + i + 1); + } + } + } + REQUIRE(dump_out.str() == "b01 vv\nb010 vv\nb011 vv\nb0100 vv\nb0101 vv\nb0 vv\n"); + } +} + + +TEST_CASE("VCD Module", "VcdModule") { + + vcd_tracer::scope_fn::dumper_fn my_dumper = vcd_tracer::scope_fn::nop_dump; + std::string my_full_path; + + auto update_fn = [&](vcd_tracer::scope_fn::dumper_fn fn) { + my_dumper = fn; + }; + + auto register_fn = [&](const std::string_view full_path, + vcd_tracer::scope_fn::dumper_fn fn) { + my_full_path = full_path; + my_dumper = fn; + return vcd_tracer::value_context{ std::string(full_path), update_fn }; + }; + + + vcd_tracer::module root(register_fn, "root"); + vcd_tracer::module mod1(root, "mod1"); + vcd_tracer::module mod2(root, "mod2"); + vcd_tracer::module submod_a(mod1, "submod_a"); + vcd_tracer::module submod_b(mod1, "submod_b"); + vcd_tracer::module submod_c(mod2, "submod_c"); + + vcd_tracer::value root_var_ka(root.get_add_fn(), "ka"); + vcd_tracer::value mod1_var_ki(mod1.get_add_fn(), "ki"); + vcd_tracer::value mod2_var_ku(mod2.get_add_fn(), "ku"); + vcd_tracer::value submod_a_var_ke(submod_a.get_add_fn(), "ke"); + vcd_tracer::value submod_c_var_ko(submod_c.get_add_fn(), "ko"); + + std::ostringstream header; + root.finalize_header(header); + static constexpr const char *EXPECTED_HEADER = + "$scope module root $end\n" + "$var real 32 root.ka ka $end\n" + "$scope module mod1 $end\n" + "$var real 64 root.mod1.ki ki $end\n" + "$scope module submod_a $end\n" + "$var wire 32 root.mod1.submod_a.ke ke $end\n" + "$upscope $end\n" + "$scope module submod_b $end\n" + "$upscope $end\n" + "$upscope $end\n" + "$scope module mod2 $end\n" + "$var wire 1 root.mod2.ku ku $end\n" + "$scope module submod_c $end\n" + "$var wire 16 root.mod2.submod_c.ko ko $end\n" + "$upscope $end\n" + "$upscope $end\n" + "$upscope $end\n"; + + REQUIRE(header.str() == EXPECTED_HEADER); +} + + +TEST_CASE("VCD Module Elaborate", "VcdModuleElaborate") { + + vcd_tracer::scope_fn::dumper_fn my_dumper = vcd_tracer::scope_fn::nop_dump; + std::string my_full_path; + + auto update_fn = [&](vcd_tracer::scope_fn::dumper_fn fn) { + my_dumper = fn; + }; + + auto register_fn = [&](const std::string_view full_path, + vcd_tracer::scope_fn::dumper_fn fn) { + my_full_path = full_path; + my_dumper = fn; + return vcd_tracer::value_context{ std::string(full_path), update_fn }; + }; + + + vcd_tracer::module root(register_fn, "root"); + vcd_tracer::module mod1(root, "mod1"); + vcd_tracer::module mod2(root, "mod2"); + vcd_tracer::module submod_a(mod1, "submod_a"); + vcd_tracer::module submod_b(mod1, "submod_b"); + vcd_tracer::module submod_c(mod2, "submod_c"); + + vcd_tracer::value root_var_ka; + vcd_tracer::value mod1_var_ki; + vcd_tracer::value mod2_var_ku; + vcd_tracer::value submod_a_var_ke; + vcd_tracer::value submod_c_var_ko; + + root.elaborate(root_var_ka, "ka"); + mod1.elaborate(mod1_var_ki, "ki"); + mod2.elaborate(mod2_var_ku, "ku"); + submod_a.elaborate(submod_a_var_ke, "ke"); + submod_c.elaborate(submod_c_var_ko, "ko"); + + std::ostringstream header; + root.finalize_header(header); + static constexpr const char *EXPECTED_HEADER = + "$scope module root $end\n" + "$var real 32 root.ka ka $end\n" + "$scope module mod1 $end\n" + "$var real 64 root.mod1.ki ki $end\n" + "$scope module submod_a $end\n" + "$var wire 32 root.mod1.submod_a.ke ke $end\n" + "$upscope $end\n" + "$scope module submod_b $end\n" + "$upscope $end\n" + "$upscope $end\n" + "$scope module mod2 $end\n" + "$var wire 1 root.mod2.ku ku $end\n" + "$scope module submod_c $end\n" + "$var wire 16 root.mod2.submod_c.ko ko $end\n" + "$upscope $end\n" + "$upscope $end\n" + "$upscope $end\n"; + + REQUIRE(header.str() == EXPECTED_HEADER); +} + +TEST_CASE("VCD Top", "VcdTop") { + + vcd_tracer::top dumper("root"); + + vcd_tracer::module mod1(dumper.root, "mod1"); + vcd_tracer::value mod1_var(mod1.get_add_fn(), "flag"); + + { + + static constexpr const char *EXPECTED_HEADER = + "$date\n" + " Thu Jan 1 00:00:00 1970\n" + "$end\n" + "$timescale\n" + " 1ns\n" + "$end\n" + "$version\n" + " C++ Simple VCD Logger\n" + "$end\n" + "$scope module root $end\n" + "$scope module mod1 $end\n" + "$var wire 1 ! flag $end\n" + "$upscope $end\n" + "$upscope $end\n" + "$enddefinitions $end\n" + "#0\n" + "x!\n"; + + std::ostringstream header; + dumper.finalize_header(header, std::chrono::system_clock::from_time_t(0)); + REQUIRE(header.str() == EXPECTED_HEADER); + } +} + + +TEST_CASE("VCD Top Trace Buf", "VcdTopTraceBuf") { + + static vcd_tracer::scope_fn::sequence_t seq = 42; + + vcd_tracer::top dumper("root"); + + vcd_tracer::module mod1(dumper.root, "mod1"); + + vcd_tracer::value var_1; + vcd_tracer::value var_2; + + mod1.elaborate(var_1, "ka"); + mod1.elaborate(var_2, "ki"); + + + { + + static constexpr const char *EXPECTED_HEADER = + "$date\n" + " Thu Jan 1 00:00:00 1970\n" + "$end\n" + "$timescale\n" + " 1ns\n" + "$end\n" + "$version\n" + " C++ Simple VCD Logger\n" + "$end\n" + "$scope module root $end\n" + "$scope module mod1 $end\n" + "$var wire 9 ! ka $end\n" + "$var wire 11 \" ki $end\n" + "$upscope $end\n" + "$upscope $end\n" + "$enddefinitions $end\n" + "#0\n"; + + std::ostringstream header; + dumper.finalize_header(header, std::chrono::system_clock::from_time_t(0)); + REQUIRE(header.str() == EXPECTED_HEADER); + + std::ostringstream data; + std::ostringstream edata; + + // Write 2 values to var1, 1 value to var2 + var_1.set(0x11); + edata << "b010001 !\n"; + seq++; + + edata << "#1\n"; + var_1.set(0x12); + edata << "b010010 !\n"; + seq++; + + edata << "#2\n"; + var_2.set(0x21); + edata << "b0100001 \"\n"; + seq++; + + edata << "#3\n"; + var_2.set(0x22); + edata << "b0100010 \"\n"; + seq++; + + edata << "#4\n"; + var_1.set(0x13); + edata << "b010011 !\n"; + seq++; + + edata << "#5\n"; + var_1.set(0x14); + edata << "b010100 !\n"; + seq++; + + edata << "#6\n"; + var_2.set(0x23); + edata << "b0100011 \"\n"; + + edata << "#10\n"; + + + // Expect the trace to be sorted correctly + dumper.time_update_abs(data, std::chrono::nanoseconds{ 10 }); + + REQUIRE(data.str() == edata.str()); + } +}